From 8ddfe86d1d0e69afa5faf841c1a291ef4711ad20 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 9 Dec 2016 21:54:13 +0000
Subject: [PATCH 001/277] functionObjects::writeLocalObjects: Provides support
 for controlled writing of field

defined by functionObjects, e.g. wallHeatFlux, wallShearStress and yPlus.

Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2353
---
 src/OpenFOAM/Make/files                       |   2 +
 .../writeLocalObjects/writeLocalObjects.C     | 106 +++++++++++
 .../writeLocalObjects/writeLocalObjects.H     | 160 +++++++++++++++++
 .../writeObjectsBase/writeObjectsBase.C       | 147 +++++++++++++++
 .../writeObjectsBase/writeObjectsBase.H       | 169 ++++++++++++++++++
 .../field/wallHeatFlux/wallHeatFlux.C         |  19 +-
 .../field/wallHeatFlux/wallHeatFlux.H         |   9 +-
 .../field/wallShearStress/wallShearStress.C   |  14 +-
 .../field/wallShearStress/wallShearStress.H   |   9 +-
 src/functionObjects/field/yPlus/yPlus.C       |  18 +-
 src/functionObjects/field/yPlus/yPlus.H       |  29 ++-
 .../utilities/writeObjects/writeObjects.C     | 154 +++++++---------
 .../utilities/writeObjects/writeObjects.H     |  18 +-
 13 files changed, 731 insertions(+), 123 deletions(-)
 create mode 100644 src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.C
 create mode 100644 src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H
 create mode 100644 src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C
 create mode 100644 src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.H

diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index 59d1692ca11..377b958ded8 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -228,6 +228,8 @@ db/functionObjects/functionObject/functionObject.C
 db/functionObjects/functionObjectList/functionObjectList.C
 db/functionObjects/writeFile/writeFile.C
 db/functionObjects/logFiles/logFiles.C
+db/functionObjects/writeObjectsBase/writeObjectsBase.C
+db/functionObjects/writeLocalObjects/writeLocalObjects.C
 db/functionObjects/timeControl/timeControl.C
 db/functionObjects/timeControl/timeControlFunctionObject.C
 db/functionObjects/regionFunctionObject/regionFunctionObject.C
diff --git a/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.C b/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.C
new file mode 100644
index 00000000000..1b991584685
--- /dev/null
+++ b/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.C
@@ -0,0 +1,106 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 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 "writeLocalObjects.H"
+#include "stringListOps.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+void Foam::functionObjects::writeLocalObjects::resetLocalObjectName
+(
+    const word& name
+)
+{
+    localObjectNames_.clear();
+    localObjectNames_.append(name);
+}
+
+
+void Foam::functionObjects::writeLocalObjects::resetLocalObjectNames
+(
+    const wordList& names
+)
+{
+    localObjectNames_.clear();
+    localObjectNames_.append(names);
+}
+
+
+Foam::wordList Foam::functionObjects::writeLocalObjects::objectNames()
+{
+    wordList names
+    (
+        subsetStrings(wordReListMatcher(writeObjectNames_), localObjectNames_)
+    );
+
+    return names;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeLocalObjects::writeLocalObjects
+(
+    const objectRegistry& obr,
+    const Switch& log
+)
+:
+    writeObjectsBase(obr, log),
+    localObjectNames_()
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeLocalObjects::~writeLocalObjects()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+const Foam::wordList&
+Foam::functionObjects::writeLocalObjects::localObjectNames() const
+{
+    return localObjectNames_;
+}
+
+
+bool Foam::functionObjects::writeLocalObjects::read(const dictionary& dict)
+{
+    if (dict.found("objects"))
+    {
+        writeObjectsBase::read(dict);
+    }
+    else
+    {
+        resetWriteObjectName(wordRe(".*", wordRe::DETECT));
+    }
+
+    return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H b/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H
new file mode 100644
index 00000000000..3cf18453c1e
--- /dev/null
+++ b/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H
@@ -0,0 +1,160 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 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::functionObjects::writeLocalObjects
+
+Description
+    FunctionObject base class for managing a list of objects on behalf of the
+    inheriting function object, on when those should be written to disk.
+
+    FunctionObjects that inherit this class will receive the additional
+    dictionary option \c objects which allows selecting which fields of the
+    inherited function should be written to disk when \c write() is called.
+    When \c objects is omitted, it will write all objects and when that list is
+    empty, it will not write any of the inheriting function object's managed
+    objects.
+
+    Example of function object specification:
+    \verbatim
+    <functionObjectName>
+    {
+        ...
+        objects     (obj1 obj2);
+        ...
+    }
+    \endverbatim
+
+Usage
+    \table
+        Property | Description                       | Required | Default value
+        objects  | List of objects to be written     | no       | ".*"
+    \endtable
+
+    Note: Regular expressions can also be used in \c objects.
+
+See also
+    Foam::functionObject
+    Foam::functionObjects::writeObjectsBase
+
+SourceFiles
+    writeLocalObjects.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef functionObjects_writeLocalObjects_H
+#define functionObjects_writeLocalObjects_H
+
+#include "wordList.H"
+#include "writeObjectsBase.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class regIOobject;
+class Switch;
+
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+                     Class writeLocalObjects Declaration
+\*---------------------------------------------------------------------------*/
+
+class writeLocalObjects
+:
+    public writeObjectsBase
+{
+
+protected:
+
+    // Protected data
+
+        //- Object names that are handled on behalf of the inheritor
+        wordList localObjectNames_;
+
+
+    // Protected Member Functions
+
+        //- Reset the list of local object names from a single word
+        void resetLocalObjectName(const word& name);
+
+        //- Reset the list of local object names from a wordList
+        void resetLocalObjectNames(const wordList& names);
+
+        //- Get the list of field names to be written
+        virtual wordList objectNames();
+
+
+private:
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        writeLocalObjects(const writeLocalObjects&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const writeLocalObjects&);
+
+
+public:
+
+    // Constructors
+
+        //- Construct from objectRegistry and inheriting function object
+        writeLocalObjects
+        (
+            const objectRegistry& obr,
+            const Switch& logRef
+        );
+
+
+    //- Destructor
+    virtual ~writeLocalObjects();
+
+
+    // Member Functions
+
+        //- Return const access to the local object names
+        const wordList& localObjectNames() const;
+
+        //- Read the list of objects to be written
+        virtual bool read(const dictionary&);
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C b/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C
new file mode 100644
index 00000000000..152a05764b5
--- /dev/null
+++ b/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C
@@ -0,0 +1,147 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 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 "writeObjectsBase.H"
+#include "Time.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+void Foam::functionObjects::writeObjectsBase::resetWriteObjectName
+(
+    const wordRe& name
+)
+{
+    writeObjectNames_.clear();
+    writeObjectNames_.append(name);
+}
+
+
+void Foam::functionObjects::writeObjectsBase::resetWriteObjectNames
+(
+    const wordReList& names
+)
+{
+    writeObjectNames_.clear();
+    writeObjectNames_.append(names);
+}
+
+
+Foam::wordList Foam::functionObjects::writeObjectsBase::objectNames()
+{
+    DynamicList<word> allNames(writeObr_.toc().size());
+    forAll(writeObjectNames_, i)
+    {
+        wordList names(writeObr_.names<regIOobject>(writeObjectNames_[i]));
+
+        if (names.size())
+        {
+            allNames.append(names);
+        }
+        else
+        {
+            WarningInFunction
+                << "Object " << writeObjectNames_[i] << " not found in "
+                << "database. Available objects:" << nl << writeObr_.sortedToc()
+                << endl;
+        }
+    }
+
+    return allNames;
+}
+
+
+void Foam::functionObjects::writeObjectsBase::writeObject
+(
+    const regIOobject& obj
+)
+{
+    if (log_) Info << "    writing object " << obj.name() << endl;
+
+    obj.write();
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeObjectsBase::writeObjectsBase
+(
+    const objectRegistry& obr,
+    const Switch& log
+)
+:
+    writeObr_(obr),
+    log_(log)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeObjectsBase::~writeObjectsBase()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+const Foam::wordReList&
+Foam::functionObjects::writeObjectsBase::writeObjectNames() const
+{
+    return writeObjectNames_;
+}
+
+
+bool Foam::functionObjects::writeObjectsBase::read(const dictionary& dict)
+{
+    dict.lookup("objects") >> writeObjectNames_;
+
+    return true;
+}
+
+
+bool Foam::functionObjects::writeObjectsBase::write()
+{
+    wordList names(objectNames());
+
+    if(!names.empty())
+    {
+        if (!writeObr_.time().writeTime())
+        {
+            writeObr_.time().writeTimeDict();
+        }
+
+        forAll(names, i)
+        {
+            const regIOobject& obj =
+                writeObr_.lookupObject<regIOobject>(names[i]);
+
+            writeObject(obj);
+        }
+    }
+
+    return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.H b/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.H
new file mode 100644
index 00000000000..393bf1bd136
--- /dev/null
+++ b/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.H
@@ -0,0 +1,169 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 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::functionObjects::writeObjectsBase
+
+Description
+    FunctionObject base class for writing a list of objects registered to the
+    database, on behalf of the inheriting function object, on when those should
+    be written to disk.
+
+    FunctionObjects that inherit this class will receive the additional
+    dictionary option \c objects which allows selecting which fields of the
+    inherited function should be written to disk when \c write() is called.
+
+    Example of function object specification:
+    \verbatim
+    <functionObjectName>
+    {
+        ...
+        objects     (obj1 obj2);
+        ...
+    }
+    \endverbatim
+
+Usage
+    \table
+        Property | Description                       | Required | Default value
+        objects  | List of objects to be written     | yes      |
+    \endtable
+
+    Note: Regular expressions can also be used in \c objects.
+
+See also
+    Foam::functionObject
+    Foam::functionObjects::writeObjects
+    Foam::functionObjects::writeLocalObjects
+
+SourceFiles
+    writeObjectsBase.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef functionObjects_writeObjectsBase_H
+#define functionObjects_writeObjectsBase_H
+
+#include "wordList.H"
+#include "wordReList.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class regIOobject;
+class Switch;
+
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+                     Class writeObjectsBase Declaration
+\*---------------------------------------------------------------------------*/
+
+class writeObjectsBase
+{
+
+protected:
+
+    // Protected data
+
+        //- Reference to the region objectRegistry
+        const objectRegistry& writeObr_;
+
+        //- Reference to the inheriting function object's log variable
+        const Switch& log_;
+
+        //- Object names requested by the user to be written
+        wordReList writeObjectNames_;
+
+
+    // Protected Member Functions
+
+        //- Reset the list of object names to be written to a single regular
+        //  expression
+        void resetWriteObjectName(const wordRe& name);
+
+        //- Reset the list of object names to be written
+        void resetWriteObjectNames(const wordReList& names);
+
+        //- Get the list of field names to be written
+        virtual wordList objectNames();
+
+        //- Write the requested registered IO object
+        virtual void writeObject(const regIOobject& obj);
+
+
+private:
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        writeObjectsBase(const writeObjectsBase&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const writeObjectsBase&);
+
+
+public:
+
+    // Constructors
+
+        //- Construct from objectRegistry and inheriting function object
+        writeObjectsBase
+        (
+            const objectRegistry& obr,
+            const Switch& logRef
+        );
+
+
+    //- Destructor
+    virtual ~writeObjectsBase();
+
+
+    // Member Functions
+
+        //- Return const access to the object names requested to be written
+        const wordReList& writeObjectNames() const;
+
+        //- Read the list of objects to be written
+        virtual bool read(const dictionary&);
+
+        //- Write function
+        virtual bool write();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
index cc89adf8cb0..67dfc57bff1 100644
--- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
+++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
@@ -104,6 +104,7 @@ Foam::functionObjects::wallHeatFlux::wallHeatFlux
 :
     fvMeshFunctionObject(name, runTime, dict),
     logFiles(obr_, name),
+    writeLocalObjects(obr_, log),
     patchSet_()
 {
     volScalarField* wallHeatFluxPtr
@@ -127,6 +128,7 @@ Foam::functionObjects::wallHeatFlux::wallHeatFlux
 
     read(dict);
     resetName(typeName);
+    resetLocalObjectName(typeName);
 }
 
 
@@ -141,6 +143,7 @@ Foam::functionObjects::wallHeatFlux::~wallHeatFlux()
 bool Foam::functionObjects::wallHeatFlux::read(const dictionary& dict)
 {
     fvMeshFunctionObject::read(dict);
+    writeLocalObjects::read(dict);
 
     const polyBoundaryMesh& pbm = mesh_.boundaryMesh();
 
@@ -229,16 +232,15 @@ bool Foam::functionObjects::wallHeatFlux::execute()
 
 bool Foam::functionObjects::wallHeatFlux::write()
 {
+    Log << type() << " " << name() << " write:" << nl;
+
+    writeLocalObjects::write();
+
     logFiles::write();
 
     const volScalarField& wallHeatFlux =
         obr_.lookupObject<volScalarField>(type());
 
-    Log << type() << " " << name() << " write:" << nl
-        << "    writing field " << wallHeatFlux.name() << endl;
-
-    wallHeatFlux.write();
-
     const fvPatchList& patches = mesh_.boundary();
 
     const surfaceScalarField::Boundary& magSf =
@@ -249,8 +251,7 @@ bool Foam::functionObjects::wallHeatFlux::write()
         label patchi = iter.key();
         const fvPatch& pp = patches[patchi];
 
-        const scalarField& hfp =
-            wallHeatFlux.boundaryField()[patchi];
+        const scalarField& hfp = wallHeatFlux.boundaryField()[patchi];
 
         const scalar minHfp = gMin(hfp);
         const scalar maxHfp = gMax(hfp);
@@ -267,10 +268,12 @@ bool Foam::functionObjects::wallHeatFlux::write()
                 << endl;
         }
 
-        Log << "    min/max(" << pp.name() << ") = "
+        Log << "    min/max/integ(" << pp.name() << ") = "
             << minHfp << ", " << maxHfp << ", " << integralHfp << endl;
     }
 
+    Log << endl;
+
     return true;
 }
 
diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H
index 9cfc24da8af..3ccb8d76313 100644
--- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H
+++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H
@@ -52,10 +52,15 @@ Usage
         patches  | list of patches to process | no         | all wall patches
     \endtable
 
+Note
+    Writing field 'wallHeatFlux' is done by default, but it can be overridden by
+    defining an empty \c objects list. For details see writeLocalObjects.
+
 See also
     Foam::functionObject
     Foam::functionObjects::fvMeshFunctionObject
     Foam::functionObjects::logFiles
+    Foam::functionObjects::writeLocalObjects
     Foam::functionObjects::pressureTools
     Foam::functionObjects::timeControl
 
@@ -69,6 +74,7 @@ SourceFiles
 
 #include "fvMeshFunctionObject.H"
 #include "logFiles.H"
+#include "writeLocalObjects.H"
 #include "volFieldsFwd.H"
 #include "surfaceFieldsFwd.H"
 #include "HashSet.H"
@@ -88,7 +94,8 @@ namespace functionObjects
 class wallHeatFlux
 :
     public fvMeshFunctionObject,
-    public logFiles
+    public logFiles,
+    public writeLocalObjects
 {
 
 protected:
diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.C b/src/functionObjects/field/wallShearStress/wallShearStress.C
index 4272aa83748..06b7bb9d965 100644
--- a/src/functionObjects/field/wallShearStress/wallShearStress.C
+++ b/src/functionObjects/field/wallShearStress/wallShearStress.C
@@ -90,6 +90,7 @@ Foam::functionObjects::wallShearStress::wallShearStress
 :
     fvMeshFunctionObject(name, runTime, dict),
     logFiles(obr_, name),
+    writeLocalObjects(obr_, log),
     patchSet_()
 {
     volVectorField* wallShearStressPtr
@@ -118,6 +119,7 @@ Foam::functionObjects::wallShearStress::wallShearStress
 
     read(dict);
     resetName(typeName);
+    resetLocalObjectName(typeName);
 }
 
 
@@ -132,6 +134,7 @@ Foam::functionObjects::wallShearStress::~wallShearStress()
 bool Foam::functionObjects::wallShearStress::read(const dictionary& dict)
 {
     fvMeshFunctionObject::read(dict);
+    writeLocalObjects::read(dict);
 
     const polyBoundaryMesh& pbm = mesh_.boundaryMesh();
 
@@ -225,16 +228,15 @@ bool Foam::functionObjects::wallShearStress::execute()
 
 bool Foam::functionObjects::wallShearStress::write()
 {
+    Log << type() << " " << name() << " write:" << nl;
+
+    writeLocalObjects::write();
+
     logFiles::write();
 
     const volVectorField& wallShearStress =
         obr_.lookupObject<volVectorField>(type());
 
-    Log << type() << " " << name() << " write:" << nl
-        << "    writing field " << wallShearStress.name() << endl;
-
-    wallShearStress.write();
-
     const fvPatchList& patches = mesh_.boundary();
 
     forAllConstIter(labelHashSet, patchSet_, iter)
@@ -260,6 +262,8 @@ bool Foam::functionObjects::wallShearStress::write()
             << minSsp << ", " << maxSsp << endl;
     }
 
+    Log << endl;
+
     return true;
 }
 
diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.H b/src/functionObjects/field/wallShearStress/wallShearStress.H
index f94a12a5ad2..60c85e58212 100644
--- a/src/functionObjects/field/wallShearStress/wallShearStress.H
+++ b/src/functionObjects/field/wallShearStress/wallShearStress.H
@@ -63,10 +63,15 @@ Usage
         patches  | list of patches to process | no         | all wall patches
     \endtable
 
+Note
+    Writing field 'wallShearStress' is done by default, but it can be overridden
+    by defining an empty \c objects list. For details see writeLocalObjects.
+
 See also
     Foam::functionObject
     Foam::functionObjects::fvMeshFunctionObject
     Foam::functionObjects::logFiles
+    Foam::functionObjects::writeLocalObjects
     Foam::functionObjects::pressureTools
     Foam::functionObjects::timeControl
 
@@ -80,6 +85,7 @@ SourceFiles
 
 #include "fvMeshFunctionObject.H"
 #include "logFiles.H"
+#include "writeLocalObjects.H"
 #include "volFieldsFwd.H"
 #include "HashSet.H"
 
@@ -97,7 +103,8 @@ namespace functionObjects
 class wallShearStress
 :
     public fvMeshFunctionObject,
-    public logFiles
+    public logFiles,
+    public writeLocalObjects
 {
 
 protected:
diff --git a/src/functionObjects/field/yPlus/yPlus.C b/src/functionObjects/field/yPlus/yPlus.C
index 64c032c9f9a..1116eac3f69 100644
--- a/src/functionObjects/field/yPlus/yPlus.C
+++ b/src/functionObjects/field/yPlus/yPlus.C
@@ -121,7 +121,8 @@ Foam::functionObjects::yPlus::yPlus
 )
 :
     fvMeshFunctionObject(name, runTime, dict),
-    logFiles(obr_, name)
+    logFiles(obr_, name),
+    writeLocalObjects(obr_, log)
 {
     volScalarField* yPlusPtr
     (
@@ -144,6 +145,7 @@ Foam::functionObjects::yPlus::yPlus
 
     read(dict);
     resetName(typeName);
+    resetLocalObjectName(typeName);
 }
 
 
@@ -158,6 +160,7 @@ Foam::functionObjects::yPlus::~yPlus()
 bool Foam::functionObjects::yPlus::read(const dictionary& dict)
 {
     fvMeshFunctionObject::read(dict);
+    writeLocalObjects::read(dict);
 
     return true;
 }
@@ -193,16 +196,15 @@ bool Foam::functionObjects::yPlus::execute()
 
 bool Foam::functionObjects::yPlus::write()
 {
-    const volScalarField& yPlus =
-        obr_.lookupObject<volScalarField>(type());
-
-    Log << type() << " " << name() << " write:" << nl
-        << "    writing field " << yPlus.name() << endl;
+    Log << type() << " " << name() << " write:" << nl;
 
-    yPlus.write();
+    writeLocalObjects::write();
 
     logFiles::write();
 
+    const volScalarField& yPlus =
+        mesh_.lookupObject<volScalarField>(type());
+
     const volScalarField::Boundary& yPlusBf = yPlus.boundaryField();
     const fvPatchList& patches = mesh_.boundary();
 
@@ -235,6 +237,8 @@ bool Foam::functionObjects::yPlus::write()
         }
     }
 
+    Log << endl;
+
     return true;
 }
 
diff --git a/src/functionObjects/field/yPlus/yPlus.H b/src/functionObjects/field/yPlus/yPlus.H
index 1796a944e18..0ad148329b3 100644
--- a/src/functionObjects/field/yPlus/yPlus.H
+++ b/src/functionObjects/field/yPlus/yPlus.H
@@ -28,13 +28,34 @@ Group
     grpFieldFunctionObjects
 
 Description
-    Evaluates and outputs turbulence y+ for  models.  Values written to
-    time directories as field 'yPlus'
+    Evaluates and outputs turbulence y+ for models. Values written to
+    time directories as field 'yPlus'.
+
+    Example of function object specification:
+    \verbatim
+    yPlus1
+    {
+        type        yPlus;
+        libs        ("libfieldFunctionObjects.so");
+        ...
+    }
+    \endverbatim
+
+Usage
+    \table
+        Property | Description                | Required   | Default value
+        type     | type name: yPlus           | yes        |
+    \endtable
+
+Note
+    Writing field 'yPlus' is done by default, but it can be overridden by
+    defining an empty \c objects list. For details see writeLocalObjects.
 
 See also
     Foam::functionObject
     Foam::functionObjects::fvMeshFunctionObject
     Foam::functionObjects::logFiles
+    Foam::functionObjects::writeLocalObjects
     Foam::functionObjects::timeControl
 
 SourceFiles
@@ -47,6 +68,7 @@ SourceFiles
 
 #include "fvMeshFunctionObject.H"
 #include "logFiles.H"
+#include "writeLocalObjects.H"
 #include "volFieldsFwd.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -67,7 +89,8 @@ namespace functionObjects
 class yPlus
 :
     public fvMeshFunctionObject,
-    public logFiles
+    public logFiles,
+    public writeLocalObjects
 {
     // Private Member Functions
 
diff --git a/src/functionObjects/utilities/writeObjects/writeObjects.C b/src/functionObjects/utilities/writeObjects/writeObjects.C
index ad3c73b0809..71a650f5ba9 100644
--- a/src/functionObjects/utilities/writeObjects/writeObjects.C
+++ b/src/functionObjects/utilities/writeObjects/writeObjects.C
@@ -64,6 +64,62 @@ const Foam::NamedEnum
 > Foam::functionObjects::writeObjects::writeOptionNames_;
 
 
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::functionObjects::writeObjects::writeObject
+(
+    const regIOobject& obj
+)
+{
+    switch (writeOption_)
+    {
+        case AUTO_WRITE:
+        {
+            if(obj.writeOpt() != IOobject::AUTO_WRITE)
+            {
+                return;
+            }
+
+            break;
+        }
+        case NO_WRITE:
+        {
+            if(obj.writeOpt() != IOobject::NO_WRITE)
+            {
+                return;
+            }
+
+            break;
+        }
+        case ANY_WRITE:
+        {
+            break;
+        }
+        default:
+        {
+            FatalErrorInFunction
+                << "Unknown writeOption "
+                << writeOptionNames_[writeOption_]
+                << ". Valid writeOption types are" << writeOptionNames_
+                << exit(FatalError);
+        }
+    }
+
+    if
+    (
+        obj.writeOpt() == IOobject::AUTO_WRITE
+     && writeObr_.time().writeTime()
+    )
+    {
+        Log << "    automatically written object " << obj.name() << endl;
+    }
+    else
+    {
+        writeObjectsBase::writeObject(obj);
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::functionObjects::writeObjects::writeObjects
@@ -74,15 +130,15 @@ Foam::functionObjects::writeObjects::writeObjects
 )
 :
     functionObject(name),
-    obr_
+    writeObjectsBase
     (
         runTime.lookupObject<objectRegistry>
         (
             dict.lookupOrDefault("region", polyMesh::defaultRegion)
-        )
+        ),
+        log
     ),
-    writeOption_(ANY_WRITE),
-    objectNames_()
+    writeOption_(ANY_WRITE)
 {
     read(dict);
 }
@@ -100,16 +156,16 @@ bool Foam::functionObjects::writeObjects::read(const dictionary& dict)
 {
     if (dict.found("field"))
     {
-        objectNames_.setSize(1);
-        dict.lookup("field") >> objectNames_[0];
+        writeObjectNames_.setSize(1);
+        dict.lookup("field") >> writeObjectNames_[0];
     }
     else if (dict.found("fields"))
     {
-        dict.lookup("fields") >> objectNames_;
+        dict.lookup("fields") >> writeObjectNames_;
     }
     else
     {
-        dict.lookup("objects") >> objectNames_;
+        writeObjectsBase::read(dict);
     }
 
     if (dict.found("writeOption"))
@@ -121,7 +177,7 @@ bool Foam::functionObjects::writeObjects::read(const dictionary& dict)
         writeOption_ = ANY_WRITE;
     }
 
-    return true;
+    return functionObject::read(dict);
 }
 
 
@@ -135,85 +191,9 @@ bool Foam::functionObjects::writeObjects::write()
 {
     Info<< type() << " " << name() << " write:" << nl;
 
-    if (!obr_.time().writeTime())
-    {
-        obr_.time().writeTimeDict();
-    }
-
-    DynamicList<word> allNames(obr_.toc().size());
-    forAll(objectNames_, i)
-    {
-        wordList names(obr_.names<regIOobject>(objectNames_[i]));
-
-        if (names.size())
-        {
-            allNames.append(names);
-        }
-        else
-        {
-            WarningInFunction
-                << "Object " << objectNames_[i] << " not found in "
-                << "database. Available objects:" << nl << obr_.sortedToc()
-                << endl;
-        }
-    }
-
-    forAll(allNames, i)
-    {
-        regIOobject& obj = const_cast<regIOobject&>
-        (
-            obr_.lookupObject<regIOobject>(allNames[i])
-        );
-
-        switch (writeOption_)
-        {
-            case AUTO_WRITE:
-            {
-                if(obj.writeOpt() != IOobject::AUTO_WRITE)
-                {
-                    continue;
-                }
-
-                break;
-            }
-            case NO_WRITE:
-            {
-                if(obj.writeOpt() != IOobject::NO_WRITE)
-                {
-                    continue;
-                }
-
-                break;
-            }
-            case ANY_WRITE:
-            {
-                break;
-            }
-            default:
-            {
-                FatalErrorInFunction
-                    << "Unknown writeOption "
-                    << writeOptionNames_[writeOption_]
-                    << ". Valid writeOption types are" << writeOptionNames_
-                    << exit(FatalError);
-            }
-        }
-
-        if
-        (
-            obj.writeOpt() == IOobject::AUTO_WRITE
-         && obr_.time().writeTime()
-        )
-        {
-            Info<< "    automatically written object " << obj.name() << endl;
-        }
-        else
-        {
-            Info<< "    writing object " << obj.name() << endl;
+    writeObjectsBase::write();
 
-            obj.write();
-        }
-    }
+    Log << endl;
 
     return true;
 }
diff --git a/src/functionObjects/utilities/writeObjects/writeObjects.H b/src/functionObjects/utilities/writeObjects/writeObjects.H
index a39190077ab..fd8a7507e1b 100644
--- a/src/functionObjects/utilities/writeObjects/writeObjects.H
+++ b/src/functionObjects/utilities/writeObjects/writeObjects.H
@@ -72,6 +72,7 @@ Usage
 
 See also
     Foam::functionObject
+    Foam::functionObjects::writeObjectsBase
     Foam::functionObjects::timeControl
 
 SourceFiles
@@ -83,7 +84,7 @@ SourceFiles
 #define functionObjects_writeObjects_H
 
 #include "functionObject.H"
-#include "wordReList.H"
+#include "writeObjectsBase.H"
 #include "NamedEnum.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -91,9 +92,6 @@ SourceFiles
 namespace Foam
 {
 
-// Forward declaration of classes
-class objectRegistry;
-
 namespace functionObjects
 {
 
@@ -103,7 +101,8 @@ namespace functionObjects
 
 class writeObjects
 :
-    public functionObject
+    public functionObject,
+    public writeObjectsBase
 {
 public:
 
@@ -124,18 +123,15 @@ private:
 
     // Private data
 
-        //- Reference to Db
-        const objectRegistry& obr_;
-
         //- To only write objects of defined writeOption
         writeOption writeOption_;
 
-        //- Names of objects to control
-        wordReList objectNames_;
-
 
     // Private Member Functions
 
+        //- Write the requested registered IO object
+        virtual void writeObject(const regIOobject& obj);
+
         //- Disallow default bitwise copy construct
         writeObjects(const writeObjects&);
 
-- 
GitLab


From f31623d337870d4e28326690dfd1483f6c5d7f05 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 12 Dec 2016 14:35:21 +0000
Subject: [PATCH 002/277] pimpleControl: Added optional 'solveFlow' control

sprayFoam: Added support for the optional 'solveFlow' control to allow
           simulation of the spray evolution with all sub-models in a 'frozen'
           flow-field.
---
 .../solvers/lagrangian/sprayFoam/sprayFoam.C  | 41 ++++++++++---------
 .../pimpleControl/pimpleControl.C             |  4 +-
 .../pimpleControl/pimpleControl.H             | 18 +++++---
 .../pimpleControl/pimpleControlI.H            |  8 +++-
 4 files changed, 44 insertions(+), 27 deletions(-)

diff --git a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
index 4bffd93bbd1..d70075000a2 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
@@ -75,34 +75,37 @@ int main(int argc, char *argv[])
 
         parcels.evolve();
 
-        #include "rhoEqn.H"
-
-        // --- Pressure-velocity PIMPLE corrector loop
-        while (pimple.loop())
+        if (pimple.solveFlow())
         {
-            #include "UEqn.H"
-            #include "YEqn.H"
-            #include "EEqn.H"
+            #include "rhoEqn.H"
 
-            // --- Pressure corrector loop
-            while (pimple.correct())
+            // --- Pressure-velocity PIMPLE corrector loop
+            while (pimple.loop())
             {
-                #include "pEqn.H"
+                #include "UEqn.H"
+                #include "YEqn.H"
+                #include "EEqn.H"
+
+                // --- Pressure corrector loop
+                while (pimple.correct())
+                {
+                    #include "pEqn.H"
+                }
+
+                if (pimple.turbCorr())
+                {
+                    turbulence->correct();
+                }
             }
 
-            if (pimple.turbCorr())
+            rho = thermo.rho();
+
+            if (runTime.write())
             {
-                turbulence->correct();
+                combustion->dQ()().write();
             }
         }
 
-        rho = thermo.rho();
-
-        if (runTime.write())
-        {
-            combustion->dQ()().write();
-        }
-
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
             << nl << endl;
diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C
index 2622f94867b..e500ab75872 100644
--- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C
+++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C
@@ -40,8 +40,9 @@ void Foam::pimpleControl::read()
 {
     solutionControl::read(false);
 
-    // Read solution controls
     const dictionary& pimpleDict = dict();
+
+    solveFlow_ = pimpleDict.lookupOrDefault<Switch>("solveFlow", true);
     nCorrPIMPLE_ = pimpleDict.lookupOrDefault<label>("nOuterCorrectors", 1);
     nCorrPISO_ = pimpleDict.lookupOrDefault<label>("nCorrectors", 1);
     turbOnFinalIterOnly_ =
@@ -123,6 +124,7 @@ bool Foam::pimpleControl::criteriaSatisfied()
 Foam::pimpleControl::pimpleControl(fvMesh& mesh, const word& dictName)
 :
     solutionControl(mesh, dictName),
+    solveFlow_(true),
     nCorrPIMPLE_(0),
     nCorrPISO_(0),
     corrPISO_(0),
diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H
index b1ff49b6868..033ce84d2f5 100644
--- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H
+++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H
@@ -69,6 +69,9 @@ protected:
 
         // Solution controls
 
+            //- Flag to indicate whether to solve for the flow
+            bool solveFlow_;
+
             //- Maximum number of PIMPLE correctors
             label nCorrPIMPLE_;
 
@@ -131,22 +134,25 @@ public:
             //- PIMPLE loop
             virtual bool loop();
 
-            //- Pressure corrector loop
+            //- Pressure corrector loop control
             inline bool correct();
 
-            //- Helper function to identify when to store the intial residuals
+            //- Return true to store the intial residuals
             inline bool storeInitialResiduals() const;
 
-            //- Helper function to identify first PIMPLE (outer) iteration
+            //- Return true for first PIMPLE (outer) iteration
             inline bool firstIter() const;
 
-            //- Helper function to identify final PIMPLE (outer) iteration
+            //- Return true fore final PIMPLE (outer) iteration
             inline bool finalIter() const;
 
-            //- Helper function to identify final inner iteration
+            //- Return true for final inner iteration
             inline bool finalInnerIter() const;
 
-            //- Helper function to identify whether to solve for turbulence
+            //- Return true to solve for flow
+            inline bool solveFlow() const;
+
+            //- Return true to solve for turbulence
             inline bool turbCorr() const;
 };
 
diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H
index 2a777908b82..f6c6e0ce35f 100644
--- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H
+++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,6 +92,12 @@ inline bool Foam::pimpleControl::finalInnerIter() const
 }
 
 
+inline bool Foam::pimpleControl::solveFlow() const
+{
+    return solveFlow_;
+}
+
+
 inline bool Foam::pimpleControl::turbCorr() const
 {
     return !turbOnFinalIterOnly_ || finalIter();
-- 
GitLab


From 141a1df59bc80e07422ce88d940c5a86fd472dfd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 12 Dec 2016 16:58:52 +0000
Subject: [PATCH 003/277] wallBoilingSubModels: Corrected references

Patch contributed by Juho Peltola, VTT
---
 .../partitioningModels/cosine/cosine.H               | 12 +++++-------
 .../partitioningModels/linear/linear.H               |  4 +---
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.H
index 17815d94a09..2983335b268 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.H
@@ -32,13 +32,11 @@ Description
       - alphaLiquid0 0.05
 
     \verbatim
-        Ioilev, A., Samigulin, M., Ustinenko, V., Kucherova, P., Tentner,
-        A., Lo, S., & Splawski, A. (2007).
-        Advances in the modeling of cladding heat transfer
-        and critical heat flux in boiling water reactor fuel assemblies.
-        In Proc. 12th International Topical Meeting on Nuclear Reactor
-        Thermal Hydraulics (NURETH-12),
-        Pittsburgh, Pennsylvania, USA.
+        Tentner, A., Lo, S., & Kozlov, V. (2006).
+        Advances in computational fluid dynamics modeling
+        of two-phase flow in boiling water reactor fuel assemblies.
+        In International Conference of Nuclear Engineering,
+        Miami, Florida, USA.
     \endverbatim
 
 SourceFiles
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/linear/linear.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/linear/linear.H
index 3e635de0855..81d2550fff0 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/linear/linear.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/linear/linear.H
@@ -31,10 +31,8 @@ Description
       - alphaLiquid1 0.1
       - alphaLiquid0 0.05
 
-    Reference:
     \verbatim
-        Ioilev, A., Samigulin, M., Ustinenko, V., Kucherova, P., Tentner, A.,
-        Lo, S., & Splawski, A. (2007).
+        Ioilev, A., Samigulin, M., Ustinenko (2007).
         Advances in the modeling of cladding heat transfer
         and critical heat flux in boiling water reactor fuel assemblies.
         In Proc. 12th International Topical Meeting on
-- 
GitLab


From eefddbc8a8cf586750be02d383413166fb200c94 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 13 Dec 2016 12:03:56 +0000
Subject: [PATCH 004/277] 
 reactingTwoPhaseEulerFoam::partitioningModels::cosine: Corrected slope

Patch contributed by Juho Peltola, VTT.
---
 .../wallBoilingSubModels/partitioningModels/cosine/cosine.C     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.C
index 69818cf6040..702464b8135 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/cosine/cosine.C
@@ -83,7 +83,7 @@ cosine::fLiquid
                     1 - cos
                     (
                         constant::mathematical::pi
-                       *(alphaLiquid1_ - alphaLiquid)
+                       *(alphaLiquid - alphaLiquid0_)
                        /(alphaLiquid1_ - alphaLiquid0_)
                     )
                 )
-- 
GitLab


From 5514b749221d489dac89304912109fcadb4903c0 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 13 Dec 2016 13:19:22 +0000
Subject: [PATCH 005/277] sprayFoam: Explicitly write cloud when not solving
 flow

---
 applications/solvers/lagrangian/sprayFoam/sprayFoam.C | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
index d70075000a2..30dbe638300 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
@@ -105,6 +105,13 @@ int main(int argc, char *argv[])
                 combustion->dQ()().write();
             }
         }
+        else
+        {
+            if (runTime.writeTime())
+            {
+                parcels.write();
+            }
+        }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
-- 
GitLab


From 164e2d4c53fda18cccc99a5032a796e09e7e5eea Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 13 Dec 2016 15:46:39 +0000
Subject: [PATCH 006/277] Removed blank-line

---
 .../db/functionObjects/writeLocalObjects/writeLocalObjects.H     | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H b/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H
index 3cf18453c1e..3a403eaabb2 100644
--- a/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H
+++ b/src/OpenFOAM/db/functionObjects/writeLocalObjects/writeLocalObjects.H
@@ -144,7 +144,6 @@ public:
 
         //- Read the list of objects to be written
         virtual bool read(const dictionary&);
-
 };
 
 
-- 
GitLab


From ab1fc22398d9e9e7a0bcd3ad004f06a12ebc5657 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 13 Dec 2016 15:47:24 +0000
Subject: [PATCH 007/277] reactingTwoPhaseEulerFoam: Updated LTS support in the
 cell-based momentum algorithm

---
 .../reactingTwoPhaseEulerFoam/Make/options    |  2 +-
 .../reactingTwoPhaseEulerFoam/pU/pEqn.H       | 30 ++++++++-----------
 .../reactingTwoPhaseEulerFoam/pUf/DDtU.H      |  4 +--
 .../pUf/createDDtU.H                          |  9 ++++--
 .../{ => pUf}/createRDeltaTf.H                |  0
 .../reactingTwoPhaseEulerFoam/pUf/pEqn.H      |  4 +--
 .../reactingTwoPhaseEulerFoam.C               | 14 ++++++++-
 7 files changed, 37 insertions(+), 26 deletions(-)
 rename applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/{ => pUf}/createRDeltaTf.H (100%)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
index 5216efaa9c6..622878cc520 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
@@ -1,4 +1,4 @@
-EXE_INC = \
+EXE_INC = -ggdb3 \
     -ItwoPhaseSystem/lnInclude \
     -I../phaseSystems/lnInclude \
     -I../interfacialModels/lnInclude \
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H
index 3b225202e91..f268beae620 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H
@@ -7,8 +7,7 @@ volScalarField rAU1
     1.0
    /(
         U1Eqn.A()
-      + max(phase1.residualAlpha() - alpha1, scalar(0))
-       *rho1/runTime.deltaT()
+      + byDt(max(phase1.residualAlpha() - alpha1, scalar(0))*rho1)
     )
 );
 volScalarField rAU2
@@ -17,8 +16,7 @@ volScalarField rAU2
     1.0
    /(
         U2Eqn.A()
-      + max(phase2.residualAlpha() - alpha2, scalar(0))
-       *rho2/runTime.deltaT()
+      + byDt(max(phase2.residualAlpha() - alpha2, scalar(0))*rho2)
     )
 );
 
@@ -101,8 +99,8 @@ while (pimple.correct())
         rAU1
        *(
             U1Eqn.H()
-          + max(phase1.residualAlpha() - alpha1, scalar(0))
-           *rho1*U1.oldTime()/runTime.deltaT()
+          + byDt(max(phase1.residualAlpha() - alpha1, scalar(0))*rho1)
+           *U1.oldTime()
         );
 
     volVectorField HbyA2
@@ -114,8 +112,8 @@ while (pimple.correct())
         rAU2
        *(
             U2Eqn.H()
-         +  max(phase2.residualAlpha() - alpha2, scalar(0))
-           *rho2*U2.oldTime()/runTime.deltaT()
+         +  byDt(max(phase2.residualAlpha() - alpha2, scalar(0))*rho2)
+           *U2.oldTime()
         );
 
     surfaceScalarField ghSnGradRho
@@ -175,11 +173,9 @@ while (pimple.correct())
     (
         IOobject::groupName("phiHbyA", phase1.name()),
         fvc::flux(HbyA1)
-      + phiCorrCoeff1*fvc::interpolate(alpha1.oldTime()*rho1.oldTime()*rAU1)
-       *(
-            MRF.absolute(phi1.oldTime())
-          - fvc::flux(U1.oldTime())
-        )/runTime.deltaT()
+      + phiCorrCoeff1
+       *fvc::interpolate(byDt(alpha1.oldTime()*rho1.oldTime()*rAU1))
+       *(MRF.absolute(phi1.oldTime()) - fvc::flux(U1.oldTime()))
       - phiF1()
       - phig1
     );
@@ -189,11 +185,9 @@ while (pimple.correct())
     (
         IOobject::groupName("phiHbyA", phase2.name()),
         fvc::flux(HbyA2)
-      + phiCorrCoeff2*fvc::interpolate(alpha2.oldTime()*rho2.oldTime()*rAU2)
-       *(
-            MRF.absolute(phi2.oldTime())
-          - fvc::flux(U2.oldTime())
-        )/runTime.deltaT()
+      + phiCorrCoeff2
+       *fvc::interpolate(byDt(alpha2.oldTime()*rho2.oldTime()*rAU2))
+       *(MRF.absolute(phi2.oldTime()) - fvc::flux(U2.oldTime()))
       - phiF2()
       - phig2
     );
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/DDtU.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/DDtU.H
index c7bccf66eac..557eb02678c 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/DDtU.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/DDtU.H
@@ -1,2 +1,2 @@
-ddtPhi1 = fvc::ddt(phi1);
-ddtPhi2 = fvc::ddt(phi2);
+tddtPhi1 = fvc::ddt(phi1);
+tddtPhi2 = fvc::ddt(phi2);
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H
index 14e66e47a83..b4c6de5f1a5 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H
@@ -1,2 +1,7 @@
-surfaceScalarField ddtPhi1(fvc::ddt(phi1));
-surfaceScalarField ddtPhi2(fvc::ddt(phi2));
+tmp<surfaceScalarField> tddtPhi1;
+tmp<surfaceScalarField> tddtPhi2;
+
+if (faceMomentum)
+{
+    #include "DDtU.H"
+}
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createRDeltaTf.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createRDeltaTf.H
similarity index 100%
rename from applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createRDeltaTf.H
rename to applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createRDeltaTf.H
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H
index 7950d76b944..05bca24c45c 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H
@@ -159,7 +159,7 @@ while (pimple.correct())
             (alphaRhof10 + Vmf)
            *byDt(MRF.absolute(phi1.oldTime()))
           + fvc::flux(U1Eqn.H())
-          + Vmf*ddtPhi2
+          + Vmf*tddtPhi2()
           + Kdf*MRF.absolute(phi2)
           - Ff1()
         );
@@ -177,7 +177,7 @@ while (pimple.correct())
             (alphaRhof20 + Vmf)
            *byDt(MRF.absolute(phi2.oldTime()))
           + fvc::flux(U2Eqn.H())
-          + Vmf*ddtPhi1
+          + Vmf*tddtPhi1()
           + Kdf*MRF.absolute(phi1)
           - Ff2()
        );
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
index bebe5620011..47b6fe63894 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
@@ -42,6 +42,18 @@ Description
 
 namespace Foam
 {
+    tmp<volScalarField> byDt(const volScalarField& vf)
+    {
+        if (fv::localEulerDdt::enabled(vf.mesh()))
+        {
+            return fv::localEulerDdt::localRDeltaT(vf.mesh())*vf;
+        }
+        else
+        {
+            return vf/vf.mesh().time().deltaT();
+        }
+    }
+
     tmp<surfaceScalarField> byDt(const surfaceScalarField& sf)
     {
         if (fv::localEulerDdt::enabled(sf.mesh()))
@@ -89,7 +101,7 @@ int main(int argc, char *argv[])
         )
     );
 
-    #include "createRDeltaTf.H"
+    #include "pUf/createRDeltaTf.H"
     #include "pUf/createDDtU.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-- 
GitLab


From 6fc22debc84e817ae27e47c259386af98319afe8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 14 Dec 2016 09:00:14 +0000
Subject: [PATCH 008/277] reactingTwoPhaseEulerFoam: Removed temporary debug
 option

---
 .../reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
index 622878cc520..5216efaa9c6 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
@@ -1,4 +1,4 @@
-EXE_INC = -ggdb3 \
+EXE_INC = \
     -ItwoPhaseSystem/lnInclude \
     -I../phaseSystems/lnInclude \
     -I../interfacialModels/lnInclude \
-- 
GitLab


From 62fb508c63076942ad1a6e0d4a54a65fb72fb77d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 14 Dec 2016 10:39:32 +0000
Subject: [PATCH 009/277] functionObjects::forceCoeffs: Corrected setting of
 rhoRef for compressible flow

Resolves bug-report https://bugs.openfoam.org/view.php?id=2387
---
 src/functionObjects/forces/forceCoeffs/forceCoeffs.C | 3 +++
 src/functionObjects/forces/forces/forces.C           | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/functionObjects/forces/forceCoeffs/forceCoeffs.C
index 635edfd6f41..27a95872ac8 100644
--- a/src/functionObjects/forces/forceCoeffs/forceCoeffs.C
+++ b/src/functionObjects/forces/forceCoeffs/forceCoeffs.C
@@ -163,6 +163,9 @@ bool Foam::functionObjects::forceCoeffs::read(const dictionary& dict)
     // Free stream velocity magnitude
     dict.lookup("magUInf") >> magUInf_;
 
+    // Reference (free stream) density
+    dict.lookup("rhoInf") >> rhoRef_;
+
     // Reference length and area scales
     dict.lookup("lRef") >> lRef_;
     dict.lookup("Aref") >> Aref_;
diff --git a/src/functionObjects/forces/forces/forces.C b/src/functionObjects/forces/forces/forces.C
index ec0f0810e59..9ade518a92b 100644
--- a/src/functionObjects/forces/forces/forces.C
+++ b/src/functionObjects/forces/forces/forces.C
@@ -638,7 +638,7 @@ bool Foam::functionObjects::forces::read(const dictionary& dict)
         // Reference density needed for incompressible calculations
         if (rhoName_ == "rhoInf")
         {
-            rhoRef_ = readScalar(dict.lookup("rhoInf"));
+            dict.lookup("rhoInf") >> rhoRef_;
         }
 
         // Reference pressure, 0 by default
-- 
GitLab


From 0256c5de51f4a3d0b87c21d9c5671ec7974c30e6 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Wed, 14 Dec 2016 14:10:24 +0000
Subject: [PATCH 010/277] Template function objects: corrected forces and
 forceCoeffs for code correction See bug-report
 https://bugs.openfoam.org/view.php?id=2387

---
 etc/caseDicts/postProcessing/forces/forceCoeffs.cfg   |  1 -
 .../postProcessing/forces/forceCoeffsCompressible     |  2 +-
 .../postProcessing/forces/forceCoeffsCompressible.cfg | 11 -----------
 etc/caseDicts/postProcessing/forces/forces.cfg        |  1 -
 .../postProcessing/forces/forcesCompressible          |  2 +-
 .../postProcessing/forces/forcesIncompressible        |  2 +-
 ...orcesCompressible.cfg => forcesIncompressible.cfg} |  2 +-
 7 files changed, 4 insertions(+), 17 deletions(-)
 delete mode 100644 etc/caseDicts/postProcessing/forces/forceCoeffsCompressible.cfg
 rename etc/caseDicts/postProcessing/forces/{forcesCompressible.cfg => forcesIncompressible.cfg} (93%)

diff --git a/etc/caseDicts/postProcessing/forces/forceCoeffs.cfg b/etc/caseDicts/postProcessing/forces/forceCoeffs.cfg
index d9d83a75d3d..22b546d5215 100644
--- a/etc/caseDicts/postProcessing/forces/forceCoeffs.cfg
+++ b/etc/caseDicts/postProcessing/forces/forceCoeffs.cfg
@@ -9,6 +9,5 @@
 #includeEtc "caseDicts/postProcessing/forces/forces.cfg"
 
 type        forceCoeffs;
-rhoInf      1;           // Redundant for incompressible
 
 // ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/forces/forceCoeffsCompressible b/etc/caseDicts/postProcessing/forces/forceCoeffsCompressible
index abb8f6e3910..640d17a08e3 100644
--- a/etc/caseDicts/postProcessing/forces/forceCoeffsCompressible
+++ b/etc/caseDicts/postProcessing/forces/forceCoeffsCompressible
@@ -25,6 +25,6 @@ dragDir     (1 0 0);
 CofR        (0 0 0);
 pitchAxis   (0 1 0);
 
-#includeEtc "caseDicts/postProcessing/forces/forceCoeffsCompressible.cfg"
+#includeEtc "caseDicts/postProcessing/forces/forceCoeffs.cfg"
 
 // ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/forces/forceCoeffsCompressible.cfg b/etc/caseDicts/postProcessing/forces/forceCoeffsCompressible.cfg
deleted file mode 100644
index 87a8667d875..00000000000
--- a/etc/caseDicts/postProcessing/forces/forceCoeffsCompressible.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-
-#includeEtc "caseDicts/postProcessing/forces/forceCoeffs.cfg"
-
-// ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/forces/forces.cfg b/etc/caseDicts/postProcessing/forces/forces.cfg
index 9f0e3f77806..80237e3368f 100644
--- a/etc/caseDicts/postProcessing/forces/forces.cfg
+++ b/etc/caseDicts/postProcessing/forces/forces.cfg
@@ -12,7 +12,6 @@ libs            ("libforces.so");
 writeControl    timeStep;
 writeInterval   1;
 
-rho             rhoInf; // Incompressible solver
 log             off;
 
 // ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/forces/forcesCompressible b/etc/caseDicts/postProcessing/forces/forcesCompressible
index 000cb97b8ca..889dea167c6 100644
--- a/etc/caseDicts/postProcessing/forces/forcesCompressible
+++ b/etc/caseDicts/postProcessing/forces/forcesCompressible
@@ -16,6 +16,6 @@ patches     (patch1 patch2);
 CofR        (0 0 0);
 pitchAxis   (0 1 0);
 
-#includeEtc "caseDicts/postProcessing/forces/forcesCompressible.cfg"
+#includeEtc "caseDicts/postProcessing/forces/forces.cfg"
 
 // ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/forces/forcesIncompressible b/etc/caseDicts/postProcessing/forces/forcesIncompressible
index 6437ca22796..a507d2675c0 100644
--- a/etc/caseDicts/postProcessing/forces/forcesIncompressible
+++ b/etc/caseDicts/postProcessing/forces/forcesIncompressible
@@ -11,7 +11,7 @@ Description
 
 \*---------------------------------------------------------------------------*/
 
-#includeEtc "caseDicts/postProcessing/forces/forces.cfg"
+#includeEtc "caseDicts/postProcessing/forces/forcesIncompressible.cfg"
 
 rhoInf      1.225;    // Fluid density
 patches     (patch1 patch2);
diff --git a/etc/caseDicts/postProcessing/forces/forcesCompressible.cfg b/etc/caseDicts/postProcessing/forces/forcesIncompressible.cfg
similarity index 93%
rename from etc/caseDicts/postProcessing/forces/forcesCompressible.cfg
rename to etc/caseDicts/postProcessing/forces/forcesIncompressible.cfg
index 66604a4a09e..8690229d4cd 100644
--- a/etc/caseDicts/postProcessing/forces/forcesCompressible.cfg
+++ b/etc/caseDicts/postProcessing/forces/forcesIncompressible.cfg
@@ -8,6 +8,6 @@
 
 #includeEtc "caseDicts/postProcessing/forces/forces.cfg"
 
-rhoInf          1;  // Redundant
+rho             rhoInf; // Incompressible solver
 
 // ************************************************************************* //
-- 
GitLab


From 4de91b22d8de5ddc4fa2684c109eae84ee694ea3 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Wed, 14 Dec 2016 14:38:04 +0000
Subject: [PATCH 011/277] Template function objects: forces and forceCoeffs
 correction/tidy

---
 .../postProcessing/forces/forceCoeffsIncompressible |  2 +-
 .../forces/forceCoeffsIncompressible.cfg            | 13 +++++++++++++
 .../postProcessing/forces/forcesIncompressible.cfg  |  2 +-
 3 files changed, 15 insertions(+), 2 deletions(-)
 create mode 100644 etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg

diff --git a/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible b/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible
index 2b7e5772e16..66e21ee0b45 100644
--- a/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible
+++ b/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible
@@ -24,6 +24,6 @@ dragDir     (1 0 0);
 CofR        (0 0 0);
 pitchAxis   (0 1 0);
 
-#includeEtc "caseDicts/postProcessing/forces/forceCoeffs.cfg"
+#includeEtc "caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg"
 
 // ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg b/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg
new file mode 100644
index 00000000000..b7dd07bb714
--- /dev/null
+++ b/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg
@@ -0,0 +1,13 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+#includeEtc "caseDicts/postProcessing/forces/forceCoeffs.cfg"
+
+rho             rhoInf;
+
+// ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/forces/forcesIncompressible.cfg b/etc/caseDicts/postProcessing/forces/forcesIncompressible.cfg
index 8690229d4cd..b50cc8e5d0c 100644
--- a/etc/caseDicts/postProcessing/forces/forcesIncompressible.cfg
+++ b/etc/caseDicts/postProcessing/forces/forcesIncompressible.cfg
@@ -8,6 +8,6 @@
 
 #includeEtc "caseDicts/postProcessing/forces/forces.cfg"
 
-rho             rhoInf; // Incompressible solver
+rho             rhoInf;
 
 // ************************************************************************* //
-- 
GitLab


From 8b5516abd9db6c14242ffe6c15d891f17dd50b06 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Wed, 14 Dec 2016 15:30:04 +0000
Subject: [PATCH 012/277] Template function objects: added read rhoInf entry

---
 .../postProcessing/forces/forceCoeffsIncompressible.cfg        | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg b/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg
index b7dd07bb714..bfc1f367457 100644
--- a/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg
+++ b/etc/caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg
@@ -8,6 +8,7 @@
 
 #includeEtc "caseDicts/postProcessing/forces/forceCoeffs.cfg"
 
-rho             rhoInf;
+rho         rhoInf;
+rhoInf      1;    // Redundant, but currently read in
 
 // ************************************************************************* //
-- 
GitLab


From b99817d92471fbd85dee187ba7d5cb64ae8e35bc Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 15 Dec 2016 17:10:21 +0000
Subject: [PATCH 013/277] Rationalized heat release rate functions

Combined 'dQ()' and 'Sh()' into 'Qdot()' which returns the heat-release rate in
the normal units [kg/m/s3] and used as the heat release rate source term in
the energy equations, to set the field 'Qdot' in several combustion solvers
and for the evaluation of the local time-step when running LTS.
---
 .../solvers/combustion/chemFoam/output.H      |  3 +-
 .../combustion/chemFoam/solveChemistry.H      |  6 +--
 .../solvers/combustion/fireFoam/YEEqn.H       |  4 +-
 .../combustion/fireFoam/createFields.H        |  8 ++--
 .../solvers/combustion/reactingFoam/EEqn.H    |  2 +-
 .../solvers/combustion/reactingFoam/YEqn.H    |  2 +-
 .../combustion/reactingFoam/createFields.H    |  8 ++--
 .../rhoReactingBuoyantFoam/createFields.H     |  8 ++--
 .../rhoReactingFoam/createFields.H            |  8 ++--
 .../combustion/reactingFoam/setRDeltaT.H      |  2 +-
 .../lagrangian/coalChemistryFoam/EEqn.H       |  2 +-
 .../lagrangian/coalChemistryFoam/YEqn.H       |  2 +-
 .../coalChemistryFoam/createFields.H          |  8 ++--
 .../lagrangian/coalChemistryFoam/setRDeltaT.H |  2 +-
 .../lagrangian/reactingParcelFilmFoam/EEqn.H  |  2 +-
 .../lagrangian/reactingParcelFilmFoam/YEqn.H  |  2 +-
 .../reactingParcelFilmFoam/createFields.H     |  8 ++--
 .../lagrangian/reactingParcelFoam/EEqn.H      |  2 +-
 .../lagrangian/reactingParcelFoam/YEqn.H      |  2 +-
 .../reactingParcelFoam/createFields.H         |  8 ++--
 .../reactingParcelFoam/setRDeltaT.H           |  2 +-
 .../simpleReactingParcelFoam/EEqn.H           |  2 +-
 .../simpleReactingParcelFoam/YEqn.H           |  2 +-
 .../simpleReactingParcelFoam/createFields.H   |  8 ++--
 .../lagrangian/sprayFoam/createFields.H       |  6 +--
 .../sprayFoam/sprayDyMFoam/sprayDyMFoam.C     |  2 +-
 .../sprayEngineFoam/sprayEngineFoam.C         |  2 +-
 .../solvers/lagrangian/sprayFoam/sprayFoam.C  |  2 +-
 .../AnisothermalPhaseModel.C                  |  2 +-
 .../InertPhaseModel/InertPhaseModel.C         |  4 +-
 .../InertPhaseModel/InertPhaseModel.H         |  4 +-
 .../ReactingPhaseModel/ReactingPhaseModel.C   |  4 +-
 .../ReactingPhaseModel/ReactingPhaseModel.H   |  4 +-
 src/combustionModels/PaSR/PaSR.C              | 19 +-------
 src/combustionModels/PaSR/PaSR.H              |  7 +--
 .../combustionModel/combustionModel.C         | 22 ---------
 .../combustionModel/combustionModel.H         |  7 +--
 src/combustionModels/laminar/laminar.C        | 43 +++--------------
 src/combustionModels/laminar/laminar.H        |  7 +--
 .../noCombustion/noCombustion.C               | 36 ++------------
 .../noCombustion/noCombustion.H               |  7 +--
 .../singleStepCombustion.C                    | 33 +------------
 .../singleStepCombustion.H                    |  7 +--
 .../zoneCombustion/zoneCombustion.C           | 12 +----
 .../zoneCombustion/zoneCombustion.H           |  7 +--
 .../reactingOneDim/reactingOneDim.C           | 14 +++---
 .../reactingOneDim/reactingOneDim.H           |  4 +-
 .../basicChemistryModel/basicChemistryModel.H |  7 +--
 .../chemistryModel/chemistryModel.C           | 48 ++++---------------
 .../chemistryModel/chemistryModel.H           |  7 +--
 .../greyMeanAbsorptionEmission.C              | 18 +++----
 .../wideBandAbsorptionEmission.C              | 15 +++---
 .../solidChemistryModel/solidChemistryModel.C | 48 ++++---------------
 .../solidChemistryModel/solidChemistryModel.H |  7 +--
 54 files changed, 142 insertions(+), 366 deletions(-)

diff --git a/applications/solvers/combustion/chemFoam/output.H b/applications/solvers/combustion/chemFoam/output.H
index 5620fe68203..2e84c59a488 100644
--- a/applications/solvers/combustion/chemFoam/output.H
+++ b/applications/solvers/combustion/chemFoam/output.H
@@ -1,6 +1,6 @@
     runTime.write();
 
-    Info<< "Sh = " << Sh
+    Info<< "Qdot = " << Qdot
         << ", T = " << thermo.T()[0]
         << ", p = " << thermo.p()[0]
         << ", " << Y[0].name() << " = " << Y[0][0]
@@ -8,4 +8,3 @@
 
     post<< runTime.value() << token::TAB << thermo.T()[0] << token::TAB
         << thermo.p()[0] << endl;
-
diff --git a/applications/solvers/combustion/chemFoam/solveChemistry.H b/applications/solvers/combustion/chemFoam/solveChemistry.H
index cb4258c31df..e32a1ab0bdd 100644
--- a/applications/solvers/combustion/chemFoam/solveChemistry.H
+++ b/applications/solvers/combustion/chemFoam/solveChemistry.H
@@ -1,3 +1,3 @@
-    dtChem = chemistry.solve(runTime.deltaT().value());
-    scalar Sh = chemistry.Sh()()[0]/rho[0];
-    integratedHeat += Sh*runTime.deltaT().value();
+dtChem = chemistry.solve(runTime.deltaT().value());
+scalar Qdot = chemistry.Qdot()()[0]/rho[0];
+integratedHeat += Qdot*runTime.deltaT().value();
diff --git a/applications/solvers/combustion/fireFoam/YEEqn.H b/applications/solvers/combustion/fireFoam/YEEqn.H
index 1c9c2176c53..f72d574d954 100644
--- a/applications/solvers/combustion/fireFoam/YEEqn.H
+++ b/applications/solvers/combustion/fireFoam/YEEqn.H
@@ -11,7 +11,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
 {
     radiation->correct();
     combustion->correct();
-    dQ = combustion->dQ();
+    Qdot = combustion->Qdot();
     volScalarField Yt(0.0*Y[0]);
 
     forAll(Y, i)
@@ -66,7 +66,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
         )
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
-        combustion->Sh()
+        Qdot
       + radiation->Sh(thermo)
       + parcels.Sh(he)
       + surfaceFilm.Sh()
diff --git a/applications/solvers/combustion/fireFoam/createFields.H b/applications/solvers/combustion/fireFoam/createFields.H
index 30e7d303772..85d26aed87d 100644
--- a/applications/solvers/combustion/fireFoam/createFields.H
+++ b/applications/solvers/combustion/fireFoam/createFields.H
@@ -131,18 +131,18 @@ Switch solvePyrolysisRegion
     additionalControlsDict.lookupOrDefault<bool>("solvePyrolysisRegion", true)
 );
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 
diff --git a/applications/solvers/combustion/reactingFoam/EEqn.H b/applications/solvers/combustion/reactingFoam/EEqn.H
index 9267c9a9bef..f92598bbed3 100644
--- a/applications/solvers/combustion/reactingFoam/EEqn.H
+++ b/applications/solvers/combustion/reactingFoam/EEqn.H
@@ -17,7 +17,7 @@
         )
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
-        reaction->Sh()
+        Qdot
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/combustion/reactingFoam/YEqn.H b/applications/solvers/combustion/reactingFoam/YEqn.H
index 7c3f0f117b8..4d209a3d815 100644
--- a/applications/solvers/combustion/reactingFoam/YEqn.H
+++ b/applications/solvers/combustion/reactingFoam/YEqn.H
@@ -11,7 +11,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
 
 {
     reaction->correct();
-    dQ = reaction->dQ();
+    Qdot = reaction->Qdot();
     volScalarField Yt(0.0*Y[0]);
 
     forAll(Y, i)
diff --git a/applications/solvers/combustion/reactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/createFields.H
index e4475e5d1b5..6fcf83624c6 100644
--- a/applications/solvers/combustion/reactingFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/createFields.H
@@ -117,18 +117,18 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
index a4b328f3674..675aef3f5ad 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
@@ -117,18 +117,18 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
index fbd45dd20c9..687dffcc13d 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
@@ -96,18 +96,18 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/reactingFoam/setRDeltaT.H b/applications/solvers/combustion/reactingFoam/setRDeltaT.H
index 5c24294ef69..28300dc134f 100644
--- a/applications/solvers/combustion/reactingFoam/setRDeltaT.H
+++ b/applications/solvers/combustion/reactingFoam/setRDeltaT.H
@@ -77,7 +77,7 @@ License
     {
         volScalarField::Internal rDeltaTT
         (
-            mag(reaction->Sh())/(alphaTemp*rho*thermo.Cp()*T)
+            mag(Qdot)/(alphaTemp*rho*thermo.Cp()*T)
         );
 
         Info<< "    Temperature = "
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
index 8d329326075..1a1f014da05 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
@@ -18,7 +18,7 @@
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         rho*(U&g)
-      + combustion->Sh()
+      + Qdot
       + coalParcels.Sh(he)
       + limestoneParcels.Sh(he)
       + radiation->Sh(thermo)
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/YEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/YEqn.H
index 4edbce9b42b..49e3f70d896 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/YEqn.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/YEqn.H
@@ -12,7 +12,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
 
 {
     combustion->correct();
-    dQ = combustion->dQ();
+    Qdot = combustion->Qdot();
     volScalarField Yt(0.0*Y[0]);
 
     forAll(Y, i)
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
index d3daf7265c1..4e4f45e7216 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
@@ -131,18 +131,18 @@ volScalarField dpdt
 Info<< "Creating field kinetic energy K\n" << endl;
 volScalarField K("K", 0.5*magSqr(U));
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/setRDeltaT.H b/applications/solvers/lagrangian/coalChemistryFoam/setRDeltaT.H
index 7e2ed6074dc..c31ad040a11 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/setRDeltaT.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/setRDeltaT.H
@@ -80,7 +80,7 @@ License
             (
                (coalParcels.hsTrans() + limestoneParcels.hsTrans())
               /(mesh.V()*runTime.deltaT())
-             + combustion->Sh()()
+             + Qdot
             )
            /(
                alphaTemp
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
index 4c2d95da9da..325009f067d 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
@@ -21,7 +21,7 @@
       + parcels.Sh(he)
       + surfaceFilm.Sh()
       + radiation->Sh(thermo)
-      + combustion->Sh()
+      + Qdot
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H
index 555b5bc0bc0..eb248990138 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H
@@ -12,7 +12,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
 
 {
     combustion->correct();
-    dQ = combustion->dQ();
+    Qdot = combustion->Qdot();
     volScalarField Yt(0.0*Y[0]);
 
     forAll(Y, i)
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
index 8ec3c94169e..0159cdba15b 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
@@ -134,18 +134,18 @@ Switch solvePrimaryRegion
     additionalControlsDict.lookup("solvePrimaryRegion")
 );
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
index 194e03c59d7..2ba1ef693fd 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
@@ -20,7 +20,7 @@
         rho*(U&g)
       + parcels.Sh(he)
       + radiation->Sh(thermo)
-      + combustion->Sh()
+      + Qdot
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H
index db6628936c9..60a27fec858 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H
@@ -11,7 +11,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
 
 {
     combustion->correct();
-    dQ = combustion->dQ();
+    Qdot = combustion->Qdot();
     volScalarField Yt(0.0*Y[0]);
 
     forAll(Y, i)
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
index e5ed566eba8..2da47d4ced9 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
@@ -121,18 +121,18 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/setRDeltaT.H b/applications/solvers/lagrangian/reactingParcelFoam/setRDeltaT.H
index 63398fb0010..28bc211e058 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/setRDeltaT.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/setRDeltaT.H
@@ -79,7 +79,7 @@ License
             mag
             (
                parcels.hsTrans()/(mesh.V()*runTime.deltaT())
-             + combustion->Sh()()
+             + Qdot
             )
            /(
                alphaTemp
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
index 8239d446216..9bc12544287 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
@@ -14,7 +14,7 @@
         rho*(U&g)
       + parcels.Sh(he)
       + radiation->Sh(thermo)
-      + combustion->Sh()
+      + Qdot
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/YEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/YEqn.H
index 7c7cf9a4c0b..1510f8e391e 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/YEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/YEqn.H
@@ -11,7 +11,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
 
 {
     combustion->correct();
-    dQ = combustion->dQ();
+    Qdot = combustion->Qdot();
     volScalarField Yt(0.0*Y[0]);
 
     forAll(Y, i)
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H
index 16f297c9956..328fc672242 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/createFields.H
@@ -103,18 +103,18 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
-        IOobject::NO_READ,
+        IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/lagrangian/sprayFoam/createFields.H b/applications/solvers/lagrangian/sprayFoam/createFields.H
index 91b7bc2b6db..e2124b36855 100644
--- a/applications/solvers/lagrangian/sprayFoam/createFields.H
+++ b/applications/solvers/lagrangian/sprayFoam/createFields.H
@@ -117,18 +117,18 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
         IOobject::NO_READ,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
index 1fe2b8da1eb..ea8f5c10dbd 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
@@ -135,7 +135,7 @@ int main(int argc, char *argv[])
 
         if (runTime.write())
         {
-            combustion->dQ()().write();
+            combustion->Qdot()().write();
         }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C
index 82cf4f6cabb..a000aacb9b0 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/sprayEngineFoam.C
@@ -110,7 +110,7 @@ int main(int argc, char *argv[])
 
         if (runTime.write())
         {
-            combustion->dQ()().write();
+            combustion->Qdot()().write();
         }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
index 30dbe638300..187477ef327 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
@@ -102,7 +102,7 @@ int main(int argc, char *argv[])
 
             if (runTime.write())
             {
-                combustion->dQ()().write();
+                combustion->Qdot()().write();
             }
         }
         else
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C
index b5dd4ab37a0..cabb9e2ebf1 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C
@@ -135,7 +135,7 @@ Foam::AnisothermalPhaseModel<BasePhaseModel>::heEqn()
             he
         )
      ==
-        this->Sh()
+        this->Qdot()
     );
 
     // Add the appropriate pressure-work term
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C
index bd4dda226fa..e92cae4c9f0 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.C
@@ -65,7 +65,7 @@ Foam::InertPhaseModel<BasePhaseModel>::R
 
 template<class BasePhaseModel>
 Foam::tmp<Foam::volScalarField>
-Foam::InertPhaseModel<BasePhaseModel>::Sh() const
+Foam::InertPhaseModel<BasePhaseModel>::Qdot() const
 {
     return tmp<volScalarField>
     (
@@ -73,7 +73,7 @@ Foam::InertPhaseModel<BasePhaseModel>::Sh() const
         (
             IOobject
             (
-                IOobject::groupName("Sh", this->name()),
+                IOobject::groupName("Qdot", this->name()),
                 this->mesh().time().timeName(),
                 this->mesh()
             ),
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H
index 26c9661ab7e..c152da488a9 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/InertPhaseModel/InertPhaseModel.H
@@ -78,8 +78,8 @@ public:
                 volScalarField& Yi
             ) const;
 
-            //- Return the reaction heat source
-            virtual tmp<volScalarField> Sh() const;
+            //- Return the heat release rate
+            virtual tmp<volScalarField> Qdot() const;
 };
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C
index b15f2898b54..aef23273f2f 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.C
@@ -105,9 +105,9 @@ Foam::ReactingPhaseModel<BasePhaseModel, ReactionType>::R
 
 template<class BasePhaseModel, class ReactionType>
 Foam::tmp<Foam::volScalarField>
-Foam::ReactingPhaseModel<BasePhaseModel, ReactionType>::Sh() const
+Foam::ReactingPhaseModel<BasePhaseModel, ReactionType>::Qdot() const
 {
-    return reaction_->Sh();
+    return reaction_->Qdot();
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H
index e05c71b44a5..fdda42ca091 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/ReactingPhaseModel/ReactingPhaseModel.H
@@ -87,8 +87,8 @@ public:
             volScalarField& Yi
         ) const;
 
-        //- Return the reacton heat source
-        virtual tmp<volScalarField> Sh() const;
+        //- Return heat release rate
+        virtual tmp<volScalarField> Qdot() const;
 };
 
 
diff --git a/src/combustionModels/PaSR/PaSR.C b/src/combustionModels/PaSR/PaSR.C
index 5fd8fdf1044..fa3b7feaede 100644
--- a/src/combustionModels/PaSR/PaSR.C
+++ b/src/combustionModels/PaSR/PaSR.C
@@ -116,29 +116,14 @@ Foam::combustionModels::PaSR<Type>::R(volScalarField& Y) const
 
 template<class Type>
 Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::PaSR<Type>::dQ() const
+Foam::combustionModels::PaSR<Type>::Qdot() const
 {
     return tmp<volScalarField>
     (
         new volScalarField
         (
             IOobject::groupName("PaSR:dQ", this->phaseName_),
-            kappa_*laminar<Type>::dQ()
-        )
-    );
-}
-
-
-template<class Type>
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::PaSR<Type>::Sh() const
-{
-    return tmp<volScalarField>
-    (
-        new volScalarField
-        (
-            IOobject::groupName("PaSR:Sh", this->phaseName_),
-            kappa_*laminar<Type>::Sh()
+            kappa_*laminar<Type>::Qdot()
         )
     );
 }
diff --git a/src/combustionModels/PaSR/PaSR.H b/src/combustionModels/PaSR/PaSR.H
index c855ea0dc05..88e347134a6 100644
--- a/src/combustionModels/PaSR/PaSR.H
+++ b/src/combustionModels/PaSR/PaSR.H
@@ -107,11 +107,8 @@ public:
         //- Fuel consumption rate matrix.
         virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
 
-        //- Heat release rate calculated from fuel consumption rate matrix
-        virtual tmp<volScalarField> dQ() const;
-
-        //-  Return source for enthalpy equation [kg/m/s3]
-        virtual tmp<volScalarField> Sh() const;
+        //- Heat release rate [kg/m/s3]
+        virtual tmp<volScalarField> Qdot() const;
 
         //- Update properties from given dictionary
         virtual bool read();
diff --git a/src/combustionModels/combustionModel/combustionModel.C b/src/combustionModels/combustionModel/combustionModel.C
index b27a5f23200..3094e4bdff3 100644
--- a/src/combustionModels/combustionModel/combustionModel.C
+++ b/src/combustionModels/combustionModel/combustionModel.C
@@ -81,7 +81,6 @@ Foam::combustionModel::~combustionModel()
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-
 bool Foam::combustionModel::read()
 {
     if (regIOobject::read())
@@ -97,25 +96,4 @@ bool Foam::combustionModel::read()
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::combustionModel::Sh() const
-{
-    return tmp<Foam::volScalarField>
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                IOobject::groupName("Sh", phaseName_),
-                mesh_.time().timeName(),
-                mesh_,
-                IOobject::NO_READ,
-                IOobject::NO_WRITE
-            ),
-            mesh_,
-            dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0)
-        )
-    );
-}
-
-
 // ************************************************************************* //
diff --git a/src/combustionModels/combustionModel/combustionModel.H b/src/combustionModels/combustionModel/combustionModel.H
index d0927b7d01c..9845dad4f59 100644
--- a/src/combustionModels/combustionModel/combustionModel.H
+++ b/src/combustionModels/combustionModel/combustionModel.H
@@ -137,11 +137,8 @@ public:
         //- Fuel consumption rate matrix, i.e. source term for fuel equation
         virtual tmp<fvScalarMatrix> R(volScalarField& Y) const = 0;
 
-        //- Heat release rate calculated from fuel consumption rate matrix
-        virtual tmp<volScalarField> dQ() const = 0;
-
-        //-  Return source for enthalpy equation [kg/m/s3]
-        virtual tmp<volScalarField> Sh() const;
+        //- Heat release rate [kg/m/s3]
+        virtual tmp<volScalarField> Qdot() const = 0;
 
         //- Update properties from given dictionary
         virtual bool read();
diff --git a/src/combustionModels/laminar/laminar.C b/src/combustionModels/laminar/laminar.C
index dcf9c6450c4..679a0867803 100644
--- a/src/combustionModels/laminar/laminar.C
+++ b/src/combustionModels/laminar/laminar.C
@@ -136,15 +136,15 @@ Foam::combustionModels::laminar<Type>::R(volScalarField& Y) const
 
 template<class Type>
 Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::laminar<Type>::dQ() const
+Foam::combustionModels::laminar<Type>::Qdot() const
 {
-    tmp<volScalarField> tdQ
+    tmp<volScalarField> tQdot
     (
         new volScalarField
         (
             IOobject
             (
-                IOobject::groupName(typeName + ":dQ", this->phaseName_),
+                IOobject::groupName(typeName + ":Qdot", this->phaseName_),
                 this->mesh().time().timeName(),
                 this->mesh(),
                 IOobject::NO_READ,
@@ -152,47 +152,16 @@ Foam::combustionModels::laminar<Type>::dQ() const
                 false
             ),
             this->mesh(),
-            dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+            dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
         )
     );
 
     if (this->active())
     {
-        tdQ.ref() = this->chemistryPtr_->dQ();
+        tQdot.ref() = this->chemistryPtr_->Qdot();
     }
 
-    return tdQ;
-}
-
-
-template<class Type>
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::laminar<Type>::Sh() const
-{
-    tmp<volScalarField> tSh
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                IOobject::groupName(typeName + ":Sh", this->phaseName_),
-                this->mesh().time().timeName(),
-                this->mesh(),
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            this->mesh(),
-            dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
-        )
-    );
-
-    if (this->active())
-    {
-        tSh.ref() = this->chemistryPtr_->Sh();
-    }
-
-    return tSh;
+    return tQdot;
 }
 
 
diff --git a/src/combustionModels/laminar/laminar.H b/src/combustionModels/laminar/laminar.H
index 4b1fad879f4..41b00799cf2 100644
--- a/src/combustionModels/laminar/laminar.H
+++ b/src/combustionModels/laminar/laminar.H
@@ -105,11 +105,8 @@ public:
         //- Fuel consumption rate matrix.
         virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
 
-        //- Heat release rate calculated from fuel consumption rate matrix
-        virtual tmp<volScalarField> dQ() const;
-
-        //-  Return source for enthalpy equation [kg/m/s3]
-        virtual tmp<volScalarField> Sh() const;
+        //- Heat release rate [kg/m/s3]
+        virtual tmp<volScalarField> Qdot() const;
 
         //- Update properties from given dictionary
         virtual bool read();
diff --git a/src/combustionModels/noCombustion/noCombustion.C b/src/combustionModels/noCombustion/noCombustion.C
index 7caeac0fe4b..190459f5ae2 100644
--- a/src/combustionModels/noCombustion/noCombustion.C
+++ b/src/combustionModels/noCombustion/noCombustion.C
@@ -75,15 +75,15 @@ Foam::combustionModels::noCombustion<CombThermoType>::R
 
 template<class CombThermoType>
 Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::noCombustion<CombThermoType>::dQ() const
+Foam::combustionModels::noCombustion<CombThermoType>::Qdot() const
 {
-    tmp<volScalarField> tdQ
+    tmp<volScalarField> tQdot
     (
         new volScalarField
         (
             IOobject
             (
-                IOobject::groupName("dQ", this->phaseName_),
+                IOobject::groupName("Qdot", this->phaseName_),
                 this->mesh().time().timeName(),
                 this->mesh(),
                 IOobject::NO_READ,
@@ -91,37 +91,11 @@ Foam::combustionModels::noCombustion<CombThermoType>::dQ() const
                 false
             ),
             this->mesh(),
-            dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+            dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
         )
     );
 
-    return tdQ;
-}
-
-
-template<class CombThermoType>
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::noCombustion<CombThermoType>::Sh() const
-{
-    tmp<volScalarField> tSh
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                IOobject::groupName("Sh", this->phaseName_),
-                this->mesh().time().timeName(),
-                this->mesh(),
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            this->mesh(),
-            dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
-        )
-    );
-
-    return tSh;
+    return tQdot;
 }
 
 
diff --git a/src/combustionModels/noCombustion/noCombustion.H b/src/combustionModels/noCombustion/noCombustion.H
index 1ea6d410aa4..27783065cb3 100644
--- a/src/combustionModels/noCombustion/noCombustion.H
+++ b/src/combustionModels/noCombustion/noCombustion.H
@@ -89,11 +89,8 @@ public:
         //- Fuel consumption rate matrix
         virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
 
-        //- Heat release rate calculated from fuel consumption rate matrix
-        virtual tmp<volScalarField> dQ() const;
-
-        //-  Return source for enthalpy equation [kg/m/s3]
-        virtual tmp<volScalarField> Sh() const;
+        //- Heat release rate [kg/m/s3]
+        virtual tmp<volScalarField> Qdot() const;
 
         //- Update properties from given dictionary
         virtual bool read();
diff --git a/src/combustionModels/singleStepCombustion/singleStepCombustion.C b/src/combustionModels/singleStepCombustion/singleStepCombustion.C
index c2a243747bb..668a3c07261 100644
--- a/src/combustionModels/singleStepCombustion/singleStepCombustion.C
+++ b/src/combustionModels/singleStepCombustion/singleStepCombustion.C
@@ -127,7 +127,7 @@ tmp<fvScalarMatrix> singleStepCombustion<CombThermoType, ThermoType>::R
 
 template<class CombThermoType, class ThermoType>
 tmp<volScalarField>
-singleStepCombustion<CombThermoType, ThermoType>::Sh() const
+singleStepCombustion<CombThermoType, ThermoType>::Qdot() const
 {
     const label fuelI = singleMixturePtr_->fuelIndex();
     volScalarField& YFuel =
@@ -137,37 +137,6 @@ singleStepCombustion<CombThermoType, ThermoType>::Sh() const
 }
 
 
-template<class CombThermoType, class ThermoType>
-tmp<volScalarField>
-singleStepCombustion<CombThermoType, ThermoType>::dQ() const
-{
-    tmp<volScalarField> tdQ
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                IOobject::groupName("dQ", this->phaseName_),
-                this->mesh_.time().timeName(),
-                this->mesh_,
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            this->mesh_,
-            dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
-        )
-    );
-
-    if (this->active())
-    {
-        volScalarField& dQ = tdQ.ref();
-        dQ.ref() = this->mesh().V()*Sh()();
-    }
-    return tdQ;
-}
-
-
 template<class CombThermoType, class ThermoType>
 bool singleStepCombustion<CombThermoType, ThermoType>::read()
 {
diff --git a/src/combustionModels/singleStepCombustion/singleStepCombustion.H b/src/combustionModels/singleStepCombustion/singleStepCombustion.H
index 181965bd527..3c5d8fb7e04 100644
--- a/src/combustionModels/singleStepCombustion/singleStepCombustion.H
+++ b/src/combustionModels/singleStepCombustion/singleStepCombustion.H
@@ -99,11 +99,8 @@ public:
         //- Fuel consumption rate matrix
         virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
 
-        //- Heat release rate calculated from fuel consumption rate matrix
-        virtual tmp<volScalarField> dQ() const;
-
-        //- Sensible enthalpy source term
-        virtual tmp<volScalarField> Sh() const;
+        //- Heat release rate [kg/m/s3]
+        virtual tmp<volScalarField> Qdot() const;
 
         //- Update properties from given dictionary
         virtual bool read();
diff --git a/src/combustionModels/zoneCombustion/zoneCombustion.C b/src/combustionModels/zoneCombustion/zoneCombustion.C
index 3cec4e1197a..3284c2aca5c 100644
--- a/src/combustionModels/zoneCombustion/zoneCombustion.C
+++ b/src/combustionModels/zoneCombustion/zoneCombustion.C
@@ -165,17 +165,9 @@ Foam::combustionModels::zoneCombustion<Type>::R(volScalarField& Y) const
 
 template<class Type>
 Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::zoneCombustion<Type>::dQ() const
+Foam::combustionModels::zoneCombustion<Type>::Qdot() const
 {
-    return filter(combustionModelPtr_->dQ());
-}
-
-
-template<class Type>
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::zoneCombustion<Type>::Sh() const
-{
-    return filter(combustionModelPtr_->Sh());
+    return filter(combustionModelPtr_->Qdot());
 }
 
 
diff --git a/src/combustionModels/zoneCombustion/zoneCombustion.H b/src/combustionModels/zoneCombustion/zoneCombustion.H
index ca014f98dd5..351b40cab07 100644
--- a/src/combustionModels/zoneCombustion/zoneCombustion.H
+++ b/src/combustionModels/zoneCombustion/zoneCombustion.H
@@ -114,11 +114,8 @@ public:
         //- Fuel consumption rate matrix.
         virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
 
-        //- Heat release rate calculated from fuel consumption rate matrix
-        virtual tmp<volScalarField> dQ() const;
-
-        //-  Return source for enthalpy equation [kg/m/s3]
-        virtual tmp<volScalarField> Sh() const;
+        //- Heat release rate [kg/m/s3]
+        virtual tmp<volScalarField> Qdot() const;
 
         //- Update properties from given dictionary
         virtual bool read();
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
index bfd963079d1..be8584b5dac 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
@@ -329,7 +329,7 @@ void reactingOneDim::solveEnergy()
       + fvc::laplacian(alpha, h_)
       - fvc::laplacian(kappa(), T())
      ==
-        chemistrySh_
+        chemistryQdot_
       - fvm::Sp(solidChemistry_->RRg(), h_)
     );
 
@@ -371,7 +371,7 @@ void reactingOneDim::calculateMassTransfer()
 
     if (infoOutput_)
     {
-        totalHeatRR_ = fvc::domainIntegrate(chemistrySh_);
+        totalHeatRR_ = fvc::domainIntegrate(chemistryQdot_);
 
         addedGasMass_ +=
             fvc::domainIntegrate(solidChemistry_->RRg())*time_.deltaT();
@@ -440,11 +440,11 @@ reactingOneDim::reactingOneDim
         dimensionedScalar("zero", dimEnergy/dimTime, 0.0)
     ),
 
-    chemistrySh_
+    chemistryQdot_
     (
         IOobject
         (
-            "chemistrySh",
+            "chemistryQdot",
             time().timeName(),
             regionMesh(),
             IOobject::NO_READ,
@@ -540,11 +540,11 @@ reactingOneDim::reactingOneDim
         dimensionedScalar("zero", dimEnergy/dimTime, 0.0)
     ),
 
-    chemistrySh_
+    chemistryQdot_
     (
         IOobject
         (
-            "chemistrySh",
+            "chemistryQdot",
             time().timeName(),
             regionMesh(),
             IOobject::NO_READ,
@@ -705,7 +705,7 @@ void reactingOneDim::evolveRegion()
 
     solveContinuity();
 
-    chemistrySh_ = solidChemistry_->Sh()();
+    chemistryQdot_ = solidChemistry_->Qdot()();
 
     updateFields();
 
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
index 0826d6fc23b..a5b6ecfbce5 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
@@ -117,8 +117,8 @@ protected:
             //- Sensible enthalpy gas flux [J/m2/s]
             volScalarField phiHsGas_;
 
-            //- Heat release [J/s/m3]
-            volScalarField chemistrySh_;
+            //- Heat release rate [J/s/m3]
+            volScalarField chemistryQdot_;
 
 
         // Source term fields
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H
index 17b64f542b6..c85cf376447 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H
@@ -174,11 +174,8 @@ public:
                 //- Return the chemical time scale
                 virtual tmp<volScalarField> tc() const = 0;
 
-                //- Return source for enthalpy equation [kg/m/s3]
-                virtual tmp<volScalarField> Sh() const = 0;
-
-                //- Return the heat release, i.e. enthalpy/sec [m2/s3]
-                virtual tmp<volScalarField> dQ() const = 0;
+                //- Return the heat release rate [kg/m/s3]
+                virtual tmp<volScalarField> Qdot() const = 0;
 };
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C
index a779d0c5b28..661da67c3b0 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C
@@ -545,15 +545,15 @@ Foam::chemistryModel<CompType, ThermoType>::tc() const
 
 template<class CompType, class ThermoType>
 Foam::tmp<Foam::volScalarField>
-Foam::chemistryModel<CompType, ThermoType>::Sh() const
+Foam::chemistryModel<CompType, ThermoType>::Qdot() const
 {
-    tmp<volScalarField> tSh
+    tmp<volScalarField> tQdot
     (
         new volScalarField
         (
             IOobject
             (
-                "Sh",
+                "Qdot",
                 this->mesh_.time().timeName(),
                 this->mesh_,
                 IOobject::NO_READ,
@@ -561,57 +561,25 @@ Foam::chemistryModel<CompType, ThermoType>::Sh() const
                 false
             ),
             this->mesh_,
-            dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
+            dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0)
         )
     );
 
     if (this->chemistry_)
     {
-        scalarField& Sh = tSh.ref();
+        scalarField& Qdot = tQdot.ref();
 
         forAll(Y_, i)
         {
-            forAll(Sh, celli)
+            forAll(Qdot, celli)
             {
                 const scalar hi = specieThermo_[i].Hc();
-                Sh[celli] -= hi*RR_[i][celli];
+                Qdot[celli] -= hi*RR_[i][celli];
             }
         }
     }
 
-    return tSh;
-}
-
-
-template<class CompType, class ThermoType>
-Foam::tmp<Foam::volScalarField>
-Foam::chemistryModel<CompType, ThermoType>::dQ() const
-{
-    tmp<volScalarField> tdQ
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                "dQ",
-                this->mesh_.time().timeName(),
-                this->mesh_,
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            this->mesh_,
-            dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
-        )
-    );
-
-    if (this->chemistry_)
-    {
-        volScalarField& dQ = tdQ.ref();
-        dQ.ref() = this->mesh_.V()*Sh()();
-    }
-
-    return tdQ;
+    return tQdot;
 }
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H
index 98b2ec2a915..552aed094fa 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H
@@ -231,11 +231,8 @@ public:
             //- Return the chemical time scale
             virtual tmp<volScalarField> tc() const;
 
-            //- Return source for enthalpy equation [kg/m/s3]
-            virtual tmp<volScalarField> Sh() const;
-
-            //- Return the heat release, i.e. enthalpy/sec [kg/m2/s3]
-            virtual tmp<volScalarField> dQ() const;
+            //- Return the heat release rate [kg/m/s3]
+            virtual tmp<volScalarField> Qdot() const;
 
 
         // ODE functions (overriding abstract functions in ODE.H)
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
index 69c68ad1846..bcda5221861 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
@@ -293,32 +293,32 @@ Foam::radiation::greyMeanAbsorptionEmission::ECont(const label bandI) const
         )
     );
 
-    if (mesh_.foundObject<volScalarField>("dQ"))
+    if (mesh_.foundObject<volScalarField>("Qdot"))
     {
-        const volScalarField& dQ =
-            mesh_.lookupObject<volScalarField>("dQ");
+        const volScalarField& Qdot =
+            mesh_.lookupObject<volScalarField>("Qdot");
 
-        if (dQ.dimensions() == dimEnergy/dimTime)
+        if (Qdot.dimensions() == dimEnergy/dimTime)
         {
-            E.ref().primitiveFieldRef() = EhrrCoeff_*dQ/mesh_.V();
+            E.ref().primitiveFieldRef() = EhrrCoeff_*Qdot/mesh_.V();
         }
-        else if (dQ.dimensions() == dimEnergy/dimTime/dimVolume)
+        else if (Qdot.dimensions() == dimEnergy/dimTime/dimVolume)
         {
-            E.ref().primitiveFieldRef() = EhrrCoeff_*dQ;
+            E.ref().primitiveFieldRef() = EhrrCoeff_*Qdot;
         }
         else
         {
             if (debug)
             {
                 WarningInFunction
-                    << "Incompatible dimensions for dQ field" << endl;
+                    << "Incompatible dimensions for Qdot field" << endl;
             }
         }
     }
     else
     {
         WarningInFunction
-          << "dQ field not found in mesh" << endl;
+          << "Qdot field not found in mesh" << endl;
     }
 
     return E;
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
index d7899338d02..6e31e837ab3 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
@@ -249,31 +249,32 @@ Foam::radiation::wideBandAbsorptionEmission::ECont(const label bandI) const
         )
     );
 
-    if (mesh().foundObject<volScalarField>("dQ"))
+    if (mesh().foundObject<volScalarField>("Qdot"))
     {
-        const volScalarField& dQ = mesh().lookupObject<volScalarField>("dQ");
+        const volScalarField& Qdot =
+            mesh().lookupObject<volScalarField>("Qdot");
 
-        if (dQ.dimensions() == dimEnergy/dimTime)
+        if (Qdot.dimensions() == dimEnergy/dimTime)
         {
             E.ref().primitiveFieldRef() =
                 iEhrrCoeffs_[bandI]
-               *dQ.primitiveField()
+               *Qdot.primitiveField()
                *(iBands_[bandI][1] - iBands_[bandI][0])
                /totalWaveLength_
                /mesh_.V();
         }
-        else if (dQ.dimensions() == dimEnergy/dimTime/dimVolume)
+        else if (Qdot.dimensions() == dimEnergy/dimTime/dimVolume)
         {
             E.ref().primitiveFieldRef() =
                 iEhrrCoeffs_[bandI]
-               *dQ.primitiveField()
+               *Qdot.primitiveField()
                *(iBands_[bandI][1] - iBands_[bandI][0])
                /totalWaveLength_;
         }
         else
         {
             WarningInFunction
-                << "Incompatible dimensions for dQ field" << endl;
+                << "Incompatible dimensions for Qdot field" << endl;
         }
     }
 
diff --git a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.C b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.C
index c7c07a760f6..47664c4fc92 100644
--- a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.C
+++ b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.C
@@ -114,15 +114,15 @@ Foam::solidChemistryModel<CompType, SolidThermo>::tc() const
 
 template<class CompType, class SolidThermo>
 Foam::tmp<Foam::volScalarField>
-Foam::solidChemistryModel<CompType, SolidThermo>::Sh() const
+Foam::solidChemistryModel<CompType, SolidThermo>::Qdot() const
 {
-    tmp<volScalarField> tSh
+    tmp<volScalarField> tQdot
     (
         new volScalarField
         (
             IOobject
             (
-                "Sh",
+                "Qdot",
                 this->mesh_.time().timeName(),
                 this->mesh_,
                 IOobject::NO_READ,
@@ -130,57 +130,25 @@ Foam::solidChemistryModel<CompType, SolidThermo>::Sh() const
                 false
             ),
             this->mesh_,
-            dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
+            dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0)
         )
     );
 
     if (this->chemistry_)
     {
-        scalarField& Sh = tSh.ref();
+        scalarField& Qdot = tQdot.ref();
 
         forAll(Ys_, i)
         {
-            forAll(Sh, celli)
+            forAll(Qdot, celli)
             {
                 scalar hf = solidThermo_[i].Hc();
-                Sh[celli] -= hf*RRs_[i][celli];
+                Qdot[celli] -= hf*RRs_[i][celli];
             }
         }
     }
 
-    return tSh;
-}
-
-
-template<class CompType, class SolidThermo>
-Foam::tmp<Foam::volScalarField>
-Foam::solidChemistryModel<CompType, SolidThermo>::dQ() const
-{
-    tmp<volScalarField> tdQ
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                "dQ",
-                this->mesh_.time().timeName(),
-                this->mesh_,
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            this->mesh_,
-            dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
-        )
-    );
-
-    if (this->chemistry_)
-    {
-        volScalarField& dQ = tdQ.ref();
-        dQ.ref() = this->mesh_.V()*Sh()();
-    }
-
-    return tdQ;
+    return tQdot;
 }
 
 
diff --git a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H
index f3692027cea..0a04c4f4f87 100644
--- a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H
+++ b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H
@@ -197,11 +197,8 @@ public:
             //- Return the chemical time scale
             virtual tmp<volScalarField> tc() const;
 
-            //- Return source for enthalpy equation [kg/m/s3]
-            virtual tmp<volScalarField> Sh() const;
-
-            //- Return the heat release, i.e. enthalpy/sec [m2/s3]
-            virtual tmp<volScalarField> dQ() const;
+            //- Return the heat release rate [kg/m/s3]
+            virtual tmp<volScalarField> Qdot() const;
 
 
         // ODE functions (overriding abstract functions in ODE.H)
-- 
GitLab


From 0087bb80279db9da411c6eccb636cf216ed268cd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 16 Dec 2016 10:12:09 +0000
Subject: [PATCH 014/277] foamList: removed '-lreactingMultiphaseSystem' to
 avoid duplicate name conflict

Resolves bug-report https://bugs.openfoam.org/view.php?id=2398
---
 applications/utilities/miscellaneous/foamList/Make/options | 1 -
 1 file changed, 1 deletion(-)

diff --git a/applications/utilities/miscellaneous/foamList/Make/options b/applications/utilities/miscellaneous/foamList/Make/options
index 84027a1c28d..2c3bcc70fed 100644
--- a/applications/utilities/miscellaneous/foamList/Make/options
+++ b/applications/utilities/miscellaneous/foamList/Make/options
@@ -64,7 +64,6 @@ EXE_LIBS = \
     -lrandomProcesses \
     -lreactingEulerianInterfacialCompositionModels \
     -lreactingEulerianInterfacialModels \
-    -lreactingMultiphaseSystem \
     -lreactingPhaseSystem \
     -lreactingTwoPhaseSystem \
     -lreactionThermophysicalModels \
-- 
GitLab


From 6cae0fdacb447a47c8b0a6a3b3efa33ab7d2f812 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 19 Dec 2016 14:19:31 +0000
Subject: [PATCH 015/277] reactingFoam::setRDeltaT: Add support for limiting
 the local time-step by the reaction rates

e.g. in the reactingFoam/laminar/counterFlowFlame2DLTS tutorial:

PIMPLE
{
    momentumPredictor no;
    nOuterCorrectors  1;
    nCorrectors     1;
    nNonOrthogonalCorrectors 0;

    maxDeltaT       1e-2;
    maxCo           1;
    alphaTemp       0.05;
    alphaY          0.05;
    Yref
    {
        O2          0.1;
        ".*"        1;
    }
    rDeltaTSmoothingCoeff 1;
    rDeltaTDampingCoeff 1;
}

will limit the LTS time-step according to the rate of consumption of 'O2'
normalized by the reference mass-fraction of 0.1 and all other species
normalized by the reference mass-fraction of 1.  Additionally the time-step
factor of 'alphaY' is applied to all species.  Only the species specified in the
'Yref' sub-dictionary are included in the LTS limiter and if 'alphaY' is omitted
or set to 1 the reaction rates are not included in the LTS limiter.
---
 .../combustion/reactingFoam/setRDeltaT.H      | 86 ++++++++++++++++---
 1 file changed, 72 insertions(+), 14 deletions(-)

diff --git a/applications/solvers/combustion/reactingFoam/setRDeltaT.H b/applications/solvers/combustion/reactingFoam/setRDeltaT.H
index 28300dc134f..b0f9c02b653 100644
--- a/applications/solvers/combustion/reactingFoam/setRDeltaT.H
+++ b/applications/solvers/combustion/reactingFoam/setRDeltaT.H
@@ -43,13 +43,16 @@ License
     // Damping coefficient (1-0)
     scalar rDeltaTDampingCoeff
     (
-        pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1)
+        pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
     );
 
     // Maximum change in cell temperature per iteration
     // (relative to previous value)
     scalar alphaTemp(pimpleDict.lookupOrDefault("alphaTemp", 0.05));
 
+    // Maximum change in cell concentration per iteration
+    // (relative to reference value)
+    scalar alphaY(pimpleDict.lookupOrDefault("alphaY", 1.0));
 
     Info<< "Time scales min/max:" << endl;
 
@@ -68,12 +71,12 @@ License
         rDeltaT.max(1/maxDeltaT);
 
         Info<< "    Flow        = "
-            << gMin(1/rDeltaT.primitiveField()) << ", "
-            << gMax(1/rDeltaT.primitiveField()) << endl;
+            << 1/gMax(rDeltaT.primitiveField()) << ", "
+            << 1/gMin(rDeltaT.primitiveField()) << endl;
     }
 
-    // Reaction source time scale
-    if (alphaTemp < 1.0)
+    // Heat release rate time scale
+    if (alphaTemp < 1)
     {
         volScalarField::Internal rDeltaTT
         (
@@ -81,21 +84,76 @@ License
         );
 
         Info<< "    Temperature = "
-            << gMin(1/(rDeltaTT.field() + VSMALL)) << ", "
-            << gMax(1/(rDeltaTT.field() + VSMALL)) << endl;
+            << 1/(gMax(rDeltaTT.field()) + VSMALL) << ", "
+            << 1/(gMin(rDeltaTT.field()) + VSMALL) << endl;
 
-        rDeltaT.ref() = max
+        rDeltaT.ref() = max(rDeltaT(), rDeltaTT);
+    }
+
+    // Reaction rate time scale
+    if (alphaY < 1)
+    {
+        dictionary Yref(pimpleDict.subDict("Yref"));
+
+        volScalarField::Internal rDeltaTY
         (
-            rDeltaT(),
-            rDeltaTT
+            IOobject
+            (
+                "rDeltaTY",
+                runTime.timeName(),
+                mesh
+            ),
+            mesh,
+            dimensionedScalar("rDeltaTY", rDeltaT.dimensions(), 0)
         );
+
+        bool foundY = false;
+
+        forAll(Y, i)
+        {
+            if (i != inertIndex && composition.active(i))
+            {
+                volScalarField& Yi = Y[i];
+
+                if (Yref.found(Yi.name()))
+                {
+                    foundY = true;
+                    scalar Yrefi = readScalar(Yref.lookup(Yi.name()));
+
+                    rDeltaTY.field() = max
+                    (
+                        mag
+                        (
+                            reaction->R(Yi)().source()
+                           /((Yrefi*alphaY)*(rho*mesh.V()))
+                        ),
+                        rDeltaTY
+                    );
+                }
+            }
+        }
+
+        if (foundY)
+        {
+            Info<< "    Composition = "
+                << 1/(gMax(rDeltaTY.field()) + VSMALL) << ", "
+                << 1/(gMin(rDeltaTY.field()) + VSMALL) << endl;
+
+            rDeltaT.ref() = max(rDeltaT(), rDeltaTY);
+        }
+        else
+        {
+            IOWarningIn(args.executable().c_str(), Yref)
+                << "Cannot find any active species in Yref " << Yref
+                << endl;
+        }
     }
 
     // Update tho boundary values of the reciprocal time-step
     rDeltaT.correctBoundaryConditions();
 
     // Spatially smooth the time scale field
-    if (rDeltaTSmoothingCoeff < 1.0)
+    if (rDeltaTSmoothingCoeff < 1)
     {
         fvc::smooth(rDeltaT, rDeltaTSmoothingCoeff);
     }
@@ -105,7 +163,7 @@ License
     // - only increase at a fraction of old time scale
     if
     (
-        rDeltaTDampingCoeff < 1.0
+        rDeltaTDampingCoeff < 1
      && runTime.timeIndex() > runTime.startTimeIndex() + 1
     )
     {
@@ -120,8 +178,8 @@ License
     rDeltaT.correctBoundaryConditions();
 
     Info<< "    Overall     = "
-        << gMin(1/rDeltaT.primitiveField())
-        << ", " << gMax(1/rDeltaT.primitiveField()) << endl;
+        << 1/gMax(rDeltaT.primitiveField())
+        << ", " << 1/gMin(rDeltaT.primitiveField()) << endl;
 }
 
 
-- 
GitLab


From 83a874cdba94afe33708b134a868860baff8a869 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 19 Dec 2016 19:20:09 +0000
Subject: [PATCH 016/277] functionObjects::volRegion: Improved parallel
 efficiency

Based on patch contributed by Kevin Nordin-Bates
Resolves bug-report https://bugs.openfoam.org/view.php?id=2401
---
 .../volFieldValue/volFieldValueTemplates.C    | 29 ++++++++-----------
 1 file changed, 12 insertions(+), 17 deletions(-)

diff --git a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C
index 00681d3f5b2..54b9e2d5287 100644
--- a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C
+++ b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C
@@ -84,52 +84,52 @@ Type Foam::functionObjects::fieldValues::volFieldValue::processValues
     {
         case opSum:
         {
-            result = sum(values);
+            result = gSum(values);
             break;
         }
         case opSumMag:
         {
-            result = sum(cmptMag(values));
+            result = gSum(cmptMag(values));
             break;
         }
         case opAverage:
         {
-            result = sum(values)/values.size();
+            result = gSum(values)/nCells();
             break;
         }
         case opWeightedAverage:
         {
-            result = sum(weightField*values)/sum(weightField);
+            result = gSum(weightField*values)/gSum(weightField);
             break;
         }
         case opVolAverage:
         {
-            result = sum(V*values)/sum(V);
+            result = gSum(V*values)/this->V();
             break;
         }
         case opWeightedVolAverage:
         {
-            result = sum(weightField*V*values)/sum(weightField*V);
+            result = gSum(weightField*V*values)/gSum(weightField*V);
             break;
         }
         case opVolIntegrate:
         {
-            result = sum(V*values);
+            result = gSum(V*values);
             break;
         }
         case opMin:
         {
-            result = min(values);
+            result = gMin(values);
             break;
         }
         case opMax:
         {
-            result = max(values);
+            result = gMax(values);
             break;
         }
         case opCoV:
         {
-            Type meanValue = sum(values*V)/sum(V);
+            Type meanValue = gSum(values*V)/this->V();
 
             const label nComp = pTraits<Type>::nComponents;
 
@@ -139,7 +139,7 @@ Type Foam::functionObjects::fieldValues::volFieldValue::processValues
                 scalar mean = component(meanValue, d);
                 scalar& res = setComponent(result, d);
 
-                res = sqrt(sum(V*sqr(vals - mean))/sum(V))/mean;
+                res = sqrt(gSum(V*sqr(vals - mean))/this->V())/mean;
             }
 
             break;
@@ -173,15 +173,10 @@ bool Foam::functionObjects::fieldValues::volFieldValue::writeValues
             weightField = setFieldValues<scalar>(weightFieldName_, true);
         }
 
-        // Combine onto master
-        combineFields(values);
-        combineFields(V);
-        combineFields(weightField);
+        Type result = processValues(values, V, weightField);
 
         if (Pstream::master())
         {
-            Type result = processValues(values, V, weightField);
-
             // Add to result dictionary, over-writing any previous entry
             resultDict_.add(fieldName, result, true);
 
-- 
GitLab


From 2a95bdc2a4821f35c8592bef78dea7031407ce4e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 27 Dec 2016 14:15:32 +0000
Subject: [PATCH 017/277] wmake: Corrected comments

Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2408
---
 wmake/wmake | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/wmake/wmake b/wmake/wmake
index 38f3d3ff6e5..38564f2587a 100755
--- a/wmake/wmake
+++ b/wmake/wmake
@@ -49,7 +49,7 @@
 #         wdep -h
 #
 # See also
-#     wmakeLnInclude, wmakeLnIncludeAll, wmakeQueue, wdep, wrmdep, wrmo,
+#     wmakeLnInclude, wmakeLnIncludeAll, wmakeCollect, wdep, wrmdep, wrmo,
 #     wclean, wcleanPlatform, wcleanLnIncludeAll
 #
 #------------------------------------------------------------------------------
@@ -69,7 +69,7 @@ Usage: $Script [OPTION] [dir]
 options:
   -s | -silent      Quiet mode (does not echo commands)
   -a | -all         wmake all sub-directories, running Allwmake if present
-  -q | -queue       wmakeQueue all sub-directories, running Allwmake if present
+  -q | -queue       wmakeCollect all sub-directories, running Allwmake if present
   -k or -non-stop   Compile without stopping when errors occur
   -j                Compile using all local cores/hyperthreads
   -jN or -j N       Compile using N cores/hyperthreads
@@ -87,7 +87,7 @@ The 'target' is a Makefile target:
 
 or a special target:
   all               wmake all sub-directories, running Allwmake if present
-  queue             wmakeQueue all sub-directories, running Allwmake if present
+  queue             wmakeCollect all sub-directories, running Allwmake if present
   exe               Compile statically linked executable
   lib               Compile statically linked archive lib (.a)
   libo              Compile statically linked lib (.o)
@@ -332,7 +332,7 @@ fi
 
 
 #------------------------------------------------------------------------------
-# Recurse the source tree to compile "all" targets using wmakeQueue
+# Recurse the source tree to compile "all" targets using wmakeCollect
 #------------------------------------------------------------------------------
 
 if [ "$all" = "queue" ]
@@ -353,7 +353,7 @@ fi
 
 #------------------------------------------------------------------------------
 # Search up the directory tree for the Make sub-directory,
-# check the existance of the 'files' file and build there if present
+# check the existence of the 'files' file and build there if present
 #------------------------------------------------------------------------------
 
 cdSource
-- 
GitLab


From dfaf90301e9d1779cc8256372b47de05dc4bbd99 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 27 Dec 2016 14:35:39 +0000
Subject: [PATCH 018/277] Documentation updates

Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2409
---
 .../functions/Polynomial/Polynomial.H         | 16 +++---
 .../functions/Polynomial/polynomialFunction.H | 14 +++---
 .../prghTotalPressureFvPatchScalarField.H     |  3 ++
 .../polynomial/polynomialSolidTransport.H     | 30 ++++++++++-
 .../icoPolynomial/icoPolynomial.H             | 27 +++++++++-
 .../thermo/hPolynomial/hPolynomialThermo.H    | 42 ++++++++++++++--
 .../logPolynomial/logPolynomialTransport.H    | 50 +++++++++++++++++--
 .../polynomial/polynomialTransport.H          | 40 +++++++++++++--
 8 files changed, 195 insertions(+), 27 deletions(-)

diff --git a/src/OpenFOAM/primitives/functions/Polynomial/Polynomial.H b/src/OpenFOAM/primitives/functions/Polynomial/Polynomial.H
index 2d8f11d3af9..7ba6f797c9f 100644
--- a/src/OpenFOAM/primitives/functions/Polynomial/Polynomial.H
+++ b/src/OpenFOAM/primitives/functions/Polynomial/Polynomial.H
@@ -27,17 +27,19 @@ Class
 Description
     Polynomial templated on size (order):
 
-        poly = sum(coeff_[i]*x^i) logCoeff*log(x)
+    \verbatim
+        poly = sum(coeffs[i]*x^i) + logCoeff*log(x)
+    \endverbatim
 
-    where 0 \<= i \<= N
+    where <tt> 0 <= i <= N </tt>
 
     - integer powers, starting at zero
-    - value(x) to evaluate the poly for a given value
-    - derivative(x) returns derivative at value
-    - integral(x1, x2) returns integral between two scalar values
-    - integral() to return a new, integral coeff polynomial
+    - \c value(x) to evaluate the poly for a given value
+    - \c derivative(x) returns derivative at value
+    - \c integral(x1, x2) returns integral between two scalar values
+    - \c integral() to return a new, integral coeff polynomial
       - increases the size (order)
-    - integralMinus1() to return a new, integral coeff polynomial where
+    - \c integralMinus1() to return a new, integral coeff polynomial where
       the base poly starts at order -1
 
 SourceFiles
diff --git a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H
index 1fe767582d2..500469d94f5 100644
--- a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H
+++ b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H
@@ -27,16 +27,18 @@ Class
 Description
     Polynomial function representation
 
-        poly = logCoeff*log(x) + sum(coeff_[i]*x^i)
+    \verbatim
+        poly = logCoeff*log(x) + sum(coeffs[i]*x^i)
+    \endverbatim
 
-    where 0 \<= i \<= N
+    where <tt> 0 <= i <= N </tt>
 
     - integer powers, starting at zero
-    - value(x) to evaluate the poly for a given value
-    - integrate(x1, x2) between two scalar values
-    - integral() to return a new, integral coeff polynomial
+    - \c value(x) to evaluate the poly for a given value
+    - \c integrate(x1, x2) between two scalar values
+    - \c integral() to return a new, integral coeff polynomial
       - increases the size (order)
-    - integralMinus1() to return a new, integral coeff polynomial where
+    - \c integralMinus1() to return a new, integral coeff polynomial where
       the base poly starts at order -1
 
 See also
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.H
index a284712178d..a7c1516eb5d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.H
@@ -33,6 +33,9 @@ Description
 
         \f[
             p_rgh = p - \rho g.(h - hRef)
+        \f]
+
+        \f[
             p = p0 - 0.5 \rho |U|^2
         \f]
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
index d2f2e45fac4..d55a3c6733d 100644
--- a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
@@ -25,12 +25,40 @@ Class
     Foam::polynomialSolidTransport
 
 Description
-    Transport package using polynomial functions for solid kappa
+    Transport package using polynomial functions for solid \c kappa.
+
+Usage
+
+    \table
+        Property        | Description
+        kappaCoeffs<8>  | Thermal conductivity polynomial coefficients
+    \endtable
+
+    Example of the specification of the transport properties:
+    \verbatim
+    transport
+    {
+        kappaCoeffs<8>     ( 1000 -0.05 0.003 0 0 0 0 0 );
+    }
+    \endverbatim
+
+    The polynomial expression is evaluated as so:
+
+        \f[
+            \kappa = 1000 - 0.05 T + 0.003 T^2
+        \f]
+
+Note
+    Thermal conductivity polynomial coefficients evaluate to an expression in
+    [W/m/K].
 
 SourceFiles
     polynomialSolidTransportI.H
     polynomialSolidTransport.C
 
+See also
+    Foam::Polynomial
+
 \*---------------------------------------------------------------------------*/
 
 #ifndef polynomialSolidTransport_H
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
index a02883a70aa..80bf9e928af 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
@@ -28,10 +28,36 @@ Description
     Incompressible, polynomial form of equation of state, using a polynomial
     function for density.
 
+Usage
+    \table
+        Property     | Description
+        rhoCoeffs<8> | Density polynomial coefficients
+    \endtable
+
+    Example of the specification of the equation of state:
+    \verbatim
+    equationOfState
+    {
+        rhoCoeffs<8>    ( 1000 -0.05 0.003 0 0 0 0 0 );
+    }
+    \endverbatim
+
+    The polynomial expression is evaluated as so:
+
+        \f[
+            \rho = 1000 - 0.05 T + 0.003 T^2
+        \f]
+
+Note
+    Input in [kg/m3], but internally uses [kg/m3/kmol].
+
 SourceFiles
     icoPolynomialI.H
     icoPolynomial.C
 
+See also
+    Foam::Polynomial
+
 \*---------------------------------------------------------------------------*/
 
 #ifndef icoPolynomial_H
@@ -98,7 +124,6 @@ class icoPolynomial
     // Private data
 
         //- Density polynomial coefficients
-        //  Note: input in [kg/m3], but internally uses [kg/m3/kmol]
         Polynomial<PolySize> rhoCoeffs_;
 
 
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
index 9a671e77ece..e7d48a6d0dc 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
@@ -26,14 +26,48 @@ Class
 
 Description
     Thermodynamics package templated on the equation of state, using polynomial
-    functions for cp, h and s
+    functions for \c cp, \c h and \c s.
 
-    Polynomials for h and s derived from cp
+    Polynomials for \c h and \c s derived from \c cp.
+
+Usage
+
+    \table
+        Property     | Description
+        Hf           | Heat of formation
+        Sf           | Standard entropy
+        CpCoeffs<8>  | Specific heat at constant pressure polynomial coeffs
+    \endtable
+
+    Example of the specification of the thermodynamic properties:
+    \verbatim
+    thermodynamics
+    {
+        Hf              0;
+        Sf              0;
+        CpCoeffs<8>     ( 1000 -0.05 0.003 0 0 0 0 0 );
+    }
+    \endverbatim
+
+    The polynomial expression is evaluated as so:
+
+        \f[
+            Cp = 1000 - 0.05 T + 0.003 T^2
+        \f]
+
+Note
+    - Heat of formation is inputted in [J/kg], but internally uses [J/kmol]
+    - Standard entropy is inputted in [J/kg/K], but internally uses [J/kmol/K]
+    - Specific heat at constant pressure polynomial coefficients evaluate to an
+      expression in [J/(kg.K)].
 
 SourceFiles
     hPolynomialThermoI.H
     hPolynomialThermo.C
 
+See also
+    Foam::Polynomial
+
 \*---------------------------------------------------------------------------*/
 
 #ifndef hPolynomialThermo_H
@@ -100,14 +134,12 @@ class hPolynomialThermo
     // Private data
 
         //- Heat of formation
-        //  Note: input in [J/kg], but internally uses [J/kmol]
         scalar Hf_;
 
         //- Standard entropy
-        //  Note: input in [J/kg/K], but internally uses [J/kmol/K]
         scalar Sf_;
 
-        //- Specific heat at constant pressure polynomial coeffs [J/(kg.K)]
+        //- Specific heat at constant pressure polynomial coeffs
         Polynomial<PolySize> CpCoeffs_;
 
         //- Enthalpy polynomial coeffs - derived from cp [J/kg]
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
index b93f5348f40..65f7ba6617c 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
@@ -25,15 +25,57 @@ Class
     Foam::logPolynomialTransport
 
 Description
-    Transport package using polynomial functions of ln(T) for mu and kappa:
-
-        ln(mu)    = sum_i=1^N( a[i] * ln(T)^(i-1) )
-        ln(kappa) = sum_i=1^N( b[i] * ln(T)^(i-1) )
+    Transport package using polynomial functions of \c ln(T) for \c mu and
+    \c kappa:
+
+        \f[
+            ln(mu)    = \sum_{i=1}^N \left( a[i] * ln(T)^{i-1} \right)
+        \f]
+
+        \f[
+            ln(kappa) = \sum_{i=1}^N \left( b[i] * ln(T)^{i-1} \right)
+        \f]
+
+Usage
+
+    \table
+        Property        | Description
+        muCoeffs<8>     | Dynamic viscosity polynomial coefficients
+        kappaCoeffs<8>  | Thermal conductivity polynomial coefficients
+    \endtable
+
+    Example of the specification of the transport properties:
+    \verbatim
+    transport
+    {
+        muCoeffs<8>     ( 1000 -0.05 0.003 0 0 0 0 0 );
+        kappaCoeffs<8>  ( 2000 -0.15 0.023 0 0 0 0 0 );
+    }
+    \endverbatim
+
+    The polynomial expressions are evaluated as so:
+
+        \f[
+            \mu    = 1000 - 0.05 ln(T) + 0.003 ln(T)^2
+        \f]
+
+        \f[
+            \kappa = 2000 - 0.15 ln(T) + 0.023 ln(T)^2
+        \f]
+
+Note
+    - Dynamic viscosity polynomial coefficients evaluate to an expression in
+      [Pa.s], but internally uses [Pa.s/kmol].
+    - Thermal conductivity polynomial coefficients evaluate to an expression in
+      [W/m/K], but internally uses [W/m/K/kmol].
 
 SourceFiles
     logPolynomialTransportI.H
     logPolynomialTransport.C
 
+See also
+    Foam::Polynomial
+
 \*---------------------------------------------------------------------------*/
 
 #ifndef logPolynomialTransport_H
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
index 9f7be3b8e2b..8f7e39b1fbb 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
@@ -25,12 +25,48 @@ Class
     Foam::polynomialTransport
 
 Description
-    Transport package using polynomial functions for mu and kappa
+    Transport package using polynomial functions for \c mu and \c kappa.
+
+Usage
+
+    \table
+        Property        | Description
+        muCoeffs<8>     | Dynamic viscosity polynomial coefficients
+        kappaCoeffs<8>  | Thermal conductivity polynomial coefficients
+    \endtable
+
+    Example of the specification of the transport properties:
+    \verbatim
+    transport
+    {
+        muCoeffs<8>     ( 1000 -0.05 0.003 0 0 0 0 0 );
+        kappaCoeffs<8>  ( 2000 -0.15 0.023 0 0 0 0 0 );
+    }
+    \endverbatim
+
+    The polynomial expressions are evaluated as so:
+
+        \f[
+            \mu    = 1000 - 0.05 T + 0.003 T^2
+        \f]
+
+        \f[
+            \kappa = 2000 - 0.15 T + 0.023 T^2
+        \f]
+
+Note
+    - Dynamic viscosity polynomial coefficients evaluate to an expression in
+      [Pa.s], but internally uses [Pa.s/kmol].
+    - Thermal conductivity polynomial coefficients evaluate to an expression in
+      [W/m/K], but internally uses [W/m/K/kmol].
 
 SourceFiles
     polynomialTransportI.H
     polynomialTransport.C
 
+See also
+    Foam::Polynomial
+
 \*---------------------------------------------------------------------------*/
 
 #ifndef polynomialTransport_H
@@ -95,11 +131,9 @@ class polynomialTransport
     // Private data
 
         //- Dynamic viscosity polynomial coefficients
-        //  Note: input in [Pa.s], but internally uses [Pa.s/kmol]
         Polynomial<PolySize> muCoeffs_;
 
         //- Thermal conductivity polynomial coefficients
-        //  Note: input in [W/m/K], but internally uses [W/m/K/kmol]
         Polynomial<PolySize> kappaCoeffs_;
 
 
-- 
GitLab


From c21d0d36423d3ec441ea5524b9fcd259212d3cf0 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 27 Dec 2016 15:26:53 +0000
Subject: [PATCH 019/277] Make/options: Added -lscotchDecomp where appropriate

Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2410
---
 .../generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options | 2 +-
 .../mesh/generation/foamyMesh/foamyHexMesh/Make/options        | 2 +-
 .../mesh/generation/foamyMesh/foamyQuadMesh/Make/options       | 2 +-
 .../utilities/mesh/manipulation/renumberMesh/Make/options      | 3 ++-
 .../utilities/parallelProcessing/redistributePar/Make/options  | 2 +-
 5 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
index f9a4d17aafc..d3473481fdc 100644
--- a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
@@ -31,7 +31,7 @@ EXE_LIBS =  \
     -lfiniteVolume    \
     -lmeshTools \
     -ldecompositionMethods \
-    -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp \
+    -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
     -ledgeMesh \
     -ltriSurface \
     -ldynamicMesh \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
index 6cbbd9a4ab0..841143804ef 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
@@ -30,7 +30,7 @@ EXE_LIBS = \
     -lconformalVoronoiMesh \
     -lmeshTools \
     -ldecompositionMethods \
-    -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp \
+    -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
     -ledgeMesh \
     -lfileFormats \
     -ltriSurface \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
index 904dd290a9f..ede07dde711 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
@@ -35,6 +35,6 @@ EXE_LIBS = \
     -ltriSurface \
     -ldynamicMesh \
     -ldecompositionMethods \
-    -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp \
+    -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
     -lsampling \
     -lfileFormats
diff --git a/applications/utilities/mesh/manipulation/renumberMesh/Make/options b/applications/utilities/mesh/manipulation/renumberMesh/Make/options
index 49a1c3d2e33..ef065105028 100644
--- a/applications/utilities/mesh/manipulation/renumberMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/renumberMesh/Make/options
@@ -15,4 +15,5 @@ EXE_LIBS = \
     -lgenericPatchFields \
     -lrenumberMethods \
     $(LINK_FLAGS) \
-    -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp
+    -ldecompositionMethods \
+    -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp
diff --git a/applications/utilities/parallelProcessing/redistributePar/Make/options b/applications/utilities/parallelProcessing/redistributePar/Make/options
index a23979358b7..bc7b904e0fa 100644
--- a/applications/utilities/parallelProcessing/redistributePar/Make/options
+++ b/applications/utilities/parallelProcessing/redistributePar/Make/options
@@ -8,6 +8,6 @@ EXE_LIBS = \
     -lfiniteVolume \
     -lgenericPatchFields \
     -ldecompositionMethods \
-    -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp \
+    -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
     -lmeshTools \
     -ldynamicMesh
-- 
GitLab


From fa6320d93a7081257e8a6ee3d8446781e113eb83 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 27 Dec 2016 15:44:30 +0000
Subject: [PATCH 020/277] Updated tutorial scripts 'createGraphs' and
 'patchifyObstacles' for clearer messages

Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2411
---
 .../buoyantSimpleFoam/buoyantCavity/Allrun    |  2 +-
 .../buoyantCavity/validation/createGraphs     | 20 +++++++++++--------
 .../hotBoxes/patchifyObstacles                |  6 ++++++
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/Allrun b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/Allrun
index 5ddbc447bf0..ef1c137ca84 100755
--- a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/Allrun
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/Allrun
@@ -11,6 +11,6 @@ runApplication blockMesh
 runApplication $application
 runApplication -s sample  postProcess -latestTime -func sample
 
-( cd validation && ./createGraphs )
+runApplication validation/createGraphs
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/validation/createGraphs b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/validation/createGraphs
index 5566e9f677d..3325b25dd0f 100755
--- a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/validation/createGraphs
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/validation/createGraphs
@@ -31,6 +31,11 @@
 #
 #------------------------------------------------------------------------------
 
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Stop on first error
+set -e
+
 createEpsT()
 {
     index=$1
@@ -78,11 +83,12 @@ createEpsU()
 EOF
 }
 
+echo "createGraphs:"
 
 # test if gnuplot exists on the system
 if ! which gnuplot > /dev/null 2>&1
 then
-    echo "gnuplot not found - skipping graph creation" >&2
+    echo "FOAM FATAL ERROR: gnuplot not found - skipping graph creation" >&2
     exit 1
 fi
 
@@ -90,8 +96,8 @@ SETSDIR="../postProcessing/sample"
 
 if [ ! -d $SETSDIR ]
 then
-    echo "createGraphs: results sets not available in directory $SETSDIR"
-    exit 0
+    echo "FOAM FATAL ERROR: result sets not available in directory $SETSDIR" >&2
+    exit 1
 fi
 
 # paths to data
@@ -104,8 +110,7 @@ EXPTDATAROOT=./exptData
 TSets="1 3 4 5 6 7 9"
 for i in $TSets
 do
-    echo "    processing temperature profile at y/yMax of 0.$i" \
-        > log.createGraphs 2>&1
+    echo "    processing temperature profile at y/yMax of 0.$i"
 
     OF="$OFDATAROOT/y0.${i}_T.xy"
     EXPT="$EXPTDATAROOT/mt_z0_${i}0_lo.dat"
@@ -118,8 +123,7 @@ done
 USets="1 3 4 5 6 7 9"
 for i in $USets
 do
-    echo "    processing velocity profile at y/yMax of 0.$i" \
-        > log.createGraphs 2>&1
+    echo "    processing velocity profile at y/yMax of 0.$i"
 
     OF="$OFDATAROOT/y0.${i}_U.xy"
     EXPT="$EXPTDATAROOT/mv_z0_${i}0_lo.dat"
@@ -127,6 +131,6 @@ do
     createEpsU $i $OF $EXPT
 done
 
-echo Done
+echo "End"
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchifyObstacles b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchifyObstacles
index 1c2598eccca..b57312af5ea 100755
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchifyObstacles
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchifyObstacles
@@ -6,8 +6,12 @@
 #   \\  /    A nd           | Web:      www.OpenFOAM.org                      #
 #    \\/     M anipulation  |                                                 #
 #-----------------------------------------------------------------------------#
+
 cd ${0%/*} || exit 1    # Run from this directory
 
+# Stop on first error
+set -e
+
 x0=0.4
 y0=0.1
 z0=0.1
@@ -157,4 +161,6 @@ echo "faceZoneSet floorFaces new setsToFaceZone FloorFaces floorCells" >> $tmpSe
 
 setSet -batch $tmpSetSet > log.setSet.patchifyObstacles 2>&1
 
+echo "End"
+
 # *************************************************************************
-- 
GitLab


From f8e9a0dbf5a472a942221b3d65ed0b3981ad6b92 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 5 Jan 2017 15:59:42 +0000
Subject: [PATCH 021/277] fluentMeshToFoam: Added '-2D' option consistent with
 plot3dToFoam

Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2238
---
 .../fluentMeshToFoam/fluentMeshToFoam.L       | 28 +++++++++++++------
 .../conversion/plot3dToFoam/plot3dToFoam.C    |  4 +--
 2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
index c7ed9ca4015..cf8c8cd9289 100644
--- a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
+++ b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -871,6 +871,12 @@ int main(int argc, char *argv[])
         "factor",
         "geometry scaling factor - default is 1"
     );
+    argList::addOption
+    (
+        "2D",
+        "thickness",
+        "use when converting a 2-D mesh (applied before scale)"
+    );
     argList::addBoolOption
     (
         "writeSets",
@@ -957,22 +963,26 @@ int main(int argc, char *argv[])
     // Construct shapes from face lists
     cellShapeList cellShapes(nCells);
 
-    // Extrude 2-D mesh into 3-D
-
     Info<< "dimension of grid: " << dimensionOfGrid << endl;
     faceList frontAndBackFaces;
 
     if (dimensionOfGrid == 2)
     {
-        const scalar extrusionFactor = 0.01;
+        // Extrude 2-D mesh into 3-D, in z-direction
 
-        boundBox box(max(points), min(points));
+        scalar twoDThickness = 1.0;
 
-        const scalar zOffset = extrusionFactor*box.mag();
+        if (!args.optionReadIfPresent("2D", twoDThickness))
+        {
+            const scalar extrusionFactor = 0.02; //0.01 in each direction
+            boundBox box(points);
+            twoDThickness = extrusionFactor*box.mag();
+        }
+
+        Info<< "Grid is 2-D. Extruding in z-direction by: " << twoDThickness
+            << endl;
 
-        // two-dimensional grid. Extrude in z-direction
-        Info<< "Grid is 2-D. Extruding in z-direction by: "
-            << 2*zOffset << endl;
+        const scalar zOffset = twoDThickness / 2;
 
         pointField oldPoints = points;
 
diff --git a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
index e473bba96d6..0b451189e93 100644
--- a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
+++ b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,7 @@ int main(int argc, char *argv[])
     (
         "2D",
         "thickness",
-        "use when converting a 2-D geometry"
+        "use when converting a 2-D mesh (applied before scale)"
     );
 
     argList args(argc, argv);
-- 
GitLab


From 7f2104c9a7b1b59f141548bdd806aa51ddbbfaba Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 5 Jan 2017 20:19:30 +0000
Subject: [PATCH 022/277] foamDictionary: Removed unnecessary spaces and blank
 lines from output

Resolves bug-report https://bugs.openfoam.org/view.php?id=2422
---
 .../miscellaneous/foamDictionary/foamDictionary.C    | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C b/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C
index 2528355e117..f8e69a5af2f 100644
--- a/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C
+++ b/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -396,7 +396,7 @@ int main(int argc, char *argv[])
             );
             if (entPtr)
             {
-                Info<< *entPtr << endl;
+                Info<< *entPtr;
             }
         }
         else if (args.optionFound("remove"))
@@ -467,7 +467,11 @@ int main(int argc, char *argv[])
                             const tokenList& tokens = entPtr->stream();
                             forAll(tokens, i)
                             {
-                                Info<< tokens[i] << token::SPACE;
+                                Info<< tokens[i];
+                                if (i < tokens.size() - 1)
+                                {
+                                    Info<< token::SPACE;
+                                }
                             }
                             Info<< endl;
                         }
@@ -478,7 +482,7 @@ int main(int argc, char *argv[])
                     }
                     else
                     {
-                        Info<< *entPtr << endl;
+                        Info<< *entPtr;
                     }
                 }
             }
-- 
GitLab


From c0900fcdb40176550bc718bd75637295dcbf028c Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 7 Jan 2017 09:23:43 +0000
Subject: [PATCH 023/277] triSurfaceMesh: Added support for specifying the
 tri-surface file name:

e.g.

motorBike
{
    type triSurfaceMesh;
    file "motorBike.obj";
}

Based on patch provided by Mattijs Janssens
Resolves part of bug-report https://bugs.openfoam.org/view.php?id=2396
---
 .../searchableSurface/triSurfaceMesh.C        | 186 +++++++-----------
 .../searchableSurface/triSurfaceMesh.H        |  24 +--
 2 files changed, 80 insertions(+), 130 deletions(-)

diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.C b/src/meshTools/searchableSurface/triSurfaceMesh.C
index e9680b3f893..a5dcb18c881 100644
--- a/src/meshTools/searchableSurface/triSurfaceMesh.C
+++ b/src/meshTools/searchableSurface/triSurfaceMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,81 +35,58 @@ License
 
 namespace Foam
 {
-
-defineTypeNameAndDebug(triSurfaceMesh, 0);
-addToRunTimeSelectionTable(searchableSurface, triSurfaceMesh, dict);
-
+    defineTypeNameAndDebug(triSurfaceMesh, 0);
+    addToRunTimeSelectionTable(searchableSurface, triSurfaceMesh, dict);
 }
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-//// Special version of Time::findInstance that does not check headerOk
-//// to search for instances of raw files
-//Foam::word Foam::triSurfaceMesh::findRawInstance
-//(
-//    const Time& runTime,
-//    const fileName& dir,
-//    const word& name
-//)
-//{
-//    // Check current time first
-//    if (isFile(runTime.path()/runTime.timeName()/dir/name))
-//    {
-//        return runTime.timeName();
-//    }
-//    instantList ts = runTime.times();
-//    label instanceI;
-//
-//    for (instanceI = ts.size()-1; instanceI >= 0; --instanceI)
-//    {
-//        if (ts[instanceI].value() <= runTime.timeOutputValue())
-//        {
-//            break;
-//        }
-//    }
-//
-//    // continue searching from here
-//    for (; instanceI >= 0; --instanceI)
-//    {
-//        if (isFile(runTime.path()/ts[instanceI].name()/dir/name))
-//        {
-//            return ts[instanceI].name();
-//        }
-//    }
-//
-//
-//    // not in any of the time directories, try constant
-//
-//    // Note. This needs to be a hard-coded constant, rather than the
-//    // constant function of the time, because the latter points to
-//    // the case constant directory in parallel cases
-//
-//    if (isFile(runTime.path()/runTime.constant()/dir/name))
-//    {
-//        return runTime.constant();
-//    }
-//
-//    FatalErrorInFunction
-//        << "Cannot find file \"" << name << "\" in directory "
-//        << runTime.constant()/dir
-//        << exit(FatalError);
-//
-//    return runTime.constant();
-//}
-
-
-const Foam::fileName& Foam::triSurfaceMesh::checkFile
-(
-    const fileName& fName,
-    const fileName& objectName
-)
+Foam::fileName Foam::triSurfaceMesh::checkFile(const IOobject& io)
 {
+    const fileName fName(io.filePath());
     if (fName.empty())
     {
         FatalErrorInFunction
             << "Cannot find triSurfaceMesh starting from "
-            << objectName << exit(FatalError);
+            << io.objectPath() << exit(FatalError);
     }
+
+    return fName;
+}
+
+
+Foam::fileName Foam::triSurfaceMesh::checkFile
+(
+    const IOobject& io,
+    const dictionary& dict
+)
+{
+    fileName fName;
+    if (dict.readIfPresent("file", fName, false, false))
+    {
+        fName.expand();
+        if (!fName.isAbsolute())
+        {
+            fName = io.objectPath().path()/fName;
+        }
+        if (!exists(fName))
+        {
+            FatalErrorInFunction
+                << "Cannot find triSurfaceMesh at " << fName
+                << exit(FatalError);
+        }
+    }
+    else
+    {
+        fName = io.filePath();
+        if (!exists(fName))
+        {
+            FatalErrorInFunction
+                << "Cannot find triSurfaceMesh starting from "
+                << io.objectPath() << exit(FatalError);
+        }
+    }
+
     return fName;
 }
 
@@ -247,25 +224,13 @@ Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io)
 :
     // Find instance for triSurfaceMesh
     searchableSurface(io),
-    //(
-    //    IOobject
-    //    (
-    //        io.name(),
-    //        io.time().findInstance(io.local(), word::null),
-    //        io.local(),
-    //        io.db(),
-    //        io.readOpt(),
-    //        io.writeOpt(),
-    //        io.registerObject()
-    //    )
-    //),
     // Reused found instance in objectRegistry
     objectRegistry
     (
         IOobject
         (
             io.name(),
-            static_cast<const searchableSurface&>(*this).instance(),
+            searchableSurface::instance(),
             io.local(),
             io.db(),
             io.readOpt(),
@@ -273,14 +238,7 @@ Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io)
             false       // searchableSurface already registered under name
         )
     ),
-    triSurface
-    (
-        checkFile
-        (
-            searchableSurface::filePath(),
-            searchableSurface::objectPath()
-        )
-    ),
+    triSurface(checkFile(static_cast<const searchableSurface&>(*this))),
     triSurfaceRegionSearch(static_cast<const triSurface&>(*this)),
     minQuality_(-1),
     surfaceClosed_(-1)
@@ -298,25 +256,13 @@ Foam::triSurfaceMesh::triSurfaceMesh
 )
 :
     searchableSurface(io),
-    //(
-    //    IOobject
-    //    (
-    //        io.name(),
-    //        io.time().findInstance(io.local(), word::null),
-    //        io.local(),
-    //        io.db(),
-    //        io.readOpt(),
-    //        io.writeOpt(),
-    //        io.registerObject()
-    //    )
-    //),
     // Reused found instance in objectRegistry
     objectRegistry
     (
         IOobject
         (
             io.name(),
-            static_cast<const searchableSurface&>(*this).instance(),
+            searchableSurface::instance(),
             io.local(),
             io.db(),
             io.readOpt(),
@@ -324,21 +270,17 @@ Foam::triSurfaceMesh::triSurfaceMesh
             false       // searchableSurface already registered under name
         )
     ),
-    triSurface
-    (
-        checkFile
-        (
-            searchableSurface::filePath(),
-            searchableSurface::objectPath()
-        )
-    ),
+    triSurface(checkFile(static_cast<const searchableSurface&>(*this), dict)),
     triSurfaceRegionSearch(static_cast<const triSurface&>(*this), dict),
     minQuality_(-1),
     surfaceClosed_(-1)
 {
+    // Reading from supplied file name instead of objectPath/filePath
+    dict.readIfPresent("file", fName_, false, false);
+
     scalar scaleFactor = 0;
 
-    // allow rescaling of the surface points
+    // Allow rescaling of the surface points
     // eg, CAD geometries are often done in millimeters
     if (dict.readIfPresent("scale", scaleFactor) && scaleFactor > 0)
     {
@@ -470,7 +412,7 @@ Foam::triSurfaceMesh::edgeTree() const
             label nPoints;
             PatchTools::calcBounds
             (
-                static_cast<const triSurface&>(*this),
+                *this,
                 bb,
                 nPoints
             );
@@ -501,7 +443,7 @@ Foam::triSurfaceMesh::edgeTree() const
                     bEdges          // selected edges
                 ),
                 bb,                 // bb
-                maxTreeDepth(),      // maxLevel
+                maxTreeDepth(),     // maxLevel
                 10,                 // leafsize
                 3.0                 // duplicity
             )
@@ -527,7 +469,6 @@ const Foam::wordList& Foam::triSurfaceMesh::regions() const
 }
 
 
-// Find out if surface is closed.
 bool Foam::triSurfaceMesh::hasVolumeType() const
 {
     if (surfaceClosed_ == -1)
@@ -635,7 +576,7 @@ void Foam::triSurfaceMesh::getNormal
     vectorField& normal
 ) const
 {
-    const triSurface& s = static_cast<const triSurface&>(*this);
+    const triSurface& s = *this;
     const pointField& pts = s.points();
 
     normal.setSize(info.size());
@@ -796,7 +737,24 @@ bool Foam::triSurfaceMesh::writeObject
     IOstream::compressionType cmp
 ) const
 {
-    fileName fullPath(searchableSurface::objectPath());
+    fileName fullPath;
+    if (fName_.size())
+    {
+        // Override file name
+
+        fullPath = fName_;
+
+        fullPath.expand();
+        if (!fullPath.isAbsolute())
+        {
+            // Add directory from regIOobject
+            fullPath = searchableSurface::objectPath().path()/fullPath;
+        }
+    }
+    else
+    {
+        fullPath = searchableSurface::objectPath();
+    }
 
     if (!mkDir(fullPath.path()))
     {
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.H b/src/meshTools/searchableSurface/triSurfaceMesh.H
index fe512f67a0e..9f3ea6d0ae1 100644
--- a/src/meshTools/searchableSurface/triSurfaceMesh.H
+++ b/src/meshTools/searchableSurface/triSurfaceMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,10 +68,11 @@ class triSurfaceMesh
     public triSurface,
     public triSurfaceRegionSearch
 {
-private:
-
     // Private member data
 
+        //- Supplied fileName override
+        fileName fName_;
+
         //- Optional min triangle quality. Triangles below this get
         //  ignored for normal calculation
         scalar minQuality_;
@@ -88,20 +89,11 @@ private:
 
     // Private Member Functions
 
-        ////- Helper: find instance of files without header
-        //static word findRawInstance
-        //(
-        //    const Time&,
-        //    const fileName&,
-        //    const word&
-        //);
+        //- Return fileName to load IOobject from
+        static fileName checkFile(const IOobject& io);
 
-        //- Check file existence
-        static const fileName& checkFile
-        (
-            const fileName& fName,
-            const fileName& objectName
-        );
+        //- Return fileName to load IOobject from. Optional override of fileName
+        static fileName checkFile(const IOobject&, const dictionary&);
 
         //- Helper function for isSurfaceClosed
         static bool addFaceToEdge
-- 
GitLab


From 126125c18555054dcd11822b52db74254c585b5b Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 7 Jan 2017 09:38:54 +0000
Subject: [PATCH 024/277] Rationalized the keyword to specify a file name in a
 dictionary to 'file'

e.g. in tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T

    hot
    {
        type            externalCoupledTemperature;
        commsDir        "${FOAM_CASE}/comms";
        file            "data";
        initByExternal  yes;
        log             true;
        value           uniform 307.75; // 34.6 degC
    }

Previously both 'file' and 'fileName' were used inconsistently in different
classes and given that there is no confusion or ambiguity introduced by using
the simpler 'file' rather than 'fileName' this change simplifies the use and
maintenance of OpenFOAM.
---
 applications/test/fileNameClean/Test-fileNameClean.C        | 4 ++--
 .../utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C | 4 ++--
 .../interpolation2DTable/interpolation2DTable.C             | 6 +++---
 .../interpolationLookUpTable/interpolationLookUpTable.C     | 4 ++--
 .../interpolations/interpolationTable/interpolationTable.C  | 6 +++---
 src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C       | 6 +++---
 .../primitives/functions/Function1/TableFile/TableFile.C    | 6 +++---
 .../externalCoupledMixed/externalCoupledMixedFvPatchField.C | 6 +++---
 src/functionObjects/utilities/abort/abort.C                 | 4 ++--
 .../effectivenessHeatExchangerSource.H                      | 4 ++--
 .../derived/rotorDiskSource/profileModel/profileModel.C     | 4 ++--
 .../buoyantSimpleFoam/externalCoupledCavity/0/T             | 4 ++--
 12 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/applications/test/fileNameClean/Test-fileNameClean.C b/applications/test/fileNameClean/Test-fileNameClean.C
index 99d621fea8a..9441beecc86 100644
--- a/applications/test/fileNameClean/Test-fileNameClean.C
+++ b/applications/test/fileNameClean/Test-fileNameClean.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
     argList::noBanner();
     argList::noParallel();
     argList::validArgs.insert("fileName .. fileNameN");
-    argList::addOption("istream", "fileName", "test Istream values");
+    argList::addOption("istream", "file", "test Istream values");
 
     argList args(argc, argv, false, true);
 
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
index 9414149d414..645e292ea63 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -696,7 +696,7 @@ int main(int argc, char *argv[])
     Foam::argList::addOption
     (
         "outFile",
-        "fileName",
+        "file",
         "name of the file to save the simplified surface to"
     );
     #include "addDictOption.H"
diff --git a/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C b/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C
index 5b089f07ad7..a656d5f7fd4 100644
--- a/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C
+++ b/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,7 +93,7 @@ Foam::interpolation2DTable<Type>::interpolation2DTable(const dictionary& dict)
 :
     List<Tuple2<scalar, List<Tuple2<scalar, Type>>>>(),
     boundsHandling_(wordToBoundsHandling(dict.lookup("outOfBounds"))),
-    fileName_(dict.lookup("fileName")),
+    fileName_(dict.lookup("file")),
     reader_(tableReader<Type>::New(dict))
 {
     readTable();
@@ -445,7 +445,7 @@ void Foam::interpolation2DTable<Type>::checkOrder() const
 template<class Type>
 void Foam::interpolation2DTable<Type>::write(Ostream& os) const
 {
-    os.writeKeyword("fileName")
+    os.writeKeyword("file")
         << fileName_ << token::END_STATEMENT << nl;
     os.writeKeyword("outOfBounds")
         << boundsHandlingToWord(boundsHandling_) << token::END_STATEMENT << nl;
diff --git a/src/OpenFOAM/interpolations/interpolationLookUpTable/interpolationLookUpTable.C b/src/OpenFOAM/interpolations/interpolationLookUpTable/interpolationLookUpTable.C
index a0ee1691880..32e76884b61 100644
--- a/src/OpenFOAM/interpolations/interpolationLookUpTable/interpolationLookUpTable.C
+++ b/src/OpenFOAM/interpolations/interpolationLookUpTable/interpolationLookUpTable.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -284,7 +284,7 @@ Foam::interpolationLookUpTable<Type>::interpolationLookUpTable
 )
 :
     List<scalarField>(),
-    fileName_(fileName(dict.lookup("fileName")).expand()),
+    fileName_(fileName(dict.lookup("file")).expand()),
     dim_(0),
     min_(0.0),
     delta_(0.0),
diff --git a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C
index 8f09b560acb..6d71af14030 100644
--- a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C
+++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,7 +97,7 @@ Foam::interpolationTable<Type>::interpolationTable(const dictionary& dict)
 :
     List<Tuple2<scalar, Type>>(),
     boundsHandling_(wordToBoundsHandling(dict.lookup("outOfBounds"))),
-    fileName_(dict.lookup("fileName")),
+    fileName_(dict.lookup("file")),
     reader_(tableReader<Type>::New(dict))
 {
     readTable();
@@ -229,7 +229,7 @@ void Foam::interpolationTable<Type>::check() const
 template<class Type>
 void Foam::interpolationTable<Type>::write(Ostream& os) const
 {
-    os.writeKeyword("fileName")
+    os.writeKeyword("file")
         << fileName_ << token::END_STATEMENT << nl;
     os.writeKeyword("outOfBounds")
         << boundsHandlingToWord(boundsHandling_) << token::END_STATEMENT << nl;
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
index 513298f8c76..258d4aca773 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -214,7 +214,7 @@ Foam::Function1Types::CSV<Type>::CSV
     componentColumns_(coeffs_.lookup("componentColumns")),
     separator_(coeffs_.lookupOrDefault<string>("separator", string(","))[0]),
     mergeSeparators_(readBool(coeffs_.lookup("mergeSeparators"))),
-    fName_(coeffs_.lookup("fileName"))
+    fName_(coeffs_.lookup("file"))
 {
     if (componentColumns_.size() != pTraits<Type>::nComponents)
     {
@@ -293,7 +293,7 @@ void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
         << token::END_STATEMENT << nl;
     os.writeKeyword("mergeSeparators") << mergeSeparators_
         << token::END_STATEMENT << nl;
-    os.writeKeyword("fileName") << fName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("file") << fName_ << token::END_STATEMENT << nl;
     os  << decrIndent << indent << token::END_BLOCK << endl;
 }
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
index 8551d1a84a6..3e2645b9c20 100644
--- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
+++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,7 +38,7 @@ Foam::Function1Types::TableFile<Type>::TableFile
     fName_("none")
 {
     const dictionary coeffs(dict.subDict(entryName + "Coeffs"));
-    coeffs.lookup("fileName") >> fName_;
+    coeffs.lookup("file") >> fName_;
 
     fileName expandedFile(fName_);
     IFstream is(expandedFile.expand());
@@ -87,7 +87,7 @@ void Foam::Function1Types::TableFile<Type>::writeData(Ostream& os) const
     // the values themselves
     TableBase<Type>::writeEntries(os);
 
-    os.writeKeyword("fileName")<< fName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("file")<< fName_ << token::END_STATEMENT << nl;
     os  << decrIndent << indent << token::END_BLOCK << endl;
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C
index eab71dc17be..58b659684cb 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -497,7 +497,7 @@ externalCoupledMixedFvPatchField
 :
     mixedFvPatchField<Type>(p, iF),
     commsDir_(dict.lookup("commsDir")),
-    fName_(dict.lookup("fileName")),
+    fName_(dict.lookup("file")),
     waitInterval_(dict.lookupOrDefault("waitInterval", 1)),
     timeOut_(dict.lookupOrDefault("timeOut", 100*waitInterval_)),
     calcFrequency_(dict.lookupOrDefault("calcFrequency", 1)),
@@ -809,7 +809,7 @@ void Foam::externalCoupledMixedFvPatchField<Type>::write(Ostream& os) const
     mixedFvPatchField<Type>::write(os);
 
     os.writeKeyword("commsDir") << commsDir_ << token::END_STATEMENT << nl;
-    os.writeKeyword("fileName") << fName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("file") << fName_ << token::END_STATEMENT << nl;
     os.writeKeyword("waitInterval") << waitInterval_ << token::END_STATEMENT
         << nl;
     os.writeKeyword("timeOut") << timeOut_ << token::END_STATEMENT << nl;
diff --git a/src/functionObjects/utilities/abort/abort.C b/src/functionObjects/utilities/abort/abort.C
index 54853319ec9..896a2065b3c 100644
--- a/src/functionObjects/utilities/abort/abort.C
+++ b/src/functionObjects/utilities/abort/abort.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -123,7 +123,7 @@ bool Foam::functionObjects::abort::read(const dictionary& dict)
         action_ = nextWrite;
     }
 
-    if (dict.readIfPresent("fileName", abortFile_))
+    if (dict.readIfPresent("file", abortFile_))
     {
         abortFile_.expand();
     }
diff --git a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
index 42e35843931..e21ce5b52d2 100644
--- a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
+++ b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,7 +118,7 @@ Usage
 
 
 Note
-- the table with name "fileName" should have the same units as the
+- the table with name "file" should have the same units as the
   secondary mass flow rate and kg/s for phi
 - faceZone is the faces at the inlet of the cellzone, it needs to be
   created with flip map flags. It is used to integrate the net mass flow
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/profileModel/profileModel.C b/src/fvOptions/sources/derived/rotorDiskSource/profileModel/profileModel.C
index 8934fa53ad2..cd90b0dcdc1 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/profileModel/profileModel.C
+++ b/src/fvOptions/sources/derived/rotorDiskSource/profileModel/profileModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,7 +51,7 @@ Foam::profileModel::profileModel(const dictionary& dict, const word& name)
     name_(name),
     fName_(fileName::null)
 {
-    dict.readIfPresent("fileName", fName_);
+    dict.readIfPresent("file", fName_);
 }
 
 // * * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * //
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T b/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T
index 3bf09662bb0..2f39feb6e20 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T
@@ -35,7 +35,7 @@ boundaryField
     {
         type            externalCoupledTemperature;
         commsDir        "${FOAM_CASE}/comms";
-        fileName        "data";
+        file            "data";
         initByExternal  yes;
         log             true;
         value           uniform 307.75; // 34.6 degC
@@ -45,7 +45,7 @@ boundaryField
     {
         type            externalCoupledTemperature;
         commsDir        "${FOAM_CASE}/comms";
-        fileName        "data";
+        file            "data";
         initByExternal  yes;
         log             true;
         value           uniform 288.15; // 15 degC
-- 
GitLab


From 7e22440dc54cfaa912cf33be58badb764a498c60 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 7 Jan 2017 16:29:15 +0000
Subject: [PATCH 025/277] TDACChemistryModel: Added support for variable
 time-step and LTS in ISAT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

New reactingFoam tutorial counterFlowFlame2DLTS_GRI_TDAC demonstrates this new
functionality.

Additionally the ISAT table growth algorithm has been further optimized
providing an overall speedup of between 15% and 38% for the tests run so far.

Updates to TDAC and ISAT provided by Francesco Contino.

Implementation updated and integrated into OpenFOAM-dev by
Henry G. Weller, CFD Direct Ltd with the help of Francesco Contino.

Original code providing all algorithms for chemistry reduction and
tabulation contributed by Francesco Contino, Tommaso Lucchini, Gianluca
D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert.
---
 .../TDACChemistryModel/TDACChemistryModel.C   |   97 +-
 .../TDACChemistryModel/TDACChemistryModel.H   |   29 +-
 .../TDACChemistryModel/tabulation/ISAT/ISAT.C |  128 +-
 .../TDACChemistryModel/tabulation/ISAT/ISAT.H |   13 +-
 .../tabulation/ISAT/binaryNode/binaryNode.C   |   54 +-
 .../tabulation/ISAT/binaryNode/binaryNode.H   |    9 +-
 .../tabulation/ISAT/binaryTree/binaryTree.C   |  109 +-
 .../tabulation/ISAT/binaryTree/binaryTree.H   |    4 +-
 .../ISAT/chemPointISAT/chemPointISAT.C        |  256 +-
 .../ISAT/chemPointISAT/chemPointISAT.H        |   82 +-
 .../chemistryTabulationMethod.C               |    5 +-
 .../chemistryTabulationMethod.H               |   14 +-
 .../noChemistryTabulation.H                   |    7 +-
 .../counterFlowFlame2DLTS_GRI_TDAC/0/CH4      |   48 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/CO2      |   48 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/H2O      |   48 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/N2       |   48 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/O2       |   47 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/T        |   47 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/U        |   46 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault |   48 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/alphat   |   45 +
 .../counterFlowFlame2DLTS_GRI_TDAC/0/p        |   44 +
 .../constant/chemistryProperties              |  137 +
 .../constant/combustionProperties             |   27 +
 .../constant/reactions                        |   28 +
 .../constant/reactionsGRI                     | 5590 +++++++++++++++++
 .../constant/thermo.compressibleGas           |  152 +
 .../constant/thermo.compressibleGasGRI        | 1391 ++++
 .../constant/thermophysicalProperties         |   36 +
 .../constant/turbulenceProperties             |   21 +
 .../system/blockMeshDict                      |   82 +
 .../system/controlDict                        |   48 +
 .../system/decomposeParDict                   |   29 +
 .../system/fvSchemes                          |   57 +
 .../system/fvSolution                         |   83 +
 36 files changed, 8751 insertions(+), 206 deletions(-)
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactions
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactionsGRI
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes
 create mode 100644 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution

diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
index de13a49d018..ec67e628c0d 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,12 +37,26 @@ Foam::TDACChemistryModel<CompType, ThermoType>::TDACChemistryModel
 )
 :
     chemistryModel<CompType, ThermoType>(mesh, phaseName),
+    timeSteps_(0),
     NsDAC_(this->nSpecie_),
-    completeC_(this->nSpecie_,0.0),
+    completeC_(this->nSpecie_, 0),
     reactionsDisabled_(this->reactions_.size(), false),
-    completeToSimplifiedIndex_(this->nSpecie_,-1),
+    specieComp_(this->nSpecie_),
+    completeToSimplifiedIndex_(this->nSpecie_, -1),
     simplifiedToCompleteIndex_(this->nSpecie_),
-    specieComp_(this->nSpecie_)
+    tabulationResults_
+    (
+        IOobject
+        (
+            "TabulationResults",
+            this->time().timeName(),
+            this->mesh(),
+            IOobject::NO_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh,
+        0
+    )
 {
     basicMultiComponentMixture& composition = this->thermo().composition();
 
@@ -53,7 +67,7 @@ Foam::TDACChemistryModel<CompType, ThermoType>::TDACChemistryModel
         dynamicCast<const reactingMixture<ThermoType>&>(this->thermo())
        .specieComposition();
 
-    forAll(specieComp_,i)
+    forAll(specieComp_, i)
     {
         specieComp_[i] = specComp[this->Y()[i].name()];
     }
@@ -579,8 +593,13 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
     const DeltaTType& deltaT
 )
 {
+    // Increment counter of time-step
+    timeSteps_++;
+
     const bool reduced = mechRed_->active();
 
+    label nAdditionalEqn = (tabulation_->variableTimeStep() ? 1:0);
+
     basicMultiComponentMixture& composition = this->thermo().composition();
 
     // CPU time analysis
@@ -625,9 +644,9 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
     scalarField c0(this->nSpecie_);
 
     // Composition vector (Yi, T, p)
-    scalarField phiq(this->nEqns());
+    scalarField phiq(this->nEqns() + nAdditionalEqn);
 
-    scalarField Rphiq(this->nEqns());
+    scalarField Rphiq(this->nEqns() + nAdditionalEqn);
 
     forAll(rho, celli)
     {
@@ -643,6 +662,11 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
         }
         phiq[this->nSpecie()]=Ti;
         phiq[this->nSpecie()+1]=pi;
+        if (tabulation_->variableTimeStep())
+        {
+            phiq[this->nSpecie()+2] = deltaT[celli];
+        }
+
 
         // Initialise time progress
         scalar timeLeft = deltaT[celli];
@@ -668,7 +692,7 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
         // This position is reached when tabulation is not used OR
         // if the solution is not retrieved.
         // In the latter case, it adds the information to the tabulation
-        // (it will either expand the current data or add a new stored poin).
+        // (it will either expand the current data or add a new stored point).
         else
         {
             clockTime_.timeIncrement();
@@ -720,12 +744,28 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
                 {
                     Rphiq[i] = c[i]/rhoi*this->specieThermo_[i].W();
                 }
-
-                Rphiq[Rphiq.size()-2] = Ti;
-                Rphiq[Rphiq.size()-1] = pi;
-                tabulation_->add(phiq, Rphiq, rhoi);
+                if (tabulation_->variableTimeStep())
+                {
+                    Rphiq[Rphiq.size()-3] = Ti;
+                    Rphiq[Rphiq.size()-2] = pi;
+                    Rphiq[Rphiq.size()-1] = deltaT[celli];
+                }
+                else
+                {
+                    Rphiq[Rphiq.size()-2] = Ti;
+                    Rphiq[Rphiq.size()-1] = pi;
+                }
+                label growOrAdd =
+                    tabulation_->add(phiq, Rphiq, rhoi, deltaT[celli]);
+                if (growOrAdd)
+                {
+                    this->setTabulationResultsAdd(celli);
+                }
+                else
+                {
+                    this->setTabulationResultsGrow(celli);
+                }
             }
-
             addNewLeafCpuTime_ += clockTime_.timeIncrement();
 
             // When operations are done and if mechanism reduction is active,
@@ -840,4 +880,35 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
 }
 
 
+template<class CompType, class ThermoType>
+void Foam::TDACChemistryModel<CompType, ThermoType>::setTabulationResultsAdd
+(
+    const label celli
+)
+{
+    tabulationResults_[celli] = 0.0;
+}
+
+
+template<class CompType, class ThermoType>
+void Foam::TDACChemistryModel<CompType, ThermoType>::setTabulationResultsGrow
+(
+    const label celli
+)
+{
+    tabulationResults_[celli] = 1.0;
+}
+
+
+template<class CompType, class ThermoType>
+void Foam::TDACChemistryModel<CompType, ThermoType>::
+setTabulationResultsRetrieve
+(
+    const label celli
+)
+{
+    tabulationResults_[celli] = 2.0;
+}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
index 52a8f0860f9..fd92c6a641d 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -85,14 +85,16 @@ class TDACChemistryModel
 {
     // Private member data
 
+        label timeSteps_;
+
         // Mechanism reduction
         label NsDAC_;
         scalarField completeC_;
         scalarField simplifiedC_;
         Field<bool> reactionsDisabled_;
+        List<List<specieElement>> specieComp_;
         Field<label> completeToSimplifiedIndex_;
         DynamicList<label> simplifiedToCompleteIndex_;
-        List<List<specieElement>> specieComp_;
         autoPtr<chemistryReductionMethod<CompType, ThermoType>> mechRed_;
 
         // Tabulation
@@ -113,6 +115,12 @@ class TDACChemistryModel
         //- Log file for average time spent solving the chemistry
         autoPtr<OFstream> cpuSolveFile_;
 
+        // Field containing information about tabulation:
+        // 0 -> add (direct integration)
+        // 1 -> grow
+        // 2 -> retrieve
+        volScalarField tabulationResults_;
+
 
     // Private Member Functions
 
@@ -151,6 +159,12 @@ public:
 
     // Member Functions
 
+        inline label timeSteps() const
+        {
+            return timeSteps_;
+        }
+
+
         //- Create and return a TDAC log file of the given name
         inline autoPtr<OFstream> logFile(const word& name) const;
 
@@ -256,6 +270,17 @@ public:
 
             inline autoPtr<chemistryReductionMethod<CompType, ThermoType>>&
                 mechRed();
+
+            tmp<volScalarField> tabulationResults() const
+            {
+                return tabulationResults_;
+            }
+
+            void setTabulationResultsAdd(const label celli);
+
+            void setTabulationResultsGrow(const label celli);
+
+            void setTabulationResultsRetrieve(const label celli);
 };
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C
index cf54307b15a..41de9be5617 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,16 +41,11 @@ Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::ISAT
         chemistry
     ),
     chemisTree_(chemistry, this->coeffsDict_),
-    scaleFactor_(chemistry.nEqns(), 1.0),
+    scaleFactor_(chemistry.nEqns() + ((this->variableTimeStep()) ? 1 : 0), 1),
     runTime_(chemistry.time()),
     chPMaxLifeTime_
     (
-        this->coeffsDict_.lookupOrDefault
-        (
-            "chPMaxLifeTime",
-            (runTime_.endTime().value()-runTime_.startTime().value())
-           /runTime_.deltaT().value()
-        )
+        this->coeffsDict_.lookupOrDefault("chPMaxLifeTime", INT_MAX)
     ),
     maxGrowth_(this->coeffsDict_.lookupOrDefault("maxGrowth", INT_MAX)),
     checkEntireTreeInterval_
@@ -104,6 +99,36 @@ Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::ISAT
         }
         scaleFactor_[Ysize] = readScalar(scaleDict.lookup("Temperature"));
         scaleFactor_[Ysize+1] = readScalar(scaleDict.lookup("Pressure"));
+        if (this->variableTimeStep())
+        {
+            scaleFactor_[Ysize + 2] = readScalar(scaleDict.lookup("deltaT"));
+        }
+        else
+        {
+            // When the variableTimeStep option is false, if the application
+            // has variable time step activated, the maximum lifetime of a
+            // chemPoint should be 1 time step.
+            bool adjustTimeStep =
+                runTime_.controlDict().lookupOrDefault("adjustTimeStep", false);
+            if (chPMaxLifeTime_ > 1 && adjustTimeStep)
+            {
+                WarningInFunction
+                    << " variableTimeStep is not activate for ISAT while"
+                    << " the time step might be adjusted by the application."
+                    << nl
+                    << " This might lead to errors in the chemistry." << nl
+                    << " To avoid this warning either set chPMaxLifeTime to 1"
+                    << " or activate variableTimeStep." << endl;
+            }
+        }
+    }
+    if (this->variableTimeStep())
+    {
+        nAdditionalEqns_ = 3;
+    }
+    else
+    {
+        nAdditionalEqns_ = 2;
     }
 
     if (this->log())
@@ -190,16 +215,16 @@ void Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::calcNewC
     scalarField& Rphiq
 )
 {
-    label nEqns = this->chemistry_.nEqns(); // Full set of species
+    label nEqns = this->chemistry_.nEqns(); // Species, T, p
     bool mechRedActive = this->chemistry_.mechRed()->active();
     Rphiq = phi0->Rphi();
     scalarField dphi(phiq-phi0->phi());
     const scalarSquareMatrix& gradientsMatrix = phi0->A();
     List<label>& completeToSimplified(phi0->completeToSimplifiedIndex());
 
-    // Rphiq[i] = Rphi0[i]+A(i, j)dphi[j]
+    // Rphiq[i]=Rphi0[i]+A(i, j)dphi[j]
     // where Aij is dRi/dphi_j
-    for (label i=0; i<nEqns-2; i++)
+    for (label i=0; i<nEqns-nAdditionalEqns_; i++)
     {
         if (mechRedActive)
         {
@@ -216,9 +241,18 @@ void Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::calcNewC
                     }
                 }
                 Rphiq[i] +=
-                    gradientsMatrix(si, phi0->nActiveSpecies())*dphi[nEqns-2];
+                    gradientsMatrix(si, phi0->nActiveSpecies())*dphi[nEqns - 2];
                 Rphiq[i] +=
-                    gradientsMatrix(si, phi0->nActiveSpecies()+1)*dphi[nEqns-1];
+                    gradientsMatrix(si, phi0->nActiveSpecies() + 1)
+                   *dphi[nEqns - 1];
+
+                if (this->variableTimeStep())
+                {
+                    Rphiq[i] +=
+                        gradientsMatrix(si, phi0->nActiveSpecies() + 2)
+                       *dphi[nEqns];
+                }
+
                 // As we use an approximation of A, Rphiq should be checked for
                 // negative values
                 Rphiq[i] = max(0.0,Rphiq[i]);
@@ -260,10 +294,11 @@ bool Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::grow
 
     // Raise a flag when the chemPoint used has been grown more than the
     // allowed number of time
-    if (!phi0->toRemove() && phi0->nGrowth() > maxGrowth_)
+    if (phi0->nGrowth() > maxGrowth_)
     {
         cleaningRequired_ = true;
         phi0->toRemove() = true;
+        return false;
     }
 
     // If the solution RphiQ is still within the tolerance we try to grow it
@@ -294,14 +329,10 @@ Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::cleanAndBalance()
     {
         chemPointISAT<CompType, ThermoType>* xtmp =
             chemisTree_.treeSuccessor(x);
-        // timeOutputValue returns timeToUserTime(value()), therefore, it should
-        // be compare with timeToUserTime(deltaT)
-        scalar elapsedTime = runTime_.timeOutputValue() - x->timeTag();
-        scalar maxElapsedTime =
-            chPMaxLifeTime_
-          * runTime_.timeToUserTime(runTime_.deltaTValue());
-
-        if ((elapsedTime > maxElapsedTime) || (x->nGrowth() > maxGrowth_))
+
+        scalar elapsedTimeSteps = this->chemistry_.timeSteps() - x->timeTag();
+
+        if ((elapsedTimeSteps > chPMaxLifeTime_) || (x->nGrowth() > maxGrowth_))
         {
             chemisTree_.deleteLeaf(x);
             treeModified = true;
@@ -334,13 +365,13 @@ void Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::computeA
 (
     scalarSquareMatrix& A,
     const scalarField& Rphiq,
-    const scalar rhoi
+    const scalar rhoi,
+    const scalar dt
 )
 {
-    scalar dt = runTime_.deltaTValue();
     bool mechRedActive = this->chemistry_.mechRed()->active();
     label speciesNumber = this->chemistry_.nSpecie();
-    scalarField Rcq(this->chemistry_.nEqns());
+    scalarField Rcq(this->chemistry_.nEqns() + nAdditionalEqns_ - 2);
     for (label i=0; i<speciesNumber; i++)
     {
         label s2c = i;
@@ -350,8 +381,12 @@ void Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::computeA
         }
         Rcq[i] = rhoi*Rphiq[s2c]/this->chemistry_.specieThermo()[s2c].W();
     }
-    Rcq[speciesNumber] = Rphiq[Rphiq.size()-2];
-    Rcq[speciesNumber+1] = Rphiq[Rphiq.size()-1];
+    Rcq[speciesNumber] = Rphiq[Rphiq.size() - nAdditionalEqns_];
+    Rcq[speciesNumber+1] = Rphiq[Rphiq.size() - nAdditionalEqns_ + 1];
+    if (this->variableTimeStep())
+    {
+        Rcq[speciesNumber + 2] = Rphiq[Rphiq.size() - nAdditionalEqns_ + 2];
+    }
 
     // Aaa is computed implicitely,
     // A is given by A = C(psi0, t0+dt), where C is obtained through solving
@@ -399,6 +434,10 @@ void Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::computeA
     // For temperature and pressure, only unity on the diagonal
     A(speciesNumber, speciesNumber) = 1;
     A(speciesNumber+1, speciesNumber+1) = 1;
+    if (this->variableTimeStep())
+    {
+        A[speciesNumber + 2][speciesNumber + 2] = 1;
+    }
 
     // Inverse of (I-dt*J(psi(t0+dt)))
     LUscalarMatrix LUA(A);
@@ -463,20 +502,18 @@ bool Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::retrieve
 
     if (retrieved)
     {
-        scalar elapsedTime =
-            runTime_.timeOutputValue() - phi0->timeTag();
-        scalar maxElapsedTime =
-            chPMaxLifeTime_
-          * runTime_.timeToUserTime(runTime_.deltaTValue());
+        phi0->increaseNumRetrieve();
+        scalar elapsedTimeSteps =
+            this->chemistry_.timeSteps() - phi0->timeTag();
 
         // Raise a flag when the chemPoint has been used more than the allowed
         // number of time steps
-        if (elapsedTime > maxElapsedTime && !phi0->toRemove())
+        if (elapsedTimeSteps > chPMaxLifeTime_ && !phi0->toRemove())
         {
             cleaningRequired_ = true;
             phi0->toRemove() = true;
         }
-        lastSearch_->lastTimeUsed() = runTime_.timeOutputValue();
+        lastSearch_->lastTimeUsed() = this->chemistry_.timeSteps();
         addToMRU(phi0);
         calcNewC(phi0,phiq, Rphiq);
         nRetrieved_++;
@@ -492,13 +529,15 @@ bool Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::retrieve
 
 
 template<class CompType, class ThermoType>
-bool Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::add
+Foam::label Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::add
 (
     const scalarField& phiq,
     const scalarField& Rphiq,
-    const scalar rho
+    const scalar rho,
+    const scalar deltaT
 )
 {
+    label growthOrAddFlag = 1;
     // If lastSearch_ holds a valid pointer to a chemPoint AND the growPoints_
     // option is on, the code first tries to grow the point hold by lastSearch_
     if (lastSearch_ && growPoints_)
@@ -506,13 +545,12 @@ bool Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::add
         if (grow(lastSearch_,phiq, Rphiq))
         {
             nGrowth_++;
-            // the structure of the tree is not modified, return false
-            return false;
+            growthOrAddFlag = 0;
+            //the structure of the tree is not modified, return false
+            return growthOrAddFlag;
         }
     }
 
-    bool treeCleanedOrCleared(false);
-
     // If the code reach this point, it is either because lastSearch_ is not
     // valid, OR because growPoints_ is not on, OR because the grow operation
     // has failed. In the three cases, a new point is added to the tree.
@@ -567,16 +605,12 @@ bool Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::add
         // The structure has been changed, it will force the binary tree to
         // perform a new search and find the most appropriate point still stored
         lastSearch_ = nullptr;
-
-        // Either cleanAndBalance has changed the tree or it has been cleared
-        // in any case treeCleanedOrCleared should be set to true
-        treeCleanedOrCleared = true;
     }
 
     // Compute the A matrix needed to store the chemPoint.
-    label ASize = this->chemistry_.nEqns(); // Reduced when mechRed is active
+    label ASize = this->chemistry_.nEqns() + nAdditionalEqns_ - 2;
     scalarSquareMatrix A(ASize, Zero);
-    computeA(A, Rphiq, rho);
+    computeA(A, Rphiq, rho, deltaT);
 
     chemisTree().insertNewLeaf
     (
@@ -591,7 +625,7 @@ bool Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::add
 
     nAdd_++;
 
-    return treeCleanedOrCleared;
+    return growthOrAddFlag;
 }
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.H
index 148f0be2256..3a478146d98 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -112,6 +112,9 @@ class ISAT
 
         bool cleaningRequired_;
 
+        //- Number of equations in addition to the species eqs.
+        label nAdditionalEqns_;
+
 
     // Private Member Functions
 
@@ -168,7 +171,8 @@ class ISAT
         (
             scalarSquareMatrix& A,
             const scalarField& Rphiq,
-            const scalar rho
+            const scalar rho,
+            const scalar dt
         );
 
 
@@ -224,11 +228,12 @@ public:
         //  This function can grow an existing point or add a new leaf to the
         //  binary tree Input : phiq the new composition to store Rphiq the
         //  mapping of the new composition point
-        virtual bool add
+        virtual label add
         (
             const scalarField& phiq,
             const scalarField& Rphiq,
-            const scalar rho
+            const scalar rho,
+            const scalar deltaT
         );
 
         virtual bool update()
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C
index 45bf42a4c4e..bfb092a7370 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,8 +36,11 @@ Foam::binaryNode<CompType, ThermoType>::binaryNode
     leafRight_(nullptr),
     nodeLeft_(nullptr),
     nodeRight_(nullptr),
-    parent_(nullptr)
-{}
+    parent_(nullptr),
+    variableTimeStep_(false),
+    nAdditionalEqns_(0)
+{
+}
 
 
 template<class CompType, class ThermoType>
@@ -53,8 +56,18 @@ Foam::binaryNode<CompType, ThermoType>::binaryNode
     nodeLeft_(nullptr),
     nodeRight_(nullptr),
     parent_(parent),
-    v_(elementLeft->completeSpaceSize(),0.0)
+    variableTimeStep_(elementLeft->variableTimeStep()),
+    v_(elementLeft->completeSpaceSize(), 0)
 {
+    if (this->variableTimeStep_)
+    {
+        nAdditionalEqns_ = 3;
+    }
+    else
+    {
+        nAdditionalEqns_ = 2;
+    }
+
     calcV(elementLeft, elementRight, v_);
     a_ = calcA(elementLeft, elementRight);
 }
@@ -70,9 +83,22 @@ Foam::binaryNode<CompType, ThermoType>::binaryNode
     nodeLeft_(bn->nodeLeft()),
     nodeRight_(bn->nodeRight()),
     parent_(bn->parent()),
+    variableTimeStep_
+    (
+        this->coeffsDict_.lookupOrDefault("variableTimeStep", false)
+    ),
     v_(bn->v()),
     a_(bn->a())
-{}
+{
+    if (this->variableTimeStep_)
+    {
+        nAdditionalEqns_ = 3;
+    }
+    else
+    {
+        nAdditionalEqns_ = 2;
+    }
+}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -102,7 +128,7 @@ Foam::binaryNode<CompType, ThermoType>::calcV
         bool outOfIndexI = true;
         if (mechReductionActive)
         {
-            if (i<elementLeft->completeSpaceSize()-2)
+            if (i<elementLeft->completeSpaceSize() - nAdditionalEqns_)
             {
                 si = elementLeft->completeToSimplifiedIndex()[i];
                 outOfIndexI = (si==-1);
@@ -110,8 +136,9 @@ Foam::binaryNode<CompType, ThermoType>::calcV
             else// temperature and pressure
             {
                 outOfIndexI = false;
-                label dif = i-(elementLeft->completeSpaceSize()-2);
-                si = elementLeft->nActiveSpecies()+dif;
+                const label dif =
+                    i - (elementLeft->completeSpaceSize() - nAdditionalEqns_);
+                si = elementLeft->nActiveSpecies() + dif;
             }
         }
         if (!mechReductionActive || (mechReductionActive && !(outOfIndexI)))
@@ -123,7 +150,7 @@ Foam::binaryNode<CompType, ThermoType>::calcV
                 bool outOfIndexJ = true;
                 if (mechReductionActive)
                 {
-                    if (j<elementLeft->completeSpaceSize()-2)
+                    if (j < elementLeft->completeSpaceSize() - nAdditionalEqns_)
                     {
                         sj = elementLeft->completeToSimplifiedIndex()[j];
                         outOfIndexJ = (sj==-1);
@@ -131,8 +158,13 @@ Foam::binaryNode<CompType, ThermoType>::calcV
                     else
                     {
                         outOfIndexJ = false;
-                        label dif = j-(elementLeft->completeSpaceSize()-2);
-                        sj = elementLeft->nActiveSpecies()+dif;
+                        const label dif =
+                            j
+                          - (
+                                elementLeft->completeSpaceSize()
+                              - nAdditionalEqns_
+                            );
+                        sj = elementLeft->nActiveSpecies() + dif;
                     }
                 }
                 if
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H
index d747054eddb..4b23e805d7f 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,14 @@ public:
     //- Parent node
     binaryNode<CompType, ThermoType>* parent_;
 
+    //- Switch to allow variable time step (off by default)
+    bool variableTimeStep_;
+
+    //- Number of equations in addition to the species eqs.
+    label nAdditionalEqns_;
+
     scalarField v_;
+
     scalar a_;
 
     //- Compute vector v:
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.C
index 7ed6495991f..a0332db4628 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -66,7 +66,7 @@ bool Foam::binaryTree<CompType, ThermoType>::inSubTree
 {
     if ((n2ndSearch_ < max2ndSearch_) && (y!=nullptr))
     {
-        scalar vPhi=0.0;
+        scalar vPhi = 0;
         const scalarField& v = y->v();
         const scalar a = y->a();
         // compute v*phi
@@ -74,18 +74,18 @@ bool Foam::binaryTree<CompType, ThermoType>::inSubTree
         {
             vPhi += phiq[i]*v[i];
         }
-        if (vPhi<=a)// on the left side of the node
+        if (vPhi <= a)// on the left side of the node
         {
             if (y->nodeLeft() == nullptr)// left is a chemPoint
             {
                 n2ndSearch_++;
                 if (y->leafLeft()->inEOA(phiq))
                 {
-                    x=y->leafLeft();
+                    x = y->leafLeft();
                     return true;
                 }
             }
-            else// the left side is a node
+            else // the left side is a node
             {
                 if (inSubTree(phiq, y->nodeLeft(),x))
                 {
@@ -100,16 +100,16 @@ bool Foam::binaryTree<CompType, ThermoType>::inSubTree
                 // we reach the end of the subTree we can return the result
                 if (y->leafRight()->inEOA(phiq))
                 {
-                    x=y->leafRight();
+                    x = y->leafRight();
                     return true;
                 }
                 else
                 {
-                    x=nullptr;
+                    x = nullptr;
                     return false;
                 }
             }
-            else// test for n2ndSearch is done in the call of inSubTree
+            else // test for n2ndSearch is done in the call of inSubTree
             {
                 return inSubTree(phiq, y->nodeRight(),x);
             }
@@ -124,11 +124,11 @@ bool Foam::binaryTree<CompType, ThermoType>::inSubTree
                     return true;
                 }
             }
-            else// the right side is a node
+            else // the right side is a node
             {
                 if (inSubTree(phiq, y->nodeRight(),x))
                 {
-                    x=y->leafRight();
+                    x = y->leafRight();
                     return true;
                 }
             }
@@ -139,12 +139,12 @@ bool Foam::binaryTree<CompType, ThermoType>::inSubTree
                 n2ndSearch_++;
                 if (y->leafLeft()->inEOA(phiq))
                 {
-                    x=y->leafLeft();
+                    x = y->leafLeft();
                     return true;
                 }
                 else
                 {
-                    x=nullptr;
+                    x = nullptr;
                     return false;
                 }
             }
@@ -216,7 +216,7 @@ template<class CompType, class ThermoType>
 Foam::chemPointISAT<CompType, ThermoType>*
 Foam::binaryTree<CompType, ThermoType>::chemPSibling(bn* y)
 {
-    if (y->parent()!=nullptr)
+    if (y->parent() != nullptr)
     {
         if (y == y->parent()->nodeLeft())// y is on the left, return right side
         {
@@ -235,6 +235,7 @@ Foam::binaryTree<CompType, ThermoType>::chemPSibling(bn* y)
             return nullptr;
         }
     }
+
     // the binaryNode is root_ and has no sibling
     return nullptr;
 }
@@ -367,7 +368,9 @@ Foam::label Foam::binaryTree<CompType, ThermoType>::depth(bn* subTreeRoot)
     }
     else
     {
-        return 1+max
+        return
+            1
+          + max
             (
                 depth(subTreeRoot->nodeLeft()),
                 depth(subTreeRoot->nodeRight())
@@ -379,14 +382,14 @@ Foam::label Foam::binaryTree<CompType, ThermoType>::depth(bn* subTreeRoot)
 template<class CompType, class ThermoType>
 void Foam::binaryTree<CompType, ThermoType>::insertNewLeaf
 (
- const scalarField& phiq,
- const scalarField& Rphiq,
- const scalarSquareMatrix& A,
- const scalarField& scaleFactor,
- const scalar& epsTol,
- const label nCols,
- chP*& phi0
- )
+    const scalarField& phiq,
+    const scalarField& Rphiq,
+    const scalarSquareMatrix& A,
+    const scalarField& scaleFactor,
+    const scalar& epsTol,
+    const label nCols,
+    chP*& phi0
+)
 {
     if (size_ == 0) // no points are stored
     {
@@ -452,7 +455,7 @@ void Foam::binaryTree<CompType, ThermoType>::insertNewLeaf
             root_ = newNode;
         }
 
-        phi0->node()=newNode;
+        phi0->node() = newNode;
         newChemPoint->node()=newNode;
     }
     size_++;
@@ -530,7 +533,7 @@ bool Foam::binaryTree<CompType, ThermoType>::secondaryBTSearch
             n2ndSearch_++;
             if (xS->inEOA(phiq))
             {
-                x=xS;
+                x = xS;
                 return true;
             }
         }
@@ -557,7 +560,7 @@ bool Foam::binaryTree<CompType, ThermoType>::secondaryBTSearch
             {
                 return true;
             }
-            y=y->parent();
+            y = y->parent();
         }
         // if we reach this point it is either because
         // we did not find another covering EOA in the entire tree or
@@ -574,7 +577,6 @@ bool Foam::binaryTree<CompType, ThermoType>::secondaryBTSearch
 template<class CompType, class ThermoType>
 void Foam::binaryTree<CompType, ThermoType>::deleteLeaf(chP*& phi0)
 {
-
     if (size_ == 1) // only one point is stored
     {
         deleteDemandDrivenData(phi0);
@@ -595,7 +597,7 @@ void Foam::binaryTree<CompType, ThermoType>::deleteLeaf(chP*& phi0)
                 root_->leafLeft()=siblingPhi0;
                 siblingPhi0->node()=root_;
             }
-            else if (z==z->parent()->nodeLeft())
+            else if (z == z->parent()->nodeLeft())
             {
                 z->parent()->leafLeft() = siblingPhi0;
                 z->parent()->nodeLeft() = nullptr;
@@ -642,16 +644,16 @@ void Foam::binaryTree<CompType, ThermoType>::balance()
 
     //1) walk through the entire tree by starting with the tree's most left
     // chemPoint
-    chP* x=treeMin();
+    chP* x = treeMin();
     List<chP*> chemPoints(size_);
     label chPi=0;
     //2) compute the mean composition
-    while(x!=nullptr)
+    while (x != nullptr)
     {
         const scalarField& phij = x->phi();
         mean += phij;
         chemPoints[chPi++] = x;
-        x=treeSuccessor(x);
+        x = treeSuccessor(x);
     }
     mean /= size_;
 
@@ -691,15 +693,15 @@ void Foam::binaryTree<CompType, ThermoType>::balance()
     phiMaxDir.sort();
     // delete reference to all node since the tree is reshaped
     deleteAllNode();
-    root_=nullptr;
+    root_ = nullptr;
 
     // add the node for the two extremum
     bn* newNode = new bn
-        (
-            chemPoints[phiMaxDir.indices()[0]],
-            chemPoints[phiMaxDir.indices()[phiMaxDir.size()-1]],
-            nullptr
-        );
+    (
+        chemPoints[phiMaxDir.indices()[0]],
+        chemPoints[phiMaxDir.indices()[phiMaxDir.size()-1]],
+        nullptr
+    );
     root_ = newNode;
 
     chemPoints[phiMaxDir.indices()[0]]->node() = newNode;
@@ -719,8 +721,8 @@ void Foam::binaryTree<CompType, ThermoType>::balance()
             new bn(phi0,chemPoints[phiMaxDir.indices()[cpi]], phi0->node());
         // make the parent of phi0 point to the newly created node
         insertNode(phi0, nodeToAdd);
-        phi0->node()=nodeToAdd;
-        chemPoints[phiMaxDir.indices()[cpi]]->node()=nodeToAdd;
+        phi0->node() = nodeToAdd;
+        chemPoints[phiMaxDir.indices()[cpi]]->node() = nodeToAdd;
     }
 }
 
@@ -800,14 +802,14 @@ Foam::binaryTree<CompType, ThermoType>::treeSuccessor(chP* x)
 template<class CompType, class ThermoType>
 void Foam::binaryTree<CompType, ThermoType>::clear()
 {
-    // recursively delete the element in the subTree
+    // Recursively delete the element in the subTree
     deleteSubTree();
 
-    // reset root node (should already be nullptr)
-    root_=nullptr;
+    // Reset root node (should already be nullptr)
+    root_ = nullptr;
 
-    // reset size_
-    size_=0;
+    // Reset size_
+    size_ = 0;
 }
 
 
@@ -818,4 +820,25 @@ bool Foam::binaryTree<CompType, ThermoType>::isFull()
 }
 
 
+template<class CompType, class ThermoType>
+void Foam::binaryTree<CompType, ThermoType>::resetNumRetrieve()
+{
+    // Has to go along each chP of the tree
+    if (size_ > 0)
+    {
+        // First finds the first leaf
+        chP* chP0 = treeMin();
+        chP0->resetNumRetrieve();
+
+        // Then go to each successor
+        chP* nextChP = treeSuccessor(chP0);
+        while (nextChP != nullptr)
+        {
+            nextChP->resetNumRetrieve();
+            nextChP = treeSuccessor(nextChP);
+        }
+    }
+}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.H
index a2d267733e9..9d4275d9929 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryTree/binaryTree.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -230,6 +230,8 @@ public:
 
         //- ListFull
         bool isFull();
+
+        void resetNumRetrieve();
 };
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C
index 584ecf2d63a..ecc212e1eb8 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,7 +33,6 @@ License
 template<class CompType, class ThermoType>
 Foam::scalar Foam::chemPointISAT<CompType, ThermoType>::tolerance_;
 
-
 // * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * * //
 
 template<class CompType, class ThermoType>
@@ -75,7 +74,7 @@ void Foam::chemPointISAT<CompType, ThermoType>::qrDecompose
             d[k] = -scale*sigma;
             for (label j=k+1; j<nCols; j++)
             {
-                sum=0;
+                sum = 0;
                 for ( label i=k; i<nCols; i++)
                 {
                     sum += R(i, k)*R(i, j);
@@ -137,11 +136,11 @@ void Foam::chemPointISAT<CompType, ThermoType>::qrUpdate
         }
         else if (mag(w[i]) > mag(w[i+1]))
         {
-            w[i] = mag(w[i])*sqrt(1 + sqr(w[i+1]/w[i]));
+            w[i] = mag(w[i])*sqrt(1.0 + sqr(w[i+1]/w[i]));
         }
         else
         {
-            w[i] = mag(w[i+1])*sqrt(1 + sqr(w[i]/w[i+1]));
+            w[i] = mag(w[i+1])*sqrt(1.0 + sqr(w[i]/w[i+1]));
         }
     }
 
@@ -171,18 +170,18 @@ void Foam::chemPointISAT<CompType, ThermoType>::rotate
     if (a == 0)
     {
         c = 0;
-        s = (b >= 0 ? 1.0 : -1.0);
+        s = (b >= 0 ? 1 : -1);
     }
     else if (mag(a) > mag(b))
     {
         fact = b/a;
-        c = sign(a)/sqrt(1 + sqr(fact));
+        c = sign(a)/sqrt(1.0 + sqr(fact));
         s = fact*c;
     }
     else
     {
         fact = a/b;
-        s = sign(b)/sqrt(1 + sqr(fact));
+        s = sign(b)/sqrt(1.0 + sqr(fact));
         c = fact*s;
     }
     for (label j=i;j<n;j++)
@@ -220,20 +219,43 @@ Foam::chemPointISAT<CompType, ThermoType>::chemPointISAT
     completeSpaceSize_(completeSpaceSize),
     nGrowth_(0),
     nActiveSpecies_(chemistry.mechRed()->NsSimp()),
-    completeToSimplifiedIndex_(completeSpaceSize-2),
     simplifiedToCompleteIndex_(nActiveSpecies_),
-    timeTag_(chemistry_.time().timeOutputValue()),
-    lastTimeUsed_(chemistry_.time().timeOutputValue()),
+    timeTag_(chemistry_.timeSteps()),
+    lastTimeUsed_(chemistry_.timeSteps()),
     toRemove_(false),
     maxNumNewDim_(coeffsDict.lookupOrDefault("maxNumNewDim",0)),
-    printProportion_(coeffsDict.lookupOrDefault("printProportion",false))
+    printProportion_(coeffsDict.lookupOrDefault("printProportion",false)),
+    numRetrieve_(0),
+    nLifeTime_(0),
+    variableTimeStep_
+    (
+        coeffsDict.lookupOrDefault("variableTimeStep", false)
+    ),
+    completeToSimplifiedIndex_
+    (
+        completeSpaceSize - (2 + (variableTimeStep_ == 1 ? 1 : 0))
+    )
 {
     tolerance_=tolerance;
 
+    if (this->variableTimeStep_)
+    {
+        nAdditionalEqns_ = 3;
+        iddeltaT_ = completeSpaceSize - 1;
+        scaleFactor_[iddeltaT_] *= phi_[iddeltaT_] / tolerance_;
+    }
+    else
+    {
+        nAdditionalEqns_ = 2;
+        iddeltaT_ = completeSpaceSize; // will not be used
+    }
+    idT_ = completeSpaceSize - nAdditionalEqns_;
+    idp_ = completeSpaceSize - nAdditionalEqns_ + 1;
+
     bool isMechRedActive = chemistry_.mechRed()->active();
     if (isMechRedActive)
     {
-        for (label i=0; i<completeSpaceSize-2; i++)
+        for (label i=0; i<completeSpaceSize-nAdditionalEqns_; i++)
         {
             completeToSimplifiedIndex_[i] =
                 chemistry.completeToSimplifiedIndex()[i];
@@ -248,7 +270,7 @@ Foam::chemPointISAT<CompType, ThermoType>::chemPointISAT
     label reduOrCompDim = completeSpaceSize;
     if (isMechRedActive)
     {
-        reduOrCompDim = nActiveSpecies_ + 2;
+        reduOrCompDim = nActiveSpecies_+nAdditionalEqns_;
     }
 
     // SVD decomposition A = U*D*V^T
@@ -313,14 +335,32 @@ Foam::chemPointISAT<CompType, ThermoType>::chemPointISAT
     completeSpaceSize_(p.completeSpaceSize()),
     nGrowth_(p.nGrowth()),
     nActiveSpecies_(p.nActiveSpecies()),
-    completeToSimplifiedIndex_(p.completeToSimplifiedIndex()),
     simplifiedToCompleteIndex_(p.simplifiedToCompleteIndex()),
     timeTag_(p.timeTag()),
     lastTimeUsed_(p.lastTimeUsed()),
     toRemove_(p.toRemove()),
-    maxNumNewDim_(p.maxNumNewDim())
+    maxNumNewDim_(p.maxNumNewDim()),
+    numRetrieve_(0),
+    nLifeTime_(0),
+    variableTimeStep_(p.variableTimeStep()),
+    completeToSimplifiedIndex_(p.completeToSimplifiedIndex())
 {
-   tolerance_ = p.tolerance();
+    tolerance_ = p.tolerance();
+
+    if (this->variableTimeStep_)
+    {
+        nAdditionalEqns_ = 3;
+        idT_ = completeSpaceSize() - 3;
+        idp_ = completeSpaceSize() - 2;
+        iddeltaT_ = completeSpaceSize() - 1;
+    }
+    else
+    {
+        nAdditionalEqns_ = 2;
+        idT_ = completeSpaceSize() - 2;
+        idp_ = completeSpaceSize() - 1;
+        iddeltaT_ = completeSpaceSize(); // will not be used
+    }
 }
 
 
@@ -331,11 +371,20 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
 {
     scalarField dphi(phiq-phi());
     bool isMechRedActive = chemistry_.mechRed()->active();
-    label dim = (isMechRedActive) ? nActiveSpecies_ : completeSpaceSize()-2;
-    scalar epsTemp=0;
+    label dim(0);
+    if (isMechRedActive)
+    {
+        dim = nActiveSpecies_;
+    }
+    else
+    {
+        dim = completeSpaceSize() - nAdditionalEqns_;
+    }
+
+    scalar epsTemp = 0;
     List<scalar> propEps(completeSpaceSize(), scalar(0));
 
-    for (label i=0; i<completeSpaceSize()-2; i++)
+    for (label i=0; i<completeSpaceSize()-nAdditionalEqns_; i++)
     {
         scalar temp = 0;
 
@@ -356,8 +405,12 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
                 temp += LT_(si, j)*dphi[sj];
             }
 
-            temp += LT_(si, nActiveSpecies_)*dphi[completeSpaceSize()-2];
-            temp += LT_(si, nActiveSpecies_+1)*dphi[completeSpaceSize()-1];
+            temp += LT_(si, dim)*dphi[idT_];
+            temp += LT_(si, dim+1)*dphi[idp_];
+            if (variableTimeStep_)
+            {
+                temp += LT_(si, dim+2)*dphi[iddeltaT_];
+            }
         }
         else
         {
@@ -373,28 +426,65 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
     }
 
     // Temperature
-    epsTemp +=
-        sqr
-        (
-            LT_(dim, dim)*dphi[completeSpaceSize()-2]
-           +LT_(dim, dim+1)*dphi[completeSpaceSize()-1]
-        );
+    if (variableTimeStep_)
+    {
+        epsTemp +=
+            sqr
+            (
+                LT_(dim, dim)*dphi[idT_]
+               +LT_(dim, dim+1)*dphi[idp_]
+               +LT_(dim, dim+2)*dphi[iddeltaT_]
+            );
+    }
+    else
+    {
+        epsTemp +=
+            sqr
+            (
+                LT_(dim, dim)*dphi[idT_]
+               +LT_(dim, dim+1)*dphi[idp_]
+            );
+    }
 
     // Pressure
-    epsTemp += sqr(LT_(dim+1, dim+1)*dphi[completeSpaceSize()-1]);
+    if (variableTimeStep_)
+    {
+        epsTemp +=
+            sqr
+            (
+                LT_(dim+1, dim+1)*dphi[idp_]
+               +LT_(dim+1, dim+2)*dphi[iddeltaT_]
+            );
+    }
+    else
+    {
+        epsTemp += sqr(LT_(dim+1, dim+1)*dphi[idp_]);
+    }
+
+    if (variableTimeStep_)
+    {
+        epsTemp += sqr(LT_[dim+2][dim+2]*dphi[iddeltaT_]);
+    }
 
     if (printProportion_)
     {
-        propEps[completeSpaceSize()-2] =
-        sqr
+        propEps[idT_] = sqr
         (
-            LT_(dim, dim)*dphi[completeSpaceSize()-2]
-          + LT_(dim, dim+1)*dphi[completeSpaceSize()-1]
+            LT_(dim, dim)*dphi[idT_]
+          + LT_(dim, dim+1)*dphi[idp_]
         );
 
-        propEps[completeSpaceSize()-1] =
-            sqr(LT_(dim+1, dim+1)*dphi[completeSpaceSize()-1]);
+        propEps[idp_] =
+            sqr(LT_(dim+1, dim+1)*dphi[idp_]);
+
+        if (variableTimeStep_)
+        {
+            propEps[iddeltaT_] =
+                sqr(LT_[dim+2][dim+2]*dphi[iddeltaT_]);
+        }
+
     }
+
     if (sqrt(epsTemp) > 1 + tolerance_)
     {
         if (printProportion_)
@@ -410,16 +500,20 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
                 }
             }
             word propName;
-            if (maxIndex >= completeSpaceSize()-2)
+            if (maxIndex >= completeSpaceSize() - nAdditionalEqns_)
             {
-                if(maxIndex == completeSpaceSize()-2)
+                if (maxIndex == idT_)
                 {
                     propName = "T";
                 }
-                else if(maxIndex == completeSpaceSize()-1)
+                else if (maxIndex == idp_)
                 {
                     propName = "p";
                 }
+                else if (maxIndex == iddeltaT_)
+                {
+                    propName = "deltaT";
+                }
             }
             else
             {
@@ -461,7 +555,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::checkSolution
 
     // Since we build only the solution for the species, T and p are not
     // included
-    for (label i=0; i<completeSpaceSize()-2; i++)
+    for (label i=0; i<completeSpaceSize()-nAdditionalEqns_; i++)
     {
         dRl = 0;
         if (isMechRedActive)
@@ -476,8 +570,12 @@ bool Foam::chemPointISAT<CompType, ThermoType>::checkSolution
                     label sj=simplifiedToCompleteIndex_[j];
                     dRl += Avar(si, j)*dphi[sj];
                 }
-                dRl += Avar(si, nActiveSpecies_)*dphi[completeSpaceSize()-2];
-                dRl += Avar(si, nActiveSpecies_+1)*dphi[completeSpaceSize()-1];
+                dRl += Avar(si, nActiveSpecies_)*dphi[idT_];
+                dRl += Avar(si, nActiveSpecies_+1)*dphi[idp_];
+                if (variableTimeStep_)
+                {
+                    dRl += Avar(si, nActiveSpecies_+2)*dphi[iddeltaT_];
+                }
             }
             else
             {
@@ -522,7 +620,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
 
         // check if the difference of active species is lower than the maximum
         // number of new dimensions allowed
-        for (label i=0; i<completeSpaceSize()-2; i++)
+        for (label i=0; i<completeSpaceSize()-nAdditionalEqns_; i++)
         {
             // first test if the current chemPoint has an inactive species
             // corresponding to an active one in the query point
@@ -588,8 +686,8 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
         {
             scalarSquareMatrix LTvar = LT_; // take a copy of LT_
             scalarSquareMatrix Avar = A_; // take a copy of A_
-            LT_ = scalarSquareMatrix(nActiveSpecies_+2, Zero);
-            A_ = scalarSquareMatrix(nActiveSpecies_+2, Zero);
+            LT_ = scalarSquareMatrix(nActiveSpecies_+nAdditionalEqns_, Zero);
+            A_ = scalarSquareMatrix(nActiveSpecies_+nAdditionalEqns_, Zero);
 
             // write the initial active species
             for (label i=0; i<initNActiveSpecies; i++)
@@ -621,6 +719,13 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
                 LTvar(initNActiveSpecies+1, initNActiveSpecies+1);
             A_(nActiveSpecies_+1, nActiveSpecies_+1)=
                 Avar(initNActiveSpecies+1, initNActiveSpecies+1);
+            if (variableTimeStep_)
+            {
+                LT_(nActiveSpecies_+2, nActiveSpecies_+2)=
+                    LTvar(initNActiveSpecies+2, initNActiveSpecies+2);
+                A_(nActiveSpecies_+2, nActiveSpecies_+2)=
+                    Avar(initNActiveSpecies+2, initNActiveSpecies+2);
+            }
 
             for (label i=initNActiveSpecies; i<nActiveSpecies_;i++)
             {
@@ -631,7 +736,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
             }
         }
 
-        dim = nActiveSpecies_ + 2;
+        dim = nActiveSpecies_ + nAdditionalEqns_;
     }
 
     // beginning of grow algorithm
@@ -641,7 +746,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
 
     for (label i=0; i<dim; i++)
     {
-        for (label j=i; j<dim-2; j++)// LT is upper triangular
+        for (label j=i; j<dim-nAdditionalEqns_; j++)// LT is upper triangular
         {
             label sj = j;
             if (isMechRedActive)
@@ -650,8 +755,12 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
             }
             phiTilde[i] += LT_(i, j)*dphi[sj];
         }
-        phiTilde[i] += LT_(i, dim-2)*dphi[completeSpaceSize()-2];
-        phiTilde[i] += LT_(i, dim-1)*dphi[completeSpaceSize()-1];
+        phiTilde[i] += LT_(i, dim-nAdditionalEqns_)*dphi[idT_];
+        phiTilde[i] += LT_(i, dim-nAdditionalEqns_+1)*dphi[idp_];
+        if (variableTimeStep_)
+        {
+            phiTilde[i] += LT_(i, dim-nAdditionalEqns_ + 2)*dphi[iddeltaT_];
+        }
         normPhiTilde += sqr(phiTilde[i]);
     }
 
@@ -678,4 +787,55 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
 }
 
 
+template<class CompType, class ThermoType>
+void Foam::chemPointISAT<CompType, ThermoType>::increaseNumRetrieve()
+{
+    this->numRetrieve_++;
+}
+
+
+template<class CompType, class ThermoType>
+void Foam::chemPointISAT<CompType, ThermoType>::resetNumRetrieve()
+{
+    this->numRetrieve_ = 0;
+}
+
+
+template<class CompType, class ThermoType>
+void Foam::chemPointISAT<CompType, ThermoType>::increaseNLifeTime()
+{
+    this->nLifeTime_++;
+}
+
+
+template<class CompType, class ThermoType>
+Foam::label Foam::chemPointISAT<CompType, ThermoType>::
+simplifiedToCompleteIndex
+(
+    const label i
+)
+{
+    if (i < nActiveSpecies_)
+    {
+        return simplifiedToCompleteIndex_[i];
+    }
+    else if (i == nActiveSpecies_)
+    {
+        return completeSpaceSize_-nAdditionalEqns_;
+    }
+    else if (i == nActiveSpecies_ + 1)
+    {
+        return completeSpaceSize_-nAdditionalEqns_ + 1;
+    }
+    else if (variableTimeStep_ && (i == nActiveSpecies_ + 2))
+    {
+        return completeSpaceSize_-nAdditionalEqns_ + 2;
+    }
+    else
+    {
+        return -1;
+    }
+}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H
index f1cff9013df..cae8ea213b7 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -146,6 +146,7 @@ class chemPointISAT
         TDACChemistryModel<CompType, ThermoType>& chemistry_;
 
         //- Vector storing the composition, temperature and pressure
+        //  and deltaT if a variable time step is set on
         scalarField phi_;
 
         //- Vector storing the mapping of the composition phi
@@ -176,14 +177,12 @@ class chemPointISAT
         //- Number of active species stored in the chemPoint
         label nActiveSpecies_;
 
-
-        // Vectors that store the index conversion between the simplified
-        // and the complete chemical mechanism
-        List<label> completeToSimplifiedIndex_;
+        //- Vectors that store the index conversion between the simplified
+        //  and the complete chemical mechanism
         List<label> simplifiedToCompleteIndex_;
 
-        scalar timeTag_;
-        scalar lastTimeUsed_;
+        label timeTag_;
+        label lastTimeUsed_;
 
         bool toRemove_;
 
@@ -191,6 +190,26 @@ class chemPointISAT
 
         Switch printProportion_;
 
+        //- Variable to store the number of retrieves the chemPoint
+        //  will generate at each time step
+        label numRetrieve_;
+
+        //- Variable to store the number of time steps the chempoint is allowed
+        //   to still live according to the maxChPLifeTime_ parameter
+        label nLifeTime_;
+
+        //- Switch to allow variable time step (off by default)
+        Switch variableTimeStep_;
+
+        List<label> completeToSimplifiedIndex_;
+
+        //- Number of equations in addition to the species eqs.
+        label nAdditionalEqns_;
+
+        label idT_;
+        label idp_;
+        label iddeltaT_;
+
         //- QR decomposition of a matrix
         //  Input : nCols cols number
         //  R the matrix to decompose
@@ -311,6 +330,7 @@ public:
         {
             return A_;
         }
+
         inline const scalarSquareMatrix& LT() const
         {
             return LT_;
@@ -336,32 +356,23 @@ public:
             return simplifiedToCompleteIndex_;
         }
 
-        inline label simplifiedToCompleteIndex(label i)
-        {
-            if (i < nActiveSpecies_)
-            {
-                return simplifiedToCompleteIndex_[i];
-            }
-            else if (i == nActiveSpecies_)
-            {
-                return completeSpaceSize_-2;
-            }
-            else if (i == nActiveSpecies_+1)
-            {
-                return completeSpaceSize_-1;
-            }
-            else
-            {
-                return -1;
-            }
-        }
+        //- Increases the number of retrieves the chempoint has generated
+        void increaseNumRetrieve();
 
-        inline const scalar& timeTag()
+        //- Resets the number of retrieves at each time step
+        void resetNumRetrieve();
+
+        //- Increases the "counter" of the chP life
+        void increaseNLifeTime();
+
+        label simplifiedToCompleteIndex(const label i);
+
+        inline const label& timeTag()
         {
             return timeTag_;
         }
 
-        inline scalar& lastTimeUsed()
+        inline label& lastTimeUsed()
         {
             return lastTimeUsed_;
         }
@@ -376,6 +387,21 @@ public:
             return maxNumNewDim_;
         }
 
+        inline const label& numRetrieve()
+        {
+            return numRetrieve_;
+        }
+
+        inline const label& nLifeTime()
+        {
+            return nLifeTime_;
+        }
+
+        inline Switch variableTimeStep()
+        {
+            return variableTimeStep_;
+        }
+
         // ISAT functions
 
             //- To RETRIEVE the mapping from the stored chemPoint phi, the query
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C
index df64804fe29..0803a3ac300 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,8 @@ Foam::chemistryTabulationMethod<CompType, ThermoType>::chemistryTabulationMethod
     active_(coeffsDict_.lookupOrDefault<Switch>("active", false)),
     log_(coeffsDict_.lookupOrDefault<Switch>("log", false)),
     chemistry_(chemistry),
-    tolerance_(coeffsDict_.lookupOrDefault<scalar>("tolerance", 1e-4))
+    tolerance_(coeffsDict_.lookupOrDefault<scalar>("tolerance", 1e-4)),
+    variableTimeStep_(coeffsDict_.lookupOrDefault("variableTimeStep", false))
 {}
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H
index 66053a8c636..f35dc694a82 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -74,6 +74,8 @@ protected:
 
     scalar tolerance_;
 
+    //- Switch to allow variable time step (off by default)
+    const Switch variableTimeStep_;
 
 public:
 
@@ -130,6 +132,11 @@ public:
             return active_ && log_;
         }
 
+        inline bool variableTimeStep()
+        {
+            return variableTimeStep_;
+        }
+
         inline scalar tolerance() const
         {
             return tolerance_;
@@ -152,11 +159,12 @@ public:
         // Add function: (only virtual here)
         // Add information to the tabulation algorithm. Give the reference for
         // future retrieve (phiQ) and the corresponding result (RphiQ).
-        virtual bool add
+        virtual label add
         (
             const scalarField& phiQ,
             const scalarField& RphiQ,
-            const scalar rho
+            const scalar rho,
+            const scalar deltaT
         ) = 0;
 
         // Update function: (only virtual here)
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/noChemistryTabulation/noChemistryTabulation.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/noChemistryTabulation/noChemistryTabulation.H
index 14bf59bfb22..9b780013861 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/noChemistryTabulation/noChemistryTabulation.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/noChemistryTabulation/noChemistryTabulation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -104,11 +104,12 @@ public:
         // existing point or add a new leaf to the binary tree Input : phiq
         // the new composition to store Rphiq the mapping of the new
         // composition point
-        virtual bool add
+        virtual label add
         (
             const scalarField& phiq,
             const scalarField& Rphiq,
-            const scalar rho
+            const scalar rho,
+            const scalar deltaT
         )
         {
             NotImplemented;
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4
new file mode 100644
index 00000000000..15dd5eddf16
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      CH4;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0.0;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 1.0;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 0.0;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0.0;
+        value           uniform 0.0;
+
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2
new file mode 100644
index 00000000000..2fef379ec76
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      CO2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0;
+        value           uniform 0;
+
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O
new file mode 100644
index 00000000000..ca227356306
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      H2O;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0;
+        value           uniform 0;
+
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2
new file mode 100644
index 00000000000..c0af2935811
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      N2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 1;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 0.77;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 1;
+        value           uniform 1;
+
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2
new file mode 100644
index 00000000000..95649fdac4d
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      O2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 0.0;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 0.23;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0;
+        value           uniform 0;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T
new file mode 100644
index 00000000000..8825b9971cb
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      T;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 2000;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 293;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 293;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 293;
+        value           uniform 293;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U
new file mode 100644
index 00000000000..c235ba3d659
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U
@@ -0,0 +1,46 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    location    "0";
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform (0.1 0 0);
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform (-0.1 0 0);
+    }
+    outlet
+    {
+        type            pressureInletOutletVelocity;
+        value           $internalField;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault
new file mode 100644
index 00000000000..96004af717f
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      Ydefault;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0.0;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 0.0;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 0.0;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0.0;
+        value           uniform 0.0;
+
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat
new file mode 100644
index 00000000000..c74018bbdb3
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alphat;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    air
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            zeroGradient;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p
new file mode 100644
index 00000000000..d3bca9b21e5
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p
@@ -0,0 +1,44 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 1e5;
+
+boundaryField
+{
+    fuel
+    {
+        type            zeroGradient;
+    }
+    air
+    {
+        type            zeroGradient;
+    }
+    outlet
+    {
+        type            totalPressure;
+        p0              $internalField;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
new file mode 100644
index 00000000000..09adc4c2f5e
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
@@ -0,0 +1,137 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      chemistryProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+chemistryType
+{
+    chemistrySolver   ode;
+    chemistryThermo   psi;
+    TDAC              on;
+}
+
+chemistry       on;
+
+initialChemicalTimeStep 1e-7;
+
+odeCoeffs
+{
+    solver          seulex;
+    absTol          1e-12;
+    relTol          1e-1;
+}
+
+reduction
+{
+    // Activate reduction
+    active  on;
+
+    // Switch logging of the reduction statistics and performance
+    log         on;
+
+    // Tolerance depends on the reduction method, see details for each method
+    tolerance   1e-4;
+
+    // Available methods: DRG, DAC, DRGEP, PFA, EFA
+    method DAC;
+
+    // Search initiating set (SIS) of species, needed for most methods
+    initialSet
+    {
+        CO;
+        CH4;
+        HO2;
+    }
+
+    // For DAC, option to automatically change the SIS switch from HO2 to H2O
+    // and CO to CO2, + disable fuel
+    automaticSIS    off;
+
+    // When automaticSIS, the method needs to know the fuel
+    fuelSpecies
+    {
+        CH4 1;
+    }
+}
+
+tabulation
+{
+    // Activate tabulation
+    active      on;
+
+    // Switch logging of the tabulation statistics and performance
+    log         on;
+
+    printProportion    off;
+
+    printNumRetrieve   off;
+
+    variableTimeStep   on;
+
+    // Tolerance used for retrieve and grow
+    tolerance   1e-3;
+
+    // ISAT is the only method currently available
+    method    ISAT;
+
+    // Scale factors used in the definition of the ellipsoid of accuracy
+    scaleFactor
+    {
+        otherSpecies 1;
+        Temperature  25000;
+        Pressure     1e15;
+        deltaT       1;
+    }
+
+    // Maximum number of leafs stored in the binary tree
+    maxNLeafs  2000;
+
+    // Maximum life time of the leafs (in time steps) used in unsteady
+    // simulations to force renewal of the stored chemPoints and keep the tree
+    // small
+    chPMaxLifeTime 100;
+
+    // Maximum number of growth allowed on a chemPoint to avoid distorted
+    // chemPoints
+    maxGrowth  10;
+
+    // Number of time steps between analysis of the tree to remove old
+    // chemPoints or try to balance it
+    checkEntireTreeInterval  5;
+
+    // Parameters used to decide whether to balance or not if the tree's depth
+    // is larger than maxDepthFactor*log2(nLeafs) then balance the tree
+    maxDepthFactor   2;
+
+    // Try to balance the tree only if the size of the tree is greater
+    minBalanceThreshold 30;
+
+    // Activate the use of a MRU (most recently used) list
+    MRURetrieve false;
+
+    // Maximum size of the MRU list
+    maxMRUSize 0;
+
+    // Allow to grow points
+    growPoints  true;
+
+    // When mechanism reduction is used, new dimensions might be added
+    // maxNumNewDim set the maximum number of new dimensions added during a
+    // growth
+    maxNumNewDim 10;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties
new file mode 100644
index 00000000000..d5c12209c1d
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties
@@ -0,0 +1,27 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      combustionProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+combustionModel  laminar<psiChemistryCombustion>;
+
+active  true;
+
+laminarCoeffs
+{
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactions b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactions
new file mode 100644
index 00000000000..418f256c348
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactions
@@ -0,0 +1,28 @@
+elements
+(
+O
+C
+H
+N
+);
+
+species
+(
+    O2
+    H2O
+    CH4
+    CO2
+    N2
+);
+
+reactions
+{
+    methaneReaction
+    {
+        type     irreversibleArrheniusReaction;
+        reaction "CH4 + 2O2 = CO2 + 2H2O";
+        A        5.2e16;
+        beta     0;
+        Ta       14906;
+    }
+}
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactionsGRI b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactionsGRI
new file mode 100644
index 00000000000..de8ff0a5179
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/reactionsGRI
@@ -0,0 +1,5590 @@
+elements
+5
+(
+O
+H
+C
+N
+Ar
+)
+;
+
+species
+53
+(
+CH4
+CH2O
+CH3O
+H
+O2
+H2
+O
+OH
+H2O
+HO2
+H2O2
+C
+CH
+CH2
+CH2(S)
+CH3
+CO
+CO2
+HCO
+CH2OH
+CH3OH
+C2H
+C2H2
+C2H3
+C2H4
+C2H5
+C2H6
+HCCO
+CH2CO
+HCCOH
+N
+NH
+NH2
+NH3
+NNH
+NO
+NO2
+N2O
+HNO
+CN
+HCN
+H2CN
+HCNN
+HCNO
+HOCN
+HNCO
+NCO
+N2
+AR
+C3H7
+C3H8
+CH2CHO
+CH3CHO
+)
+;
+
+reactions
+{
+    un-named-reaction-0
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + H2 = H + OH";
+        A               38.7;
+        beta            2.7;
+        Ta              3149.98;
+    }
+    un-named-reaction-1
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HO2 = OH + O2";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-2
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + H2O2 = OH + HO2";
+        A               9630;
+        beta            2;
+        Ta              2012.76;
+    }
+    un-named-reaction-3
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH = H + CO";
+        A               5.7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-4
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2 = H + HCO";
+        A               8e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-5
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2(S) = H2 + CO";
+        A               1.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-6
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2(S) = H + HCO";
+        A               1.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-7
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3 = H + CH2O";
+        A               5.06e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-8
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH4 = OH + CH3";
+        A               1.02e+06;
+        beta            1.5;
+        Ta              4327.44;
+    }
+    un-named-reaction-9
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCO = OH + CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-10
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCO = H + CO2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-11
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2O = OH + HCO";
+        A               3.9e+10;
+        beta            0;
+        Ta              1781.3;
+    }
+    un-named-reaction-12
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2OH = OH + CH2O";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-13
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3O = OH + CH2O";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-14
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3OH = OH + CH2OH";
+        A               388;
+        beta            2.5;
+        Ta              1559.89;
+    }
+    un-named-reaction-15
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3OH = OH + CH3O";
+        A               130;
+        beta            2.5;
+        Ta              2515.96;
+    }
+    un-named-reaction-16
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H = CH + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-17
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = H + HCCO";
+        A               13500;
+        beta            2;
+        Ta              956.063;
+    }
+    un-named-reaction-18
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = OH + C2H";
+        A               4.6e+16;
+        beta            -1.41;
+        Ta              14567.4;
+    }
+    un-named-reaction-19
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = CO + CH2";
+        A               6940;
+        beta            2;
+        Ta              956.063;
+    }
+    un-named-reaction-20
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H3 = H + CH2CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-21
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H4 = CH3 + HCO";
+        A               12500;
+        beta            1.83;
+        Ta              110.702;
+    }
+    un-named-reaction-22
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H5 = CH3 + CH2O";
+        A               2.24e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-23
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H6 = OH + C2H5";
+        A               89800;
+        beta            1.92;
+        Ta              2863.16;
+    }
+    un-named-reaction-24
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCCO = H + 2CO";
+        A               1e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-25
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2CO = OH + HCCO";
+        A               1e+10;
+        beta            0;
+        Ta              4025.53;
+    }
+    un-named-reaction-26
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2CO = CH2 + CO2";
+        A               1.75e+09;
+        beta            0;
+        Ta              679.308;
+    }
+    un-named-reaction-27
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O2 + CO = O + CO2";
+        A               2.5e+09;
+        beta            0;
+        Ta              24052.5;
+    }
+    un-named-reaction-28
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O2 + CH2O = HO2 + HCO";
+        A               1e+11;
+        beta            0;
+        Ta              20127.6;
+    }
+    un-named-reaction-29
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + 2O2 = HO2 + O2";
+        A               2.08e+13;
+        beta            -1.24;
+        Ta              0;
+    }
+    un-named-reaction-30
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + H2O = HO2 + H2O";
+        A               1.126e+13;
+        beta            -0.76;
+        Ta              0;
+    }
+    un-named-reaction-31
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + N2 = HO2 + N2";
+        A               2.6e+13;
+        beta            -1.24;
+        Ta              0;
+    }
+    un-named-reaction-32
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + AR = HO2 + AR";
+        A               7e+11;
+        beta            -0.8;
+        Ta              0;
+    }
+    un-named-reaction-33
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 = O + OH";
+        A               2.65e+13;
+        beta            -0.6707;
+        Ta              8574.88;
+    }
+    un-named-reaction-34
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + H2 = 2H2";
+        A               9e+10;
+        beta            -0.6;
+        Ta              0;
+    }
+    un-named-reaction-35
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + H2O = H2 + H2O";
+        A               6e+13;
+        beta            -1.25;
+        Ta              0;
+    }
+    un-named-reaction-36
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + CO2 = H2 + CO2";
+        A               5.5e+14;
+        beta            -2;
+        Ta              0;
+    }
+    un-named-reaction-37
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = O + H2O";
+        A               3.97e+09;
+        beta            0;
+        Ta              337.641;
+    }
+    un-named-reaction-38
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = O2 + H2";
+        A               4.48e+10;
+        beta            0;
+        Ta              537.408;
+    }
+    un-named-reaction-39
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = 2OH";
+        A               8.4e+10;
+        beta            0;
+        Ta              319.526;
+    }
+    un-named-reaction-40
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + H2O2 = HO2 + H2";
+        A               12100;
+        beta            2;
+        Ta              2616.59;
+    }
+    un-named-reaction-41
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + H2O2 = OH + H2O";
+        A               1e+10;
+        beta            0;
+        Ta              1811.49;
+    }
+    un-named-reaction-42
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH = C + H2";
+        A               1.65e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-43
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2(S) = CH + H2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-44
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH4 = CH3 + H2";
+        A               660000;
+        beta            1.62;
+        Ta              5454.59;
+    }
+    un-named-reaction-45
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCO = H2 + CO";
+        A               7.34e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-46
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2O = HCO + H2";
+        A               57400;
+        beta            1.9;
+        Ta              1379.75;
+    }
+    un-named-reaction-47
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = H2 + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-48
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = OH + CH3";
+        A               1.65e+08;
+        beta            0.65;
+        Ta              -142.906;
+    }
+    un-named-reaction-49
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = CH2(S) + H2O";
+        A               3.28e+10;
+        beta            -0.09;
+        Ta              306.947;
+    }
+    un-named-reaction-50
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = H + CH2OH";
+        A               41500;
+        beta            1.63;
+        Ta              968.14;
+    }
+    un-named-reaction-51
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = H2 + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-52
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = OH + CH3";
+        A               1.5e+09;
+        beta            0.5;
+        Ta              -55.351;
+    }
+    un-named-reaction-53
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = CH2(S) + H2O";
+        A               2.62e+11;
+        beta            -0.23;
+        Ta              538.415;
+    }
+    un-named-reaction-54
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3OH = CH2OH + H2";
+        A               17000;
+        beta            2.1;
+        Ta              2450.54;
+    }
+    un-named-reaction-55
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3OH = CH3O + H2";
+        A               4200;
+        beta            2.1;
+        Ta              2450.54;
+    }
+    un-named-reaction-56
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H3 = H2 + C2H2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-57
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H4 = C2H3 + H2";
+        A               1325;
+        beta            2.53;
+        Ta              6159.06;
+    }
+    un-named-reaction-58
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H5 = H2 + C2H4";
+        A               2e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-59
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H6 = C2H5 + H2";
+        A               115000;
+        beta            1.9;
+        Ta              3789.03;
+    }
+    un-named-reaction-60
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCCO = CH2(S) + CO";
+        A               1e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-61
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CO = HCCO + H2";
+        A               5e+10;
+        beta            0;
+        Ta              4025.53;
+    }
+    un-named-reaction-62
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CO = CH3 + CO";
+        A               1.13e+10;
+        beta            0;
+        Ta              1724.94;
+    }
+    un-named-reaction-63
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCCOH = H + CH2CO";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-64
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2 = H + H2O";
+        A               216000;
+        beta            1.51;
+        Ta              1725.95;
+    }
+    un-named-reaction-65
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2OH = O + H2O";
+        A               35.7;
+        beta            2.4;
+        Ta              -1061.73;
+    }
+    un-named-reaction-66
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HO2 = O2 + H2O";
+        A               1.45e+10;
+        beta            0;
+        Ta              -251.596;
+    }
+    un-named-reaction-67
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2O2 = HO2 + H2O";
+        A               2e+09;
+        beta            0;
+        Ta              214.863;
+    }
+    un-named-reaction-68
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2O2 = HO2 + H2O";
+        A               1.7e+15;
+        beta            0;
+        Ta              14798.9;
+    }
+    un-named-reaction-69
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C = H + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-70
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH = H + HCO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-71
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2 = H + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-72
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2 = CH + H2O";
+        A               11300;
+        beta            2;
+        Ta              1509.57;
+    }
+    un-named-reaction-73
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2(S) = H + CH2O";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-74
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3 = CH2 + H2O";
+        A               56000;
+        beta            1.6;
+        Ta              2727.3;
+    }
+    un-named-reaction-75
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3 = CH2(S) + H2O";
+        A               6.44e+14;
+        beta            -1.34;
+        Ta              713.022;
+    }
+    un-named-reaction-76
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH4 = CH3 + H2O";
+        A               100000;
+        beta            1.6;
+        Ta              1569.96;
+    }
+    un-named-reaction-77
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CO = H + CO2";
+        A               47600;
+        beta            1.228;
+        Ta              35.2234;
+    }
+    un-named-reaction-78
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HCO = H2O + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-79
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2O = HCO + H2O";
+        A               3.43e+06;
+        beta            1.18;
+        Ta              -224.926;
+    }
+    un-named-reaction-80
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2OH = H2O + CH2O";
+        A               5e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-81
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3O = H2O + CH2O";
+        A               5e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-82
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3OH = CH2OH + H2O";
+        A               1440;
+        beta            2;
+        Ta              -422.681;
+    }
+    un-named-reaction-83
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3OH = CH3O + H2O";
+        A               6300;
+        beta            2;
+        Ta              754.787;
+    }
+    un-named-reaction-84
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H = H + HCCO";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-85
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = H + CH2CO";
+        A               2.18e-07;
+        beta            4.5;
+        Ta              -503.191;
+    }
+    un-named-reaction-86
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = H + HCCOH";
+        A               504;
+        beta            2.3;
+        Ta              6793.08;
+    }
+    un-named-reaction-87
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = C2H + H2O";
+        A               33700;
+        beta            2;
+        Ta              7044.68;
+    }
+    un-named-reaction-88
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = CH3 + CO";
+        A               4.83e-07;
+        beta            4;
+        Ta              -1006.38;
+    }
+    un-named-reaction-89
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H3 = H2O + C2H2";
+        A               5e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-90
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H4 = C2H3 + H2O";
+        A               3600;
+        beta            2;
+        Ta              1257.98;
+    }
+    un-named-reaction-91
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H6 = C2H5 + H2O";
+        A               3540;
+        beta            2.12;
+        Ta              437.776;
+    }
+    un-named-reaction-92
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CO = HCCO + H2O";
+        A               7.5e+09;
+        beta            0;
+        Ta              1006.38;
+    }
+    un-named-reaction-93
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HO2 = O2 + H2O2";
+        A               1.3e+08;
+        beta            0;
+        Ta              -820.202;
+    }
+    un-named-reaction-94
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HO2 = O2 + H2O2";
+        A               4.2e+11;
+        beta            0;
+        Ta              6038.29;
+    }
+    un-named-reaction-95
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH2 = OH + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-96
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH3 = O2 + CH4";
+        A               1e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-97
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH3 = OH + CH3O";
+        A               3.78e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-98
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CO = OH + CO2";
+        A               1.5e+11;
+        beta            0;
+        Ta              11875.3;
+    }
+    un-named-reaction-99
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH2O = HCO + H2O2";
+        A               5600;
+        beta            2;
+        Ta              6038.29;
+    }
+    un-named-reaction-100
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + O2 = O + CO";
+        A               5.8e+10;
+        beta            0;
+        Ta              289.838;
+    }
+    un-named-reaction-101
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + CH2 = H + C2H";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-102
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + CH3 = H + C2H2";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-103
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + O2 = O + HCO";
+        A               6.71e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-104
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + H2 = H + CH2";
+        A               1.08e+11;
+        beta            0;
+        Ta              1564.92;
+    }
+    un-named-reaction-105
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + H2O = H + CH2O";
+        A               5.71e+09;
+        beta            0;
+        Ta              -379.909;
+    }
+    un-named-reaction-106
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH2 = H + C2H2";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-107
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH3 = H + C2H3";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-108
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH4 = H + C2H4";
+        A               6e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-109
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CO2 = HCO + CO";
+        A               1.9e+11;
+        beta            0;
+        Ta              7946.4;
+    }
+    un-named-reaction-110
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH2O = H + CH2CO";
+        A               9.46e+10;
+        beta            0;
+        Ta              -259.143;
+    }
+    un-named-reaction-111
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + HCCO = CO + C2H2";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-112
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + O2 = OH + H + CO";
+        A               5e+09;
+        beta            0;
+        Ta              754.787;
+    }
+    un-named-reaction-113
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + H2 = H + CH3";
+        A               500;
+        beta            2;
+        Ta              3638.07;
+    }
+    un-named-reaction-114
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2CH2 = H2 + C2H2";
+        A               1.6e+12;
+        beta            0;
+        Ta              6010.12;
+    }
+    un-named-reaction-115
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + CH3 = H + C2H4";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-116
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + CH4 = 2CH3";
+        A               2460;
+        beta            2;
+        Ta              4161.39;
+    }
+    un-named-reaction-117
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + HCCO = C2H3 + CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-118
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + N2 = CH2 + N2";
+        A               1.5e+10;
+        beta            0;
+        Ta              301.915;
+    }
+    un-named-reaction-119
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + AR = CH2 + AR";
+        A               9e+09;
+        beta            0;
+        Ta              301.915;
+    }
+    un-named-reaction-120
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + O2 = H + OH + CO";
+        A               2.8e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-121
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + O2 = CO + H2O";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-122
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + H2 = CH3 + H";
+        A               7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-123
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + H2O = CH2 + H2O";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-124
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CH3 = H + C2H4";
+        A               1.2e+10;
+        beta            0;
+        Ta              -286.819;
+    }
+    un-named-reaction-125
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CH4 = 2CH3";
+        A               1.6e+10;
+        beta            0;
+        Ta              -286.819;
+    }
+    un-named-reaction-126
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO = CH2 + CO";
+        A               9e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-127
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO2 = CH2 + CO2";
+        A               7e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-128
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO2 = CO + CH2O";
+        A               1.4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-129
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + C2H6 = CH3 + C2H5";
+        A               4e+10;
+        beta            0;
+        Ta              -276.755;
+    }
+    un-named-reaction-130
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + O2 = O + CH3O";
+        A               3.56e+10;
+        beta            0;
+        Ta              15337.3;
+    }
+    un-named-reaction-131
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + O2 = OH + CH2O";
+        A               2.31e+09;
+        beta            0;
+        Ta              10222.3;
+    }
+    un-named-reaction-132
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + H2O2 = HO2 + CH4";
+        A               24.5;
+        beta            2.47;
+        Ta              2606.53;
+    }
+    un-named-reaction-133
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2CH3 = H + C2H5";
+        A               6.84e+09;
+        beta            0.1;
+        Ta              5333.83;
+    }
+    un-named-reaction-134
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + HCO = CH4 + CO";
+        A               2.648e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-135
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH2O = HCO + CH4";
+        A               3.32;
+        beta            2.81;
+        Ta              2948.7;
+    }
+    un-named-reaction-136
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH3OH = CH2OH + CH4";
+        A               30000;
+        beta            1.5;
+        Ta              5001.72;
+    }
+    un-named-reaction-137
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH3OH = CH3O + CH4";
+        A               10000;
+        beta            1.5;
+        Ta              5001.72;
+    }
+    un-named-reaction-138
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C2H4 = C2H3 + CH4";
+        A               227;
+        beta            2;
+        Ta              4629.36;
+    }
+    un-named-reaction-139
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C2H6 = C2H5 + CH4";
+        A               6140;
+        beta            1.74;
+        Ta              5258.35;
+    }
+    un-named-reaction-140
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCO + H2O = H + CO + H2O";
+        A               1.5e+15;
+        beta            -1;
+        Ta              8554.25;
+    }
+    un-named-reaction-141
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCO + O2 = HO2 + CO";
+        A               1.345e+10;
+        beta            0;
+        Ta              201.276;
+    }
+    un-named-reaction-142
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2OH + O2 = HO2 + CH2O";
+        A               1.8e+10;
+        beta            0;
+        Ta              452.872;
+    }
+    un-named-reaction-143
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3O + O2 = HO2 + CH2O";
+        A               4.28e-16;
+        beta            7.6;
+        Ta              -1776.27;
+    }
+    un-named-reaction-144
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H + O2 = HCO + CO";
+        A               1e+10;
+        beta            0;
+        Ta              -379.909;
+    }
+    un-named-reaction-145
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H + H2 = H + C2H2";
+        A               5.68e+07;
+        beta            0.9;
+        Ta              1002.86;
+    }
+    un-named-reaction-146
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = HCO + CH2O";
+        A               4.58e+13;
+        beta            -1.39;
+        Ta              510.739;
+    }
+    un-named-reaction-147
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H5 + O2 = HO2 + C2H4";
+        A               8.4e+08;
+        beta            0;
+        Ta              1949.87;
+    }
+    un-named-reaction-148
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCCO + O2 = OH + 2CO";
+        A               3.2e+09;
+        beta            0;
+        Ta              429.725;
+    }
+    un-named-reaction-149
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HCCO = 2CO + C2H2";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-150
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N + NO = N2 + O";
+        A               2.7e+10;
+        beta            0;
+        Ta              178.633;
+    }
+    un-named-reaction-151
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N + O2 = NO + O";
+        A               9e+06;
+        beta            1;
+        Ta              3270.74;
+    }
+    un-named-reaction-152
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N + OH = NO + H";
+        A               3.36e+10;
+        beta            0;
+        Ta              193.729;
+    }
+    un-named-reaction-153
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N2O + O = N2 + O2";
+        A               1.4e+09;
+        beta            0;
+        Ta              5439.5;
+    }
+    un-named-reaction-154
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N2O + O = 2NO";
+        A               2.9e+10;
+        beta            0;
+        Ta              11648.9;
+    }
+    un-named-reaction-155
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N2O + H = N2 + OH";
+        A               3.87e+11;
+        beta            0;
+        Ta              9500.25;
+    }
+    un-named-reaction-156
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N2O + OH = N2 + HO2";
+        A               2e+09;
+        beta            0;
+        Ta              10597.2;
+    }
+    un-named-reaction-157
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + NO = NO2 + OH";
+        A               2.11e+09;
+        beta            0;
+        Ta              -241.532;
+    }
+    un-named-reaction-158
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NO2 + O = NO + O2";
+        A               3.9e+09;
+        beta            0;
+        Ta              -120.766;
+    }
+    un-named-reaction-159
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NO2 + H = NO + OH";
+        A               1.32e+11;
+        beta            0;
+        Ta              181.149;
+    }
+    un-named-reaction-160
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + O = NO + H";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-161
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + H = N + H2";
+        A               3.2e+10;
+        beta            0;
+        Ta              166.053;
+    }
+    un-named-reaction-162
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + OH = HNO + H";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-163
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + OH = N + H2O";
+        A               2e+06;
+        beta            1.2;
+        Ta              0;
+    }
+    un-named-reaction-164
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + O2 = HNO + O";
+        A               461;
+        beta            2;
+        Ta              3270.74;
+    }
+    un-named-reaction-165
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + O2 = NO + OH";
+        A               1280;
+        beta            1.5;
+        Ta              50.3191;
+    }
+    un-named-reaction-166
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + N = N2 + H";
+        A               1.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-167
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + H2O = HNO + H2";
+        A               2e+10;
+        beta            0;
+        Ta              6969.2;
+    }
+    un-named-reaction-168
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + NO = N2 + OH";
+        A               2.16e+10;
+        beta            -0.23;
+        Ta              0;
+    }
+    un-named-reaction-169
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + NO = N2O + H";
+        A               3.65e+11;
+        beta            -0.45;
+        Ta              0;
+    }
+    un-named-reaction-170
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH2 + O = OH + NH";
+        A               3e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-171
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH2 + O = H + HNO";
+        A               3.9e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-172
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH2 + H = NH + H2";
+        A               4e+10;
+        beta            0;
+        Ta              1836.65;
+    }
+    un-named-reaction-173
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH2 + OH = NH + H2O";
+        A               90000;
+        beta            1.5;
+        Ta              -231.468;
+    }
+    un-named-reaction-174
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NNH = N2 + H";
+        A               3.3e+08;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-175
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NNH + O2 = HO2 + N2";
+        A               5e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-176
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NNH + O = OH + N2";
+        A               2.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-177
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NNH + O = NH + NO";
+        A               7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-178
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NNH + H = H2 + N2";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-179
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NNH + OH = H2O + N2";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-180
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NNH + CH3 = CH4 + N2";
+        A               2.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-181
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNO + O = NO + OH";
+        A               2.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-182
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNO + H = H2 + NO";
+        A               9e+08;
+        beta            0.72;
+        Ta              332.106;
+    }
+    un-named-reaction-183
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNO + OH = NO + H2O";
+        A               13000;
+        beta            1.9;
+        Ta              -478.032;
+    }
+    un-named-reaction-184
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNO + O2 = HO2 + NO";
+        A               1e+10;
+        beta            0;
+        Ta              6541.49;
+    }
+    un-named-reaction-185
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CN + O = CO + N";
+        A               7.7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-186
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CN + OH = NCO + H";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-187
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CN + H2O = HCN + OH";
+        A               8e+09;
+        beta            0;
+        Ta              3753.81;
+    }
+    un-named-reaction-188
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CN + O2 = NCO + O";
+        A               6.14e+09;
+        beta            0;
+        Ta              -221.404;
+    }
+    un-named-reaction-189
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CN + H2 = HCN + H";
+        A               295;
+        beta            2.45;
+        Ta              1127.15;
+    }
+    un-named-reaction-190
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + O = NO + CO";
+        A               2.35e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-191
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + H = NH + CO";
+        A               5.4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-192
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + OH = NO + H + CO";
+        A               2.5e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-193
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + N = N2 + CO";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-194
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + O2 = NO + CO2";
+        A               2e+09;
+        beta            0;
+        Ta              10063.8;
+    }
+    un-named-reaction-195
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + NO = N2O + CO";
+        A               1.9e+14;
+        beta            -1.52;
+        Ta              372.362;
+    }
+    un-named-reaction-196
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + NO = N2 + CO2";
+        A               3.8e+15;
+        beta            -2;
+        Ta              402.553;
+    }
+    un-named-reaction-197
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCN + O = NCO + H";
+        A               20.3;
+        beta            2.64;
+        Ta              2505.89;
+    }
+    un-named-reaction-198
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCN + O = NH + CO";
+        A               5.07;
+        beta            2.64;
+        Ta              2505.89;
+    }
+    un-named-reaction-199
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCN + O = CN + OH";
+        A               3.91e+06;
+        beta            1.58;
+        Ta              13384.9;
+    }
+    un-named-reaction-200
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCN + OH = HOCN + H";
+        A               1100;
+        beta            2.03;
+        Ta              6727.67;
+    }
+    un-named-reaction-201
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCN + OH = HNCO + H";
+        A               4.4;
+        beta            2.26;
+        Ta              3220.42;
+    }
+    un-named-reaction-202
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCN + OH = NH2 + CO";
+        A               0.16;
+        beta            2.56;
+        Ta              4528.72;
+    }
+    un-named-reaction-203
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H2CN + N = N2 + CH2";
+        A               6e+10;
+        beta            0;
+        Ta              201.276;
+    }
+    un-named-reaction-204
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + N2 = CN + N";
+        A               6.3e+10;
+        beta            0;
+        Ta              23156.9;
+    }
+    un-named-reaction-205
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + N2 = HCN + N";
+        A               3.12e+06;
+        beta            0.88;
+        Ta              10129.2;
+    }
+    un-named-reaction-206
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + N2 = HCN + NH";
+        A               1e+10;
+        beta            0;
+        Ta              37236.2;
+    }
+    un-named-reaction-207
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + N2 = NH + HCN";
+        A               1e+08;
+        beta            0;
+        Ta              32707.4;
+    }
+    un-named-reaction-208
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + NO = CN + O";
+        A               1.9e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-209
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + NO = CO + N";
+        A               2.9e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-210
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + NO = HCN + O";
+        A               4.1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-211
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + NO = H + NCO";
+        A               1.62e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-212
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + NO = N + HCO";
+        A               2.46e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-213
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + NO = H + HNCO";
+        A               3.1e+14;
+        beta            -1.38;
+        Ta              639.053;
+    }
+    un-named-reaction-214
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + NO = OH + HCN";
+        A               2.9e+11;
+        beta            -0.69;
+        Ta              382.425;
+    }
+    un-named-reaction-215
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + NO = H + HCNO";
+        A               3.8e+10;
+        beta            -0.36;
+        Ta              291.851;
+    }
+    un-named-reaction-216
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + NO = H + HNCO";
+        A               3.1e+14;
+        beta            -1.38;
+        Ta              639.053;
+    }
+    un-named-reaction-217
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + NO = OH + HCN";
+        A               2.9e+11;
+        beta            -0.69;
+        Ta              382.425;
+    }
+    un-named-reaction-218
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + NO = H + HCNO";
+        A               3.8e+10;
+        beta            -0.36;
+        Ta              291.851;
+    }
+    un-named-reaction-219
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + NO = HCN + H2O";
+        A               9.6e+10;
+        beta            0;
+        Ta              14491.9;
+    }
+    un-named-reaction-220
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + NO = H2CN + OH";
+        A               1e+09;
+        beta            0;
+        Ta              10944.4;
+    }
+    un-named-reaction-221
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNN + O = CO + H + N2";
+        A               2.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-222
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNN + O = HCN + NO";
+        A               2e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-223
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNN + O2 = O + HCO + N2";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-224
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNN + OH = H + HCO + N2";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-225
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNN + H = CH2 + N2";
+        A               1e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-226
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNCO + O = NH + CO2";
+        A               98000;
+        beta            1.41;
+        Ta              4277.13;
+    }
+    un-named-reaction-227
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNCO + O = HNO + CO";
+        A               150000;
+        beta            1.57;
+        Ta              22140.4;
+    }
+    un-named-reaction-228
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNCO + O = NCO + OH";
+        A               2200;
+        beta            2.11;
+        Ta              5736.38;
+    }
+    un-named-reaction-229
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNCO + H = NH2 + CO";
+        A               22500;
+        beta            1.7;
+        Ta              1912.13;
+    }
+    un-named-reaction-230
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNCO + H = H2 + NCO";
+        A               105;
+        beta            2.5;
+        Ta              6692.44;
+    }
+    un-named-reaction-231
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNCO + OH = NCO + H2O";
+        A               33000;
+        beta            1.5;
+        Ta              1811.49;
+    }
+    un-named-reaction-232
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HNCO + OH = NH2 + CO2";
+        A               3300;
+        beta            1.5;
+        Ta              1811.49;
+    }
+    un-named-reaction-233
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNO + H = H + HNCO";
+        A               2.1e+12;
+        beta            -0.69;
+        Ta              1434.1;
+    }
+    un-named-reaction-234
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNO + H = OH + HCN";
+        A               2.7e+08;
+        beta            0.18;
+        Ta              1066.77;
+    }
+    un-named-reaction-235
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCNO + H = NH2 + CO";
+        A               1.7e+11;
+        beta            -0.75;
+        Ta              1454.22;
+    }
+    un-named-reaction-236
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HOCN + H = H + HNCO";
+        A               20000;
+        beta            2;
+        Ta              1006.38;
+    }
+    un-named-reaction-237
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCCO + NO = HCNO + CO";
+        A               9e+09;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-238
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + N = H2CN + H";
+        A               6.1e+11;
+        beta            -0.31;
+        Ta              145.925;
+    }
+    un-named-reaction-239
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + N = HCN + H2";
+        A               3.7e+09;
+        beta            0.15;
+        Ta              -45.2872;
+    }
+    un-named-reaction-240
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH3 + H = NH2 + H2";
+        A               540;
+        beta            2.4;
+        Ta              4989.14;
+    }
+    un-named-reaction-241
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH3 + OH = NH2 + H2O";
+        A               50000;
+        beta            1.6;
+        Ta              480.548;
+    }
+    un-named-reaction-242
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH3 + O = NH2 + OH";
+        A               9400;
+        beta            1.94;
+        Ta              3250.62;
+    }
+    un-named-reaction-243
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NH + CO2 = HNO + CO";
+        A               1e+10;
+        beta            0;
+        Ta              7220.79;
+    }
+    un-named-reaction-244
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CN + NO2 = NCO + NO";
+        A               6.16e+12;
+        beta            -0.752;
+        Ta              173.601;
+    }
+    un-named-reaction-245
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "NCO + NO2 = N2O + CO2";
+        A               3.25e+09;
+        beta            0;
+        Ta              -354.75;
+    }
+    un-named-reaction-246
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "N + CO2 = NO + CO";
+        A               3e+09;
+        beta            0;
+        Ta              5686.06;
+    }
+    un-named-reaction-247
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH3 = H + H2 + CO";
+        A               3.37e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-248
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H4 = H + CH2CHO";
+        A               6700;
+        beta            1.83;
+        Ta              110.702;
+    }
+    un-named-reaction-249
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H5 = H + CH3CHO";
+        A               1.096e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-250
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HO2 = O2 + H2O";
+        A               5e+12;
+        beta            0;
+        Ta              8720.3;
+    }
+    un-named-reaction-251
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "OH + CH3 = H2 + CH2O";
+        A               8e+06;
+        beta            0.5;
+        Ta              -883.101;
+    }
+    un-named-reaction-252
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + O2 = 2H + CO2";
+        A               5.8e+09;
+        beta            0;
+        Ta              754.787;
+    }
+    un-named-reaction-253
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + O2 = O + CH2O";
+        A               2.4e+09;
+        beta            0;
+        Ta              754.787;
+    }
+    un-named-reaction-254
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + CH2 = 2H + C2H2";
+        A               2e+11;
+        beta            0;
+        Ta              5529.57;
+    }
+    un-named-reaction-255
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2(S) + H2O = H2 + CH2O";
+        A               6.82e+07;
+        beta            0.25;
+        Ta              -470.484;
+    }
+    un-named-reaction-256
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = O + CH2CHO";
+        A               3.03e+08;
+        beta            0.29;
+        Ta              5.5351;
+    }
+    un-named-reaction-257
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = HO2 + C2H2";
+        A               1337;
+        beta            1.61;
+        Ta              -193.225;
+    }
+    un-named-reaction-258
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3CHO = OH + CH2CHO";
+        A               2.92e+09;
+        beta            0;
+        Ta              909.77;
+    }
+    un-named-reaction-259
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH3CHO = OH + CH3 + CO";
+        A               2.92e+09;
+        beta            0;
+        Ta              909.77;
+    }
+    un-named-reaction-260
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH3CHO = HO2 + CH3 + CO";
+        A               3.01e+10;
+        beta            0;
+        Ta              19699.9;
+    }
+    un-named-reaction-261
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3CHO = CH2CHO + H2";
+        A               2.05e+06;
+        beta            1.16;
+        Ta              1210.17;
+    }
+    un-named-reaction-262
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "H + CH3CHO = CH3 + H2 + CO";
+        A               2.05e+06;
+        beta            1.16;
+        Ta              1210.17;
+    }
+    un-named-reaction-263
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "OH + CH3CHO = CH3 + H2O + CO";
+        A               2.343e+07;
+        beta            0.73;
+        Ta              -560.052;
+    }
+    un-named-reaction-264
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "HO2 + CH3CHO = CH3 + H2O2 + CO";
+        A               3.01e+09;
+        beta            0;
+        Ta              5999.55;
+    }
+    un-named-reaction-265
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH3 + CH3CHO = CH3 + CH4 + CO";
+        A               2720;
+        beta            1.77;
+        Ta              2978.89;
+    }
+    un-named-reaction-266
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH2CHO = H + CH2 + CO2";
+        A               1.5e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-267
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH2CHO = OH + CO + CH2O";
+        A               1.81e+07;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-268
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH2CHO = OH + 2HCO";
+        A               2.35e+07;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-269
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CHO = CH3 + HCO";
+        A               2.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-270
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CHO = CH2CO + H2";
+        A               1.1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-271
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CHO = H2O + CH2CO";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-272
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CHO = HCO + CH2OH";
+        A               3.01e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-273
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C3H8 = OH + C3H7";
+        A               193;
+        beta            2.68;
+        Ta              1869.86;
+    }
+    un-named-reaction-274
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C3H8 = C3H7 + H2";
+        A               1320;
+        beta            2.54;
+        Ta              3399.56;
+    }
+    un-named-reaction-275
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C3H8 = C3H7 + H2O";
+        A               31600;
+        beta            1.8;
+        Ta              469.981;
+    }
+    un-named-reaction-276
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C3H7 + H2O2 = HO2 + C3H8";
+        A               0.378;
+        beta            2.72;
+        Ta              754.787;
+    }
+    un-named-reaction-277
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C3H8 = C3H7 + CH4";
+        A               0.000903;
+        beta            3.65;
+        Ta              3599.83;
+    }
+    un-named-reaction-278
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C3H7 = C2H5 + CH2O";
+        A               9.64e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-279
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C3H7 = CH3 + C2H5";
+        A               4060;
+        beta            2.19;
+        Ta              447.84;
+    }
+    un-named-reaction-280
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C3H7 = C2H5 + CH2OH";
+        A               2.41e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-281
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + C3H7 = O2 + C3H8";
+        A               2.55e+07;
+        beta            0.255;
+        Ta              -474.509;
+    }
+    un-named-reaction-282
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "HO2 + C3H7 = OH + C2H5 + CH2O";
+        A               2.41e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-283
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C3H7 = 2C2H5";
+        A               1.927e+10;
+        beta            -0.32;
+        Ta              0;
+    }
+    un-named-reaction-284
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "2O = O2";
+        A               1.2e+11;
+        beta            -1;
+        Ta              0;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2.4)
+(O 1)
+(OH 1)
+(H2O 15.4)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.75)
+(CO2 3.6)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.83)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-285
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "O + H = OH";
+        A               5e+11;
+        beta            -1;
+        Ta              0;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-286
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "H + O2 = HO2";
+        A               2.8e+12;
+        beta            -0.86;
+        Ta              0;
+        coeffs
+53
+(
+(CH4 1)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 0)
+(H2 1)
+(O 1)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 0.75)
+(CO2 1.5)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 1.5)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 0)
+(AR 0)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-287
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "2H = H2";
+        A               1e+12;
+        beta            -1;
+        Ta              0;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 0)
+(O 1)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1)
+(CO2 0)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.63)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-288
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "H + OH = H2O";
+        A               2.2e+16;
+        beta            -2;
+        Ta              0;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 0.73)
+(O 1)
+(OH 1)
+(H2O 3.65)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1)
+(CO2 1)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.38)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-289
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "HCO = H + CO";
+        A               1.87e+14;
+        beta            -1;
+        Ta              8554.25;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-290
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "NO + O = NO2";
+        A               1.06e+14;
+        beta            -1.41;
+        Ta              0;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-291
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "NNH = N2 + H";
+        A               1.3e+11;
+        beta            -0.11;
+        Ta              2505.89;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-292
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "H + NO = HNO";
+        A               4.48e+13;
+        beta            -1.32;
+        Ta              372.362;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-293
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "NCO = N + CO";
+        A               3.1e+11;
+        beta            0;
+        Ta              27197.5;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-294
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "HCN = H + CN";
+        A               1.04e+26;
+        beta            -3.3;
+        Ta              63704;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-295
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "HNCO = NH + CO";
+        A               1.18e+13;
+        beta            0;
+        Ta              42630.4;
+        coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-296
+    {
+        type            reversibleArrheniusLindemannFallOffReaction;
+        reaction        "O + CO = CO2";
+        k0
+        {
+            A               6.02e+08;
+            beta            0;
+            Ta              1509.57;
+        }
+        kInf
+        {
+            A               1.8e+07;
+            beta            0;
+            Ta              1200.11;
+        }
+        F
+        {
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 6)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 3.5)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.5)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-297
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2 = CH3";
+        k0
+        {
+            A               1.04e+20;
+            beta            -2.76;
+            Ta              805.106;
+        }
+        kInf
+        {
+            A               6e+11;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.562;
+            Tsss            91;
+            Ts              5836;
+            Tss             8552;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-298
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH3 = CH4";
+        k0
+        {
+            A               2.62e+27;
+            beta            -4.76;
+            Ta              1227.79;
+        }
+        kInf
+        {
+            A               1.39e+13;
+            beta            -0.534;
+            Ta              269.711;
+        }
+        F
+        {
+            alpha           0.783;
+            Tsss            74;
+            Ts              2941;
+            Tss             6964;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 3)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-299
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + HCO = CH2O";
+        k0
+        {
+            A               2.47e+18;
+            beta            -2.57;
+            Ta              213.856;
+        }
+        kInf
+        {
+            A               1.09e+09;
+            beta            0.48;
+            Ta              -130.83;
+        }
+        F
+        {
+            alpha           0.7824;
+            Tsss            271;
+            Ts              2755;
+            Tss             6570;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-300
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2O = CH2OH";
+        k0
+        {
+            A               1.27e+26;
+            beta            -4.82;
+            Ta              3285.84;
+        }
+        kInf
+        {
+            A               5.4e+08;
+            beta            0.454;
+            Ta              1811.49;
+        }
+        F
+        {
+            alpha           0.7187;
+            Tsss            103;
+            Ts              1291;
+            Tss             4160;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-301
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2OH = CH3OH";
+        k0
+        {
+            A               4.36e+25;
+            beta            -4.65;
+            Ta              2556.21;
+        }
+        kInf
+        {
+            A               1.055e+09;
+            beta            0.5;
+            Ta              43.2744;
+        }
+        F
+        {
+            alpha           0.6;
+            Tsss            100;
+            Ts              90000;
+            Tss             10000;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-302
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH3O = CH3OH";
+        k0
+        {
+            A               4.66e+35;
+            beta            -7.44;
+            Ta              7084.93;
+        }
+        kInf
+        {
+            A               2.43e+09;
+            beta            0.515;
+            Ta              25.1596;
+        }
+        F
+        {
+            alpha           0.7;
+            Tsss            100;
+            Ts              90000;
+            Tss             10000;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-303
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H = C2H2";
+        k0
+        {
+            A               3.75e+27;
+            beta            -4.8;
+            Ta              956.063;
+        }
+        kInf
+        {
+            A               1e+14;
+            beta            -1;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.6464;
+            Tsss            132;
+            Ts              1315;
+            Tss             5566;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-304
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H2 = C2H3";
+        k0
+        {
+            A               3.8e+34;
+            beta            -7.27;
+            Ta              3633.04;
+        }
+        kInf
+        {
+            A               5.6e+09;
+            beta            0;
+            Ta              1207.66;
+        }
+        F
+        {
+            alpha           0.7507;
+            Tsss            98.5;
+            Ts              1302;
+            Tss             4167;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-305
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H3 = C2H4";
+        k0
+        {
+            A               1.4e+24;
+            beta            -3.86;
+            Ta              1670.59;
+        }
+        kInf
+        {
+            A               6.08e+09;
+            beta            0.27;
+            Ta              140.894;
+        }
+        F
+        {
+            alpha           0.782;
+            Tsss            207.5;
+            Ts              2663;
+            Tss             6095;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-306
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H4 = C2H5";
+        k0
+        {
+            A               6e+35;
+            beta            -7.62;
+            Ta              3507.24;
+        }
+        kInf
+        {
+            A               5.4e+08;
+            beta            0.454;
+            Ta              915.808;
+        }
+        F
+        {
+            alpha           0.9753;
+            Tsss            210;
+            Ts              984;
+            Tss             4374;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-307
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H5 = C2H6";
+        k0
+        {
+            A               1.99e+35;
+            beta            -7.08;
+            Ta              3363.83;
+        }
+        kInf
+        {
+            A               5.21e+14;
+            beta            -0.99;
+            Ta              795.042;
+        }
+        F
+        {
+            alpha           0.8422;
+            Tsss            125;
+            Ts              2219;
+            Tss             6882;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-308
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H2 + CO = CH2O";
+        k0
+        {
+            A               5.07e+21;
+            beta            -3.42;
+            Ta              42444.2;
+        }
+        kInf
+        {
+            A               43000;
+            beta            1.5;
+            Ta              40054;
+        }
+        F
+        {
+            alpha           0.932;
+            Tsss            197;
+            Ts              1540;
+            Tss             10300;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-309
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "2OH = H2O2";
+        k0
+        {
+            A               2.3e+12;
+            beta            -0.9;
+            Ta              -855.425;
+        }
+        kInf
+        {
+            A               7.4e+10;
+            beta            -0.37;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.7346;
+            Tsss            94;
+            Ts              1756;
+            Tss             5182;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-310
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "OH + CH3 = CH3OH";
+        k0
+        {
+            A               4e+30;
+            beta            -5.92;
+            Ta              1580.02;
+        }
+        kInf
+        {
+            A               2.79e+15;
+            beta            -1.43;
+            Ta              669.244;
+        }
+        F
+        {
+            alpha           0.412;
+            Tsss            195;
+            Ts              5900;
+            Tss             6394;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-311
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH + CO = HCCO";
+        k0
+        {
+            A               2.69e+22;
+            beta            -3.74;
+            Ta              974.178;
+        }
+        kInf
+        {
+            A               5e+10;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.5757;
+            Tsss            237;
+            Ts              1652;
+            Tss             5069;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-312
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH2 + CO = CH2CO";
+        k0
+        {
+            A               2.69e+27;
+            beta            -5.11;
+            Ta              3570.14;
+        }
+        kInf
+        {
+            A               8.1e+08;
+            beta            0.5;
+            Ta              2269.39;
+        }
+        F
+        {
+            alpha           0.5907;
+            Tsss            275;
+            Ts              1226;
+            Tss             5185;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-313
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH2(S) + H2O = CH3OH";
+        k0
+        {
+            A               1.88e+32;
+            beta            -6.36;
+            Ta              2536.08;
+        }
+        kInf
+        {
+            A               4.82e+14;
+            beta            -1.16;
+            Ta              576.154;
+        }
+        F
+        {
+            alpha           0.6027;
+            Tsss            208;
+            Ts              3922;
+            Tss             10180;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-314
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "2CH3 = C2H6";
+        k0
+        {
+            A               3.4e+35;
+            beta            -7.03;
+            Ta              1389.81;
+        }
+        kInf
+        {
+            A               6.77e+13;
+            beta            -1.18;
+            Ta              329.087;
+        }
+        F
+        {
+            alpha           0.619;
+            Tsss            73.2;
+            Ts              1180;
+            Tss             9999;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-315
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "C2H4 = H2 + C2H2";
+        k0
+        {
+            A               1.58e+48;
+            beta            -9.3;
+            Ta              49212.1;
+        }
+        kInf
+        {
+            A               8e+12;
+            beta            0.44;
+            Ta              43661.9;
+        }
+        F
+        {
+            alpha           0.7345;
+            Tsss            180;
+            Ts              1035;
+            Tss             5417;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-316
+    {
+        type            reversibleArrheniusLindemannFallOffReaction;
+        reaction        "N2O = N2 + O";
+        k0
+        {
+            A               6.37e+11;
+            beta            0;
+            Ta              28500.8;
+        }
+        kInf
+        {
+            A               7.91e+10;
+            beta            0;
+            Ta              28188.8;
+        }
+        F
+        {
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.625)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-317
+    {
+        type            reversibleArrheniusLindemannFallOffReaction;
+        reaction        "H + HCN = H2CN";
+        k0
+        {
+            A               1.4e+20;
+            beta            -3.4;
+            Ta              956.063;
+        }
+        kInf
+        {
+            A               3.3e+10;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-318
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH + N2 = HCNN";
+        k0
+        {
+            A               1.3e+19;
+            beta            -3.16;
+            Ta              372.362;
+        }
+        kInf
+        {
+            A               3.1e+09;
+            beta            0.15;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.667;
+            Tsss            235;
+            Ts              2117;
+            Tss             4536;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-319
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH + H2 = CH3";
+        k0
+        {
+            A               4.82e+19;
+            beta            -2.8;
+            Ta              296.883;
+        }
+        kInf
+        {
+            A               1.97e+09;
+            beta            0.43;
+            Ta              -186.181;
+        }
+        F
+        {
+            alpha           0.578;
+            Tsss            122;
+            Ts              2535;
+            Tss             9365;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-320
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2CO = CH2CHO";
+        k0
+        {
+            A               1.012e+36;
+            beta            -7.63;
+            Ta              1939.3;
+        }
+        kInf
+        {
+            A               4.865e+08;
+            beta            0.422;
+            Ta              -883.101;
+        }
+        F
+        {
+            alpha           0.465;
+            Tsss            201;
+            Ts              1773;
+            Tss             5333;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-321
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH3 + C2H5 = C3H8";
+        k0
+        {
+            A               2.71e+68;
+            beta            -16.82;
+            Ta              6574.19;
+        }
+        kInf
+        {
+            A               9.43e+09;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.1527;
+            Tsss            291;
+            Ts              2742;
+            Tss             7748;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-322
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH3 + C2H4 = C3H7";
+        k0
+        {
+            A               3e+57;
+            beta            -14.6;
+            Ta              9142.98;
+        }
+        kInf
+        {
+            A               2550;
+            beta            1.6;
+            Ta              2868.19;
+        }
+        F
+        {
+            alpha           0.1894;
+            Tsss            277;
+            Ts              8748;
+            Tss             7891;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-323
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C3H7 = C3H8";
+        k0
+        {
+            A               4.42e+55;
+            beta            -13.545;
+            Ta              5714.74;
+        }
+        kInf
+        {
+            A               3.613e+10;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.315;
+            Tsss            369;
+            Ts              3285;
+            Tss             6667;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-324
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2O = CH3O";
+        k0
+        {
+            A               2.2e+24;
+            beta            -4.8;
+            Ta              2797.74;
+        }
+        kInf
+        {
+            A               5.4e+08;
+            beta            0.454;
+            Ta              1308.3;
+        }
+        F
+        {
+            alpha           0.758;
+            Tsss            94;
+            Ts              1555;
+            Tss             4200;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+53
+(
+(CH4 2)
+(CH2O 1)
+(CH3O 1)
+(H 1)
+(O2 1)
+(H2 2)
+(O 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2OH 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N 1)
+(NH 1)
+(NH2 1)
+(NH3 1)
+(NNH 1)
+(NO 1)
+(NO2 1)
+(N2O 1)
+(HNO 1)
+(CN 1)
+(HCN 1)
+(H2CN 1)
+(HCNN 1)
+(HCNO 1)
+(HOCN 1)
+(HNCO 1)
+(NCO 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+}
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
new file mode 100644
index 00000000000..33208fc6c04
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
@@ -0,0 +1,152 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  3.0.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermo.compressibleGas;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+O2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       31.9988;
+    }
+    elements
+    {
+        O       2;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.69758 0.00061352 -1.25884e-07 1.77528e-11 -1.13644e-15 -1233.93 3.18917 );
+        lowCpCoeffs     ( 3.21294 0.00112749 -5.75615e-07 1.31388e-09 -8.76855e-13 -1005.25 6.03474 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+}
+
+H2O
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       18.0153;
+    }
+    elements
+    {
+        O       1;
+        H       2;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.67215 0.00305629 -8.73026e-07 1.201e-10 -6.39162e-15 -29899.2 6.86282 );
+        lowCpCoeffs     ( 3.38684 0.00347498 -6.3547e-06 6.96858e-09 -2.50659e-12 -30208.1 2.59023 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+}
+
+CH4
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       16.0428;
+    }
+    elements
+    {
+        C       1;
+        H       4;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.63543 0.0100844 -3.36924e-06 5.34973e-10 -3.15528e-14 -10005.6 9.9937 );
+        lowCpCoeffs     ( 5.14988 -0.013671 4.91801e-05 -4.84744e-08 1.66694e-11 -10246.6 -4.64132 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+}
+
+CO2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       44.01;
+    }
+    elements
+    {
+        C       1;
+        O       2;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.45362 0.00314017 -1.27841e-06 2.394e-10 -1.66903e-14 -48967 -0.955396 );
+        lowCpCoeffs     ( 2.27572 0.00992207 -1.04091e-05 6.86669e-09 -2.11728e-12 -48373.1 10.1885 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+}
+
+N2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       28.0134;
+    }
+    elements
+    {
+        N       2;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.92664 0.00148798 -5.68476e-07 1.0097e-10 -6.75335e-15 -922.798 5.98053 );
+        lowCpCoeffs     ( 3.29868 0.00140824 -3.96322e-06 5.64152e-09 -2.44486e-12 -1020.9 3.95037 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI
new file mode 100644
index 00000000000..00d5cd86dcf
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI
@@ -0,0 +1,1391 @@
+OH
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       17.0074;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.09289 0.00054843 1.26505e-07 -8.79462e-11 1.17412e-14 3858.66 4.4767 );
+        lowCpCoeffs     ( 3.99202 -0.00240132 4.61794e-06 -3.88113e-09 1.36411e-12 3615.08 -0.103925 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        O               1;
+        H               1;
+    }
+}
+CN
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       26.0179;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.74598 4.34508e-05 2.9706e-07 -6.86518e-11 4.41342e-15 51536.2 2.78676 );
+        lowCpCoeffs     ( 3.61294 -0.000955513 2.1443e-06 -3.15163e-10 -4.64304e-13 51708.3 3.9805 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        N               1;
+    }
+}
+C2H3
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       27.0462;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.01672 0.0103302 -4.68082e-06 1.01763e-09 -8.62607e-14 34612.9 7.78732 );
+        lowCpCoeffs     ( 3.21247 0.00151479 2.59209e-05 -3.57658e-08 1.47151e-11 34859.8 8.51054 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               3;
+    }
+}
+N2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       28.0134;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.92664 0.00148798 -5.68476e-07 1.0097e-10 -6.75335e-15 -922.798 5.98053 );
+        lowCpCoeffs     ( 3.29868 0.00140824 -3.96322e-06 5.64152e-09 -2.44485e-12 -1020.9 3.95037 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               2;
+    }
+}
+HOCN
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       43.0252;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1368;
+        highCpCoeffs    ( 5.89785 0.00316789 -1.11801e-06 1.77243e-10 -1.04339e-14 -3706.53 -6.18168 );
+        lowCpCoeffs     ( 3.78605 0.00688668 -3.21488e-06 5.17196e-10 1.19361e-14 -2826.98 5.63292 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+N
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       14.0067;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.41594 0.000174891 -1.19024e-07 3.02262e-11 -2.0361e-15 56133.8 4.64961 );
+        lowCpCoeffs     ( 2.5 0 0 0 0 56104.6 4.19391 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               1;
+    }
+}
+C2H
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       25.0303;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.16781 0.00475222 -1.83787e-06 3.0419e-10 -1.77233e-14 67121.1 6.63589 );
+        lowCpCoeffs     ( 2.88966 0.01341 -2.8477e-05 2.94791e-08 -1.09332e-11 66839.4 6.22296 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               1;
+    }
+}
+HNO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       31.0141;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.97925 0.00349441 -7.85498e-07 5.74796e-11 -1.93359e-16 11750.6 8.60637 );
+        lowCpCoeffs     ( 4.53349 -0.00566962 1.84732e-05 -1.71371e-08 5.54546e-12 11548.3 1.74984 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        O               1;
+    }
+}
+CH2CO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       42.0376;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.5113 0.0090036 -4.1694e-06 9.23346e-10 -7.94838e-14 -7551.05 0.632247 );
+        lowCpCoeffs     ( 2.13584 0.0181189 -1.73947e-05 9.34398e-09 -2.01458e-12 -7042.92 12.2156 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               2;
+        O               1;
+    }
+}
+CH3
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       15.0351;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.28572 0.0072399 -2.98714e-06 5.95685e-10 -4.67154e-14 16775.6 8.48007 );
+        lowCpCoeffs     ( 3.67359 0.00201095 5.73022e-06 -6.87117e-09 2.54386e-12 16445 1.60456 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+    }
+}
+C2H5
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       29.0622;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.95466 0.0173973 -7.98207e-06 1.75218e-09 -1.49642e-13 12857.5 13.4624 );
+        lowCpCoeffs     ( 4.30647 -0.00418659 4.97143e-05 -5.99127e-08 2.30509e-11 12841.6 4.70721 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               5;
+    }
+}
+C2H4
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       28.0542;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.03611 0.0146454 -6.71078e-06 1.47223e-09 -1.25706e-13 4939.89 10.3054 );
+        lowCpCoeffs     ( 3.9592 -0.00757052 5.7099e-05 -6.91589e-08 2.69884e-11 5089.78 4.09733 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               4;
+    }
+}
+C3H8
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       44.0972;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923 );
+        lowCpCoeffs     ( 0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               3;
+        H               8;
+    }
+}
+HCN
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       27.0258;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.80224 0.00314642 -1.06322e-06 1.66198e-10 -9.79976e-15 14407.3 1.57546 );
+        lowCpCoeffs     ( 2.25899 0.0100512 -1.33518e-05 1.00923e-08 -3.0089e-12 14712.6 8.91644 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        C               1;
+        N               1;
+    }
+}
+C2H6
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       30.0701;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.07188 0.0216853 -1.00256e-05 2.21412e-09 -1.90003e-13 -11426.4 15.1156 );
+        lowCpCoeffs     ( 4.29142 -0.00550154 5.99438e-05 -7.08466e-08 2.68686e-11 -11522.2 2.66682 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               6;
+    }
+}
+NH3
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       17.0306;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.63445 0.00566626 -1.72787e-06 2.38672e-10 -1.25788e-14 -6544.7 6.56629 );
+        lowCpCoeffs     ( 4.28603 -0.00466052 2.17185e-05 -2.28089e-08 8.2638e-12 -6741.73 -0.625373 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               1;
+        H               3;
+    }
+}
+CO2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       44.01;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.85746 0.00441437 -2.21481e-06 5.2349e-10 -4.72084e-14 -48759.2 2.27164 );
+        lowCpCoeffs     ( 2.35677 0.0089846 -7.12356e-06 2.45919e-09 -1.437e-13 -48372 9.90105 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        O               2;
+    }
+}
+C2H2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       26.0382;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.14757 0.00596167 -2.37295e-06 4.67412e-10 -3.61235e-14 25936 -1.23028 );
+        lowCpCoeffs     ( 0.808681 0.0233616 -3.55172e-05 2.80152e-08 -8.50073e-12 26429 13.9397 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               2;
+    }
+}
+CH2OH
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       31.0345;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.69267 0.00864577 -3.75101e-06 7.87235e-10 -6.48554e-14 -3242.51 5.81043 );
+        lowCpCoeffs     ( 3.86389 0.00559672 5.93272e-06 -1.04532e-08 4.36967e-12 -3193.91 5.47302 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+        O               1;
+    }
+}
+H2CN
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       28.0338;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           4000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.2097 0.00296929 -2.85559e-07 -1.63555e-10 3.04326e-14 27677.1 -4.44448 );
+        lowCpCoeffs     ( 2.85166 0.00569523 1.07114e-06 -1.62261e-09 -2.35111e-13 28637.8 8.99275 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               2;
+        C               1;
+        N               1;
+    }
+}
+HCCOH
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       42.0376;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.92383 0.00679236 -2.56586e-06 4.49878e-10 -2.99401e-14 7264.63 -7.60177 );
+        lowCpCoeffs     ( 1.24237 0.0310722 -5.08669e-05 4.31371e-08 -1.40146e-11 8031.61 13.8743 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        O               1;
+        H               2;
+    }
+}
+H2O2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       34.0147;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.165 0.00490832 -1.90139e-06 3.71186e-10 -2.87908e-14 -17861.8 2.91616 );
+        lowCpCoeffs     ( 4.27611 -0.000542822 1.67336e-05 -2.15771e-08 8.62454e-12 -17702.6 3.43505 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               2;
+        O               2;
+    }
+}
+HCO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       29.0185;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.77217 0.00495696 -2.48446e-06 5.89162e-10 -5.33509e-14 4011.92 9.79834 );
+        lowCpCoeffs     ( 4.22119 -0.00324393 1.37799e-05 -1.33144e-08 4.33769e-12 3839.56 3.39437 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        C               1;
+        O               1;
+    }
+}
+NNH
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       29.0214;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.76675 0.00289151 -1.04166e-06 1.68426e-10 -1.00919e-14 28650.7 4.47051 );
+        lowCpCoeffs     ( 4.34469 -0.00484971 2.00595e-05 -2.17265e-08 7.94695e-12 28792 2.97794 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               2;
+        H               1;
+    }
+}
+N2O
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       44.0128;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.82307 0.00262703 -9.58509e-07 1.60007e-10 -9.77523e-15 8073.4 -2.20172 );
+        lowCpCoeffs     ( 2.25715 0.0113047 -1.36713e-05 9.68198e-09 -2.93072e-12 8741.77 10.758 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               2;
+        O               1;
+    }
+}
+CH2(S)
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       14.0271;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.29204 0.00465589 -2.01192e-06 4.17906e-10 -3.39716e-14 50926 8.6265 );
+        lowCpCoeffs     ( 4.1986 -0.00236661 8.23296e-06 -6.68816e-09 1.94315e-12 50496.8 -0.769119 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               2;
+    }
+}
+O2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       31.9988;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.28254 0.00148309 -7.57967e-07 2.09471e-10 -2.16718e-14 -1088.46 5.45323 );
+        lowCpCoeffs     ( 3.78246 -0.00299673 9.8473e-06 -9.6813e-09 3.24373e-12 -1063.94 3.65768 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        O               2;
+    }
+}
+CH2CHO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       43.0456;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.97567 0.00813059 -2.74362e-06 4.0703e-10 -2.17602e-14 490.322 -5.04525 );
+        lowCpCoeffs     ( 3.40906 0.0107386 1.89149e-06 -7.15858e-09 2.86738e-12 1521.48 9.55829 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        O               1;
+        H               3;
+        C               2;
+    }
+}
+HNCO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       43.0252;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1478;
+        highCpCoeffs    ( 6.22395 0.00317864 -1.09379e-06 1.70735e-10 -9.95022e-15 -16659.9 -8.38225 );
+        lowCpCoeffs     ( 3.63096 0.00730282 -2.2805e-06 -6.61271e-10 3.62236e-13 -15587.4 6.19458 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+HCCO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       41.0297;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           4000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.62821 0.00408534 -1.59345e-06 2.86261e-10 -1.94078e-14 19327.2 -3.93026 );
+        lowCpCoeffs     ( 2.25172 0.017655 -2.37291e-05 1.72758e-08 -5.06648e-12 20059.4 12.4904 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        C               2;
+        O               1;
+    }
+}
+H2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       2.01594;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.33728 -4.94025e-05 4.99457e-07 -1.79566e-10 2.00255e-14 -950.159 -3.20502 );
+        lowCpCoeffs     ( 2.34433 0.00798052 -1.94782e-05 2.01572e-08 -7.37612e-12 -917.935 0.68301 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               2;
+    }
+}
+NO2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       46.0055;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.88475 0.0021724 -8.28069e-07 1.57475e-10 -1.05109e-14 2316.5 -0.117417 );
+        lowCpCoeffs     ( 3.94403 -0.00158543 1.66578e-05 -2.04754e-08 7.83506e-12 2896.62 6.31199 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               1;
+        O               2;
+    }
+}
+CH4
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       16.043;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 0.0748515 0.0133909 -5.73286e-06 1.22293e-09 -1.01815e-13 -9468.34 18.4373 );
+        lowCpCoeffs     ( 5.14988 -0.013671 4.91801e-05 -4.84743e-08 1.66694e-11 -10246.6 -4.6413 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               4;
+    }
+}
+C
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       12.0112;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.49267 4.79889e-05 -7.24335e-08 3.74291e-11 -4.87278e-15 85451.3 4.8015 );
+        lowCpCoeffs     ( 2.55424 -0.000321538 7.33792e-07 -7.32235e-10 2.66521e-13 85443.9 4.53131 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+    }
+}
+HO2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       33.0068;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.01721 0.00223982 -6.33658e-07 1.14246e-10 -1.07909e-14 111.857 3.7851 );
+        lowCpCoeffs     ( 4.3018 -0.00474912 2.11583e-05 -2.42764e-08 9.29225e-12 294.808 3.71666 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        O               2;
+    }
+}
+CH3CHO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       44.0536;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.40411 0.0117231 -4.22631e-06 6.83725e-10 -4.09849e-14 -22593.1 -3.48079 );
+        lowCpCoeffs     ( 4.72946 -0.00319329 4.75349e-05 -5.74586e-08 2.19311e-11 -21572.9 4.10302 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               2;
+        H               4;
+        O               1;
+    }
+}
+C3H7
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       43.0892;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 7.7027 0.0160442 -5.28332e-06 7.62986e-10 -3.93923e-14 8298.43 -15.4802 );
+        lowCpCoeffs     ( 1.05155 0.025992 2.38005e-06 -1.96096e-08 9.37325e-12 10631.9 21.1226 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               3;
+        H               7;
+    }
+}
+CH3OH
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       32.0424;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.78971 0.0140938 -6.36501e-06 1.38171e-09 -1.1706e-13 -25374.9 14.5024 );
+        lowCpCoeffs     ( 5.7154 -0.0152309 6.52441e-05 -7.10807e-08 2.61353e-11 -25642.8 -1.5041 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               4;
+        O               1;
+    }
+}
+CH2O
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       30.0265;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.76069 0.0092 -4.42259e-06 1.00641e-09 -8.83856e-14 -13995.8 13.6563 );
+        lowCpCoeffs     ( 4.79372 -0.00990833 3.7322e-05 -3.79285e-08 1.31773e-11 -14309 0.602813 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               2;
+        C               1;
+        O               1;
+    }
+}
+CO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       28.0106;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.71519 0.00206253 -9.98826e-07 2.30053e-10 -2.03648e-14 -14151.9 7.81869 );
+        lowCpCoeffs     ( 3.57953 -0.000610354 1.01681e-06 9.07006e-10 -9.04424e-13 -14344.1 3.50841 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        O               1;
+    }
+}
+CH3O
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       31.0345;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.7708 0.0078715 -2.65638e-06 3.94443e-10 -2.11262e-14 127.833 2.92957 );
+        lowCpCoeffs     ( 2.1062 0.0072166 5.33847e-06 -7.37764e-09 2.07561e-12 978.601 13.1522 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+        O               1;
+    }
+}
+O
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       15.9994;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.56942 -8.59741e-05 4.19485e-08 -1.00178e-11 1.22834e-15 29217.6 4.78434 );
+        lowCpCoeffs     ( 3.16827 -0.00327932 6.64306e-06 -6.12807e-09 2.11266e-12 29122.3 2.05193 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        O               1;
+    }
+}
+HCNN
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       41.0325;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.89464 0.0039896 -1.59824e-06 2.92494e-10 -2.00947e-14 53452.9 -5.10305 );
+        lowCpCoeffs     ( 2.52432 0.0159606 -1.88164e-05 1.21255e-08 -3.23574e-12 54262 11.6759 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        N               2;
+        H               1;
+    }
+}
+NCO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       42.0173;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.15218 0.00230518 -8.80332e-07 1.47891e-10 -9.0978e-15 14004.1 -2.54427 );
+        lowCpCoeffs     ( 2.82693 0.00880517 -8.38661e-06 4.8017e-09 -1.33136e-12 14682.5 9.55046 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+CH2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       14.0271;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.8741 0.00365639 -1.40895e-06 2.6018e-10 -1.87728e-14 46263.6 6.17119 );
+        lowCpCoeffs     ( 3.76268 0.000968872 2.7949e-06 -3.85091e-09 1.68742e-12 46004 1.56253 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               2;
+    }
+}
+HCNO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       43.0252;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1382;
+        highCpCoeffs    ( 6.5986 0.00302779 -1.07704e-06 1.71667e-10 -1.01439e-14 17966.1 -10.3307 );
+        lowCpCoeffs     ( 2.64728 0.0127505 -1.04794e-05 4.41433e-09 -7.57521e-13 19299 10.7333 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+NH2
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       16.0226;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.83474 0.00320731 -9.33908e-07 1.3703e-10 -7.92061e-15 22172 6.52042 );
+        lowCpCoeffs     ( 4.204 -0.00210614 7.10683e-06 -5.61152e-09 1.64407e-12 21885.9 -0.141842 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               1;
+        H               2;
+    }
+}
+H2O
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       18.0153;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.03399 0.00217692 -1.64073e-07 -9.7042e-11 1.68201e-14 -30004.3 4.96677 );
+        lowCpCoeffs     ( 4.19864 -0.00203643 6.5204e-06 -5.48797e-09 1.77198e-12 -30293.7 -0.849032 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               2;
+        O               1;
+    }
+}
+NH
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       15.0147;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.78369 0.00132984 -4.2478e-07 7.83485e-11 -5.50445e-15 42120.8 5.74078 );
+        lowCpCoeffs     ( 3.49291 0.000311792 -1.48905e-06 2.48164e-09 -1.0357e-12 41880.6 1.84833 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               1;
+        H               1;
+    }
+}
+H
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       1.00797;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.5 -2.30843e-11 1.61562e-14 -4.73515e-18 4.98197e-22 25473.7 -0.446683 );
+        lowCpCoeffs     ( 2.5 7.05333e-13 -1.99592e-15 2.30082e-18 -9.27732e-22 25473.7 -0.446683 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        H               1;
+    }
+}
+AR
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       39.948;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.5 0 0 0 0 -745.375 4.366 );
+        lowCpCoeffs     ( 2.5 0 0 0 0 -745.375 4.366 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        Ar              1;
+    }
+}
+NO
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       30.0061;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.26061 0.0011911 -4.2917e-07 6.94577e-11 -4.03361e-15 9920.97 6.3693 );
+        lowCpCoeffs     ( 4.21848 -0.00463898 1.1041e-05 -9.33614e-09 2.80358e-12 9844.62 2.28085 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        N               1;
+        O               1;
+    }
+}
+CH
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       13.0191;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.87846 0.000970914 1.44446e-07 -1.30688e-10 1.76079e-14 71012.4 5.48498 );
+        lowCpCoeffs     ( 3.48982 0.000323836 -1.68899e-06 3.16217e-09 -1.40609e-12 70797.3 2.08401 );
+    }
+    transport
+    {
+        As              1.67212e-06;
+        Ts              170.672;
+    }
+    elements
+    {
+        C               1;
+        H               1;
+    }
+}
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties
new file mode 100644
index 00000000000..98c192c7cf0
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            hePsiThermo;
+    mixture         reactingMixture;
+    transport       sutherland;
+    thermo          janaf;
+    energy          sensibleEnthalpy;
+    equationOfState perfectGas;
+    specie          specie;
+}
+
+inertSpecie N2;
+
+chemistryReader foamChemistryReader;
+foamChemistryFile "$FOAM_CASE/constant/reactionsGRI";
+foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGasGRI";
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties
new file mode 100644
index 00000000000..c2c3b28a1b4
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict
new file mode 100644
index 00000000000..3683ab33882
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict
@@ -0,0 +1,82 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 1;
+
+vertices
+(
+    (0.0  -0.01 -0.01)
+    (0.02 -0.01 -0.01)
+    (0.02  0.01 -0.01)
+    (0.0   0.01 -0.01)
+    (0.0  -0.01  0.01)
+    (0.02 -0.01  0.01)
+    (0.02  0.01  0.01)
+    (0.0   0.01  0.01)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (100 40 1) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    fuel
+    {
+        type patch;
+        faces
+        (
+            (0 4 7 3)
+        );
+    }
+    air
+    {
+        type patch;
+        faces
+        (
+            (1 2 6 5)
+        );
+    }
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (0 1 5 4)
+            (7 6 2 3)
+        );
+    }
+    frontAndBack
+    {
+        type empty;
+        faces
+        (
+            (4 5 6 7)
+            (0 3 2 1)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict
new file mode 100644
index 00000000000..792dbf2499c
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     reactingFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         1000;
+
+deltaT          1;
+
+writeControl    runTime;
+
+writeInterval   20;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict
new file mode 100644
index 00000000000..43667b412c4
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict
@@ -0,0 +1,29 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+method          hierarchical;
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes
new file mode 100644
index 00000000000..4eac5336f59
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes
@@ -0,0 +1,57 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         localEuler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+
+    div(phi,U)      Gauss limitedLinearV 1;
+    div(phi,Yi_h)   Gauss limitedLinear 1;
+    div(phi,K)      Gauss limitedLinear 1;
+    div(phid,p)     Gauss limitedLinear 1;
+    div(phi,epsilon) Gauss limitedLinear 1;
+    div(phi,k) Gauss limitedLinear 1;
+    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution
new file mode 100644
index 00000000000..46519a5a6c7
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution
@@ -0,0 +1,83 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    "rho.*"
+    {
+        solver          diagonal;
+    }
+
+    p
+    {
+        solver           PCG;
+        preconditioner   DIC;
+        tolerance        1e-6;
+        relTol           0.1;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol           0;
+    }
+
+    "(U|h|k|epsilon)"
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0.1;
+    }
+
+    "(U|h|k|epsilon)Final"
+    {
+        $U;
+        relTol          0.1;
+    }
+
+    Yi
+    {
+        $U;
+        relTol          0.1;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor no;
+    nOuterCorrectors  1;
+    nCorrectors     1;
+    nNonOrthogonalCorrectors 0;
+
+    maxDeltaT       1e-4;
+    maxCo           1;
+    alphaTemp       0.05;
+    rDeltaTSmoothingCoeff 1;
+    rDeltaTDampingCoeff 1;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        ".*" 1;
+    }
+}
+
+
+// ************************************************************************* //
-- 
GitLab


From 1b34f84298d4ffdc7266fff6a696c7b56f95ba36 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 7 Jan 2017 18:12:38 +0000
Subject: [PATCH 026/277] TDACChemistryModel: resolved issue with
 single-precision build

---
 .../chemistryModel/TDACChemistryModel/TDACChemistryModel.C      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
index ec67e628c0d..21198d9d220 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
@@ -55,7 +55,7 @@ Foam::TDACChemistryModel<CompType, ThermoType>::TDACChemistryModel
             IOobject::AUTO_WRITE
         ),
         mesh,
-        0
+        scalar(0)
     )
 {
     basicMultiComponentMixture& composition = this->thermo().composition();
-- 
GitLab


From f53293441bb68195c9f1ba34abf60aa608539a75 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sun, 8 Jan 2017 23:08:41 +0000
Subject: [PATCH 027/277] Corrected spelling mistake existance -> existence

Patch provided by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2425
---
 src/finiteVolume/fvMesh/fvMesh.C | 6 +++---
 wmake/wclean                     | 4 ++--
 wmake/wcleanLnIncludeAll         | 4 ++--
 wmake/wmakeCheckPwd              | 4 ++--
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/finiteVolume/fvMesh/fvMesh.C b/src/finiteVolume/fvMesh/fvMesh.C
index 3342910ab19..a0261cf797e 100644
--- a/src/finiteVolume/fvMesh/fvMesh.C
+++ b/src/finiteVolume/fvMesh/fvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -267,7 +267,7 @@ Foam::fvMesh::fvMesh(const IOobject& io)
         InfoInFunction << "Constructing fvMesh from IOobject" << endl;
     }
 
-    // Check the existance of the cell volumes and read if present
+    // Check the existence of the cell volumes and read if present
     // and set the storage of V00
     if (isFile(time().timePath()/"V0"))
     {
@@ -288,7 +288,7 @@ Foam::fvMesh::fvMesh(const IOobject& io)
         V00();
     }
 
-    // Check the existance of the mesh fluxes, read if present and set the
+    // Check the existence of the mesh fluxes, read if present and set the
     // mesh to be moving
     if (isFile(time().timePath()/"meshPhi"))
     {
diff --git a/wmake/wclean b/wmake/wclean
index e2f6a3142c3..a2161a88c49 100755
--- a/wmake/wclean
+++ b/wmake/wclean
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -130,7 +130,7 @@ fi
 
 #------------------------------------------------------------------------------
 # If target not specified search up the directory tree for the Make
-# sub-directory, check the existance of the 'files' file and clean there if
+# sub-directory, check the existence of the 'files' file and clean there if
 # present
 # ------------------------------------------------------------------------------
 
diff --git a/wmake/wcleanLnIncludeAll b/wmake/wcleanLnIncludeAll
index 2a4a434485a..b67247d3bc5 100755
--- a/wmake/wcleanLnIncludeAll
+++ b/wmake/wcleanLnIncludeAll
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -58,7 +58,7 @@ fi
 
 #------------------------------------------------------------------------------
 # Search up the directory tree for the Make sub-directory,
-# check the existance of the 'files' file and clean there if present
+# check the existence of the 'files' file and clean there if present
 #------------------------------------------------------------------------------
 
 # Need to add an option or special logic to control cdSource
diff --git a/wmake/wmakeCheckPwd b/wmake/wmakeCheckPwd
index f10b6d2339c..726b0038f97 100755
--- a/wmake/wmakeCheckPwd
+++ b/wmake/wmakeCheckPwd
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -89,7 +89,7 @@ dirName="$1"
 # Simple check against $PWD
 [ "$PWD" = "$dirName" ] && exit 0
 
-# Check existance of <dir>
+# Check existence of <dir>
 [ -d "$dirName" ] || {
     [ "$quietOpt" = true ] || {
         echo "$Script error: Directory does not exist $dirName"
-- 
GitLab


From d08a5193fbef39b68d9e945a66c5aee05505ad0d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 9 Jan 2017 14:33:47 +0000
Subject: [PATCH 028/277] stressComponents, wallGradU: Additional
 backward-compatibility info scripts

Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2423
---
 bin/stressComponents | 39 +++++++++++++++++++++++++++++++++++++++
 bin/wallGradU        | 37 +++++++++++++++++++++++++++++++++++++
 bin/wdot             | 37 +++++++++++++++++++++++++++++++++++++
 3 files changed, 113 insertions(+)
 create mode 100755 bin/stressComponents
 create mode 100755 bin/wallGradU
 create mode 100755 bin/wdot

diff --git a/bin/stressComponents b/bin/stressComponents
new file mode 100755
index 00000000000..d325b6f100b
--- /dev/null
+++ b/bin/stressComponents
@@ -0,0 +1,39 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2016-2017 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/>.
+#
+# Script
+#     stressComponents
+#
+# Description
+#     Script to suggest using the new "-postProcess" solver option.
+#
+#------------------------------------------------------------------------------
+Script=${0##*/}
+
+echo $Script "has been superceded by the -postProcess solver option:"
+echo "<solverName> -funcs '(R components(turbulenceProperties:R))'"
+echo "e.g."
+echo "simpleFoam -postProcess -funcs '(R components(turbulenceProperties:R))'"
+
+#------------------------------------------------------------------------------
diff --git a/bin/wallGradU b/bin/wallGradU
new file mode 100755
index 00000000000..ec4588a9be5
--- /dev/null
+++ b/bin/wallGradU
@@ -0,0 +1,37 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2017 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/>.
+#
+# Script
+#     wallGradU
+#
+# Description
+#     Script to suggest using the new "postProcess" utility.
+#
+#------------------------------------------------------------------------------
+Script=${0##*/}
+
+echo $Script "has been superceded by the postProcess utility:"
+echo "    postProcess -func 'grad(U)'"
+
+#------------------------------------------------------------------------------
diff --git a/bin/wdot b/bin/wdot
new file mode 100755
index 00000000000..8e66e1cadf3
--- /dev/null
+++ b/bin/wdot
@@ -0,0 +1,37 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2017 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/>.
+#
+# Script
+#     wdot
+#
+# Description
+#     Script to suggest using the new "postProcess" utility.
+#
+#------------------------------------------------------------------------------
+Script=${0##*/}
+
+echo $Script "has been superceded by the postProcess utility:"
+echo "postProcess -func XiReactionRate"
+
+#------------------------------------------------------------------------------
-- 
GitLab


From 47bd8e13f703da90a57b3c0209ac5023acc3926c Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 9 Jan 2017 21:40:39 +0000
Subject: [PATCH 029/277] TDACChemistryModel: simplified, rationalized and
 automated the handling of variableTimeStep

---
 .../chemistryModel/Make/options               |  6 +-
 .../TDACChemistryModel/TDACChemistryModel.C   | 12 +++-
 .../TDACChemistryModel/TDACChemistryModel.H   | 10 +--
 .../TDACChemistryModel/TDACChemistryModelI.H  | 18 ++++-
 .../TDACChemistryModel/tabulation/ISAT/ISAT.C | 23 +------
 .../tabulation/ISAT/binaryNode/binaryNode.C   | 66 +++++--------------
 .../tabulation/ISAT/binaryNode/binaryNode.H   |  8 ---
 .../ISAT/chemPointISAT/chemPointISAT.C        | 34 +++++-----
 .../ISAT/chemPointISAT/chemPointISAT.H        |  7 +-
 .../chemistryTabulationMethod.C               |  3 +-
 .../chemistryTabulationMethod.H               |  4 +-
 .../makeChemistryTabulationMethods.H          |  4 +-
 .../constant/chemistryProperties              |  2 -
 13 files changed, 77 insertions(+), 120 deletions(-)

diff --git a/src/thermophysicalModels/chemistryModel/Make/options b/src/thermophysicalModels/chemistryModel/Make/options
index de52d7e6ae8..5997147f12c 100644
--- a/src/thermophysicalModels/chemistryModel/Make/options
+++ b/src/thermophysicalModels/chemistryModel/Make/options
@@ -7,7 +7,8 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/compressible/lnInclude \
     -I$(LIB_SRC)/ODE/lnInclude \
-    -I$(LIB_SRC)/finiteVolume/lnInclude
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
     -lcompressibleTransportModels \
@@ -16,4 +17,5 @@ LIB_LIBS = \
     -lspecie \
     -lthermophysicalFunctions \
     -lODE \
-    -lfiniteVolume
+    -lfiniteVolume \
+    -lmeshTools
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
index 21198d9d220..5fef7144907 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
@@ -25,6 +25,7 @@ License
 
 #include "TDACChemistryModel.H"
 #include "UniformField.H"
+#include "localEulerDdtScheme.H"
 #include "clockTime.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
@@ -37,6 +38,11 @@ Foam::TDACChemistryModel<CompType, ThermoType>::TDACChemistryModel
 )
 :
     chemistryModel<CompType, ThermoType>(mesh, phaseName),
+    variableTimeStep_
+    (
+        mesh.time().controlDict().lookupOrDefault("adjustTimeStep", false)
+     || fv::localEulerDdt::enabled(mesh)
+    ),
     timeSteps_(0),
     NsDAC_(this->nSpecie_),
     completeC_(this->nSpecie_, 0),
@@ -598,7 +604,7 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
 
     const bool reduced = mechRed_->active();
 
-    label nAdditionalEqn = (tabulation_->variableTimeStep() ? 1:0);
+    label nAdditionalEqn = (tabulation_->variableTimeStep() ? 1 : 0);
 
     basicMultiComponentMixture& composition = this->thermo().composition();
 
@@ -661,10 +667,10 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
             phiq[i] = this->Y()[i][celli];
         }
         phiq[this->nSpecie()]=Ti;
-        phiq[this->nSpecie()+1]=pi;
+        phiq[this->nSpecie() + 1]=pi;
         if (tabulation_->variableTimeStep())
         {
-            phiq[this->nSpecie()+2] = deltaT[celli];
+            phiq[this->nSpecie() + 2] = deltaT[celli];
         }
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
index fd92c6a641d..bf07574a3a8 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
@@ -85,6 +85,8 @@ class TDACChemistryModel
 {
     // Private member data
 
+        bool variableTimeStep_;
+
         label timeSteps_;
 
         // Mechanism reduction
@@ -159,11 +161,11 @@ public:
 
     // Member Functions
 
-        inline label timeSteps() const
-        {
-            return timeSteps_;
-        }
+        //- Return true if the time-step is variable and/or non-uniform
+        inline bool variableTimeStep() const;
 
+        //- Return the number of chemistry evaluations (used by ISAT)
+        inline label timeSteps() const;
 
         //- Create and return a TDAC log file of the given name
         inline autoPtr<OFstream> logFile(const word& name) const;
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H
index 8aedea05711..362820308d0 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,6 +25,22 @@ License
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class CompType, class ThermoType>
+inline bool
+Foam::TDACChemistryModel<CompType, ThermoType>::variableTimeStep() const
+{
+    return variableTimeStep_;
+}
+
+
+template<class CompType, class ThermoType>
+inline Foam::label
+Foam::TDACChemistryModel<CompType, ThermoType>::timeSteps() const
+{
+    return timeSteps_;
+}
+
+
 template<class CompType, class ThermoType>
 inline Foam::autoPtr<Foam::OFstream>
 Foam::TDACChemistryModel<CompType, ThermoType>::logFile(const word& name) const
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C
index 41de9be5617..555365b7ba8 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/ISAT.C
@@ -98,30 +98,13 @@ Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::ISAT
             }
         }
         scaleFactor_[Ysize] = readScalar(scaleDict.lookup("Temperature"));
-        scaleFactor_[Ysize+1] = readScalar(scaleDict.lookup("Pressure"));
+        scaleFactor_[Ysize + 1] = readScalar(scaleDict.lookup("Pressure"));
         if (this->variableTimeStep())
         {
             scaleFactor_[Ysize + 2] = readScalar(scaleDict.lookup("deltaT"));
         }
-        else
-        {
-            // When the variableTimeStep option is false, if the application
-            // has variable time step activated, the maximum lifetime of a
-            // chemPoint should be 1 time step.
-            bool adjustTimeStep =
-                runTime_.controlDict().lookupOrDefault("adjustTimeStep", false);
-            if (chPMaxLifeTime_ > 1 && adjustTimeStep)
-            {
-                WarningInFunction
-                    << " variableTimeStep is not activate for ISAT while"
-                    << " the time step might be adjusted by the application."
-                    << nl
-                    << " This might lead to errors in the chemistry." << nl
-                    << " To avoid this warning either set chPMaxLifeTime to 1"
-                    << " or activate variableTimeStep." << endl;
-            }
-        }
     }
+
     if (this->variableTimeStep())
     {
         nAdditionalEqns_ = 3;
@@ -433,7 +416,7 @@ void Foam::chemistryTabulationMethods::ISAT<CompType, ThermoType>::computeA
 
     // For temperature and pressure, only unity on the diagonal
     A(speciesNumber, speciesNumber) = 1;
-    A(speciesNumber+1, speciesNumber+1) = 1;
+    A(speciesNumber + 1, speciesNumber + 1) = 1;
     if (this->variableTimeStep())
     {
         A[speciesNumber + 2][speciesNumber + 2] = 1;
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C
index bfb092a7370..5a4c4663b18 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.C
@@ -28,19 +28,15 @@ License
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class CompType, class ThermoType>
-Foam::binaryNode<CompType, ThermoType>::binaryNode
-(
-)
+Foam::binaryNode<CompType, ThermoType>::binaryNode()
 :
     leafLeft_(nullptr),
     leafRight_(nullptr),
     nodeLeft_(nullptr),
     nodeRight_(nullptr),
     parent_(nullptr),
-    variableTimeStep_(false),
     nAdditionalEqns_(0)
-{
-}
+{}
 
 
 template<class CompType, class ThermoType>
@@ -56,10 +52,9 @@ Foam::binaryNode<CompType, ThermoType>::binaryNode
     nodeLeft_(nullptr),
     nodeRight_(nullptr),
     parent_(parent),
-    variableTimeStep_(elementLeft->variableTimeStep()),
     v_(elementLeft->completeSpaceSize(), 0)
 {
-    if (this->variableTimeStep_)
+    if (elementLeft->variableTimeStep())
     {
         nAdditionalEqns_ = 3;
     }
@@ -72,41 +67,11 @@ Foam::binaryNode<CompType, ThermoType>::binaryNode
     a_ = calcA(elementLeft, elementRight);
 }
 
-template<class CompType, class ThermoType>
-Foam::binaryNode<CompType, ThermoType>::binaryNode
-(
-    binaryNode<CompType, ThermoType> *bn
-)
-:
-    leafLeft_(bn->leafLeft()),
-    leafRight_(bn->leafRight()),
-    nodeLeft_(bn->nodeLeft()),
-    nodeRight_(bn->nodeRight()),
-    parent_(bn->parent()),
-    variableTimeStep_
-    (
-        this->coeffsDict_.lookupOrDefault("variableTimeStep", false)
-    ),
-    v_(bn->v()),
-    a_(bn->a())
-{
-    if (this->variableTimeStep_)
-    {
-        nAdditionalEqns_ = 3;
-    }
-    else
-    {
-        nAdditionalEqns_ = 2;
-    }
-}
-
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-
 template<class CompType, class ThermoType>
-void
-Foam::binaryNode<CompType, ThermoType>::calcV
+void Foam::binaryNode<CompType, ThermoType>::calcV
 (
     chemPointISAT<CompType, ThermoType>*& elementLeft,
     chemPointISAT<CompType, ThermoType>*& elementRight,
@@ -116,7 +81,8 @@ Foam::binaryNode<CompType, ThermoType>::calcV
     // LT is the transpose of the L matrix
     scalarSquareMatrix& LT = elementLeft->LT();
     bool mechReductionActive = elementLeft->chemistry().mechRed()->active();
-    // difference of composition in the full species domain
+
+    // Difference of composition in the full species domain
     scalarField phiDif(elementRight->phi() - elementLeft->phi());
     const scalarField& scaleFactor(elementLeft->scaleFactor());
     scalar epsTol = elementLeft->tolerance();
@@ -131,9 +97,9 @@ Foam::binaryNode<CompType, ThermoType>::calcV
             if (i<elementLeft->completeSpaceSize() - nAdditionalEqns_)
             {
                 si = elementLeft->completeToSimplifiedIndex()[i];
-                outOfIndexI = (si==-1);
+                outOfIndexI = (si == -1);
             }
-            else// temperature and pressure
+            else // temperature and pressure
             {
                 outOfIndexI = false;
                 const label dif =
@@ -143,7 +109,7 @@ Foam::binaryNode<CompType, ThermoType>::calcV
         }
         if (!mechReductionActive || (mechReductionActive && !(outOfIndexI)))
         {
-            v[i]=0.0;
+            v[i] = 0;
             for (label j=0; j<elementLeft->completeSpaceSize(); j++)
             {
                 label sj = j;
@@ -173,7 +139,7 @@ Foam::binaryNode<CompType, ThermoType>::calcV
                   ||(mechReductionActive && !(outOfIndexJ))
                 )
                 {
-                    // since L is a lower triangular matrix k=0->min(i, j)
+                    // Since L is a lower triangular matrix k=0->min(i, j)
                     for (label k=0; k<=min(si, sj); k++)
                     {
                         v[i] += LT(k, si)*LT(k, sj)*phiDif[j];
@@ -183,8 +149,8 @@ Foam::binaryNode<CompType, ThermoType>::calcV
         }
         else
         {
-            // when it is an inactive species the diagonal element of LT is
-            //  1/(scaleFactor*epsTol)
+            // When it is an inactive species the diagonal element of LT is
+            // 1/(scaleFactor*epsTol)
             v[i] = phiDif[i]/sqr(scaleFactor[i]*epsTol);
         }
     }
@@ -198,13 +164,13 @@ Foam::scalar Foam::binaryNode<CompType, ThermoType>::calcA
     chemPointISAT<CompType, ThermoType>* elementRight
 )
 {
-    scalar a = 0.0;
-    scalarField phih((elementLeft->phi()+elementRight->phi())/2);
-    label completeSpaceSize = elementLeft->completeSpaceSize();
-    for (label i=0; i<completeSpaceSize; i++)
+    scalarField phih((elementLeft->phi() + elementRight->phi())/2);
+    scalar a = 0;
+    forAll(phih, i)
     {
         a += v_[i]*phih[i];
     }
+
     return a;
 }
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H
index 4b23e805d7f..99952a51f68 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/binaryNode/binaryNode.H
@@ -67,9 +67,6 @@ public:
     //- Parent node
     binaryNode<CompType, ThermoType>* parent_;
 
-    //- Switch to allow variable time step (off by default)
-    bool variableTimeStep_;
-
     //- Number of equations in addition to the species eqs.
     label nAdditionalEqns_;
 
@@ -137,11 +134,6 @@ public:
             chemPointISAT<CompType, ThermoType>* elementRight,
             binaryNode<CompType, ThermoType>* parent
         );
-        //- Construct from another binary node
-        binaryNode
-        (
-            binaryNode<CompType, ThermoType> *bn
-        );
 
 
     // Member functions
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C
index ecc212e1eb8..33bf7688138 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.C
@@ -227,18 +227,14 @@ Foam::chemPointISAT<CompType, ThermoType>::chemPointISAT
     printProportion_(coeffsDict.lookupOrDefault("printProportion",false)),
     numRetrieve_(0),
     nLifeTime_(0),
-    variableTimeStep_
-    (
-        coeffsDict.lookupOrDefault("variableTimeStep", false)
-    ),
     completeToSimplifiedIndex_
     (
-        completeSpaceSize - (2 + (variableTimeStep_ == 1 ? 1 : 0))
+        completeSpaceSize - (2 + (variableTimeStep() == 1 ? 1 : 0))
     )
 {
-    tolerance_=tolerance;
+    tolerance_ = tolerance;
 
-    if (this->variableTimeStep_)
+    if (variableTimeStep())
     {
         nAdditionalEqns_ = 3;
         iddeltaT_ = completeSpaceSize - 1;
@@ -342,12 +338,11 @@ Foam::chemPointISAT<CompType, ThermoType>::chemPointISAT
     maxNumNewDim_(p.maxNumNewDim()),
     numRetrieve_(0),
     nLifeTime_(0),
-    variableTimeStep_(p.variableTimeStep()),
     completeToSimplifiedIndex_(p.completeToSimplifiedIndex())
 {
     tolerance_ = p.tolerance();
 
-    if (this->variableTimeStep_)
+    if (variableTimeStep())
     {
         nAdditionalEqns_ = 3;
         idT_ = completeSpaceSize() - 3;
@@ -407,7 +402,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
 
             temp += LT_(si, dim)*dphi[idT_];
             temp += LT_(si, dim+1)*dphi[idp_];
-            if (variableTimeStep_)
+            if (variableTimeStep())
             {
                 temp += LT_(si, dim+2)*dphi[iddeltaT_];
             }
@@ -426,7 +421,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
     }
 
     // Temperature
-    if (variableTimeStep_)
+    if (variableTimeStep())
     {
         epsTemp +=
             sqr
@@ -447,7 +442,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
     }
 
     // Pressure
-    if (variableTimeStep_)
+    if (variableTimeStep())
     {
         epsTemp +=
             sqr
@@ -461,7 +456,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
         epsTemp += sqr(LT_(dim+1, dim+1)*dphi[idp_]);
     }
 
-    if (variableTimeStep_)
+    if (variableTimeStep())
     {
         epsTemp += sqr(LT_[dim+2][dim+2]*dphi[iddeltaT_]);
     }
@@ -477,7 +472,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::inEOA(const scalarField& phiq)
         propEps[idp_] =
             sqr(LT_(dim+1, dim+1)*dphi[idp_]);
 
-        if (variableTimeStep_)
+        if (variableTimeStep())
         {
             propEps[iddeltaT_] =
                 sqr(LT_[dim+2][dim+2]*dphi[iddeltaT_]);
@@ -572,7 +567,7 @@ bool Foam::chemPointISAT<CompType, ThermoType>::checkSolution
                 }
                 dRl += Avar(si, nActiveSpecies_)*dphi[idT_];
                 dRl += Avar(si, nActiveSpecies_+1)*dphi[idp_];
-                if (variableTimeStep_)
+                if (variableTimeStep())
                 {
                     dRl += Avar(si, nActiveSpecies_+2)*dphi[iddeltaT_];
                 }
@@ -719,7 +714,8 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
                 LTvar(initNActiveSpecies+1, initNActiveSpecies+1);
             A_(nActiveSpecies_+1, nActiveSpecies_+1)=
                 Avar(initNActiveSpecies+1, initNActiveSpecies+1);
-            if (variableTimeStep_)
+
+            if (variableTimeStep())
             {
                 LT_(nActiveSpecies_+2, nActiveSpecies_+2)=
                     LTvar(initNActiveSpecies+2, initNActiveSpecies+2);
@@ -755,9 +751,11 @@ bool Foam::chemPointISAT<CompType, ThermoType>::grow(const scalarField& phiq)
             }
             phiTilde[i] += LT_(i, j)*dphi[sj];
         }
+
         phiTilde[i] += LT_(i, dim-nAdditionalEqns_)*dphi[idT_];
         phiTilde[i] += LT_(i, dim-nAdditionalEqns_+1)*dphi[idp_];
-        if (variableTimeStep_)
+
+        if (variableTimeStep())
         {
             phiTilde[i] += LT_(i, dim-nAdditionalEqns_ + 2)*dphi[iddeltaT_];
         }
@@ -827,7 +825,7 @@ simplifiedToCompleteIndex
     {
         return completeSpaceSize_-nAdditionalEqns_ + 1;
     }
-    else if (variableTimeStep_ && (i == nActiveSpecies_ + 2))
+    else if (variableTimeStep() && (i == nActiveSpecies_ + 2))
     {
         return completeSpaceSize_-nAdditionalEqns_ + 2;
     }
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H
index cae8ea213b7..3b9ed780568 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/ISAT/chemPointISAT/chemPointISAT.H
@@ -198,9 +198,6 @@ class chemPointISAT
         //   to still live according to the maxChPLifeTime_ parameter
         label nLifeTime_;
 
-        //- Switch to allow variable time step (off by default)
-        Switch variableTimeStep_;
-
         List<label> completeToSimplifiedIndex_;
 
         //- Number of equations in addition to the species eqs.
@@ -397,9 +394,9 @@ public:
             return nLifeTime_;
         }
 
-        inline Switch variableTimeStep()
+        inline bool variableTimeStep() const
         {
-            return variableTimeStep_;
+            return chemistry_.variableTimeStep();
         }
 
         // ISAT functions
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C
index 0803a3ac300..df1f195a647 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.C
@@ -40,8 +40,7 @@ Foam::chemistryTabulationMethod<CompType, ThermoType>::chemistryTabulationMethod
     active_(coeffsDict_.lookupOrDefault<Switch>("active", false)),
     log_(coeffsDict_.lookupOrDefault<Switch>("log", false)),
     chemistry_(chemistry),
-    tolerance_(coeffsDict_.lookupOrDefault<scalar>("tolerance", 1e-4)),
-    variableTimeStep_(coeffsDict_.lookupOrDefault("variableTimeStep", false))
+    tolerance_(coeffsDict_.lookupOrDefault<scalar>("tolerance", 1e-4))
 {}
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H
index f35dc694a82..4671e3e8502 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/chemistryTabulationMethod/chemistryTabulationMethod.H
@@ -74,8 +74,6 @@ protected:
 
     scalar tolerance_;
 
-    //- Switch to allow variable time step (off by default)
-    const Switch variableTimeStep_;
 
 public:
 
@@ -134,7 +132,7 @@ public:
 
         inline bool variableTimeStep()
         {
-            return variableTimeStep_;
+            return chemistry_.variableTimeStep();
         }
 
         inline scalar tolerance() const
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/makeChemistryTabulationMethods.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/makeChemistryTabulationMethods.H
index 69b5f75bc9f..a06dc958512 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/makeChemistryTabulationMethods.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/tabulation/makeChemistryTabulationMethods.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,7 @@ License
         add##chemistryTabulationMethods##SS##Comp##Thermo##ConstructorToTable_;
 
 
-#define makeChemistryTabulationMethods(CompChemModel, Thermo)                   \
+#define makeChemistryTabulationMethods(CompChemModel, Thermo)                  \
                                                                                \
     typedef chemistryTabulationMethod<CompChemModel, Thermo>                   \
         chemistryTabulationMethod##CompChemModel##Thermo;                      \
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
index 09adc4c2f5e..8cf1ba974aa 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
@@ -78,8 +78,6 @@ tabulation
 
     printNumRetrieve   off;
 
-    variableTimeStep   on;
-
     // Tolerance used for retrieve and grow
     tolerance   1e-3;
 
-- 
GitLab


From 512bfcfd6bf3a0e30a5759111631d0c55e6fd447 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 13 Jan 2017 14:06:45 +0000
Subject: [PATCH 030/277] CloudFunctionObjects::ParticleCollector: Corrected
 handling of "concentricCircle" mode

Patch contributed by Karl Meredith, FM Global.
---
 .../ParticleCollector/ParticleCollector.C     | 56 +++++++++++++------
 1 file changed, 38 insertions(+), 18 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
index 3eb5075c931..3f278e8c5e6 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -171,7 +171,7 @@ void Foam::ParticleCollector<CloudType>::initConcentricCircles()
     }
     else
     {
-        // set 4 quadrants for single sector cases
+        // Set 4 quadrants for single sector cases
         nS = 4;
 
         vector tangent = Zero;
@@ -200,7 +200,7 @@ void Foam::ParticleCollector<CloudType>::initConcentricCircles()
     label nPoint = radius_.size()*nPointPerRadius;
     label nFace = radius_.size()*nS;
 
-    // add origin
+    // Add origin
     nPoint++;
 
     points_.setSize(nPoint);
@@ -213,7 +213,7 @@ void Foam::ParticleCollector<CloudType>::initConcentricCircles()
 
     points_[0] = origin;
 
-    // points
+    // Points
     forAll(radius_, radI)
     {
         label pointOffset = radI*nPointPerRadius + 1;
@@ -226,7 +226,7 @@ void Foam::ParticleCollector<CloudType>::initConcentricCircles()
         }
     }
 
-    // faces
+    // Faces
     DynamicList<label> facePts(2*nPointPerSector);
     forAll(radius_, radI)
     {
@@ -236,7 +236,7 @@ void Foam::ParticleCollector<CloudType>::initConcentricCircles()
             {
                 facePts.clear();
 
-                // append origin point
+                // Append origin point
                 facePts.append(0);
 
                 for (label ptI = 0; ptI < nPointPerSector; ptI++)
@@ -304,16 +304,16 @@ void Foam::ParticleCollector<CloudType>::collectParcelPolygon
 
         if (sign(d1) == sign(d2))
         {
-            // did not cross polygon plane
+            // Did not cross polygon plane
             continue;
         }
 
-        // intersection point
+        // Intersection point
         const point pIntersect = p1 + (d1/(d1 - d2))*(p2 - p1);
 
         const List<face>& tris = faceTris_[facei];
 
-        // identify if point is within poly bounds
+        // Identify if point is within poly bounds
         forAll(tris, triI)
         {
             const face& tri = tris[triI];
@@ -347,11 +347,11 @@ void Foam::ParticleCollector<CloudType>::collectParcelConcentricCircles
 
     if (sign(d1) == sign(d2))
     {
-        // did not cross plane
+        // Did not cross plane
         return;
     }
 
-    // intersection point in cylindrical co-ordinate system
+    // Intersection point in cylindrical co-ordinate system
     const point pCyl = coordSys_.localPosition(p1 + (d1/(d1 - d2))*(p2 - p1));
 
     scalar r = pCyl[0];
@@ -381,7 +381,10 @@ void Foam::ParticleCollector<CloudType>::collectParcelConcentricCircles
         }
     }
 
-    hitFaceIDs_.append(secI);
+    if (secI != -1)
+    {
+        hitFaceIDs_.append(secI);
+    }
 }
 
 
@@ -651,7 +654,7 @@ void Foam::ParticleCollector<CloudType>::postMove
         return;
     }
 
-    // slightly extend end position to avoid falling within tracking tolerances
+    // Slightly extend end position to avoid falling within tracking tolerances
     const point position1 = position0 + 1.0001*(p.position() - position0);
 
     hitFaceIDs_.clear();
@@ -669,8 +672,7 @@ void Foam::ParticleCollector<CloudType>::postMove
             break;
         }
         default:
-        {
-        }
+        {}
     }
 
 
@@ -681,15 +683,33 @@ void Foam::ParticleCollector<CloudType>::postMove
 
         if (negateParcelsOppositeNormal_)
         {
+            scalar Unormal = 0;
             vector Uhat = p.U();
+            switch (mode_)
+            {
+                case mtPolygon:
+                {
+                    Unormal = Uhat & normal_[facei];
+                    break;
+                }
+                case mtConcentricCircle:
+                {
+                    Unormal = Uhat & normal_[0];
+                    break;
+                }
+                default:
+                {}
+            }
+
             Uhat /= mag(Uhat) + ROOTVSMALL;
-            if ((Uhat & normal_[facei]) < 0)
+
+            if (Unormal < 0)
             {
-                m *= -1.0;
+                m = -m;
             }
         }
 
-        // add mass contribution
+        // Add mass contribution
         mass_[facei] += m;
 
         if (nSector_ == 1)
-- 
GitLab


From 5649bda9518e39691cc37e82bb6a261de31087de Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 13 Jan 2017 14:08:41 +0000
Subject: [PATCH 031/277] realizableKE: Removed unused Cmu coefficient

Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2431
---
 .../RAS/realizableKE/realizableKE.C                 | 13 +------------
 .../RAS/realizableKE/realizableKE.H                 |  4 +---
 2 files changed, 2 insertions(+), 15 deletions(-)

diff --git a/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C b/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C
index a7ecf00625a..725798675c2 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -151,16 +151,6 @@ realizableKE<BasicTurbulenceModel>::realizableKE
         transport,
         propertiesName
     ),
-
-    Cmu_
-    (
-        dimensioned<scalar>::lookupOrAddToDict
-        (
-            "Cmu",
-            this->coeffDict_,
-            0.09
-        )
-    ),
     A0_
     (
         dimensioned<scalar>::lookupOrAddToDict
@@ -240,7 +230,6 @@ bool realizableKE<BasicTurbulenceModel>::read()
 {
     if (eddyViscosity<RASModel<BasicTurbulenceModel>>::read())
     {
-        Cmu_.readIfPresent(this->coeffDict());
         A0_.readIfPresent(this->coeffDict());
         C2_.readIfPresent(this->coeffDict());
         sigmak_.readIfPresent(this->coeffDict());
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.H b/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.H
index f47616f4f35..9738b104559 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.H
+++ b/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,6 @@ Description
     \verbatim
         realizableKECoeffs
         {
-            Cmu         0.09;
             A0          4.0;
             C2          1.9;
             sigmak      1.0;
@@ -90,7 +89,6 @@ protected:
 
         // Model coefficients
 
-            dimensionedScalar Cmu_;
             dimensionedScalar A0_;
             dimensionedScalar C2_;
             dimensionedScalar sigmak_;
-- 
GitLab


From e0b157c0c07b49636259d2009907828b4992fd90 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 13 Jan 2017 14:10:04 +0000
Subject: [PATCH 032/277] fieldMinMax: Added cell index to output

e.g.

fieldMinMax fieldMinMax write:
    min(T) = 291 in cell 255535 at location (-0.262546 -0.538933 1.00574) on processor 9
    max(T) = 336.298 in cell 419031 at location (1.7468 0.758405 8.10989) on processor 1
    min(mag(U)) = 0 in cell 14990 at location (-0.0824383 1.68479 1.5349) on processor 0
    max(mag(U)) = 652.341 in cell 218284 at location (0.609849 0.167247 1.00091) on processor 12
---
 .../field/fieldMinMax/fieldMinMax.H           |  4 +-
 .../field/fieldMinMax/fieldMinMaxTemplates.C  | 50 +++++++++++++++----
 2 files changed, 43 insertions(+), 11 deletions(-)

diff --git a/src/functionObjects/field/fieldMinMax/fieldMinMax.H b/src/functionObjects/field/fieldMinMax/fieldMinMax.H
index 6d34a105cbc..8e1a9139dd5 100644
--- a/src/functionObjects/field/fieldMinMax/fieldMinMax.H
+++ b/src/functionObjects/field/fieldMinMax/fieldMinMax.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -131,6 +131,8 @@ protected:
         (
             const word& fieldName,
             const word& outputName,
+            const label minCell,
+            const label maxCell,
             const vector& minC,
             const vector& maxC,
             const label minProci,
diff --git a/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C b/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
index dd7e86de563..f937a22f81f 100644
--- a/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
+++ b/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,6 +33,8 @@ void Foam::functionObjects::fieldMinMax::output
 (
     const word& fieldName,
     const word& outputName,
+    const label minCell,
+    const label maxCell,
     const vector& minC,
     const vector& maxC,
     const label minProci,
@@ -68,6 +70,7 @@ void Foam::functionObjects::fieldMinMax::output
         file<< endl;
 
         Log << "    min(" << outputName << ") = " << minValue
+            << " in cell " << minCell
             << " at location " << minC;
 
         if (Pstream::parRun())
@@ -76,6 +79,7 @@ void Foam::functionObjects::fieldMinMax::output
         }
 
         Log << nl << "    max(" << outputName << ") = " << maxValue
+            << " in cell " << maxCell
             << " at location " << maxC;
 
         if (Pstream::parRun())
@@ -122,17 +126,19 @@ void Foam::functionObjects::fieldMinMax::calcMinMaxFields
                     magField.boundaryField();
 
                 scalarList minVs(Pstream::nProcs());
+                labelList minCells(Pstream::nProcs());
                 List<vector> minCs(Pstream::nProcs());
                 label minProci = findMin(magField);
                 minVs[proci] = magField[minProci];
+                minCells[proci] = minProci;
                 minCs[proci] = mesh_.C()[minProci];
 
-
-                labelList maxIs(Pstream::nProcs());
                 scalarList maxVs(Pstream::nProcs());
+                labelList maxCells(Pstream::nProcs());
                 List<vector> maxCs(Pstream::nProcs());
                 label maxProci = findMax(magField);
                 maxVs[proci] = magField[maxProci];
+                maxCells[proci] = maxProci;
                 maxCs[proci] = mesh_.C()[maxProci];
 
                 forAll(magFieldBoundary, patchi)
@@ -142,10 +148,14 @@ void Foam::functionObjects::fieldMinMax::calcMinMaxFields
                     {
                         const vectorField& Cfp = CfBoundary[patchi];
 
+                        const labelList& faceCells =
+                            magFieldBoundary[patchi].patch().faceCells();
+
                         label minPI = findMin(mfp);
                         if (mfp[minPI] < minVs[proci])
                         {
                             minVs[proci] = mfp[minPI];
+                            minCells[proci] = faceCells[minPI];
                             minCs[proci] = Cfp[minPI];
                         }
 
@@ -153,31 +163,38 @@ void Foam::functionObjects::fieldMinMax::calcMinMaxFields
                         if (mfp[maxPI] > maxVs[proci])
                         {
                             maxVs[proci] = mfp[maxPI];
+                            maxCells[proci] = faceCells[maxPI];
                             maxCs[proci] = Cfp[maxPI];
                         }
                     }
                 }
 
                 Pstream::gatherList(minVs);
+                Pstream::gatherList(minCells);
                 Pstream::gatherList(minCs);
 
                 Pstream::gatherList(maxVs);
+                Pstream::gatherList(maxCells);
                 Pstream::gatherList(maxCs);
 
                 if (Pstream::master())
                 {
-                    label minI = findMin(minVs);
-                    scalar minValue = minVs[minI];
+                    const label minI = findMin(minVs);
+                    const scalar minValue = minVs[minI];
+                    const label minCell = minCells[minI];
                     const vector& minC = minCs[minI];
 
-                    label maxI = findMax(maxVs);
-                    scalar maxValue = maxVs[maxI];
+                    const label maxI = findMax(maxVs);
+                    const scalar maxValue = maxVs[maxI];
+                    const label maxCell = maxCells[maxI];
                     const vector& maxC = maxCs[maxI];
 
                     output
                     (
                         fieldName,
                         word("mag(" + fieldName + ")"),
+                        minCell,
+                        maxCell,
                         minC,
                         maxC,
                         minI,
@@ -194,31 +211,37 @@ void Foam::functionObjects::fieldMinMax::calcMinMaxFields
                     fieldBoundary = field.boundaryField();
 
                 List<Type> minVs(Pstream::nProcs());
+                labelList minCells(Pstream::nProcs());
                 List<vector> minCs(Pstream::nProcs());
                 label minProci = findMin(field);
                 minVs[proci] = field[minProci];
+                minCells[proci] = minProci;
                 minCs[proci] = mesh_.C()[minProci];
 
-                Pstream::gatherList(minVs);
-                Pstream::gatherList(minCs);
-
                 List<Type> maxVs(Pstream::nProcs());
+                labelList maxCells(Pstream::nProcs());
                 List<vector> maxCs(Pstream::nProcs());
                 label maxProci = findMax(field);
                 maxVs[proci] = field[maxProci];
+                maxCells[proci] = maxProci;
                 maxCs[proci] = mesh_.C()[maxProci];
 
                 forAll(fieldBoundary, patchi)
                 {
                     const Field<Type>& fp = fieldBoundary[patchi];
+
                     if (fp.size())
                     {
                         const vectorField& Cfp = CfBoundary[patchi];
 
+                        const labelList& faceCells =
+                            fieldBoundary[patchi].patch().faceCells();
+
                         label minPI = findMin(fp);
                         if (fp[minPI] < minVs[proci])
                         {
                             minVs[proci] = fp[minPI];
+                            minCells[proci] = faceCells[minPI];
                             minCs[proci] = Cfp[minPI];
                         }
 
@@ -226,31 +249,38 @@ void Foam::functionObjects::fieldMinMax::calcMinMaxFields
                         if (fp[maxPI] > maxVs[proci])
                         {
                             maxVs[proci] = fp[maxPI];
+                            maxCells[proci] = faceCells[maxPI];
                             maxCs[proci] = Cfp[maxPI];
                         }
                     }
                 }
 
                 Pstream::gatherList(minVs);
+                Pstream::gatherList(minCells);
                 Pstream::gatherList(minCs);
 
                 Pstream::gatherList(maxVs);
+                Pstream::gatherList(maxCells);
                 Pstream::gatherList(maxCs);
 
                 if (Pstream::master())
                 {
                     label minI = findMin(minVs);
                     Type minValue = minVs[minI];
+                    const label minCell = minCells[minI];
                     const vector& minC = minCs[minI];
 
                     label maxI = findMax(maxVs);
                     Type maxValue = maxVs[maxI];
+                    const label maxCell = maxCells[maxI];
                     const vector& maxC = maxCs[maxI];
 
                     output
                     (
                         fieldName,
                         fieldName,
+                        minCell,
+                        maxCell,
                         minC,
                         maxC,
                         minI,
-- 
GitLab


From 237c90820b2f2e33c4d354eee54267a3555d7c18 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 13 Jan 2017 14:11:28 +0000
Subject: [PATCH 033/277] species::thermo<Thermo, Type>::T: Check for negative
 initial temperature

Starting from an negative initial temperature causes non-convergence and a
misleading error, now a specific message is generated.
---
 .../specie/thermo/thermo/thermoI.H                    | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/thermophysicalModels/specie/thermo/thermo/thermoI.H b/src/thermophysicalModels/specie/thermo/thermo/thermoI.H
index 44197fd18f7..669d7e7a217 100644
--- a/src/thermophysicalModels/specie/thermo/thermo/thermoI.H
+++ b/src/thermophysicalModels/specie/thermo/thermo/thermoI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,6 +49,13 @@ inline Foam::scalar Foam::species::thermo<Thermo, Type>::T
     scalar (thermo<Thermo, Type>::*limit)(const scalar) const
 ) const
 {
+    if (T0 < 0)
+    {
+        FatalErrorInFunction
+            << "Negative initial temperature T0: " << T0
+            << abort(FatalError);
+    }
+
     scalar Test = T0;
     scalar Tnew = T0;
     scalar Ttol = T0*tol_;
@@ -64,7 +71,7 @@ inline Foam::scalar Foam::species::thermo<Thermo, Type>::T
         if (iter++ > maxIter_)
         {
             FatalErrorInFunction
-                << "Maximum number of iterations exceeded"
+                << "Maximum number of iterations exceeded: " << maxIter_
                 << abort(FatalError);
         }
 
-- 
GitLab


From 1ddaec3fc0ff86ccc98cf2077026a56abdeb13b6 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 13 Jan 2017 14:14:06 +0000
Subject: [PATCH 034/277] CodedSource: Corrected documentation

Patch contributed by zhulianhua
Resolves bug-report https://bugs.openfoam.org/view.php?id=2427
---
 src/fvOptions/sources/general/codedSource/CodedSource.H | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/fvOptions/sources/general/codedSource/CodedSource.H b/src/fvOptions/sources/general/codedSource/CodedSource.H
index 2e742bc0059..7a04a03293d 100644
--- a/src/fvOptions/sources/general/codedSource/CodedSource.H
+++ b/src/fvOptions/sources/general/codedSource/CodedSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,12 +57,15 @@ Usage
     {
         type            scalarCodedSource;
 
+        active          yes;
+
+        name    sourceTime;
+
         scalarCodedSourceCoeffs
         {
             selectionMode   all;
 
             fields          (h);
-            name            sourceTime;
 
             codeInclude
             #{
@@ -99,7 +102,7 @@ Usage
 
         sourceTimeCoeffs
         {
-            // Dummy entry
+            $scalarCodedSourceCoeffs;
         }
     }
     \endverbatim
-- 
GitLab


From 1abec0652da82ce3efc73d1fceb6c76543c46dce Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 17 Jan 2017 22:41:30 +0000
Subject: [PATCH 035/277] 
 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC: Added
 deltaT to TDAC controls

---
 .../counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties     | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties
index 6a2a326f127..adfaa91b61c 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties
@@ -90,6 +90,7 @@ tabulation
         otherSpecies 1;
         Temperature  2500;
         Pressure     1e15;
+        deltaT       1;
     }
 
     // Maximum number of leafs stored in the binary tree
-- 
GitLab


From 1c2093c8b3db054c7add334fc7f2098829c46890 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 17 Jan 2017 22:43:47 +0000
Subject: [PATCH 036/277] Multi-phase solvers: Improved handling of
 inflow/outflow BCs in MULES

Avoids slight phase-fraction unboundedness at entertainment BCs and improved
robustness.

Additionally the phase-fractions in the multi-phase (rather than two-phase)
solvers are adjusted to avoid the slow growth of inconsistency ("drift") caused
by solving for all of the phase-fractions rather than deriving one from the
others.
---
 .../multiphaseSystem/multiphaseSystem.C       |  74 +++---
 .../multiphaseSystem/phaseModel/phaseModel.C  |  20 +-
 .../multiphaseSystem/phaseModel/phaseModel.H  |   5 +-
 .../multiphaseMixture/multiphaseMixture.C     |  10 +-
 .../phaseModel/phaseModel/phaseModel.C        |  20 +-
 .../phaseModel/phaseModel/phaseModel.H        |   5 +-
 .../multiphaseSystem/multiphaseSystem.C       |  50 ++--
 .../twoPhaseSystem/twoPhaseSystem.C           |  61 ++---
 .../twoPhaseSystem/phaseModel/phaseModel.C    |  18 +-
 .../twoPhaseSystem/phaseModel/phaseModel.H    |   6 +-
 .../twoPhaseSystem/twoPhaseSystem.C           |  13 +-
 src/finiteVolume/Make/files                   |   1 -
 .../solvers/MULES/CMULESTemplates.C           |  50 ++--
 .../fvMatrices/solvers/MULES/IMULES.C         |  51 ----
 .../fvMatrices/solvers/MULES/IMULES.H         |  94 -------
 .../solvers/MULES/IMULESTemplates.C           | 236 ------------------
 .../fvMatrices/solvers/MULES/MULESTemplates.C |  92 +++----
 .../laminar/damBreak4phase/system/fvSolution  |   2 +-
 .../RAS/testTubeMixer/system/fvSolution       |   2 +-
 .../LES/nozzleFlow2D/system/fvSolution        |   2 +-
 .../damBreak/damBreak/system/fvSolution       |   2 +-
 .../laminar/damBreak4phase/system/fvSolution  |   2 +-
 .../damBreak4phaseFine/system/fvSolution      |   2 +-
 .../laminar/mixerVessel2D/system/fvSolution   |   2 +-
 24 files changed, 214 insertions(+), 606 deletions(-)
 delete mode 100644 src/finiteVolume/fvMatrices/solvers/MULES/IMULES.C
 delete mode 100644 src/finiteVolume/fvMatrices/solvers/MULES/IMULES.H
 delete mode 100644 src/finiteVolume/fvMatrices/solvers/MULES/IMULESTemplates.C

diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index be4def509ec..798e9c2eb6c 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,11 +64,8 @@ void Foam::multiphaseSystem::solveAlphas()
 
     forAllIter(PtrDictionary<phaseModel>, phases_, iter)
     {
-        phaseModel& phase1 = iter();
-        volScalarField& alpha1 = phase1;
-
-        phase1.alphaPhi() =
-            dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0);
+        phaseModel& phase = iter();
+        volScalarField& alpha1 = phase;
 
         alphaPhiCorrs.set
         (
@@ -79,7 +76,7 @@ void Foam::multiphaseSystem::solveAlphas()
                 fvc::flux
                 (
                     phi_,
-                    phase1,
+                    phase,
                     "div(phi," + alpha1.name() + ')'
                 )
             )
@@ -92,13 +89,13 @@ void Foam::multiphaseSystem::solveAlphas()
             phaseModel& phase2 = iter2();
             volScalarField& alpha2 = phase2;
 
-            if (&phase2 == &phase1) continue;
+            if (&phase2 == &phase) continue;
 
-            surfaceScalarField phir(phase1.phi() - phase2.phi());
+            surfaceScalarField phir(phase.phi() - phase2.phi());
 
             scalarCoeffSymmTable::const_iterator cAlpha
             (
-                cAlphas_.find(interfacePair(phase1, phase2))
+                cAlphas_.find(interfacePair(phase, phase2))
             );
 
             if (cAlpha != cAlphas_.end())
@@ -108,7 +105,7 @@ void Foam::multiphaseSystem::solveAlphas()
                     (mag(phi_) + mag(phir))/mesh_.magSf()
                 );
 
-                phir += min(cAlpha()*phic, max(phic))*nHatf(phase1, phase2);
+                phir += min(cAlpha()*phic, max(phic))*nHatf(phase, phase2);
             }
 
             word phirScheme
@@ -119,39 +116,18 @@ void Foam::multiphaseSystem::solveAlphas()
             alphaPhiCorr += fvc::flux
             (
                 -fvc::flux(-phir, phase2, phirScheme),
-                phase1,
+                phase,
                 phirScheme
             );
         }
 
-        surfaceScalarField::Boundary& alphaPhiCorrBf =
-            alphaPhiCorr.boundaryFieldRef();
-
-        // Ensure that the flux at inflow BCs is preserved
-        forAll(alphaPhiCorrBf, patchi)
-        {
-            fvsPatchScalarField& alphaPhiCorrp = alphaPhiCorrBf[patchi];
-
-            if (!alphaPhiCorrp.coupled())
-            {
-                const scalarField& phi1p = phase1.phi().boundaryField()[patchi];
-                const scalarField& alpha1p = alpha1.boundaryField()[patchi];
-
-                forAll(alphaPhiCorrp, facei)
-                {
-                    if (phi1p[facei] < 0)
-                    {
-                        alphaPhiCorrp[facei] = alpha1p[facei]*phi1p[facei];
-                    }
-                }
-            }
-        }
+        phase.correctInflowOutflow(alphaPhiCorr);
 
         MULES::limit
         (
             1.0/mesh_.time().deltaT().value(),
             geometricOneField(),
-            phase1,
+            phase,
             phi_,
             alphaPhiCorr,
             zeroField(),
@@ -182,29 +158,30 @@ void Foam::multiphaseSystem::solveAlphas()
 
     forAllIter(PtrDictionary<phaseModel>, phases_, iter)
     {
-        phaseModel& phase1 = iter();
+        phaseModel& phase = iter();
 
         surfaceScalarField& alphaPhi = alphaPhiCorrs[phasei];
-        alphaPhi += upwind<scalar>(mesh_, phi_).flux(phase1);
+        alphaPhi += upwind<scalar>(mesh_, phi_).flux(phase);
+        phase.correctInflowOutflow(alphaPhi);
 
         MULES::explicitSolve
         (
             geometricOneField(),
-            phase1,
+            phase,
             alphaPhi,
             zeroField(),
             zeroField()
         );
 
-        phase1.alphaPhi() += alphaPhi;
+        phase.alphaPhi() = alphaPhi;
 
-        Info<< phase1.name() << " volume fraction, min, max = "
-            << phase1.weightedAverage(mesh_.V()).value()
-            << ' ' << min(phase1).value()
-            << ' ' << max(phase1).value()
+        Info<< phase.name() << " volume fraction, min, max = "
+            << phase.weightedAverage(mesh_.V()).value()
+            << ' ' << min(phase).value()
+            << ' ' << max(phase).value()
             << endl;
 
-        sumAlpha += phase1;
+        sumAlpha += phase;
 
         phasei++;
     }
@@ -215,6 +192,15 @@ void Foam::multiphaseSystem::solveAlphas()
         << ' ' << max(sumAlpha).value()
         << endl;
 
+    // Correct the sum of the phase-fractions to avoid 'drift'
+    volScalarField sumCorr(1.0 - sumAlpha);
+    forAllIter(PtrDictionary<phaseModel>, phases_, iter)
+    {
+        phaseModel& phase = iter();
+        volScalarField& alpha = phase;
+        alpha += alpha*sumCorr;
+    }
+
     calcAlphas();
 }
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
index 4392e62ac9b..1751e404a47 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -236,6 +236,24 @@ bool Foam::phaseModel::read(const dictionary& phaseDict)
 }
 
 
+void Foam::phaseModel::correctInflowOutflow(surfaceScalarField& alphaPhi) const
+{
+    surfaceScalarField::Boundary& alphaPhiBf = alphaPhi.boundaryFieldRef();
+    const volScalarField::Boundary& alphaBf = boundaryField();
+    const surfaceScalarField::Boundary& phiBf = phi().boundaryField();
+
+    forAll(alphaPhiBf, patchi)
+    {
+        fvsPatchScalarField& alphaPhip = alphaPhiBf[patchi];
+
+        if (!alphaPhip.coupled())
+        {
+            alphaPhip = phiBf[patchi]*alphaBf[patchi];
+        }
+    }
+}
+
+
 Foam::tmp<Foam::volScalarField> Foam::phaseModel::d() const
 {
     return dPtr_().d();
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H
index d1f1157b9a1..90e48183cae 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -208,6 +208,9 @@ public:
             return alphaPhi_;
         }
 
+        //- Ensure that the flux at inflow/outflow BCs is preserved
+        void correctInflowOutflow(surfaceScalarField& alphaPhi) const;
+
         //- Correct the phase properties
         void correct();
 
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index 5dd59dead15..21b5edefe45 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -681,6 +681,14 @@ void Foam::multiphaseMixture::solveAlphas
         << ' ' << max(sumAlpha).value()
         << endl;
 
+    // Correct the sum of the phase-fractions to avoid 'drift'
+    volScalarField sumCorr(1.0 - sumAlpha);
+    forAllIter(PtrDictionary<phase>, phases_, iter)
+    {
+        phase& alpha = iter();
+        alpha += alpha*sumCorr;
+    }
+
     calcAlphas();
 }
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C
index 9fa7c0f5898..da10824230f 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -165,6 +165,24 @@ bool Foam::phaseModel::compressible() const
 }
 
 
+void Foam::phaseModel::correctInflowOutflow(surfaceScalarField& alphaPhi) const
+{
+    surfaceScalarField::Boundary& alphaPhiBf = alphaPhi.boundaryFieldRef();
+    const volScalarField::Boundary& alphaBf = boundaryField();
+    const surfaceScalarField::Boundary& phiBf = phi()().boundaryField();
+
+    forAll(alphaPhiBf, patchi)
+    {
+        fvsPatchScalarField& alphaPhip = alphaPhiBf[patchi];
+
+        if (!alphaPhip.coupled())
+        {
+            alphaPhip = phiBf[patchi]*alphaBf[patchi];
+        }
+    }
+}
+
+
 const Foam::tmp<Foam::volScalarField>& Foam::phaseModel::divU() const
 {
     NotImplemented;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H
index 719ef80a8c9..41fb67e715d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/phaseModel/phaseModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -283,6 +283,9 @@ public:
             //- Access the mass flux of the phase
             virtual surfaceScalarField& alphaRhoPhi() = 0;
 
+            //- Ensure that the flux at inflow/outflow BCs is preserved
+            void correctInflowOutflow(surfaceScalarField& alphaPhi) const;
+
 
         // Transport
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index ca37c2245b4..805d99844e3 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,15 +71,17 @@ void Foam::multiphaseSystem::solveAlphas()
 {
     bool LTS = fv::localEulerDdt::enabled(mesh_);
 
+    forAll(phases(), phasei)
+    {
+        phases()[phasei].correctBoundaryConditions();
+    }
+
     PtrList<surfaceScalarField> alphaPhiCorrs(phases().size());
     forAll(phases(), phasei)
     {
         phaseModel& phase = phases()[phasei];
         volScalarField& alpha1 = phase;
 
-        phase.alphaPhi() =
-            dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0);
-
         alphaPhiCorrs.set
         (
             phasei,
@@ -134,28 +136,7 @@ void Foam::multiphaseSystem::solveAlphas()
             );
         }
 
-        surfaceScalarField::Boundary& alphaPhiCorrBf =
-            alphaPhiCorr.boundaryFieldRef();
-
-        // Ensure that the flux at inflow BCs is preserved
-        forAll(alphaPhiCorr.boundaryField(), patchi)
-        {
-            fvsPatchScalarField& alphaPhiCorrp = alphaPhiCorrBf[patchi];
-
-            if (!alphaPhiCorrp.coupled())
-            {
-                const scalarField& phi1p = phase.phi().boundaryField()[patchi];
-                const scalarField& alpha1p = alpha1.boundaryField()[patchi];
-
-                forAll(alphaPhiCorrp, facei)
-                {
-                    if (phi1p[facei] < 0)
-                    {
-                        alphaPhiCorrp[facei] = alpha1p[facei]*phi1p[facei];
-                    }
-                }
-            }
-        }
+        phase.correctInflowOutflow(alphaPhiCorr);
 
         if (LTS)
         {
@@ -215,8 +196,9 @@ void Foam::multiphaseSystem::solveAlphas()
         phaseModel& phase = phases()[phasei];
         volScalarField& alpha = phase;
 
-        surfaceScalarField& alphaPhic = alphaPhiCorrs[phasei];
-        alphaPhic += upwind<scalar>(mesh_, phi_).flux(phase);
+        surfaceScalarField& alphaPhi = alphaPhiCorrs[phasei];
+        alphaPhi += upwind<scalar>(mesh_, phi_).flux(phase);
+        phase.correctInflowOutflow(alphaPhi);
 
         volScalarField::Internal Sp
         (
@@ -298,12 +280,12 @@ void Foam::multiphaseSystem::solveAlphas()
         (
             geometricOneField(),
             alpha,
-            alphaPhic,
+            alphaPhi,
             Sp,
             Su
         );
 
-        phase.alphaPhi() += alphaPhic;
+        phase.alphaPhi() = alphaPhi;
 
         Info<< phase.name() << " volume fraction, min, max = "
             << phase.weightedAverage(mesh_.V()).value()
@@ -319,6 +301,14 @@ void Foam::multiphaseSystem::solveAlphas()
         << ' ' << min(sumAlpha).value()
         << ' ' << max(sumAlpha).value()
         << endl;
+
+    // Correct the sum of the phase-fractions to avoid 'drift'
+    volScalarField sumCorr(1.0 - sumAlpha);
+    forAll(phases(), phasei)
+    {
+        volScalarField& alpha = phases()[phasei];
+        alpha += alpha*sumCorr;
+    }
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
index 8115f05cd0b..62bbe6af40d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -201,7 +201,6 @@ void Foam::twoPhaseSystem::solve()
     word alphaScheme("div(phi," + alpha1.name() + ')');
     word alpharScheme("div(phir," + alpha1.name() + ')');
 
-    const surfaceScalarField& phi = this->phi();
     const surfaceScalarField& phi1 = phase1_.phi();
     const surfaceScalarField& phi2 = phase2_.phi();
 
@@ -236,9 +235,7 @@ void Foam::twoPhaseSystem::solve()
     }
 
     alpha1.correctBoundaryConditions();
-    surfaceScalarField alpha1f(fvc::interpolate(max(alpha1, scalar(0))));
 
-    surfaceScalarField phic("phic", phi);
     surfaceScalarField phir("phir", phi1 - phi2);
 
     tmp<surfaceScalarField> alphaDbyA;
@@ -279,7 +276,7 @@ void Foam::twoPhaseSystem::solve()
             ),
             // Divergence term is handled explicitly to be
             // consistent with the explicit transport solution
-            fvc::div(phi)*min(alpha1, scalar(1))
+            fvc::div(phi_)*min(alpha1, scalar(1))
         );
 
         if (tdgdt.valid())
@@ -300,11 +297,11 @@ void Foam::twoPhaseSystem::solve()
             }
         }
 
-        surfaceScalarField alphaPhic1
+        surfaceScalarField alphaPhi1
         (
             fvc::flux
             (
-                phic,
+                phi_,
                 alpha1,
                 alphaScheme
             )
@@ -316,28 +313,7 @@ void Foam::twoPhaseSystem::solve()
             )
         );
 
-        surfaceScalarField::Boundary& alphaPhic1Bf =
-            alphaPhic1.boundaryFieldRef();
-
-        // Ensure that the flux at inflow BCs is preserved
-        forAll(alphaPhic1Bf, patchi)
-        {
-            fvsPatchScalarField& alphaPhic1p = alphaPhic1Bf[patchi];
-
-            if (!alphaPhic1p.coupled())
-            {
-                const scalarField& phi1p = phi1.boundaryField()[patchi];
-                const scalarField& alpha1p = alpha1.boundaryField()[patchi];
-
-                forAll(alphaPhic1p, facei)
-                {
-                    if (phi1p[facei] < 0)
-                    {
-                        alphaPhic1p[facei] = alpha1p[facei]*phi1p[facei];
-                    }
-                }
-            }
-        }
+        phase1_.correctInflowOutflow(alphaPhi1);
 
         if (nAlphaSubCycles > 1)
         {
@@ -355,14 +331,14 @@ void Foam::twoPhaseSystem::solve()
                 !(++alphaSubCycle).end();
             )
             {
-                surfaceScalarField alphaPhic10(alphaPhic1);
+                surfaceScalarField alphaPhi10(alphaPhi1);
 
                 MULES::explicitSolve
                 (
                     geometricOneField(),
                     alpha1,
-                    phi,
-                    alphaPhic10,
+                    phi_,
+                    alphaPhi10,
                     (alphaSubCycle.index()*Sp)(),
                     (Su - (alphaSubCycle.index() - 1)*Sp*alpha1)(),
                     phase1_.alphaMax(),
@@ -371,11 +347,11 @@ void Foam::twoPhaseSystem::solve()
 
                 if (alphaSubCycle.index() == 1)
                 {
-                    phase1_.alphaPhi() = alphaPhic10;
+                    phase1_.alphaPhi() = alphaPhi10;
                 }
                 else
                 {
-                    phase1_.alphaPhi() += alphaPhic10;
+                    phase1_.alphaPhi() += alphaPhi10;
                 }
             }
 
@@ -387,15 +363,15 @@ void Foam::twoPhaseSystem::solve()
             (
                 geometricOneField(),
                 alpha1,
-                phi,
-                alphaPhic1,
+                phi_,
+                alphaPhi1,
                 Sp,
                 Su,
                 phase1_.alphaMax(),
                 0
             );
 
-            phase1_.alphaPhi() = alphaPhic1;
+            phase1_.alphaPhi() = alphaPhi1;
         }
 
         if (alphaDbyA.valid())
@@ -415,8 +391,8 @@ void Foam::twoPhaseSystem::solve()
         phase1_.alphaRhoPhi() =
             fvc::interpolate(phase1_.rho())*phase1_.alphaPhi();
 
-        phase2_.alphaPhi() = phi - phase1_.alphaPhi();
-        alpha2 = scalar(1) - alpha1;
+        phase2_.alphaPhi() = phi_ - phase1_.alphaPhi();
+        phase2_.correctInflowOutflow(phase2_.alphaPhi());
         phase2_.alphaRhoPhi() =
             fvc::interpolate(phase2_.rho())*phase2_.alphaPhi();
 
@@ -425,6 +401,13 @@ void Foam::twoPhaseSystem::solve()
             << "  Min(alpha1) = " << min(alpha1).value()
             << "  Max(alpha1) = " << max(alpha1).value()
             << endl;
+
+        // Ensure the phase-fractions are bounded
+        alpha1.max(0);
+        alpha1.min(1);
+
+        // Update the phase-fraction of the other phase
+        alpha2 = scalar(1) - alpha1;
     }
 }
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
index cd60d2cbb00..dab711fb2f0 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -248,27 +248,19 @@ bool Foam::phaseModel::read(const dictionary& phaseProperties)
 }
 
 
-void Foam::phaseModel::correctInflowFlux(surfaceScalarField& alphaPhi) const
+void Foam::phaseModel::correctInflowOutflow(surfaceScalarField& alphaPhi) const
 {
     surfaceScalarField::Boundary& alphaPhiBf = alphaPhi.boundaryFieldRef();
+    const volScalarField::Boundary& alphaBf = boundaryField();
+    const surfaceScalarField::Boundary& phiBf = phi().boundaryField();
 
-    // Ensure that the flux at inflow BCs is preserved
     forAll(alphaPhiBf, patchi)
     {
         fvsPatchScalarField& alphaPhip = alphaPhiBf[patchi];
 
         if (!alphaPhip.coupled())
         {
-            const scalarField& phip = phi().boundaryField()[patchi];
-            const scalarField& alphap = boundaryField()[patchi];
-
-            forAll(alphaPhip, facei)
-            {
-                if (phip[facei] < SMALL)
-                {
-                    alphaPhip[facei] = alphap[facei]*phip[facei];
-                }
-            }
+            alphaPhip = phiBf[patchi]*alphaBf[patchi];
         }
     }
 }
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H
index a5ae107c909..894907fe7cc 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -319,8 +319,8 @@ public:
             return alphaRhoPhi_;
         }
 
-        //- Ensure that the flux at inflow BCs is preserved
-        void correctInflowFlux(surfaceScalarField& alphaPhi) const;
+        //- Ensure that the flux at inflow/outflow BCs is preserved
+        void correctInflowOutflow(surfaceScalarField& alphaPhi) const;
 
         //- Correct the phase properties
         //  other than the thermodynamics and turbulence
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
index 808fe255f9e..c6861dcf2c0 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -444,7 +444,7 @@ void Foam::twoPhaseSystem::solve()
             )
         );
 
-        phase1_.correctInflowFlux(alphaPhic1);
+        phase1_.correctInflowOutflow(alphaPhic1);
 
         if (nAlphaSubCycles > 1)
         {
@@ -515,8 +515,7 @@ void Foam::twoPhaseSystem::solve()
             fvc::interpolate(phase1_.rho())*phase1_.alphaPhi();
 
         phase2_.alphaPhi() = phi_ - phase1_.alphaPhi();
-        alpha2 = scalar(1) - alpha1;
-        phase2_.correctInflowFlux(phase2_.alphaPhi());
+        phase2_.correctInflowOutflow(phase2_.alphaPhi());
         phase2_.alphaRhoPhi() =
             fvc::interpolate(phase2_.rho())*phase2_.alphaPhi();
 
@@ -525,6 +524,12 @@ void Foam::twoPhaseSystem::solve()
             << "  Min(" << alpha1.name() << ") = " << min(alpha1).value()
             << "  Max(" << alpha1.name() << ") = " << max(alpha1).value()
             << endl;
+
+        // Ensure the phase-fractions are bounded
+        alpha1.max(0);
+        alpha1.min(1);
+
+        alpha2 = scalar(1) - alpha1;
     }
 }
 
diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files
index 20ef3e4f134..d79bbff4e82 100644
--- a/src/finiteVolume/Make/files
+++ b/src/finiteVolume/Make/files
@@ -235,7 +235,6 @@ fvMatrices/fvMatrices.C
 fvMatrices/fvScalarMatrix/fvScalarMatrix.C
 fvMatrices/solvers/MULES/MULES.C
 fvMatrices/solvers/MULES/CMULES.C
-fvMatrices/solvers/MULES/IMULES.C
 fvMatrices/solvers/GAMGSymSolver/GAMGAgglomerations/faceAreaPairGAMGAgglomeration/faceAreaPairGAMGAgglomeration.C
 
 interpolation = interpolation/interpolation
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
index 41fc3b1194d..34ee43bede3 100644
--- a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
+++ b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -151,17 +151,17 @@ void Foam::MULES::limiterCorr
 
     const dictionary& MULEScontrols = mesh.solverDict(psi.name());
 
-    label nLimiterIter
+    const label nLimiterIter
     (
         readLabel(MULEScontrols.lookup("nLimiterIter"))
     );
 
-    scalar smoothLimiter
+    const scalar smoothLimiter
     (
         MULEScontrols.lookupOrDefault<scalar>("smoothLimiter", 0)
     );
 
-    scalar extremaCoeff
+    const scalar extremaCoeff
     (
         MULEScontrols.lookupOrDefault<scalar>("extremaCoeff", 0)
     );
@@ -207,8 +207,8 @@ void Foam::MULES::limiterCorr
 
     forAll(phiCorrIf, facei)
     {
-        label own = owner[facei];
-        label nei = neighb[facei];
+        const label own = owner[facei];
+        const label nei = neighb[facei];
 
         psiMaxn[own] = max(psiMaxn[own], psiIf[nei]);
         psiMinn[own] = min(psiMinn[own], psiIf[nei]);
@@ -216,9 +216,9 @@ void Foam::MULES::limiterCorr
         psiMaxn[nei] = max(psiMaxn[nei], psiIf[own]);
         psiMinn[nei] = min(psiMinn[nei], psiIf[own]);
 
-        scalar phiCorrf = phiCorrIf[facei];
+        const scalar phiCorrf = phiCorrIf[facei];
 
-        if (phiCorrf > 0.0)
+        if (phiCorrf > 0)
         {
             sumPhip[own] += phiCorrf;
             mSumPhim[nei] += phiCorrf;
@@ -253,7 +253,7 @@ void Foam::MULES::limiterCorr
         {
             forAll(phiCorrPf, pFacei)
             {
-                label pfCelli = pFaceCells[pFacei];
+                const label pfCelli = pFaceCells[pFacei];
 
                 psiMaxn[pfCelli] = max(psiMaxn[pfCelli], psiPf[pFacei]);
                 psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPf[pFacei]);
@@ -262,11 +262,11 @@ void Foam::MULES::limiterCorr
 
         forAll(phiCorrPf, pFacei)
         {
-            label pfCelli = pFaceCells[pFacei];
+            const label pfCelli = pFaceCells[pFacei];
 
-            scalar phiCorrf = phiCorrPf[pFacei];
+            const scalar phiCorrf = phiCorrPf[pFacei];
 
-            if (phiCorrf > 0.0)
+            if (phiCorrf > 0)
             {
                 sumPhip[pfCelli] += phiCorrf;
             }
@@ -309,17 +309,17 @@ void Foam::MULES::limiterCorr
 
     for (int j=0; j<nLimiterIter; j++)
     {
-        sumlPhip = 0.0;
-        mSumlPhim = 0.0;
+        sumlPhip = 0;
+        mSumlPhim = 0;
 
         forAll(lambdaIf, facei)
         {
-            label own = owner[facei];
-            label nei = neighb[facei];
+            const label own = owner[facei];
+            const label nei = neighb[facei];
 
-            scalar lambdaPhiCorrf = lambdaIf[facei]*phiCorrIf[facei];
+            const scalar lambdaPhiCorrf = lambdaIf[facei]*phiCorrIf[facei];
 
-            if (lambdaPhiCorrf > 0.0)
+            if (lambdaPhiCorrf > 0)
             {
                 sumlPhip[own] += lambdaPhiCorrf;
                 mSumlPhim[nei] += lambdaPhiCorrf;
@@ -344,7 +344,7 @@ void Foam::MULES::limiterCorr
 
                 scalar lambdaPhiCorrf = lambdaPf[pFacei]*phiCorrfPf[pFacei];
 
-                if (lambdaPhiCorrf > 0.0)
+                if (lambdaPhiCorrf > 0)
                 {
                     sumlPhip[pfCelli] += lambdaPhiCorrf;
                 }
@@ -379,7 +379,7 @@ void Foam::MULES::limiterCorr
 
         forAll(lambdaIf, facei)
         {
-            if (phiCorrIf[facei] > 0.0)
+            if (phiCorrIf[facei] > 0)
             {
                 lambdaIf[facei] = min
                 (
@@ -415,9 +415,9 @@ void Foam::MULES::limiterCorr
 
                 forAll(lambdaPf, pFacei)
                 {
-                    label pfCelli = pFaceCells[pFacei];
+                    const label pfCelli = pFaceCells[pFacei];
 
-                    if (phiCorrfPf[pFacei] > 0.0)
+                    if (phiCorrfPf[pFacei] > 0)
                     {
                         lambdaPf[pFacei] =
                             min(lambdaPf[pFacei], lambdap[pfCelli]);
@@ -438,11 +438,11 @@ void Foam::MULES::limiterCorr
                 forAll(lambdaPf, pFacei)
                 {
                     // Limit outlet faces only
-                    if (phiPf[pFacei] > SMALL*SMALL)
+                    if ((phiPf[pFacei] + phiCorrfPf[pFacei]) > SMALL*SMALL)
                     {
-                        label pfCelli = pFaceCells[pFacei];
+                        const label pfCelli = pFaceCells[pFacei];
 
-                        if (phiCorrfPf[pFacei] > 0.0)
+                        if (phiCorrfPf[pFacei] > 0)
                         {
                             lambdaPf[pFacei] =
                                 min(lambdaPf[pFacei], lambdap[pfCelli]);
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/IMULES.C b/src/finiteVolume/fvMatrices/solvers/MULES/IMULES.C
deleted file mode 100644
index 2bc88decb55..00000000000
--- a/src/finiteVolume/fvMatrices/solvers/MULES/IMULES.C
+++ /dev/null
@@ -1,51 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 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 "IMULES.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-void Foam::MULES::implicitSolve
-(
-    volScalarField& psi,
-    const surfaceScalarField& phi,
-    surfaceScalarField& phiPsi,
-    const scalar psiMax,
-    const scalar psiMin
-)
-{
-    implicitSolve
-    (
-        geometricOneField(),
-        psi,
-        phi,
-        phiPsi,
-        zeroField(), zeroField(),
-        psiMax, psiMin
-    );
-}
-
-
-// ************************************************************************* //
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/IMULES.H b/src/finiteVolume/fvMatrices/solvers/MULES/IMULES.H
deleted file mode 100644
index fdef6b283b9..00000000000
--- a/src/finiteVolume/fvMatrices/solvers/MULES/IMULES.H
+++ /dev/null
@@ -1,94 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 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/>.
-
-Global
-    IMULES
-
-Description
-    IMULES: Multidimensional universal limiter for implicit solution.
-
-    Solve a convective-only transport equation using an explicit universal
-    multi-dimensional limiter applied to an implicit formulation requiring
-    iteration to guarantee boundedness.  The number of iterations required
-    to obtain boundedness increases with the Courant number of the simulation.
-
-    It may be more efficient to use CMULES.
-
-SourceFiles
-    IMULES.C
-    IMULESTemplates.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef IMULES_H
-#define IMULES_H
-
-#include "MULES.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace MULES
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-template<class RhoType, class SpType, class SuType>
-void implicitSolve
-(
-    const RhoType& rho,
-    volScalarField& gamma,
-    const surfaceScalarField& phi,
-    surfaceScalarField& phiCorr,
-    const SpType& Sp,
-    const SuType& Su,
-    const scalar psiMax,
-    const scalar psiMin
-);
-
-void implicitSolve
-(
-    volScalarField& gamma,
-    const surfaceScalarField& phi,
-    surfaceScalarField& phiCorr,
-    const scalar psiMax,
-    const scalar psiMin
-);
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace MULES
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#ifdef NoRepository
-    #include "IMULESTemplates.C"
-#endif
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/IMULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/IMULESTemplates.C
deleted file mode 100644
index c1ecbb927fa..00000000000
--- a/src/finiteVolume/fvMatrices/solvers/MULES/IMULESTemplates.C
+++ /dev/null
@@ -1,236 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 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 "IMULES.H"
-#include "gaussConvectionScheme.H"
-#include "surfaceInterpolate.H"
-#include "fvmDdt.H"
-#include "fvmSup.H"
-#include "fvcDiv.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace MULES
-{
-    template<class RhoType>
-    inline tmp<surfaceScalarField> interpolate(const RhoType& rho)
-    {
-        NotImplemented;
-        return tmp<surfaceScalarField>(nullptr);
-    }
-
-    template<>
-    inline tmp<surfaceScalarField> interpolate(const volScalarField& rho)
-    {
-        return fvc::interpolate(rho);
-    }
-}
-}
-
-
-template<class RhoType, class SpType, class SuType>
-void Foam::MULES::implicitSolve
-(
-    const RhoType& rho,
-    volScalarField& psi,
-    const surfaceScalarField& phi,
-    surfaceScalarField& phiPsi,
-    const SpType& Sp,
-    const SuType& Su,
-    const scalar psiMax,
-    const scalar psiMin
-)
-{
-    const fvMesh& mesh = psi.mesh();
-
-    const dictionary& MULEScontrols = mesh.solverDict(psi.name());
-
-    label maxIter
-    (
-        readLabel(MULEScontrols.lookup("maxIter"))
-    );
-
-    scalar maxUnboundedness
-    (
-        readScalar(MULEScontrols.lookup("maxUnboundedness"))
-    );
-
-    scalar CoCoeff
-    (
-        readScalar(MULEScontrols.lookup("CoCoeff"))
-    );
-
-    scalarField allCoLambda(mesh.nFaces());
-
-    {
-        slicedSurfaceScalarField CoLambda
-        (
-            IOobject
-            (
-                "CoLambda",
-                mesh.time().timeName(),
-                mesh,
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            mesh,
-            dimless,
-            allCoLambda,
-            false   // Use slices for the couples
-        );
-
-        if (phi.dimensions() == dimDensity*dimVelocity*dimArea)
-        {
-            tmp<surfaceScalarField> Cof =
-                mesh.time().deltaT()*mesh.surfaceInterpolation::deltaCoeffs()
-               *mag(phi/interpolate(rho))/mesh.magSf();
-
-            CoLambda == 1.0/max(CoCoeff*Cof, scalar(1));
-        }
-        else
-        {
-            tmp<surfaceScalarField> Cof =
-                mesh.time().deltaT()*mesh.surfaceInterpolation::deltaCoeffs()
-               *mag(phi)/mesh.magSf();
-
-            CoLambda == 1.0/max(CoCoeff*Cof, scalar(1));
-        }
-    }
-
-    scalarField allLambda(allCoLambda);
-    //scalarField allLambda(mesh.nFaces(), 1.0);
-
-    slicedSurfaceScalarField lambda
-    (
-        IOobject
-        (
-            "lambda",
-            mesh.time().timeName(),
-            mesh,
-            IOobject::NO_READ,
-            IOobject::NO_WRITE,
-            false
-        ),
-        mesh,
-        dimless,
-        allLambda,
-        false   // Use slices for the couples
-    );
-
-    linear<scalar> CDs(mesh);
-    upwind<scalar> UDs(mesh, phi);
-    //fv::uncorrectedSnGrad<scalar> snGrads(mesh);
-
-    fvScalarMatrix psiConvectionDiffusion
-    (
-        fvm::ddt(rho, psi)
-      + fv::gaussConvectionScheme<scalar>(mesh, phi, UDs).fvmDiv(phi, psi)
-        //- fv::gaussLaplacianScheme<scalar, scalar>(mesh, CDs, snGrads)
-        //.fvmLaplacian(Dpsif, psi)
-      - fvm::Sp(Sp, psi)
-      - Su
-    );
-
-    surfaceScalarField phiBD(psiConvectionDiffusion.flux());
-
-    surfaceScalarField& phiCorr = phiPsi;
-    phiCorr -= phiBD;
-
-    for (label i=0; i<maxIter; i++)
-    {
-        if (i != 0 && i < 4)
-        {
-            allLambda = allCoLambda;
-        }
-
-        limiter
-        (
-            allLambda,
-            1.0/mesh.time().deltaTValue(),
-            rho,
-            psi,
-            phiBD,
-            phiCorr,
-            Sp,
-            Su,
-            psiMax,
-            psiMin
-        );
-
-        solve
-        (
-            psiConvectionDiffusion + fvc::div(lambda*phiCorr),
-            MULEScontrols
-        );
-
-        scalar maxPsiM1 = gMax(psi.primitiveField()) - 1.0;
-        scalar minPsi = gMin(psi.primitiveField());
-
-        scalar unboundedness = max(max(maxPsiM1, 0.0), -min(minPsi, 0.0));
-
-        if (unboundedness < maxUnboundedness)
-        {
-            break;
-        }
-        else
-        {
-            Info<< "MULES: max(" << psi.name() << " - 1) = " << maxPsiM1
-                << " min(" << psi.name() << ") = " << minPsi << endl;
-
-            phiBD = psiConvectionDiffusion.flux();
-
-            /*
-            word gammaScheme("div(phi,gamma)");
-            word gammarScheme("div(phirb,gamma)");
-
-            const surfaceScalarField& phir =
-                mesh.lookupObject<surfaceScalarField>("phir");
-
-            phiCorr =
-                fvc::flux
-                (
-                    phi,
-                    psi,
-                    gammaScheme
-                )
-              + fvc::flux
-                (
-                    -fvc::flux(-phir, scalar(1) - psi, gammarScheme),
-                    psi,
-                    gammarScheme
-                )
-                - phiBD;
-            */
-        }
-    }
-
-    phiPsi = psiConvectionDiffusion.flux() + lambda*phiCorr;
-}
-
-
-// ************************************************************************* //
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
index 3272d81d9f9..743cb8eae5c 100644
--- a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
+++ b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -185,12 +185,12 @@ void Foam::MULES::limiter
 
     const dictionary& MULEScontrols = mesh.solverDict(psi.name());
 
-    label nLimiterIter
+    const label nLimiterIter
     (
         MULEScontrols.lookupOrDefault<label>("nLimiterIter", 3)
     );
 
-    scalar smoothLimiter
+    const scalar smoothLimiter
     (
         MULEScontrols.lookupOrDefault<scalar>("smoothLimiter", 0)
     );
@@ -228,8 +228,7 @@ void Foam::MULES::limiter
     );
 
     scalarField& lambdaIf = lambda;
-    surfaceScalarField::Boundary& lambdaBf =
-        lambda.boundaryFieldRef();
+    surfaceScalarField::Boundary& lambdaBf = lambda.boundaryFieldRef();
 
     scalarField psiMaxn(psiIf.size(), psiMin);
     scalarField psiMinn(psiIf.size(), psiMax);
@@ -241,8 +240,8 @@ void Foam::MULES::limiter
 
     forAll(phiCorrIf, facei)
     {
-        label own = owner[facei];
-        label nei = neighb[facei];
+        const label own = owner[facei];
+        const label nei = neighb[facei];
 
         psiMaxn[own] = max(psiMaxn[own], psiIf[nei]);
         psiMinn[own] = min(psiMinn[own], psiIf[nei]);
@@ -253,9 +252,9 @@ void Foam::MULES::limiter
         sumPhiBD[own] += phiBDIf[facei];
         sumPhiBD[nei] -= phiBDIf[facei];
 
-        scalar phiCorrf = phiCorrIf[facei];
+        const scalar phiCorrf = phiCorrIf[facei];
 
-        if (phiCorrf > 0.0)
+        if (phiCorrf > 0)
         {
             sumPhip[own] += phiCorrf;
             mSumPhim[nei] += phiCorrf;
@@ -281,7 +280,7 @@ void Foam::MULES::limiter
 
             forAll(phiCorrPf, pFacei)
             {
-                label pfCelli = pFaceCells[pFacei];
+                const label pfCelli = pFaceCells[pFacei];
 
                 psiMaxn[pfCelli] = max(psiMaxn[pfCelli], psiPNf[pFacei]);
                 psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPNf[pFacei]);
@@ -291,7 +290,7 @@ void Foam::MULES::limiter
         {
             forAll(phiCorrPf, pFacei)
             {
-                label pfCelli = pFaceCells[pFacei];
+                const label pfCelli = pFaceCells[pFacei];
 
                 psiMaxn[pfCelli] = max(psiMaxn[pfCelli], psiPf[pFacei]);
                 psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPf[pFacei]);
@@ -300,13 +299,13 @@ void Foam::MULES::limiter
 
         forAll(phiCorrPf, pFacei)
         {
-            label pfCelli = pFaceCells[pFacei];
+            const label pfCelli = pFaceCells[pFacei];
 
             sumPhiBD[pfCelli] += phiBDPf[pFacei];
 
-            scalar phiCorrf = phiCorrPf[pFacei];
+            const scalar phiCorrf = phiCorrPf[pFacei];
 
-            if (phiCorrf > 0.0)
+            if (phiCorrf > 0)
             {
                 sumPhip[pfCelli] += phiCorrf;
             }
@@ -376,17 +375,17 @@ void Foam::MULES::limiter
 
     for (int j=0; j<nLimiterIter; j++)
     {
-        sumlPhip = 0.0;
-        mSumlPhim = 0.0;
+        sumlPhip = 0;
+        mSumlPhim = 0;
 
         forAll(lambdaIf, facei)
         {
-            label own = owner[facei];
-            label nei = neighb[facei];
+            const label own = owner[facei];
+            const label nei = neighb[facei];
 
             scalar lambdaPhiCorrf = lambdaIf[facei]*phiCorrIf[facei];
 
-            if (lambdaPhiCorrf > 0.0)
+            if (lambdaPhiCorrf > 0)
             {
                 sumlPhip[own] += lambdaPhiCorrf;
                 mSumlPhim[nei] += lambdaPhiCorrf;
@@ -407,11 +406,11 @@ void Foam::MULES::limiter
 
             forAll(lambdaPf, pFacei)
             {
-                label pfCelli = pFaceCells[pFacei];
+                const label pfCelli = pFaceCells[pFacei];
+                const scalar lambdaPhiCorrf =
+                    lambdaPf[pFacei]*phiCorrfPf[pFacei];
 
-                scalar lambdaPhiCorrf = lambdaPf[pFacei]*phiCorrfPf[pFacei];
-
-                if (lambdaPhiCorrf > 0.0)
+                if (lambdaPhiCorrf > 0)
                 {
                     sumlPhip[pfCelli] += lambdaPhiCorrf;
                 }
@@ -446,7 +445,7 @@ void Foam::MULES::limiter
 
         forAll(lambdaIf, facei)
         {
-            if (phiCorrIf[facei] > 0.0)
+            if (phiCorrIf[facei] > 0)
             {
                 lambdaIf[facei] = min
                 (
@@ -464,7 +463,6 @@ void Foam::MULES::limiter
             }
         }
 
-
         forAll(lambdaBf, patchi)
         {
             fvsPatchScalarField& lambdaPf = lambdaBf[patchi];
@@ -482,9 +480,9 @@ void Foam::MULES::limiter
 
                 forAll(lambdaPf, pFacei)
                 {
-                    label pfCelli = pFaceCells[pFacei];
+                    const label pfCelli = pFaceCells[pFacei];
 
-                    if (phiCorrfPf[pFacei] > 0.0)
+                    if (phiCorrfPf[pFacei] > 0)
                     {
                         lambdaPf[pFacei] =
                             min(lambdaPf[pFacei], lambdap[pfCelli]);
@@ -496,33 +494,6 @@ void Foam::MULES::limiter
                     }
                 }
             }
-            else
-            {
-                const labelList& pFaceCells =
-                    mesh.boundary()[patchi].faceCells();
-                const scalarField& phiBDPf = phiBDBf[patchi];
-                const scalarField& phiCorrPf = phiCorrBf[patchi];
-
-                forAll(lambdaPf, pFacei)
-                {
-                    // Limit outlet faces only
-                    if ((phiBDPf[pFacei] + phiCorrPf[pFacei]) > SMALL*SMALL)
-                    {
-                        label pfCelli = pFaceCells[pFacei];
-
-                        if (phiCorrfPf[pFacei] > 0.0)
-                        {
-                            lambdaPf[pFacei] =
-                                min(lambdaPf[pFacei], lambdap[pfCelli]);
-                        }
-                        else
-                        {
-                            lambdaPf[pFacei] =
-                                min(lambdaPf[pFacei], lambdam[pfCelli]);
-                        }
-                    }
-                }
-            }
         }
 
         syncTools::syncFaceList(mesh, allLambda, minEqOp<scalar>());
@@ -549,6 +520,19 @@ void Foam::MULES::limit
 
     surfaceScalarField phiBD(upwind<scalar>(psi.mesh(), phi).flux(psi));
 
+    surfaceScalarField::Boundary& phiBDBf = phiBD.boundaryFieldRef();
+    const surfaceScalarField::Boundary& phiPsiBf = phiPsi.boundaryField();
+
+    forAll(phiBDBf, patchi)
+    {
+        fvsPatchScalarField& phiBDPf = phiBDBf[patchi];
+
+        if (!phiBDPf.coupled())
+        {
+            phiBDPf = phiPsiBf[patchi];
+        }
+    }
+
     surfaceScalarField& phiCorr = phiPsi;
     phiCorr -= phiBD;
 
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
index ab14e5ae1c2..7cf09c590a5 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
@@ -20,7 +20,7 @@ solvers
     "alpha.*"
     {
         nAlphaSubCycles 4;
-        cAlpha          2;
+        cAlpha          1;
     }
 
     pcorr
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
index 7ebbdec3bd8..de2c8b8553c 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
@@ -21,7 +21,7 @@ solvers
     {
         nAlphaCorr      1;
         nAlphaSubCycles 3;
-        cAlpha          1.5;
+        cAlpha          1;
     }
 
     pcorr
diff --git a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
index ca68f313d5d..c095e44786c 100644
--- a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
+++ b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
@@ -21,7 +21,7 @@ solvers
     {
         nAlphaCorr      1;
         nAlphaSubCycles 4;
-        cAlpha          2;
+        cAlpha          1;
     }
 
     pcorr
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution
index fa206f8f198..81406469091 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1;
 
         MULESCorr       yes;
-        nLimiterIter    3;
+        nLimiterIter    5;
 
         solver          smoothSolver;
         smoother        symGaussSeidel;
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
index fc08f6f97d3..b962745e2aa 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
@@ -20,7 +20,7 @@ solvers
     "alpha.*"
     {
         nAlphaSubCycles 4;
-        cAlpha          2;
+        cAlpha          1;
     }
 
     pcorr
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
index a9e02cb6005..a271af11498 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
@@ -20,7 +20,7 @@ solvers
     "alpha.*"
     {
         nAlphaSubCycles 4;
-        cAlpha          2;
+        cAlpha          1;
     }
 
     pcorr
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution
index 26a94ec389a..64bf5c641c3 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution
@@ -21,7 +21,7 @@ solvers
     {
         nAlphaCorr      4;
         nAlphaSubCycles 4;
-        cAlpha          2;
+        cAlpha          1;
     }
 
     pcorr
-- 
GitLab


From 8112172e5b42c082acac0200954a35ec50f7e7e8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 18 Jan 2017 10:10:30 +0000
Subject: [PATCH 037/277] eConstThermo: Corrected entropy function

Resolves bug-report https://bugs.openfoam.org/view.php?id=2436
---
 src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
index 2c6bda1a697..ad21fcf456a 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -146,7 +146,7 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::s
     const scalar T
 ) const
 {
-    return cp()*log(T/Tstd) + EquationOfState::s(p, T);
+    return cp(p, T)*log(T/Tstd) + EquationOfState::s(p, T);
 }
 
 
-- 
GitLab


From 1d8b31d390e1cb418ff25f2086583187c7cfeec0 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 18 Jan 2017 18:12:45 +0000
Subject: [PATCH 038/277] Updates for clang++-3.9

---
 src/OpenFOAM/fields/Fields/Field/FieldMapper.H           | 8 ++++----
 src/OpenFOAM/primitives/ranges/labelRange/labelRange.C   | 4 ++--
 src/OpenFOAM/primitives/ranges/labelRange/labelRange.H   | 8 ++++++--
 src/OpenFOAM/primitives/ranges/labelRange/labelRangeI.H  | 4 ++--
 src/OpenFOAM/primitives/ranges/labelRange/labelRanges.C  | 3 ++-
 src/OpenFOAM/primitives/ranges/labelRange/labelRanges.H  | 6 ++++--
 src/OpenFOAM/primitives/ranges/labelRange/labelRangesI.H | 4 ++--
 wmake/rules/linux64Clang/c++                             | 2 +-
 wmake/rules/linuxClang/c++                               | 4 ++--
 9 files changed, 25 insertions(+), 18 deletions(-)

diff --git a/src/OpenFOAM/fields/Fields/Field/FieldMapper.H b/src/OpenFOAM/fields/Fields/Field/FieldMapper.H
index d123472f98d..bf7dd92ec8e 100644
--- a/src/OpenFOAM/fields/Fields/Field/FieldMapper.H
+++ b/src/OpenFOAM/fields/Fields/Field/FieldMapper.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,13 +32,13 @@ Description
 #ifndef FieldMapper_H
 #define FieldMapper_H
 
+#include "mapDistributeBase.H"
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
 
-class mapDistributeBase;
-
 /*---------------------------------------------------------------------------*\
                            Class FieldMapper Declaration
 \*---------------------------------------------------------------------------*/
@@ -76,7 +76,7 @@ public:
             FatalErrorInFunction
                 << "attempt to access null distributeMap"
                 << abort(FatalError);
-            return *static_cast<mapDistributeBase*>(nullptr);
+            return *(new mapDistributeBase());
         }
 
         //- Are there unmapped values? I.e. do all size() elements get
diff --git a/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C b/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C
index 11aacf25cb5..721e523ec48 100644
--- a/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C
+++ b/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,8 +29,8 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
+const Foam::labelRange Foam::labelRange::endLabelRange_;
 const Foam::labelRange::const_iterator Foam::labelRange::endIter_;
-
 int Foam::labelRange::debug(::Foam::debug::debugSwitch("labelRange", 0));
 
 
diff --git a/src/OpenFOAM/primitives/ranges/labelRange/labelRange.H b/src/OpenFOAM/primitives/ranges/labelRange/labelRange.H
index 24dd33729cb..330ab15cb5f 100644
--- a/src/OpenFOAM/primitives/ranges/labelRange/labelRange.H
+++ b/src/OpenFOAM/primitives/ranges/labelRange/labelRange.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,6 +31,7 @@ SourceFiles
     labelRange.C
 
 \*---------------------------------------------------------------------------*/
+
 #ifndef labelRange_H
 #define labelRange_H
 
@@ -79,6 +80,7 @@ public:
             }
         };
 
+
     // Constructors
 
         //- Construct an empty range
@@ -196,9 +198,11 @@ public:
 
 private:
 
+        //- const labelRange held by endIter_
+        static const labelRange endLabelRange_;
+
         //- const_iterator returned by end(), cend()
         static const const_iterator endIter_;
-
 };
 
 
diff --git a/src/OpenFOAM/primitives/ranges/labelRange/labelRangeI.H b/src/OpenFOAM/primitives/ranges/labelRange/labelRangeI.H
index 21e839cf3cc..3a4268f53ad 100644
--- a/src/OpenFOAM/primitives/ranges/labelRange/labelRangeI.H
+++ b/src/OpenFOAM/primitives/ranges/labelRange/labelRangeI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,7 +50,7 @@ inline Foam::labelRange::labelRange(const label start, const label size)
 
 inline Foam::labelRange::const_iterator::const_iterator()
 :
-   range_(*reinterpret_cast<Foam::labelRange* >(0)),
+   range_(endLabelRange_),
    index_(-1)
 {}
 
diff --git a/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.C b/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.C
index 101c2bce983..8626ef33d5f 100644
--- a/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.C
+++ b/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,6 +28,7 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
+const Foam::labelRanges Foam::labelRanges::endLabelRanges_;
 const Foam::labelRanges::const_iterator Foam::labelRanges::endIter_;
 
 
diff --git a/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.H b/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.H
index 6fa10b0aac5..d5c5baa03ad 100644
--- a/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.H
+++ b/src/OpenFOAM/primitives/ranges/labelRange/labelRanges.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -170,9 +170,11 @@ public:
 
 private:
 
+        //- const labelRanges held by endIter_
+        static const labelRanges endLabelRanges_;
+
         //- const_iterator returned by end(), cend()
         static const const_iterator endIter_;
-
 };
 
 
diff --git a/src/OpenFOAM/primitives/ranges/labelRange/labelRangesI.H b/src/OpenFOAM/primitives/ranges/labelRange/labelRangesI.H
index 739d582e9fe..df9623b56aa 100644
--- a/src/OpenFOAM/primitives/ranges/labelRange/labelRangesI.H
+++ b/src/OpenFOAM/primitives/ranges/labelRange/labelRangesI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,7 +42,7 @@ inline Foam::labelRanges::labelRanges(const label nElem)
 
 inline Foam::labelRanges::const_iterator::const_iterator()
 :
-   list_(*reinterpret_cast<Foam::labelRanges* >(0)),
+   list_(endLabelRanges_),
    index_(-1),
    subIndex_(-1)
 {}
diff --git a/wmake/rules/linux64Clang/c++ b/wmake/rules/linux64Clang/c++
index 1b515661797..014eff3461f 100644
--- a/wmake/rules/linux64Clang/c++
+++ b/wmake/rules/linux64Clang/c++
@@ -1,6 +1,6 @@
 SUFFIXES += .C
 
-c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-c++11-extensions
+c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-undefined-var-template
 
 # Suppress some warnings for flex++ and CGAL
 c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-tautological-undefined-compare -Wno-shift-negative-value
diff --git a/wmake/rules/linuxClang/c++ b/wmake/rules/linuxClang/c++
index b2001baf2e4..746cdb13bb6 100644
--- a/wmake/rules/linuxClang/c++
+++ b/wmake/rules/linuxClang/c++
@@ -1,9 +1,9 @@
 SUFFIXES += .C
 
-c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-c++11-extensions
+c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-undefined-var-template
 
 # Suppress some warnings for flex++ and CGAL
-c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedef -Wno-tautological-undefined-compare -Wno-shift-negative-value
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-tautological-undefined-compare -Wno-shift-negative-value
 
 CC          = clang++ -std=c++11 -m32
 
-- 
GitLab


From c7300716f630d43b77c2787290682213846651a7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 18 Jan 2017 21:45:26 +0000
Subject: [PATCH 039/277] Updates for clang++-3.9

---
 src/conversion/ensight/part/ensightPartCells.C    |  8 +++++---
 src/conversion/ensight/part/ensightPartCells.H    |  4 +++-
 .../edgeFaceCirculator/edgeFaceCirculator.C       | 15 +++++++++------
 .../edgeFaceCirculator/edgeFaceCirculator.H       |  5 ++++-
 4 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/src/conversion/ensight/part/ensightPartCells.C b/src/conversion/ensight/part/ensightPartCells.C
index 82ef148e036..dbf421539b3 100644
--- a/src/conversion/ensight/part/ensightPartCells.C
+++ b/src/conversion/ensight/part/ensightPartCells.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,6 +38,8 @@ namespace Foam
     addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream);
 }
 
+const Foam::polyMesh* const Foam::ensightPartCells::polyMeshNullPtr_ = nullptr;
+
 const Foam::List<Foam::word> Foam::ensightPartCells::elemTypes_
 (
     IStringStream
@@ -182,7 +184,7 @@ Foam::ensightPartCells::ensightPartCells
 )
 :
     ensightPart(partNumber, partDescription),
-    mesh_(*reinterpret_cast<polyMesh*>(0))
+    mesh_(*polyMeshNullPtr_)
 {}
 
 
@@ -237,7 +239,7 @@ Foam::ensightPartCells::ensightPartCells(const ensightPartCells& part)
 Foam::ensightPartCells::ensightPartCells(Istream& is)
 :
     ensightPart(),
-    mesh_(*reinterpret_cast<polyMesh*>(0))
+    mesh_(*polyMeshNullPtr_)
 {
     reconstruct(is);
 }
diff --git a/src/conversion/ensight/part/ensightPartCells.H b/src/conversion/ensight/part/ensightPartCells.H
index d1b3bcb72db..6a937abeba4 100644
--- a/src/conversion/ensight/part/ensightPartCells.H
+++ b/src/conversion/ensight/part/ensightPartCells.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -94,6 +94,8 @@ protected:
 
     // Static data members
 
+        static const polyMesh* const polyMeshNullPtr_;
+
         static const List<word> elemTypes_;
 
 
diff --git a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C
index 9149eaf9200..5431bb419fb 100644
--- a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C
+++ b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,13 +28,16 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
+const Foam::primitiveMesh* const Foam::edgeFaceCirculator::endConstIterMeshPtr
+    = nullptr;
+
 const Foam::edgeFaceCirculator Foam::edgeFaceCirculator::endConstIter
 (
-    *reinterpret_cast<primitiveMesh*>(0),       // primitiveMesh
-    -1,                                         // faceLabel
-    false,                                      // ownerSide
-    -1,                                         // index
-    false                                       // isBoundaryEdge
+    *Foam::edgeFaceCirculator::endConstIterMeshPtr, // primitiveMesh
+    -1,                                             // faceLabel
+    false,                                          // ownerSide
+    -1,                                             // index
+    false                                           // isBoundaryEdge
 );
 
 
diff --git a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H
index 8aa85d978b9..c9b8ac0708b 100644
--- a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H
+++ b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -88,6 +88,9 @@ class edgeFaceCirculator
 {
     // Static data members
 
+        //- End iterator primitiveMesh nullptr
+        static const primitiveMesh* const endConstIterMeshPtr;
+
         //- End iterator
         static const edgeFaceCirculator endConstIter;
 
-- 
GitLab


From e1730cf1f157e9d04c9549fc8871298a70478159 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 19 Jan 2017 08:17:54 +0000
Subject: [PATCH 040/277] setsToZones: Add support for multi-region cases

Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2437
---
 .../utilities/mesh/manipulation/setsToZones/setsToZones.C | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C b/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C
index ef0519b6177..a6d0e779979 100644
--- a/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C
+++ b/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,10 +84,12 @@ int main(int argc, char *argv[])
 
     #include "createNamedPolyMesh.H"
 
+    const fileName setsSubPath(mesh.dbDir()/polyMesh::meshSubDir/"sets");
+
     // Search for list of objects for the time of the mesh
     word setsInstance = runTime.findInstance
     (
-        polyMesh::meshSubDir/"sets",
+        setsSubPath,
         word::null,
         IOobject::MUST_READ,
         mesh.facesInstance()
@@ -95,7 +97,7 @@ int main(int argc, char *argv[])
 
     IOobjectList objects(mesh, setsInstance, polyMesh::meshSubDir/"sets");
 
-    Info<< "Searched : " << setsInstance/polyMesh::meshSubDir/"sets"
+    Info<< "Searched : " << setsInstance/setsSubPath
         << nl
         << "Found    : " << objects.names() << nl
         << endl;
-- 
GitLab


From 863258393455a6c048e242e8be1b4cb32c72f540 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 19 Jan 2017 20:17:47 +0000
Subject: [PATCH 041/277] Removed trailing blank lines

Resolves bug-report https://bugs.openfoam.org/view.php?id=2438
---
 .../combustion/chemFoam/createBaseFields.H    |  1 -
 .../solvers/combustion/chemFoam/setDeltaT.H   |  1 -
 .../mhdFoam/readBPISOControls.H               |  1 -
 .../readFluidMultiRegionSIMPLEControls.H      |  1 -
 applications/test/graph/graphTest2.C          |  3 +--
 .../conversion/foamToStarMesh/getTimeIndex.H  |  1 -
 .../conversion/foamToSurface/getTimeIndex.H   |  1 -
 .../foamToEnsightParts/ensightOutputCase.H    |  1 -
 .../foamToEnsightParts/findFields.H           |  1 -
 .../foamToEnsightParts/getTimeIndex.H         |  1 -
 .../dataConversion/foamToGMV/foamToGMV.C      |  3 +--
 .../ensightFoamReader/USERD_exit_routine.H    |  1 -
 .../USERD_get_changing_geometry_status.H      |  1 -
 .../USERD_get_descrip_lines.H                 |  1 -
 .../USERD_get_element_label_status.H          |  1 -
 .../USERD_get_gold_variable_info.H            |  3 ---
 .../USERD_get_node_label_status.H             |  1 -
 .../ensightFoamReader/USERD_get_sol_times.H   |  1 -
 .../USERD_get_var_value_at_specific.H         |  1 -
 .../ensightFoamReader/USERD_structured_data.H |  1 -
 .../ensightFoamReader/getLagrangianScalar.H   |  1 -
 .../ensightFoamReader/getLagrangianVector.H   |  1 -
 .../miscellaneous/pdfPlot/createFields.H      |  1 -
 src/OSspecific/POSIX/dummyPrintStack.C        |  3 +--
 .../containers/Lists/ListOps/ListOps.H        |  3 +--
 .../db/IOstreams/gzstream/COPYING.LIB         | 20 +++++++++----------
 .../dimensionedSphericalTensor.H              |  3 +--
 .../dimensionedTensor/dimensionedTensor.H     |  3 +--
 .../dimensionedVector/dimensionedVector.H     |  3 +--
 .../lduInterface/lduInterfacePtrsList.H       |  3 +--
 .../lduInterfaceFieldPtrsList.H               |  3 +--
 .../primitives/strings/fileName/fileNameIO.C  |  4 +---
 .../meshCut/refineCell/refineCell.C           |  3 +--
 .../porosityModel/IOporosityModelList.C       |  3 +--
 .../makeReactingParcelPhaseChangeModels.H     |  3 +--
 .../derived/basicSprayCloud/basicSprayCloud.H |  3 +--
 .../BreakupModel/TAB/TABSMDCalcMethod1.H      |  2 --
 .../processes/UOprocess/UOprocess.C           |  3 +--
 .../liquidProperties/CH4N2O/CH4N2OI.H         |  3 +--
 .../liquidProperties/iC3H8O/iC3H8O.H          |  3 +--
 .../liquidProperties/iC3H8O/iC3H8OI.H         |  3 +--
 .../liquidProperties/nC3H8O/nC3H8O.H          |  3 +--
 .../liquidProperties/nC3H8O/nC3H8OI.H         |  3 +--
 .../tools/hashSignedLabel/hashSignedLabel.H   |  3 +--
 44 files changed, 30 insertions(+), 79 deletions(-)

diff --git a/applications/solvers/combustion/chemFoam/createBaseFields.H b/applications/solvers/combustion/chemFoam/createBaseFields.H
index 0762f2708d5..80dea2584b1 100644
--- a/applications/solvers/combustion/chemFoam/createBaseFields.H
+++ b/applications/solvers/combustion/chemFoam/createBaseFields.H
@@ -54,4 +54,3 @@ Info<< "Creating base fields for time " << runTime.timeName() << endl;
 
     T.write();
 }
-
diff --git a/applications/solvers/combustion/chemFoam/setDeltaT.H b/applications/solvers/combustion/chemFoam/setDeltaT.H
index 46d9f7bf433..52407c94759 100644
--- a/applications/solvers/combustion/chemFoam/setDeltaT.H
+++ b/applications/solvers/combustion/chemFoam/setDeltaT.H
@@ -3,4 +3,3 @@ if (adjustTimeStep)
     runTime.setDeltaT(min(dtChem, maxDeltaT));
     Info<< "deltaT = " <<  runTime.deltaT().value() << endl;
 }
-
diff --git a/applications/solvers/electromagnetics/mhdFoam/readBPISOControls.H b/applications/solvers/electromagnetics/mhdFoam/readBPISOControls.H
index 5ddbdab95ea..7f280b8aa3d 100644
--- a/applications/solvers/electromagnetics/mhdFoam/readBPISOControls.H
+++ b/applications/solvers/electromagnetics/mhdFoam/readBPISOControls.H
@@ -1,4 +1,3 @@
     const dictionary& Bpiso = mesh.solutionDict().subDict("BPISO");
 
     const int nBcorr = Bpiso.lookupOrDefault<int>("nCorrectors", 1);
-
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H
index 616fabd7fec..66fd738d7a3 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H
@@ -2,4 +2,3 @@
 
     const int nNonOrthCorr =
         simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
-
diff --git a/applications/test/graph/graphTest2.C b/applications/test/graph/graphTest2.C
index 39692fd3f90..f01b5ccca45 100644
--- a/applications/test/graph/graphTest2.C
+++ b/applications/test/graph/graphTest2.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,4 +62,3 @@ int main()
 
 
 // ************************************************************************* //
-
diff --git a/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H b/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H
index d21b64fdc1f..4303a827292 100644
--- a/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H
+++ b/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H
@@ -48,4 +48,3 @@
     }
 
     Info<< "\nTime [" << timeName << "] = " << runTime.timeName() << nl;
-
diff --git a/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H b/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H
index d21b64fdc1f..4303a827292 100644
--- a/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H
+++ b/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H
@@ -48,4 +48,3 @@
     }
 
     Info<< "\nTime [" << timeName << "] = " << runTime.timeName() << nl;
-
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
index 0d221590790..34b3c01ca0b 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
@@ -221,4 +221,3 @@ forAllConstIter(HashTable<DynamicList<label>>, cloudTimesUsed, cloudIter)
 }
 
 caseFile << "# end" << nl;
-
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
index 077490f1ecd..2e1d5a0b196 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
@@ -102,4 +102,3 @@ if (timeDirs.size())
         }
     }
 }
-
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
index 53e234939e2..30a7c81e428 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
@@ -40,4 +40,3 @@
 
     timeIndices.insert(timeIndex, timeDirs[timeI].value());
     Info<< "\nTime [" << timeIndex << "] = " << runTime.timeName() << nl;
-
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
index 9014f10ffd8..68bde85af62 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,4 +97,3 @@ int main(int argc, char *argv[])
 
 
 // ************************************************************************* //
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
index b6fdf9c2c46..4a81615622f 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
@@ -10,4 +10,3 @@ void USERD_exit_routine
 #endif
 
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_changing_geometry_status.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_changing_geometry_status.H
index 2df1e6a7617..f346f338bf8 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_changing_geometry_status.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_changing_geometry_status.H
@@ -8,4 +8,3 @@ int USERD_get_changing_geometry_status(void)
     // Choose the most general option
     return Z_CHANGE_CONN;
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_descrip_lines.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_descrip_lines.H
index 1076d2de38d..d10346eb940 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_descrip_lines.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_descrip_lines.H
@@ -29,4 +29,3 @@ int USERD_get_descrip_lines
 #endif
     return Z_OK;
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_element_label_status.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_element_label_status.H
index d65e7bad70f..99b0ba28e18 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_element_label_status.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_element_label_status.H
@@ -8,4 +8,3 @@ int USERD_get_element_label_status(void)
 #endif
     return TRUE;
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_variable_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_variable_info.H
index 1bf375cad76..40c181015b1 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_variable_info.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_variable_info.H
@@ -118,6 +118,3 @@ int USERD_get_gold_variable_info
 
     return Z_OK;
 }
-
-
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_node_label_status.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_node_label_status.H
index 65791f70f72..bd0d977c76b 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_node_label_status.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_node_label_status.H
@@ -9,4 +9,3 @@ int USERD_get_node_label_status(void)
 
     return TRUE;
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_sol_times.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_sol_times.H
index 223b0c2164a..8c71ca3b9ab 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_sol_times.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_sol_times.H
@@ -41,4 +41,3 @@ int USERD_get_sol_times
 
     return Z_OK;
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_value_at_specific.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_value_at_specific.H
index d569726f6a3..c7b5a92ae66 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_value_at_specific.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_value_at_specific.H
@@ -68,4 +68,3 @@ int USERD_get_var_value_at_specific
 #endif
     return Z_OK;
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_structured_data.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_structured_data.H
index c53db0cf874..d8a4c90a19f 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_structured_data.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_structured_data.H
@@ -59,4 +59,3 @@ int USERD_get_block_ghost_flags
 {
   return(Z_OK);
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
index dd20ba0db8c..b853ac7147b 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
@@ -32,4 +32,3 @@ else
     // Info<< "getLagrangianScalar: nVar = " << nVar << endl;
     return Z_UNDEF;
 }
-
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H
index 31e4bc729c9..de1d12aa376 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H
@@ -44,4 +44,3 @@ else
     // Info<< "getLagrangianVector: nVar = " << nVar << endl;
     return Z_UNDEF;
 }
-
diff --git a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
index 85ec143ca9a..767d626880e 100644
--- a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
+++ b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
@@ -45,4 +45,3 @@
     }
 
     scalarField samples(nIntervals, 0);
-
diff --git a/src/OSspecific/POSIX/dummyPrintStack.C b/src/OSspecific/POSIX/dummyPrintStack.C
index 59ece6f986a..2ef74cfc24b 100644
--- a/src/OSspecific/POSIX/dummyPrintStack.C
+++ b/src/OSspecific/POSIX/dummyPrintStack.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,4 +31,3 @@ void Foam::error::printStack(Ostream& os)
 {}
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
index ee930417919..a5debd3ec9e 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -299,4 +299,3 @@ void inplaceRotateList(ListType<DataType>& list, label n);
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/db/IOstreams/gzstream/COPYING.LIB b/src/OpenFOAM/db/IOstreams/gzstream/COPYING.LIB
index 583509c7efb..4490927b702 100644
--- a/src/OpenFOAM/db/IOstreams/gzstream/COPYING.LIB
+++ b/src/OpenFOAM/db/IOstreams/gzstream/COPYING.LIB
@@ -55,7 +55,7 @@ modified by someone else and passed on, the recipients should know
 that what they have is not the original version, so that the original
 author's reputation will not be affected by problems that might be
 introduced by others.
-
+
   Finally, software patents pose a constant threat to the existence of
 any free program.  We wish to make sure that a company cannot
 effectively restrict the users of a free program by obtaining a
@@ -111,7 +111,7 @@ modification follow.  Pay close attention to the difference between a
 "work based on the library" and a "work that uses the library".  The
 former contains code derived from the library, whereas the latter must
 be combined with the library in order to run.
-
+
           GNU LESSER GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
@@ -158,7 +158,7 @@ Library.
   You may charge a fee for the physical act of transferring a copy,
 and you may at your option offer warranty protection in exchange for a
 fee.
-
+
   2. You may modify your copy or copies of the Library or any portion
 of it, thus forming a work based on the Library, and copy and
 distribute such modifications or work under the terms of Section 1
@@ -216,7 +216,7 @@ instead of to this License.  (If a newer version than version 2 of the
 ordinary GNU General Public License has appeared, then you can specify
 that version instead if you wish.)  Do not make any other change in
 these notices.
-
+
   Once this change is made in a given copy, it is irreversible for
 that copy, so the ordinary GNU General Public License applies to all
 subsequent copies and derivative works made from that copy.
@@ -267,7 +267,7 @@ Library will still fall under Section 6.)
 distribute the object code for the work under the terms of Section 6.
 Any executables containing that work also fall under Section 6,
 whether or not they are linked directly with the Library itself.
-
+
   6. As an exception to the Sections above, you may also combine or
 link a "work that uses the Library" with the Library to produce a
 work containing portions of the Library, and distribute that work
@@ -329,7 +329,7 @@ restrictions of other proprietary libraries that do not normally
 accompany the operating system.  Such a contradiction means you cannot
 use both them and the Library together in an executable that you
 distribute.
-
+
   7. You may place library facilities that are a work based on the
 Library side-by-side in a single library together with other library
 facilities not covered by this License, and distribute such a combined
@@ -370,7 +370,7 @@ subject to these terms and conditions.  You may not impose any further
 restrictions on the recipients' exercise of the rights granted herein.
 You are not responsible for enforcing compliance by third parties with
 this License.
-
+
   11. If, as a consequence of a court judgment or allegation of patent
 infringement or for any other reason (not limited to patent issues),
 conditions are imposed on you (whether by court order, agreement or
@@ -422,7 +422,7 @@ conditions either of that version or of any later version published by
 the Free Software Foundation.  If the Library does not specify a
 license version number, you may choose any version ever published by
 the Free Software Foundation.
-
+
   14. If you wish to incorporate parts of the Library into other free
 programs whose distribution conditions are incompatible with these,
 write to the author to ask for permission.  For software which is
@@ -456,7 +456,7 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 DAMAGES.
 
              END OF TERMS AND CONDITIONS
-
+
            How to Apply These Terms to Your New Libraries
 
   If you develop a new library, and you want it to be of the greatest
@@ -500,5 +500,3 @@ necessary.  Here is a sample; alter the names:
   Ty Coon, President of Vice
 
 That's all there is to it!
-
-
diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedSphericalTensor/dimensionedSphericalTensor.H b/src/OpenFOAM/dimensionedTypes/dimensionedSphericalTensor/dimensionedSphericalTensor.H
index 2ac54853a21..7b2b331d825 100644
--- a/src/OpenFOAM/dimensionedTypes/dimensionedSphericalTensor/dimensionedSphericalTensor.H
+++ b/src/OpenFOAM/dimensionedTypes/dimensionedSphericalTensor/dimensionedSphericalTensor.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,4 +64,3 @@ dimensionedSphericalTensor inv(const dimensionedSphericalTensor&);
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H b/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H
index 0fd1b882e72..2797c807c72 100644
--- a/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H
+++ b/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,4 +86,3 @@ dimensionedTensor operator*(const dimensionedVector&);
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedVector/dimensionedVector.H b/src/OpenFOAM/dimensionedTypes/dimensionedVector/dimensionedVector.H
index 4a93c36b3f6..657f6c4c462 100644
--- a/src/OpenFOAM/dimensionedTypes/dimensionedVector/dimensionedVector.H
+++ b/src/OpenFOAM/dimensionedTypes/dimensionedVector/dimensionedVector.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,4 +56,3 @@ typedef dimensioned<vector> dimensionedVector;
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/lduInterfacePtrsList.H b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/lduInterfacePtrsList.H
index 4e8a19b70a2..b0e7d896eec 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/lduInterfacePtrsList.H
+++ b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/lduInterfacePtrsList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,4 +47,3 @@ namespace Foam
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterfaceFields/lduInterfaceField/lduInterfaceFieldPtrsList.H b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterfaceFields/lduInterfaceField/lduInterfaceFieldPtrsList.H
index 9934682b114..9e37cde4533 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterfaceFields/lduInterfaceField/lduInterfaceFieldPtrsList.H
+++ b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterfaceFields/lduInterfaceField/lduInterfaceFieldPtrsList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,4 +47,3 @@ namespace Foam
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C b/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C
index b87431ca5c9..3e193ecf99f 100644
--- a/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C
+++ b/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,5 +78,3 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const fileName& fn)
 
 
 // ************************************************************************* //
-
-
diff --git a/src/dynamicMesh/meshCut/refineCell/refineCell.C b/src/dynamicMesh/meshCut/refineCell/refineCell.C
index f5e4f585e5a..d1e0d230a2a 100644
--- a/src/dynamicMesh/meshCut/refineCell/refineCell.C
+++ b/src/dynamicMesh/meshCut/refineCell/refineCell.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -94,4 +94,3 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const refineCell& r)
 
 
 // ************************************************************************* //
-
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/IOporosityModelList.C b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/IOporosityModelList.C
index 2a655eefdde..c92961fbadb 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/IOporosityModelList.C
+++ b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/IOporosityModelList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -87,4 +87,3 @@ bool Foam::IOporosityModelList::read()
 
 
 // ************************************************************************* //
-
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
index b2556cba13b..510e3bb8132 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,4 +47,3 @@ License
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/lagrangian/spray/clouds/derived/basicSprayCloud/basicSprayCloud.H b/src/lagrangian/spray/clouds/derived/basicSprayCloud/basicSprayCloud.H
index a52e39a4043..00151736e72 100644
--- a/src/lagrangian/spray/clouds/derived/basicSprayCloud/basicSprayCloud.H
+++ b/src/lagrangian/spray/clouds/derived/basicSprayCloud/basicSprayCloud.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -66,4 +66,3 @@ namespace Foam
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/lagrangian/spray/submodels/BreakupModel/TAB/TABSMDCalcMethod1.H b/src/lagrangian/spray/submodels/BreakupModel/TAB/TABSMDCalcMethod1.H
index 7c663ab391f..15b5aa65f8f 100644
--- a/src/lagrangian/spray/submodels/BreakupModel/TAB/TABSMDCalcMethod1.H
+++ b/src/lagrangian/spray/submodels/BreakupModel/TAB/TABSMDCalcMethod1.H
@@ -11,5 +11,3 @@
     }
     rNew = 0.04*n*rs;
 }
-
-
diff --git a/src/randomProcesses/processes/UOprocess/UOprocess.C b/src/randomProcesses/processes/UOprocess/UOprocess.C
index 631ae7da524..8d33b5d2e2c 100644
--- a/src/randomProcesses/processes/UOprocess/UOprocess.C
+++ b/src/randomProcesses/processes/UOprocess/UOprocess.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -127,4 +127,3 @@ const complexVectorField& UOprocess::newField()
 } // End namespace Foam
 
 // ************************************************************************* //
-
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H
index c31e9fb63e8..f5bf4cb8642 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,4 +108,3 @@ inline Foam::scalar Foam::CH4N2O::D(scalar p, scalar T, scalar Wb) const
 
 
 // ************************************************************************* //
-
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
index 763a623b577..ce7c4393347 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -210,4 +210,3 @@ public:
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H
index 660967b9e6e..9e488d871b2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -109,4 +109,3 @@ inline Foam::scalar Foam::iC3H8O::D(scalar p, scalar T, scalar) const
 
 
 // ************************************************************************* //
-
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
index c378b3ec9e0..3f2fcfa9927 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -210,4 +210,3 @@ public:
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H
index 3cb912efb26..32f1379fd47 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -109,4 +109,3 @@ inline Foam::scalar Foam::nC3H8O::D(scalar p, scalar T, scalar) const
 
 
 // ************************************************************************* //
-
diff --git a/src/triSurface/tools/hashSignedLabel/hashSignedLabel.H b/src/triSurface/tools/hashSignedLabel/hashSignedLabel.H
index 992a8202903..a10b4506966 100644
--- a/src/triSurface/tools/hashSignedLabel/hashSignedLabel.H
+++ b/src/triSurface/tools/hashSignedLabel/hashSignedLabel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,4 +64,3 @@ public:
 #endif
 
 // ************************************************************************* //
-
-- 
GitLab


From 3ca17d43a2131f1fe382d482c30398e884f25006 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 20 Jan 2017 10:47:15 +0000
Subject: [PATCH 042/277] meshSearch: Add support for cell decomposition mode
 CELL_TETS

Resolves bug-report https://bugs.openfoam.org/view.php?id=2428
---
 src/meshTools/meshSearch/meshSearch.C | 119 ++++----------------------
 1 file changed, 16 insertions(+), 103 deletions(-)

diff --git a/src/meshTools/meshSearch/meshSearch.C b/src/meshTools/meshSearch/meshSearch.C
index bc59306401d..69475c98e69 100644
--- a/src/meshTools/meshSearch/meshSearch.C
+++ b/src/meshTools/meshSearch/meshSearch.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,9 +35,9 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(meshSearch, 0);
+    defineTypeNameAndDebug(meshSearch, 0);
 
-scalar meshSearch::tol_ = 1e-3;
+    scalar meshSearch::tol_ = 1e-3;
 }
 
 
@@ -117,7 +117,6 @@ Foam::label Foam::meshSearch::findNearestCellTree(const point& location) const
 }
 
 
-// linear searching
 Foam::label Foam::meshSearch::findNearestCellLinear(const point& location) const
 {
     const vectorField& centres = mesh_.cellCentres();
@@ -137,7 +136,6 @@ Foam::label Foam::meshSearch::findNearestCellLinear(const point& location) const
 }
 
 
-// walking from seed
 Foam::label Foam::meshSearch::findNearestCellWalk
 (
     const point& location,
@@ -174,7 +172,6 @@ Foam::label Foam::meshSearch::findNearestCellWalk
 }
 
 
-// tree based searching
 Foam::label Foam::meshSearch::findNearestFaceTree(const point& location) const
 {
     // Search nearest cell centre.
@@ -214,7 +211,6 @@ Foam::label Foam::meshSearch::findNearestFaceTree(const point& location) const
 }
 
 
-// linear searching
 Foam::label Foam::meshSearch::findNearestFaceLinear(const point& location) const
 {
     const vectorField& centres = mesh_.faceCentres();
@@ -234,7 +230,6 @@ Foam::label Foam::meshSearch::findNearestFaceLinear(const point& location) const
 }
 
 
-// walking from seed
 Foam::label Foam::meshSearch::findNearestFaceWalk
 (
     const point& location,
@@ -322,7 +317,6 @@ Foam::label Foam::meshSearch::findCellLinear(const point& location) const
 }
 
 
-// walking from seed
 Foam::label Foam::meshSearch::findCellWalk
 (
     const point& location,
@@ -502,7 +496,10 @@ Foam::meshSearch::meshSearch
     mesh_(mesh),
     cellDecompMode_(cellDecompMode)
 {
-    if (cellDecompMode_ == polyMesh::FACE_DIAG_TRIS)
+    if
+    (
+        cellDecompMode_ == polyMesh::FACE_DIAG_TRIS
+     || cellDecompMode_ == polyMesh::CELL_TETS)
     {
         // Force construction of face diagonals
         (void)mesh.tetBasePtIs();
@@ -510,7 +507,6 @@ Foam::meshSearch::meshSearch
 }
 
 
-// Construct with a custom bounding box
 Foam::meshSearch::meshSearch
 (
     const polyMesh& mesh,
@@ -523,7 +519,11 @@ Foam::meshSearch::meshSearch
 {
     overallBbPtr_.reset(new treeBoundBox(bb));
 
-    if (cellDecompMode_ == polyMesh::FACE_DIAG_TRIS)
+    if
+    (
+        cellDecompMode_ == polyMesh::FACE_DIAG_TRIS
+     || cellDecompMode_ == polyMesh::CELL_TETS
+    )
     {
         // Force construction of face diagonals
         (void)mesh.tetBasePtIs();
@@ -541,8 +541,8 @@ Foam::meshSearch::~meshSearch()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-const Foam::indexedOctree<Foam::treeDataFace>& Foam::meshSearch::boundaryTree()
- const
+const Foam::indexedOctree<Foam::treeDataFace>&
+Foam::meshSearch::boundaryTree() const
 {
     if (!boundaryTreePtr_.valid())
     {
@@ -594,8 +594,8 @@ const Foam::indexedOctree<Foam::treeDataFace>& Foam::meshSearch::boundaryTree()
 }
 
 
-const Foam::indexedOctree<Foam::treeDataCell>& Foam::meshSearch::cellTree()
-const
+const Foam::indexedOctree<Foam::treeDataCell>&
+Foam::meshSearch::cellTree() const
 {
     if (!cellTreePtr_.valid())
     {
@@ -640,92 +640,6 @@ const
 }
 
 
-//// Is the point in the cell
-//// Works by checking if there is a face inbetween the point and the cell
-//// centre.
-//// Check for internal uses proper face decomposition or just average normal.
-//bool Foam::meshSearch::pointInCell(const point& p, label celli) const
-//{
-//    if (faceDecomp_)
-//    {
-//        const point& ctr = mesh_.cellCentres()[celli];
-//
-//        vector dir(p - ctr);
-//        scalar magDir = mag(dir);
-//
-//        // Check if any faces are hit by ray from cell centre to p.
-//        // If none -> p is in cell.
-//        const labelList& cFaces = mesh_.cells()[celli];
-//
-//        // Make sure half_ray does not pick up any faces on the wrong
-//        // side of the ray.
-//        scalar oldTol = intersection::setPlanarTol(0.0);
-//
-//        forAll(cFaces, i)
-//        {
-//            label facei = cFaces[i];
-//
-//            pointHit inter = mesh_.faces()[facei].ray
-//            (
-//                ctr,
-//                dir,
-//                mesh_.points(),
-//                intersection::HALF_RAY,
-//                intersection::VECTOR
-//            );
-//
-//            if (inter.hit())
-//            {
-//                scalar dist = inter.distance();
-//
-//                if (dist < magDir)
-//                {
-//                    // Valid hit. Hit face so point is not in cell.
-//                    intersection::setPlanarTol(oldTol);
-//
-//                    return false;
-//                }
-//            }
-//        }
-//
-//        intersection::setPlanarTol(oldTol);
-//
-//        // No face inbetween point and cell centre so point is inside.
-//        return true;
-//    }
-//    else
-//    {
-//        const labelList& f = mesh_.cells()[celli];
-//        const labelList& owner = mesh_.faceOwner();
-//        const vectorField& cf = mesh_.faceCentres();
-//        const vectorField& Sf = mesh_.faceAreas();
-//
-//        forAll(f, facei)
-//        {
-//            label nFace = f[facei];
-//            vector proj = p - cf[nFace];
-//            vector normal = Sf[nFace];
-//            if (owner[nFace] == celli)
-//            {
-//                if ((normal & proj) > 0)
-//                {
-//                    return false;
-//                }
-//            }
-//            else
-//            {
-//                if ((normal & proj) < 0)
-//                {
-//                    return false;
-//                }
-//            }
-//        }
-//
-//        return true;
-//    }
-//}
-
-
 Foam::label Foam::meshSearch::findNearestCell
 (
     const point& location,
@@ -941,7 +855,6 @@ bool Foam::meshSearch::isInside(const point& p) const
 }
 
 
-// Delete all storage
 void Foam::meshSearch::clearOut()
 {
     boundaryTreePtr_.clear();
-- 
GitLab


From 1e36c995883585856c5a181d4a0f74c91024e519 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 20 Jan 2017 17:17:14 +0000
Subject: [PATCH 043/277] PaSR: Removed deprecated "turbulentReaction" switch

To run with laminar reaction rates choose the "laminar" combustion model rather
than setting "turbulentReaction no;" in the "PaSR" model.
---
 src/combustionModels/PaSR/PaSR.C              | 50 ++++++++-----------
 src/combustionModels/PaSR/PaSR.H              |  5 +-
 src/combustionModels/laminar/laminar.C        |  6 +--
 .../constant/chemistryProperties              |  2 -
 .../constant/combustionProperties             |  2 -
 .../cylinder/constant/combustionProperties    |  1 -
 .../hotBoxes/constant/combustionProperties    |  9 ++--
 .../constant/combustionProperties             |  9 ++--
 .../splashPanel/constant/combustionProperties |  9 ++--
 .../filter/constant/combustionProperties      |  9 ++--
 .../parcelInBox/constant/combustionProperties |  9 ++--
 .../constant/combustionProperties             |  9 ++--
 .../constant/combustionProperties             |  9 ++--
 .../constant/combustionProperties             | 10 ++--
 .../aachenBomb/constant/combustionProperties  |  1 -
 .../constant/combustionProperties.gas         | 11 ++--
 .../constant/combustionProperties.gas         |  5 +-
 .../constant/combustionProperties.gas         |  5 +-
 18 files changed, 56 insertions(+), 105 deletions(-)

diff --git a/src/combustionModels/PaSR/PaSR.C b/src/combustionModels/PaSR/PaSR.C
index fa3b7feaede..6bb51755d3f 100644
--- a/src/combustionModels/PaSR/PaSR.C
+++ b/src/combustionModels/PaSR/PaSR.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,7 +24,6 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "PaSR.H"
-#include "fvmSup.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -39,7 +38,6 @@ Foam::combustionModels::PaSR<Type>::PaSR
 :
     laminar<Type>(modelType, mesh, combustionProperties, phaseName),
     Cmix_(readScalar(this->coeffs().lookup("Cmix"))),
-    turbulentReaction_(this->coeffs().lookup("turbulentReaction")),
     kappa_
     (
         IOobject
@@ -72,35 +70,28 @@ void Foam::combustionModels::PaSR<Type>::correct()
     {
         laminar<Type>::correct();
 
-        if (turbulentReaction_)
+        tmp<volScalarField> tepsilon(this->turbulence().epsilon());
+        const scalarField& epsilon = tepsilon();
+        tmp<volScalarField> tmuEff(this->turbulence().muEff());
+        const scalarField& muEff = tmuEff();
+        tmp<volScalarField> ttc(this->tc());
+        const scalarField& tc = ttc();
+        tmp<volScalarField> trho(this->rho());
+        const scalarField& rho = trho();
+
+        forAll(epsilon, i)
         {
-            tmp<volScalarField> tepsilon(this->turbulence().epsilon());
-            const volScalarField& epsilon = tepsilon();
-            tmp<volScalarField> tmuEff(this->turbulence().muEff());
-            const volScalarField& muEff = tmuEff();
-            tmp<volScalarField> ttc(this->tc());
-            const volScalarField& tc = ttc();
-            tmp<volScalarField> trho(this->rho());
-            const volScalarField& rho = trho();
-
-            forAll(epsilon, i)
+            const scalar tk =
+                Cmix_*sqrt(max(muEff[i]/rho[i]/(epsilon[i] + SMALL), 0));
+
+            if (tk > SMALL)
             {
-                scalar tk =
-                    Cmix_*sqrt(max(muEff[i]/rho[i]/(epsilon[i] + SMALL), 0));
-
-                if (tk > SMALL)
-                {
-                    kappa_[i] = tc[i]/(tc[i] + tk);
-                }
-                else
-                {
-                    kappa_[i] = 1.0;
-                }
+                kappa_[i] = tc[i]/(tc[i] + tk);
+            }
+            else
+            {
+                kappa_[i] = 1.0;
             }
-        }
-        else
-        {
-            kappa_ = 1.0;
         }
     }
 }
@@ -135,7 +126,6 @@ bool Foam::combustionModels::PaSR<Type>::read()
     if (laminar<Type>::read())
     {
         this->coeffs().lookup("Cmix") >> Cmix_;
-        this->coeffs().lookup("turbulentReaction") >> turbulentReaction_;
         return true;
     }
     else
diff --git a/src/combustionModels/PaSR/PaSR.H b/src/combustionModels/PaSR/PaSR.H
index 88e347134a6..067f788b97c 100644
--- a/src/combustionModels/PaSR/PaSR.H
+++ b/src/combustionModels/PaSR/PaSR.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,9 +61,6 @@ class PaSR
         //- Mixing constant
         scalar Cmix_;
 
-        //- Turbulent reaction switch
-        Switch turbulentReaction_;
-
         //- Mixing parameter
         volScalarField kappa_;
 
diff --git a/src/combustionModels/laminar/laminar.C b/src/combustionModels/laminar/laminar.C
index 679a0867803..b33f302b18c 100644
--- a/src/combustionModels/laminar/laminar.C
+++ b/src/combustionModels/laminar/laminar.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -170,8 +170,8 @@ bool Foam::combustionModels::laminar<Type>::read()
 {
     if (Type::read())
     {
-        this->coeffs().lookup("integrateReactionRate")
-            >> integrateReactionRate_;
+        integrateReactionRate_ =
+            this->coeffs().lookupOrDefault("integrateReactionRate", true);
         return true;
     }
     else
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/chemistryProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/chemistryProperties
index 62fbf8fb247..8fbc88a1b3e 100644
--- a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/chemistryProperties
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/chemistryProperties
@@ -23,8 +23,6 @@ chemistryType
 
 chemistry       off;
 
-turbulentReaction off;
-
 initialChemicalTimeStep 1e-07;
 
 
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/combustionProperties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/combustionProperties
index 1832dddf0ae..0499ba48e25 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/combustionProperties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/combustionProperties
@@ -19,11 +19,9 @@ combustionModel  PaSR<psiChemistryCombustion>;
 
 active  true;
 
-
 PaSRCoeffs
 {
     Cmix                1.0;
-    turbulentReaction   on;
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/combustionProperties
index 4fe87a31322..466df195fe7 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/combustionProperties
@@ -22,7 +22,6 @@ active  false;
 PaSRCoeffs
 {
     Cmix                1.0;
-    turbulentReaction   on;
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/combustionProperties
index 87d04695b80..345ec862410 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/combustionProperties
@@ -15,15 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<psiChemistryCombustion>;
+combustionModel  laminar<psiChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                1.0;
-    turbulentReaction   off;
-}
+laminarCoeffs
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/combustionProperties
index 87d04695b80..345ec862410 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/combustionProperties
@@ -15,15 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<psiChemistryCombustion>;
+combustionModel  laminar<psiChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                1.0;
-    turbulentReaction   off;
-}
+laminarCoeffs
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/combustionProperties
index 87d04695b80..345ec862410 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/combustionProperties
@@ -15,15 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<psiChemistryCombustion>;
+combustionModel  laminar<psiChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                1.0;
-    turbulentReaction   off;
-}
+laminarCoeffs
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/filter/constant/combustionProperties
index 334391590cc..5d6309e9bbc 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/combustionProperties
@@ -15,15 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<rhoChemistryCombustion>;
+combustionModel  laminar<rhoChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                1.0;
-    turbulentReaction   off;
-}
+laminarCoeffs
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/combustionProperties
index 334391590cc..5d6309e9bbc 100644
--- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/combustionProperties
@@ -15,15 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<rhoChemistryCombustion>;
+combustionModel  laminar<rhoChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                1.0;
-    turbulentReaction   off;
-}
+laminarCoeffs
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/combustionProperties
index 334391590cc..5d6309e9bbc 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/combustionProperties
@@ -15,15 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<rhoChemistryCombustion>;
+combustionModel  laminar<rhoChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                1.0;
-    turbulentReaction   off;
-}
+laminarCoeffs
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/combustionProperties
index 41d0c32b80d..5d6309e9bbc 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/combustionProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/combustionProperties
@@ -15,15 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<rhoChemistryCombustion>;
+combustionModel  laminar<rhoChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                0.1;
-    turbulentReaction   off;
-}
+laminarCoeffs
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/combustionProperties b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/combustionProperties
index 41d0c32b80d..d1d89671bf3 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/combustionProperties
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/combustionProperties
@@ -15,15 +15,11 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel  PaSR<rhoChemistryCombustion>;
+combustionModel laminar<rhoChemistryCombustion>;
 
 active  false;
 
-PaSRCoeffs
-{
-    Cmix                0.1;
-    turbulentReaction   off;
-}
-
+laminarCoeffs
+{}
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/combustionProperties b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/combustionProperties
index f7b1cae9b7e..a1e8dc93d83 100644
--- a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/combustionProperties
+++ b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/combustionProperties
@@ -22,7 +22,6 @@ active          yes;
 PaSRCoeffs
 {
     Cmix                1.0;
-    turbulentReaction   yes;
 }
 
 
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/combustionProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/combustionProperties.gas
index 78cfe510443..debb0d9fada 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/combustionProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/combustionProperties.gas
@@ -15,22 +15,19 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel    PaSR<rhoChemistryCombustion>;
+combustionModel PaSR<rhoChemistryCombustion>;
 
-active  true;
+active true;
 
 laminarCoeffs
-{
-}
+{}
 
 noCombustionCoeffs
-{
-}
+{}
 
 PaSRCoeffs
 {
     Cmix                1.0;
-    turbulentReaction   yes;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/combustionProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/combustionProperties.gas
index 51002472936..2a92e4a1747 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/combustionProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/combustionProperties.gas
@@ -15,9 +15,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel    PaSR<rhoChemistryCombustion>;
+combustionModel PaSR<rhoChemistryCombustion>;
 
-active  false;
+active false;
 
 laminarCoeffs
 {}
@@ -28,7 +28,6 @@ noCombustionCoeffs
 PaSRCoeffs
 {
     Cmix                1.0;
-    turbulentReaction   yes;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/combustionProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/combustionProperties.gas
index 51002472936..2a92e4a1747 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/combustionProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/combustionProperties.gas
@@ -15,9 +15,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-combustionModel    PaSR<rhoChemistryCombustion>;
+combustionModel PaSR<rhoChemistryCombustion>;
 
-active  false;
+active false;
 
 laminarCoeffs
 {}
@@ -28,7 +28,6 @@ noCombustionCoeffs
 PaSRCoeffs
 {
     Cmix                1.0;
-    turbulentReaction   yes;
 }
 
 // ************************************************************************* //
-- 
GitLab


From 1c26f6a4573fec1444a627a6198dbf691baf7bb9 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 20 Jan 2017 18:22:48 +0000
Subject: [PATCH 044/277] chemistryModel: General cleanup

---
 .../chemistryModel/chemistryModel.C           | 102 +++++-------------
 .../chemistryModel/chemistryModel.H           |   4 +-
 .../chemistryModel/chemistryModelI.H          |  10 +-
 3 files changed, 36 insertions(+), 80 deletions(-)

diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C
index 661da67c3b0..fe401093c71 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ Foam::chemistryModel<CompType, ThermoType>::chemistryModel
     c_(nSpecie_),
     dcdt_(nSpecie_)
 {
-    // create the fields for the chemistry sources
+    // Create the fields for the chemistry sources
     forAll(RR_, fieldi)
     {
         RR_.set
@@ -148,7 +148,6 @@ Foam::scalar Foam::chemistryModel<CompType, ThermoType>::omegaI
     label& rRef
 ) const
 {
-
     const Reaction<ThermoType>& R = reactions_[index];
     scalar w = omega(R, c, T, p, pf, cf, lRef, pr, cr, rRef);
     return(w);
@@ -224,7 +223,7 @@ Foam::scalar Foam::chemistryModel<CompType, ThermoType>::omega
     label srRef = 0;
     rRef = R.rhs()[srRef].index;
 
-    // find the matrix element and element position for the rhs
+    // Find the matrix element and element position for the rhs
     pr = kr;
     for (label s = 1; s < Nr; s++)
     {
@@ -285,7 +284,7 @@ void Foam::chemistryModel<CompType, ThermoType>::derivatives
 
     omega(c_, T, p, dcdt);
 
-    // constant pressure
+    // Constant pressure
     // dT/dt = ...
     scalar rho = 0.0;
     scalar cSum = 0.0;
@@ -463,23 +462,6 @@ template<class CompType, class ThermoType>
 Foam::tmp<Foam::volScalarField>
 Foam::chemistryModel<CompType, ThermoType>::tc() const
 {
-    scalar pf, cf, pr, cr;
-    label lRef, rRef;
-
-    const volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            this->time().timeName(),
-            this->mesh(),
-            IOobject::NO_READ,
-            IOobject::NO_WRITE,
-            false
-        ),
-        this->thermo().rho()
-    );
-
     tmp<volScalarField> ttc
     (
         new volScalarField
@@ -500,24 +482,31 @@ Foam::chemistryModel<CompType, ThermoType>::tc() const
     );
 
     scalarField& tc = ttc.ref();
+
+    tmp<volScalarField> trho(this->thermo().rho());
+    const scalarField& rho = trho();
+
     const scalarField& T = this->thermo().T();
     const scalarField& p = this->thermo().p();
 
     const label nReaction = reactions_.size();
 
+    scalar pf, cf, pr, cr;
+    label lRef, rRef;
+
     if (this->chemistry_)
     {
         forAll(rho, celli)
         {
-            scalar rhoi = rho[celli];
-            scalar Ti = T[celli];
-            scalar pi = p[celli];
+            const scalar rhoi = rho[celli];
+            const scalar Ti = T[celli];
+            const scalar pi = p[celli];
+
             scalar cSum = 0.0;
 
             for (label i=0; i<nSpecie_; i++)
             {
-                scalar Yi = Y_[i][celli];
-                c_[i] = rhoi*Yi/specieThermo_[i].W();
+                c_[i] = rhoi*Y_[i][celli]/specieThermo_[i].W();
                 cSum += c_[i];
             }
 
@@ -529,10 +518,10 @@ Foam::chemistryModel<CompType, ThermoType>::tc() const
 
                 forAll(R.rhs(), s)
                 {
-                    scalar sr = R.rhs()[s].stoichCoeff;
-                    tc[celli] += sr*pf*cf;
+                    tc[celli] += R.rhs()[s].stoichCoeff*pf*cf;
                 }
             }
+
             tc[celli] = nReaction*cSum/tc[celli];
         }
     }
@@ -583,14 +572,6 @@ Foam::chemistryModel<CompType, ThermoType>::Qdot() const
 }
 
 
-template<class CompType, class ThermoType>
-Foam::label Foam::chemistryModel<CompType, ThermoType>::nEqns() const
-{
-    // nEqns = number of species + temperature + pressure
-    return nSpecie_ + 2;
-}
-
-
 template<class CompType, class ThermoType>
 Foam::tmp<Foam::DimensionedField<Foam::scalar, Foam::volMesh>>
 Foam::chemistryModel<CompType, ThermoType>::calculateRR
@@ -602,20 +583,6 @@ Foam::chemistryModel<CompType, ThermoType>::calculateRR
     scalar pf, cf, pr, cr;
     label lRef, rRef;
 
-    const volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            this->time().timeName(),
-            this->mesh(),
-            IOobject::NO_READ,
-            IOobject::NO_WRITE,
-            false
-        ),
-        this->thermo().rho()
-    );
-
     tmp<volScalarField::Internal> tRR
     (
         new volScalarField::Internal
@@ -635,6 +602,9 @@ Foam::chemistryModel<CompType, ThermoType>::calculateRR
 
     volScalarField::Internal& RR = tRR.ref();
 
+    tmp<volScalarField> trho(this->thermo().rho());
+    const scalarField& rho = trho();
+
     const scalarField& T = this->thermo().T();
     const scalarField& p = this->thermo().p();
 
@@ -679,19 +649,8 @@ void Foam::chemistryModel<CompType, ThermoType>::calculate()
         return;
     }
 
-    const volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            this->time().timeName(),
-            this->mesh(),
-            IOobject::NO_READ,
-            IOobject::NO_WRITE,
-            false
-        ),
-        this->thermo().rho()
-    );
+    tmp<volScalarField> trho(this->thermo().rho());
+    const scalarField& rho = trho();
 
     const scalarField& T = this->thermo().T();
     const scalarField& p = this->thermo().p();
@@ -734,19 +693,8 @@ Foam::scalar Foam::chemistryModel<CompType, ThermoType>::solve
         return deltaTMin;
     }
 
-    const volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            this->time().timeName(),
-            this->mesh(),
-            IOobject::NO_READ,
-            IOobject::NO_WRITE,
-            false
-        ),
-        this->thermo().rho()
-    );
+    tmp<volScalarField> trho(this->thermo().rho());
+    const scalarField& rho = trho();
 
     const scalarField& T = this->thermo().T();
     const scalarField& p = this->thermo().p();
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H
index 552aed094fa..8a69c4c95f4 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -238,7 +238,7 @@ public:
         // ODE functions (overriding abstract functions in ODE.H)
 
             //- Number of ODE's to solve
-            virtual label nEqns() const;
+            inline virtual label nEqns() const;
 
             virtual void derivatives
             (
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H
index 44d813c64dd..f797bf6d73c 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,6 +28,14 @@ License
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class CompType, class ThermoType>
+inline Foam::label Foam::chemistryModel<CompType, ThermoType>::nEqns() const
+{
+    // nEqns = number of species + temperature + pressure
+    return nSpecie_ + 2;
+}
+
+
 template<class CompType, class ThermoType>
 inline Foam::PtrList<Foam::DimensionedField<Foam::scalar, Foam::volMesh>>&
 Foam::chemistryModel<CompType, ThermoType>::RR()
-- 
GitLab


From 192b5d91a04ed6c3042403d3ead21fc2e623ff9a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 24 Jan 2017 08:15:43 +0000
Subject: [PATCH 045/277] snappyHexMesh: Write correct refinement files once
 only

The files relating to the hex refinement are written out explicitly both by
snappyHexMesh and dynamicRefineFvMesh and hence should be set "NO_WRITE" rather
than "AUTO_WRITE" to avoid writing them twice.  This change corrects the
handling of the "refinementHistory" file which should not be written by
snappyHexMesh.
---
 .../polyTopoChange/hexRef8/hexRef8.C          | 31 ++++++++++---------
 .../hexRef8/refinementHistory.C               |  8 +----
 .../meshRefinement/meshRefinement.C           | 29 +++++------------
 3 files changed, 25 insertions(+), 43 deletions(-)

diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C
index 7872d76afb4..fc0416f965f 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -1938,7 +1938,7 @@ Foam::hexRef8::hexRef8(const polyMesh& mesh, const bool readHistory)
             polyMesh::meshSubDir,
             mesh_,
             IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         labelList(mesh_.nCells(), 0)
     ),
@@ -1951,7 +1951,7 @@ Foam::hexRef8::hexRef8(const polyMesh& mesh, const bool readHistory)
             polyMesh::meshSubDir,
             mesh_,
             IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         labelList(mesh_.nPoints(), 0)
     ),
@@ -1964,7 +1964,7 @@ Foam::hexRef8::hexRef8(const polyMesh& mesh, const bool readHistory)
             polyMesh::meshSubDir,
             mesh_,
             IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         dimensionedScalar("level0Edge", dimLength, getLevel0EdgeLength())
     ),
@@ -1977,9 +1977,10 @@ Foam::hexRef8::hexRef8(const polyMesh& mesh, const bool readHistory)
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
-        (readHistory ? mesh_.nCells() : 0)  // All cells visible if not be read
+        // All cells visible if not read or readHistory = false
+        (readHistory ? mesh_.nCells() : 0)
     ),
     faceRemover_(mesh_, GREAT),     // merge boundary faces wherever possible
     savedPointLevel_(0),
@@ -2063,7 +2064,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         cellLevel
     ),
@@ -2076,7 +2077,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         pointLevel
     ),
@@ -2089,7 +2090,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         dimensionedScalar
         (
@@ -2107,7 +2108,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         history
     ),
@@ -2171,7 +2172,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         cellLevel
     ),
@@ -2184,7 +2185,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         pointLevel
     ),
@@ -2197,7 +2198,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         dimensionedScalar
         (
@@ -2215,7 +2216,7 @@ Foam::hexRef8::hexRef8
             polyMesh::meshSubDir,
             mesh_,
             IOobject::NO_READ,
-            IOobject::AUTO_WRITE
+            IOobject::NO_WRITE
         ),
         List<refinementHistory::splitCell8>(0),
         labelList(0),
@@ -3075,7 +3076,7 @@ Foam::labelList Foam::hexRef8::consistentSlowRefinement2
     //            fMesh.time().timeName(),
     //            fMesh,
     //            IOobject::NO_READ,
-    //            IOobject::AUTO_WRITE,
+    //            IOobject::NO_WRITE,
     //            false
     //        ),
     //        fMesh,
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
index 251257c112b..28511092c67 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -335,7 +335,6 @@ void Foam::refinementHistory::freeSplitCell(const label index)
 }
 
 
-// Mark entry in splitCells. Recursively mark its parent and subs.
 void Foam::refinementHistory::markSplit
 (
     const label index,
@@ -372,7 +371,6 @@ void Foam::refinementHistory::markSplit
 }
 
 
-// Mark index and all its descendants
 void Foam::refinementHistory::mark
 (
     const label val,
@@ -762,7 +760,6 @@ Foam::refinementHistory::refinementHistory
 }
 
 
-// Construct as copy
 Foam::refinementHistory::refinementHistory
 (
     const IOobject& io,
@@ -783,7 +780,6 @@ Foam::refinementHistory::refinementHistory
 }
 
 
-// Construct from multiple
 Foam::refinementHistory::refinementHistory
 (
     const IOobject& io,
@@ -903,7 +899,6 @@ Foam::refinementHistory::refinementHistory
 }
 
 
-// Construct from Istream
 Foam::refinementHistory::refinementHistory(const IOobject& io, Istream& is)
 :
     regIOobject(io),
@@ -1180,7 +1175,6 @@ void Foam::refinementHistory::updateMesh(const mapPolyMesh& map)
 }
 
 
-// Update numbering for subsetting
 void Foam::refinementHistory::subset
 (
     const labelList& pointMap,
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
index 4d3fb542092..b68576b3524 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -207,8 +207,6 @@ void Foam::meshRefinement::calcNeighbourData
 }
 
 
-// Find intersections of edges (given by their two endpoints) with surfaces.
-// Returns first intersection if there are more than one.
 void Foam::meshRefinement::updateIntersections(const labelList& changedFaces)
 {
     const pointField& cellCentres = mesh_.cellCentres();
@@ -609,8 +607,6 @@ void Foam::meshRefinement::setInstance(const fileName& inst)
 }
 
 
-// Remove cells. Put exposedFaces (output of getExposedFaces(cellsToRemove))
-// into exposedPatchIDs.
 Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::doRemoveCells
 (
     const labelList& cellsToRemove,
@@ -670,7 +666,6 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::doRemoveCells
 }
 
 
-// Split faces
 Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitFaces
 (
     const labelList& splitFaces,
@@ -684,7 +679,6 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitFaces
         label facei = splitFaces[i];
         const face& f = mesh_.faces()[facei];
 
-
         // Split as start and end index in face
         const labelPair& split = splits[i];
 
@@ -737,9 +731,12 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitFaces
         }
 
 
-Pout<< "face:" << facei << " verts:" << f
-    << " split into f0:" << f0
-    << " f1:" << f1 << endl;
+        if (debug)
+        {
+            Pout<< "face:" << facei << " verts:" << f
+                << " split into f0:" << f0
+                << " f1:" << f1 << endl;
+        }
 
         // Change/add faces
         meshMod.modifyFace
@@ -753,6 +750,7 @@ Pout<< "face:" << facei << " verts:" << f
             zoneI,                      // zone for face
             zoneFlip                    // face flip in zone
         );
+
         meshMod.addFace
         (
             f1,                         // modified face
@@ -1160,7 +1158,6 @@ Pout<< "face:" << facei << " verts:" << f
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-// Construct from components
 Foam::meshRefinement::meshRefinement
 (
     fvMesh& mesh,
@@ -1381,11 +1378,6 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::meshRefinement::balance
 
     if (Pstream::parRun())
     {
-        //if (debug_)
-        //{
-        //    const_cast<Time&>(mesh_.time())++;
-        //}
-
         // Wanted distribution
         labelList distribution;
 
@@ -1648,7 +1640,6 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::meshRefinement::balance
 }
 
 
-// Helper function to get intersected faces
 Foam::labelList Foam::meshRefinement::intersectedFaces() const
 {
     label nBoundaryFaces = 0;
@@ -1675,7 +1666,6 @@ Foam::labelList Foam::meshRefinement::intersectedFaces() const
 }
 
 
-// Helper function to get points used by faces
 Foam::labelList Foam::meshRefinement::intersectedPoints() const
 {
     const faceList& faces = mesh_.faces();
@@ -1788,7 +1778,6 @@ Foam::autoPtr<Foam::indirectPrimitivePatch> Foam::meshRefinement::makePatch
 }
 
 
-// Construct pointVectorField with correct boundary conditions
 Foam::tmp<Foam::pointVectorField> Foam::meshRefinement::makeDisplacementField
 (
     const pointMesh& pMesh,
@@ -2088,7 +2077,6 @@ Foam::label Foam::meshRefinement::appendPatch
 }
 
 
-// Adds patch if not yet there. Returns patchID.
 Foam::label Foam::meshRefinement::addPatch
 (
     fvMesh& mesh,
@@ -2451,7 +2439,6 @@ void Foam::meshRefinement::distribute(const mapDistributePolyMesh& map)
 }
 
 
-// Update local data for a mesh change
 void Foam::meshRefinement::updateMesh
 (
     const mapPolyMesh& map,
-- 
GitLab


From 9b319dab61f72edd33bdb94b75b781822c791496 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 24 Jan 2017 16:18:20 +0000
Subject: [PATCH 046/277] blockMesh: Delete the polyMesh directory before
 meshing

unless the blockMeshDict is in the polyMesh directory or the "-noClean" option
is specified.

This avoids problems running snappyHexMesh without first clearing files from
polyMesh which interfere with the operation of snappyHexMesh.
---
 .../mesh/generation/blockMesh/blockMesh.C     | 31 ++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/applications/utilities/mesh/generation/blockMesh/blockMesh.C b/applications/utilities/mesh/generation/blockMesh/blockMesh.C
index a7860c8f531..4b3b7266087 100644
--- a/applications/utilities/mesh/generation/blockMesh/blockMesh.C
+++ b/applications/utilities/mesh/generation/blockMesh/blockMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,6 +76,11 @@ int main(int argc, char *argv[])
         "blockTopology",
         "write block edges and centres as .obj files"
     );
+    argList::addBoolOption
+    (
+        "noClean",
+        "keep the existing files in the polyMesh"
+    );
     argList::addOption
     (
         "dict",
@@ -156,6 +161,30 @@ int main(int argc, char *argv[])
         dictPath = runTime.system()/regionPath/dictName;
     }
 
+    if (!args.optionFound("noClean"))
+    {
+        fileName polyMeshPath
+        (
+            runTime.path()/runTime.constant()/regionPath/polyMesh::meshSubDir
+        );
+
+        if (exists(polyMeshPath))
+        {
+            if (exists(polyMeshPath/dictName))
+            {
+                Info<< "Not deleting polyMesh directory " << nl
+                    << "    " << polyMeshPath << nl
+                    << "    because it contains " << dictName << endl;
+            }
+            else
+            {
+                Info<< "Deleting polyMesh directory" << nl
+                    << "    " << polyMeshPath << endl;
+                rmDir(polyMeshPath);
+            }
+        }
+    }
+
     IOobject meshDictIO
     (
         dictPath,
-- 
GitLab


From 4e5dc4341867b157cb0233b57dfdf19b6253c9c7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 24 Jan 2017 22:28:36 +0000
Subject: [PATCH 047/277] snappyHexMesh: Added "noRefinement" writeFlag to
 control the writing of cellLevel, pointLevel etc. files

By default snappyHexMesh writes files relating to the hex-splitting process into
the polyMesh directory: cellLevel level0Edge pointLevel surfaceIndex

but by setting the noRefinement flag:

writeFlags
(
    noRefinement
    .
    .
    .
);

these optional files which are generally not needed are not written.

If you run the three stages of snappyHexMesh separately or run a dynamic mesh
solver supporting refinement and unrefinement these files are needed
and "noRefinement" should not be set.
---
 .../generation/snappyHexMesh/snappyHexMesh.C  | 120 ------------------
 .../meshRefinement/meshRefinement.C           |  20 +--
 .../meshRefinement/meshRefinement.H           |  11 +-
 .../system/snappyHexMeshDict                  |  10 +-
 4 files changed, 24 insertions(+), 137 deletions(-)

diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
index 645e292ea63..e9d308d3a9a 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
@@ -653,15 +653,6 @@ void writeMesh
     meshRefiner.printMeshInfo(debugLevel, msg);
     Info<< "Writing mesh to time " << meshRefiner.timeName() << endl;
 
-    //label flag = meshRefinement::MESH;
-    //if (writeLevel)
-    //{
-    //    flag |= meshRefinement::SCALARLEVELS;
-    //}
-    //if (debug & meshRefinement::OBJINTERSECTIONS)
-    //{
-    //    flag |= meshRefinement::OBJINTERSECTIONS;
-    //}
     meshRefiner.write
     (
         debugLevel,
@@ -711,117 +702,6 @@ int main(int argc, char *argv[])
 
     autoPtr<fvMesh> meshPtr;
 
-//    if (surfaceSimplify)
-//    {
-//        IOdictionary foamyHexMeshDict
-//        (
-//           IOobject
-//           (
-//                "foamyHexMeshDict",
-//                runTime.system(),
-//                runTime,
-//                IOobject::MUST_READ_IF_MODIFIED,
-//                IOobject::NO_WRITE
-//           )
-//        );
-//
-//        const dictionary& motionDict =
-//            foamyHexMeshDict.subDict("motionControl");
-//
-//        const scalar defaultCellSize =
-//            readScalar(motionDict.lookup("defaultCellSize"));
-//
-//        Info<< "Constructing single cell mesh from boundBox" << nl << endl;
-//
-//        boundBox bb(args.optionRead<boundBox>("surfaceSimplify"));
-//
-//        labelList owner(6, label(0));
-//        labelList neighbour(0);
-//
-//        const cellModel& hexa = *(cellModeller::lookup("hex"));
-//        faceList faces = hexa.modelFaces();
-//
-//        meshPtr.set
-//        (
-//            new fvMesh
-//            (
-//                IOobject
-//                (
-//                    fvMesh::defaultRegion,
-//                    runTime.timeName(),
-//                    runTime,
-//                    IOobject::NO_READ
-//                ),
-//                xferMove<Field<vector>>(bb.points()()),
-//                faces.xfer(),
-//                owner.xfer(),
-//                neighbour.xfer()
-//            )
-//        );
-//
-//        List<polyPatch*> patches(1);
-//
-//        patches[0] = new wallPolyPatch
-//        (
-//            "boundary",
-//            6,
-//            0,
-//            0,
-//            meshPtr().boundaryMesh(),
-//            wallPolyPatch::typeName
-//        );
-//
-//        meshPtr().addFvPatches(patches);
-//
-//        const scalar initialCellSize = ::pow(meshPtr().V()[0], 1.0/3.0);
-//        const label initialRefLevels =
-//            ::log(initialCellSize/defaultCellSize)/::log(2);
-//
-//        Info<< "Default cell size = " << defaultCellSize << endl;
-//        Info<< "Initial cell size = " << initialCellSize << endl;
-//
-//        Info<< "Initial refinement levels = " << initialRefLevels << endl;
-//
-//        Info<< "Mesh starting size = " << meshPtr().nCells() << endl;
-//
-//        // meshCutter must be destroyed before writing the mesh otherwise it
-//        // writes the cellLevel/pointLevel files
-//        {
-//            hexRef8 meshCutter(meshPtr(), false);
-//
-//            for (label refineI = 0; refineI < initialRefLevels; ++refineI)
-//            {
-//                // Mesh changing engine.
-//                polyTopoChange meshMod(meshPtr(), true);
-//
-//                // Play refinement commands into mesh changer.
-//                meshCutter.setRefinement
-//                (
-//                    identity(meshPtr().nCells()),
-//                    meshMod
-//                );
-//
-//                // Create mesh (no inflation), return map from old to new mesh
-//                autoPtr<mapPolyMesh> map =
-//                    meshMod.changeMesh(meshPtr(), false);
-//
-//                // Update fields
-//                meshPtr().updateMesh(map);
-//
-//                // Delete mesh volumes.
-//                meshPtr().clearOut();
-//
-//                Info<< "Refinement Iteration " << refineI + 1
-//                    << ", Mesh size = " << meshPtr().nCells() << endl;
-//            }
-//        }
-//
-//        Info<< "Mesh end size = " << meshPtr().nCells() << endl;
-//
-//        Info<< "Create mesh" << endl;
-//        meshPtr().write();
-//    }
-//    else
     {
         Foam::Info
             << "Create mesh for time = "
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
index b68576b3524..41c28a9bda2 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
@@ -70,7 +70,6 @@ namespace Foam
     >::names[] =
     {
         "mesh",
-        //"scalarLevels",
         "intersections",
         "featureSeeds",
         "attraction",
@@ -91,10 +90,11 @@ namespace Foam
     const char* Foam::NamedEnum
     <
         Foam::meshRefinement::IOwriteType,
-        4
+        5
     >::names[] =
     {
         "mesh",
+        "noRefinement",
         "scalarLevels",
         "layerSets",
         "layerFields"
@@ -108,7 +108,7 @@ Foam::meshRefinement::IOdebugTypeNames;
 const Foam::NamedEnum<Foam::meshRefinement::IOoutputType, 1>
 Foam::meshRefinement::IOoutputTypeNames;
 
-const Foam::NamedEnum<Foam::meshRefinement::IOwriteType, 4>
+const Foam::NamedEnum<Foam::meshRefinement::IOwriteType, 5>
 Foam::meshRefinement::IOwriteTypeNames;
 
 
@@ -2565,11 +2565,7 @@ void Foam::meshRefinement::updateMesh
 
 bool Foam::meshRefinement::write() const
 {
-    bool writeOk =
-        mesh_.write()
-     && meshCutter_.write()
-     && surfaceIndex_.write();
-
+    bool writeOk = mesh_.write();
 
     // Make sure that any distributed surfaces (so ones which probably have
     // been changed) get written as well.
@@ -2908,10 +2904,18 @@ void Foam::meshRefinement::write
     {
         write();
     }
+
+    if (writeFlags && !(writeFlags & NOWRITEREFINEMENT))
+    {
+        meshCutter_.write();
+        surfaceIndex_.write();
+    }
+
     if (writeFlags & WRITELEVELS)
     {
         dumpRefinementLevel();
     }
+
     if (debugFlags & OBJINTERSECTIONS && prefix.size())
     {
         dumpIntersections(prefix);
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H
index 8dce430f13e..a3a51afae99 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,17 +89,16 @@ public:
         enum IOdebugType
         {
             IOMESH,
-            //IOSCALARLEVELS,
             IOOBJINTERSECTIONS,
             IOFEATURESEEDS,
             IOATTRACTION,
             IOLAYERINFO
         };
+
         static const NamedEnum<IOdebugType, 5> IOdebugTypeNames;
         enum debugType
         {
             MESH = 1<<IOMESH,
-            //SCALARLEVELS = 1<<IOSCALARLEVELS,
             OBJINTERSECTIONS = 1<<IOOBJINTERSECTIONS,
             FEATURESEEDS = 1<<IOFEATURESEEDS,
             ATTRACTION = 1<< IOATTRACTION,
@@ -111,6 +110,7 @@ public:
         {
             IOOUTPUTLAYERINFO
         };
+
         static const NamedEnum<IOoutputType, 1> IOoutputTypeNames;
         enum outputType
         {
@@ -121,14 +121,17 @@ public:
         enum IOwriteType
         {
             IOWRITEMESH,
+            IONOWRITEREFINEMENT,
             IOWRITELEVELS,
             IOWRITELAYERSETS,
             IOWRITELAYERFIELDS
         };
-        static const NamedEnum<IOwriteType, 4> IOwriteTypeNames;
+
+        static const NamedEnum<IOwriteType, 5> IOwriteTypeNames;
         enum writeType
         {
             WRITEMESH = 1<<IOWRITEMESH,
+            NOWRITEREFINEMENT = 1<<IONOWRITEREFINEMENT,
             WRITELEVELS = 1<<IOWRITELEVELS,
             WRITELAYERSETS = 1<<IOWRITELAYERSETS,
             WRITELAYERFIELDS = 1<<IOWRITELAYERFIELDS
diff --git a/tutorials/incompressible/simpleFoam/windAroundBuildings/system/snappyHexMeshDict b/tutorials/incompressible/simpleFoam/windAroundBuildings/system/snappyHexMeshDict
index fed73f13c13..42b798b186e 100644
--- a/tutorials/incompressible/simpleFoam/windAroundBuildings/system/snappyHexMeshDict
+++ b/tutorials/incompressible/simpleFoam/windAroundBuildings/system/snappyHexMeshDict
@@ -87,14 +87,14 @@ addLayersControls
 }
 
 meshQualityControls
-{
-}
+{}
 
 writeFlags
 (
-    scalarLevels
-    layerSets
-    layerFields
+    noRefinement
+    // scalarLevels
+    // layerSets
+    // layerFields
 );
 
 mergeTolerance 1e-6;
-- 
GitLab


From 8f7228d6f324a0bb4c79a6ad6ec935b1d6c066a5 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 25 Jan 2017 11:54:12 +0000
Subject: [PATCH 048/277] interDyMFoam: delete alphaPhiCorr0 if the mesh
 changes

The previous time-step compression flux is not valid/accurate on the new mesh
and it is better to re-calculate it rather than map it from the previous mesh to
the new mesh.
---
 applications/solvers/multiphase/interFoam/alphaEqn.H         | 5 +++++
 .../solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C | 5 ++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/applications/solvers/multiphase/interFoam/alphaEqn.H b/applications/solvers/multiphase/interFoam/alphaEqn.H
index be5356e68c3..312c1d6723d 100644
--- a/applications/solvers/multiphase/interFoam/alphaEqn.H
+++ b/applications/solvers/multiphase/interFoam/alphaEqn.H
@@ -182,6 +182,11 @@
     if (alphaApplyPrevCorr && MULESCorr)
     {
         talphaPhiCorr0 = alphaPhi - talphaPhiCorr0;
+        talphaPhiCorr0.ref().rename("alphaPhiCorr0");
+    }
+    else
+    {
+        talphaPhiCorr0.clear();
     }
 
     if
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index 0534896b68c..f544fcde282 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -125,6 +125,9 @@ int main(int argc, char *argv[])
                         << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
                         << " s" << endl;
 
+                    // Do not apply previous time-step mesh compression flux
+                    talphaPhiCorr0.clear();
+
                     gh = (g & mesh.C()) - ghRef;
                     ghf = (g & mesh.Cf()) - ghRef;
                 }
-- 
GitLab


From 1c1a69cabc6b32b95f91fc7c974bf161450c2f4a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 26 Jan 2017 15:34:51 +0000
Subject: [PATCH 049/277] patchInjectionBase: Improved particle positioning

Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2442
---
 .../PatchInjection/patchInjectionBase.C        | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C
index b1bd72bdaad..293010fd137 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -201,16 +201,26 @@ void Foam::patchInjectionBase::setPositionAndCell
             // Position perturbed away from face (into domain)
             const scalar a = rnd.position(scalar(0.1), scalar(0.5));
             const vector& pc = mesh.cellCentres()[cellOwner];
-            const vector d = mag(pf - pc)*patchNormal_[facei];
+            const vector d =
+                mag((pf - pc) & patchNormal_[facei])*patchNormal_[facei];
 
             position = pf - a*d;
 
-            //Try to find tetFacei and tetPti in the current position
+            // Try to find tetFacei and tetPti in the current position
             mesh.findTetFacePt(cellOwner, position, tetFacei, tetPti);
 
-            //Search failed, choose a random position
+            // tetFacei and tetPti not found, check if the cell has changed
             if (tetFacei == -1 ||tetPti == -1)
             {
+                mesh.findCellFacePt(position, cellOwner, tetFacei, tetPti);
+            }
+
+            // Both searches failed, choose a random position within
+            // the original cell
+            if (tetFacei == -1 ||tetPti == -1)
+            {
+                // Reset cellOwner
+                cellOwner = cellOwners_[facei];
                 const scalarField& V = mesh.V();
 
                 // Construct cell tet indices
-- 
GitLab


From 5dd24f4968254b96a6bb4a200b44ca34bec280b3 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 26 Jan 2017 17:47:24 +0000
Subject: [PATCH 050/277] Removed unhelpful clutter

---
 .../Saturated/Saturated.C                      |  6 ++----
 .../phaseSystems/phaseSystem/phaseSystem.C     |  6 ++----
 .../conversion/ideasUnvToFoam/ideasUnvToFoam.C |  5 +++--
 .../helpBoundary/helpBoundaryTemplates.C       |  8 +++-----
 .../ensightFoamReader/USERD_exit_routine.H     |  1 -
 .../globalIndexStencils/CFCFaceToCellStencil.C |  6 ++----
 .../field/fieldAverage/fieldAverageTemplates.C | 10 +++-------
 .../trimModel/fixed/fixedTrim.C                | 10 +++-------
 .../CloudFunctionObject/CloudFunctionObject.C  | 18 +++++-------------
 .../NoDispersion/NoDispersion.C                |  3 +--
 .../ConeNozzleInjection/ConeNozzleInjection.C  |  6 ++----
 .../InflationInjection/InflationInjection.C    |  6 ++----
 .../PatchInteractionModel.C                    |  6 ++----
 .../StandardWallInteraction.C                  |  6 ++----
 .../NoStochasticCollision.C                    |  6 ++----
 .../IsotropyModels/NoIsotropy/NoIsotropy.C     |  6 ++----
 .../NoSurfaceReaction/NoSurfaceReaction.C      |  5 ++---
 .../BreakupModel/NoBreakup/NoBreakup.C         |  3 +--
 .../EulerCoordinateRotation.H                  |  6 ++----
 .../STARCDCoordinateRotation.H                 |  6 ++----
 .../coordinateRotation/axesRotation.H          |  6 ++----
 .../regionCoupledPolyPatch/regionCoupledBase.C |  3 +--
 .../pyrolysisModel/pyrolysisModel.C            |  6 ++----
 ...lysisTemperatureCoupledFvPatchScalarField.C |  4 ++--
 ...yrolysisVelocityCoupledFvPatchVectorField.C |  8 +++-----
 .../regionModel/regionModel/regionModel.C      | 10 +++-------
 .../regionModelFunctionObject.C                | 10 +++-------
 .../alphatFilmWallFunctionFvPatchScalarField.C |  4 ++--
 .../nutkFilmWallFunctionFvPatchScalarField.C   |  4 ++--
 .../surfaceFilmModels/noFilm/noFilm.C          |  6 ++----
 .../filmTurbulenceModel/laminar/laminar.C      |  6 ++----
 .../noRadiation/noRadiation.C                  |  6 ++----
 .../constantHeatTransfer.C                     |  6 ++----
 .../noPhaseChange/noPhaseChange.C              |  6 ++----
 .../basicChemistryModel/basicChemistryModel.C  |  6 ++----
 35 files changed, 75 insertions(+), 145 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C
index 435bb7df2a3..de32766bc6d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/interfaceCompositionModels/Saturated/Saturated.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,9 +86,7 @@ Foam::interfaceCompositionModels::Saturated<Thermo, OtherThermo>::update
 (
     const volScalarField& Tf
 )
-{
-    // do nothing
-}
+{}
 
 
 template<class Thermo, class OtherThermo>
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C
index b9abe549a0b..19e768416fd 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,9 +76,7 @@ void Foam::phaseSystem::generatePairs
 
         // pair already exists
         if (phasePairs_.found(key))
-        {
-            // do nothing ...
-        }
+        {}
 
         // new ordered pair
         else if (key.ordered())
diff --git a/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C b/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C
index 2b2f9ed02b7..c1a3512adf3 100644
--- a/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C
+++ b/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -465,7 +465,8 @@ void readCells
                 IOWarningInFunction(is)
                     << "Cell type " << feID << " not supported" << endl;
             }
-            is.getLine(line);  // Do nothing
+
+            is.getLine(line);
         }
     }
 
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundaryTemplates.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundaryTemplates.C
index ec53cb414dc..d552c294f7e 100644
--- a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundaryTemplates.C
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundaryTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,7 +93,7 @@ void Foam::helpTypes::helpBoundary::fixedValueFieldConditions
             IOobject::NO_WRITE,
             false
         ),
-        mesh,   
+        mesh,
         dimensioned<Type>("zero", dimless, Zero)
     );
 
@@ -142,9 +142,7 @@ void Foam::helpTypes::helpBoundary::fixedValueFieldConditions
             }
         }
         catch (...)
-        {
-            // do nothing
-        }
+        {}
     }
 
     if (!foundFixed)
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
index 4a81615622f..277450fc47f 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
@@ -1,4 +1,3 @@
-// Do nothing
 void USERD_exit_routine
 (
     void
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceToCell/globalIndexStencils/CFCFaceToCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/faceToCell/globalIndexStencils/CFCFaceToCellStencil.C
index 9348d33273c..43e22bb860d 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceToCell/globalIndexStencils/CFCFaceToCellStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceToCell/globalIndexStencils/CFCFaceToCellStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,9 +71,7 @@ void Foam::CFCFaceToCellStencil::calcFaceBoundaryData
             }
         }
         else if (isA<emptyPolyPatch>(pp))
-        {
-            // Do nothing.
-        }
+        {}
         else
         {
             // Do nothing since face itself already in stencil
diff --git a/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C b/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C
index 0dbd553a493..132b8ff00e8 100644
--- a/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C
+++ b/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -39,9 +39,7 @@ void Foam::functionObjects::fieldAverage::addMeanFieldType(const label fieldi)
     Log << "    Reading/initialising field " << meanFieldName << endl;
 
     if (obr_.foundObject<Type>(meanFieldName))
-    {
-       // do nothing
-    }
+    {}
     else if (obr_.found(meanFieldName))
     {
         Log << "    Cannot allocate average field " << meanFieldName
@@ -114,9 +112,7 @@ void Foam::functionObjects::fieldAverage::addPrime2MeanFieldType
     Log << "    Reading/initialising field " << prime2MeanFieldName << nl;
 
     if (obr_.foundObject<Type2>(prime2MeanFieldName))
-    {
-        // do nothing
-    }
+    {}
     else if (obr_.found(prime2MeanFieldName))
     {
         Log << "    Cannot allocate average field " << prime2MeanFieldName
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/fixed/fixedTrim.C b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/fixed/fixedTrim.C
index 5522250772b..d0b3468d54c 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/fixed/fixedTrim.C
+++ b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/fixed/fixedTrim.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -91,9 +91,7 @@ void Foam::fixedTrim::correct
     const vectorField& U,
     vectorField& force
 )
-{
-    // do nothing
-}
+{}
 
 
 void Foam::fixedTrim::correct
@@ -101,9 +99,7 @@ void Foam::fixedTrim::correct
     const volScalarField rho,
     const vectorField& U,
     vectorField& force)
-{
-    // do nothing
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C
index b0e6c2b32e6..20d230625c0 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -95,9 +95,7 @@ Foam::CloudFunctionObject<CloudType>::~CloudFunctionObject()
 
 template<class CloudType>
 void Foam::CloudFunctionObject<CloudType>::preEvolve()
-{
-    // do nothing
-}
+{}
 
 
 template<class CloudType>
@@ -119,9 +117,7 @@ void Foam::CloudFunctionObject<CloudType>::postMove
     const point&,
     bool&
 )
-{
-    // do nothing
-}
+{}
 
 
 template<class CloudType>
@@ -133,9 +129,7 @@ void Foam::CloudFunctionObject<CloudType>::postPatch
     const tetIndices&,
     bool&
 )
-{
-    // do nothing
-}
+{}
 
 
 template<class CloudType>
@@ -145,9 +139,7 @@ void Foam::CloudFunctionObject<CloudType>::postFace
     const label,
     bool&
 )
-{
-    // do nothing
-}
+{}
 
 
 template<class CloudType>
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/NoDispersion/NoDispersion.C b/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/NoDispersion/NoDispersion.C
index eec313925fb..51d706f6a00 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/NoDispersion/NoDispersion.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/NoDispersion/NoDispersion.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,7 +68,6 @@ Foam::vector Foam::NoDispersion<CloudType>::update
     scalar&
 )
 {
-    // Do nothing
     return Uc;
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
index 30e9540c9fd..4649b7a7d69 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -257,9 +257,7 @@ void Foam::ConeNozzleInjection<CloudType>::updateMesh()
             );
         }
         default:
-        {
-            // do nothing
-        }
+        {}
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
index ca0ac40eba3..d0f697955bb 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -155,9 +155,7 @@ Foam::InflationInjection<CloudType>::~InflationInjection()
 
 template<class CloudType>
 void Foam::InflationInjection<CloudType>::updateMesh()
-{
-    // do nothing
-}
+{}
 
 
 template<class CloudType>
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
index a652b3e8828..e5788d4033d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -156,9 +156,7 @@ const Foam::word& Foam::PatchInteractionModel<CloudType>::UName() const
 
 template<class CloudType>
 void Foam::PatchInteractionModel<CloudType>::info(Ostream& os)
-{
-    // do nothing
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
index 3842f9b5e32..253a94c53bc 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,9 +67,7 @@ Foam::StandardWallInteraction<CloudType>::StandardWallInteraction
             break;
         }
         default:
-        {
-            // do nothing
-        }
+        {}
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/StochasticCollision/NoStochasticCollision/NoStochasticCollision.C b/src/lagrangian/intermediate/submodels/Kinematic/StochasticCollision/NoStochasticCollision/NoStochasticCollision.C
index 563c0caaef6..9a62cf70e4b 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/StochasticCollision/NoStochasticCollision/NoStochasticCollision.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/StochasticCollision/NoStochasticCollision/NoStochasticCollision.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,9 +29,7 @@ License
 
 template<class CloudType>
 void Foam::NoStochasticCollision<CloudType>::collide(const scalar)
-{
-    // do nothing
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/NoIsotropy/NoIsotropy.C b/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/NoIsotropy/NoIsotropy.C
index d8b0fb075d9..822f368e384 100644
--- a/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/NoIsotropy/NoIsotropy.C
+++ b/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/NoIsotropy/NoIsotropy.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,9 +59,7 @@ Foam::IsotropyModels::NoIsotropy<CloudType>::~NoIsotropy()
 
 template<class CloudType>
 void Foam::IsotropyModels::NoIsotropy<CloudType>::calculate()
-{
-    // do nothing
-}
+{}
 
 
 template<class CloudType>
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C
index 25a80d7a3b7..8ded8aca5f6 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,7 @@ Foam::scalar Foam::NoSurfaceReaction<CloudType>::calculate
     scalarField&
 ) const
 {
-    // do nothing
-    return 0.0;
+    return 0;
 }
 
 
diff --git a/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C b/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C
index 1a233e2b296..dda61effa50 100644
--- a/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C
+++ b/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -88,7 +88,6 @@ bool Foam::NoBreakup<CloudType>::update
     scalar& massChild
 )
 {
-    // Do nothing
     return false;
 }
 
diff --git a/src/meshTools/coordinateSystems/coordinateRotation/EulerCoordinateRotation.H b/src/meshTools/coordinateSystems/coordinateRotation/EulerCoordinateRotation.H
index 0f2f7cdf673..db3724b3606 100644
--- a/src/meshTools/coordinateSystems/coordinateRotation/EulerCoordinateRotation.H
+++ b/src/meshTools/coordinateSystems/coordinateRotation/EulerCoordinateRotation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -135,9 +135,7 @@ public:
 
         //- Update the rotation for a list of cells
         virtual void updateCells(const polyMesh&, const labelList&)
-        {
-            // do nothing
-        }
+        {}
 
         //- Return local-to-global transformation tensor
         virtual const tensor& R() const
diff --git a/src/meshTools/coordinateSystems/coordinateRotation/STARCDCoordinateRotation.H b/src/meshTools/coordinateSystems/coordinateRotation/STARCDCoordinateRotation.H
index a4f56599d4e..67df95df3ce 100644
--- a/src/meshTools/coordinateSystems/coordinateRotation/STARCDCoordinateRotation.H
+++ b/src/meshTools/coordinateSystems/coordinateRotation/STARCDCoordinateRotation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -131,9 +131,7 @@ public:
 
         //- Update the rotation for a list of cells
         virtual void updateCells(const polyMesh&, const labelList&)
-        {
-            // do nothing
-        }
+        {}
 
         //- Return local-to-global transformation tensor
         virtual const tensor& R() const
diff --git a/src/meshTools/coordinateSystems/coordinateRotation/axesRotation.H b/src/meshTools/coordinateSystems/coordinateRotation/axesRotation.H
index 945a728cc00..35946706797 100644
--- a/src/meshTools/coordinateSystems/coordinateRotation/axesRotation.H
+++ b/src/meshTools/coordinateSystems/coordinateRotation/axesRotation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -138,9 +138,7 @@ public:
 
         //- Update the rotation for a list of cells
         virtual void updateCells(const polyMesh&, const labelList&)
-        {
-            // Do nothing
-        }
+        {}
 
         //- Return local-to-global transformation tensor
         virtual const tensor& R() const
diff --git a/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C b/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C
index 02583cd7d76..bbdb866f94f 100644
--- a/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C
+++ b/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -325,7 +325,6 @@ bool Foam::regionCoupledBase::order
     rotation.setSize(pp.size());
     rotation = 0;
 
-    // do nothing
     return false;
 }
 
diff --git a/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModel.C b/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModel.C
index 61f5502341e..8d818996119 100644
--- a/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModel.C
+++ b/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,9 +43,7 @@ defineRunTimeSelectionTable(pyrolysisModel, dictionary);
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
 void pyrolysisModel::readPyrolysisControls()
-{
-    // do nothing
-}
+{}
 
 
 bool pyrolysisModel::read()
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
index 6d1e2ee2dd5..b2cd87b200e 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -138,7 +138,7 @@ void Foam::filmPyrolysisTemperatureCoupledFvPatchScalarField::updateCoeffs()
 
     if (!filmOk || !pyrOk)
     {
-        // do nothing on construction - film model doesn't exist yet
+        // Do nothing on construction - film model doesn't exist yet
         return;
     }
 
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
index 8bf2ea9908f..b88f3d57d8b 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -138,7 +138,7 @@ void Foam::filmPyrolysisVelocityCoupledFvPatchVectorField::updateCoeffs()
 
     if (!foundFilm || !foundPyrolysis)
     {
-        // do nothing on construction - film model doesn't exist yet
+        // Do nothing on construction - film model doesn't exist yet
         return;
     }
 
@@ -172,9 +172,7 @@ void Foam::filmPyrolysisVelocityCoupledFvPatchVectorField::updateCoeffs()
         db().lookupObject<surfaceScalarField>(phiName_);
 
     if (phi.dimensions() == dimVelocity*dimArea)
-    {
-        // do nothing
-    }
+    {}
     else if (phi.dimensions() == dimDensity*dimVelocity*dimArea)
     {
         const fvPatchField<scalar>& rhop =
diff --git a/src/regionModels/regionModel/regionModel/regionModel.C b/src/regionModels/regionModel/regionModel/regionModel.C
index 31a9ff533b6..76b37cca811 100644
--- a/src/regionModels/regionModel/regionModel/regionModel.C
+++ b/src/regionModels/regionModel/regionModel/regionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -547,9 +547,7 @@ void Foam::regionModels::regionModel::preEvolveRegion()
 
 
 void Foam::regionModels::regionModel::evolveRegion()
-{
-    // do nothing
-}
+{}
 
 
 void Foam::regionModels::regionModel::postEvolveRegion()
@@ -559,9 +557,7 @@ void Foam::regionModels::regionModel::postEvolveRegion()
 
 
 void Foam::regionModels::regionModel::info()
-{
-    // do nothing
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
index 121ab4a3e92..9aa69fc37bf 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,9 +83,7 @@ Foam::regionModels::regionModelFunctionObject::~regionModelFunctionObject()
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 void Foam::regionModels::regionModelFunctionObject::preEvolveRegion()
-{
-    // do nothing
-}
+{}
 
 
 void Foam::regionModels::regionModelFunctionObject::postEvolveRegion()
@@ -98,9 +96,7 @@ void Foam::regionModels::regionModelFunctionObject::postEvolveRegion()
 
 
 void Foam::regionModels::regionModelFunctionObject::write() const
-{
-    // do nothing
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C
index d0a2222ef1b..d265d0255c5 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -146,7 +146,7 @@ void alphatFilmWallFunctionFvPatchScalarField::updateCoeffs()
 
     if (!foundFilm)
     {
-        // do nothing on construction - film model doesn't exist yet
+        // Do nothing on construction - film model doesn't exist yet
         return;
     }
 
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C
index d9b5a0cd2a9..9543b6d9a2d 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,7 +58,7 @@ tmp<scalarField> nutkFilmWallFunctionFvPatchScalarField::calcUTau
 
     if (!foundFilm)
     {
-        // do nothing on construction - film model doesn't exist yet
+        // Do nothing on construction - film model doesn't exist yet
         return tuTau;
     }
 
diff --git a/src/regionModels/surfaceFilmModels/noFilm/noFilm.C b/src/regionModels/surfaceFilmModels/noFilm/noFilm.C
index d4f5d8781ea..65a775bd946 100644
--- a/src/regionModels/surfaceFilmModels/noFilm/noFilm.C
+++ b/src/regionModels/surfaceFilmModels/noFilm/noFilm.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,9 +89,7 @@ void noFilm::addSources
     const scalar,
     const scalar
 )
-{
-    // do nothing
-}
+{}
 
 
 const volScalarField& noFilm::delta() const
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
index fea96634771..188c12d06b9 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,9 +118,7 @@ tmp<volScalarField> laminar::mut() const
 
 
 void laminar::correct()
-{
-    // do nothing
-}
+{}
 
 
 tmp<fvVectorMatrix> laminar::Su(volVectorField& U) const
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
index e46dd872e4a..1adcf93ae0e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,9 +68,7 @@ noRadiation::~noRadiation()
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
 void noRadiation::correct()
-{
-    // do nothing
-}
+{}
 
 
 tmp<volScalarField> noRadiation::Shs()
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
index 78769a9bdcb..fb569694d85 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -69,9 +69,7 @@ constantHeatTransfer::~constantHeatTransfer()
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
 void constantHeatTransfer::correct()
-{
-    // do nothing
-}
+{}
 
 
 tmp<volScalarField> constantHeatTransfer::h() const
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
index bb9e5b9ccd7..28122810d47 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,9 +73,7 @@ void noPhaseChange::correctModel
     scalarField&,
     scalarField&
 )
-{
-    // do nothing
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C
index 3aae3999bc1..1dd17e8d3de 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,9 +37,7 @@ namespace Foam
 // * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
 
 void Foam::basicChemistryModel::correct()
-{
-    // do nothing
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-- 
GitLab


From d4aba02652bf237de9de0828f8a16e8f19140a93 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 26 Jan 2017 17:48:31 +0000
Subject: [PATCH 051/277] combustionModels: Minor cleanup

---
 src/combustionModels/PaSR/PaSR.C                 | 9 ++++++---
 src/combustionModels/PaSR/PaSR.H                 | 9 +++++----
 src/combustionModels/noCombustion/noCombustion.C | 8 +++-----
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/combustionModels/PaSR/PaSR.C b/src/combustionModels/PaSR/PaSR.C
index 6bb51755d3f..6358104a9b7 100644
--- a/src/combustionModels/PaSR/PaSR.C
+++ b/src/combustionModels/PaSR/PaSR.C
@@ -42,14 +42,14 @@ Foam::combustionModels::PaSR<Type>::PaSR
     (
         IOobject
         (
-            IOobject::groupName("PaSR:kappa", phaseName),
+            IOobject::groupName(typeName + ":kappa", phaseName),
             mesh.time().timeName(),
             mesh,
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
         mesh,
-        dimensionedScalar("kappa", dimless, 0.0)
+        dimensionedScalar("kappa", dimless, 0)
     )
 {}
 
@@ -72,10 +72,13 @@ void Foam::combustionModels::PaSR<Type>::correct()
 
         tmp<volScalarField> tepsilon(this->turbulence().epsilon());
         const scalarField& epsilon = tepsilon();
+
         tmp<volScalarField> tmuEff(this->turbulence().muEff());
         const scalarField& muEff = tmuEff();
+
         tmp<volScalarField> ttc(this->tc());
         const scalarField& tc = ttc();
+
         tmp<volScalarField> trho(this->rho());
         const scalarField& rho = trho();
 
@@ -113,7 +116,7 @@ Foam::combustionModels::PaSR<Type>::Qdot() const
     (
         new volScalarField
         (
-            IOobject::groupName("PaSR:dQ", this->phaseName_),
+            IOobject::groupName(typeName + ":Qdot", this->phaseName_),
             kappa_*laminar<Type>::Qdot()
         )
     );
diff --git a/src/combustionModels/PaSR/PaSR.H b/src/combustionModels/PaSR/PaSR.H
index 067f788b97c..480f4ce1972 100644
--- a/src/combustionModels/PaSR/PaSR.H
+++ b/src/combustionModels/PaSR/PaSR.H
@@ -25,10 +25,11 @@ Class
     Foam::combustionModels::PaSR
 
 Description
-    Partially stirred reactor combustion model.  The model calculates a finite
-    rate, based on both turbulence and chemistry time scales.  Depending on
-    mesh resolution, the Cmix parameter can be used to scale the turbulence
-    mixing time scale.
+    Partially stirred reactor turbulent combustion model.
+
+    This model calculates a finite rate, based on both turbulence and chemistry
+    time scales.  Depending on mesh resolution, the Cmix parameter can be used
+    to scale the turbulence mixing time scale.
 
 SourceFiles
     PaSR.C
diff --git a/src/combustionModels/noCombustion/noCombustion.C b/src/combustionModels/noCombustion/noCombustion.C
index 190459f5ae2..4101ed61cae 100644
--- a/src/combustionModels/noCombustion/noCombustion.C
+++ b/src/combustionModels/noCombustion/noCombustion.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,9 +52,7 @@ Foam::combustionModels::noCombustion<CombThermoType>::~noCombustion()
 
 template<class CombThermoType>
 void Foam::combustionModels::noCombustion<CombThermoType>::correct()
-{
-//  Do Nothing
-}
+{}
 
 
 template<class CombThermoType>
@@ -83,7 +81,7 @@ Foam::combustionModels::noCombustion<CombThermoType>::Qdot() const
         (
             IOobject
             (
-                IOobject::groupName("Qdot", this->phaseName_),
+                IOobject::groupName(typeName + ":Qdot", this->phaseName_),
                 this->mesh().time().timeName(),
                 this->mesh(),
                 IOobject::NO_READ,
-- 
GitLab


From 7a2eb638240df4c8a30c8ab9f97e9aa65e3f991d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 26 Jan 2017 20:18:50 +0000
Subject: [PATCH 052/277] Corrected spelling mistake

---
 bin/Co                                                      | 4 ++--
 bin/Lambda2                                                 | 2 +-
 bin/Mach                                                    | 4 ++--
 bin/Pe                                                      | 4 ++--
 bin/Q                                                       | 2 +-
 bin/R                                                       | 2 +-
 bin/createTurbulenceFields                                  | 4 ++--
 bin/enstrophy                                               | 2 +-
 bin/execFlowFunctionObjects                                 | 4 ++--
 bin/flowType                                                | 2 +-
 bin/foamCalc                                                | 4 ++--
 bin/foamDebugSwitches                                       | 4 ++--
 bin/foamGraphExecTime                                       | 4 ++--
 bin/foamGraphResKE                                          | 4 ++--
 bin/foamGraphResUVWP                                        | 4 ++--
 bin/patchAverage                                            | 4 ++--
 bin/patchIntegrate                                          | 4 ++--
 bin/probeLocations                                          | 4 ++--
 bin/ptot                                                    | 4 ++--
 bin/sample                                                  | 4 ++--
 bin/streamFunction                                          | 2 +-
 bin/stressComponents                                        | 2 +-
 bin/{supercededByPostProcess => supersededByPostProcess}    | 6 +++---
 ...dedByPostProcessOption => supersededByPostProcessOption} | 6 +++---
 bin/vorticity                                               | 2 +-
 bin/wallGradU                                               | 2 +-
 bin/wallHeatFlux                                            | 2 +-
 bin/wallShearStress                                         | 2 +-
 bin/wdot                                                    | 2 +-
 bin/writeCellCentres                                        | 2 +-
 bin/yPlus                                                   | 2 +-
 31 files changed, 50 insertions(+), 50 deletions(-)
 rename bin/{supercededByPostProcess => supersededByPostProcess} (88%)
 rename bin/{supercededByPostProcessOption => supersededByPostProcessOption} (90%)

diff --git a/bin/Co b/bin/Co
index a340dbcc0ba..1941e269dbf 100755
--- a/bin/Co
+++ b/bin/Co
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the -postProcess solver option:"
+echo $Script "has been superseded by the -postProcess solver option:"
 echo "<solverName> -func CourantNo"
 echo "e.g."
 echo "pimpleFoam -postProcess -func CourantNo"
diff --git a/bin/Lambda2 b/bin/Lambda2
index 7b00da8e40e..649dcf40880 120000
--- a/bin/Lambda2
+++ b/bin/Lambda2
@@ -1 +1 @@
-supercededByPostProcess
\ No newline at end of file
+supersededByPostProcess
\ No newline at end of file
diff --git a/bin/Mach b/bin/Mach
index 85f5b2848ae..63b608f20b7 100755
--- a/bin/Mach
+++ b/bin/Mach
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the -postProcess solver option:"
+echo $Script "has been superseded by the -postProcess solver option:"
 echo "<solverName> -func MachNo"
 echo "e.g."
 echo "sonicFoam -postProcess -func MachNo"
diff --git a/bin/Pe b/bin/Pe
index 6313220895c..8981479078a 100755
--- a/bin/Pe
+++ b/bin/Pe
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the -postProcess solver option:"
+echo $Script "has been superseded by the -postProcess solver option:"
 echo "<solverName> -func PecletNo"
 echo "e.g."
 echo "pimpleFoam -postProcess -func PecletNo"
diff --git a/bin/Q b/bin/Q
index 7b00da8e40e..649dcf40880 120000
--- a/bin/Q
+++ b/bin/Q
@@ -1 +1 @@
-supercededByPostProcess
\ No newline at end of file
+supersededByPostProcess
\ No newline at end of file
diff --git a/bin/R b/bin/R
index ff6b4704c67..26a1bb7c998 120000
--- a/bin/R
+++ b/bin/R
@@ -1 +1 @@
-supercededByPostProcessOption
\ No newline at end of file
+supersededByPostProcessOption
\ No newline at end of file
diff --git a/bin/createTurbulenceFields b/bin/createTurbulenceFields
index 0c0eaa9db66..432fd697788 100755
--- a/bin/createTurbulenceFields
+++ b/bin/createTurbulenceFields
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -32,7 +32,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the \
+echo $Script "has been superseded by the \
 '-postProcess' solver command-line option, e.g."
 
 echo "simpleFoam -postProcess -func 'turbulenceFields(R, omega)'"
diff --git a/bin/enstrophy b/bin/enstrophy
index 7b00da8e40e..649dcf40880 120000
--- a/bin/enstrophy
+++ b/bin/enstrophy
@@ -1 +1 @@
-supercededByPostProcess
\ No newline at end of file
+supersededByPostProcess
\ No newline at end of file
diff --git a/bin/execFlowFunctionObjects b/bin/execFlowFunctionObjects
index 79e41175277..d4e475df470 100755
--- a/bin/execFlowFunctionObjects
+++ b/bin/execFlowFunctionObjects
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #
 #------------------------------------------------------------------------------
 
-echo "execFlowFunctionObjects has been superceded by the \
+echo "execFlowFunctionObjects has been superseded by the \
 '-postProcess' solver command-line option, e.g."
 
 echo "simpleFoam -help -postProcess"
diff --git a/bin/flowType b/bin/flowType
index 7b00da8e40e..649dcf40880 120000
--- a/bin/flowType
+++ b/bin/flowType
@@ -1 +1 @@
-supercededByPostProcess
\ No newline at end of file
+supersededByPostProcess
\ No newline at end of file
diff --git a/bin/foamCalc b/bin/foamCalc
index 2eac41bce7d..3651e36e8cc 100755
--- a/bin/foamCalc
+++ b/bin/foamCalc
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -30,7 +30,7 @@
 #
 #------------------------------------------------------------------------------
 
-echo "foamCalc has been superceded by the postProcess utility:"
+echo "foamCalc has been superseded by the postProcess utility:"
 echo "    postProcess -help"
 postProcess -help
 
diff --git a/bin/foamDebugSwitches b/bin/foamDebugSwitches
index a8b1a6f6706..736bc0d6607 100755
--- a/bin/foamDebugSwitches
+++ b/bin/foamDebugSwitches
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the foamList utility:"
+echo $Script "has been superseded by the foamList utility:"
 echo "foamList -debug"
 
 #------------------------------------------------------------------------------
diff --git a/bin/foamGraphExecTime b/bin/foamGraphExecTime
index 73bd8d56334..5bacabe4a13 100755
--- a/bin/foamGraphExecTime
+++ b/bin/foamGraphExecTime
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -29,7 +29,7 @@
 #     Deprecated script extract the 'ExecutionTime' for each time-step from a
 #     log file for graphing.
 #
-#     Superceded by the more general foamLog script.
+#     Superseded by the more general foamLog script.
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
diff --git a/bin/foamGraphResKE b/bin/foamGraphResKE
index 57e936b457e..e023c71090e 100755
--- a/bin/foamGraphResKE
+++ b/bin/foamGraphResKE
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -29,7 +29,7 @@
 #     Deprecated script extract initial turbulence residuals for each time-step
 #     from a log file for graphing.
 #
-#     Superceded by the more general foamLog script.
+#     Superseded by the more general foamLog script.
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
diff --git a/bin/foamGraphResUVWP b/bin/foamGraphResUVWP
index 580db29f763..8f8fcaccd3e 100755
--- a/bin/foamGraphResUVWP
+++ b/bin/foamGraphResUVWP
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -29,7 +29,7 @@
 #     Deprecated script extract initial velocity and pressure residuals for each
 #     time-step from a log file for graphing.
 #
-#     Superceded by the more general foamLog script.
+#     Superseded by the more general foamLog script.
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
diff --git a/bin/patchAverage b/bin/patchAverage
index d8d4600a1a3..784186dacf1 100755
--- a/bin/patchAverage
+++ b/bin/patchAverage
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "    postProcess -func '"$Script"(name=inlet,p)'"
 
 #------------------------------------------------------------------------------
diff --git a/bin/patchIntegrate b/bin/patchIntegrate
index 7ea9d142d5d..10f3842ce31 100755
--- a/bin/patchIntegrate
+++ b/bin/patchIntegrate
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "    postProcess -func '"$Script"(name=inlet,p)'"
 
 #------------------------------------------------------------------------------
diff --git a/bin/probeLocations b/bin/probeLocations
index 352604ed282..858604ad425 100755
--- a/bin/probeLocations
+++ b/bin/probeLocations
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "    postProcess -func probes"
 echo "or"
 echo "    postProcess -func 'probes(p, U)'"
diff --git a/bin/ptot b/bin/ptot
index b76b3f4400a..2dad53c0d43 100755
--- a/bin/ptot
+++ b/bin/ptot
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "    postProcess -func 'totalPressureIncompressible(U,p)'"
 echo "or"
 echo "    postProcess -func 'totalPressureCompressible(rho,U,p)'"
diff --git a/bin/sample b/bin/sample
index e96d79a7f67..cb868992efc 100755
--- a/bin/sample
+++ b/bin/sample
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "    postProcess -func $Script"
 echo
 echo "To re-use existing 'sampleDict' files simply add the following entries:"
diff --git a/bin/streamFunction b/bin/streamFunction
index 7b00da8e40e..649dcf40880 120000
--- a/bin/streamFunction
+++ b/bin/streamFunction
@@ -1 +1 @@
-supercededByPostProcess
\ No newline at end of file
+supersededByPostProcess
\ No newline at end of file
diff --git a/bin/stressComponents b/bin/stressComponents
index d325b6f100b..45888e25642 100755
--- a/bin/stressComponents
+++ b/bin/stressComponents
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the -postProcess solver option:"
+echo $Script "has been superseded by the -postProcess solver option:"
 echo "<solverName> -funcs '(R components(turbulenceProperties:R))'"
 echo "e.g."
 echo "simpleFoam -postProcess -funcs '(R components(turbulenceProperties:R))'"
diff --git a/bin/supercededByPostProcess b/bin/supersededByPostProcess
similarity index 88%
rename from bin/supercededByPostProcess
rename to bin/supersededByPostProcess
index 25df27f5ce6..193c5163f90 100755
--- a/bin/supercededByPostProcess
+++ b/bin/supersededByPostProcess
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -23,7 +23,7 @@
 #     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 #
 # Script
-#     supercededByPostProcess
+#     supersededByPostProcess
 #
 # Description
 #     Script to suggest using the new "postProcess" utility.
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "    postProcess -func" $Script
 
 #------------------------------------------------------------------------------
diff --git a/bin/supercededByPostProcessOption b/bin/supersededByPostProcessOption
similarity index 90%
rename from bin/supercededByPostProcessOption
rename to bin/supersededByPostProcessOption
index 4d44ffc908f..168693459cc 100755
--- a/bin/supercededByPostProcessOption
+++ b/bin/supersededByPostProcessOption
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -23,7 +23,7 @@
 #     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 #
 # Script
-#     supercededByPostProcessOption
+#     supersededByPostProcessOption
 #
 # Description
 #     Replacement script to suggest using the new "-postProcess"
@@ -32,7 +32,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the \
+echo $Script "has been superseded by the \
 '-postProcess' solver command-line option, e.g."
 
 echo "simpleFoam -postProcess -func" $Script
diff --git a/bin/vorticity b/bin/vorticity
index 7b00da8e40e..649dcf40880 120000
--- a/bin/vorticity
+++ b/bin/vorticity
@@ -1 +1 @@
-supercededByPostProcess
\ No newline at end of file
+supersededByPostProcess
\ No newline at end of file
diff --git a/bin/wallGradU b/bin/wallGradU
index ec4588a9be5..c44ed73ff82 100755
--- a/bin/wallGradU
+++ b/bin/wallGradU
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "    postProcess -func 'grad(U)'"
 
 #------------------------------------------------------------------------------
diff --git a/bin/wallHeatFlux b/bin/wallHeatFlux
index ff6b4704c67..26a1bb7c998 120000
--- a/bin/wallHeatFlux
+++ b/bin/wallHeatFlux
@@ -1 +1 @@
-supercededByPostProcessOption
\ No newline at end of file
+supersededByPostProcessOption
\ No newline at end of file
diff --git a/bin/wallShearStress b/bin/wallShearStress
index ff6b4704c67..26a1bb7c998 120000
--- a/bin/wallShearStress
+++ b/bin/wallShearStress
@@ -1 +1 @@
-supercededByPostProcessOption
\ No newline at end of file
+supersededByPostProcessOption
\ No newline at end of file
diff --git a/bin/wdot b/bin/wdot
index 8e66e1cadf3..d569cbfe6f5 100755
--- a/bin/wdot
+++ b/bin/wdot
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
-echo $Script "has been superceded by the postProcess utility:"
+echo $Script "has been superseded by the postProcess utility:"
 echo "postProcess -func XiReactionRate"
 
 #------------------------------------------------------------------------------
diff --git a/bin/writeCellCentres b/bin/writeCellCentres
index 7b00da8e40e..649dcf40880 120000
--- a/bin/writeCellCentres
+++ b/bin/writeCellCentres
@@ -1 +1 @@
-supercededByPostProcess
\ No newline at end of file
+supersededByPostProcess
\ No newline at end of file
diff --git a/bin/yPlus b/bin/yPlus
index ff6b4704c67..26a1bb7c998 120000
--- a/bin/yPlus
+++ b/bin/yPlus
@@ -1 +1 @@
-supercededByPostProcessOption
\ No newline at end of file
+supersededByPostProcessOption
\ No newline at end of file
-- 
GitLab


From f92862a42c620d17ba722d35f09d2c0eda083525 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 28 Jan 2017 17:57:13 +0000
Subject: [PATCH 053/277] Allwmake: Provides clearer message when OpenFOAM
 environment is not loaded

Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2424
---
 Allwmake                             |  3 ++-
 applications/Allwmake                |  3 ++-
 src/Allwmake                         |  3 ++-
 wmake/scripts/AllwmakeParseArguments | 11 ++++++++++-
 4 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/Allwmake b/Allwmake
index 67c26d0a3d5..3f6a7523d28 100755
--- a/Allwmake
+++ b/Allwmake
@@ -2,8 +2,9 @@
 cd ${0%/*} || exit 1    # Run from this directory
 
 # Parse arguments for library compilation
-. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
+. wmake/scripts/AllwmakeParseArguments
 
+# Perform various checks
 wmakeCheckPwd "$WM_PROJECT_DIR" || {
     echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR"
     echo "    The environment variables are inconsistent with the installation."
diff --git a/applications/Allwmake b/applications/Allwmake
index d851254b23a..2b725832bf0 100755
--- a/applications/Allwmake
+++ b/applications/Allwmake
@@ -2,8 +2,9 @@
 cd ${0%/*} || exit 1    # Run from this directory
 
 # Parse arguments for library compilation
-. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
+. ../wmake/scripts/AllwmakeParseArguments
 
+# Perform various checks
 wmakeCheckPwd "$WM_PROJECT_DIR/applications" || {
     echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR/applications"
     echo "    The environment variables are inconsistent with the installation."
diff --git a/src/Allwmake b/src/Allwmake
index 5e6eedf3fcc..29d16a15288 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -2,8 +2,9 @@
 cd ${0%/*} || exit 1    # Run from this directory
 
 # Parse arguments for library compilation
-. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
+. ../wmake/scripts/AllwmakeParseArguments
 
+# Perform various checks
 wmakeCheckPwd "$WM_PROJECT_DIR/src" || {
     echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR/src"
     echo "    The environment variables are inconsistent with the installation."
diff --git a/wmake/scripts/AllwmakeParseArguments b/wmake/scripts/AllwmakeParseArguments
index a985064effb..0736876adf0 100644
--- a/wmake/scripts/AllwmakeParseArguments
+++ b/wmake/scripts/AllwmakeParseArguments
@@ -2,7 +2,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -34,6 +34,15 @@
 #------------------------------------------------------------------------------
 Script=${0##*/}
 
+if [ -z "$WM_PROJECT_DIR" ]
+then
+    echo "$Script error: The OpenFOAM environment is not set."
+    echo "    Check the OpenFOAM entries in your dot-files and source them."
+    echo "    If in doubt, please read:"
+    echo "       http://openfoam.org/download/source/setting-environment"
+    exit 1
+fi
+
 usage() {
     exec 1>&2
     while [ "$#" -ge 1 ]; do echo "$1"; shift; done
-- 
GitLab


From 1d211874aaf5d80a83ddc853af618700eb6249c3 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 28 Jan 2017 17:59:34 +0000
Subject: [PATCH 054/277] functionObjects::streamLine,wallBoundedStreamLine:
 Removed outdated check for 'UName'

Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2444
---
 .../field/streamLine/streamLine.C             | 19 ++---------------
 .../field/streamLine/streamLine.H             |  6 +++++-
 .../wallBoundedStreamLine.C                   | 21 ++-----------------
 3 files changed, 9 insertions(+), 37 deletions(-)

diff --git a/src/functionObjects/field/streamLine/streamLine.C b/src/functionObjects/field/streamLine/streamLine.C
index 252b4d600f2..0c66a5fce0e 100644
--- a/src/functionObjects/field/streamLine/streamLine.C
+++ b/src/functionObjects/field/streamLine/streamLine.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -311,22 +311,7 @@ bool Foam::functionObjects::streamLine::read(const dictionary& dict)
     Info<< type() << " " << name() << ":" << nl;
 
     dict.lookup("fields") >> fields_;
-    if (dict.found("U"))
-    {
-        dict.lookup("U") >> UName_;
-    }
-    else
-    {
-        UName_ = "U";
-        if (dict.found("U"))
-        {
-            IOWarningInFunction(dict)
-                << "Using deprecated entry \"U\"."
-                << " Please use \"UName\" instead."
-                << endl;
-            dict.lookup("U") >> UName_;
-        }
-    }
+    dict.lookup("U") >> UName_;
 
     if (findIndex(fields_, UName_) == -1)
     {
diff --git a/src/functionObjects/field/streamLine/streamLine.H b/src/functionObjects/field/streamLine/streamLine.H
index 008036b2891..7c0995e69f8 100644
--- a/src/functionObjects/field/streamLine/streamLine.H
+++ b/src/functionObjects/field/streamLine/streamLine.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,16 +41,20 @@ Description
         writeControl    writeTime;
 
         setFormat       vtk;
+        U               U;
         trackForward    yes;
+
         fields
         (
             U
             p
         );
+
         lifeTime        10000;
         trackLength     1e-3;
         nSubCycle       5;
         cloudName       particleTracks;
+
         seedSampleSet   uniform;
         uniformCoeffs
         {
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
index e918fcf9707..7fd47295f1f 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -427,24 +427,7 @@ bool Foam::functionObjects::wallBoundedStreamLine::read(const dictionary& dict)
     Info<< type() << " " << name() << ":" << nl;
 
     dict.lookup("fields") >> fields_;
-    if (dict.found("U"))
-    {
-        dict.lookup("U") >> UName_;
-    }
-    else
-    {
-        UName_ = "U";
-        if (dict.found("U"))
-        {
-            IOWarningInFunction
-            (
-                dict
-            )   << "Using deprecated entry \"U\"."
-                << " Please use \"UName\" instead."
-                << endl;
-            dict.lookup("U") >> UName_;
-        }
-    }
+    dict.lookup("U") >> UName_;
 
     if (findIndex(fields_, UName_) == -1)
     {
-- 
GitLab


From 70ac064f21f73581673488b8a58f3c65a00d6e24 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 28 Jan 2017 18:01:11 +0000
Subject: [PATCH 055/277] codedFunctionObject: Updated documentation

Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2441
---
 .../codedFunctionObject/codedFunctionObject.C | 12 +++++++++-
 .../codedFunctionObject/codedFunctionObject.H | 24 ++++++++++---------
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
index c676703e9da..16a11b154a8 100644
--- a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
+++ b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -284,6 +284,16 @@ bool Foam::codedFunctionObject::read(const dictionary& dict)
         );
     }
 
+    if(!dataPtr && !readPtr && !execPtr && !writePtr && !endPtr)
+    {
+        IOWarningInFunction
+        (
+            dict
+        )   << "No critical \"code\" prefixed keywords were found."
+            << " Please check the code documentation for more details."
+            << nl << endl;
+    }
+
     updateLibrary(name_);
     return redirectFunctionObject().read(dict);
 }
diff --git a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
index e57e2418024..bc949c92a34 100644
--- a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
+++ b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,16 +30,18 @@ Group
 Description
     Provides a general interface to enable dynamic code compilation.
 
-    The entries are
-        codeInclude : include files
-        codeOptions : include paths; inserted into EXE_INC in Make/options
-        codeLibs    : link line; inserted into LIB_LIBS in Make/options
-        codeData    : c++; local member data (null constructed);
-        localCode   : c++; local static functions
-        codeRead    : c++; upon functionObject::read();
-        codeExecute : c++;upon functionObject::execute();
-        codeWrite   : c++; upon functionObject::write()
-        codeEnd     : c++; upon functionObject::end();
+    The entries are:
+    \plaintable
+       codeInclude | include files
+       codeOptions | include paths; inserted into EXE_INC in Make/options
+       codeLibs    | link line; inserted into LIB_LIBS in Make/options
+       codeData    | c++; local member data (null constructed);
+       localCode   | c++; local static functions;
+       codeRead    | c++; upon functionObject::read();
+       codeExecute | c++; upon functionObject::execute();
+       codeWrite   | c++; upon functionObject::write()
+       codeEnd     | c++; upon functionObject::end();
+    \endplaintable
 
     Example of function object specification:
     \verbatim
-- 
GitLab


From 9812d957c9ae91e40f1d207ce54daea66b7db50e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 30 Jan 2017 16:37:27 +0000
Subject: [PATCH 056/277] ThermalPhaseChangePhaseSystem: Improved robustness

Patch contributed by Juho Peltola, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2443
---
 .../ThermalPhaseChangePhaseSystem.C           | 59 ++++++++++---------
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C
index b33289a0b73..4335bace8a9 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/ThermalPhaseChangePhaseSystem/ThermalPhaseChangePhaseSystem.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -375,6 +375,18 @@ void Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctThermo()
         volScalarField hef1(phase1.thermo().he(phase1.thermo().p(), Tf));
         volScalarField hef2(phase2.thermo().he(phase2.thermo().p(), Tf));
 
+        volScalarField L
+        (
+            min
+            (
+                (pos(iDmdt)*he2 + neg(iDmdt)*hef2)
+              - (neg(iDmdt)*he1 + pos(iDmdt)*hef1),
+                0.3*mag(hef2 - hef1)
+            )
+        );
+
+        volScalarField iDmdtNew(iDmdt);
+
         if (massTransfer_ )
         {
             volScalarField H1
@@ -389,28 +401,13 @@ void Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctThermo()
 
             Tf = saturationModel_->Tsat(phase1.thermo().p());
 
-            scalar iDmdtRelax(this->mesh().fieldRelaxationFactor("iDmdt"));
+            iDmdtNew =
+                (H1*(Tf - T1) + H2*(Tf - T2))/L;
 
-            iDmdt =
-                (1 - iDmdtRelax)*iDmdt
-              + iDmdtRelax*(H1*(Tf - T1) + H2*(Tf - T2))
-               /min
-                (
-                    (pos(iDmdt)*he2 + neg(iDmdt)*hef2)
-                  - (neg(iDmdt)*he1 + pos(iDmdt)*hef1),
-                    0.3*mag(hef2 - hef1)
-                );
-
-            Info<< "iDmdt." << pair.name()
-                << ": min = " << min(iDmdt.primitiveField())
-                << ", mean = " << average(iDmdt.primitiveField())
-                << ", max = " << max(iDmdt.primitiveField())
-                << ", integral = " << fvc::domainIntegrate(iDmdt).value()
-                << endl;
         }
         else
         {
-            iDmdt == dimensionedScalar("0", dmdt.dimensions(), 0);
+            iDmdtNew == dimensionedScalar("0",dmdt.dimensions(), 0);
         }
 
         volScalarField H1(this->heatTransferModels_[pair][pair.first()]->K());
@@ -423,16 +420,7 @@ void Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctThermo()
         H2.boundaryFieldRef() =
             max(H2.boundaryField(), phase2.boundaryField()*HLimit);
 
-        volScalarField mDotL
-        (
-            iDmdt*
-            (
-                (pos(iDmdt)*he2 + neg(iDmdt)*hef2)
-              - (neg(iDmdt)*he1 + pos(iDmdt)*hef1)
-            )
-        );
-
-        Tf = (H1*T1 + H2*T2 + mDotL)/(H1 + H2);
+        Tf = (H1*T1 + H2*T2 + iDmdtNew*L)/(H1 + H2);
 
         Info<< "Tf." << pair.name()
             << ": min = " << min(Tf.primitiveField())
@@ -440,6 +428,19 @@ void Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctThermo()
             << ", max = " << max(Tf.primitiveField())
             << endl;
 
+        scalar iDmdtRelax(this->mesh().fieldRelaxationFactor("iDmdt"));
+        iDmdt = (1 - iDmdtRelax)*iDmdt + iDmdtRelax*iDmdtNew;
+
+        if (massTransfer_ )
+        {
+            Info<< "iDmdt." << pair.name()
+                << ": min = " << min(iDmdt.primitiveField())
+                << ", mean = " << average(iDmdt.primitiveField())
+                << ", max = " << max(iDmdt.primitiveField())
+                << ", integral = " << fvc::domainIntegrate(iDmdt).value()
+                << endl;
+        }
+
         // Accumulate dmdt contributions from boundaries
         volScalarField wDmdt
         (
-- 
GitLab


From d951f7aaaf349a30ab316291224e2ac1ce41884f Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 30 Jan 2017 16:38:58 +0000
Subject: [PATCH 057/277] movingConeTopoFvMesh: M_PI ->
 Foam::constant::mathematical::pi

---
 .../movingConeTopoFvMesh/movingConeTopoFvMesh.C    | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
index eaa569fb973..5e617cdec83 100644
--- a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
+++ b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,6 +30,9 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "meshTools.H"
 #include "OFstream.H"
+#include "mathematicalConstants.H"
+
+using namespace Foam::constant::mathematical;
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -244,7 +247,6 @@ void Foam::movingConeTopoFvMesh::addZonesAndModifiers()
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-// Construct from components
 Foam::movingConeTopoFvMesh::movingConeTopoFvMesh(const IOobject& io)
 :
     topoChangerFvMesh(io),
@@ -267,8 +269,7 @@ Foam::movingConeTopoFvMesh::movingConeTopoFvMesh(const IOobject& io)
     motionVelPeriod_(readScalar(motionDict_.lookup("motionVelPeriod"))),
     curMotionVel_
     (
-        motionVelAmplitude_*
-        Foam::sin(time().value()*M_PI/motionVelPeriod_)
+        motionVelAmplitude_*sin(time().value()*pi/motionVelPeriod_)
     ),
     leftEdge_(readScalar(motionDict_.lookup("leftEdge"))),
     curLeft_(readScalar(motionDict_.lookup("leftObstacleEdge"))),
@@ -323,8 +324,7 @@ bool Foam::movingConeTopoFvMesh::update()
     pointField newPoints;
 
     vector curMotionVel_ =
-        motionVelAmplitude_*
-        Foam::sin(time().value()*M_PI/motionVelPeriod_);
+        motionVelAmplitude_*sin(time().value()*pi/motionVelPeriod_);
 
     Pout<< "time:" << time().value() << " curMotionVel_:" << curMotionVel_
         << " curLeft:" << curLeft_ << " curRight:" << curRight_
@@ -387,6 +387,7 @@ bool Foam::movingConeTopoFvMesh::update()
     // The mesh now contains the cells with zero volume
     Info << "Executing mesh motion" << endl;
     movePoints(newPoints);
+
     //  The mesh now has got non-zero volume cells
 
     curLeft_ = average
@@ -405,7 +406,6 @@ bool Foam::movingConeTopoFvMesh::update()
         ]().localPoints()
     ).x() + SMALL;
 
-
     return true;
 }
 
-- 
GitLab


From 3d315f09f9aadce496c901fd4ee7ab0d9a5e403a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 30 Jan 2017 16:39:36 +0000
Subject: [PATCH 058/277] alphatWallBoilingWallFunctionFvPatchScalarField:
 Resolve restart issue

Patch contributed by Juho Peltola, VTT
Resolves patch request https://bugs.openfoam.org/view.php?id=2446
---
 ...allBoilingWallFunctionFvPatchScalarField.C | 25 +++++++++++++------
 ...allBoilingWallFunctionFvPatchScalarField.H |  4 +--
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
index 60b92573c48..3dfc5e971b7 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,7 +37,9 @@ License
 #include "saturationModel.H"
 #include "wallFvPatch.H"
 #include "uniformDimensionedFields.H"
+#include "mathematicalConstants.H"
 
+using namespace Foam::constant::mathematical;
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -157,6 +159,12 @@ alphatWallBoilingWallFunctionFvPatchScalarField
                 (
                     dict.subDict("departureFreqModel")
                 );
+
+            if (dict.found("dDep"))
+            {
+                dDep_ = scalarField("dDep", dict, p.size());
+            }
+
             break;
         }
     }
@@ -259,10 +267,9 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
     // Lookup the fluid model
     const ThermalPhaseChangePhaseSystem
     <
-        MomentumTransferPhaseSystem
-        <
-            twoPhaseSystem>
-        >& fluid = refCast
+        MomentumTransferPhaseSystem<twoPhaseSystem>
+    >& fluid =
+        refCast
         <
             const ThermalPhaseChangePhaseSystem
             <
@@ -477,9 +484,9 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 const scalarField Ja(rhoLiquidw*Cpw*Tsub/(rhoVaporw*L));
                 const scalarField Al(fLiquid*4.8*exp(-Ja/80));
 
-                const scalarField A2(min(M_PI*sqr(dDep_)*N*Al/4, scalar(1)));
+                const scalarField A2(min(pi*sqr(dDep_)*N*Al/4, scalar(1)));
                 const scalarField A1(max(1 - A2, scalar(1e-4)));
-                const scalarField A2E(min(M_PI*sqr(dDep_)*N*Al/4, scalar(5)));
+                const scalarField A2E(min(pi*sqr(dDep_)*N*Al/4, scalar(5)));
 
                 // Wall evaporation heat flux [kg/s3 = J/m2s]
                 const scalarField Qe((1.0/6.0)*A2E*dDep_*rhoVaporw*fDep*L);
@@ -495,7 +502,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 // Quenching heat transfer coefficient
                 const scalarField hQ
                 (
-                    2*(alphaw*Cpw)*fDep*sqrt((0.8/fDep)/(M_PI*alphaw/rhow))
+                    2*(alphaw*Cpw)*fDep*sqrt((0.8/fDep)/(pi*alphaw/rhow))
                 );
 
                 // Quenching heat flux
@@ -622,11 +629,13 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::write(Ostream& os) const
             os << indent << token::BEGIN_BLOCK << incrIndent << nl;
             departureFreqModel_->write(os);
             os << decrIndent << indent << token::END_BLOCK << nl;
+
             break;
         }
     }
 
     dmdt_.writeEntry("dmdt", os);
+    dDep_.writeEntry("dDep", os);
     alphatConv_.writeEntry("alphatConv", os);
     writeEntry("value", os);
 }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
index d724d986115..2e5303b8ebb 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -269,7 +269,7 @@ public:
 
     // Member functions
 
-        //- Calculate and return the departure diameter field
+        //- Return the departure diameter field
         const scalarField& dDeparture() const
         {
             return dDep_;
-- 
GitLab


From ba4dbeda77aec9f42e61840490e4c9ba857c9f99 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 2 Feb 2017 17:02:59 +0000
Subject: [PATCH 059/277] NamedEnum: Updated to support C++11 scoped
 enumerations

---
 src/OpenFOAM/containers/NamedEnum/NamedEnum.H | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
index 32cb6030228..ed0cb29aa5f 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
+++ b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -113,7 +113,7 @@ public:
         //- Return the name of the given enumeration element
         const char* operator[](const Enum e) const
         {
-            return names[e];
+            return names[int(e)];
         }
 };
 
-- 
GitLab


From 93fbd41785fa50b8e7b4dd3bfa906b3eacb2ed96 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Feb 2017 10:52:35 +0000
Subject: [PATCH 060/277] kOmegaSSTBase: make correctNut(S2, F2) virtual
 kOmegaSSTSato: Change correctNut() to correctNut(S2, F2)

Resolves bug-report https://bugs.openfoam.org/view.php?id=2450
---
 .../RAS/kOmegaSSTSato/kOmegaSSTSato.C            | 16 ++++++++--------
 .../RAS/kOmegaSSTSato/kOmegaSSTSato.H            | 13 +++++++++----
 .../Base/kOmegaSST/kOmegaSSTBase.C               |  2 +-
 .../Base/kOmegaSST/kOmegaSSTBase.H               |  8 ++++++--
 4 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
index 7f0af09be62..505d794a1e5 100644
--- a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
+++ b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -130,8 +130,13 @@ kOmegaSSTSato<BasicTurbulenceModel>::gasTurbulence() const
 
 
 template<class BasicTurbulenceModel>
-void kOmegaSSTSato<BasicTurbulenceModel>::correctNut()
+void kOmegaSSTSato<BasicTurbulenceModel>::correctNut
+(
+    const volScalarField& S2,
+    const volScalarField& F2
+)
 {
+    InfoInFunction;
     const PhaseCompressibleTurbulenceModel<transportModel>& gasTurbulence =
         this->gasTurbulence();
 
@@ -141,12 +146,7 @@ void kOmegaSSTSato<BasicTurbulenceModel>::correctNut()
     );
 
     this->nut_ =
-        this->a1_*this->k_
-       /max
-        (
-            this->a1_*this->omega_,
-            this->F23()*sqrt(2.0)*mag(symm(fvc::grad(this->U_)))
-        )
+        this->a1_*this->k_/max(this->a1_*this->omega_, this->b1_*F2*sqrt(S2))
       + sqr(1 - exp(-yPlus/16.0))
        *Cmub_*gasTurbulence.transport().d()*gasTurbulence.alpha()
        *(mag(this->U_ - gasTurbulence.U()));
diff --git a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H
index 4a95eb1aba6..37fd2a8b4c7 100644
--- a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H
+++ b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,8 +68,8 @@ Description
     to specify the near-wall omega as appropriate.
 
     The blending functions (15) and (16) are not currently used because of the
-    uncertainty in their origin, range of applicability and that is y+ becomes
-    sufficiently small blending u_tau in this manner clearly becomes nonsense.
+    uncertainty in their origin, range of applicability and that as y+ becomes
+    sufficiently small blending u_tau in this manner is clearly nonsense.
 
     The default model coefficients correspond to the following:
     \verbatim
@@ -156,7 +156,12 @@ protected:
 
     // Protected Member Functions
 
-        virtual void correctNut();
+        virtual void correctNut
+        (
+            const volScalarField& S2,
+            const volScalarField& F2
+        );
+
 
 public:
 
diff --git a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
index c6c65b51bcd..8832e2bd346 100644
--- a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
+++ b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
index 72301b67928..4001b77e046 100644
--- a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
+++ b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -215,7 +215,11 @@ protected:
             return blend(F1, gamma1_, gamma2_);
         }
 
-        void correctNut(const volScalarField& S2, const volScalarField& F2);
+        virtual void correctNut
+        (
+            const volScalarField& S2,
+            const volScalarField& F2
+        );
 
         virtual void correctNut();
 
-- 
GitLab


From 74f38251f87e7559d1cd4732bab9db87d1ce1a22 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Feb 2017 11:37:56 +0000
Subject: [PATCH 061/277] kOmegaSSTSato: removed debug message

---
 .../phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C          | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
index 505d794a1e5..1b0d5feb31f 100644
--- a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
+++ b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
@@ -136,7 +136,6 @@ void kOmegaSSTSato<BasicTurbulenceModel>::correctNut
     const volScalarField& F2
 )
 {
-    InfoInFunction;
     const PhaseCompressibleTurbulenceModel<transportModel>& gasTurbulence =
         this->gasTurbulence();
 
-- 
GitLab


From 83787036a93c9ee0947ba1eeae355a9a750d0088 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Feb 2017 14:25:02 +0000
Subject: [PATCH 062/277] functionObjects::streamLine: Reinstated default "U"

---
 src/functionObjects/field/streamLine/streamLine.C | 2 +-
 src/functionObjects/field/streamLine/streamLine.H | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/functionObjects/field/streamLine/streamLine.C b/src/functionObjects/field/streamLine/streamLine.C
index 0c66a5fce0e..2947d0d8014 100644
--- a/src/functionObjects/field/streamLine/streamLine.C
+++ b/src/functionObjects/field/streamLine/streamLine.C
@@ -311,7 +311,7 @@ bool Foam::functionObjects::streamLine::read(const dictionary& dict)
     Info<< type() << " " << name() << ":" << nl;
 
     dict.lookup("fields") >> fields_;
-    dict.lookup("U") >> UName_;
+    UName_ = dict.lookupOrDefault("U", word("U"));
 
     if (findIndex(fields_, UName_) == -1)
     {
diff --git a/src/functionObjects/field/streamLine/streamLine.H b/src/functionObjects/field/streamLine/streamLine.H
index 7c0995e69f8..07a124c481f 100644
--- a/src/functionObjects/field/streamLine/streamLine.H
+++ b/src/functionObjects/field/streamLine/streamLine.H
@@ -72,7 +72,7 @@ Usage
         Property     | Description             | Required    | Default value
         type         | Type name: streamLine   | yes         |
         setFormat    | Output data type        | yes         |
-        U            | Tracking velocity field name | yes    |
+        U            | Tracking velocity field name | no     | U
         fields       | Fields to sample        | yes         |
         lifetime     | Maximum number of particle tracking steps | yes |
         trackLength  | Tracking segment length | no          |
-- 
GitLab


From 78ee6c2abb17713297ce89188c65cb2904c01b1e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Feb 2017 14:27:38 +0000
Subject: [PATCH 063/277] Time: When increasing precision check if the time
 name is unchanged

Patch contributed by Mattijs Janssens
---
 src/OpenFOAM/db/Time/Time.C | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 9a306d7eac4..5738f5f4dda 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -184,6 +184,8 @@ void Foam::Time::setControls()
         int oldPrecision = precision_;
         int requiredPrecision = -1;
         bool found = false;
+        word oldTime(timeName());
+
         for
         (
             precision_ = maxPrecision_;
@@ -194,6 +196,14 @@ void Foam::Time::setControls()
             // Update the time formatting
             setTime(startTime_, 0);
 
+            // Check that the time name has changed otherwise exit loop
+            word newTime(timeName());
+            if (newTime == oldTime)
+            {
+                break;
+            }
+            oldTime = newTime;
+
             // Check the existence of the time directory with the new format
             found = exists(timePath(), false);
 
-- 
GitLab


From 7612b5182807f7c578dab45ccea496f7bb6be4d1 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Feb 2017 14:29:07 +0000
Subject: [PATCH 064/277] lagrangian::NonInertialFrameForce: Use field
 references rather than copies

Patch contributed by Mattijs Janssens
---
 .../NonInertialFrame/NonInertialFrameForce.C          | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/NonInertialFrame/NonInertialFrameForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/NonInertialFrame/NonInertialFrameForce.C
index 9630f242b28..17f57041f43 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/NonInertialFrame/NonInertialFrameForce.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/NonInertialFrame/NonInertialFrameForce.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -121,7 +121,7 @@ void Foam::NonInertialFrameForce<CloudType>::cacheFields(const bool store)
             )
         )
         {
-            uniformDimensionedVectorField W = this->mesh().template
+            const uniformDimensionedVectorField& W = this->mesh().template
                 lookupObject<uniformDimensionedVectorField>(WName_);
 
             W_ = W.value();
@@ -135,7 +135,7 @@ void Foam::NonInertialFrameForce<CloudType>::cacheFields(const bool store)
             )
         )
         {
-            uniformDimensionedVectorField omega = this->mesh().template
+            const uniformDimensionedVectorField& omega = this->mesh().template
                 lookupObject<uniformDimensionedVectorField>(omegaName_);
 
             omega_ = omega.value();
@@ -149,7 +149,8 @@ void Foam::NonInertialFrameForce<CloudType>::cacheFields(const bool store)
             )
         )
         {
-            uniformDimensionedVectorField omegaDot = this->mesh().template
+            const uniformDimensionedVectorField& omegaDot =
+                this->mesh().template
                 lookupObject<uniformDimensionedVectorField>(omegaDotName_);
 
             omegaDot_ = omegaDot.value();
@@ -163,7 +164,7 @@ void Foam::NonInertialFrameForce<CloudType>::cacheFields(const bool store)
             )
         )
         {
-            uniformDimensionedVectorField centreOfRotation =
+            const uniformDimensionedVectorField& centreOfRotation =
                 this->mesh().template
                 lookupObject<uniformDimensionedVectorField>
                 (
-- 
GitLab


From 7a7fa4350df2dbdcd6e81c67c40004189a57acf7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Feb 2017 14:51:04 +0000
Subject: [PATCH 065/277] Time: when "writeFormat" is set to "binary" disallow
 compression

Compressing and decompressing binary files introduces a significant IO overhead
without a providing significant reduction in file-size.
---
 src/OpenFOAM/db/Time/TimeIO.C | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/OpenFOAM/db/Time/TimeIO.C b/src/OpenFOAM/db/Time/TimeIO.C
index 436661040fa..39e88a66d18 100644
--- a/src/OpenFOAM/db/Time/TimeIO.C
+++ b/src/OpenFOAM/db/Time/TimeIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -347,6 +347,20 @@ void Foam::Time::readDict()
         (
             controlDict_.lookup("writeCompression")
         );
+
+        if
+        (
+            writeFormat_ == IOstream::BINARY
+         && writeCompression_ == IOstream::COMPRESSED
+        )
+        {
+            IOWarningInFunction(controlDict_)
+                << "Selecting compressed binary is inefficient and ineffective"
+                   ", resetting to uncompressed binary"
+                << endl;
+
+            writeCompression_ = IOstream::UNCOMPRESSED;
+        }
     }
 
     controlDict_.readIfPresent("graphFormat", graphFormat_);
-- 
GitLab


From 23809f7ae70bec62391839de93a598cc3400e9d8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Feb 2017 18:36:40 +0000
Subject: [PATCH 066/277] PBiCG: Suggest changing to the more robust PBiCGStab
 solver

if convergence is not achieved within the maximum number of iterations.

Sometimes, particularly running in parallel, PBiCG fails to converge or diverges
without warning or obvious cause leaving a solution field containing significant
errors which can cause divergence of the application.  PBiCGStab is more robust
and does not suffer from the problems encountered with PBiCG.
---
 .../matrices/LduMatrix/LduMatrix/LduMatrix.H         |  5 ++++-
 .../matrices/LduMatrix/LduMatrix/LduMatrixSolver.C   |  4 ++--
 .../matrices/lduMatrix/lduMatrix/lduMatrix.C         |  5 ++++-
 .../matrices/lduMatrix/lduMatrix/lduMatrix.H         |  5 ++++-
 .../matrices/lduMatrix/lduMatrix/lduMatrixSolver.C   |  8 ++++----
 .../matrices/lduMatrix/solvers/PBiCG/PBiCG.C         | 12 +++++++++++-
 6 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H
index 1da27f106b6..f96d583b1f2 100644
--- a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H
+++ b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,6 +122,9 @@ public:
             //- Dictionary of controls
             dictionary controlDict_;
 
+            //- Default maximum number of iterations in the solver
+            static const label defaultMaxIter_ = 1000;
+
             //- Maximum number of iterations in the solver
             label maxIter_;
 
diff --git a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C
index 651be6cee28..dd908b91f0a 100644
--- a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C
+++ b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -131,7 +131,7 @@ Foam::LduMatrix<Type, DType, LUType>::solver::solver
 
     controlDict_(solverDict),
 
-    maxIter_(1000),
+    maxIter_(defaultMaxIter_),
     minIter_(0),
     tolerance_(1e-6*pTraits<Type>::one),
     relTol_(Zero)
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
index 11cdf31485f..e9eb25143af 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,6 +35,9 @@ namespace Foam
 }
 
 
+const Foam::label Foam::lduMatrix::solver::defaultMaxIter_ = 1000;
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 Foam::lduMatrix::lduMatrix(const lduMesh& mesh)
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H
index 575916f633e..30ba325a5aa 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -106,6 +106,9 @@ public:
             //- Dictionary of controls
             dictionary controlDict_;
 
+            //- Default maximum number of iterations in the solver
+            static const label defaultMaxIter_;
+
             //- Maximum number of iterations in the solver
             label maxIter_;
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C
index d554375cae3..bc1e134741b 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -157,10 +157,10 @@ Foam::lduMatrix::solver::solver
 
 void Foam::lduMatrix::solver::readControls()
 {
-    maxIter_   = controlDict_.lookupOrDefault<label>("maxIter", 1000);
-    minIter_   = controlDict_.lookupOrDefault<label>("minIter", 0);
+    maxIter_ = controlDict_.lookupOrDefault<label>("maxIter", defaultMaxIter_);
+    minIter_ = controlDict_.lookupOrDefault<label>("minIter", 0);
     tolerance_ = controlDict_.lookupOrDefault<scalar>("tolerance", 1e-6);
-    relTol_    = controlDict_.lookupOrDefault<scalar>("relTol", 0);
+    relTol_ = controlDict_.lookupOrDefault<scalar>("relTol", 0);
 }
 
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
index 54088f550fc..b4e630571f6 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -208,6 +208,16 @@ Foam::solverPerformance Foam::PBiCG::solve
         );
     }
 
+    // Recommend PBiCGStab if PBiCG fails to converge
+    if (solverPerf.nIterations() > max(defaultMaxIter_, maxIter_))
+    {
+        FatalErrorInFunction
+            << "PBiCG has failed to converge within the maximum number"
+               " of iterations " << max(defaultMaxIter_, maxIter_) << nl
+            << "    Please try the more robust PBiCGStab solver."
+            << exit(FatalError);
+    }
+
     return solverPerf;
 }
 
-- 
GitLab


From ddf1268e730940e896de8078176a6f2554cac4f5 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 6 Feb 2017 15:48:11 +0000
Subject: [PATCH 067/277] functionObjects:surfaceFieldValue, volFieldValue:
 Added weightedSum and weighted[Area|Vol]Integrate

Patch contributed by Timo Niemi, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2452
---
 .../surfaceFieldValue/surfaceFieldValue.C     |  8 +++--
 .../surfaceFieldValue/surfaceFieldValue.H     |  8 +++--
 .../surfaceFieldValueTemplates.C              | 28 +++++++++++++++-
 .../fieldValues/volFieldValue/volFieldValue.C |  8 +++--
 .../fieldValues/volFieldValue/volFieldValue.H | 32 +++++++++++--------
 .../volFieldValue/volFieldValueTemplates.C    | 12 ++++++-
 6 files changed, 72 insertions(+), 24 deletions(-)

diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
index b532696e40d..3ac33748e29 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,11 +65,12 @@ template<>
 const char* Foam::NamedEnum
 <
     Foam::functionObjects::fieldValues::surfaceFieldValue::operationType,
-    15
+    17
 >::names[] =
 {
     "none",
     "sum",
+    "weightedSum",
     "sumMag",
     "sumDirection",
     "sumDirectionBalance",
@@ -78,6 +79,7 @@ const char* Foam::NamedEnum
     "areaAverage",
     "weightedAreaAverage",
     "areaIntegrate",
+    "weightedAreaIntegrate",
     "min",
     "max",
     "CoV",
@@ -94,7 +96,7 @@ const Foam::NamedEnum
 const Foam::NamedEnum
 <
     Foam::functionObjects::fieldValues::surfaceFieldValue::operationType,
-    15
+    17
 > Foam::functionObjects::fieldValues::surfaceFieldValue::operationTypeNames_;
 
 
diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H
index 7a58ba56a9a..3c85014755e 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -116,6 +116,7 @@ Usage
     \plaintable
        none          | no operation
        sum           | sum
+       weightedSum   | weighted sum
        sumMag        | sum of component magnitudes
        sumDirection  | sum values which are positive in given direction
        sumDirectionBalance | sum of balance of values in given direction
@@ -124,6 +125,7 @@ Usage
        areaAverage   | area weighted average
        weightedAreaAverage | weighted area average
        areaIntegrate | area integral
+       weightedAreaIntegrate | weighted area integral
        min           | minimum
        max           | maximum
        CoV           | coefficient of variation: standard deviation/mean
@@ -209,6 +211,7 @@ public:
         {
             opNone,
             opSum,
+            opWeightedSum,
             opSumMag,
             opSumDirection,
             opSumDirectionBalance,
@@ -217,6 +220,7 @@ public:
             opAreaAverage,
             opWeightedAreaAverage,
             opAreaIntegrate,
+            opWeightedAreaIntegrate,
             opMin,
             opMax,
             opCoV,
@@ -225,7 +229,7 @@ public:
         };
 
         //- Operation type names
-        static const NamedEnum<operationType, 15> operationTypeNames_;
+        static const NamedEnum<operationType, 17> operationTypeNames_;
 
 
 private:
diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
index cfcd2c2464d..ddb9107f4db 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -141,6 +141,18 @@ processSameTypeValues
             result = sum(values);
             break;
         }
+        case opWeightedSum:
+        {
+            if (weightField.size())
+            {
+                result = sum(weightField*values);
+            }
+            else
+            {
+                result = sum(values);
+            }
+            break;
+        }
         case opSumMag:
         {
             result = sum(cmptMag(values));
@@ -213,6 +225,20 @@ processSameTypeValues
             result = sum(magSf*values);
             break;
         }
+        case opWeightedAreaIntegrate:
+        {
+            const scalarField magSf(mag(Sf));
+
+            if (weightField.size())
+            {
+                result = sum(weightField*magSf*values);
+            }
+            else
+            {
+                result = sum(magSf*values);
+            }
+            break;
+        }
         case opMin:
         {
             result = min(values);
diff --git a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C
index 5f3667e21f9..9383526d33f 100644
--- a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C
+++ b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,17 +48,19 @@ const char*
 Foam::NamedEnum
 <
     Foam::functionObjects::fieldValues::volFieldValue::operationType,
-    11
+    13
 >::names[] =
 {
     "none",
     "sum",
+    "weightedSum",
     "sumMag",
     "average",
     "weightedAverage",
     "volAverage",
     "weightedVolAverage",
     "volIntegrate",
+    "weightedVolIntegrate",
     "min",
     "max",
     "CoV"
@@ -67,7 +69,7 @@ Foam::NamedEnum
 const Foam::NamedEnum
 <
     Foam::functionObjects::fieldValues::volFieldValue::operationType,
-    11
+    13
 > Foam::functionObjects::fieldValues::volFieldValue::operationTypeNames_;
 
 
diff --git a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H
index d8d94b50709..a36597e0947 100644
--- a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H
+++ b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,17 +79,19 @@ Usage
 
     The \c operation is one of:
     \plaintable
-       none               | No operation
-       sum                | Sum
-       sumMag             | Sum of component magnitudes
-       average            | Ensemble average
-       weightedAverage    | Weighted average
-       volAverage         | Volume weighted average
-       weightedVolAverage | Weighted volume average
-       volIntegrate       | Volume integral
-       min                | Minimum
-       max                | Maximum
-       CoV                | Coefficient of variation: standard deviation/mean
+       none                 | No operation
+       sum                  | Sum
+       weightedSum          | Weighted sum
+       sumMag               | Sum of component magnitudes
+       average              | Ensemble average
+       weightedAverage      | Weighted average
+       volAverage           | Volume weighted average
+       weightedVolAverage   | Weighted volume average
+       volIntegrate         | Volume integral
+       weightedVolIntegrate | Weighted volume integral
+       min                  | Minimum
+       max                  | Maximum
+       CoV                  | Coefficient of variation: standard deviation/mean
     \endplaintable
 
 See also
@@ -136,19 +138,21 @@ public:
         {
             opNone,
             opSum,
+            opWeightedSum,
             opSumMag,
             opAverage,
             opWeightedAverage,
             opVolAverage,
             opWeightedVolAverage,
             opVolIntegrate,
+            opWeightedVolIntegrate,
             opMin,
             opMax,
             opCoV
         };
 
         //- Operation type names
-        static const NamedEnum<operationType, 11> operationTypeNames_;
+        static const NamedEnum<operationType, 13> operationTypeNames_;
 
 
 protected:
@@ -158,7 +162,7 @@ protected:
         //- Operation to apply to values
         operationType operation_;
 
-        //- Weight field name - only used for opWeightedAverage mode
+        //- Weight field name - only used for weighted modes
         word weightFieldName_;
 
 
diff --git a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C
index 54b9e2d5287..a23dd1e5f50 100644
--- a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C
+++ b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValueTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -87,6 +87,11 @@ Type Foam::functionObjects::fieldValues::volFieldValue::processValues
             result = gSum(values);
             break;
         }
+        case opWeightedSum:
+        {
+            result = gSum(weightField*values);
+            break;
+        }
         case opSumMag:
         {
             result = gSum(cmptMag(values));
@@ -117,6 +122,11 @@ Type Foam::functionObjects::fieldValues::volFieldValue::processValues
             result = gSum(V*values);
             break;
         }
+        case opWeightedVolIntegrate:
+        {
+            result = gSum(weightField*V*values);
+            break;
+        }
         case opMin:
         {
             result = gMin(values);
-- 
GitLab


From 8264c3b988dd33a8680f5bd947c07376352a219a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 7 Feb 2017 09:59:19 +0000
Subject: [PATCH 068/277] interDyMFoam: Reinstate alphaPhiCorr0 for moving
 meshes without topology change

---
 .../multiphase/interFoam/interDyMFoam/interDyMFoam.C        | 6 +++++-
 .../multiphase/interDyMFoam/RAS/DTCHull/system/fvSolution   | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index f544fcde282..f750308c44f 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -126,7 +126,11 @@ int main(int argc, char *argv[])
                         << " s" << endl;
 
                     // Do not apply previous time-step mesh compression flux
-                    talphaPhiCorr0.clear();
+                    // if the mesh topology changed
+                    if (mesh.topoChanging())
+                    {
+                        talphaPhiCorr0.clear();
+                    }
 
                     gh = (g & mesh.C()) - ghRef;
                     ghf = (g & mesh.Cf()) - ghRef;
diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSolution
index f215226a436..a9167ea8808 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSolution
@@ -41,7 +41,7 @@ solvers
 
         smoother        DIC;
 
-        tolerance       0.1;
+        tolerance       1e-3;
         relTol          0;
     };
 
-- 
GitLab


From 29e83f3958209cab89c8bb67d98ffb069eb64e3e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 7 Feb 2017 18:59:40 +0000
Subject: [PATCH 069/277] compressibleInterFoam: Added support for fvOptions in
 both the U and T equations

---
 .../solvers/multiphase/compressibleInterFoam/TEqn.H      | 9 +++++++--
 .../solvers/multiphase/compressibleInterFoam/UEqn.H      | 6 ++++++
 .../compressibleInterDyMFoam/compressibleInterDyMFoam.C  | 4 +++-
 .../compressibleInterDyMFoam/pEqn.H                      | 4 +---
 .../compressibleInterFoam/compressibleInterFoam.C        | 4 +++-
 .../solvers/multiphase/compressibleInterFoam/pEqn.H      | 4 +---
 6 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
index 13e1feb546e..7bd4ca35688 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
@@ -12,12 +12,17 @@
            alpha1/mixture.thermo1().Cv()
          + alpha2/mixture.thermo2().Cv()
         )
+     ==
+        fvOptions(rho, T)
     );
 
     TEqn.relax();
+
+    fvOptions.constrain(TEqn);
+
     TEqn.solve();
 
-    mixture.correct();
+    fvOptions.correct(T);
 
-    Info<< "min(T) " << min(T).value() << endl;
+    mixture.correct();
 }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
index 44be32aac22..18e947c8a7a 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
@@ -3,10 +3,14 @@
         fvm::ddt(rho, U)
       + fvm::div(rhoPhi, U)
       + turbulence->divDevRhoReff(U)
+     ==
+        fvOptions(rho, U)
     );
 
     UEqn.relax();
 
+    fvOptions.constrain(UEqn);
+
     if (pimple.momentumPredictor())
     {
         solve
@@ -23,5 +27,7 @@
             )
         );
 
+        fvOptions.correct(U);
+
         K = 0.5*magSqr(U);
     }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index 6f7ee7ffcea..157830ae6bb 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,6 +46,7 @@ Description
 #include "twoPhaseMixtureThermo.H"
 #include "turbulentFluidThermoModel.H"
 #include "pimpleControl.H"
+#include "fvOptions.H"
 #include "CorrectPhi.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -60,6 +61,7 @@ int main(int argc, char *argv[])
     #include "initContinuityErrs.H"
     #include "createControl.H"
     #include "createFields.H"
+    #include "createFvOptions.H"
     #include "createUf.H"
     #include "createControls.H"
     #include "CourantNo.H"
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
index fef73aa3659..661cb3a78eb 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
@@ -101,6 +101,7 @@
             U = HbyA
               + rAU*fvc::reconstruct((phig + p_rghEqnIncomp.flux())/rAUf);
             U.correctBoundaryConditions();
+            fvOptions.correct(U);
         }
     }
 
@@ -121,7 +122,4 @@
     p_rgh.correctBoundaryConditions();
 
     K = 0.5*magSqr(U);
-
-    Info<< "max(U) " << max(mag(U)).value() << endl;
-    Info<< "min(p_rgh) " << min(p_rgh).value() << endl;
 }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
index 150cc8bdfdb..8775d0fbd33 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,6 +44,7 @@ Description
 #include "twoPhaseMixtureThermo.H"
 #include "turbulentFluidThermoModel.H"
 #include "pimpleControl.H"
+#include "fvOptions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -57,6 +58,7 @@ int main(int argc, char *argv[])
     #include "createControl.H"
     #include "createTimeControls.H"
     #include "createFields.H"
+    #include "createFvOptions.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
index 78e46f46642..1328b0abd9d 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
@@ -98,6 +98,7 @@
             U = HbyA
               + rAU*fvc::reconstruct((phig + p_rghEqnIncomp.flux())/rAUf);
             U.correctBoundaryConditions();
+            fvOptions.correct(U);
         }
     }
 
@@ -112,7 +113,4 @@
     p_rgh.correctBoundaryConditions();
 
     K = 0.5*magSqr(U);
-
-    Info<< "max(U) " << max(mag(U)).value() << endl;
-    Info<< "min(p_rgh) " << min(p_rgh).value() << endl;
 }
-- 
GitLab


From 5f25843392700145d0b0c0d442769607fc7c3da1 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 7 Feb 2017 19:00:58 +0000
Subject: [PATCH 070/277] porosityModels: Corrected documentation

---
 .../porosityModel/DarcyForchheimer/DarcyForchheimer.H        | 4 ++--
 .../cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H   | 4 ++--
 .../cfdTools/general/porosityModel/powerLaw/powerLaw.H       | 5 ++---
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H b/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H
index 4f1751e1b85..ac0a6871bb3 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H
+++ b/src/finiteVolume/cfdTools/general/porosityModel/DarcyForchheimer/DarcyForchheimer.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::DarcyForchheimer
+    Foam::porosityModels::DarcyForchheimer
 
 Description
     Darcy-Forchheimer law porosity model, given by:
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H b/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H
index 4ccfa87da58..e9ca67327f3 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H
+++ b/src/finiteVolume/cfdTools/general/porosityModel/fixedCoeff/fixedCoeff.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::fixedCoeff
+    Foam::porosityModels::fixedCoeff
 
 Description
     Fixed coefficient form of porosity model
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H
index f17a639e09e..33db437908a 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H
+++ b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::powerLaw
+    Foam::porosityModels::powerLaw
 
 Description
     Power law porosity model, given by:
@@ -37,7 +37,6 @@ Description
         C_1      | model exponent coefficient
     \endvartable
 
-
 SourceFiles
     powerLaw.C
     powerLawTemplates.C
-- 
GitLab


From c5e7f356c928f342cf21f8cd11aa735c713ead6b Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 7 Feb 2017 19:01:34 +0000
Subject: [PATCH 071/277] porosityModel::powerLaw: Added groupName to rho
 lookup to support multiphase

---
 .../general/porosityModel/powerLaw/powerLaw.C | 22 +++++++++++--------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C
index e49e2a410ac..280b0e4ba27 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C
+++ b/src/finiteVolume/cfdTools/general/porosityModel/powerLaw/powerLaw.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -94,14 +94,16 @@ void Foam::porosityModels::powerLaw::correct
     fvVectorMatrix& UEqn
 ) const
 {
-    const vectorField& U = UEqn.psi();
+    const volVectorField& U = UEqn.psi();
     const scalarField& V = mesh_.V();
     scalarField& Udiag = UEqn.diag();
- 
+
     if (UEqn.dimensions() == dimForce)
     {
-        const volScalarField& rho =
-            mesh_.lookupObject<volScalarField>(rhoName_);
+        const volScalarField& rho = mesh_.lookupObject<volScalarField>
+        (
+            IOobject::groupName(rhoName_, U.group())
+        );
 
         apply(Udiag, V, rho, U);
     }
@@ -122,7 +124,7 @@ void Foam::porosityModels::powerLaw::correct
     const vectorField& U = UEqn.psi();
     const scalarField& V = mesh_.V();
     scalarField& Udiag = UEqn.diag();
- 
+
     apply(Udiag, V, rho, U);
 }
 
@@ -133,12 +135,14 @@ void Foam::porosityModels::powerLaw::correct
     volTensorField& AU
 ) const
 {
-    const vectorField& U = UEqn.psi();
+    const volVectorField& U = UEqn.psi();
 
     if (UEqn.dimensions() == dimForce)
     {
-        const volScalarField& rho =
-            mesh_.lookupObject<volScalarField>(rhoName_);
+        const volScalarField& rho = mesh_.lookupObject<volScalarField>
+        (
+            IOobject::groupName(rhoName_, U.group())
+        );
 
         apply(AU, rho, U);
     }
-- 
GitLab


From 974624766fedeb1ae199ad982035cc0053b2d96a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 7 Feb 2017 19:02:30 +0000
Subject: [PATCH 072/277] porosityModels::solidification: New porosity model to
 simulate solidification

Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \rho D(T) U
        \f]

    where
    \vartable
        D(T) | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
---
 src/finiteVolume/Make/files                   |   1 +
 .../solidification/solidification.C           | 163 +++++++++++++
 .../solidification/solidification.H           | 214 ++++++++++++++++++
 .../solidification/solidificationTemplates.C  |  83 +++++++
 4 files changed, 461 insertions(+)
 create mode 100644 src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C
 create mode 100644 src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H
 create mode 100644 src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C

diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files
index d79bbff4e82..2d7fbce1304 100644
--- a/src/finiteVolume/Make/files
+++ b/src/finiteVolume/Make/files
@@ -417,6 +417,7 @@ $(porosity)/porosityModel/IOporosityModelList.C
 $(porosity)/DarcyForchheimer/DarcyForchheimer.C
 $(porosity)/fixedCoeff/fixedCoeff.C
 $(porosity)/powerLaw/powerLaw.C
+$(porosity)/solidification/solidification.C
 
 MRF = $(general)/MRF
 $(MRF)/MRFZone.C
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C
new file mode 100644
index 00000000000..ac60cf0d04c
--- /dev/null
+++ b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C
@@ -0,0 +1,163 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "addToRunTimeSelectionTable.H"
+#include "solidification.H"
+#include "geometricOneField.H"
+#include "fvMatrices.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    namespace porosityModels
+    {
+        defineTypeNameAndDebug(solidification, 0);
+        addToRunTimeSelectionTable(porosityModel, solidification, mesh);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::porosityModels::solidification::solidification
+(
+    const word& name,
+    const word& modelType,
+    const fvMesh& mesh,
+    const dictionary& dict,
+    const word& cellZoneName
+)
+:
+    porosityModel(name, modelType, mesh, dict, cellZoneName),
+    TName_(coeffs_.lookupOrDefault<word>("T", "T")),
+    rhoName_(coeffs_.lookupOrDefault<word>("rho", "rho")),
+    D_(Function1<scalar>::New("D", coeffs_))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::porosityModels::solidification::~solidification()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::porosityModels::solidification::calcTransformModelData()
+{}
+
+
+void Foam::porosityModels::solidification::calcForce
+(
+    const volVectorField& U,
+    const volScalarField& rho,
+    const volScalarField& mu,
+    vectorField& force
+) const
+{
+    scalarField Udiag(U.size(), 0.0);
+    const scalarField& V = mesh_.V();
+
+    apply(Udiag, V, rho, U);
+
+    force = Udiag*U;
+}
+
+
+void Foam::porosityModels::solidification::correct
+(
+    fvVectorMatrix& UEqn
+) const
+{
+    const volVectorField& U = UEqn.psi();
+    const scalarField& V = mesh_.V();
+    scalarField& Udiag = UEqn.diag();
+
+    if (UEqn.dimensions() == dimForce)
+    {
+        const volScalarField& rho = mesh_.lookupObject<volScalarField>
+        (
+            IOobject::groupName(rhoName_, U.group())
+        );
+
+        apply(Udiag, V, rho, U);
+    }
+    else
+    {
+        apply(Udiag, V, geometricOneField(), U);
+    }
+}
+
+
+void Foam::porosityModels::solidification::correct
+(
+    fvVectorMatrix& UEqn,
+    const volScalarField& rho,
+    const volScalarField& mu
+) const
+{
+    const volVectorField& U = UEqn.psi();
+    const scalarField& V = mesh_.V();
+    scalarField& Udiag = UEqn.diag();
+
+    apply(Udiag, V, rho, U);
+}
+
+
+void Foam::porosityModels::solidification::correct
+(
+    const fvVectorMatrix& UEqn,
+    volTensorField& AU
+) const
+{
+    const volVectorField& U = UEqn.psi();
+
+    if (UEqn.dimensions() == dimForce)
+    {
+        const volScalarField& rho = mesh_.lookupObject<volScalarField>
+        (
+            IOobject::groupName(rhoName_, U.group())
+        );
+
+        apply(AU, rho, U);
+    }
+    else
+    {
+        apply(AU, geometricOneField(), U);
+    }
+}
+
+
+bool Foam::porosityModels::solidification::writeData(Ostream& os) const
+{
+    os  << indent << name_ << endl;
+    dict_.write(os);
+
+    return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H
new file mode 100644
index 00000000000..7f86849f64d
--- /dev/null
+++ b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H
@@ -0,0 +1,214 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::porosityModels::solidification
+
+Description
+    Simple solidification porosity model
+
+    This is a simple approximation to solidification where the solid phase
+    is represented as a porous blockage with the drag-coefficient evaluated from
+
+        \f[
+            S = - \rho D(T) U
+        \f]
+
+    where
+    \vartable
+        D(T) | User-defined drag-coefficient as function of temperature
+    \endvartable
+
+    Note that the latent heat of solidification is not included and the
+    temperature is unchanged by the modelled change of phase.
+
+    Example of the solidification model specification:
+    \verbatim
+        type            solidification;
+
+        solidificationCoeffs
+        {
+            // Solidify between 330K and 330.5K
+            D table
+            (
+                (330.0     10000) // Solid below 330K
+                (330.5     0)     // Liquid above 330.5K
+            );
+
+            // Solidification porosity is isotropic
+            // use the global coordinate system
+            coordinateSystem
+            {
+                type    cartesian;
+                origin  (0 0 0);
+                coordinateRotation
+                {
+                    type    axesRotation;
+                    e1      (1 0 0);
+                    e2      (0 1 0);
+                }
+            }
+        }
+    \endverbatim
+
+SourceFiles
+    solidification.C
+    solidificationTemplates.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef solidification_H
+#define solidification_H
+
+#include "porosityModel.H"
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace porosityModels
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class solidification Declaration
+\*---------------------------------------------------------------------------*/
+
+class solidification
+:
+    public porosityModel
+{
+    // Private data
+
+        //- Name of temperature field, default = "T"
+        word TName_;
+
+        //- Name of density field, default = "rho"
+        word rhoName_;
+
+        //- User-defined drag-coefficient as function of temperature
+        autoPtr<Function1<scalar>> D_;
+
+
+    // Private Member Functions
+
+        //- Apply resistance
+        template<class RhoFieldType>
+        void apply
+        (
+            scalarField& Udiag,
+            const scalarField& V,
+            const RhoFieldType& rho,
+            const volVectorField& U
+        ) const;
+
+        //- Apply resistance
+        template<class RhoFieldType>
+        void apply
+        (
+            tensorField& AU,
+            const RhoFieldType& rho,
+            const volVectorField& U
+        ) const;
+
+        //- Disallow default bitwise copy construct
+        solidification(const solidification&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const solidification&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("solidification");
+
+    //- Constructor
+    solidification
+    (
+        const word& name,
+        const word& modelType,
+        const fvMesh& mesh,
+        const dictionary& dict,
+        const word& cellZoneName
+    );
+
+    //- Destructor
+    virtual ~solidification();
+
+
+    // Member Functions
+
+        //- Transform the model data wrt mesh changes
+        virtual void calcTransformModelData();
+
+        //- Calculate the porosity force
+        virtual void calcForce
+        (
+            const volVectorField& U,
+            const volScalarField& rho,
+            const volScalarField& mu,
+            vectorField& force
+        ) const;
+
+        //- Add resistance
+        virtual void correct(fvVectorMatrix& UEqn) const;
+
+        //- Add resistance
+        virtual void correct
+        (
+            fvVectorMatrix& UEqn,
+            const volScalarField& rho,
+            const volScalarField& mu
+        ) const;
+
+        //- Add resistance
+        virtual void correct
+        (
+            const fvVectorMatrix& UEqn,
+            volTensorField& AU
+        ) const;
+
+
+    // I-O
+
+        //- Write
+        bool writeData(Ostream& os) const;
+};
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace porosityModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "solidificationTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C
new file mode 100644
index 00000000000..71b290af178
--- /dev/null
+++ b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C
@@ -0,0 +1,83 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "volFields.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class RhoFieldType>
+void Foam::porosityModels::solidification::apply
+(
+    scalarField& Udiag,
+    const scalarField& V,
+    const RhoFieldType& rho,
+    const volVectorField& U
+) const
+{
+    const volScalarField& T = mesh_.lookupObject<volScalarField>
+    (
+        IOobject::groupName(TName_, U.group())
+    );
+
+    forAll(cellZoneIDs_, zoneI)
+    {
+        const labelList& cells = mesh_.cellZones()[cellZoneIDs_[zoneI]];
+
+        forAll(cells, i)
+        {
+            const label celli = cells[i];
+            Udiag[celli] += V[celli]*rho[celli]*D_->value(T[celli]);
+        }
+    }
+}
+
+
+template<class RhoFieldType>
+void Foam::porosityModels::solidification::apply
+(
+    tensorField& AU,
+    const RhoFieldType& rho,
+    const volVectorField& U
+) const
+{
+    const volScalarField& T = mesh_.lookupObject<volScalarField>
+    (
+        IOobject::groupName(TName_, U.group())
+    );
+
+    forAll(cellZoneIDs_, zoneI)
+    {
+        const labelList& cells = mesh_.cellZones()[cellZoneIDs_[zoneI]];
+
+        forAll(cells, i)
+        {
+            const label celli = cells[i];
+            AU[celli] += tensor::I*rho[celli]*D_->value(T[celli]);
+        }
+    }
+}
+
+
+// ************************************************************************* //
-- 
GitLab


From 160efd89a63aa45f10e7768646312a9cbf99c2f8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Feb 2017 10:40:14 +0000
Subject: [PATCH 073/277] porosityModels::solidification: Added optional
 phase-fraction for VoF solvers etc.

Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \alpha \rho D(T) U
        \f]

    where
    \vartable
        \alpha  | Optional phase-fraction of solidifying phase
        D(T)    | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Optional phase-fraction of solidifying phase
            alpha alpha.liquid;

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
---
 .../solidification/solidification.C           |  1 +
 .../solidification/solidification.H           | 32 +++++++++-
 .../solidification/solidificationTemplates.C  | 62 +++++++++++++++++--
 3 files changed, 89 insertions(+), 6 deletions(-)

diff --git a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C
index ac60cf0d04c..68d3edcf774 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C
+++ b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.C
@@ -53,6 +53,7 @@ Foam::porosityModels::solidification::solidification
 :
     porosityModel(name, modelType, mesh, dict, cellZoneName),
     TName_(coeffs_.lookupOrDefault<word>("T", "T")),
+    alphaName_(coeffs_.lookupOrDefault<word>("alpha", "none")),
     rhoName_(coeffs_.lookupOrDefault<word>("rho", "rho")),
     D_(Function1<scalar>::New("D", coeffs_))
 {}
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H
index 7f86849f64d..119ba568053 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H
+++ b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidification.H
@@ -31,12 +31,13 @@ Description
     is represented as a porous blockage with the drag-coefficient evaluated from
 
         \f[
-            S = - \rho D(T) U
+            S = - \alpha \rho D(T) U
         \f]
 
     where
     \vartable
-        D(T) | User-defined drag-coefficient as function of temperature
+        \alpha  | Optional phase-fraction of solidifying phase
+        D(T)    | User-defined drag-coefficient as function of temperature
     \endvartable
 
     Note that the latent heat of solidification is not included and the
@@ -55,6 +56,9 @@ Description
                 (330.5     0)     // Liquid above 330.5K
             );
 
+            // Optional phase-fraction of solidifying phase
+            alpha alpha.liquid;
+
             // Solidification porosity is isotropic
             // use the global coordinate system
             coordinateSystem
@@ -103,6 +107,9 @@ class solidification
         //- Name of temperature field, default = "T"
         word TName_;
 
+        //- Name of optional phase-fraction field, default = "none"
+        word alphaName_;
+
         //- Name of density field, default = "rho"
         word rhoName_;
 
@@ -112,6 +119,27 @@ class solidification
 
     // Private Member Functions
 
+        //- Apply resistance
+        template<class AlphaFieldType, class RhoFieldType>
+        void apply
+        (
+            scalarField& Udiag,
+            const scalarField& V,
+            const AlphaFieldType& alpha,
+            const RhoFieldType& rho,
+            const volVectorField& U
+        ) const;
+
+        //- Apply resistance
+        template<class AlphaFieldType, class RhoFieldType>
+        void apply
+        (
+            tensorField& AU,
+            const AlphaFieldType& alpha,
+            const RhoFieldType& rho,
+            const volVectorField& U
+        ) const;
+
         //- Apply resistance
         template<class RhoFieldType>
         void apply
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C
index 71b290af178..d9ea04d59eb 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C
+++ b/src/finiteVolume/cfdTools/general/porosityModel/solidification/solidificationTemplates.C
@@ -24,14 +24,16 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "volFields.H"
+#include "geometricOneField.H"
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-template<class RhoFieldType>
+template<class AlphaFieldType, class RhoFieldType>
 void Foam::porosityModels::solidification::apply
 (
     scalarField& Udiag,
     const scalarField& V,
+    const AlphaFieldType& alpha,
     const RhoFieldType& rho,
     const volVectorField& U
 ) const
@@ -48,16 +50,18 @@ void Foam::porosityModels::solidification::apply
         forAll(cells, i)
         {
             const label celli = cells[i];
-            Udiag[celli] += V[celli]*rho[celli]*D_->value(T[celli]);
+            Udiag[celli] +=
+                V[celli]*alpha[celli]*rho[celli]*D_->value(T[celli]);
         }
     }
 }
 
 
-template<class RhoFieldType>
+template<class AlphaFieldType, class RhoFieldType>
 void Foam::porosityModels::solidification::apply
 (
     tensorField& AU,
+    const AlphaFieldType& alpha,
     const RhoFieldType& rho,
     const volVectorField& U
 ) const
@@ -74,10 +78,60 @@ void Foam::porosityModels::solidification::apply
         forAll(cells, i)
         {
             const label celli = cells[i];
-            AU[celli] += tensor::I*rho[celli]*D_->value(T[celli]);
+            AU[celli] +=
+                tensor::I*alpha[celli]*rho[celli]*D_->value(T[celli]);
         }
     }
 }
 
 
+template<class RhoFieldType>
+void Foam::porosityModels::solidification::apply
+(
+    scalarField& Udiag,
+    const scalarField& V,
+    const RhoFieldType& rho,
+    const volVectorField& U
+) const
+{
+    if (alphaName_ == "none")
+    {
+        return apply(Udiag, V, geometricOneField(), rho, U);
+    }
+    else
+    {
+        const volScalarField& alpha = mesh_.lookupObject<volScalarField>
+        (
+            IOobject::groupName(alphaName_, U.group())
+        );
+
+        return apply(Udiag, V, alpha, rho, U);
+    }
+}
+
+
+template<class RhoFieldType>
+void Foam::porosityModels::solidification::apply
+(
+    tensorField& AU,
+    const RhoFieldType& rho,
+    const volVectorField& U
+) const
+{
+    if (alphaName_ == "none")
+    {
+        return apply(AU, geometricOneField(), rho, U);
+    }
+    else
+    {
+        const volScalarField& alpha = mesh_.lookupObject<volScalarField>
+        (
+            IOobject::groupName(alphaName_, U.group())
+        );
+
+        return apply(AU, alpha, rho, U);
+    }
+}
+
+
 // ************************************************************************* //
-- 
GitLab


From 9d85d34f3ae2cc43847e42aed71eeded7bcdc62a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Feb 2017 16:57:30 +0000
Subject: [PATCH 074/277] functionObjects::scalarTransport: Corrected
 FatalError

---
 src/functionObjects/solvers/scalarTransport/scalarTransport.C | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.C b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
index 5aecbd37e3f..954a5d6e4de 100644
--- a/src/functionObjects/solvers/scalarTransport/scalarTransport.C
+++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -254,7 +254,7 @@ bool Foam::functionObjects::scalarTransport::execute()
         FatalErrorInFunction
             << "Incompatible dimensions for phi: " << phi.dimensions() << nl
             << "Dimensions should be " << dimMass/dimTime << " or "
-            << dimVolume/dimTime << endl;
+            << dimVolume/dimTime << exit(FatalError);
     }
 
     Info<< endl;
-- 
GitLab


From 3879cf48fbb898c3a856c2e77638c30bc72da4aa Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Feb 2017 20:46:31 +0000
Subject: [PATCH 075/277] interMixingFoam: Renamed alphaEqns.H and
 alphaEqnsSubCycle.H for consistency with interFoam

---
 .../interFoam/interMixingFoam/{alphaEqns.H => alphaEqn.H}     | 0
 .../{alphaEqnsSubCycle.H => alphaEqnSubCycle.H}               | 4 ++--
 .../multiphase/interFoam/interMixingFoam/interMixingFoam.C    | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)
 rename applications/solvers/multiphase/interFoam/interMixingFoam/{alphaEqns.H => alphaEqn.H} (100%)
 rename applications/solvers/multiphase/interFoam/interMixingFoam/{alphaEqnsSubCycle.H => alphaEqnSubCycle.H} (93%)

diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqn.H
similarity index 100%
rename from applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H
rename to applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqn.H
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnSubCycle.H
similarity index 93%
rename from applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
rename to applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnSubCycle.H
index 6025b60069f..2f117f2cd4a 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnSubCycle.H
@@ -19,7 +19,7 @@ if (nAlphaSubCycles > 1)
         !(++alphaSubCycle).end();
     )
     {
-        #include "alphaEqns.H"
+        #include "alphaEqn.H"
         rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi;
     }
 
@@ -27,7 +27,7 @@ if (nAlphaSubCycles > 1)
 }
 else
 {
-    #include "alphaEqns.H"
+    #include "alphaEqn.H"
 }
 
 {
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
index b26630d3609..52dc9a15000 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,7 +93,7 @@ int main(int argc, char *argv[])
         while (pimple.loop())
         {
             #include "alphaControls.H"
-            #include "alphaEqnsSubCycle.H"
+            #include "alphaEqnSubCycle.H"
 
             mixture.correct();
 
-- 
GitLab


From ba4eefae1d5fbb455f6c9c777c586ece2adbea1c Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Feb 2017 20:47:59 +0000
Subject: [PATCH 076/277] interFoam, interDyMFoam: Removed duplicate include

---
 .../solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C   | 1 -
 applications/solvers/multiphase/interFoam/interFoam.C          | 3 +--
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index f750308c44f..df826479f0b 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -44,7 +44,6 @@ Description
 #include "pimpleControl.H"
 #include "fvOptions.H"
 #include "CorrectPhi.H"
-#include "localEulerDdtScheme.H"
 #include "fvcSmooth.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C
index 5db4d7d32e7..93d70dea5e7 100644
--- a/applications/solvers/multiphase/interFoam/interFoam.C
+++ b/applications/solvers/multiphase/interFoam/interFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,6 @@ Description
 #include "pimpleControl.H"
 #include "fvOptions.H"
 #include "CorrectPhi.H"
-#include "localEulerDdtScheme.H"
 #include "fvcSmooth.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-- 
GitLab


From 6fc2a3dc58c3902a0453ba423e9d902d1aafb0ff Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Feb 2017 20:50:07 +0000
Subject: [PATCH 077/277] compressibleInterFoam: More consistent with interFoam
 and added partial support for LTS

---
 .../compressibleInterFoam/Make/options        |  2 +
 .../multiphase/compressibleInterFoam/TEqn.H   |  1 +
 .../multiphase/compressibleInterFoam/UEqn.H   |  2 +-
 .../{alphaEqns.H => alphaEqn.H}               | 41 +-------
 ...alphaEqnsSubCycle.H => alphaEqnSubCycle.H} |  8 +-
 .../compressibleInterFoam/alphaSuSp.H         | 37 +++++++
 .../compressibleInterDyMFoam/Make/options     |  1 +
 .../compressibleInterDyMFoam.C                | 99 ++++++++++---------
 .../compressibleInterDyMFoam/createControls.H |  5 +
 .../compressibleInterDyMFoam/pEqn.H           |  2 +-
 .../compressibleInterDyMFoam/readControls.H   |  3 +
 .../compressibleInterFoam.C                   | 34 ++++---
 .../compressibleInterFoam/createFields.H      |  7 +-
 .../multiphase/compressibleInterFoam/pEqn.H   |  2 +-
 .../twoPhaseMixtureThermo/Make/options        |  2 +
 .../twoPhaseMixtureThermo.C                   | 22 +++--
 .../twoPhaseMixtureThermo.H                   | 16 ++-
 17 files changed, 161 insertions(+), 123 deletions(-)
 rename applications/solvers/multiphase/compressibleInterFoam/{alphaEqns.H => alphaEqn.H} (52%)
 rename applications/solvers/multiphase/compressibleInterFoam/{alphaEqnsSubCycle.H => alphaEqnSubCycle.H} (83%)
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H

diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index e24e6697f95..27e73ef53aa 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -1,4 +1,6 @@
 EXE_INC = \
+    -I. \
+    -I../interFoam \
     -ItwoPhaseMixtureThermo \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
index 7bd4ca35688..60dd2aecc81 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
@@ -24,5 +24,6 @@
 
     fvOptions.correct(T);
 
+    mixture.correctThermo();
     mixture.correct();
 }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
index 18e947c8a7a..2eaeaa25f4b 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
@@ -20,7 +20,7 @@
             fvc::reconstruct
             (
                 (
-                    interface.surfaceTensionForce()
+                    mixture.surfaceTensionForce()
                   - ghf*fvc::snGrad(rho)
                   - fvc::snGrad(p_rgh)
                 ) * mesh.magSf()
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaEqns.H b/applications/solvers/multiphase/compressibleInterFoam/alphaEqn.H
similarity index 52%
rename from applications/solvers/multiphase/compressibleInterFoam/alphaEqns.H
rename to applications/solvers/multiphase/compressibleInterFoam/alphaEqn.H
index eedf020670d..8105650296f 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaEqns.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/alphaEqn.H
@@ -2,48 +2,11 @@
     word alphaScheme("div(phi,alpha)");
     word alpharScheme("div(phirb,alpha)");
 
-    surfaceScalarField phir(phic*interface.nHatf());
+    surfaceScalarField phir(phic*mixture.nHatf());
 
     for (int gCorr=0; gCorr<nAlphaCorr; gCorr++)
     {
-        volScalarField::Internal Sp
-        (
-            IOobject
-            (
-                "Sp",
-                runTime.timeName(),
-                mesh
-            ),
-            mesh,
-            dimensionedScalar("Sp", dgdt.dimensions(), 0.0)
-        );
-
-        volScalarField::Internal Su
-        (
-            IOobject
-            (
-                "Su",
-                runTime.timeName(),
-                mesh
-            ),
-            // Divergence term is handled explicitly to be
-            // consistent with the explicit transport solution
-            divU*min(alpha1, scalar(1))
-        );
-
-        forAll(dgdt, celli)
-        {
-            if (dgdt[celli] > 0.0 && alpha1[celli] > 0.0)
-            {
-                Sp[celli] -= dgdt[celli]*alpha1[celli];
-                Su[celli] += dgdt[celli]*alpha1[celli];
-            }
-            else if (dgdt[celli] < 0.0 && alpha1[celli] < 1.0)
-            {
-                Sp[celli] += dgdt[celli]*(1.0 - alpha1[celli]);
-            }
-        }
-
+        #include "alphaSuSp.H"
 
         surfaceScalarField alphaPhi1
         (
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/compressibleInterFoam/alphaEqnSubCycle.H
similarity index 83%
rename from applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
rename to applications/solvers/multiphase/compressibleInterFoam/alphaEqnSubCycle.H
index 89e56191503..54141d34a78 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/alphaEqnSubCycle.H
@@ -1,8 +1,6 @@
 {
-    #include "alphaControls.H"
-
     surfaceScalarField phic(mag(phi/mesh.magSf()));
-    phic = min(interface.cAlpha()*phic, max(phic));
+    phic = min(mixture.cAlpha()*phic, max(phic));
 
     volScalarField divU(fvc::div(fvc::absolute(phi, U)));
 
@@ -27,7 +25,7 @@
             !(++alphaSubCycle).end();
         )
         {
-            #include "alphaEqns.H"
+            #include "alphaEqn.H"
             rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi;
         }
 
@@ -35,6 +33,6 @@
     }
     else
     {
-        #include "alphaEqns.H"
+        #include "alphaEqn.H"
     }
 }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H b/applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H
new file mode 100644
index 00000000000..a1b383e89e2
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H
@@ -0,0 +1,37 @@
+        volScalarField::Internal Sp
+        (
+            IOobject
+            (
+                "Sp",
+                runTime.timeName(),
+                mesh
+            ),
+            mesh,
+            dimensionedScalar("Sp", dgdt.dimensions(), 0.0)
+        );
+
+        volScalarField::Internal Su
+        (
+            IOobject
+            (
+                "Su",
+                runTime.timeName(),
+                mesh
+            ),
+            // Divergence term is handled explicitly to be
+            // consistent with the explicit transport solution
+            divU*min(alpha1, scalar(1))
+        );
+
+        forAll(dgdt, celli)
+        {
+            if (dgdt[celli] > 0.0 && alpha1[celli] > 0.0)
+            {
+                Sp[celli] -= dgdt[celli]*alpha1[celli];
+                Su[celli] += dgdt[celli]*alpha1[celli];
+            }
+            else if (dgdt[celli] < 0.0 && alpha1[celli] < 1.0)
+            {
+                Sp[celli] += dgdt[celli]*(1.0 - alpha1[celli]);
+            }
+        }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index cc7d5a28329..73e50e5ef64 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -1,5 +1,6 @@
 EXE_INC = \
     -I.. \
+    -I../../interFoam \
     -I../twoPhaseMixtureThermo \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index 157830ae6bb..9f09b35184b 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
@@ -41,13 +41,14 @@ Description
 #include "dynamicFvMesh.H"
 #include "MULES.H"
 #include "subCycle.H"
-#include "interfaceProperties.H"
 #include "twoPhaseMixture.H"
 #include "twoPhaseMixtureThermo.H"
 #include "turbulentFluidThermoModel.H"
 #include "pimpleControl.H"
 #include "fvOptions.H"
 #include "CorrectPhi.H"
+#include "localEulerDdtScheme.H"
+#include "fvcSmooth.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -81,64 +82,67 @@ int main(int argc, char *argv[])
     {
         #include "readControls.H"
 
-        {
-            // Store divU from the previous mesh so that it can be mapped
-            // and used in correctPhi to ensure the corrected phi has the
-            // same divergence
-            volScalarField divU("divU0", fvc::div(fvc::absolute(phi, U)));
+        // Store divU from the previous mesh so that it can be mapped
+        // and used in correctPhi to ensure the corrected phi has the
+        // same divergence
+        volScalarField divU("divU0", fvc::div(fvc::absolute(phi, U)));
 
+        if (LTS)
+        {
+            #include "setRDeltaT.H"
+        }
+        else
+        {
             #include "CourantNo.H"
+            #include "alphaCourantNo.H"
             #include "setDeltaT.H"
+        }
 
-            runTime++;
-
-            Info<< "Time = " << runTime.timeName() << nl << endl;
-
-            scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime();
+        runTime++;
 
-            // Do any mesh changes
-            mesh.update();
+        Info<< "Time = " << runTime.timeName() << nl << endl;
 
-            if (mesh.changing())
+        // --- Pressure-velocity PIMPLE corrector loop
+        while (pimple.loop())
+        {
+            if (pimple.firstIter() || moveMeshOuterCorrectors)
             {
-                Info<< "Execution time for mesh.update() = "
-                    << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
-                    << " s" << endl;
+                scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime();
 
-                gh = (g & mesh.C()) - ghRef;
-                ghf = (g & mesh.Cf()) - ghRef;
-            }
+                mesh.update();
 
-            if (mesh.changing() && correctPhi)
-            {
-                // Calculate absolute flux from the mapped surface velocity
-                phi = mesh.Sf() & Uf;
+                if (mesh.changing())
+                {
+                    Info<< "Execution time for mesh.update() = "
+                        << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
+                        << " s" << endl;
 
-                #include "correctPhi.H"
+                    gh = (g & mesh.C()) - ghRef;
+                    ghf = (g & mesh.Cf()) - ghRef;
+                }
 
-                // Make the fluxes relative to the mesh motion
-                fvc::makeRelative(phi, U);
-            }
-        }
+                if (mesh.changing() && correctPhi)
+                {
+                    // Calculate absolute flux from the mapped surface velocity
+                    phi = mesh.Sf() & Uf;
 
-        if (mesh.changing() && checkMeshCourantNo)
-        {
-            #include "meshCourantNo.H"
-        }
+                    #include "correctPhi.H"
 
-        turbulence->correct();
+                    // Make the fluxes relative to the mesh motion
+                    fvc::makeRelative(phi, U);
 
-        // --- Pressure-velocity PIMPLE corrector loop
-        while (pimple.loop())
-        {
-            #include "alphaEqnsSubCycle.H"
+                    mixture.correct();
+                }
 
-            // correct interface on first PIMPLE corrector
-            if (pimple.corr() == 1)
-            {
-                interface.correct();
+                if (mesh.changing() && checkMeshCourantNo)
+                {
+                    #include "meshCourantNo.H"
+                }
             }
 
+            #include "alphaControls.H"
+            #include "alphaEqnSubCycle.H"
+
             solve(fvm::ddt(rho) + fvc::div(rhoPhi));
 
             #include "UEqn.H"
@@ -149,13 +153,12 @@ int main(int argc, char *argv[])
             {
                 #include "pEqn.H"
             }
-        }
-
-        rho = alpha1*rho1 + alpha2*rho2;
 
-        // Correct p_rgh for consistency with p and the updated densities
-        p_rgh = p - rho*gh;
-        p_rgh.correctBoundaryConditions();
+            if (pimple.turbCorr())
+            {
+                turbulence->correct();
+            }
+        }
 
         runTime.write();
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
index aed0e76956b..f1930cdfc08 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
@@ -9,3 +9,8 @@ bool checkMeshCourantNo
 (
     pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
 );
+
+bool moveMeshOuterCorrectors
+(
+    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false)
+);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
index 661cb3a78eb..d0dbfada563 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
@@ -12,7 +12,7 @@
     surfaceScalarField phig
     (
         (
-            interface.surfaceTensionForce()
+            mixture.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
index ed2db49fb4d..d82dcecb8a5 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
@@ -4,3 +4,6 @@ correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
 
 checkMeshCourantNo =
     pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+
+moveMeshOuterCorrectors =
+    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
index 8775d0fbd33..bcc28de1bdc 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
@@ -39,12 +39,13 @@ Description
 #include "MULES.H"
 #include "subCycle.H"
 #include "rhoThermo.H"
-#include "interfaceProperties.H"
 #include "twoPhaseMixture.H"
 #include "twoPhaseMixtureThermo.H"
 #include "turbulentFluidThermoModel.H"
 #include "pimpleControl.H"
 #include "fvOptions.H"
+#include "localEulerDdtScheme.H"
+#include "fvcSmooth.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -59,8 +60,6 @@ int main(int argc, char *argv[])
     #include "createTimeControls.H"
     #include "createFields.H"
     #include "createFvOptions.H"
-    #include "CourantNo.H"
-    #include "setInitialDeltaT.H"
 
     volScalarField& p = mixture.p();
     volScalarField& T = mixture.T();
@@ -69,6 +68,13 @@ int main(int argc, char *argv[])
 
     turbulence->validate();
 
+    if (!LTS)
+    {
+        #include "readTimeControls.H"
+        #include "CourantNo.H"
+        #include "setInitialDeltaT.H"
+    }
+
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nStarting time loop\n" << endl;
@@ -76,8 +82,17 @@ int main(int argc, char *argv[])
     while (runTime.run())
     {
         #include "readTimeControls.H"
-        #include "CourantNo.H"
-        #include "setDeltaT.H"
+
+        if (LTS)
+        {
+            #include "setRDeltaT.H"
+        }
+        else
+        {
+            #include "CourantNo.H"
+            #include "alphaCourantNo.H"
+            #include "setDeltaT.H"
+        }
 
         runTime++;
 
@@ -86,13 +101,8 @@ int main(int argc, char *argv[])
         // --- Pressure-velocity PIMPLE corrector loop
         while (pimple.loop())
         {
-            #include "alphaEqnsSubCycle.H"
-
-            // correct interface on first PIMPLE corrector
-            if (pimple.corr() == 1)
-            {
-                interface.correct();
-            }
+            #include "alphaControls.H"
+            #include "alphaEqnSubCycle.H"
 
             solve(fvm::ddt(rho) + fvc::div(rhoPhi));
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/createFields.H b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
index 9a49e504c62..7af8f15fe4f 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Reading field p_rgh\n" << endl;
 volScalarField p_rgh
 (
@@ -29,7 +31,7 @@ volVectorField U
 #include "createPhi.H"
 
 Info<< "Constructing twoPhaseMixtureThermo\n" << endl;
-twoPhaseMixtureThermo mixture(mesh);
+twoPhaseMixtureThermo mixture(U, phi);
 
 volScalarField& alpha1(mixture.alpha1());
 volScalarField& alpha2(mixture.alpha2());
@@ -89,9 +91,6 @@ volScalarField dgdt
     pos(alpha2)*fvc::div(phi)/max(alpha2, scalar(0.0001))
 );
 
-// Construct interface from alpha1 distribution
-interfaceProperties interface(alpha1, U, mixture);
-
 // Construct compressible turbulence model
 autoPtr<compressible::turbulenceModel> turbulence
 (
diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
index 1328b0abd9d..a40a98fd0ac 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
@@ -12,7 +12,7 @@
     surfaceScalarField phig
     (
         (
-            interface.surfaceTensionForce()
+            mixture.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options
index ed39dee58bf..aca6fad2c2e 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options
@@ -2,6 +2,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
+    -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
 
 LIB_LIBS = \
@@ -9,4 +10,5 @@ LIB_LIBS = \
     -lfluidThermophysicalModels \
     -lspecie \
     -ltwoPhaseMixture \
+    -linterfaceProperties \
     -lfiniteVolume
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
index c713498ef6a..cfad5174828 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,11 +40,13 @@ namespace Foam
 
 Foam::twoPhaseMixtureThermo::twoPhaseMixtureThermo
 (
-    const fvMesh& mesh
+    const volVectorField& U,
+    const surfaceScalarField& phi
 )
 :
-    psiThermo(mesh, word::null),
-    twoPhaseMixture(mesh, *this),
+    psiThermo(U.mesh(), word::null),
+    twoPhaseMixture(U.mesh(), *this),
+    interfaceProperties(alpha1(), U, *this),
     thermo1_(nullptr),
     thermo2_(nullptr)
 {
@@ -58,8 +60,8 @@ Foam::twoPhaseMixtureThermo::twoPhaseMixtureThermo
         T2.write();
     }
 
-    thermo1_ = rhoThermo::New(mesh, phase1Name());
-    thermo2_ = rhoThermo::New(mesh, phase2Name());
+    thermo1_ = rhoThermo::New(U.mesh(), phase1Name());
+    thermo2_ = rhoThermo::New(U.mesh(), phase2Name());
 
     thermo1_->validate(phase1Name(), "e");
     thermo2_->validate(phase2Name(), "e");
@@ -76,17 +78,23 @@ Foam::twoPhaseMixtureThermo::~twoPhaseMixtureThermo()
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-void Foam::twoPhaseMixtureThermo::correct()
+void Foam::twoPhaseMixtureThermo::correctThermo()
 {
     thermo1_->he() = thermo1_->he(p_, T_);
     thermo1_->correct();
 
     thermo2_->he() = thermo2_->he(p_, T_);
     thermo2_->correct();
+}
+
 
+void Foam::twoPhaseMixtureThermo::correct()
+{
     psi_ = alpha1()*thermo1_->psi() + alpha2()*thermo2_->psi();
     mu_ = alpha1()*thermo1_->mu() + alpha2()*thermo2_->mu();
     alpha_ = alpha1()*thermo1_->alpha() + alpha2()*thermo2_->alpha();
+
+    interfaceProperties::correct();
 }
 
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
index 3cde04bb46d..82b0ac90a2d 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -39,6 +39,7 @@ SourceFiles
 #include "rhoThermo.H"
 #include "psiThermo.H"
 #include "twoPhaseMixture.H"
+#include "interfaceProperties.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -52,7 +53,8 @@ namespace Foam
 class twoPhaseMixtureThermo
 :
     public psiThermo,
-    public twoPhaseMixture
+    public twoPhaseMixture,
+    public interfaceProperties
 {
     // Private data
 
@@ -71,10 +73,11 @@ public:
 
     // Constructors
 
-        //- Construct from mesh
+        //- Construct from components
         twoPhaseMixtureThermo
         (
-            const fvMesh& mesh
+            const volVectorField& U,
+            const surfaceScalarField& phi
         );
 
 
@@ -104,7 +107,10 @@ public:
             return thermo2_();
         }
 
-        //- Update properties
+        //- Correct the thermodynamics of each phase
+        virtual void correctThermo();
+
+        //- Update mixture properties
         virtual void correct();
 
         //- Return true if the equation of state is incompressible
-- 
GitLab


From b167c95f19d431a43097ed0f7804ec294180ab64 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 9 Feb 2017 17:31:57 +0000
Subject: [PATCH 078/277] compressibleInterFoam: Completed LTS and
 semi-implicit MULES support

Now the interFoam and compressibleInterFoam families of solvers use the same
alphaEqn formulation and supporting all of the MULES options without
code-duplication.

The semi-implicit MULES support allows running with significantly larger
time-steps but this does reduce the interface sharpness.
---
 .../{interFoam => VoF}/alphaCourantNo.H       |  2 +-
 .../multiphase/{interFoam => VoF}/alphaEqn.H  | 36 ++++++++-
 .../{interFoam => VoF}/alphaEqnSubCycle.H     |  0
 .../multiphase/{interFoam => VoF}/setDeltaT.H |  2 +-
 .../{interFoam => VoF}/setRDeltaT.H           |  0
 .../compressibleInterFoam/Make/options        |  2 +-
 .../multiphase/compressibleInterFoam/UEqn.H   |  4 +-
 .../compressibleInterFoam/alphaControls.H     |  5 --
 .../compressibleInterFoam/alphaEqn.H          | 51 ------------
 .../compressibleInterFoam/alphaEqnSubCycle.H  | 38 ---------
 .../compressibleInterFoam/alphaSuSp.H         | 76 +++++++++---------
 .../compressibleAlphaEqnSubCycle.H            |  3 +
 .../compressibleInterDyMFoam/Make/options     |  3 +-
 .../compressibleInterDyMFoam.C                |  8 +-
 .../compressibleInterDyMFoam/pEqn.H           |  3 +-
 .../compressibleInterFoam.C                   |  6 +-
 .../compressibleInterFoam/createFields.H      | 20 +++++
 .../multiphase/compressibleInterFoam/pEqn.H   |  3 +-
 .../multiphase/compressibleInterFoam/rhofs.H  |  2 +
 .../Make/options                              |  1 +
 .../solvers/multiphase/interFoam/Make/options |  1 +
 .../solvers/multiphase/interFoam/alphaSuSp.H  |  3 +
 .../interFoam/interDyMFoam/Make/options       |  1 +
 .../multiphase/interFoam/interDyMFoam/pEqn.H  |  2 +-
 .../interFoam/interMixingFoam/Make/options    |  1 +
 .../solvers/multiphase/interFoam/rhofs.H      |  2 +
 .../multiphaseInterFoam/Make/options          |  1 +
 .../multiphaseInterDyMFoam/Make/options       |  1 +
 .../twoLiquidMixingFoam/Make/options          |  2 +-
 .../fields/Fields/zeroField/zeroField.H       |  6 +-
 .../fields/Fields/zeroField/zeroFieldI.H      | 78 ++++++++++++++++++-
 .../geometricZeroField/geometricZeroField.H   |  6 +-
 .../geometricZeroField/geometricZeroFieldI.H  |  7 +-
 .../laminar/depthCharge2D/system/controlDict  | 11 ++-
 .../laminar/depthCharge2D/system/fvSolution   | 12 ++-
 .../laminar/depthCharge3D/system/controlDict  |  7 +-
 .../laminar/depthCharge3D/system/fvSolution   | 12 ++-
 37 files changed, 251 insertions(+), 167 deletions(-)
 rename applications/solvers/multiphase/{interFoam => VoF}/alphaCourantNo.H (96%)
 rename applications/solvers/multiphase/{interFoam => VoF}/alphaEqn.H (86%)
 rename applications/solvers/multiphase/{interFoam => VoF}/alphaEqnSubCycle.H (100%)
 rename applications/solvers/multiphase/{interFoam => VoF}/setDeltaT.H (95%)
 rename applications/solvers/multiphase/{interFoam => VoF}/setRDeltaT.H (100%)
 delete mode 100644 applications/solvers/multiphase/compressibleInterFoam/alphaControls.H
 delete mode 100644 applications/solvers/multiphase/compressibleInterFoam/alphaEqn.H
 delete mode 100644 applications/solvers/multiphase/compressibleInterFoam/alphaEqnSubCycle.H
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/compressibleAlphaEqnSubCycle.H
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/rhofs.H
 create mode 100644 applications/solvers/multiphase/interFoam/alphaSuSp.H
 create mode 100644 applications/solvers/multiphase/interFoam/rhofs.H

diff --git a/applications/solvers/multiphase/interFoam/alphaCourantNo.H b/applications/solvers/multiphase/VoF/alphaCourantNo.H
similarity index 96%
rename from applications/solvers/multiphase/interFoam/alphaCourantNo.H
rename to applications/solvers/multiphase/VoF/alphaCourantNo.H
index a084155c8ae..24f6e48a22c 100644
--- a/applications/solvers/multiphase/interFoam/alphaCourantNo.H
+++ b/applications/solvers/multiphase/VoF/alphaCourantNo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/multiphase/interFoam/alphaEqn.H b/applications/solvers/multiphase/VoF/alphaEqn.H
similarity index 86%
rename from applications/solvers/multiphase/interFoam/alphaEqn.H
rename to applications/solvers/multiphase/VoF/alphaEqn.H
index 312c1d6723d..570442a3049 100644
--- a/applications/solvers/multiphase/interFoam/alphaEqn.H
+++ b/applications/solvers/multiphase/VoF/alphaEqn.H
@@ -79,6 +79,8 @@
 
     if (MULESCorr)
     {
+        #include "alphaSuSp.H"
+
         fvScalarMatrix alpha1Eqn
         (
             (
@@ -92,6 +94,8 @@
                 phiCN,
                 upwind<scalar>(mesh, phiCN)
             ).fvmDiv(phiCN, alpha1)
+         ==
+            Su + fvm::Sp(Sp + divU, alpha1)
         );
 
         alpha1Eqn.solve();
@@ -124,6 +128,8 @@
 
     for (int aCorr=0; aCorr<nAlphaCorr; aCorr++)
     {
+        #include "alphaSuSp.H"
+
         surfaceScalarField phir(phic*mixture.nHatf());
 
         tmp<surfaceScalarField> talphaPhiUn
@@ -154,7 +160,17 @@
             tmp<surfaceScalarField> talphaPhiCorr(talphaPhiUn() - alphaPhi);
             volScalarField alpha10("alpha10", alpha1);
 
-            MULES::correct(alpha1, talphaPhiUn(), talphaPhiCorr.ref(), 1, 0);
+            MULES::correct
+            (
+                geometricOneField(),
+                alpha1,
+                talphaPhiUn(),
+                talphaPhiCorr.ref(),
+                Sp,
+                (-Sp*alpha1)(),
+                1,
+                0
+            );
 
             // Under-relax the correction for all but the 1st corrector
             if (aCorr == 0)
@@ -171,7 +187,17 @@
         {
             alphaPhi = talphaPhiUn;
 
-            MULES::explicitSolve(alpha1, phiCN, alphaPhi, 1, 0);
+            MULES::explicitSolve
+            (
+                geometricOneField(),
+                alpha1,
+                phiCN,
+                alphaPhi,
+                Sp,
+                (Su + divU*min(alpha1(), scalar(1)))(),
+                1,
+                0
+            );
         }
 
         alpha2 = 1.0 - alpha1;
@@ -195,7 +221,8 @@
      == fv::EulerDdtScheme<vector>::typeName
     )
     {
-        rhoPhi = alphaPhi*(rho1 - rho2) + phiCN*rho2;
+        #include "rhofs.H"
+        rhoPhi = alphaPhi*(rho1f - rho2f) + phiCN*rho2f;
     }
     else
     {
@@ -206,7 +233,8 @@
         }
 
         // Calculate the end-of-time-step mass flux
-        rhoPhi = alphaPhi*(rho1 - rho2) + phi*rho2;
+        #include "rhofs.H"
+        rhoPhi = alphaPhi*(rho1f - rho2f) + phi*rho2f;
     }
 
     Info<< "Phase-1 volume fraction = "
diff --git a/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/VoF/alphaEqnSubCycle.H
similarity index 100%
rename from applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H
rename to applications/solvers/multiphase/VoF/alphaEqnSubCycle.H
diff --git a/applications/solvers/multiphase/interFoam/setDeltaT.H b/applications/solvers/multiphase/VoF/setDeltaT.H
similarity index 95%
rename from applications/solvers/multiphase/interFoam/setDeltaT.H
rename to applications/solvers/multiphase/VoF/setDeltaT.H
index 9cc860c032e..924d24c8ea7 100644
--- a/applications/solvers/multiphase/interFoam/setDeltaT.H
+++ b/applications/solvers/multiphase/VoF/setDeltaT.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/multiphase/interFoam/setRDeltaT.H b/applications/solvers/multiphase/VoF/setRDeltaT.H
similarity index 100%
rename from applications/solvers/multiphase/interFoam/setRDeltaT.H
rename to applications/solvers/multiphase/VoF/setRDeltaT.H
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index 27e73ef53aa..b947836f65e 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -1,6 +1,6 @@
 EXE_INC = \
     -I. \
-    -I../interFoam \
+    -I../VoF \
     -ItwoPhaseMixtureThermo \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
index 2eaeaa25f4b..b5e66ec33fb 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
@@ -1,7 +1,7 @@
     fvVectorMatrix UEqn
     (
-        fvm::ddt(rho, U)
-      + fvm::div(rhoPhi, U)
+        fvm::ddt(rho, U) + fvm::div(rhoPhi, U)
+      + MRF.DDt(rho, U)
       + turbulence->divDevRhoReff(U)
      ==
         fvOptions(rho, U)
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaControls.H b/applications/solvers/multiphase/compressibleInterFoam/alphaControls.H
deleted file mode 100644
index a99a0b39e28..00000000000
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaControls.H
+++ /dev/null
@@ -1,5 +0,0 @@
-const dictionary& alphaControls = mesh.solverDict(alpha1.name());
-
-label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
-
-label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaEqn.H b/applications/solvers/multiphase/compressibleInterFoam/alphaEqn.H
deleted file mode 100644
index 8105650296f..00000000000
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaEqn.H
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-    word alphaScheme("div(phi,alpha)");
-    word alpharScheme("div(phirb,alpha)");
-
-    surfaceScalarField phir(phic*mixture.nHatf());
-
-    for (int gCorr=0; gCorr<nAlphaCorr; gCorr++)
-    {
-        #include "alphaSuSp.H"
-
-        surfaceScalarField alphaPhi1
-        (
-            fvc::flux
-            (
-                phi,
-                alpha1,
-                alphaScheme
-            )
-          + fvc::flux
-            (
-                -fvc::flux(-phir, alpha2, alpharScheme),
-                alpha1,
-                alpharScheme
-            )
-        );
-
-        MULES::explicitSolve
-        (
-            geometricOneField(),
-            alpha1,
-            phi,
-            alphaPhi1,
-            Sp,
-            Su,
-            1,
-            0
-        );
-
-        surfaceScalarField rho1f(fvc::interpolate(rho1));
-        surfaceScalarField rho2f(fvc::interpolate(rho2));
-        rhoPhi = alphaPhi1*(rho1f - rho2f) + phi*rho2f;
-
-        alpha2 = scalar(1) - alpha1;
-    }
-
-    Info<< "Liquid phase volume fraction = "
-        << alpha1.weightedAverage(mesh.V()).value()
-        << "  Min(" << alpha1.name() << ") = " << min(alpha1).value()
-        << "  Min(" << alpha2.name() << ") = " << min(alpha2).value()
-        << endl;
-}
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/compressibleInterFoam/alphaEqnSubCycle.H
deleted file mode 100644
index 54141d34a78..00000000000
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnSubCycle.H
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-    surfaceScalarField phic(mag(phi/mesh.magSf()));
-    phic = min(mixture.cAlpha()*phic, max(phic));
-
-    volScalarField divU(fvc::div(fvc::absolute(phi, U)));
-
-    if (nAlphaSubCycles > 1)
-    {
-        dimensionedScalar totalDeltaT = runTime.deltaT();
-        surfaceScalarField rhoPhiSum
-        (
-            IOobject
-            (
-                "rhoPhiSum",
-                runTime.timeName(),
-                mesh
-            ),
-            mesh,
-            dimensionedScalar("0", rhoPhi.dimensions(), 0)
-        );
-
-        for
-        (
-            subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
-            !(++alphaSubCycle).end();
-        )
-        {
-            #include "alphaEqn.H"
-            rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi;
-        }
-
-        rhoPhi = rhoPhiSum;
-    }
-    else
-    {
-        #include "alphaEqn.H"
-    }
-}
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H b/applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H
index a1b383e89e2..81309cd091f 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/alphaSuSp.H
@@ -1,37 +1,43 @@
-        volScalarField::Internal Sp
-        (
-            IOobject
-            (
-                "Sp",
-                runTime.timeName(),
-                mesh
-            ),
-            mesh,
-            dimensionedScalar("Sp", dgdt.dimensions(), 0.0)
-        );
+volScalarField::Internal Sp
+(
+    IOobject
+    (
+        "Sp",
+        runTime.timeName(),
+        mesh
+    ),
+    mesh,
+    dimensionedScalar("Sp", dgdt.dimensions(), 0)
+);
 
-        volScalarField::Internal Su
-        (
-            IOobject
-            (
-                "Su",
-                runTime.timeName(),
-                mesh
-            ),
-            // Divergence term is handled explicitly to be
-            // consistent with the explicit transport solution
-            divU*min(alpha1, scalar(1))
-        );
+volScalarField::Internal Su
+(
+    IOobject
+    (
+        "Su",
+        runTime.timeName(),
+        mesh
+    ),
+    mesh,
+    dimensionedScalar("Su", dgdt.dimensions(), 0)
+);
 
-        forAll(dgdt, celli)
-        {
-            if (dgdt[celli] > 0.0 && alpha1[celli] > 0.0)
-            {
-                Sp[celli] -= dgdt[celli]*alpha1[celli];
-                Su[celli] += dgdt[celli]*alpha1[celli];
-            }
-            else if (dgdt[celli] < 0.0 && alpha1[celli] < 1.0)
-            {
-                Sp[celli] += dgdt[celli]*(1.0 - alpha1[celli]);
-            }
-        }
+forAll(dgdt, celli)
+{
+    if (dgdt[celli] > 0.0 && alpha1[celli] > 0.0)
+    {
+        Sp[celli] -= dgdt[celli]*alpha1[celli];
+        Su[celli] += dgdt[celli]*alpha1[celli];
+    }
+    else if (dgdt[celli] < 0.0 && alpha1[celli] < 1.0)
+    {
+        Sp[celli] += dgdt[celli]*(1.0 - alpha1[celli]);
+    }
+}
+
+volScalarField::Internal divU
+(
+    mesh.moving()
+  ? fvc::div(phiCN() + mesh.phi())
+  : fvc::div(phiCN())
+);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleAlphaEqnSubCycle.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleAlphaEqnSubCycle.H
new file mode 100644
index 00000000000..f8d0a158360
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleAlphaEqnSubCycle.H
@@ -0,0 +1,3 @@
+{
+    #include "alphaEqnSubCycle.H"
+}
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index 73e50e5ef64..b44af44a723 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -1,6 +1,7 @@
 EXE_INC = \
+    -I. \
     -I.. \
-    -I../../interFoam \
+    -I../../VoF \
     -I../twoPhaseMixtureThermo \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index 9f09b35184b..f82665a49e4 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
@@ -39,7 +39,10 @@ Description
 
 #include "fvCFD.H"
 #include "dynamicFvMesh.H"
-#include "MULES.H"
+#include "CMULES.H"
+#include "EulerDdtScheme.H"
+#include "localEulerDdtScheme.H"
+#include "CrankNicolsonDdtScheme.H"
 #include "subCycle.H"
 #include "twoPhaseMixture.H"
 #include "twoPhaseMixtureThermo.H"
@@ -47,7 +50,6 @@ Description
 #include "pimpleControl.H"
 #include "fvOptions.H"
 #include "CorrectPhi.H"
-#include "localEulerDdtScheme.H"
 #include "fvcSmooth.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -141,7 +143,7 @@ int main(int argc, char *argv[])
             }
 
             #include "alphaControls.H"
-            #include "alphaEqnSubCycle.H"
+            #include "compressibleAlphaEqnSubCycle.H"
 
             solve(fvm::ddt(rho) + fvc::div(rhoPhi));
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
index d0dbfada563..7733f6a2888 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
@@ -8,6 +8,7 @@
         fvc::flux(HbyA)
       + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, Uf)
     );
+    MRF.makeRelative(phiHbyA);
 
     surfaceScalarField phig
     (
@@ -20,7 +21,7 @@
     phiHbyA += phig;
 
     // Update the pressure BCs to ensure flux consistency
-    constrainPressure(p_rgh, U, phiHbyA, rAUf);
+    constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);
 
     // Make the fluxes relative to the mesh motion
     fvc::makeRelative(phiHbyA, U);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
index bcc28de1bdc..f6ec5d20cd2 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
@@ -36,7 +36,10 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
-#include "MULES.H"
+#include "CMULES.H"
+#include "EulerDdtScheme.H"
+#include "localEulerDdtScheme.H"
+#include "CrankNicolsonDdtScheme.H"
 #include "subCycle.H"
 #include "rhoThermo.H"
 #include "twoPhaseMixture.H"
@@ -44,7 +47,6 @@ Description
 #include "turbulentFluidThermoModel.H"
 #include "pimpleControl.H"
 #include "fvOptions.H"
-#include "localEulerDdtScheme.H"
 #include "fvcSmooth.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/createFields.H b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
index 7af8f15fe4f..9bac4d82592 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
@@ -63,6 +63,7 @@ dimensionedScalar pMin
 );
 
 mesh.setFluxRequired(p_rgh.name());
+mesh.setFluxRequired(alpha1.name());
 
 
 #include "readGravitationalAcceleration.H"
@@ -99,3 +100,22 @@ autoPtr<compressible::turbulenceModel> turbulence
 
 Info<< "Creating field kinetic energy K\n" << endl;
 volScalarField K("K", 0.5*magSqr(U));
+
+// MULES flux from previous time-step
+surfaceScalarField alphaPhi
+(
+    IOobject
+    (
+        "alphaPhi",
+        runTime.timeName(),
+        mesh,
+        IOobject::READ_IF_PRESENT,
+        IOobject::AUTO_WRITE
+    ),
+    phi*fvc::interpolate(alpha1)
+);
+
+// MULES Correction
+tmp<surfaceScalarField> talphaPhiCorr0;
+
+#include "createMRF.H"
diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
index a40a98fd0ac..51c58ba5368 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
@@ -8,6 +8,7 @@
         fvc::flux(HbyA)
       + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
     );
+    MRF.makeRelative(phiHbyA);
 
     surfaceScalarField phig
     (
@@ -20,7 +21,7 @@
     phiHbyA += phig;
 
     // Update the pressure BCs to ensure flux consistency
-    constrainPressure(p_rgh, U, phiHbyA, rAUf);
+    constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);
 
     tmp<fvScalarMatrix> p_rghEqnComp1;
     tmp<fvScalarMatrix> p_rghEqnComp2;
diff --git a/applications/solvers/multiphase/compressibleInterFoam/rhofs.H b/applications/solvers/multiphase/compressibleInterFoam/rhofs.H
new file mode 100644
index 00000000000..67dc10f3784
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/rhofs.H
@@ -0,0 +1,2 @@
+surfaceScalarField rho1f(fvc::interpolate(rho1));
+surfaceScalarField rho2f(fvc::interpolate(rho2));
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
index f3010e0e57f..9df3add9e22 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
@@ -1,5 +1,6 @@
 EXE_INC = \
     -I. \
+    -I../VoF \
     -I../interFoam \
     -ImultiphaseMixtureThermo/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
diff --git a/applications/solvers/multiphase/interFoam/Make/options b/applications/solvers/multiphase/interFoam/Make/options
index cfe4a920729..7f2fed1d162 100644
--- a/applications/solvers/multiphase/interFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I../VoF \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
diff --git a/applications/solvers/multiphase/interFoam/alphaSuSp.H b/applications/solvers/multiphase/interFoam/alphaSuSp.H
new file mode 100644
index 00000000000..0b8e05e1871
--- /dev/null
+++ b/applications/solvers/multiphase/interFoam/alphaSuSp.H
@@ -0,0 +1,3 @@
+zeroField Su;
+zeroField Sp;
+zeroField divU;
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
index bceea20c814..3d028feaf7e 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
@@ -1,6 +1,7 @@
 EXE_INC = \
     -I. \
     -I.. \
+    -I../../VoF \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
index 2c7df14ae78..aafc10bcc45 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
@@ -28,7 +28,7 @@
     phiHbyA += phig;
 
     // Update the pressure BCs to ensure flux consistency
-    constrainPressure(p_rgh, U, phiHbyA, rAUf);
+    constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);
 
     while (pimple.correctNonOrthogonal())
     {
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
index ce7222ff1bc..a07545b2163 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
@@ -1,6 +1,7 @@
 EXE_INC = \
     -I. \
     -I.. \
+    -I../../VoF \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -IimmiscibleIncompressibleThreePhaseMixture \
     -IincompressibleThreePhaseMixture \
diff --git a/applications/solvers/multiphase/interFoam/rhofs.H b/applications/solvers/multiphase/interFoam/rhofs.H
new file mode 100644
index 00000000000..5949bf1e0a6
--- /dev/null
+++ b/applications/solvers/multiphase/interFoam/rhofs.H
@@ -0,0 +1,2 @@
+const dimensionedScalar& rho1f(rho1);
+const dimensionedScalar& rho2f(rho2);
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
index 99850d69be7..576e7aa224c 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
@@ -1,5 +1,6 @@
 EXE_INC = \
     -I. \
+    -I../VoF \
     -I../interFoam \
     -ImultiphaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels \
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
index 1a210c20e68..b7d051f1ca8 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
@@ -1,5 +1,6 @@
 EXE_INC = \
     -I.. \
+    -I../../VoF \
     -I../../interFoam/interDyMFoam \
     -I../../interFoam \
     -I../multiphaseMixture/lnInclude \
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options b/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options
index 4dfc63419d1..e9549744cea 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options
@@ -1,6 +1,6 @@
 EXE_INC = \
     -I. \
-    -I../interFoam \
+    -I../VoF \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
diff --git a/src/OpenFOAM/fields/Fields/zeroField/zeroField.H b/src/OpenFOAM/fields/Fields/zeroField/zeroField.H
index f8e53959e63..15f25f504db 100644
--- a/src/OpenFOAM/fields/Fields/zeroField/zeroField.H
+++ b/src/OpenFOAM/fields/Fields/zeroField/zeroField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -66,6 +66,10 @@ public:
         inline scalar operator[](const label) const;
 
         inline zeroField field() const;
+
+        inline zeroField operator()() const;
+
+        inline zeroField operator-() const;
 };
 
 
diff --git a/src/OpenFOAM/fields/Fields/zeroField/zeroFieldI.H b/src/OpenFOAM/fields/Fields/zeroField/zeroFieldI.H
index fb63a48bf9e..59287815fd5 100644
--- a/src/OpenFOAM/fields/Fields/zeroField/zeroFieldI.H
+++ b/src/OpenFOAM/fields/Fields/zeroField/zeroFieldI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -39,4 +39,80 @@ inline Foam::zeroField Foam::zeroField::field() const
 }
 
 
+inline Foam::zeroField Foam::zeroField::operator()() const
+{
+    return zeroField();
+}
+
+
+inline Foam::zeroField Foam::zeroField::operator-() const
+{
+    return zeroField();
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+inline const zeroField operator+(const zeroField&, const zeroField&)
+{
+    return zeroField();
+}
+
+template<class Type>
+inline const Type& operator+(const Type& t, const zeroField&)
+{
+    return t;
+}
+
+template<class Type>
+inline const Type& operator+(const zeroField&, const Type& t)
+{
+    return t;
+}
+
+inline const zeroField operator-(const zeroField&, const zeroField&)
+{
+    return zeroField();
+}
+
+template<class Type>
+inline const Type& operator-(const Type& t, const zeroField&)
+{
+    return t;
+}
+
+template<class Type>
+inline Type operator-(const zeroField&, const Type& t)
+{
+    return -t;
+}
+
+template<class Type>
+inline zeroField operator*(const Type& t, const zeroField&)
+{
+    return zeroField();
+}
+
+template<class Type>
+inline zeroField operator*(const zeroField&, const Type& t)
+{
+    return zeroField();
+}
+
+template<class Type>
+inline zeroField operator/(const zeroField&, const Type& t)
+{
+    return zeroField();
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroField.H b/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroField.H
index 0eb7c87235d..2a9b4fe591a 100644
--- a/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroField.H
+++ b/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -72,6 +72,8 @@ public:
 
         inline zeroField field() const;
 
+        inline zeroField operator()() const;
+
         inline zeroField oldTime() const;
 
         inline zeroFieldField boundaryField() const;
@@ -84,7 +86,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    #include "geometricZeroFieldI.H"
+#include "geometricZeroFieldI.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroFieldI.H b/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroFieldI.H
index d6188702d58..ca5d89f3f05 100644
--- a/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroFieldI.H
+++ b/src/OpenFOAM/fields/GeometricFields/geometricZeroField/geometricZeroFieldI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,6 +42,11 @@ inline Foam::zeroField Foam::geometricZeroField::field() const
     return zeroField();
 }
 
+inline Foam::zeroField Foam::geometricZeroField::operator()() const
+{
+    return zeroField();
+}
+
 inline Foam::zeroField Foam::geometricZeroField::oldTime() const
 {
     return zeroField();
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/controlDict b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/controlDict
index c1d09089d0e..dc0b7630a10 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/controlDict
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/controlDict
@@ -29,15 +29,15 @@ deltaT          0.0001;
 
 writeControl    adjustableRunTime;
 
-writeInterval   0.005;
+writeInterval   0.01;
 
 purgeWrite      0;
 
-writeFormat     ascii;
+writeFormat     binary;
 
 writePrecision  8;
 
-writeCompression compressed;
+writeCompression off;
 
 timeFormat      general;
 
@@ -47,10 +47,9 @@ runTimeModifiable yes;
 
 adjustTimeStep  yes;
 
-maxCo           0.25;
-
+maxCo           0.5;
+maxAlphaCo      0.5;
 maxDeltaT       1;
-maxAlphaCo      1;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
index 7c97abb05a8..041112222d9 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
@@ -17,11 +17,19 @@ FoamFile
 
 solvers
 {
-    alpha.water
+    "alpha.water.*"
     {
         nAlphaCorr      1;
-        nAlphaSubCycles 1;
+        nAlphaSubCycles 2;
         cAlpha          1;
+
+        MULESCorr       no;
+        nLimiterIter    5;
+
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-8;
+        relTol          0;
     }
 
     ".*(rho|rhoFinal)"
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/controlDict b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/controlDict
index bb61973589f..a049876aa2b 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/controlDict
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/controlDict
@@ -29,7 +29,7 @@ deltaT          0.0001;
 
 writeControl    adjustableRunTime;
 
-writeInterval   0.005;
+writeInterval   0.01;
 
 purgeWrite      0;
 
@@ -47,10 +47,9 @@ runTimeModifiable yes;
 
 adjustTimeStep  yes;
 
-maxCo           0.25;
-
+maxCo           0.5;
+maxAlphaCo      0.5;
 maxDeltaT       1;
-maxAlphaCo      1;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
index f75504c6755..dac0efd3b8b 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
@@ -17,11 +17,19 @@ FoamFile
 
 solvers
 {
-    alpha.water
+    "alpha.water.*"
     {
         nAlphaCorr      1;
-        nAlphaSubCycles 1;
+        nAlphaSubCycles 2;
         cAlpha          1;
+
+        MULESCorr       no;
+        nLimiterIter    5;
+
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-8;
+        relTol          0;
     }
 
     pcorr
-- 
GitLab


From dd8b8bceac6d0c83bfa0fa486c8846d20c711159 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 9 Feb 2017 17:47:56 +0000
Subject: [PATCH 079/277] csvSetWriter: Corrected axis header

Resolves bug-report https://bugs.openfoam.org/view.php?id=2455
---
 src/OpenFOAM/primitives/strings/word/wordI.H    |  5 +----
 .../sampledSetWriters/csv/csvSetWriter.C        | 17 ++++++++++++-----
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/OpenFOAM/primitives/strings/word/wordI.H b/src/OpenFOAM/primitives/strings/word/wordI.H
index 587adfac99b..7873387a3bb 100644
--- a/src/OpenFOAM/primitives/strings/word/wordI.H
+++ b/src/OpenFOAM/primitives/strings/word/wordI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,6 @@ License
 
 #include <cctype>
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 inline void Foam::word::stripInvalid()
@@ -175,6 +173,5 @@ inline Foam::word Foam::operator&(const word& a, const word& b)
     }
 }
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 // ************************************************************************* //
diff --git a/src/fileFormats/sampledSetWriters/csv/csvSetWriter.C b/src/fileFormats/sampledSetWriters/csv/csvSetWriter.C
index 8d69d32cb37..e87fb0338c3 100644
--- a/src/fileFormats/sampledSetWriters/csv/csvSetWriter.C
+++ b/src/fileFormats/sampledSetWriters/csv/csvSetWriter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -147,7 +147,7 @@ namespace Foam
 
         os << nl;
     }
-} // end namespace
+}
 
 
 template<class Type>
@@ -183,17 +183,24 @@ void Foam::csvSetWriter<Type>::writeCoordHeader
     Ostream& os
 ) const
 {
+    const word axisName(points.axis());
+
     if (points.hasVectorAxis())
     {
-        forAll(points, i)
+        for
+        (
+            word::const_iterator iter = axisName.begin();
+            iter != axisName.end();
+            ++iter
+        )
         {
-            os << points.axis()[i];
+            os << *iter;
             writeSeparator(os);
         }
     }
     else
     {
-        os << points.axis();
+        os << axisName;
         writeSeparator(os);
     }
 }
-- 
GitLab


From ae9522f01751a307da78842b87b7bb59a28b195d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sun, 12 Feb 2017 17:19:27 +0000
Subject: [PATCH 080/277] functionObjects::scalarTransport: Added support for
 optional laminar and turbulent diffusion coefficients

Description
    Evolves a passive scalar transport equation.

    - To specify the field name set the \c field entry
    - To employ the same numerical schemes as another field set
      the \c schemesField entry,
    - A constant diffusivity may be specified with the \c D entry,

    - Alternatively if a turbulence model is available a turbulent diffusivity
      may be constructed from the laminar and turbulent viscosities using the
      optional diffusivity coefficients \c alphaD and \c alphaDt (which default
      to 1):
      \verbatim
          D = alphaD*nu + alphaDt*nut
      \endverbatim

Resolves feature request https://bugs.openfoam.org/view.php?id=2453
---
 .../solvers/scalarTransport/scalarTransport.C | 12 ++++------
 .../solvers/scalarTransport/scalarTransport.H | 23 +++++++++++++++----
 2 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.C b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
index 954a5d6e4de..bcb02d7ec4b 100644
--- a/src/functionObjects/solvers/scalarTransport/scalarTransport.C
+++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
@@ -89,7 +89,7 @@ Foam::tmp<Foam::volScalarField> Foam::functionObjects::scalarTransport::D
             turbulenceModel::propertiesName
         );
 
-        return model.nuEff();
+        return alphaD_*model.nu() + alphaDt_*model.nut();
     }
     else if (mesh_.foundObject<cmpModel>(turbulenceModel::propertiesName))
     {
@@ -98,7 +98,7 @@ Foam::tmp<Foam::volScalarField> Foam::functionObjects::scalarTransport::D
             turbulenceModel::propertiesName
         );
 
-        return model.muEff();
+        return alphaD_*model.mu() + alphaDt_*model.mut();
     }
     else
     {
@@ -169,11 +169,9 @@ bool Foam::functionObjects::scalarTransport::read(const dictionary& dict)
     rhoName_ = dict.lookupOrDefault<word>("rho", "rho");
     schemesField_ = dict.lookupOrDefault<word>("schemesField", fieldName_);
 
-    constantD_ = false;
-    if (dict.readIfPresent("D", D_))
-    {
-        constantD_ = true;
-    }
+    constantD_ = dict.readIfPresent("D", D_);
+    alphaD_ = dict.lookupOrDefault("alphat", 1.0);
+    alphaDt_ = dict.lookupOrDefault("alphaDt", 1.0);
 
     dict.readIfPresent("nCorr", nCorr_);
 
diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.H b/src/functionObjects/solvers/scalarTransport/scalarTransport.H
index 86c92bdee77..8d056cbe3a9 100644
--- a/src/functionObjects/solvers/scalarTransport/scalarTransport.H
+++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,11 +30,18 @@ Group
 Description
     Evolves a passive scalar transport equation.
 
-    - To specify the field name set the 'field' entry
+    - To specify the field name set the \c field entry
     - To employ the same numerical schemes as another field set
-      the 'schemesField' entry,
-    - The diffusivity can be set manually using the 'D' entry, or retrieved
-      from the turbulence model (if applicable).
+      the \c schemesField entry,
+    - A constant diffusivity may be specified with the \c D entry,
+
+    - Alternatively if a turbulence model is available a turbulent diffusivity
+      may be constructed from the laminar and turbulent viscosities using the
+      optional diffusivity coefficients \c alphaD and \c alphaDt (which default
+      to 1):
+      \verbatim
+          D = alphaD*nu + alphaDt*nut
+      \endverbatim
 
 See also
     Foam::functionObjects::fvMeshFunctionObject
@@ -83,6 +90,12 @@ class scalarTransport
         //- Flag to indicate whether a constant, uniform D_ is specified
         bool constantD_;
 
+        //- Laminar diffusion coefficient (optional)
+        scalar alphaD_;
+
+        //- Turbulent diffusion coefficient (optional)
+        scalar alphaDt_;
+
         //- Number of corrector iterations (optional)
         label nCorr_;
 
-- 
GitLab


From 2f5185a048787b2b9ca58902c27ced80e9aa177d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 13 Feb 2017 18:25:33 +0000
Subject: [PATCH 081/277] functionObjects::scalarTransport: Corrected typo

---
 src/functionObjects/solvers/scalarTransport/scalarTransport.C | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.C b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
index bcb02d7ec4b..a0d14dda4a8 100644
--- a/src/functionObjects/solvers/scalarTransport/scalarTransport.C
+++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
@@ -170,7 +170,7 @@ bool Foam::functionObjects::scalarTransport::read(const dictionary& dict)
     schemesField_ = dict.lookupOrDefault<word>("schemesField", fieldName_);
 
     constantD_ = dict.readIfPresent("D", D_);
-    alphaD_ = dict.lookupOrDefault("alphat", 1.0);
+    alphaD_ = dict.lookupOrDefault("alphaD", 1.0);
     alphaDt_ = dict.lookupOrDefault("alphaDt", 1.0);
 
     dict.readIfPresent("nCorr", nCorr_);
-- 
GitLab


From c52e4b58a17f05e98183422b8c6faa7b54241362 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Feb 2017 11:22:14 +0000
Subject: [PATCH 082/277] thermophysicalModels: Changed specie thermodynamics
 from mole to mass basis

The fundamental properties provided by the specie class hierarchy were
mole-based, i.e. provide the properties per mole whereas the fundamental
properties provided by the liquidProperties and solidProperties classes are
mass-based, i.e. per unit mass.  This inconsistency made it impossible to
instantiate the thermodynamics packages (rhoThermo, psiThermo) used by the FV
transport solvers on liquidProperties.  In order to combine VoF with film and/or
Lagrangian models it is essential that the physical propertied of the three
representations of the liquid are consistent which means that it is necessary to
instantiate the thermodynamics packages on liquidProperties.  This requires
either liquidProperties to be rewritten mole-based or the specie classes to be
rewritten mass-based.  Given that most of OpenFOAM solvers operate
mass-based (solve for mass-fractions and provide mass-fractions to sub-models it
is more consistent and efficient if the low-level thermodynamics is also
mass-based.

This commit includes all of the changes necessary for all of the thermodynamics
in OpenFOAM to operate mass-based and supports the instantiation of
thermodynamics packages on liquidProperties.

Note that most users, developers and contributors to OpenFOAM will not notice
any difference in the operation of the code except that the confusing

    nMoles     1;

entries in the thermophysicalProperties files are no longer needed or used and
have been removed in this commet.  The only substantial change to the internals
is that species thermodynamics are now "mixed" with mass rather than mole
fractions.  This is more convenient except for defining reaction equilibrium
thermodynamics for which the molar rather than mass composition is usually know.
The consequence of this can be seen in the adiabaticFlameT, equilibriumCO and
equilibriumFlameT utilities in which the species thermodynamics are
pre-multiplied by their molecular mass to effectively convert them to mole-basis
to simplify the definition of the reaction equilibrium thermodynamics, e.g. in
equilibriumCO

    // Reactants (mole-based)
    thermo FUEL(thermoData.subDict(fuelName)); FUEL *= FUEL.W();

    // Oxidant (mole-based)
    thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
    thermo N2(thermoData.subDict("N2")); N2 *= N2.W();

    // Intermediates (mole-based)
    thermo H2(thermoData.subDict("H2")); H2 *= H2.W();

    // Products (mole-based)
    thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
    thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
    thermo CO(thermoData.subDict("CO")); CO *= CO.W();

    // Product dissociation reactions

    thermo CO2BreakUp
    (
        CO2 == CO + 0.5*O2
    );

    thermo H2OBreakUp
    (
        H2O == H2 + 0.5*O2
    );

Please report any problems with this substantial but necessary rewrite of the
thermodynamic at https://bugs.openfoam.org

Henry G. Weller
CFD Direct Ltd.
---
 .../solvers/combustion/fireFoam/Make/options  |    3 -
 .../rhoSimpleFoam/rhoPorousSimpleFoam/EEqn.H  |   26 -
 .../rhoPorousSimpleFoam/createFields.H        |   11 +
 .../rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H  |    2 +
 .../lagrangian/coalChemistryFoam/Make/options |    4 -
 .../reactingParcelFilmFoam/Make/options       |    3 -
 .../reactingParcelFoam/Make/options           |    4 -
 .../simpleReactingParcelFoam/Make/options     |    4 -
 .../solvers/lagrangian/sprayFoam/Make/options |    4 -
 .../sprayFoam/sprayDyMFoam/Make/options       |    4 -
 .../sprayFoam/sprayEngineFoam/Make/options    |    4 -
 .../interfacialCompositionModels/Make/options |    2 -
 applications/test/thermoMixture/thermoDict    |    2 -
 .../miscellaneous/foamList/Make/options       |    2 -
 .../adiabaticFlameT/adiabaticFlameT.C         |   82 +-
 .../equilibriumCO/equilibriumCO.C             |   52 +-
 .../equilibriumFlameT/equilibriumFlameT.C     |   29 +-
 .../constant/thermophysicalProperties         |    1 -
 etc/thermoData/thermoData                     | 2332 -----------------
 .../thermalBaffle1DFvPatchScalarField.H       |    3 +-
 src/lagrangian/coalCombustion/Make/options    |    4 -
 src/lagrangian/intermediate/Make/options      |    4 -
 src/lagrangian/spray/Make/options             |    4 -
 src/lagrangian/turbulence/Make/options        |    4 -
 src/regionModels/regionCoupling/Make/options  |    2 -
 .../surfaceFilmModels/Make/options            |    4 -
 .../wallFunctions/Make/options                |    4 -
 .../liquidFilmThermo/liquidFilmThermo.C       |    4 +-
 .../thermalBaffleFvPatchScalarField.H         |    3 +-
 .../SLGThermo/Make/options                    |    2 -
 .../basic/heThermo/heThermo.C                 |   40 +-
 src/thermophysicalModels/properties/Allwmake  |    2 -
 .../liquidMixtureProperties/Make/files        |    3 -
 .../liquidMixtureProperties/Make/options      |   10 -
 .../properties/liquidProperties/Ar/Ar.C       |   22 +-
 .../properties/liquidProperties/Ar/Ar.H       |   14 +-
 .../properties/liquidProperties/Ar/ArI.H      |   10 +-
 .../liquidProperties/C10H22/C10H22.C          |   22 +-
 .../liquidProperties/C10H22/C10H22.H          |   14 +-
 .../liquidProperties/C10H22/C10H22I.H         |   10 +-
 .../liquidProperties/C12H26/C12H26.C          |   22 +-
 .../liquidProperties/C12H26/C12H26.H          |   14 +-
 .../liquidProperties/C12H26/C12H26I.H         |   10 +-
 .../liquidProperties/C13H28/C13H28.C          |   22 +-
 .../liquidProperties/C13H28/C13H28.H          |   14 +-
 .../liquidProperties/C13H28/C13H28I.H         |   10 +-
 .../liquidProperties/C14H30/C14H30.C          |   22 +-
 .../liquidProperties/C14H30/C14H30.H          |   14 +-
 .../liquidProperties/C14H30/C14H30I.H         |   10 +-
 .../liquidProperties/C16H34/C16H34.C          |   22 +-
 .../liquidProperties/C16H34/C16H34.H          |   14 +-
 .../liquidProperties/C16H34/C16H34I.H         |   10 +-
 .../liquidProperties/C2H5OH/C2H5OH.C          |   22 +-
 .../liquidProperties/C2H5OH/C2H5OH.H          |   14 +-
 .../liquidProperties/C2H5OH/C2H5OHI.H         |   10 +-
 .../properties/liquidProperties/C2H6/C2H6.C   |   22 +-
 .../properties/liquidProperties/C2H6/C2H6.H   |   14 +-
 .../properties/liquidProperties/C2H6/C2H6I.H  |   10 +-
 .../properties/liquidProperties/C2H6O/C2H6O.C |   22 +-
 .../properties/liquidProperties/C2H6O/C2H6O.H |   14 +-
 .../liquidProperties/C2H6O/C2H6OI.H           |   10 +-
 .../properties/liquidProperties/C3H6O/C3H6O.C |   22 +-
 .../properties/liquidProperties/C3H6O/C3H6O.H |   14 +-
 .../liquidProperties/C3H6O/C3H6OI.H           |   10 +-
 .../properties/liquidProperties/C3H8/C3H8.C   |   22 +-
 .../properties/liquidProperties/C3H8/C3H8.H   |   14 +-
 .../properties/liquidProperties/C3H8/C3H8I.H  |   10 +-
 .../liquidProperties/C4H10O/C4H10O.C          |   22 +-
 .../liquidProperties/C4H10O/C4H10O.H          |   14 +-
 .../liquidProperties/C4H10O/C4H10OI.H         |   10 +-
 .../properties/liquidProperties/C6H14/C6H14.C |   22 +-
 .../properties/liquidProperties/C6H14/C6H14.H |   14 +-
 .../liquidProperties/C6H14/C6H14I.H           |   10 +-
 .../properties/liquidProperties/C6H6/C6H6.C   |   22 +-
 .../properties/liquidProperties/C6H6/C6H6.H   |   14 +-
 .../properties/liquidProperties/C6H6/C6H6I.H  |   10 +-
 .../properties/liquidProperties/C7H16/C7H16.C |   22 +-
 .../properties/liquidProperties/C7H16/C7H16.H |   14 +-
 .../liquidProperties/C7H16/C7H16I.H           |   10 +-
 .../properties/liquidProperties/C7H8/C7H8.C   |   22 +-
 .../properties/liquidProperties/C7H8/C7H8.H   |   14 +-
 .../properties/liquidProperties/C7H8/C7H8I.H  |   10 +-
 .../properties/liquidProperties/C8H10/C8H10.C |   22 +-
 .../properties/liquidProperties/C8H10/C8H10.H |   14 +-
 .../liquidProperties/C8H10/C8H10I.H           |   10 +-
 .../properties/liquidProperties/C8H18/C8H18.C |   22 +-
 .../properties/liquidProperties/C8H18/C8H18.H |   14 +-
 .../liquidProperties/C8H18/C8H18I.H           |   10 +-
 .../properties/liquidProperties/C9H20/C9H20.C |   22 +-
 .../properties/liquidProperties/C9H20/C9H20.H |   14 +-
 .../liquidProperties/C9H20/C9H20I.H           |   10 +-
 .../properties/liquidProperties/CH3OH/CH3OH.C |   22 +-
 .../properties/liquidProperties/CH3OH/CH3OH.H |   14 +-
 .../liquidProperties/CH3OH/CH3OHI.H           |   10 +-
 .../liquidProperties/CH4N2O/CH4N2O.C          |   22 +-
 .../liquidProperties/CH4N2O/CH4N2O.H          |   14 +-
 .../liquidProperties/CH4N2O/CH4N2OI.H         |    8 +-
 .../properties/liquidProperties/H2O/H2O.C     |   50 +-
 .../properties/liquidProperties/H2O/H2O.H     |   14 +-
 .../properties/liquidProperties/H2O/H2OI.H    |   10 +-
 .../liquidProperties/IC8H18/IC8H18.C          |   22 +-
 .../liquidProperties/IC8H18/IC8H18.H          |   14 +-
 .../liquidProperties/IC8H18/IC8H18I.H         |   10 +-
 .../properties/liquidProperties/IDEA/IDEA.C   |   22 +-
 .../properties/liquidProperties/IDEA/IDEA.H   |   14 +-
 .../properties/liquidProperties/IDEA/IDEAI.H  |   10 +-
 .../properties/liquidProperties/MB/MB.C       |   22 +-
 .../properties/liquidProperties/MB/MB.H       |   14 +-
 .../properties/liquidProperties/MB/MBI.H      |   10 +-
 .../properties/liquidProperties/Make/files    |    2 +
 .../properties/liquidProperties/Make/options  |    2 +
 .../properties/liquidProperties/N2/N2.C       |   22 +-
 .../properties/liquidProperties/N2/N2.H       |   14 +-
 .../properties/liquidProperties/N2/N2I.H      |   10 +-
 .../liquidProperties/aC10H7CH3/aC10H7CH3.C    |   22 +-
 .../liquidProperties/aC10H7CH3/aC10H7CH3.H    |   14 +-
 .../liquidProperties/aC10H7CH3/aC10H7CH3I.H   |   10 +-
 .../liquidProperties/bC10H7CH3/bC10H7CH3.C    |   22 +-
 .../liquidProperties/bC10H7CH3/bC10H7CH3.H    |   14 +-
 .../liquidProperties/bC10H7CH3/bC10H7CH3I.H   |   10 +-
 .../liquidProperties/iC3H8O/iC3H8O.C          |   22 +-
 .../liquidProperties/iC3H8O/iC3H8O.H          |   12 +-
 .../liquidProperties/iC3H8O/iC3H8OI.H         |    8 +-
 .../liquidMixtureProperties.C                 |    8 +-
 .../liquidMixtureProperties.H                 |    4 +-
 .../liquidProperties/liquidProperties.C       |   50 +-
 .../liquidProperties/liquidProperties.H       |   64 +-
 .../liquidProperties/liquidPropertiesI.H      |   50 +-
 .../liquidProperties/nC3H8O/nC3H8O.C          |   22 +-
 .../liquidProperties/nC3H8O/nC3H8O.H          |   12 +-
 .../liquidProperties/nC3H8O/nC3H8OI.H         |    8 +-
 .../solidMixtureProperties/Make/files         |    3 -
 .../solidMixtureProperties/Make/options       |    3 -
 .../properties/solidProperties/Make/files     |    1 +
 .../solidMixtureProperties.C                  |    2 +-
 .../solidMixtureProperties.H                  |    2 +-
 .../solidProperties/solidProperties.C         |   12 +-
 .../solidProperties/solidProperties.H         |    6 +-
 .../solidProperties/solidPropertiesI.H        |    6 +-
 .../radiation/Make/options                    |    4 -
 .../chemkinReader/chemkinLexer.L              |    9 +-
 .../mixtures/SpecieMixture/SpecieMixture.C    |   12 +-
 .../mixtures/SpecieMixture/SpecieMixture.H    |    5 +-
 .../basicSpecieMixture/basicSpecieMixture.H   |    5 +-
 .../mixtures/egrMixture/egrMixture.C          |    8 +-
 .../homogeneousMixture/homogeneousMixture.C   |    6 +-
 .../inhomogeneousMixture.C                    |    8 +-
 .../multiComponentMixture.C                   |   14 +-
 .../veryInhomogeneousMixture.C                |    8 +-
 .../psiuReactionThermo/psiuReactionThermos.C  |   15 +-
 .../rhoReactionThermo/rhoReactionThermos.C    |    6 +-
 .../const/constAnIsoSolidTransport.H          |    6 +-
 .../const/constAnIsoSolidTransportI.H         |   25 +-
 .../transport/const/constIsoSolidTransport.H  |    3 +-
 .../transport/const/constIsoSolidTransportI.H |   26 +-
 .../exponential/exponentialSolidTransport.H   |    3 +-
 .../exponential/exponentialSolidTransportI.H  |   31 +-
 .../polynomial/polynomialSolidTransport.H     |   29 +-
 .../polynomial/polynomialSolidTransportI.H    |   67 +-
 .../equationOfState/Boussinesq/Boussinesq.C   |    2 +-
 .../equationOfState/Boussinesq/Boussinesq.H   |   33 +-
 .../equationOfState/Boussinesq/BoussinesqI.H  |  111 +-
 .../PengRobinsonGas/PengRobinsonGas.C         |    2 +-
 .../PengRobinsonGas/PengRobinsonGas.H         |   35 +-
 .../PengRobinsonGas/PengRobinsonGasI.H        |  287 +-
 .../adiabaticPerfectFluid.C                   |    2 +-
 .../adiabaticPerfectFluid.H                   |   35 +-
 .../adiabaticPerfectFluidI.H                  |  125 +-
 .../icoPolynomial/icoPolynomial.C             |   14 +-
 .../icoPolynomial/icoPolynomial.H             |   33 +-
 .../icoPolynomial/icoPolynomialI.H            |  103 +-
 .../incompressiblePerfectGas.C                |    2 +-
 .../incompressiblePerfectGas.H                |   33 +-
 .../incompressiblePerfectGasI.H               |   95 +-
 .../specie/equationOfState/linear/linear.C    |    2 +-
 .../specie/equationOfState/linear/linear.H    |   33 +-
 .../specie/equationOfState/linear/linearI.H   |  107 +-
 .../perfectFluid/perfectFluid.C               |    2 +-
 .../perfectFluid/perfectFluid.H               |   33 +-
 .../perfectFluid/perfectFluidI.H              |  109 +-
 .../equationOfState/perfectGas/perfectGas.C   |    2 +-
 .../equationOfState/perfectGas/perfectGas.H   |   33 +-
 .../equationOfState/perfectGas/perfectGasI.H  |   44 +-
 .../equationOfState/rhoConst/rhoConst.H       |   33 +-
 .../equationOfState/rhoConst/rhoConstI.H      |   96 +-
 .../reaction/Reactions/Reaction/Reaction.C    |   46 +-
 .../specie/specie/specie.C                    |   13 +-
 .../specie/specie/specie.H                    |   18 +-
 .../specie/specie/specieI.H                   |   98 +-
 .../absoluteEnthalpy/absoluteEnthalpy.H       |   26 +-
 .../absoluteInternalEnergy.H                  |   27 +-
 .../specie/thermo/eConst/eConstThermo.C       |   16 +-
 .../specie/thermo/eConst/eConstThermo.H       |   38 +-
 .../specie/thermo/eConst/eConstThermoI.H      |  116 +-
 .../specie/thermo/hConst/hConstThermo.C       |   16 +-
 .../specie/thermo/hConst/hConstThermo.H       |   36 +-
 .../specie/thermo/hConst/hConstThermoI.H      |  118 +-
 .../thermo/hPolynomial/hPolynomialThermo.C    |   22 +-
 .../thermo/hPolynomial/hPolynomialThermo.H    |   36 +-
 .../thermo/hPolynomial/hPolynomialThermoI.H   |  144 +-
 .../specie/thermo/hPower/hPowerThermo.C       |   10 +-
 .../specie/thermo/hPower/hPowerThermo.H       |   30 +-
 .../specie/thermo/hPower/hPowerThermoI.H      |  141 +-
 .../specie/thermo/hRefConst/hRefConstThermo.C |   22 +-
 .../specie/thermo/hRefConst/hRefConstThermo.H |   36 +-
 .../thermo/hRefConst/hRefConstThermoI.H       |  128 +-
 .../specie/thermo/janaf/janafThermo.C         |   51 +-
 .../specie/thermo/janaf/janafThermo.H         |   42 +-
 .../specie/thermo/janaf/janafThermoI.H        |  329 ++-
 .../sensibleEnthalpy/sensibleEnthalpy.H       |   26 +-
 .../sensibleInternalEnergy.H                  |   26 +-
 .../specie/thermo/thermo/thermo.H             |  139 +-
 .../specie/thermo/thermo/thermoI.H            |  146 +-
 .../specie/transport/const/constTransport.H   |   30 +-
 .../specie/transport/const/constTransportI.H  |   92 +-
 .../logPolynomial/logPolynomialTransport.C    |   20 +-
 .../logPolynomial/logPolynomialTransport.H    |   31 +-
 .../logPolynomial/logPolynomialTransportI.H   |  103 +-
 .../polynomial/polynomialTransport.C          |   20 +-
 .../polynomial/polynomialTransport.H          |   31 +-
 .../polynomial/polynomialTransportI.H         |  103 +-
 .../sutherland/sutherlandTransport.H          |   30 +-
 .../sutherland/sutherlandTransportI.H         |   99 +-
 .../constant/thermophysicalProperties         |    3 -
 .../constant/thermophysicalProperties         |   41 +-
 .../thermophysicalProperties.hydrogen         |    2 -
 .../constant/thermophysicalProperties         |    3 -
 .../constant/pyrolysisRegion/thermo.solid     |    2 -
 .../pyrolysisRegion/thermophysicalProperties  |    1 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/panelRegion/thermo.solid         |    2 -
 .../panelRegion/thermophysicalProperties      |    1 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGasGRI        |   53 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGasGRI        |   53 -
 .../constant/thermo.compressibleGas           |    5 -
 .../constant/thermo.compressibleGasGRI        |   53 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../cavity/constant/thermophysicalProperties  |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../prism/constant/thermophysicalProperties   |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../hotRoom/constant/thermophysicalProperties |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../include/1DBaffle/1DbaffleSolidThermo      |    1 -
 .../include/3DBaffle/3DbaffleSolidThermo      |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../constant/thermophysicalProperties         |    1 -
 .../bottomWater/thermophysicalProperties      |    1 -
 .../constant/heater/thermophysicalProperties  |    1 -
 .../constant/topAir/thermophysicalProperties  |    1 -
 .../bottomAir/thermophysicalProperties        |    1 -
 .../constant/heater/thermophysicalProperties  |    1 -
 .../constant/air/thermophysicalProperties     |    1 -
 .../constant/porous/thermophysicalProperties  |    1 -
 .../bottomAir/thermophysicalProperties        |    1 -
 .../constant/heater/thermophysicalProperties  |    1 -
 .../simplifiedSiwek/constant/foam.dat         |    6 -
 .../cylinder/constant/foam.dat                |    3 -
 .../hotBoxes/constant/foam.dat                |    3 -
 .../rivuletPanel/constant/foam.dat            |    3 -
 .../splashPanel/constant/foam.dat             |    3 -
 .../constant/thermo.compressibleGas           |    5 -
 .../filter/constant/thermo.incompressiblePoly |    4 -
 .../constant/thermo.incompressiblePoly        |    4 -
 .../constant/thermo.incompressiblePoly        |    3 -
 .../constant/thermo.incompressiblePoly        |    3 -
 .../constant/thermo.incompressiblePoly        |    3 -
 .../OpenCFD/constant/thermophysicalProperties |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.mercury |    1 -
 .../constant/thermophysicalProperties.oil     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.mercury |    1 -
 .../constant/thermophysicalProperties.oil     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.gas     |    1 -
 .../constant/thermophysicalProperties.solids  |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermo.gas                       |    5 -
 .../constant/thermophysicalProperties.liquid  |    2 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../thermophysicalProperties.particles        |    1 -
 .../constant/thermophysicalProperties.gas     |    1 -
 .../constant/thermophysicalProperties.liquid  |    1 -
 .../constant/thermophysicalProperties.gas     |    1 -
 .../constant/thermophysicalProperties.liquid  |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.gas     |    2 -
 .../constant/thermophysicalProperties.liquid  |    2 -
 .../constant/thermophysicalProperties.gas     |    2 -
 .../constant/thermophysicalProperties.liquid  |    2 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../thermophysicalProperties.particles        |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.steam   |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../thermophysicalProperties.particles        |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../thermophysicalProperties.particles        |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 .../constant/thermophysicalProperties.air     |    1 -
 .../constant/thermophysicalProperties.water   |    1 -
 356 files changed, 2587 insertions(+), 6251 deletions(-)
 delete mode 100644 applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/EEqn.H
 delete mode 100644 src/thermophysicalModels/properties/liquidMixtureProperties/Make/files
 delete mode 100644 src/thermophysicalModels/properties/liquidMixtureProperties/Make/options
 rename src/thermophysicalModels/properties/{liquidMixtureProperties => liquidProperties}/liquidMixtureProperties/liquidMixtureProperties.C (97%)
 rename src/thermophysicalModels/properties/{liquidMixtureProperties => liquidProperties}/liquidMixtureProperties/liquidMixtureProperties.H (98%)
 delete mode 100644 src/thermophysicalModels/properties/solidMixtureProperties/Make/files
 delete mode 100644 src/thermophysicalModels/properties/solidMixtureProperties/Make/options
 rename src/thermophysicalModels/properties/{solidMixtureProperties => solidProperties}/solidMixtureProperties/solidMixtureProperties.C (97%)
 rename src/thermophysicalModels/properties/{solidMixtureProperties => solidProperties}/solidMixtureProperties/solidMixtureProperties.H (98%)

diff --git a/applications/solvers/combustion/fireFoam/Make/options b/applications/solvers/combustion/fireFoam/Make/options
index b49c426e871..4b25d248ea0 100644
--- a/applications/solvers/combustion/fireFoam/Make/options
+++ b/applications/solvers/combustion/fireFoam/Make/options
@@ -14,9 +14,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
     -I$(LIB_SRC)/combustionModels/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -39,7 +37,6 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/EEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/EEqn.H
deleted file mode 100644
index 56e78ff6308..00000000000
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/EEqn.H
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    volScalarField& he = thermo.he();
-
-    fvScalarMatrix EEqn
-    (
-        fvm::div(phi, he)
-      + (
-            he.name() == "e"
-          ? fvc::div(phi, volScalarField("Ekp", 0.5*magSqr(U) + p/rho))
-          : fvc::div(phi, volScalarField("K", 0.5*magSqr(U)))
-        )
-      - fvm::laplacian(turbulence->alphaEff(), he)
-     ==
-        fvOptions(rho, he)
-    );
-
-    EEqn.relax();
-
-    fvOptions.constrain(EEqn);
-
-    EEqn.solve();
-
-    fvOptions.correct(he);
-
-    thermo.correct();
-}
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
index e7136c52d0d..5daef0c2de9 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
@@ -67,6 +67,17 @@ dimensionedScalar rhoMin
     )
 );
 
+dimensionedScalar pMin
+(
+    dimensionedScalar::lookupOrDefault
+    (
+        "pMin",
+        simple.dict(),
+        dimPressure,
+        10
+    )
+);
+
 Info<< "Creating turbulence model\n" << endl;
 autoPtr<compressible::turbulenceModel> turbulence
 (
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
index 7b559831614..ca8725b4994 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
@@ -83,6 +83,8 @@
             /fvc::domainIntegrate(psi);
     }
 
+    p = max(p, pMin);
+
     rho = thermo.rho();
     rho = max(rho, rhoMin);
     rho = min(rho, rhoMax);
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/Make/options b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
index 9c23effa573..978ea9d9b2d 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/Make/options
+++ b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
@@ -11,9 +11,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -39,9 +37,7 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
index 014cd4e3563..4e218c6dbc2 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
@@ -10,9 +10,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -37,7 +35,6 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
index f39888db2fe..f66d16750b4 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
@@ -12,9 +12,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -40,9 +38,7 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
index f39888db2fe..f66d16750b4 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
@@ -12,9 +12,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -40,9 +38,7 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/lagrangian/sprayFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/Make/options
index 35233e06cba..28b5e6ac7af 100644
--- a/applications/solvers/lagrangian/sprayFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/Make/options
@@ -14,9 +14,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -38,9 +36,7 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
index 75d59e0933f..ebb0621e935 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
@@ -15,9 +15,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -42,9 +40,7 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
index 86c7ad23f23..3cda53424fc 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
@@ -16,9 +16,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -45,9 +43,7 @@ EXE_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
index 3a5eb7ac71e..5f109df5220 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
@@ -3,9 +3,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
diff --git a/applications/test/thermoMixture/thermoDict b/applications/test/thermoMixture/thermoDict
index 426ae0a9f37..e17e34c5e7b 100644
--- a/applications/test/thermoMixture/thermoDict
+++ b/applications/test/thermoMixture/thermoDict
@@ -2,7 +2,6 @@ specie1
 {
    specie
    {
-      nMoles 1;
       molWeight 1;
    }
 
@@ -24,7 +23,6 @@ specie2
 {
    specie
    {
-      nMoles 1;
       molWeight 0.5;
    }
 
diff --git a/applications/utilities/miscellaneous/foamList/Make/options b/applications/utilities/miscellaneous/foamList/Make/options
index 2c3bcc70fed..5ce9e05d42a 100644
--- a/applications/utilities/miscellaneous/foamList/Make/options
+++ b/applications/utilities/miscellaneous/foamList/Make/options
@@ -49,7 +49,6 @@ EXE_LIBS = \
     -llagrangianSpray \
     -llagrangianTurbulence \
     -llaminarFlameSpeedModels \
-    -lliquidMixtureProperties \
     -lliquidProperties \
     -lmeshTools \
     -lmolecularMeasurements \
@@ -81,7 +80,6 @@ EXE_LIBS = \
     -lSLGThermo \
     -lsnappyHexMesh \
     -lsolidChemistryModel \
-    -lsolidMixtureProperties \
     -lsolidParticle \
     -lsolidProperties \
     -lsolidSpecie \
diff --git a/applications/utilities/thermophysical/adiabaticFlameT/adiabaticFlameT.C b/applications/utilities/thermophysical/adiabaticFlameT/adiabaticFlameT.C
index 7cc7e44c7c5..523e6b4f636 100644
--- a/applications/utilities/thermophysical/adiabaticFlameT/adiabaticFlameT.C
+++ b/applications/utilities/thermophysical/adiabaticFlameT/adiabaticFlameT.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,28 +97,59 @@ int main(int argc, char *argv[])
 
 
     scalar stoicO2 = n + m/4.0;
-    scalar stoicN2 = (0.79/0.21)*(n + m/4.0);
+    scalar stoicN2 = (0.79/0.21)*stoicO2;
     scalar stoicCO2 = n;
     scalar stoicH2O = m/2.0;
 
-    thermo fuel
+    thermo FUEL
     (
         "fuel",
         thermo(thermoData.subDict(fuelName))
     );
+    Info<< "fuel " << FUEL << ';' << endl;
+    FUEL *= FUEL.W();
+
+    thermo O2
+    (
+        "O2",
+        thermo(thermoData.subDict("O2"))
+    );
+    O2 *= O2.W();
+
+    thermo N2
+    (
+        "N2",
+        thermo(thermoData.subDict("N2"))
+    );
+    N2 *= N2.W();
+
+    thermo CO2
+    (
+        "CO2",
+        thermo(thermoData.subDict("CO2"))
+    );
+    CO2 *= CO2.W();
+
+    thermo H2O
+    (
+        "H2O",
+        thermo(thermoData.subDict("H2O"))
+    );
+    H2O *= H2O.W();
 
     thermo oxidant
     (
         "oxidant",
-        stoicO2*thermo(thermoData.subDict("O2"))
-      + stoicN2*thermo(thermoData.subDict("N2"))
+        stoicO2*O2
+      + stoicN2*N2
     );
+    Info<< "oxidant " << (1/oxidant.Y())*oxidant << ';' << endl;
 
     dimensionedScalar stoichiometricAirFuelMassRatio
     (
         "stoichiometricAirFuelMassRatio",
         dimless,
-        (oxidant.W()*oxidant.nMoles())/fuel.W()
+        oxidant.Y()/FUEL.W()
     );
 
     Info<< "stoichiometricAirFuelMassRatio "
@@ -138,49 +169,34 @@ int main(int argc, char *argv[])
         scalar ores = max(1.0/equiv - 1.0, 0.0);
         scalar fburnt = 1.0 - fres;
 
-        thermo fuel
-        (
-            "fuel",
-            thermo(thermoData.subDict(fuelName))
-        );
-        Info<< "fuel " << fuel << ';' << endl;
-
-        thermo oxidant
-        (
-            "oxidant",
-            o2*thermo(thermoData.subDict("O2"))
-          + n2*thermo(thermoData.subDict("N2"))
-        );
-        Info<< "oxidant " << (1/oxidant.nMoles())*oxidant << ';' << endl;
-
         thermo reactants
         (
             "reactants",
-            fuel + oxidant
+            FUEL + (1.0/equiv)*oxidant
         );
-        Info<< "reactants " << (1/reactants.nMoles())*reactants << ';' << endl;
+        Info<< "reactants " << (1/reactants.Y())*reactants << ';' << endl;
 
         thermo burntProducts
         (
             "burntProducts",
-          + (n2 - (0.79/0.21)*ores*stoicO2)*thermo(thermoData.subDict("N2"))
-          + fburnt*stoicCO2*thermo(thermoData.subDict("CO2"))
-          + fburnt*stoicH2O*thermo(thermoData.subDict("H2O"))
+          + (n2 - (0.79/0.21)*ores*stoicO2)*N2
+          + fburnt*stoicCO2*CO2
+          + fburnt*stoicH2O*H2O
         );
         Info<< "burntProducts "
-            << (1/burntProducts.nMoles())*burntProducts << ';' << endl;
+            << (1/burntProducts.Y())*burntProducts << ';' << endl;
 
         thermo products
         (
             "products",
-            fres*fuel
-          + n2*thermo(thermoData.subDict("N2"))
-          + fburnt*stoicCO2*thermo(thermoData.subDict("CO2"))
-          + fburnt*stoicH2O*thermo(thermoData.subDict("H2O"))
-          + ores*stoicO2*thermo(thermoData.subDict("O2"))
+            fres*FUEL
+          + n2*N2
+          + fburnt*stoicCO2*CO2
+          + fburnt*stoicH2O*H2O
+          + ores*stoicO2*O2
         );
 
-        Info<< "products " << (1/products.nMoles())*products << ';' << endl;
+        Info<< "products " << (1/products.Y())*products << ';' << endl;
 
         scalar Tad = products.THa(reactants.Ha(P, T0), P, 1000.0);
         Info<< "Tad = " << Tad << nl << endl;
diff --git a/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C b/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
index 478c2ae9f58..62313f789d1 100644
--- a/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
+++ b/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,52 +73,44 @@ int main(int argc, char *argv[])
 
 
 
-    scalar P = 1e5;
-    scalar T = 3000.0;
+    const scalar P = 1e5;
+    const scalar T = 3000.0;
+
+    // Oxidant (mole-based)
+    thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
+    thermo N2(thermoData.subDict("N2")); N2 *= N2.W();
+
+    // Intermediates (mole-based)
+    thermo H2(thermoData.subDict("H2")); H2 *= H2.W();
+    thermo OH(thermoData.subDict("OH")); OH *= OH.W();
+    thermo H(thermoData.subDict("H")); H *= H.W();
+    thermo O(thermoData.subDict("O")); O *= O.W();
+
+    // Products (mole-based)
+    thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
+    thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
+    thermo CO(thermoData.subDict("CO")); CO *= CO.W();
 
     SLPtrList<thermo> EQreactions;
 
     EQreactions.append
     (
-        new thermo
-        (
-            thermo(thermoData.subDict("CO2"))
-         ==
-            thermo(thermoData.subDict("CO"))
-          + 0.5*thermo(thermoData.subDict("O2"))
-        )
+        new thermo(CO2 == CO + 0.5*O2)
     );
 
     EQreactions.append
     (
-        new thermo
-        (
-            thermo(thermoData.subDict("O2"))
-         ==
-            2.0*thermo(thermoData.subDict("O"))
-        )
+        new thermo(O2 == 2*O)
     );
 
     EQreactions.append
     (
-        new thermo
-        (
-            thermo(thermoData.subDict("H2O"))
-         ==
-            thermo(thermoData.subDict("H2"))
-          + 0.5*thermo(thermoData.subDict("O2"))
-        )
+        new thermo(H2O == H2 + 0.5*O2)
     );
 
     EQreactions.append
     (
-        new thermo
-        (
-            thermo(thermoData.subDict("H2O"))
-         ==
-            thermo(thermoData.subDict("H"))
-          + thermo(thermoData.subDict("OH"))
-        )
+        new thermo(H2O == H + OH)
     );
 
 
diff --git a/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.C b/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.C
index e95e74819af..c24b3693e18 100644
--- a/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.C
+++ b/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -100,25 +100,27 @@ int main(int argc, char *argv[])
     Info<< nl << "Reading thermodynamic data for relevant species"
         << nl << endl;
 
-    // Reactants
-    thermo FUEL(thermoData.subDict(fuelName));
-    thermo O2(thermoData.subDict("O2"));
-    thermo N2(thermoData.subDict("N2"));
+    // Reactants (mole-based)
+    thermo FUEL(thermoData.subDict(fuelName)); FUEL *= FUEL.W();
 
-    // Products
-    thermo CO2(thermoData.subDict("CO2"));
-    thermo H2O(thermoData.subDict("H2O"));
+    // Oxidant (mole-based)
+    thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
+    thermo N2(thermoData.subDict("N2")); N2 *= N2.W();
 
-    // Product fragments
-    thermo CO(thermoData.subDict("CO"));
-    thermo H2(thermoData.subDict("H2"));
+    // Intermediates (mole-based)
+    thermo H2(thermoData.subDict("H2")); H2 *= H2.W();
+
+    // Products (mole-based)
+    thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
+    thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
+    thermo CO(thermoData.subDict("CO")); CO *= CO.W();
 
 
     // Product dissociation reactions
 
     thermo CO2BreakUp
     (
-        CO2 == CO + 0.5* O2
+        CO2 == CO + 0.5*O2
     );
 
     thermo H2OBreakUp
@@ -145,7 +147,7 @@ int main(int argc, char *argv[])
     (
         "stoichiometricAirFuelMassRatio",
         dimless,
-        (oxidant.W()*oxidant.nMoles())/FUEL.W()
+        oxidant.Y()/FUEL.W()
     );
 
     Info<< "stoichiometricAirFuelMassRatio "
@@ -209,7 +211,6 @@ int main(int argc, char *argv[])
         // Iteration loop for adiabatic flame temperature
         for (int j=0; j<20; j++)
         {
-
             if (j > 0)
             {
                 co = co2*
diff --git a/etc/templates/compressibleInflowOutflow/constant/thermophysicalProperties b/etc/templates/compressibleInflowOutflow/constant/thermophysicalProperties
index 691d73fdd74..9c4f1daea4a 100644
--- a/etc/templates/compressibleInflowOutflow/constant/thermophysicalProperties
+++ b/etc/templates/compressibleInflowOutflow/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture // air at room temperature (293 K)
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/etc/thermoData/thermoData b/etc/thermoData/thermoData
index dddc4e85f75..d7b7827e676 100644
--- a/etc/thermoData/thermoData
+++ b/etc/thermoData/thermoData
@@ -28,7 +28,6 @@ PF5
 {
     specie
     {
-        nMoles          1;
         molWeight       125.966;
     }
     thermodynamics
@@ -44,7 +43,6 @@ T-C3H5_CH3C*=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0733;
     }
     thermodynamics
@@ -60,7 +58,6 @@ C3H8S_PropanThiol
 {
     specie
     {
-        nMoles          1;
         molWeight       76.1612;
     }
     thermodynamics
@@ -76,7 +73,6 @@ MgS(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       56.376;
     }
     thermodynamics
@@ -92,7 +88,6 @@ Fe(d)
 {
     specie
     {
-        nMoles          1;
         molWeight       55.847;
     }
     thermodynamics
@@ -108,7 +103,6 @@ Bi(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       208.98;
     }
     thermodynamics
@@ -124,7 +118,6 @@ C2H2_Vinylidene
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0382;
     }
     thermodynamics
@@ -140,7 +133,6 @@ Pb-
 {
     specie
     {
-        nMoles          1;
         molWeight       207.191;
     }
     thermodynamics
@@ -156,7 +148,6 @@ GeCl4
 {
     specie
     {
-        nMoles          1;
         molWeight       214.402;
     }
     thermodynamics
@@ -172,7 +163,6 @@ C7H15_n-heptyl
 {
     specie
     {
-        nMoles          1;
         molWeight       99.1976;
     }
     thermodynamics
@@ -188,7 +178,6 @@ C17H33O2_C16-Rad
 {
     specie
     {
-        nMoles          1;
         molWeight       269.451;
     }
     thermodynamics
@@ -204,7 +193,6 @@ C4H9O_T_butoxy_r
 {
     specie
     {
-        nMoles          1;
         molWeight       73.1157;
     }
     thermodynamics
@@ -220,7 +208,6 @@ C2H2O4_Oxalic_ac
 {
     specie
     {
-        nMoles          1;
         molWeight       90.0358;
     }
     thermodynamics
@@ -236,7 +223,6 @@ Fe2O3(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       159.692;
     }
     thermodynamics
@@ -252,7 +238,6 @@ s-*CH2NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0497;
     }
     thermodynamics
@@ -268,7 +253,6 @@ C7H7+__C6H5CH2*+
 {
     specie
     {
-        nMoles          1;
         molWeight       91.1333;
     }
     thermodynamics
@@ -284,7 +268,6 @@ S(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       320.64;
     }
     thermodynamics
@@ -300,7 +283,6 @@ C5H4__1,2,4-cycl
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0876;
     }
     thermodynamics
@@ -316,7 +298,6 @@ PF2-
 {
     specie
     {
-        nMoles          1;
         molWeight       68.9711;
     }
     thermodynamics
@@ -332,7 +313,6 @@ Br_Bromine_atom
 {
     specie
     {
-        nMoles          1;
         molWeight       79.9009;
     }
     thermodynamics
@@ -348,7 +328,6 @@ C6H3Cl3O_linear
 {
     specie
     {
-        nMoles          1;
         molWeight       197.449;
     }
     thermodynamics
@@ -364,7 +343,6 @@ C4H5+_CH3CC=CH2*+
 {
     specie
     {
-        nMoles          1;
         molWeight       53.0839;
     }
     thermodynamics
@@ -380,7 +358,6 @@ C4H9O_i-butoxy_r
 {
     specie
     {
-        nMoles          1;
         molWeight       73.1157;
     }
     thermodynamics
@@ -396,7 +373,6 @@ C10H18_Bicypentyl
 {
     specie
     {
-        nMoles          1;
         molWeight       138.255;
     }
     thermodynamics
@@ -412,7 +388,6 @@ CDO
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0247;
     }
     thermodynamics
@@ -428,7 +403,6 @@ P-CHLOROPHENYL
 {
     specie
     {
-        nMoles          1;
         molWeight       111.552;
     }
     thermodynamics
@@ -444,7 +418,6 @@ Ni3S4(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       304.386;
     }
     thermodynamics
@@ -460,7 +433,6 @@ C2HBr2_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       184.832;
     }
     thermodynamics
@@ -476,7 +448,6 @@ NOO-___anion
 {
     specie
     {
-        nMoles          1;
         molWeight       46.006;
     }
     thermodynamics
@@ -492,7 +463,6 @@ C10H21,n-decyl
 {
     specie
     {
-        nMoles          1;
         molWeight       141.279;
     }
     thermodynamics
@@ -508,7 +478,6 @@ H2
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01594;
     }
     thermodynamics
@@ -524,7 +493,6 @@ F2O-__FOF-
 {
     specie
     {
-        nMoles          1;
         molWeight       53.9967;
     }
     thermodynamics
@@ -540,7 +508,6 @@ CCl
 {
     specie
     {
-        nMoles          1;
         molWeight       47.4642;
     }
     thermodynamics
@@ -556,7 +523,6 @@ AlCl+
 {
     specie
     {
-        nMoles          1;
         molWeight       62.434;
     }
     thermodynamics
@@ -572,7 +538,6 @@ C20H36O2_EtLinolea
 {
     specie
     {
-        nMoles          1;
         molWeight       308.509;
     }
     thermodynamics
@@ -588,7 +553,6 @@ Cl2O__Cl-O-Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       86.9054;
     }
     thermodynamics
@@ -604,7 +568,6 @@ C6H8O_3,4DiMeFuran
 {
     specie
     {
-        nMoles          1;
         molWeight       96.1301;
     }
     thermodynamics
@@ -620,7 +583,6 @@ NH4ClO4(II)
 {
     specie
     {
-        nMoles          1;
         molWeight       117.489;
     }
     thermodynamics
@@ -636,7 +598,6 @@ C5H12O_3-Pentanol
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1508;
     }
     thermodynamics
@@ -652,7 +613,6 @@ C14H12_t-Stilbene
 {
     specie
     {
-        nMoles          1;
         molWeight       180.252;
     }
     thermodynamics
@@ -668,7 +628,6 @@ K(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       39.102;
     }
     thermodynamics
@@ -684,7 +643,6 @@ C3H7NO2_Nitropro
 {
     specie
     {
-        nMoles          1;
         molWeight       89.0947;
     }
     thermodynamics
@@ -700,7 +658,6 @@ C3H6S__THIETHANE
 {
     specie
     {
-        nMoles          1;
         molWeight       74.1453;
     }
     thermodynamics
@@ -716,7 +673,6 @@ CH3NH-_radical_a
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0503;
     }
     thermodynamics
@@ -732,7 +688,6 @@ C9H7_INDENYL_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       115.156;
     }
     thermodynamics
@@ -748,7 +703,6 @@ PbBr4
 {
     specie
     {
-        nMoles          1;
         molWeight       526.794;
     }
     thermodynamics
@@ -764,7 +718,6 @@ C3N2O__NCO-CO-CN
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0463;
     }
     thermodynamics
@@ -780,7 +733,6 @@ C6H14O_1-hexanol
 {
     specie
     {
-        nMoles          1;
         molWeight       102.178;
     }
     thermodynamics
@@ -796,7 +748,6 @@ C17H31O2_Palmitole
 {
     specie
     {
-        nMoles          1;
         molWeight       267.435;
     }
     thermodynamics
@@ -812,7 +763,6 @@ C2H5NO3_EtNitrate
 {
     specie
     {
-        nMoles          1;
         molWeight       91.067;
     }
     thermodynamics
@@ -828,7 +778,6 @@ Bi2O3_O=Bi-O-Bi=O
 {
     specie
     {
-        nMoles          1;
         molWeight       465.958;
     }
     thermodynamics
@@ -844,7 +793,6 @@ C4H6O2_MeAcrylat
 {
     specie
     {
-        nMoles          1;
         molWeight       86.0912;
     }
     thermodynamics
@@ -860,7 +808,6 @@ C8H9+_1,3MeC6H4CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       105.16;
     }
     thermodynamics
@@ -876,7 +823,6 @@ C2H2I2_trans
 {
     specie
     {
-        nMoles          1;
         molWeight       279.847;
     }
     thermodynamics
@@ -892,7 +838,6 @@ C60
 {
     specie
     {
-        nMoles          1;
         molWeight       720.669;
     }
     thermodynamics
@@ -908,7 +853,6 @@ HCl
 {
     specie
     {
-        nMoles          1;
         molWeight       36.461;
     }
     thermodynamics
@@ -924,7 +868,6 @@ C10H21_3by4-decyl
 {
     specie
     {
-        nMoles          1;
         molWeight       141.279;
     }
     thermodynamics
@@ -940,7 +883,6 @@ CH2F
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0255;
     }
     thermodynamics
@@ -956,7 +898,6 @@ HNOH_cis__ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       32.022;
     }
     thermodynamics
@@ -972,7 +913,6 @@ NH2CH2C(O)OH
 {
     specie
     {
-        nMoles          1;
         molWeight       75.0677;
     }
     thermodynamics
@@ -988,7 +928,6 @@ HNO2_equil__ATcT
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0135;
     }
     thermodynamics
@@ -1004,7 +943,6 @@ FeCl3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       162.206;
     }
     thermodynamics
@@ -1020,7 +958,6 @@ C3H2Br2__1,3_Dib
 {
     specie
     {
-        nMoles          1;
         molWeight       197.851;
     }
     thermodynamics
@@ -1036,7 +973,6 @@ C4H8N8O8_HMX
 {
     specie
     {
-        nMoles          1;
         molWeight       296.157;
     }
     thermodynamics
@@ -1052,7 +988,6 @@ SnCl4
 {
     specie
     {
-        nMoles          1;
         molWeight       260.502;
     }
     thermodynamics
@@ -1068,7 +1003,6 @@ C6H11_2M-1ENE-5YL
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -1084,7 +1018,6 @@ C5H2Cl3_VinAllenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       168.431;
     }
     thermodynamics
@@ -1100,7 +1033,6 @@ PS
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0378;
     }
     thermodynamics
@@ -1116,7 +1048,6 @@ BCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       117.17;
     }
     thermodynamics
@@ -1132,7 +1063,6 @@ C2H4F2__HFC-152a
 {
     specie
     {
-        nMoles          1;
         molWeight       66.051;
     }
     thermodynamics
@@ -1148,7 +1078,6 @@ MgF
 {
     specie
     {
-        nMoles          1;
         molWeight       43.3104;
     }
     thermodynamics
@@ -1164,7 +1093,6 @@ BO-
 {
     specie
     {
-        nMoles          1;
         molWeight       26.8109;
     }
     thermodynamics
@@ -1180,7 +1108,6 @@ C15H30___1-penta
 {
     specie
     {
-        nMoles          1;
         molWeight       210.406;
     }
     thermodynamics
@@ -1196,7 +1123,6 @@ B2O3
 {
     specie
     {
-        nMoles          1;
         molWeight       69.6202;
     }
     thermodynamics
@@ -1212,7 +1138,6 @@ s-1-C10H7-C*=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       153.206;
     }
     thermodynamics
@@ -1228,7 +1153,6 @@ CS
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0752;
     }
     thermodynamics
@@ -1244,7 +1168,6 @@ C5H11OH__1-penta
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1508;
     }
     thermodynamics
@@ -1260,7 +1183,6 @@ H2NN+_Isodiazene+
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0288;
     }
     thermodynamics
@@ -1276,7 +1198,6 @@ C+
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0106;
     }
     thermodynamics
@@ -1292,7 +1213,6 @@ C10H10_2-meIndene
 {
     specie
     {
-        nMoles          1;
         molWeight       130.191;
     }
     thermodynamics
@@ -1308,7 +1228,6 @@ C7H16O_neo-C7H16O
 {
     specie
     {
-        nMoles          1;
         molWeight       116.205;
     }
     thermodynamics
@@ -1324,7 +1243,6 @@ C6H5F+__Cation
 {
     specie
     {
-        nMoles          1;
         molWeight       96.1046;
     }
     thermodynamics
@@ -1340,7 +1258,6 @@ N2H-
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0219;
     }
     thermodynamics
@@ -1356,7 +1273,6 @@ C6H10_1,3-Hexadien
 {
     specie
     {
-        nMoles          1;
         molWeight       82.1466;
     }
     thermodynamics
@@ -1372,7 +1288,6 @@ C9H17_1-nonenyl-4
 {
     specie
     {
-        nMoles          1;
         molWeight       125.236;
     }
     thermodynamics
@@ -1388,7 +1303,6 @@ C10H7-CCH
 {
     specie
     {
-        nMoles          1;
         molWeight       152.198;
     }
     thermodynamics
@@ -1404,7 +1318,6 @@ C2H4O2_HG(O)OCH3
 {
     specie
     {
-        nMoles          1;
         molWeight       60.053;
     }
     thermodynamics
@@ -1420,7 +1333,6 @@ B3O3Cl3
 {
     specie
     {
-        nMoles          1;
         molWeight       186.79;
     }
     thermodynamics
@@ -1436,7 +1348,6 @@ C3Cl4_PerClAllene
 {
     specie
     {
-        nMoles          1;
         molWeight       177.845;
     }
     thermodynamics
@@ -1452,7 +1363,6 @@ Al2O3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       101.961;
     }
     thermodynamics
@@ -1468,7 +1378,6 @@ C13H10__Fluorene
 {
     specie
     {
-        nMoles          1;
         molWeight       166.225;
     }
     thermodynamics
@@ -1484,7 +1393,6 @@ C5H9N__Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1342;
     }
     thermodynamics
@@ -1500,7 +1408,6 @@ C6H4Cl2_p-Clbenzen
 {
     specie
     {
-        nMoles          1;
         molWeight       147.005;
     }
     thermodynamics
@@ -1516,7 +1423,6 @@ NITRO-BENZENE
 {
     specie
     {
-        nMoles          1;
         molWeight       123.112;
     }
     thermodynamics
@@ -1532,7 +1438,6 @@ C6H5OH,phenol
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1141;
     }
     thermodynamics
@@ -1548,7 +1453,6 @@ C3Br3_1,2,3_CyRad
 {
     specie
     {
-        nMoles          1;
         molWeight       275.736;
     }
     thermodynamics
@@ -1564,7 +1468,6 @@ s-*CH2NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0326;
     }
     thermodynamics
@@ -1580,7 +1483,6 @@ C2Cl3F3_FC-113A
 {
     specie
     {
-        nMoles          1;
         molWeight       187.377;
     }
     thermodynamics
@@ -1596,7 +1498,6 @@ C12H9Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       188.659;
     }
     thermodynamics
@@ -1612,7 +1513,6 @@ CH3-O-C(O)-NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       75.0677;
     }
     thermodynamics
@@ -1628,7 +1528,6 @@ C18H31O2_Linoleate
 {
     specie
     {
-        nMoles          1;
         molWeight       279.447;
     }
     thermodynamics
@@ -1644,7 +1543,6 @@ C6H8O_2,5DiMeFuran
 {
     specie
     {
-        nMoles          1;
         molWeight       96.1301;
     }
     thermodynamics
@@ -1660,7 +1558,6 @@ C8H7_C6H4CH=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       103.145;
     }
     thermodynamics
@@ -1676,7 +1573,6 @@ MgClF
 {
     specie
     {
-        nMoles          1;
         molWeight       78.7634;
     }
     thermodynamics
@@ -1692,7 +1588,6 @@ C16H10_Pyrene
 {
     specie
     {
-        nMoles          1;
         molWeight       202.258;
     }
     thermodynamics
@@ -1708,7 +1603,6 @@ SiO2(a-qz)
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0848;
     }
     thermodynamics
@@ -1724,7 +1618,6 @@ s-1-C4H8__1-buten
 {
     specie
     {
-        nMoles          1;
         molWeight       56.1084;
     }
     thermodynamics
@@ -1740,7 +1633,6 @@ C4H6__1,3-butadien
 {
     specie
     {
-        nMoles          1;
         molWeight       54.0924;
     }
     thermodynamics
@@ -1756,7 +1648,6 @@ s-1,2-C6H4_BENZYNE
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0988;
     }
     thermodynamics
@@ -1772,7 +1663,6 @@ C5H10O2_EtPropanoa
 {
     specie
     {
-        nMoles          1;
         molWeight       102.134;
     }
     thermodynamics
@@ -1788,7 +1678,6 @@ C14H14_Bibenzyl
 {
     specie
     {
-        nMoles          1;
         molWeight       182.268;
     }
     thermodynamics
@@ -1804,7 +1693,6 @@ OS(liq)
 {
     specie
     {
-        nMoles          1;
         molWeight       190.2;
     }
     thermodynamics
@@ -1820,7 +1708,6 @@ CH2NH+_MethaneIm
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0412;
     }
     thermodynamics
@@ -1836,7 +1723,6 @@ HS2_anharmonic
 {
     specie
     {
-        nMoles          1;
         molWeight       65.136;
     }
     thermodynamics
@@ -1852,7 +1738,6 @@ CH2__EQUILIBRIUM
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -1868,7 +1753,6 @@ CNH2__triradical
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0338;
     }
     thermodynamics
@@ -1884,7 +1768,6 @@ MgSiO3(I)
 {
     specie
     {
-        nMoles          1;
         molWeight       100.396;
     }
     thermodynamics
@@ -1900,7 +1783,6 @@ C4H7O__*(CH2)3CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0998;
     }
     thermodynamics
@@ -1916,7 +1798,6 @@ HClO3
 {
     specie
     {
-        nMoles          1;
         molWeight       84.4592;
     }
     thermodynamics
@@ -1932,7 +1813,6 @@ C2H3F3__FC-143A
 {
     specie
     {
-        nMoles          1;
         molWeight       84.0414;
     }
     thermodynamics
@@ -1948,7 +1828,6 @@ C5H10__2MB-1-ene
 {
     specie
     {
-        nMoles          1;
         molWeight       70.1355;
     }
     thermodynamics
@@ -1964,7 +1843,6 @@ C2H3O2_HOCHCH=O
 {
     specie
     {
-        nMoles          1;
         molWeight       59.045;
     }
     thermodynamics
@@ -1980,7 +1858,6 @@ C4H6__1,2-butadi
 {
     specie
     {
-        nMoles          1;
         molWeight       54.0924;
     }
     thermodynamics
@@ -1996,7 +1873,6 @@ CuCl
 {
     specie
     {
-        nMoles          1;
         molWeight       98.993;
     }
     thermodynamics
@@ -2012,7 +1888,6 @@ SO-
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0639;
     }
     thermodynamics
@@ -2028,7 +1903,6 @@ PbCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       278.096;
     }
     thermodynamics
@@ -2044,7 +1918,6 @@ C12H23O2__7,9
 {
     specie
     {
-        nMoles          1;
         molWeight       199.316;
     }
     thermodynamics
@@ -2060,7 +1933,6 @@ Fe3O4(S)_Solid-B
 {
     specie
     {
-        nMoles          1;
         molWeight       231.539;
     }
     thermodynamics
@@ -2076,7 +1948,6 @@ C2_triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       24.0223;
     }
     thermodynamics
@@ -2092,7 +1963,6 @@ Zr+
 {
     specie
     {
-        nMoles          1;
         molWeight       91.2195;
     }
     thermodynamics
@@ -2108,7 +1978,6 @@ SF2+
 {
     specie
     {
-        nMoles          1;
         molWeight       70.0603;
     }
     thermodynamics
@@ -2124,7 +1993,6 @@ PETN___Solid
 {
     specie
     {
-        nMoles          1;
         molWeight       316.139;
     }
     thermodynamics
@@ -2140,7 +2008,6 @@ C3H3O__CH2=CHC*O
 {
     specie
     {
-        nMoles          1;
         molWeight       55.0568;
     }
     thermodynamics
@@ -2156,7 +2023,6 @@ SB(CH3)2
 {
     specie
     {
-        nMoles          1;
         molWeight       151.82;
     }
     thermodynamics
@@ -2172,7 +2038,6 @@ BF2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       84.2608;
     }
     thermodynamics
@@ -2188,7 +2053,6 @@ C2N2_Isocyanogen
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0357;
     }
     thermodynamics
@@ -2204,7 +2068,6 @@ Sb(OH)2
 {
     specie
     {
-        nMoles          1;
         molWeight       155.765;
     }
     thermodynamics
@@ -2220,7 +2083,6 @@ MgS(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       56.376;
     }
     thermodynamics
@@ -2236,7 +2098,6 @@ C4H6O2_Crotonic_ac
 {
     specie
     {
-        nMoles          1;
         molWeight       86.0912;
     }
     thermodynamics
@@ -2252,7 +2113,6 @@ BOCl
 {
     specie
     {
-        nMoles          1;
         molWeight       62.2634;
     }
     thermodynamics
@@ -2268,7 +2128,6 @@ H
 {
     specie
     {
-        nMoles          1;
         molWeight       1.00797;
     }
     thermodynamics
@@ -2284,7 +2143,6 @@ HNNH+_Trans
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0288;
     }
     thermodynamics
@@ -2300,7 +2158,6 @@ s-*CH2NH2+
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0492;
     }
     thermodynamics
@@ -2316,7 +2173,6 @@ PbF
 {
     specie
     {
-        nMoles          1;
         molWeight       226.188;
     }
     thermodynamics
@@ -2332,7 +2188,6 @@ C6H12_4MP-2en_tran
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1625;
     }
     thermodynamics
@@ -2348,7 +2203,6 @@ CHBr2F__FC-23
 {
     specie
     {
-        nMoles          1;
         molWeight       191.819;
     }
     thermodynamics
@@ -2364,7 +2218,6 @@ C8H5_HCC-CH=CH-C
 {
     specie
     {
-        nMoles          1;
         molWeight       101.129;
     }
     thermodynamics
@@ -2380,7 +2233,6 @@ C5H11,pentyl
 {
     specie
     {
-        nMoles          1;
         molWeight       71.1434;
     }
     thermodynamics
@@ -2396,7 +2248,6 @@ AlBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       186.783;
     }
     thermodynamics
@@ -2412,7 +2263,6 @@ F+
 {
     specie
     {
-        nMoles          1;
         molWeight       18.9979;
     }
     thermodynamics
@@ -2428,7 +2278,6 @@ CHD2NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0528;
     }
     thermodynamics
@@ -2444,7 +2293,6 @@ o-C6H4I2
 {
     specie
     {
-        nMoles          1;
         molWeight       329.908;
     }
     thermodynamics
@@ -2460,7 +2308,6 @@ HS2__RRHO
 {
     specie
     {
-        nMoles          1;
         molWeight       65.136;
     }
     thermodynamics
@@ -2476,7 +2323,6 @@ Al
 {
     specie
     {
-        nMoles          1;
         molWeight       26.9815;
     }
     thermodynamics
@@ -2492,7 +2338,6 @@ N2H2_cis
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0293;
     }
     thermodynamics
@@ -2508,7 +2353,6 @@ O4_cyclo
 {
     specie
     {
-        nMoles          1;
         molWeight       63.9976;
     }
     thermodynamics
@@ -2524,7 +2368,6 @@ BrI
 {
     specie
     {
-        nMoles          1;
         molWeight       206.805;
     }
     thermodynamics
@@ -2540,7 +2383,6 @@ C4H9_t-butyl
 {
     specie
     {
-        nMoles          1;
         molWeight       57.1163;
     }
     thermodynamics
@@ -2556,7 +2398,6 @@ ND3
 {
     specie
     {
-        nMoles          1;
         molWeight       20.049;
     }
     thermodynamics
@@ -2572,7 +2413,6 @@ CF2-
 {
     specie
     {
-        nMoles          1;
         molWeight       50.0085;
     }
     thermodynamics
@@ -2588,7 +2428,6 @@ Ge(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       72.59;
     }
     thermodynamics
@@ -2604,7 +2443,6 @@ C5H7_1,3-diene-5yl
 {
     specie
     {
-        nMoles          1;
         molWeight       67.1115;
     }
     thermodynamics
@@ -2620,7 +2458,6 @@ C9H12__C(CH=CH2)4
 {
     specie
     {
-        nMoles          1;
         molWeight       120.196;
     }
     thermodynamics
@@ -2636,7 +2473,6 @@ C2F5___PentaFluo
 {
     specie
     {
-        nMoles          1;
         molWeight       119.014;
     }
     thermodynamics
@@ -2652,7 +2488,6 @@ C5H8O_1-C5H7-3-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1189;
     }
     thermodynamics
@@ -2668,7 +2503,6 @@ PH2-
 {
     specie
     {
-        nMoles          1;
         molWeight       32.9903;
     }
     thermodynamics
@@ -2684,7 +2518,6 @@ C12H5O3Cl4_DOH2
 {
     specie
     {
-        nMoles          1;
         molWeight       338.984;
     }
     thermodynamics
@@ -2700,7 +2533,6 @@ C2H5O__CH3CH2O*
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0616;
     }
     thermodynamics
@@ -2716,7 +2548,6 @@ C22H44O2_Behenic
 {
     specie
     {
-        nMoles          1;
         molWeight       340.595;
     }
     thermodynamics
@@ -2732,7 +2563,6 @@ Al2
 {
     specie
     {
-        nMoles          1;
         molWeight       53.963;
     }
     thermodynamics
@@ -2748,7 +2578,6 @@ NaO2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       54.9886;
     }
     thermodynamics
@@ -2764,7 +2593,6 @@ SiO2(b-crt)
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0848;
     }
     thermodynamics
@@ -2780,7 +2608,6 @@ C2Cl2F2_1,2-trans
 {
     specie
     {
-        nMoles          1;
         molWeight       132.925;
     }
     thermodynamics
@@ -2796,7 +2623,6 @@ C6H5_FULVENYL_RA
 {
     specie
     {
-        nMoles          1;
         molWeight       77.1068;
     }
     thermodynamics
@@ -2812,7 +2638,6 @@ C7H8O2__Guaiacol
 {
     specie
     {
-        nMoles          1;
         molWeight       124.141;
     }
     thermodynamics
@@ -2828,7 +2653,6 @@ MnO_(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       70.9374;
     }
     thermodynamics
@@ -2844,7 +2668,6 @@ C3F8_FC-218
 {
     specie
     {
-        nMoles          1;
         molWeight       188.021;
     }
     thermodynamics
@@ -2860,7 +2683,6 @@ MgF+
 {
     specie
     {
-        nMoles          1;
         molWeight       43.3099;
     }
     thermodynamics
@@ -2876,7 +2698,6 @@ C12H4O2Cl4__2378
 {
     specie
     {
-        nMoles          1;
         molWeight       321.976;
     }
     thermodynamics
@@ -2892,7 +2713,6 @@ C2D6O_dimeether
 {
     specie
     {
-        nMoles          1;
         molWeight       52.1063;
     }
     thermodynamics
@@ -2908,7 +2728,6 @@ C16H29O2_paloleR
 {
     specie
     {
-        nMoles          1;
         molWeight       253.408;
     }
     thermodynamics
@@ -2924,7 +2743,6 @@ N2H
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0214;
     }
     thermodynamics
@@ -2940,7 +2758,6 @@ CH(NO2)3
 {
     specie
     {
-        nMoles          1;
         molWeight       151.036;
     }
     thermodynamics
@@ -2956,7 +2773,6 @@ S6
 {
     specie
     {
-        nMoles          1;
         molWeight       192.384;
     }
     thermodynamics
@@ -2972,7 +2788,6 @@ C14H28___1-tetra
 {
     specie
     {
-        nMoles          1;
         molWeight       196.379;
     }
     thermodynamics
@@ -2988,7 +2803,6 @@ H2NN-_Isodiazene-
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0299;
     }
     thermodynamics
@@ -3004,7 +2818,6 @@ GeS2_linear___HF
 {
     specie
     {
-        nMoles          1;
         molWeight       136.718;
     }
     thermodynamics
@@ -3020,7 +2833,6 @@ P2H4
 {
     specie
     {
-        nMoles          1;
         molWeight       65.9795;
     }
     thermodynamics
@@ -3036,7 +2848,6 @@ C12_linear_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       144.134;
     }
     thermodynamics
@@ -3052,7 +2863,6 @@ HCNO+_Fulminic_cat
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -3068,7 +2878,6 @@ CH3Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       50.4881;
     }
     thermodynamics
@@ -3084,7 +2893,6 @@ Ni-
 {
     specie
     {
-        nMoles          1;
         molWeight       58.7105;
     }
     thermodynamics
@@ -3100,7 +2908,6 @@ F2O2__F-O-O-F
 {
     specie
     {
-        nMoles          1;
         molWeight       69.9956;
     }
     thermodynamics
@@ -3116,7 +2923,6 @@ C10H14__C5H7-C5H7
 {
     specie
     {
-        nMoles          1;
         molWeight       134.223;
     }
     thermodynamics
@@ -3132,7 +2938,6 @@ H3PO__HOPH2
 {
     specie
     {
-        nMoles          1;
         molWeight       49.9971;
     }
     thermodynamics
@@ -3148,7 +2953,6 @@ Mg(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       24.312;
     }
     thermodynamics
@@ -3164,7 +2968,6 @@ C3F3__PerFOroargyl
 {
     specie
     {
-        nMoles          1;
         molWeight       93.0286;
     }
     thermodynamics
@@ -3180,7 +2983,6 @@ Mo(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       95.94;
     }
     thermodynamics
@@ -3196,7 +2998,6 @@ CH2N2O__H2C=N-N=O
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0399;
     }
     thermodynamics
@@ -3212,7 +3013,6 @@ C8H18(L)_isooctane
 {
     specie
     {
-        nMoles          1;
         molWeight       114.233;
     }
     thermodynamics
@@ -3228,7 +3028,6 @@ CBrCl2F___11B1
 {
     specie
     {
-        nMoles          1;
         molWeight       181.816;
     }
     thermodynamics
@@ -3244,7 +3043,6 @@ N2O5
 {
     specie
     {
-        nMoles          1;
         molWeight       108.01;
     }
     thermodynamics
@@ -3260,7 +3058,6 @@ H2SO4
 {
     specie
     {
-        nMoles          1;
         molWeight       98.0775;
     }
     thermodynamics
@@ -3276,7 +3073,6 @@ C2H4O2_acetaldeh
 {
     specie
     {
-        nMoles          1;
         molWeight       60.053;
     }
     thermodynamics
@@ -3292,7 +3088,6 @@ FeS(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       87.911;
     }
     thermodynamics
@@ -3308,7 +3103,6 @@ C7H10_24C5H4(CH3)2
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1578;
     }
     thermodynamics
@@ -3324,7 +3118,6 @@ CHF__singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0175;
     }
     thermodynamics
@@ -3340,7 +3133,6 @@ C6H2
 {
     specie
     {
-        nMoles          1;
         molWeight       74.0828;
     }
     thermodynamics
@@ -3356,7 +3148,6 @@ SbF
 {
     specie
     {
-        nMoles          1;
         molWeight       140.748;
     }
     thermodynamics
@@ -3372,7 +3163,6 @@ C2D4O_Acetaldehy
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0781;
     }
     thermodynamics
@@ -3388,7 +3178,6 @@ C8H8___1,3,5,7_Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       104.153;
     }
     thermodynamics
@@ -3404,7 +3193,6 @@ C4H5O2_MeAcrylatR
 {
     specie
     {
-        nMoles          1;
         molWeight       85.0833;
     }
     thermodynamics
@@ -3420,7 +3208,6 @@ B2O
 {
     specie
     {
-        nMoles          1;
         molWeight       37.6214;
     }
     thermodynamics
@@ -3436,7 +3223,6 @@ C8H6S__Benzothyo
 {
     specie
     {
-        nMoles          1;
         molWeight       134.201;
     }
     thermodynamics
@@ -3452,7 +3238,6 @@ Si+
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0855;
     }
     thermodynamics
@@ -3468,7 +3253,6 @@ SiCl4
 {
     specie
     {
-        nMoles          1;
         molWeight       169.898;
     }
     thermodynamics
@@ -3484,7 +3268,6 @@ NO2-cyclo_N(OO)-
 {
     specie
     {
-        nMoles          1;
         molWeight       46.006;
     }
     thermodynamics
@@ -3500,7 +3283,6 @@ SiO2(b-qz)
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0848;
     }
     thermodynamics
@@ -3516,7 +3298,6 @@ FeCl2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       126.753;
     }
     thermodynamics
@@ -3532,7 +3313,6 @@ C18H32O2_Linoleic
 {
     specie
     {
-        nMoles          1;
         molWeight       280.455;
     }
     thermodynamics
@@ -3548,7 +3328,6 @@ N3
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0201;
     }
     thermodynamics
@@ -3564,7 +3343,6 @@ CH4O2__CH3OOH
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0418;
     }
     thermodynamics
@@ -3580,7 +3358,6 @@ CBr2Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       242.719;
     }
     thermodynamics
@@ -3596,7 +3373,6 @@ PN
 {
     specie
     {
-        nMoles          1;
         molWeight       44.9805;
     }
     thermodynamics
@@ -3612,7 +3388,6 @@ C4H4N2_PYRIMIDINE
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0899;
     }
     thermodynamics
@@ -3628,7 +3403,6 @@ C3Br3_Allene_Rad.
 {
     specie
     {
-        nMoles          1;
         molWeight       275.736;
     }
     thermodynamics
@@ -3644,7 +3418,6 @@ BiO
 {
     specie
     {
-        nMoles          1;
         molWeight       224.979;
     }
     thermodynamics
@@ -3660,7 +3433,6 @@ H2O+
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0148;
     }
     thermodynamics
@@ -3676,7 +3448,6 @@ Fe2Cl6
 {
     specie
     {
-        nMoles          1;
         molWeight       324.412;
     }
     thermodynamics
@@ -3692,7 +3463,6 @@ CHBr3_Bromoform
 {
     specie
     {
-        nMoles          1;
         molWeight       252.722;
     }
     thermodynamics
@@ -3708,7 +3478,6 @@ BI2
 {
     specie
     {
-        nMoles          1;
         molWeight       264.62;
     }
     thermodynamics
@@ -3724,7 +3493,6 @@ C2HClF_1,1-ClF
 {
     specie
     {
-        nMoles          1;
         molWeight       79.4817;
     }
     thermodynamics
@@ -3740,7 +3508,6 @@ Mg2F4
 {
     specie
     {
-        nMoles          1;
         molWeight       124.618;
     }
     thermodynamics
@@ -3756,7 +3523,6 @@ C6H2Cl3O_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       196.441;
     }
     thermodynamics
@@ -3772,7 +3538,6 @@ I2O__I-I-O
 {
     specie
     {
-        nMoles          1;
         molWeight       269.808;
     }
     thermodynamics
@@ -3788,7 +3553,6 @@ N2H3___Rad.
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0373;
     }
     thermodynamics
@@ -3804,7 +3568,6 @@ BiF2
 {
     specie
     {
-        nMoles          1;
         molWeight       246.977;
     }
     thermodynamics
@@ -3820,7 +3583,6 @@ AlH3(a)_hexagonal
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0054;
     }
     thermodynamics
@@ -3836,7 +3598,6 @@ C6H9_c_CyHexenyl-3
 {
     specie
     {
-        nMoles          1;
         molWeight       81.1386;
     }
     thermodynamics
@@ -3852,7 +3613,6 @@ C9_linear_biradi
 {
     specie
     {
-        nMoles          1;
         molWeight       108.1;
     }
     thermodynamics
@@ -3868,7 +3628,6 @@ P+
 {
     specie
     {
-        nMoles          1;
         molWeight       30.9733;
     }
     thermodynamics
@@ -3884,7 +3643,6 @@ CH3N3_MethylAzyd
 {
     specie
     {
-        nMoles          1;
         molWeight       57.0552;
     }
     thermodynamics
@@ -3900,7 +3658,6 @@ BBr
 {
     specie
     {
-        nMoles          1;
         molWeight       90.7119;
     }
     thermodynamics
@@ -3916,7 +3673,6 @@ C7H7_Cyheptatrien
 {
     specie
     {
-        nMoles          1;
         molWeight       91.1338;
     }
     thermodynamics
@@ -3932,7 +3688,6 @@ MgH2(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       26.3279;
     }
     thermodynamics
@@ -3948,7 +3703,6 @@ n-C20H42_Eicosane
 {
     specie
     {
-        nMoles          1;
         molWeight       282.558;
     }
     thermodynamics
@@ -3964,7 +3718,6 @@ FeS(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       87.911;
     }
     thermodynamics
@@ -3980,7 +3733,6 @@ RDX_Solid_293-47
 {
     specie
     {
-        nMoles          1;
         molWeight       222.118;
     }
     thermodynamics
@@ -3996,7 +3748,6 @@ I
 {
     specie
     {
-        nMoles          1;
         molWeight       126.904;
     }
     thermodynamics
@@ -4012,7 +3763,6 @@ C2H5O__CH3-O-CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0616;
     }
     thermodynamics
@@ -4028,7 +3778,6 @@ C8H12_3,6-Dimeth
 {
     specie
     {
-        nMoles          1;
         molWeight       108.185;
     }
     thermodynamics
@@ -4044,7 +3793,6 @@ CCl2F-CHF2
 {
     specie
     {
-        nMoles          1;
         molWeight       152.931;
     }
     thermodynamics
@@ -4060,7 +3808,6 @@ C4H8S2_1,4_Dithi
 {
     specie
     {
-        nMoles          1;
         molWeight       120.236;
     }
     thermodynamics
@@ -4076,7 +3823,6 @@ C6H5OO_peroxy_rad
 {
     specie
     {
-        nMoles          1;
         molWeight       109.106;
     }
     thermodynamics
@@ -4092,7 +3838,6 @@ CH3OO-__anion
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0344;
     }
     thermodynamics
@@ -4108,7 +3853,6 @@ CH3-CHBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       187.856;
     }
     thermodynamics
@@ -4124,7 +3868,6 @@ H3O+
 {
     specie
     {
-        nMoles          1;
         molWeight       19.0228;
     }
     thermodynamics
@@ -4140,7 +3883,6 @@ C3HBr2*1,1-Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       196.843;
     }
     thermodynamics
@@ -4156,7 +3898,6 @@ C2Br2F4__CBrF2-C
 {
     specie
     {
-        nMoles          1;
         molWeight       259.818;
     }
     thermodynamics
@@ -4172,7 +3913,6 @@ C7H8O_CRESOL
 {
     specie
     {
-        nMoles          1;
         molWeight       108.141;
     }
     thermodynamics
@@ -4188,7 +3928,6 @@ FO3F
 {
     specie
     {
-        nMoles          1;
         molWeight       85.995;
     }
     thermodynamics
@@ -4204,7 +3943,6 @@ CH3Br+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       94.9354;
     }
     thermodynamics
@@ -4220,7 +3958,6 @@ C3H6O__C2H3-O-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0807;
     }
     thermodynamics
@@ -4236,7 +3973,6 @@ Ca+
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0795;
     }
     thermodynamics
@@ -4252,7 +3988,6 @@ FeCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       126.753;
     }
     thermodynamics
@@ -4268,7 +4003,6 @@ C12H8_Acenaphtyl
 {
     specie
     {
-        nMoles          1;
         molWeight       152.198;
     }
     thermodynamics
@@ -4284,7 +4018,6 @@ PF3Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       158.875;
     }
     thermodynamics
@@ -4300,7 +4033,6 @@ Mg2
 {
     specie
     {
-        nMoles          1;
         molWeight       48.624;
     }
     thermodynamics
@@ -4316,7 +4048,6 @@ O2_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -4332,7 +4063,6 @@ AlF+
 {
     specie
     {
-        nMoles          1;
         molWeight       45.9794;
     }
     thermodynamics
@@ -4348,7 +4078,6 @@ B2
 {
     specie
     {
-        nMoles          1;
         molWeight       21.622;
     }
     thermodynamics
@@ -4364,7 +4093,6 @@ C6H4ClO_o-Cl-pheno
 {
     specie
     {
-        nMoles          1;
         molWeight       127.551;
     }
     thermodynamics
@@ -4380,7 +4108,6 @@ HPO2__HOPO
 {
     specie
     {
-        nMoles          1;
         molWeight       63.9806;
     }
     thermodynamics
@@ -4396,7 +4123,6 @@ CNO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0173;
     }
     thermodynamics
@@ -4412,7 +4138,6 @@ SB(l)
 {
     specie
     {
-        nMoles          1;
         molWeight       0;
     }
     thermodynamics
@@ -4428,7 +4153,6 @@ CH3Br
 {
     specie
     {
-        nMoles          1;
         molWeight       94.936;
     }
     thermodynamics
@@ -4444,7 +4168,6 @@ DO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0134;
     }
     thermodynamics
@@ -4460,7 +4183,6 @@ CH4-__Anion
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0436;
     }
     thermodynamics
@@ -4476,7 +4198,6 @@ BH5
 {
     specie
     {
-        nMoles          1;
         molWeight       15.8509;
     }
     thermodynamics
@@ -4492,7 +4213,6 @@ C3F4__PerFAllene
 {
     specie
     {
-        nMoles          1;
         molWeight       112.027;
     }
     thermodynamics
@@ -4508,7 +4228,6 @@ C2F
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0207;
     }
     thermodynamics
@@ -4524,7 +4243,6 @@ C16H33_Hexadecyl
 {
     specie
     {
-        nMoles          1;
         molWeight       225.441;
     }
     thermodynamics
@@ -4540,7 +4258,6 @@ BENZOTRIFUROXAN
 {
     specie
     {
-        nMoles          1;
         molWeight       252.103;
     }
     thermodynamics
@@ -4556,7 +4273,6 @@ CHI2
 {
     specie
     {
-        nMoles          1;
         molWeight       266.828;
     }
     thermodynamics
@@ -4572,7 +4288,6 @@ C4H2N2__Fumaroni
 {
     specie
     {
-        nMoles          1;
         molWeight       78.0739;
     }
     thermodynamics
@@ -4588,7 +4303,6 @@ O-CHLOROPHENYL
 {
     specie
     {
-        nMoles          1;
         molWeight       111.552;
     }
     thermodynamics
@@ -4604,7 +4318,6 @@ CD3_Methyl-D3
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0535;
     }
     thermodynamics
@@ -4620,7 +4333,6 @@ C9H12__1-3-5-TMB
 {
     specie
     {
-        nMoles          1;
         molWeight       120.196;
     }
     thermodynamics
@@ -4636,7 +4348,6 @@ C20H14_Alpha_BiN
 {
     specie
     {
-        nMoles          1;
         molWeight       254.335;
     }
     thermodynamics
@@ -4652,7 +4363,6 @@ C2N2_Dicyanogen
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0357;
     }
     thermodynamics
@@ -4668,7 +4378,6 @@ H3B3O6
 {
     specie
     {
-        nMoles          1;
         molWeight       131.453;
     }
     thermodynamics
@@ -4684,7 +4393,6 @@ N
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0067;
     }
     thermodynamics
@@ -4700,7 +4408,6 @@ NO2F
 {
     specie
     {
-        nMoles          1;
         molWeight       65.0039;
     }
     thermodynamics
@@ -4716,7 +4423,6 @@ CO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0105;
     }
     thermodynamics
@@ -4732,7 +4438,6 @@ PCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       137.333;
     }
     thermodynamics
@@ -4748,7 +4453,6 @@ Na2O2(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       77.9784;
     }
     thermodynamics
@@ -4764,7 +4468,6 @@ C2D_Ethynyl-D1
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0364;
     }
     thermodynamics
@@ -4780,7 +4483,6 @@ Zn(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       65.37;
     }
     thermodynamics
@@ -4796,7 +4498,6 @@ GeH3Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       111.067;
     }
     thermodynamics
@@ -4812,7 +4513,6 @@ BrS
 {
     specie
     {
-        nMoles          1;
         molWeight       111.965;
     }
     thermodynamics
@@ -4828,7 +4528,6 @@ C9H18O2_Nonanoic
 {
     specie
     {
-        nMoles          1;
         molWeight       158.243;
     }
     thermodynamics
@@ -4844,7 +4543,6 @@ P2O5
 {
     specie
     {
-        nMoles          1;
         molWeight       141.945;
     }
     thermodynamics
@@ -4860,7 +4558,6 @@ MoC__Solid-C
 {
     specie
     {
-        nMoles          1;
         molWeight       107.951;
     }
     thermodynamics
@@ -4876,7 +4573,6 @@ CF
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0096;
     }
     thermodynamics
@@ -4892,7 +4588,6 @@ C4H9_isobutyl_rad
 {
     specie
     {
-        nMoles          1;
         molWeight       57.1163;
     }
     thermodynamics
@@ -4908,7 +4603,6 @@ CH3C-_triradical
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0468;
     }
     thermodynamics
@@ -4924,7 +4618,6 @@ CF3
 {
     specie
     {
-        nMoles          1;
         molWeight       69.0063;
     }
     thermodynamics
@@ -4940,7 +4633,6 @@ CH2N2_H2N-CN
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0405;
     }
     thermodynamics
@@ -4956,7 +4648,6 @@ C12H4Cl4O_2468
 {
     specie
     {
-        nMoles          1;
         molWeight       305.977;
     }
     thermodynamics
@@ -4972,7 +4663,6 @@ F2H-____FHF-
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0053;
     }
     thermodynamics
@@ -4988,7 +4678,6 @@ C6H3Cl3O_TriClPhen
 {
     specie
     {
-        nMoles          1;
         molWeight       197.449;
     }
     thermodynamics
@@ -5004,7 +4693,6 @@ SiC
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0971;
     }
     thermodynamics
@@ -5020,7 +4708,6 @@ SbOH_tripet
 {
     specie
     {
-        nMoles          1;
         molWeight       138.757;
     }
     thermodynamics
@@ -5036,7 +4723,6 @@ N2O
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0128;
     }
     thermodynamics
@@ -5052,7 +4738,6 @@ Tetryl_Solid_Yin
 {
     specie
     {
-        nMoles          1;
         molWeight       287.147;
     }
     thermodynamics
@@ -5068,7 +4753,6 @@ C8H18,isooctane
 {
     specie
     {
-        nMoles          1;
         molWeight       114.233;
     }
     thermodynamics
@@ -5084,7 +4768,6 @@ C5H10__2-Pentene
 {
     specie
     {
-        nMoles          1;
         molWeight       70.1355;
     }
     thermodynamics
@@ -5100,7 +4783,6 @@ C6_linear_biradi
 {
     specie
     {
-        nMoles          1;
         molWeight       72.0669;
     }
     thermodynamics
@@ -5116,7 +4798,6 @@ s-1,2-C7H5NS1,2-Be
 {
     specie
     {
-        nMoles          1;
         molWeight       135.189;
     }
     thermodynamics
@@ -5132,7 +4813,6 @@ C8H_linear
 {
     specie
     {
-        nMoles          1;
         molWeight       97.0972;
     }
     thermodynamics
@@ -5148,7 +4828,6 @@ CH3OH-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       32.043;
     }
     thermodynamics
@@ -5164,7 +4843,6 @@ CF3O_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       85.0057;
     }
     thermodynamics
@@ -5180,7 +4858,6 @@ C5H10O2_Peroxy-en
 {
     specie
     {
-        nMoles          1;
         molWeight       102.134;
     }
     thermodynamics
@@ -5196,7 +4873,6 @@ SO3
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0622;
     }
     thermodynamics
@@ -5212,7 +4888,6 @@ F2-
 {
     specie
     {
-        nMoles          1;
         molWeight       37.9973;
     }
     thermodynamics
@@ -5228,7 +4903,6 @@ C2H4O_vinyl_alco
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0536;
     }
     thermodynamics
@@ -5244,7 +4918,6 @@ H2O2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0147;
     }
     thermodynamics
@@ -5260,7 +4933,6 @@ C3Cl3_triClallene
 {
     specie
     {
-        nMoles          1;
         molWeight       142.392;
     }
     thermodynamics
@@ -5276,7 +4948,6 @@ PH2
 {
     specie
     {
-        nMoles          1;
         molWeight       32.9897;
     }
     thermodynamics
@@ -5292,7 +4963,6 @@ C5H6_1-ene-3yne,
 {
     specie
     {
-        nMoles          1;
         molWeight       66.1036;
     }
     thermodynamics
@@ -5308,7 +4978,6 @@ C9H19_n-nonyl
 {
     specie
     {
-        nMoles          1;
         molWeight       127.252;
     }
     thermodynamics
@@ -5324,7 +4993,6 @@ NiO(liq)
 {
     specie
     {
-        nMoles          1;
         molWeight       74.7094;
     }
     thermodynamics
@@ -5340,7 +5008,6 @@ S-C5H11_1m-butyl
 {
     specie
     {
-        nMoles          1;
         molWeight       71.1434;
     }
     thermodynamics
@@ -5356,7 +5023,6 @@ s-1,2-C2H2F2-cis
 {
     specie
     {
-        nMoles          1;
         molWeight       64.035;
     }
     thermodynamics
@@ -5372,7 +5038,6 @@ B
 {
     specie
     {
-        nMoles          1;
         molWeight       10.811;
     }
     thermodynamics
@@ -5388,7 +5053,6 @@ C2H2F4_1,1,2,2
 {
     specie
     {
-        nMoles          1;
         molWeight       102.032;
     }
     thermodynamics
@@ -5404,7 +5068,6 @@ C9H__linear
 {
     specie
     {
-        nMoles          1;
         molWeight       109.108;
     }
     thermodynamics
@@ -5420,7 +5083,6 @@ C18H34O3_RicinOlei
 {
     specie
     {
-        nMoles          1;
         molWeight       298.47;
     }
     thermodynamics
@@ -5436,7 +5098,6 @@ P
 {
     specie
     {
-        nMoles          1;
         molWeight       30.9738;
     }
     thermodynamics
@@ -5452,7 +5113,6 @@ C4H7__cyclobutyl
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1004;
     }
     thermodynamics
@@ -5468,7 +5128,6 @@ C5H6_Vinyl-Allene
 {
     specie
     {
-        nMoles          1;
         molWeight       66.1036;
     }
     thermodynamics
@@ -5484,7 +5143,6 @@ CT3__methyl_T-3
 {
     specie
     {
-        nMoles          1;
         molWeight       155.711;
     }
     thermodynamics
@@ -5500,7 +5158,6 @@ Sn(CH3)4
 {
     specie
     {
-        nMoles          1;
         molWeight       178.83;
     }
     thermodynamics
@@ -5516,7 +5173,6 @@ BiH3
 {
     specie
     {
-        nMoles          1;
         molWeight       212.004;
     }
     thermodynamics
@@ -5532,7 +5188,6 @@ HCCO_Ketyl_radical
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0297;
     }
     thermodynamics
@@ -5548,7 +5203,6 @@ CD4__RRHO
 {
     specie
     {
-        nMoles          1;
         molWeight       20.0676;
     }
     thermodynamics
@@ -5564,7 +5218,6 @@ NH2__AMIDOGEN_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0226;
     }
     thermodynamics
@@ -5580,7 +5233,6 @@ C18H30O2_Linolenic
 {
     specie
     {
-        nMoles          1;
         molWeight       278.439;
     }
     thermodynamics
@@ -5596,7 +5248,6 @@ C2H2FCl_1,1-FCl
 {
     specie
     {
-        nMoles          1;
         molWeight       80.4896;
     }
     thermodynamics
@@ -5612,7 +5263,6 @@ Al(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       26.9815;
     }
     thermodynamics
@@ -5628,7 +5278,6 @@ C10H7-CH2CH2*
 {
     specie
     {
-        nMoles          1;
         molWeight       155.221;
     }
     thermodynamics
@@ -5644,7 +5293,6 @@ BF2+
 {
     specie
     {
-        nMoles          1;
         molWeight       48.8073;
     }
     thermodynamics
@@ -5660,7 +5308,6 @@ C3H5O__*CH2C2H3O
 {
     specie
     {
-        nMoles          1;
         molWeight       57.0727;
     }
     thermodynamics
@@ -5676,7 +5323,6 @@ CP
 {
     specie
     {
-        nMoles          1;
         molWeight       42.9849;
     }
     thermodynamics
@@ -5692,7 +5338,6 @@ C7H5N___PhenylCN
 {
     specie
     {
-        nMoles          1;
         molWeight       103.125;
     }
     thermodynamics
@@ -5708,7 +5353,6 @@ ND
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0208;
     }
     thermodynamics
@@ -5724,7 +5368,6 @@ Br+
 {
     specie
     {
-        nMoles          1;
         molWeight       79.9004;
     }
     thermodynamics
@@ -5740,7 +5383,6 @@ C4H5O__EtKetene
 {
     specie
     {
-        nMoles          1;
         molWeight       69.0838;
     }
     thermodynamics
@@ -5756,7 +5398,6 @@ Ni3S2(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       240.258;
     }
     thermodynamics
@@ -5772,7 +5413,6 @@ C3F7_CF3CF*CF3_M
 {
     specie
     {
-        nMoles          1;
         molWeight       169.022;
     }
     thermodynamics
@@ -5788,7 +5428,6 @@ C12H4Cl6O2_BIFENYL
 {
     specie
     {
-        nMoles          1;
         molWeight       392.882;
     }
     thermodynamics
@@ -5804,7 +5443,6 @@ NH4NO3(I)
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0435;
     }
     thermodynamics
@@ -5820,7 +5458,6 @@ CH2OH+
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0339;
     }
     thermodynamics
@@ -5836,7 +5473,6 @@ PCl2-
 {
     specie
     {
-        nMoles          1;
         molWeight       101.88;
     }
     thermodynamics
@@ -5852,7 +5488,6 @@ HSO2__HO-SO
 {
     specie
     {
-        nMoles          1;
         molWeight       65.0708;
     }
     thermodynamics
@@ -5868,7 +5503,6 @@ C19H40_NanoDecane
 {
     specie
     {
-        nMoles          1;
         molWeight       268.531;
     }
     thermodynamics
@@ -5884,7 +5518,6 @@ CH3N2_cy(-CH*N=NH-
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0485;
     }
     thermodynamics
@@ -5900,7 +5533,6 @@ Ag_liq
 {
     specie
     {
-        nMoles          1;
         molWeight       107.87;
     }
     thermodynamics
@@ -5916,7 +5548,6 @@ C3H7I_1-IodoProp
 {
     specie
     {
-        nMoles          1;
         molWeight       169.994;
     }
     thermodynamics
@@ -5932,7 +5563,6 @@ C7H7O2__p-guyacyl
 {
     specie
     {
-        nMoles          1;
         molWeight       123.133;
     }
     thermodynamics
@@ -5948,7 +5578,6 @@ C6H5_CHAIN
 {
     specie
     {
-        nMoles          1;
         molWeight       77.1068;
     }
     thermodynamics
@@ -5964,7 +5593,6 @@ I2O__I-O-I
 {
     specie
     {
-        nMoles          1;
         molWeight       269.808;
     }
     thermodynamics
@@ -5980,7 +5608,6 @@ C6H13__2-M-2yl
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1705;
     }
     thermodynamics
@@ -5996,7 +5623,6 @@ C2H3O2_*CH2CH=O
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0456;
     }
     thermodynamics
@@ -6012,7 +5638,6 @@ C2Cl2F2_1,2-cis
 {
     specie
     {
-        nMoles          1;
         molWeight       132.925;
     }
     thermodynamics
@@ -6028,7 +5653,6 @@ CHO+
 {
     specie
     {
-        nMoles          1;
         molWeight       29.018;
     }
     thermodynamics
@@ -6044,7 +5668,6 @@ C6H12_2Me-2en
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1625;
     }
     thermodynamics
@@ -6060,7 +5683,6 @@ Na(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       22.9898;
     }
     thermodynamics
@@ -6076,7 +5698,6 @@ C5H9O2_MeButyratC2
 {
     specie
     {
-        nMoles          1;
         molWeight       101.126;
     }
     thermodynamics
@@ -6092,7 +5713,6 @@ SF-
 {
     specie
     {
-        nMoles          1;
         molWeight       51.0629;
     }
     thermodynamics
@@ -6108,7 +5728,6 @@ DT
 {
     specie
     {
-        nMoles          1;
         molWeight       49.9141;
     }
     thermodynamics
@@ -6124,7 +5743,6 @@ C9H7+_C6H5CH=C=CH
 {
     specie
     {
-        nMoles          1;
         molWeight       115.156;
     }
     thermodynamics
@@ -6140,7 +5758,6 @@ C23H48__tricosan
 {
     specie
     {
-        nMoles          1;
         molWeight       324.639;
     }
     thermodynamics
@@ -6156,7 +5773,6 @@ s-1,5-C6H4__cis
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0988;
     }
     thermodynamics
@@ -6172,7 +5788,6 @@ CO3-__gas
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0099;
     }
     thermodynamics
@@ -6188,7 +5803,6 @@ TF_Tritium_Fluor
 {
     specie
     {
-        nMoles          1;
         molWeight       66.8984;
     }
     thermodynamics
@@ -6204,7 +5818,6 @@ HPO3__HOPO2
 {
     specie
     {
-        nMoles          1;
         molWeight       79.98;
     }
     thermodynamics
@@ -6220,7 +5833,6 @@ C10H20_3-decene-
 {
     specie
     {
-        nMoles          1;
         molWeight       140.271;
     }
     thermodynamics
@@ -6236,7 +5848,6 @@ C3H5Cl__CHCl=CHCH3
 {
     specie
     {
-        nMoles          1;
         molWeight       76.5263;
     }
     thermodynamics
@@ -6252,7 +5863,6 @@ MgSiO3(II)
 {
     specie
     {
-        nMoles          1;
         molWeight       100.396;
     }
     thermodynamics
@@ -6268,7 +5878,6 @@ BrOBr
 {
     specie
     {
-        nMoles          1;
         molWeight       175.801;
     }
     thermodynamics
@@ -6284,7 +5893,6 @@ S3
 {
     specie
     {
-        nMoles          1;
         molWeight       96.192;
     }
     thermodynamics
@@ -6300,7 +5908,6 @@ C4H8O_n-Butanal
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1078;
     }
     thermodynamics
@@ -6316,7 +5923,6 @@ C3H3-_CH3CC*-
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0579;
     }
     thermodynamics
@@ -6332,7 +5938,6 @@ C4H9N_PYRROLIDINE
 {
     specie
     {
-        nMoles          1;
         molWeight       71.123;
     }
     thermodynamics
@@ -6348,7 +5953,6 @@ C
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0112;
     }
     thermodynamics
@@ -6364,7 +5968,6 @@ PbCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       313.549;
     }
     thermodynamics
@@ -6380,7 +5983,6 @@ KNO3(b)_Hexagonal
 {
     specie
     {
-        nMoles          1;
         molWeight       101.107;
     }
     thermodynamics
@@ -6396,7 +5998,6 @@ SH
 {
     specie
     {
-        nMoles          1;
         molWeight       33.072;
     }
     thermodynamics
@@ -6412,7 +6013,6 @@ C6H9_1-C5H7-3-CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       81.1386;
     }
     thermodynamics
@@ -6428,7 +6028,6 @@ C8H14__cis_Penta
 {
     specie
     {
-        nMoles          1;
         molWeight       110.201;
     }
     thermodynamics
@@ -6444,7 +6043,6 @@ GeS
 {
     specie
     {
-        nMoles          1;
         molWeight       104.654;
     }
     thermodynamics
@@ -6460,7 +6058,6 @@ C8H6O2_BENZODIOXIN
 {
     specie
     {
-        nMoles          1;
         molWeight       134.136;
     }
     thermodynamics
@@ -6476,7 +6073,6 @@ C12H9N__CARBAZOLE
 {
     specie
     {
-        nMoles          1;
         molWeight       167.212;
     }
     thermodynamics
@@ -6492,7 +6088,6 @@ HOOOH
 {
     specie
     {
-        nMoles          1;
         molWeight       50.0141;
     }
     thermodynamics
@@ -6508,7 +6103,6 @@ C4H6O4_Succinic_ac
 {
     specie
     {
-        nMoles          1;
         molWeight       118.09;
     }
     thermodynamics
@@ -6524,7 +6118,6 @@ C24H48O2_Lignocer
 {
     specie
     {
-        nMoles          1;
         molWeight       368.649;
     }
     thermodynamics
@@ -6540,7 +6133,6 @@ Pb(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       207.19;
     }
     thermodynamics
@@ -6556,7 +6148,6 @@ HOBr
 {
     specie
     {
-        nMoles          1;
         molWeight       96.9083;
     }
     thermodynamics
@@ -6572,7 +6163,6 @@ C12H7_Acenaphtynyl
 {
     specie
     {
-        nMoles          1;
         molWeight       151.19;
     }
     thermodynamics
@@ -6588,7 +6178,6 @@ C5H3Cl3_CY-1,2,4Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       169.439;
     }
     thermodynamics
@@ -6604,7 +6193,6 @@ C3D6_Cyclopropan
 {
     specie
     {
-        nMoles          1;
         molWeight       48.1181;
     }
     thermodynamics
@@ -6620,7 +6208,6 @@ Cl2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       102.905;
     }
     thermodynamics
@@ -6636,7 +6223,6 @@ PH3+
 {
     specie
     {
-        nMoles          1;
         molWeight       33.9972;
     }
     thermodynamics
@@ -6652,7 +6238,6 @@ MgAl2O4(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       142.273;
     }
     thermodynamics
@@ -6668,7 +6253,6 @@ Ca(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       40.08;
     }
     thermodynamics
@@ -6684,7 +6268,6 @@ NO3
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0049;
     }
     thermodynamics
@@ -6700,7 +6283,6 @@ SiCl
 {
     specie
     {
-        nMoles          1;
         molWeight       63.539;
     }
     thermodynamics
@@ -6716,7 +6298,6 @@ C11N_Cyanoundecyl
 {
     specie
     {
-        nMoles          1;
         molWeight       146.129;
     }
     thermodynamics
@@ -6732,7 +6313,6 @@ s-1-C10H7CH2CH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       172.229;
     }
     thermodynamics
@@ -6748,7 +6328,6 @@ C6H4O2__O=C6H4=O
 {
     specie
     {
-        nMoles          1;
         molWeight       108.098;
     }
     thermodynamics
@@ -6764,7 +6343,6 @@ C2H3ClO2
 {
     specie
     {
-        nMoles          1;
         molWeight       94.498;
     }
     thermodynamics
@@ -6780,7 +6358,6 @@ S2F10
 {
     specie
     {
-        nMoles          1;
         molWeight       254.112;
     }
     thermodynamics
@@ -6796,7 +6373,6 @@ Hg(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       200.59;
     }
     thermodynamics
@@ -6812,7 +6388,6 @@ C12H4Cl5O2_Radic
 {
     specie
     {
-        nMoles          1;
         molWeight       357.429;
     }
     thermodynamics
@@ -6828,7 +6403,6 @@ SiH4__Silane
 {
     specie
     {
-        nMoles          1;
         molWeight       32.1179;
     }
     thermodynamics
@@ -6844,7 +6418,6 @@ C5H10O_2-Me_Furan
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1349;
     }
     thermodynamics
@@ -6860,7 +6433,6 @@ Ge
 {
     specie
     {
-        nMoles          1;
         molWeight       72.59;
     }
     thermodynamics
@@ -6876,7 +6448,6 @@ C5H2Cl3_1,3,4_Cyc
 {
     specie
     {
-        nMoles          1;
         molWeight       168.431;
     }
     thermodynamics
@@ -6892,7 +6463,6 @@ C9H8_INDENE
 {
     specie
     {
-        nMoles          1;
         molWeight       116.164;
     }
     thermodynamics
@@ -6908,7 +6478,6 @@ C4H8O2_Butyricacid
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1072;
     }
     thermodynamics
@@ -6924,7 +6493,6 @@ CF3-CHClF__FC-124
 {
     specie
     {
-        nMoles          1;
         molWeight       136.477;
     }
     thermodynamics
@@ -6940,7 +6508,6 @@ Ag
 {
     specie
     {
-        nMoles          1;
         molWeight       107.87;
     }
     thermodynamics
@@ -6956,7 +6523,6 @@ AlF2
 {
     specie
     {
-        nMoles          1;
         molWeight       64.9783;
     }
     thermodynamics
@@ -6972,7 +6538,6 @@ CF3-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       69.0069;
     }
     thermodynamics
@@ -6988,7 +6553,6 @@ CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0185;
     }
     thermodynamics
@@ -7004,7 +6568,6 @@ C7H14_CY-HEPTANE
 {
     specie
     {
-        nMoles          1;
         molWeight       98.1896;
     }
     thermodynamics
@@ -7020,7 +6583,6 @@ C6H12_2-Me-1en
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1625;
     }
     thermodynamics
@@ -7036,7 +6598,6 @@ C5H10__2MB-3-ene
 {
     specie
     {
-        nMoles          1;
         molWeight       70.1355;
     }
     thermodynamics
@@ -7052,7 +6613,6 @@ C2Br5
 {
     specie
     {
-        nMoles          1;
         molWeight       423.527;
     }
     thermodynamics
@@ -7068,7 +6628,6 @@ C6H2Cl3O3_BiCy
 {
     specie
     {
-        nMoles          1;
         molWeight       228.44;
     }
     thermodynamics
@@ -7084,7 +6643,6 @@ CBrClF2
 {
     specie
     {
-        nMoles          1;
         molWeight       165.362;
     }
     thermodynamics
@@ -7100,7 +6658,6 @@ C11H22O2_cis-acid
 {
     specie
     {
-        nMoles          1;
         molWeight       186.297;
     }
     thermodynamics
@@ -7116,7 +6673,6 @@ C8H5_C6H5-CC*
 {
     specie
     {
-        nMoles          1;
         molWeight       101.129;
     }
     thermodynamics
@@ -7132,7 +6688,6 @@ COHCl2___Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       99.9245;
     }
     thermodynamics
@@ -7148,7 +6703,6 @@ C7H6O___C6H5-CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       106.125;
     }
     thermodynamics
@@ -7164,7 +6718,6 @@ C18H12__Naphtace
 {
     specie
     {
-        nMoles          1;
         molWeight       228.296;
     }
     thermodynamics
@@ -7180,7 +6733,6 @@ C17H34O2_mepalmita
 {
     specie
     {
-        nMoles          1;
         molWeight       270.459;
     }
     thermodynamics
@@ -7196,7 +6748,6 @@ C12H20O10_Cellobi
 {
     specie
     {
-        nMoles          1;
         molWeight       324.287;
     }
     thermodynamics
@@ -7212,7 +6763,6 @@ C5H7Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       102.565;
     }
     thermodynamics
@@ -7228,7 +6778,6 @@ C7H16_n-heptane
 {
     specie
     {
-        nMoles          1;
         molWeight       100.206;
     }
     thermodynamics
@@ -7244,7 +6793,6 @@ C8H6O_BENZOFURAN
 {
     specie
     {
-        nMoles          1;
         molWeight       118.136;
     }
     thermodynamics
@@ -7260,7 +6808,6 @@ C10H20O2_cis-acid
 {
     specie
     {
-        nMoles          1;
         molWeight       172.27;
     }
     thermodynamics
@@ -7276,7 +6823,6 @@ CHBr2CHBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       345.642;
     }
     thermodynamics
@@ -7292,7 +6838,6 @@ C5H4O2_Ketene
 {
     specie
     {
-        nMoles          1;
         molWeight       96.0864;
     }
     thermodynamics
@@ -7308,7 +6853,6 @@ C6D5,phenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       82.1374;
     }
     thermodynamics
@@ -7324,7 +6868,6 @@ NH4NO3(IV)
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0435;
     }
     thermodynamics
@@ -7340,7 +6883,6 @@ C3H2Cl__ClAllene
 {
     specie
     {
-        nMoles          1;
         molWeight       73.5024;
     }
     thermodynamics
@@ -7356,7 +6898,6 @@ C3H5O2_Methyl_ac
 {
     specie
     {
-        nMoles          1;
         molWeight       73.0721;
     }
     thermodynamics
@@ -7372,7 +6913,6 @@ CD___excited_4si
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0252;
     }
     thermodynamics
@@ -7388,7 +6928,6 @@ C14H10__Anthracene
 {
     specie
     {
-        nMoles          1;
         molWeight       178.236;
     }
     thermodynamics
@@ -7404,7 +6943,6 @@ C4H5N__Pyrole_cy
 {
     specie
     {
-        nMoles          1;
         molWeight       67.0911;
     }
     thermodynamics
@@ -7420,7 +6958,6 @@ Bi+
 {
     specie
     {
-        nMoles          1;
         molWeight       208.979;
     }
     thermodynamics
@@ -7436,7 +6973,6 @@ H2CNO_H2C*N=O
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0332;
     }
     thermodynamics
@@ -7452,7 +6988,6 @@ C11H__linear
 {
     specie
     {
-        nMoles          1;
         molWeight       133.131;
     }
     thermodynamics
@@ -7468,7 +7003,6 @@ C4H7O_C2H5C(O)CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0998;
     }
     thermodynamics
@@ -7484,7 +7018,6 @@ C6H7__C5H4-1-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1227;
     }
     thermodynamics
@@ -7500,7 +7033,6 @@ C3H5Cl_CH2=CHCH2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       76.5263;
     }
     thermodynamics
@@ -7516,7 +7048,6 @@ Sn
 {
     specie
     {
-        nMoles          1;
         molWeight       118.69;
     }
     thermodynamics
@@ -7532,7 +7063,6 @@ CH3C+_triradical
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0457;
     }
     thermodynamics
@@ -7548,7 +7078,6 @@ CO2_cy__C(OO)
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -7564,7 +7093,6 @@ PbCl4
 {
     specie
     {
-        nMoles          1;
         molWeight       349.002;
     }
     thermodynamics
@@ -7580,7 +7108,6 @@ C20H40O2_etStearat
 {
     specie
     {
-        nMoles          1;
         molWeight       312.541;
     }
     thermodynamics
@@ -7596,7 +7123,6 @@ PCl
 {
     specie
     {
-        nMoles          1;
         molWeight       66.4268;
     }
     thermodynamics
@@ -7612,7 +7138,6 @@ C3H7N__AZETIDINE
 {
     specie
     {
-        nMoles          1;
         molWeight       57.0959;
     }
     thermodynamics
@@ -7628,7 +7153,6 @@ C2Cl4_Tetrachlor
 {
     specie
     {
-        nMoles          1;
         molWeight       165.834;
     }
     thermodynamics
@@ -7644,7 +7168,6 @@ AlO-
 {
     specie
     {
-        nMoles          1;
         molWeight       42.9814;
     }
     thermodynamics
@@ -7660,7 +7183,6 @@ C5H10_1-pentene
 {
     specie
     {
-        nMoles          1;
         molWeight       70.1355;
     }
     thermodynamics
@@ -7676,7 +7198,6 @@ PT_TritiumPhosphor
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9818;
     }
     thermodynamics
@@ -7692,7 +7213,6 @@ C6H12_1-Hexene
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1625;
     }
     thermodynamics
@@ -7708,7 +7228,6 @@ Ar+
 {
     specie
     {
-        nMoles          1;
         molWeight       39.9475;
     }
     thermodynamics
@@ -7724,7 +7243,6 @@ C7H5O___C6H5-C*O
 {
     specie
     {
-        nMoles          1;
         molWeight       105.117;
     }
     thermodynamics
@@ -7740,7 +7258,6 @@ CHF3__FLUOROFORM
 {
     specie
     {
-        nMoles          1;
         molWeight       70.0143;
     }
     thermodynamics
@@ -7756,7 +7273,6 @@ BrCl
 {
     specie
     {
-        nMoles          1;
         molWeight       115.354;
     }
     thermodynamics
@@ -7772,7 +7288,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
@@ -7788,7 +7303,6 @@ NO+
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0056;
     }
     thermodynamics
@@ -7804,7 +7318,6 @@ s-1,3-C3H6S2_cy_di
 {
     specie
     {
-        nMoles          1;
         molWeight       106.209;
     }
     thermodynamics
@@ -7820,7 +7333,6 @@ C-
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0117;
     }
     thermodynamics
@@ -7836,7 +7348,6 @@ C5H12O__3-methyl
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1508;
     }
     thermodynamics
@@ -7852,7 +7363,6 @@ C2H5O__CH2CH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0616;
     }
     thermodynamics
@@ -7868,7 +7378,6 @@ C2H4
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0542;
     }
     thermodynamics
@@ -7884,7 +7393,6 @@ CH3CO+__Acetylium
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0451;
     }
     thermodynamics
@@ -7900,7 +7408,6 @@ C6H6_1,5-Hexadiyn
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -7916,7 +7423,6 @@ C10H10_2,2p(C5H5)2
 {
     specie
     {
-        nMoles          1;
         molWeight       130.191;
     }
     thermodynamics
@@ -7932,7 +7438,6 @@ Mg(OH)2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       58.3267;
     }
     thermodynamics
@@ -7948,7 +7453,6 @@ C6H12_trans_3
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1625;
     }
     thermodynamics
@@ -7964,7 +7468,6 @@ OH_A_2Sigma+
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0074;
     }
     thermodynamics
@@ -7980,7 +7483,6 @@ SF4+
 {
     specie
     {
-        nMoles          1;
         molWeight       108.057;
     }
     thermodynamics
@@ -7996,7 +7498,6 @@ CH3OD_Methanol_d1
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0486;
     }
     thermodynamics
@@ -8012,7 +7513,6 @@ C10_linear_single
 {
     specie
     {
-        nMoles          1;
         molWeight       120.112;
     }
     thermodynamics
@@ -8028,7 +7528,6 @@ CH3COOH
 {
     specie
     {
-        nMoles          1;
         molWeight       60.053;
     }
     thermodynamics
@@ -8044,7 +7543,6 @@ Ca(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       40.08;
     }
     thermodynamics
@@ -8060,7 +7558,6 @@ TCl_Tritium_Chlo
 {
     specie
     {
-        nMoles          1;
         molWeight       83.353;
     }
     thermodynamics
@@ -8076,7 +7573,6 @@ OBrO
 {
     specie
     {
-        nMoles          1;
         molWeight       111.9;
     }
     thermodynamics
@@ -8092,7 +7588,6 @@ C2Br2
 {
     specie
     {
-        nMoles          1;
         molWeight       183.824;
     }
     thermodynamics
@@ -8108,7 +7603,6 @@ C20H40O2_Archidic
 {
     specie
     {
-        nMoles          1;
         molWeight       312.541;
     }
     thermodynamics
@@ -8124,7 +7618,6 @@ o-C6H3_Radical_Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       75.0908;
     }
     thermodynamics
@@ -8140,7 +7633,6 @@ Pt_(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       195.09;
     }
     thermodynamics
@@ -8156,7 +7648,6 @@ B2H
 {
     specie
     {
-        nMoles          1;
         molWeight       22.63;
     }
     thermodynamics
@@ -8172,7 +7663,6 @@ C6H10O5_Levogluco
 {
     specie
     {
-        nMoles          1;
         molWeight       162.144;
     }
     thermodynamics
@@ -8188,7 +7678,6 @@ PFCl-
 {
     specie
     {
-        nMoles          1;
         molWeight       85.4257;
     }
     thermodynamics
@@ -8204,7 +7693,6 @@ C9H20(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       128.26;
     }
     thermodynamics
@@ -8220,7 +7708,6 @@ C6H3_CH2=C*-CC-CCH
 {
     specie
     {
-        nMoles          1;
         molWeight       75.0908;
     }
     thermodynamics
@@ -8236,7 +7723,6 @@ s-1-C10H7C*O
 {
     specie
     {
-        nMoles          1;
         molWeight       155.178;
     }
     thermodynamics
@@ -8252,7 +7738,6 @@ CH2ClF__GC-31
 {
     specie
     {
-        nMoles          1;
         molWeight       68.4785;
     }
     thermodynamics
@@ -8268,7 +7753,6 @@ SbOH_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       138.757;
     }
     thermodynamics
@@ -8284,7 +7768,6 @@ C24H46O2_Nervonic
 {
     specie
     {
-        nMoles          1;
         molWeight       366.633;
     }
     thermodynamics
@@ -8300,7 +7783,6 @@ C10H10_1-meIndene
 {
     specie
     {
-        nMoles          1;
         molWeight       130.191;
     }
     thermodynamics
@@ -8316,7 +7798,6 @@ SF5+
 {
     specie
     {
-        nMoles          1;
         molWeight       127.055;
     }
     thermodynamics
@@ -8332,7 +7813,6 @@ C4H8_Cyclobutan
 {
     specie
     {
-        nMoles          1;
         molWeight       56.1084;
     }
     thermodynamics
@@ -8348,7 +7828,6 @@ DCl
 {
     specie
     {
-        nMoles          1;
         molWeight       37.4671;
     }
     thermodynamics
@@ -8364,7 +7843,6 @@ HD+
 {
     specie
     {
-        nMoles          1;
         molWeight       3.02153;
     }
     thermodynamics
@@ -8380,7 +7858,6 @@ NF3
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0019;
     }
     thermodynamics
@@ -8396,7 +7873,6 @@ Na+
 {
     specie
     {
-        nMoles          1;
         molWeight       22.9893;
     }
     thermodynamics
@@ -8412,7 +7888,6 @@ C3HBr2O*__Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       212.843;
     }
     thermodynamics
@@ -8428,7 +7903,6 @@ s-1-C10H7O*
 {
     specie
     {
-        nMoles          1;
         molWeight       143.167;
     }
     thermodynamics
@@ -8444,7 +7918,6 @@ HF
 {
     specie
     {
-        nMoles          1;
         molWeight       20.0064;
     }
     thermodynamics
@@ -8460,7 +7933,6 @@ Pt_(liq)
 {
     specie
     {
-        nMoles          1;
         molWeight       195.09;
     }
     thermodynamics
@@ -8476,7 +7948,6 @@ CNO-
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0178;
     }
     thermodynamics
@@ -8492,7 +7963,6 @@ CO
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0106;
     }
     thermodynamics
@@ -8508,7 +7978,6 @@ HgBr2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       360.392;
     }
     thermodynamics
@@ -8524,7 +7993,6 @@ Fe(OH)3(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       106.869;
     }
     thermodynamics
@@ -8540,7 +8008,6 @@ C7H8_Norbornadiene
 {
     specie
     {
-        nMoles          1;
         molWeight       92.1418;
     }
     thermodynamics
@@ -8556,7 +8023,6 @@ C4H3_i-2yl_Rad
 {
     specie
     {
-        nMoles          1;
         molWeight       51.0685;
     }
     thermodynamics
@@ -8572,7 +8038,6 @@ C8H15_1-octenyl-
 {
     specie
     {
-        nMoles          1;
         molWeight       111.209;
     }
     thermodynamics
@@ -8588,7 +8053,6 @@ SiCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       134.445;
     }
     thermodynamics
@@ -8604,7 +8068,6 @@ C2F6O2_CF3-OO-CF3
 {
     specie
     {
-        nMoles          1;
         molWeight       170.011;
     }
     thermodynamics
@@ -8620,7 +8083,6 @@ C12H4Cl4O2_1368
 {
     specie
     {
-        nMoles          1;
         molWeight       321.976;
     }
     thermodynamics
@@ -8636,7 +8098,6 @@ S4
 {
     specie
     {
-        nMoles          1;
         molWeight       128.256;
     }
     thermodynamics
@@ -8652,7 +8113,6 @@ Ni3S2(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       240.258;
     }
     thermodynamics
@@ -8668,7 +8128,6 @@ C3F7H__FC227EA
 {
     specie
     {
-        nMoles          1;
         molWeight       170.03;
     }
     thermodynamics
@@ -8684,7 +8143,6 @@ HONC
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -8700,7 +8158,6 @@ C13H9__Phenalenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       165.217;
     }
     thermodynamics
@@ -8716,7 +8173,6 @@ NH2-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0232;
     }
     thermodynamics
@@ -8732,7 +8188,6 @@ CH
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0191;
     }
     thermodynamics
@@ -8748,7 +8203,6 @@ C14H28O2_Myristcac
 {
     specie
     {
-        nMoles          1;
         molWeight       228.378;
     }
     thermodynamics
@@ -8764,7 +8218,6 @@ CH3Cl+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       50.4875;
     }
     thermodynamics
@@ -8780,7 +8233,6 @@ N2H2_equil_&_trans
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0293;
     }
     thermodynamics
@@ -8796,7 +8248,6 @@ F
 {
     specie
     {
-        nMoles          1;
         molWeight       18.9984;
     }
     thermodynamics
@@ -8812,7 +8263,6 @@ C6H6_BENZENE
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -8828,7 +8278,6 @@ C6H11O2_Caproyl_R
 {
     specie
     {
-        nMoles          1;
         molWeight       115.153;
     }
     thermodynamics
@@ -8844,7 +8293,6 @@ HCO-_Formyl_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0191;
     }
     thermodynamics
@@ -8860,7 +8308,6 @@ H2SO4(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       98.0775;
     }
     thermodynamics
@@ -8876,7 +8323,6 @@ H3PO3__O=PH(OH)2
 {
     specie
     {
-        nMoles          1;
         molWeight       81.9959;
     }
     thermodynamics
@@ -8892,7 +8338,6 @@ HOT__Water-T1
 {
     specie
     {
-        nMoles          1;
         molWeight       64.9074;
     }
     thermodynamics
@@ -8908,7 +8353,6 @@ B2O3(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       69.6202;
     }
     thermodynamics
@@ -8924,7 +8368,6 @@ C7H13_1-hepten4-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       97.1817;
     }
     thermodynamics
@@ -8940,7 +8383,6 @@ Cr7C3(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       400.005;
     }
     thermodynamics
@@ -8956,7 +8398,6 @@ FeCl
 {
     specie
     {
-        nMoles          1;
         molWeight       91.3;
     }
     thermodynamics
@@ -8972,7 +8413,6 @@ PbS(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       239.254;
     }
     thermodynamics
@@ -8988,7 +8428,6 @@ C9H20O_1-Nonanol
 {
     specie
     {
-        nMoles          1;
         molWeight       144.259;
     }
     thermodynamics
@@ -9004,7 +8443,6 @@ NO2__cyclo_N(OO)
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0055;
     }
     thermodynamics
@@ -9020,7 +8458,6 @@ ZrF2
 {
     specie
     {
-        nMoles          1;
         molWeight       129.217;
     }
     thermodynamics
@@ -9036,7 +8473,6 @@ C5H7NO__CH3C(O)C
 {
     specie
     {
-        nMoles          1;
         molWeight       97.1176;
     }
     thermodynamics
@@ -9052,7 +8488,6 @@ C6H7+_C5H4-1-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1221;
     }
     thermodynamics
@@ -9068,7 +8503,6 @@ PFCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       120.878;
     }
     thermodynamics
@@ -9084,7 +8518,6 @@ HT
 {
     specie
     {
-        nMoles          1;
         molWeight       48.908;
     }
     thermodynamics
@@ -9100,7 +8533,6 @@ C3D4_Cyclopropen
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0898;
     }
     thermodynamics
@@ -9116,7 +8548,6 @@ ZrN(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       105.227;
     }
     thermodynamics
@@ -9132,7 +8563,6 @@ CO2+
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0094;
     }
     thermodynamics
@@ -9148,7 +8578,6 @@ s-1-C10H7-C2H5
 {
     specie
     {
-        nMoles          1;
         molWeight       156.229;
     }
     thermodynamics
@@ -9164,7 +8593,6 @@ SB(s)
 {
     specie
     {
-        nMoles          1;
         molWeight       121.75;
     }
     thermodynamics
@@ -9180,7 +8608,6 @@ CClF2
 {
     specie
     {
-        nMoles          1;
         molWeight       85.4609;
     }
     thermodynamics
@@ -9196,7 +8623,6 @@ CH2BrF
 {
     specie
     {
-        nMoles          1;
         molWeight       112.926;
     }
     thermodynamics
@@ -9212,7 +8638,6 @@ C7H10_55C5H4(CH3)2
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1578;
     }
     thermodynamics
@@ -9228,7 +8653,6 @@ C2H2-_Vinylidene-
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0388;
     }
     thermodynamics
@@ -9244,7 +8668,6 @@ C3H3ON_Isoxazole
 {
     specie
     {
-        nMoles          1;
         molWeight       69.0635;
     }
     thermodynamics
@@ -9260,7 +8683,6 @@ C10H16_exo_(JP-10)
 {
     specie
     {
-        nMoles          1;
         molWeight       136.239;
     }
     thermodynamics
@@ -9276,7 +8698,6 @@ C4H8S_T.H.Thiophen
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1724;
     }
     thermodynamics
@@ -9292,7 +8713,6 @@ SF6-
 {
     specie
     {
-        nMoles          1;
         molWeight       146.055;
     }
     thermodynamics
@@ -9308,7 +8728,6 @@ HNO3
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0129;
     }
     thermodynamics
@@ -9324,7 +8743,6 @@ Zr(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       91.22;
     }
     thermodynamics
@@ -9340,7 +8758,6 @@ CNC
 {
     specie
     {
-        nMoles          1;
         molWeight       38.029;
     }
     thermodynamics
@@ -9356,7 +8773,6 @@ C5H5OH_Cyclo-1,4
 {
     specie
     {
-        nMoles          1;
         molWeight       82.103;
     }
     thermodynamics
@@ -9372,7 +8788,6 @@ C6H4Cl2_m-Clbenzen
 {
     specie
     {
-        nMoles          1;
         molWeight       147.005;
     }
     thermodynamics
@@ -9388,7 +8803,6 @@ C2H5S_ethyl_thio
 {
     specie
     {
-        nMoles          1;
         molWeight       61.1262;
     }
     thermodynamics
@@ -9404,7 +8818,6 @@ C7H13__Cyheptanyl
 {
     specie
     {
-        nMoles          1;
         molWeight       97.1817;
     }
     thermodynamics
@@ -9420,7 +8833,6 @@ N+
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0062;
     }
     thermodynamics
@@ -9436,7 +8848,6 @@ C6H11__Cyhexyl
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -9452,7 +8863,6 @@ PbO2
 {
     specie
     {
-        nMoles          1;
         molWeight       239.189;
     }
     thermodynamics
@@ -9468,7 +8878,6 @@ C(NO)-_cy
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0178;
     }
     thermodynamics
@@ -9484,7 +8893,6 @@ o-C6H5BrO_trans_E
 {
     specie
     {
-        nMoles          1;
         molWeight       173.007;
     }
     thermodynamics
@@ -9500,7 +8908,6 @@ Ir_(g)_Iridium
 {
     specie
     {
-        nMoles          1;
         molWeight       192.2;
     }
     thermodynamics
@@ -9516,7 +8923,6 @@ NO2+
 {
     specie
     {
-        nMoles          1;
         molWeight       46.005;
     }
     thermodynamics
@@ -9532,7 +8938,6 @@ C2H3Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       62.4992;
     }
     thermodynamics
@@ -9548,7 +8953,6 @@ MgCO3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       84.3213;
     }
     thermodynamics
@@ -9564,7 +8968,6 @@ Fe(CO)5
 {
     specie
     {
-        nMoles          1;
         molWeight       195.9;
     }
     thermodynamics
@@ -9580,7 +8983,6 @@ CHClF
 {
     specie
     {
-        nMoles          1;
         molWeight       67.4705;
     }
     thermodynamics
@@ -9596,7 +8998,6 @@ C2H2F3
 {
     specie
     {
-        nMoles          1;
         molWeight       83.0334;
     }
     thermodynamics
@@ -9612,7 +9013,6 @@ C6H5I+_Iodobenze
 {
     specie
     {
-        nMoles          1;
         molWeight       204.011;
     }
     thermodynamics
@@ -9628,7 +9028,6 @@ C32H14_Ovalene
 {
     specie
     {
-        nMoles          1;
         molWeight       398.468;
     }
     thermodynamics
@@ -9644,7 +9043,6 @@ CBr2_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       171.813;
     }
     thermodynamics
@@ -9660,7 +9058,6 @@ MnO_(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       70.9374;
     }
     thermodynamics
@@ -9676,7 +9073,6 @@ C2H5N3_Ethyl_Azyd
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0823;
     }
     thermodynamics
@@ -9692,7 +9088,6 @@ C5H8__CycloPente
 {
     specie
     {
-        nMoles          1;
         molWeight       68.1195;
     }
     thermodynamics
@@ -9708,7 +9103,6 @@ CH2N2_cy(-CH=N-NH)
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0405;
     }
     thermodynamics
@@ -9724,7 +9118,6 @@ ZrCl2________GAS
 {
     specie
     {
-        nMoles          1;
         molWeight       162.126;
     }
     thermodynamics
@@ -9740,7 +9133,6 @@ C4H9NO2_Nitrobuta
 {
     specie
     {
-        nMoles          1;
         molWeight       103.122;
     }
     thermodynamics
@@ -9756,7 +9148,6 @@ Cr3C2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       180.01;
     }
     thermodynamics
@@ -9772,7 +9163,6 @@ PCl5
 {
     specie
     {
-        nMoles          1;
         molWeight       208.239;
     }
     thermodynamics
@@ -9788,7 +9178,6 @@ N4-_tetrahedral
 {
     specie
     {
-        nMoles          1;
         molWeight       56.0273;
     }
     thermodynamics
@@ -9804,7 +9193,6 @@ O4-_cyclo_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       63.9981;
     }
     thermodynamics
@@ -9820,7 +9208,6 @@ C6H5NO_Nitrosobe
 {
     specie
     {
-        nMoles          1;
         molWeight       107.113;
     }
     thermodynamics
@@ -9836,7 +9223,6 @@ CClF3___FC-13
 {
     specie
     {
-        nMoles          1;
         molWeight       104.459;
     }
     thermodynamics
@@ -9852,7 +9238,6 @@ P2O4
 {
     specie
     {
-        nMoles          1;
         molWeight       125.945;
     }
     thermodynamics
@@ -9868,7 +9253,6 @@ CON3___Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       70.0307;
     }
     thermodynamics
@@ -9884,7 +9268,6 @@ C5H6_3-ene-1yne,
 {
     specie
     {
-        nMoles          1;
         molWeight       66.1036;
     }
     thermodynamics
@@ -9900,7 +9283,6 @@ CI2
 {
     specie
     {
-        nMoles          1;
         molWeight       265.82;
     }
     thermodynamics
@@ -9916,7 +9298,6 @@ NH
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0147;
     }
     thermodynamics
@@ -9932,7 +9313,6 @@ C5H9O2_MeButyratC4
 {
     specie
     {
-        nMoles          1;
         molWeight       101.126;
     }
     thermodynamics
@@ -9948,7 +9328,6 @@ HNO-
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0146;
     }
     thermodynamics
@@ -9964,7 +9343,6 @@ CHF+
 {
     specie
     {
-        nMoles          1;
         molWeight       32.017;
     }
     thermodynamics
@@ -9980,7 +9358,6 @@ C10H8__AZULENE
 {
     specie
     {
-        nMoles          1;
         molWeight       128.175;
     }
     thermodynamics
@@ -9996,7 +9373,6 @@ PF2Cl3
 {
     specie
     {
-        nMoles          1;
         molWeight       175.33;
     }
     thermodynamics
@@ -10012,7 +9388,6 @@ C8_linear_triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       96.0892;
     }
     thermodynamics
@@ -10028,7 +9403,6 @@ CCl3O*
 {
     specie
     {
-        nMoles          1;
         molWeight       134.37;
     }
     thermodynamics
@@ -10044,7 +9418,6 @@ C6H4N4O2_4-Nitro
 {
     specie
     {
-        nMoles          1;
         molWeight       164.124;
     }
     thermodynamics
@@ -10060,7 +9433,6 @@ NiO(cr)A
 {
     specie
     {
-        nMoles          1;
         molWeight       74.7094;
     }
     thermodynamics
@@ -10076,7 +9448,6 @@ C3H6O2_EthylFormat
 {
     specie
     {
-        nMoles          1;
         molWeight       74.0801;
     }
     thermodynamics
@@ -10092,7 +9463,6 @@ C6HCl3OH__3-YL_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       196.441;
     }
     thermodynamics
@@ -10108,7 +9478,6 @@ s-1,3-C6H4_BENZYNE
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0988;
     }
     thermodynamics
@@ -10124,7 +9493,6 @@ CCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       118.37;
     }
     thermodynamics
@@ -10140,7 +9508,6 @@ GeCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       178.949;
     }
     thermodynamics
@@ -10156,7 +9523,6 @@ C14H6N6O12_HNS
 {
     specie
     {
-        nMoles          1;
         molWeight       450.237;
     }
     thermodynamics
@@ -10172,7 +9538,6 @@ SiHCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       135.453;
     }
     thermodynamics
@@ -10188,7 +9553,6 @@ C3H6O2__Glycidol
 {
     specie
     {
-        nMoles          1;
         molWeight       74.0801;
     }
     thermodynamics
@@ -10204,7 +9568,6 @@ PbS
 {
     specie
     {
-        nMoles          1;
         molWeight       239.254;
     }
     thermodynamics
@@ -10220,7 +9583,6 @@ C2H6S2_(CH3SSCH3)
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1981;
     }
     thermodynamics
@@ -10236,7 +9598,6 @@ PbBr3
 {
     specie
     {
-        nMoles          1;
         molWeight       446.893;
     }
     thermodynamics
@@ -10252,7 +9613,6 @@ C2H4F2__HFC-152
 {
     specie
     {
-        nMoles          1;
         molWeight       66.051;
     }
     thermodynamics
@@ -10268,7 +9628,6 @@ PF-
 {
     specie
     {
-        nMoles          1;
         molWeight       49.9727;
     }
     thermodynamics
@@ -10284,7 +9643,6 @@ OCCN
 {
     specie
     {
-        nMoles          1;
         molWeight       54.0284;
     }
     thermodynamics
@@ -10300,7 +9658,6 @@ C6H10,cyclo-
 {
     specie
     {
-        nMoles          1;
         molWeight       82.1466;
     }
     thermodynamics
@@ -10316,7 +9673,6 @@ C5H9O2_RadMeButyr
 {
     specie
     {
-        nMoles          1;
         molWeight       101.126;
     }
     thermodynamics
@@ -10332,7 +9688,6 @@ Mn3O4__Solid-B
 {
     specie
     {
-        nMoles          1;
         molWeight       228.812;
     }
     thermodynamics
@@ -10348,7 +9703,6 @@ C21H42O2_MeArchid
 {
     specie
     {
-        nMoles          1;
         molWeight       326.568;
     }
     thermodynamics
@@ -10364,7 +9718,6 @@ C6H9_b
 {
     specie
     {
-        nMoles          1;
         molWeight       81.1386;
     }
     thermodynamics
@@ -10380,7 +9733,6 @@ C6H12_4MP-2en_cis
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1625;
     }
     thermodynamics
@@ -10396,7 +9748,6 @@ MgTiO3(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       120.21;
     }
     thermodynamics
@@ -10412,7 +9763,6 @@ P-
 {
     specie
     {
-        nMoles          1;
         molWeight       30.9743;
     }
     thermodynamics
@@ -10428,7 +9778,6 @@ CH3C(O)O-NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       105.051;
     }
     thermodynamics
@@ -10444,7 +9793,6 @@ C2H2_acetylene
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0382;
     }
     thermodynamics
@@ -10460,7 +9808,6 @@ AlF3
 {
     specie
     {
-        nMoles          1;
         molWeight       83.9767;
     }
     thermodynamics
@@ -10476,7 +9823,6 @@ H3B3O3
 {
     specie
     {
-        nMoles          1;
         molWeight       83.4551;
     }
     thermodynamics
@@ -10492,7 +9838,6 @@ CH3I
 {
     specie
     {
-        nMoles          1;
         molWeight       141.939;
     }
     thermodynamics
@@ -10508,7 +9853,6 @@ C12H4Cl4O2_1379
 {
     specie
     {
-        nMoles          1;
         molWeight       321.976;
     }
     thermodynamics
@@ -10524,7 +9868,6 @@ C3H3N3_TRIAZINE
 {
     specie
     {
-        nMoles          1;
         molWeight       81.0775;
     }
     thermodynamics
@@ -10540,7 +9883,6 @@ C14H9_4-Phenantr
 {
     specie
     {
-        nMoles          1;
         molWeight       177.228;
     }
     thermodynamics
@@ -10556,7 +9898,6 @@ HNNH+_cis
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0288;
     }
     thermodynamics
@@ -10572,7 +9913,6 @@ C2(NO2)6_HexaNit
 {
     specie
     {
-        nMoles          1;
         molWeight       300.055;
     }
     thermodynamics
@@ -10588,7 +9928,6 @@ P2H2
 {
     specie
     {
-        nMoles          1;
         molWeight       63.9635;
     }
     thermodynamics
@@ -10604,7 +9943,6 @@ FO2__O-F-O
 {
     specie
     {
-        nMoles          1;
         molWeight       50.9972;
     }
     thermodynamics
@@ -10620,7 +9958,6 @@ HCl+
 {
     specie
     {
-        nMoles          1;
         molWeight       36.4604;
     }
     thermodynamics
@@ -10636,7 +9973,6 @@ C2HBr3
 {
     specie
     {
-        nMoles          1;
         molWeight       264.733;
     }
     thermodynamics
@@ -10652,7 +9988,6 @@ C10H22O_1-Decanol
 {
     specie
     {
-        nMoles          1;
         molWeight       158.286;
     }
     thermodynamics
@@ -10668,7 +10003,6 @@ C6H10O5_Cellulose
 {
     specie
     {
-        nMoles          1;
         molWeight       162.144;
     }
     thermodynamics
@@ -10684,7 +10018,6 @@ C10H12O3_Coniferyl
 {
     specie
     {
-        nMoles          1;
         molWeight       180.205;
     }
     thermodynamics
@@ -10700,7 +10033,6 @@ H2F2
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0127;
     }
     thermodynamics
@@ -10716,7 +10048,6 @@ C6H11_2M-2ENE-5YL
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -10732,7 +10063,6 @@ C4H7O_2-Methyl-A
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0998;
     }
     thermodynamics
@@ -10748,7 +10078,6 @@ C5H4N__m-Pyridyl
 {
     specie
     {
-        nMoles          1;
         molWeight       78.0943;
     }
     thermodynamics
@@ -10764,7 +10093,6 @@ SiS2__Solid
 {
     specie
     {
-        nMoles          1;
         molWeight       92.214;
     }
     thermodynamics
@@ -10780,7 +10108,6 @@ SF+
 {
     specie
     {
-        nMoles          1;
         molWeight       51.0619;
     }
     thermodynamics
@@ -10796,7 +10123,6 @@ s-(HgN3)2
 {
     specie
     {
-        nMoles          1;
         molWeight       485.22;
     }
     thermodynamics
@@ -10812,7 +10138,6 @@ CH3NO__CH2=NH=O
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0412;
     }
     thermodynamics
@@ -10828,7 +10153,6 @@ C22H14__Pentacen
 {
     specie
     {
-        nMoles          1;
         molWeight       278.357;
     }
     thermodynamics
@@ -10844,7 +10168,6 @@ O
 {
     specie
     {
-        nMoles          1;
         molWeight       15.9994;
     }
     thermodynamics
@@ -10860,7 +10183,6 @@ C4H8,tr2-butene
 {
     specie
     {
-        nMoles          1;
         molWeight       56.1084;
     }
     thermodynamics
@@ -10876,7 +10198,6 @@ SOF2
 {
     specie
     {
-        nMoles          1;
         molWeight       86.0602;
     }
     thermodynamics
@@ -10892,7 +10213,6 @@ C14H9_9-Phenantr
 {
     specie
     {
-        nMoles          1;
         molWeight       177.228;
     }
     thermodynamics
@@ -10908,7 +10228,6 @@ Ag_cr
 {
     specie
     {
-        nMoles          1;
         molWeight       107.87;
     }
     thermodynamics
@@ -10924,7 +10243,6 @@ C6H5Cl_chlorobenz
 {
     specie
     {
-        nMoles          1;
         molWeight       112.56;
     }
     thermodynamics
@@ -10940,7 +10258,6 @@ C2H2O2__HOCCOH
 {
     specie
     {
-        nMoles          1;
         molWeight       58.037;
     }
     thermodynamics
@@ -10956,7 +10273,6 @@ C2HClF2-1,1
 {
     specie
     {
-        nMoles          1;
         molWeight       98.4801;
     }
     thermodynamics
@@ -10972,7 +10288,6 @@ ClO2___ClOO*___H
 {
     specie
     {
-        nMoles          1;
         molWeight       67.4518;
     }
     thermodynamics
@@ -10988,7 +10303,6 @@ SO2Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       134.969;
     }
     thermodynamics
@@ -11004,7 +10318,6 @@ IR(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       192.2;
     }
     thermodynamics
@@ -11020,7 +10333,6 @@ C18H36O2_Stearic
 {
     specie
     {
-        nMoles          1;
         molWeight       284.486;
     }
     thermodynamics
@@ -11036,7 +10348,6 @@ Mn2O3_(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       157.874;
     }
     thermodynamics
@@ -11052,7 +10363,6 @@ C7_linear_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       84.0781;
     }
     thermodynamics
@@ -11068,7 +10378,6 @@ C5H
 {
     specie
     {
-        nMoles          1;
         molWeight       61.0637;
     }
     thermodynamics
@@ -11084,7 +10393,6 @@ C6H5O__2,4-cyclo
 {
     specie
     {
-        nMoles          1;
         molWeight       93.1061;
     }
     thermodynamics
@@ -11100,7 +10408,6 @@ C24H12__Coronene
 {
     specie
     {
-        nMoles          1;
         molWeight       300.363;
     }
     thermodynamics
@@ -11116,7 +10423,6 @@ C4H5_2-Butayn-1yl
 {
     specie
     {
-        nMoles          1;
         molWeight       53.0845;
     }
     thermodynamics
@@ -11132,7 +10438,6 @@ GeBr3
 {
     specie
     {
-        nMoles          1;
         molWeight       312.293;
     }
     thermodynamics
@@ -11148,7 +10453,6 @@ C2H2O+_Ethynol+
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0371;
     }
     thermodynamics
@@ -11164,7 +10468,6 @@ ZrO2(I)
 {
     specie
     {
-        nMoles          1;
         molWeight       123.219;
     }
     thermodynamics
@@ -11180,7 +10483,6 @@ PbF4
 {
     specie
     {
-        nMoles          1;
         molWeight       283.184;
     }
     thermodynamics
@@ -11196,7 +10498,6 @@ ZnCl2(G)
 {
     specie
     {
-        nMoles          1;
         molWeight       136.276;
     }
     thermodynamics
@@ -11212,7 +10513,6 @@ C4H5_E-1,3-en-1-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       53.0845;
     }
     thermodynamics
@@ -11228,7 +10528,6 @@ CH3N2O3_H2COHN*NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       91.0467;
     }
     thermodynamics
@@ -11244,7 +10543,6 @@ P(cr)Red
 {
     specie
     {
-        nMoles          1;
         molWeight       30.9738;
     }
     thermodynamics
@@ -11260,7 +10558,6 @@ CH5N2___CH3N*NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0644;
     }
     thermodynamics
@@ -11276,7 +10573,6 @@ C2H4+
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0536;
     }
     thermodynamics
@@ -11292,7 +10588,6 @@ N2D2,cis
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0416;
     }
     thermodynamics
@@ -11308,7 +10603,6 @@ C3HBr2*__Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       196.843;
     }
     thermodynamics
@@ -11324,7 +10618,6 @@ CHN2_cyc(-CH-N=N-)
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0325;
     }
     thermodynamics
@@ -11340,7 +10633,6 @@ C2H3Br_Bromoethy
 {
     specie
     {
-        nMoles          1;
         molWeight       106.947;
     }
     thermodynamics
@@ -11356,7 +10648,6 @@ C4H4O4_Fumaric_aci
 {
     specie
     {
-        nMoles          1;
         molWeight       116.074;
     }
     thermodynamics
@@ -11372,7 +10663,6 @@ C5H9_2-en-1-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       69.1275;
     }
     thermodynamics
@@ -11388,7 +10678,6 @@ NH-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0152;
     }
     thermodynamics
@@ -11404,7 +10693,6 @@ C2S2__S=C=C=S
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1503;
     }
     thermodynamics
@@ -11420,7 +10708,6 @@ H3F3
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0191;
     }
     thermodynamics
@@ -11436,7 +10723,6 @@ GeBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       232.392;
     }
     thermodynamics
@@ -11452,7 +10738,6 @@ BOF2
 {
     specie
     {
-        nMoles          1;
         molWeight       64.8072;
     }
     thermodynamics
@@ -11468,7 +10753,6 @@ BO2
 {
     specie
     {
-        nMoles          1;
         molWeight       42.8098;
     }
     thermodynamics
@@ -11484,7 +10768,6 @@ C5H8O2_MeCrotanoat
 {
     specie
     {
-        nMoles          1;
         molWeight       100.118;
     }
     thermodynamics
@@ -11500,7 +10783,6 @@ PFCl4
 {
     specie
     {
-        nMoles          1;
         molWeight       191.784;
     }
     thermodynamics
@@ -11516,7 +10798,6 @@ C11_linear_Single
 {
     specie
     {
-        nMoles          1;
         molWeight       132.123;
     }
     thermodynamics
@@ -11532,7 +10813,6 @@ T2
 {
     specie
     {
-        nMoles          1;
         molWeight       95.8;
     }
     thermodynamics
@@ -11548,7 +10828,6 @@ HCHO_Formaldehy
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0265;
     }
     thermodynamics
@@ -11564,7 +10843,6 @@ CH4N4O2_nitrogua
 {
     specie
     {
-        nMoles          1;
         molWeight       104.069;
     }
     thermodynamics
@@ -11580,7 +10858,6 @@ BrO_Bromoxyl_rad
 {
     specie
     {
-        nMoles          1;
         molWeight       95.9003;
     }
     thermodynamics
@@ -11596,7 +10873,6 @@ MgTi2O5(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       200.109;
     }
     thermodynamics
@@ -11612,7 +10888,6 @@ Hg(CNO)2_Fulminat
 {
     specie
     {
-        nMoles          1;
         molWeight       284.625;
     }
     thermodynamics
@@ -11628,7 +10903,6 @@ ZrC(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       103.231;
     }
     thermodynamics
@@ -11644,7 +10918,6 @@ S7
 {
     specie
     {
-        nMoles          1;
         molWeight       224.448;
     }
     thermodynamics
@@ -11660,7 +10933,6 @@ N2O-_O(NN)-_cycl
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0133;
     }
     thermodynamics
@@ -11676,7 +10948,6 @@ C8H7___n-styryl
 {
     specie
     {
-        nMoles          1;
         molWeight       103.145;
     }
     thermodynamics
@@ -11692,7 +10963,6 @@ ZrO
 {
     specie
     {
-        nMoles          1;
         molWeight       107.219;
     }
     thermodynamics
@@ -11708,7 +10978,6 @@ C2H2O2_Oxyranone
 {
     specie
     {
-        nMoles          1;
         molWeight       58.037;
     }
     thermodynamics
@@ -11724,7 +10993,6 @@ C2H4O_OXYRANE
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0536;
     }
     thermodynamics
@@ -11740,7 +11008,6 @@ s-(CH3)2-N-NH2_U
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0995;
     }
     thermodynamics
@@ -11756,7 +11023,6 @@ NH4NO3(II)
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0435;
     }
     thermodynamics
@@ -11772,7 +11038,6 @@ C3H7NO3_amino_acid
 {
     specie
     {
-        nMoles          1;
         molWeight       105.094;
     }
     thermodynamics
@@ -11788,7 +11053,6 @@ C21H44_n-Heneico
 {
     specie
     {
-        nMoles          1;
         molWeight       296.585;
     }
     thermodynamics
@@ -11804,7 +11068,6 @@ PF
 {
     specie
     {
-        nMoles          1;
         molWeight       49.9722;
     }
     thermodynamics
@@ -11820,7 +11083,6 @@ BrCN+___ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       105.918;
     }
     thermodynamics
@@ -11836,7 +11098,6 @@ CH2+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0265;
     }
     thermodynamics
@@ -11852,7 +11113,6 @@ C5H7O_Cy_C5H7-O*
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1109;
     }
     thermodynamics
@@ -11868,7 +11128,6 @@ C6H7N_Aniline
 {
     specie
     {
-        nMoles          1;
         molWeight       93.1294;
     }
     thermodynamics
@@ -11884,7 +11143,6 @@ I2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       253.809;
     }
     thermodynamics
@@ -11900,7 +11158,6 @@ S8
 {
     specie
     {
-        nMoles          1;
         molWeight       256.512;
     }
     thermodynamics
@@ -11916,7 +11173,6 @@ N2H4(L)_Hydrazin
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0453;
     }
     thermodynamics
@@ -11932,7 +11188,6 @@ C6H8
 {
     specie
     {
-        nMoles          1;
         molWeight       80.1307;
     }
     thermodynamics
@@ -11948,7 +11203,6 @@ C6H14_2-MePentan
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1785;
     }
     thermodynamics
@@ -11964,7 +11218,6 @@ Ne+
 {
     specie
     {
-        nMoles          1;
         molWeight       20.1825;
     }
     thermodynamics
@@ -11980,7 +11233,6 @@ D2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       36.027;
     }
     thermodynamics
@@ -11996,7 +11248,6 @@ CHCl=CH*
 {
     specie
     {
-        nMoles          1;
         molWeight       61.4912;
     }
     thermodynamics
@@ -12012,7 +11263,6 @@ C3O2
 {
     specie
     {
-        nMoles          1;
         molWeight       68.0323;
     }
     thermodynamics
@@ -12028,7 +11278,6 @@ C3H3NS_Thiazole
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1281;
     }
     thermodynamics
@@ -12044,7 +11293,6 @@ Zn+
 {
     specie
     {
-        nMoles          1;
         molWeight       65.3695;
     }
     thermodynamics
@@ -12060,7 +11308,6 @@ C3H3I_CH2=C=CHI
 {
     specie
     {
-        nMoles          1;
         molWeight       165.962;
     }
     thermodynamics
@@ -12076,7 +11323,6 @@ CH2N__H2C=N*
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0338;
     }
     thermodynamics
@@ -12092,7 +11338,6 @@ C4H4__1-butene-3
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0765;
     }
     thermodynamics
@@ -12108,7 +11353,6 @@ HClO2
 {
     specie
     {
-        nMoles          1;
         molWeight       68.4598;
     }
     thermodynamics
@@ -12124,7 +11368,6 @@ C4H8O_T.H.Furan
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1078;
     }
     thermodynamics
@@ -12140,7 +11383,6 @@ HNOH-
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0226;
     }
     thermodynamics
@@ -12156,7 +11398,6 @@ C8H8_Benzocybutan
 {
     specie
     {
-        nMoles          1;
         molWeight       104.153;
     }
     thermodynamics
@@ -12172,7 +11413,6 @@ C2H5+__Ethyl_cat
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0616;
     }
     thermodynamics
@@ -12188,7 +11428,6 @@ O+
 {
     specie
     {
-        nMoles          1;
         molWeight       15.9989;
     }
     thermodynamics
@@ -12204,7 +11443,6 @@ C12H5Cl4O3_Rad
 {
     specie
     {
-        nMoles          1;
         molWeight       338.984;
     }
     thermodynamics
@@ -12220,7 +11458,6 @@ C2D4_Ethylene-D4
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0787;
     }
     thermodynamics
@@ -12236,7 +11473,6 @@ C6H14_3-MethylPe
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1785;
     }
     thermodynamics
@@ -12252,7 +11488,6 @@ C2H5O_CH3CH*OH
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0616;
     }
     thermodynamics
@@ -12268,7 +11503,6 @@ C3H3Cl_3CyClPropen
 {
     specie
     {
-        nMoles          1;
         molWeight       74.5104;
     }
     thermodynamics
@@ -12284,7 +11518,6 @@ C12H5OCl3O3
 {
     specie
     {
-        nMoles          1;
         molWeight       303.531;
     }
     thermodynamics
@@ -12300,7 +11533,6 @@ BH
 {
     specie
     {
-        nMoles          1;
         molWeight       11.819;
     }
     thermodynamics
@@ -12316,7 +11548,6 @@ B2Cl4
 {
     specie
     {
-        nMoles          1;
         molWeight       163.434;
     }
     thermodynamics
@@ -12332,7 +11563,6 @@ C6H6_2,4-Hexadiyn
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -12348,7 +11578,6 @@ C3H3N__CH2=CHCN
 {
     specie
     {
-        nMoles          1;
         molWeight       53.0641;
     }
     thermodynamics
@@ -12364,7 +11593,6 @@ C6H12O_Cy-hexanol
 {
     specie
     {
-        nMoles          1;
         molWeight       100.162;
     }
     thermodynamics
@@ -12380,7 +11608,6 @@ MgSO4(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       120.374;
     }
     thermodynamics
@@ -12396,7 +11623,6 @@ C10H9_fenylbutadie
 {
     specie
     {
-        nMoles          1;
         molWeight       129.183;
     }
     thermodynamics
@@ -12412,7 +11638,6 @@ Zr
 {
     specie
     {
-        nMoles          1;
         molWeight       91.22;
     }
     thermodynamics
@@ -12428,7 +11653,6 @@ C3HCl2*1,1-Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       107.947;
     }
     thermodynamics
@@ -12444,7 +11668,6 @@ PbI2
 {
     specie
     {
-        nMoles          1;
         molWeight       460.999;
     }
     thermodynamics
@@ -12460,7 +11683,6 @@ NCN-
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0251;
     }
     thermodynamics
@@ -12476,7 +11698,6 @@ C14H9_1-Antryl_R
 {
     specie
     {
-        nMoles          1;
         molWeight       177.228;
     }
     thermodynamics
@@ -12492,7 +11713,6 @@ P(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       30.9738;
     }
     thermodynamics
@@ -12508,7 +11728,6 @@ CH3OO+__cation
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0333;
     }
     thermodynamics
@@ -12524,7 +11743,6 @@ C18H12_Triphenyle
 {
     specie
     {
-        nMoles          1;
         molWeight       228.296;
     }
     thermodynamics
@@ -12540,7 +11758,6 @@ C5H9OH__Cyclopen
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1349;
     }
     thermodynamics
@@ -12556,7 +11773,6 @@ CH3NH2+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0572;
     }
     thermodynamics
@@ -12572,7 +11788,6 @@ o-C6H4ClO_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       127.551;
     }
     thermodynamics
@@ -12588,7 +11803,6 @@ C16H34_Hexadecan
 {
     specie
     {
-        nMoles          1;
         molWeight       226.449;
     }
     thermodynamics
@@ -12604,7 +11818,6 @@ Sb2
 {
     specie
     {
-        nMoles          1;
         molWeight       243.5;
     }
     thermodynamics
@@ -12620,7 +11833,6 @@ Si(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       28.086;
     }
     thermodynamics
@@ -12636,7 +11848,6 @@ C6H14O_3-Hexanol
 {
     specie
     {
-        nMoles          1;
         molWeight       102.178;
     }
     thermodynamics
@@ -12652,7 +11863,6 @@ C4H6O2_Diacetyl
 {
     specie
     {
-        nMoles          1;
         molWeight       86.0912;
     }
     thermodynamics
@@ -12668,7 +11878,6 @@ Al2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       85.9618;
     }
     thermodynamics
@@ -12684,7 +11893,6 @@ C4H8O__Methyl_Al
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1078;
     }
     thermodynamics
@@ -12700,7 +11908,6 @@ C7H7+_C5H4*CH=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       91.1333;
     }
     thermodynamics
@@ -12716,7 +11923,6 @@ Fe2(SO4)3(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       399.879;
     }
     thermodynamics
@@ -12732,7 +11938,6 @@ BrF5
 {
     specie
     {
-        nMoles          1;
         molWeight       174.893;
     }
     thermodynamics
@@ -12748,7 +11953,6 @@ Cr(OH)6
 {
     specie
     {
-        nMoles          1;
         molWeight       154.04;
     }
     thermodynamics
@@ -12764,7 +11968,6 @@ MgCl+
 {
     specie
     {
-        nMoles          1;
         molWeight       59.7645;
     }
     thermodynamics
@@ -12780,7 +11983,6 @@ C8H16,1-octene
 {
     specie
     {
-        nMoles          1;
         molWeight       112.217;
     }
     thermodynamics
@@ -12796,7 +11998,6 @@ NiO(cr)B
 {
     specie
     {
-        nMoles          1;
         molWeight       74.7094;
     }
     thermodynamics
@@ -12812,7 +12013,6 @@ C2H2O__Oxyrene
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -12828,7 +12028,6 @@ C3H3_allenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0574;
     }
     thermodynamics
@@ -12844,7 +12043,6 @@ C5H9_1buten3m4yl
 {
     specie
     {
-        nMoles          1;
         molWeight       69.1275;
     }
     thermodynamics
@@ -12860,7 +12058,6 @@ SbCl_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       157.203;
     }
     thermodynamics
@@ -12876,7 +12073,6 @@ C2HBr4_1,1,1,2
 {
     specie
     {
-        nMoles          1;
         molWeight       344.634;
     }
     thermodynamics
@@ -12892,7 +12088,6 @@ C6H6O__2,4-cyclo
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1141;
     }
     thermodynamics
@@ -12908,7 +12103,6 @@ N4_tetrahedral
 {
     specie
     {
-        nMoles          1;
         molWeight       56.0268;
     }
     thermodynamics
@@ -12924,7 +12118,6 @@ IO3
 {
     specie
     {
-        nMoles          1;
         molWeight       174.903;
     }
     thermodynamics
@@ -12940,7 +12133,6 @@ C2H4O-__Acetalde
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0541;
     }
     thermodynamics
@@ -12956,7 +12148,6 @@ C9H4__C(CCH)4
 {
     specie
     {
-        nMoles          1;
         molWeight       112.132;
     }
     thermodynamics
@@ -12972,7 +12163,6 @@ C2H5O-__Ethoxy_a
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0621;
     }
     thermodynamics
@@ -12988,7 +12178,6 @@ C12H4Cl5O2_2p,4,
 {
     specie
     {
-        nMoles          1;
         molWeight       357.429;
     }
     thermodynamics
@@ -13004,7 +12193,6 @@ BiCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       315.339;
     }
     thermodynamics
@@ -13020,7 +12208,6 @@ C3H2(1)CyPropen
 {
     specie
     {
-        nMoles          1;
         molWeight       38.0494;
     }
     thermodynamics
@@ -13036,7 +12223,6 @@ BBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       170.613;
     }
     thermodynamics
@@ -13052,7 +12238,6 @@ C6H8__1,4-Cycloh
 {
     specie
     {
-        nMoles          1;
         molWeight       80.1307;
     }
     thermodynamics
@@ -13068,7 +12253,6 @@ H2O(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -13084,7 +12268,6 @@ Fe+
 {
     specie
     {
-        nMoles          1;
         molWeight       55.8465;
     }
     thermodynamics
@@ -13100,7 +12283,6 @@ C4H5_1-Butayn-3yl
 {
     specie
     {
-        nMoles          1;
         molWeight       53.0845;
     }
     thermodynamics
@@ -13116,7 +12298,6 @@ s-(CH3)2N-NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       90.0823;
     }
     thermodynamics
@@ -13132,7 +12313,6 @@ C5H11,t-pentyl
 {
     specie
     {
-        nMoles          1;
         molWeight       71.1434;
     }
     thermodynamics
@@ -13148,7 +12328,6 @@ PCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       101.88;
     }
     thermodynamics
@@ -13164,7 +12343,6 @@ C10H9_2-hydro_Rad
 {
     specie
     {
-        nMoles          1;
         molWeight       129.183;
     }
     thermodynamics
@@ -13180,7 +12358,6 @@ PbI4
 {
     specie
     {
-        nMoles          1;
         molWeight       714.808;
     }
     thermodynamics
@@ -13196,7 +12373,6 @@ C7H16(L)_n-Heptan
 {
     specie
     {
-        nMoles          1;
         molWeight       100.206;
     }
     thermodynamics
@@ -13212,7 +12388,6 @@ CrN
 {
     specie
     {
-        nMoles          1;
         molWeight       66.0027;
     }
     thermodynamics
@@ -13228,7 +12403,6 @@ C3H5OH__Propenol
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0807;
     }
     thermodynamics
@@ -13244,7 +12418,6 @@ C3H3-_CH2=C=CH*-
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0579;
     }
     thermodynamics
@@ -13260,7 +12433,6 @@ C2HBr5
 {
     specie
     {
-        nMoles          1;
         molWeight       424.535;
     }
     thermodynamics
@@ -13276,7 +12448,6 @@ C6H14_2,2-DMButan
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1785;
     }
     thermodynamics
@@ -13292,7 +12463,6 @@ s-1-C10H7CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       156.186;
     }
     thermodynamics
@@ -13308,7 +12478,6 @@ S2-
 {
     specie
     {
-        nMoles          1;
         molWeight       64.1285;
     }
     thermodynamics
@@ -13324,7 +12493,6 @@ C6H10_CyC5H7-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       82.1466;
     }
     thermodynamics
@@ -13340,7 +12508,6 @@ C3H3__Propargyl
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0574;
     }
     thermodynamics
@@ -13356,7 +12523,6 @@ C4H7__2-me-allyl
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1004;
     }
     thermodynamics
@@ -13372,7 +12538,6 @@ SiF2
 {
     specie
     {
-        nMoles          1;
         molWeight       66.0828;
     }
     thermodynamics
@@ -13388,7 +12553,6 @@ C5H3Cl3O_1-hydro
 {
     specie
     {
-        nMoles          1;
         molWeight       185.438;
     }
     thermodynamics
@@ -13404,7 +12568,6 @@ s-(CH2I)2_DiIodoet
 {
     specie
     {
-        nMoles          1;
         molWeight       281.863;
     }
     thermodynamics
@@ -13420,7 +12583,6 @@ C6H5O_phenyox_ra
 {
     specie
     {
-        nMoles          1;
         molWeight       93.1061;
     }
     thermodynamics
@@ -13436,7 +12598,6 @@ C10H7I__1-Iodona
 {
     specie
     {
-        nMoles          1;
         molWeight       254.072;
     }
     thermodynamics
@@ -13452,7 +12613,6 @@ C6H
 {
     specie
     {
-        nMoles          1;
         molWeight       73.0749;
     }
     thermodynamics
@@ -13468,7 +12628,6 @@ C2Cl3_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       130.381;
     }
     thermodynamics
@@ -13484,7 +12643,6 @@ C5F6___CycloPerF
 {
     specie
     {
-        nMoles          1;
         molWeight       174.046;
     }
     thermodynamics
@@ -13500,7 +12658,6 @@ CH2Br-CH2Br
 {
     specie
     {
-        nMoles          1;
         molWeight       187.856;
     }
     thermodynamics
@@ -13516,7 +12673,6 @@ AlH2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9974;
     }
     thermodynamics
@@ -13532,7 +12688,6 @@ HNNH-__cis____HF
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0299;
     }
     thermodynamics
@@ -13548,7 +12703,6 @@ HCO3-__gas
 {
     specie
     {
-        nMoles          1;
         molWeight       61.0179;
     }
     thermodynamics
@@ -13564,7 +12718,6 @@ CF3I_TrifluoroIo
 {
     specie
     {
-        nMoles          1;
         molWeight       195.911;
     }
     thermodynamics
@@ -13580,7 +12733,6 @@ CH2N2_H2C=N=N
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0405;
     }
     thermodynamics
@@ -13596,7 +12748,6 @@ Cu2
 {
     specie
     {
-        nMoles          1;
         molWeight       127.08;
     }
     thermodynamics
@@ -13612,7 +12763,6 @@ C6H8_CY_C5H5-1-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       80.1307;
     }
     thermodynamics
@@ -13628,7 +12778,6 @@ C4H5O2_2MeAcrylat
 {
     specie
     {
-        nMoles          1;
         molWeight       85.0833;
     }
     thermodynamics
@@ -13644,7 +12793,6 @@ C5H12O_MTBE
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1508;
     }
     thermodynamics
@@ -13660,7 +12808,6 @@ Ca(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       40.08;
     }
     thermodynamics
@@ -13676,7 +12823,6 @@ Bi2___GAS
 {
     specie
     {
-        nMoles          1;
         molWeight       417.96;
     }
     thermodynamics
@@ -13692,7 +12838,6 @@ CFBr3
 {
     specie
     {
-        nMoles          1;
         molWeight       270.712;
     }
     thermodynamics
@@ -13708,7 +12853,6 @@ C5H7_Cy-1en-4-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       67.1115;
     }
     thermodynamics
@@ -13724,7 +12868,6 @@ C2H5O2_HOCH2CH2O
 {
     specie
     {
-        nMoles          1;
         molWeight       61.061;
     }
     thermodynamics
@@ -13740,7 +12883,6 @@ ZrF________GAS
 {
     specie
     {
-        nMoles          1;
         molWeight       110.218;
     }
     thermodynamics
@@ -13756,7 +12898,6 @@ PbF3
 {
     specie
     {
-        nMoles          1;
         molWeight       264.185;
     }
     thermodynamics
@@ -13772,7 +12913,6 @@ C2H3__Vinyl_Radi
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0462;
     }
     thermodynamics
@@ -13788,7 +12928,6 @@ C3H8
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0972;
     }
     thermodynamics
@@ -13804,7 +12943,6 @@ C3H5NO2_NitroCy
 {
     specie
     {
-        nMoles          1;
         molWeight       87.0788;
     }
     thermodynamics
@@ -13820,7 +12958,6 @@ C6H13__2M-5yl
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1705;
     }
     thermodynamics
@@ -13836,7 +12973,6 @@ Po_Polonium_(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       210;
     }
     thermodynamics
@@ -13852,7 +12988,6 @@ NITROGLICERINE
 {
     specie
     {
-        nMoles          1;
         molWeight       227.088;
     }
     thermodynamics
@@ -13868,7 +13003,6 @@ BiF3
 {
     specie
     {
-        nMoles          1;
         molWeight       265.975;
     }
     thermodynamics
@@ -13884,7 +13018,6 @@ C4H9_s-butyl
 {
     specie
     {
-        nMoles          1;
         molWeight       57.1163;
     }
     thermodynamics
@@ -13900,7 +13033,6 @@ C2F3
 {
     specie
     {
-        nMoles          1;
         molWeight       81.0175;
     }
     thermodynamics
@@ -13916,7 +13048,6 @@ C3HCl2*__Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       107.947;
     }
     thermodynamics
@@ -13932,7 +13063,6 @@ Pd(g)__Paladium
 {
     specie
     {
-        nMoles          1;
         molWeight       106.4;
     }
     thermodynamics
@@ -13948,7 +13078,6 @@ C2H5F
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0606;
     }
     thermodynamics
@@ -13964,7 +13093,6 @@ C9H7N_QUINOLINE
 {
     specie
     {
-        nMoles          1;
         molWeight       129.163;
     }
     thermodynamics
@@ -13980,7 +13108,6 @@ C6H6_Fulvene
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -13996,7 +13123,6 @@ Fe(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       55.847;
     }
     thermodynamics
@@ -14012,7 +13138,6 @@ Fe-
 {
     specie
     {
-        nMoles          1;
         molWeight       55.8475;
     }
     thermodynamics
@@ -14028,7 +13153,6 @@ C2(NO2)4_NO_HF
 {
     specie
     {
-        nMoles          1;
         molWeight       208.044;
     }
     thermodynamics
@@ -14044,7 +13168,6 @@ FSSF_Difluorodis
 {
     specie
     {
-        nMoles          1;
         molWeight       102.125;
     }
     thermodynamics
@@ -14060,7 +13183,6 @@ PbO
 {
     specie
     {
-        nMoles          1;
         molWeight       223.189;
     }
     thermodynamics
@@ -14076,7 +13198,6 @@ CH3CH__singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0542;
     }
     thermodynamics
@@ -14092,7 +13213,6 @@ C5H4_1,2_diene4yne
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0876;
     }
     thermodynamics
@@ -14108,7 +13228,6 @@ C7H15__NEOPENTYL-2
 {
     specie
     {
-        nMoles          1;
         molWeight       99.1976;
     }
     thermodynamics
@@ -14124,7 +13243,6 @@ MgSO4(II)
 {
     specie
     {
-        nMoles          1;
         molWeight       120.374;
     }
     thermodynamics
@@ -14140,7 +13258,6 @@ Ni+
 {
     specie
     {
-        nMoles          1;
         molWeight       58.7095;
     }
     thermodynamics
@@ -14156,7 +13273,6 @@ N2O_cyclo_O(NN)
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0128;
     }
     thermodynamics
@@ -14172,7 +13288,6 @@ C2H3O_Oxyrane_Rad
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0456;
     }
     thermodynamics
@@ -14188,7 +13303,6 @@ S2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       99.581;
     }
     thermodynamics
@@ -14204,7 +13318,6 @@ SnH4
 {
     specie
     {
-        nMoles          1;
         molWeight       122.722;
     }
     thermodynamics
@@ -14220,7 +13333,6 @@ NOH+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0135;
     }
     thermodynamics
@@ -14236,7 +13348,6 @@ C3H2Cl2__1,2_Dic
 {
     specie
     {
-        nMoles          1;
         molWeight       108.955;
     }
     thermodynamics
@@ -14252,7 +13363,6 @@ O_singlet_(excite)
 {
     specie
     {
-        nMoles          1;
         molWeight       15.9994;
     }
     thermodynamics
@@ -14268,7 +13378,6 @@ C3H4O__Acrolein
 {
     specie
     {
-        nMoles          1;
         molWeight       56.0647;
     }
     thermodynamics
@@ -14284,7 +13393,6 @@ C6H13_n-hexyl
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1705;
     }
     thermodynamics
@@ -14300,7 +13408,6 @@ C2Cl3F3_FC-113
 {
     specie
     {
-        nMoles          1;
         molWeight       187.377;
     }
     thermodynamics
@@ -14316,7 +13423,6 @@ HI
 {
     specie
     {
-        nMoles          1;
         molWeight       127.912;
     }
     thermodynamics
@@ -14332,7 +13438,6 @@ C2HF2__CHF=CF(E)
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0271;
     }
     thermodynamics
@@ -14348,7 +13453,6 @@ Al2O3(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       101.961;
     }
     thermodynamics
@@ -14364,7 +13468,6 @@ CD
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0252;
     }
     thermodynamics
@@ -14380,7 +13483,6 @@ N2O+_O(NN)+_cycl
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0123;
     }
     thermodynamics
@@ -14396,7 +13498,6 @@ C4H6S_2,5-dihydro
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1564;
     }
     thermodynamics
@@ -14412,7 +13513,6 @@ Pt
 {
     specie
     {
-        nMoles          1;
         molWeight       195.09;
     }
     thermodynamics
@@ -14428,7 +13528,6 @@ C3H6O2_Hydroaceto
 {
     specie
     {
-        nMoles          1;
         molWeight       74.0801;
     }
     thermodynamics
@@ -14444,7 +13543,6 @@ C2H4O2+_CH3COOH+
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0524;
     }
     thermodynamics
@@ -14460,7 +13558,6 @@ C12H8S_DiBenzoTh
 {
     specie
     {
-        nMoles          1;
         molWeight       184.262;
     }
     thermodynamics
@@ -14476,7 +13573,6 @@ W(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       183.85;
     }
     thermodynamics
@@ -14492,7 +13588,6 @@ BH2
 {
     specie
     {
-        nMoles          1;
         molWeight       12.8269;
     }
     thermodynamics
@@ -14508,7 +13603,6 @@ H3PO4(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       97.9953;
     }
     thermodynamics
@@ -14524,7 +13618,6 @@ Mg2TiO4(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       160.522;
     }
     thermodynamics
@@ -14540,7 +13633,6 @@ Br2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       159.802;
     }
     thermodynamics
@@ -14556,7 +13648,6 @@ C13H9N_PHENANTHRI
 {
     specie
     {
-        nMoles          1;
         molWeight       179.223;
     }
     thermodynamics
@@ -14572,7 +13663,6 @@ NiS(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       90.774;
     }
     thermodynamics
@@ -14588,7 +13678,6 @@ CH2-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0276;
     }
     thermodynamics
@@ -14604,7 +13693,6 @@ C5H2_*HC=C=C=C=C
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0717;
     }
     thermodynamics
@@ -14620,7 +13708,6 @@ S-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       49.0714;
     }
     thermodynamics
@@ -14636,7 +13723,6 @@ C5H9O2_MeButyratC3
 {
     specie
     {
-        nMoles          1;
         molWeight       101.126;
     }
     thermodynamics
@@ -14652,7 +13738,6 @@ C16H9_1-Pyrenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       201.25;
     }
     thermodynamics
@@ -14668,7 +13753,6 @@ C7H10N2O2_BiCyclo
 {
     specie
     {
-        nMoles          1;
         molWeight       154.17;
     }
     thermodynamics
@@ -14684,7 +13768,6 @@ NO3+
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0044;
     }
     thermodynamics
@@ -14700,7 +13783,6 @@ HFCO
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0169;
     }
     thermodynamics
@@ -14716,7 +13798,6 @@ CrO2Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       154.901;
     }
     thermodynamics
@@ -14732,7 +13813,6 @@ FeS(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       87.911;
     }
     thermodynamics
@@ -14748,7 +13828,6 @@ C5H5+_1yne3ene5yl
 {
     specie
     {
-        nMoles          1;
         molWeight       65.0951;
     }
     thermodynamics
@@ -14764,7 +13843,6 @@ Fe
 {
     specie
     {
-        nMoles          1;
         molWeight       55.847;
     }
     thermodynamics
@@ -14780,7 +13858,6 @@ C2Br
 {
     specie
     {
-        nMoles          1;
         molWeight       103.923;
     }
     thermodynamics
@@ -14796,7 +13873,6 @@ HNCO+
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -14812,7 +13888,6 @@ C6H11__1en-2M4yl
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -14828,7 +13903,6 @@ C3H4N4O6_1,3,3-
 {
     specie
     {
-        nMoles          1;
         molWeight       192.089;
     }
     thermodynamics
@@ -14844,7 +13918,6 @@ CH3SH_methyl_mer
 {
     specie
     {
-        nMoles          1;
         molWeight       48.107;
     }
     thermodynamics
@@ -14860,7 +13933,6 @@ C7H8__Toluene
 {
     specie
     {
-        nMoles          1;
         molWeight       92.1418;
     }
     thermodynamics
@@ -14876,7 +13948,6 @@ C6H2Cl3O3_Sym_BiCy
 {
     specie
     {
-        nMoles          1;
         molWeight       228.44;
     }
     thermodynamics
@@ -14892,7 +13963,6 @@ s-1,5-C6H4__trans
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0988;
     }
     thermodynamics
@@ -14908,7 +13978,6 @@ CHBr
 {
     specie
     {
-        nMoles          1;
         molWeight       92.92;
     }
     thermodynamics
@@ -14924,7 +13993,6 @@ C6H6_1,2,4,5
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -14940,7 +14008,6 @@ CH2CO__ketene
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -14956,7 +14023,6 @@ C3H4__cyPropene
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0653;
     }
     thermodynamics
@@ -14972,7 +14038,6 @@ KNO3(G)
 {
     specie
     {
-        nMoles          1;
         molWeight       101.107;
     }
     thermodynamics
@@ -14988,7 +14053,6 @@ C8H7N__Indole
 {
     specie
     {
-        nMoles          1;
         molWeight       117.152;
     }
     thermodynamics
@@ -15004,7 +14068,6 @@ C(cr)_Diamond
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0112;
     }
     thermodynamics
@@ -15020,7 +14083,6 @@ C7F16
 {
     specie
     {
-        nMoles          1;
         molWeight       388.052;
     }
     thermodynamics
@@ -15036,7 +14098,6 @@ PO3
 {
     specie
     {
-        nMoles          1;
         molWeight       78.972;
     }
     thermodynamics
@@ -15052,7 +14113,6 @@ PF4Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       142.42;
     }
     thermodynamics
@@ -15068,7 +14128,6 @@ C5H6O_3-Me_Furan
 {
     specie
     {
-        nMoles          1;
         molWeight       82.103;
     }
     thermodynamics
@@ -15084,7 +14143,6 @@ H2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0147;
     }
     thermodynamics
@@ -15100,7 +14158,6 @@ C13H10__Phenalene
 {
     specie
     {
-        nMoles          1;
         molWeight       166.225;
     }
     thermodynamics
@@ -15116,7 +14173,6 @@ W(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       183.85;
     }
     thermodynamics
@@ -15132,7 +14188,6 @@ CS2
 {
     specie
     {
-        nMoles          1;
         molWeight       76.1392;
     }
     thermodynamics
@@ -15148,7 +14203,6 @@ H2-
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01648;
     }
     thermodynamics
@@ -15164,7 +14218,6 @@ C3H3F2_*CF2CH=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       77.0542;
     }
     thermodynamics
@@ -15180,7 +14233,6 @@ N2H3+__Hydrazine
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0368;
     }
     thermodynamics
@@ -15196,7 +14248,6 @@ PH
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9818;
     }
     thermodynamics
@@ -15212,7 +14263,6 @@ C10H19__1-deceny
 {
     specie
     {
-        nMoles          1;
         molWeight       139.263;
     }
     thermodynamics
@@ -15228,7 +14278,6 @@ NF
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0051;
     }
     thermodynamics
@@ -15244,7 +14293,6 @@ C3H6O_Acetone
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0807;
     }
     thermodynamics
@@ -15260,7 +14308,6 @@ MoO2
 {
     specie
     {
-        nMoles          1;
         molWeight       127.939;
     }
     thermodynamics
@@ -15276,7 +14323,6 @@ C32H13_OVALENYL
 {
     specie
     {
-        nMoles          1;
         molWeight       397.46;
     }
     thermodynamics
@@ -15292,7 +14338,6 @@ C2Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       94.9283;
     }
     thermodynamics
@@ -15308,7 +14353,6 @@ C6H14_2,3-DiMeth
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1785;
     }
     thermodynamics
@@ -15324,7 +14368,6 @@ HO2
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0068;
     }
     thermodynamics
@@ -15340,7 +14383,6 @@ C5H6N2O2_Thymine
 {
     specie
     {
-        nMoles          1;
         molWeight       126.116;
     }
     thermodynamics
@@ -15356,7 +14398,6 @@ C7H10_25C5H4(CH3)2
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1578;
     }
     thermodynamics
@@ -15372,7 +14413,6 @@ Zr(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       91.22;
     }
     thermodynamics
@@ -15388,7 +14428,6 @@ SiF4
 {
     specie
     {
-        nMoles          1;
         molWeight       104.08;
     }
     thermodynamics
@@ -15404,7 +14443,6 @@ Br2_Dibromine
 {
     specie
     {
-        nMoles          1;
         molWeight       159.802;
     }
     thermodynamics
@@ -15420,7 +14458,6 @@ COF2
 {
     specie
     {
-        nMoles          1;
         molWeight       66.0074;
     }
     thermodynamics
@@ -15436,7 +14473,6 @@ Fe(OH)2
 {
     specie
     {
-        nMoles          1;
         molWeight       89.8617;
     }
     thermodynamics
@@ -15452,7 +14488,6 @@ C4H4_CYbutadiene
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0765;
     }
     thermodynamics
@@ -15468,7 +14503,6 @@ C6T6_Benzene_T-6
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1515;
     }
     thermodynamics
@@ -15484,7 +14518,6 @@ C25H52__Pentacosa
 {
     specie
     {
-        nMoles          1;
         molWeight       352.693;
     }
     thermodynamics
@@ -15500,7 +14533,6 @@ C3_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       36.0335;
     }
     thermodynamics
@@ -15516,7 +14548,6 @@ SF2-
 {
     specie
     {
-        nMoles          1;
         molWeight       70.0613;
     }
     thermodynamics
@@ -15532,7 +14563,6 @@ C5H4_1,3-diyne
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0876;
     }
     thermodynamics
@@ -15548,7 +14578,6 @@ HNC
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0258;
     }
     thermodynamics
@@ -15564,7 +14593,6 @@ ClO3___Chlorate
 {
     specie
     {
-        nMoles          1;
         molWeight       83.4512;
     }
     thermodynamics
@@ -15580,7 +14608,6 @@ Al(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       26.9815;
     }
     thermodynamics
@@ -15596,7 +14623,6 @@ HNC+
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0253;
     }
     thermodynamics
@@ -15612,7 +14638,6 @@ Xe+
 {
     specie
     {
-        nMoles          1;
         molWeight       131.299;
     }
     thermodynamics
@@ -15628,7 +14653,6 @@ C6H7__1,4-CyDiEne
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1227;
     }
     thermodynamics
@@ -15644,7 +14668,6 @@ Mo(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       95.94;
     }
     thermodynamics
@@ -15660,7 +14683,6 @@ Al2O2+
 {
     specie
     {
-        nMoles          1;
         molWeight       85.9613;
     }
     thermodynamics
@@ -15676,7 +14698,6 @@ NH3+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0301;
     }
     thermodynamics
@@ -15692,7 +14713,6 @@ NH2F
 {
     specie
     {
-        nMoles          1;
         molWeight       35.021;
     }
     thermodynamics
@@ -15708,7 +14728,6 @@ C2H4Cl_betaClEthyl
 {
     specie
     {
-        nMoles          1;
         molWeight       63.5072;
     }
     thermodynamics
@@ -15724,7 +14743,6 @@ C5H8__Isoprene
 {
     specie
     {
-        nMoles          1;
         molWeight       68.1195;
     }
     thermodynamics
@@ -15740,7 +14758,6 @@ Bi(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       208.98;
     }
     thermodynamics
@@ -15756,7 +14773,6 @@ C12H4Cl4O_2367
 {
     specie
     {
-        nMoles          1;
         molWeight       305.977;
     }
     thermodynamics
@@ -15772,7 +14788,6 @@ CO+
 {
     specie
     {
-        nMoles          1;
         molWeight       28.01;
     }
     thermodynamics
@@ -15788,7 +14803,6 @@ CH2Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       84.9331;
     }
     thermodynamics
@@ -15804,7 +14818,6 @@ C4H6,cyclo-
 {
     specie
     {
-        nMoles          1;
         molWeight       54.0924;
     }
     thermodynamics
@@ -15820,7 +14833,6 @@ MgTi2O5(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       200.109;
     }
     thermodynamics
@@ -15836,7 +14848,6 @@ C6H5Br_Bromobenz
 {
     specie
     {
-        nMoles          1;
         molWeight       157.008;
     }
     thermodynamics
@@ -15852,7 +14863,6 @@ C7H7O___C6H5CH2O
 {
     specie
     {
-        nMoles          1;
         molWeight       107.133;
     }
     thermodynamics
@@ -15868,7 +14878,6 @@ C2H5Br
 {
     specie
     {
-        nMoles          1;
         molWeight       108.963;
     }
     thermodynamics
@@ -15884,7 +14893,6 @@ C12H8O2
 {
     specie
     {
-        nMoles          1;
         molWeight       184.196;
     }
     thermodynamics
@@ -15900,7 +14908,6 @@ CBrF3_FREON_1301
 {
     specie
     {
-        nMoles          1;
         molWeight       148.907;
     }
     thermodynamics
@@ -15916,7 +14923,6 @@ PbS2
 {
     specie
     {
-        nMoles          1;
         molWeight       271.318;
     }
     thermodynamics
@@ -15932,7 +14938,6 @@ Zn
 {
     specie
     {
-        nMoles          1;
         molWeight       65.37;
     }
     thermodynamics
@@ -15948,7 +14953,6 @@ C19H32O2_meLinolen
 {
     specie
     {
-        nMoles          1;
         molWeight       292.466;
     }
     thermodynamics
@@ -15964,7 +14968,6 @@ C18H34_1-Octadecy
 {
     specie
     {
-        nMoles          1;
         molWeight       250.472;
     }
     thermodynamics
@@ -15980,7 +14983,6 @@ C2HCl
 {
     specie
     {
-        nMoles          1;
         molWeight       60.4833;
     }
     thermodynamics
@@ -15996,7 +14998,6 @@ C5H5O__1-oxy-1,3-
 {
     specie
     {
-        nMoles          1;
         molWeight       81.095;
     }
     thermodynamics
@@ -16012,7 +15013,6 @@ CH3NO_Nitrosomethy
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0412;
     }
     thermodynamics
@@ -16028,7 +15028,6 @@ MgOH
 {
     specie
     {
-        nMoles          1;
         molWeight       41.3194;
     }
     thermodynamics
@@ -16044,7 +15043,6 @@ C12H24_CyDoDecane
 {
     specie
     {
-        nMoles          1;
         molWeight       168.325;
     }
     thermodynamics
@@ -16060,7 +15058,6 @@ Na(g)
 {
     specie
     {
-        nMoles          1;
         molWeight       22.9898;
     }
     thermodynamics
@@ -16076,7 +15073,6 @@ H4F4
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0255;
     }
     thermodynamics
@@ -16092,7 +15088,6 @@ HO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0073;
     }
     thermodynamics
@@ -16108,7 +15103,6 @@ C10H6_Naphtyne
 {
     specie
     {
-        nMoles          1;
         molWeight       126.159;
     }
     thermodynamics
@@ -16124,7 +15118,6 @@ Ge2
 {
     specie
     {
-        nMoles          1;
         molWeight       145.18;
     }
     thermodynamics
@@ -16140,7 +15133,6 @@ C2H4O2Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       130.959;
     }
     thermodynamics
@@ -16156,7 +15148,6 @@ MgF2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       62.3088;
     }
     thermodynamics
@@ -16172,7 +15163,6 @@ CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0351;
     }
     thermodynamics
@@ -16188,7 +15178,6 @@ C12H8Cl2O2_6,6-(
 {
     specie
     {
-        nMoles          1;
         molWeight       255.102;
     }
     thermodynamics
@@ -16204,7 +15193,6 @@ Al(OH)2
 {
     specie
     {
-        nMoles          1;
         molWeight       60.9962;
     }
     thermodynamics
@@ -16220,7 +15208,6 @@ CF2H-CClF2_FC-124A
 {
     specie
     {
-        nMoles          1;
         molWeight       136.477;
     }
     thermodynamics
@@ -16236,7 +15223,6 @@ C5H2Cl2O_3,4-Cyc
 {
     specie
     {
-        nMoles          1;
         molWeight       148.977;
     }
     thermodynamics
@@ -16252,7 +15238,6 @@ Mg(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       24.312;
     }
     thermodynamics
@@ -16268,7 +15253,6 @@ P4O6
 {
     specie
     {
-        nMoles          1;
         molWeight       219.892;
     }
     thermodynamics
@@ -16284,7 +15268,6 @@ C4H7O_2-Butanone
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0998;
     }
     thermodynamics
@@ -16300,7 +15283,6 @@ C4H7N___PropylCN
 {
     specie
     {
-        nMoles          1;
         molWeight       69.1071;
     }
     thermodynamics
@@ -16316,7 +15298,6 @@ MnS___Liquid
 {
     specie
     {
-        nMoles          1;
         molWeight       87.002;
     }
     thermodynamics
@@ -16332,7 +15313,6 @@ C2H2F2__FC-1132A
 {
     specie
     {
-        nMoles          1;
         molWeight       64.035;
     }
     thermodynamics
@@ -16348,7 +15328,6 @@ C5H11N_Piperidine
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1501;
     }
     thermodynamics
@@ -16364,7 +15343,6 @@ C13H9N__ACRIDINE
 {
     specie
     {
-        nMoles          1;
         molWeight       179.223;
     }
     thermodynamics
@@ -16380,7 +15358,6 @@ C4H7__trans-1-Bu
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1004;
     }
     thermodynamics
@@ -16396,7 +15373,6 @@ C4H
 {
     specie
     {
-        nMoles          1;
         molWeight       49.0526;
     }
     thermodynamics
@@ -16412,7 +15388,6 @@ Cl2O
 {
     specie
     {
-        nMoles          1;
         molWeight       86.9054;
     }
     thermodynamics
@@ -16428,7 +15403,6 @@ CH3CBr3_111
 {
     specie
     {
-        nMoles          1;
         molWeight       266.749;
     }
     thermodynamics
@@ -16444,7 +15418,6 @@ n-C4H10O2_n-perox
 {
     specie
     {
-        nMoles          1;
         molWeight       90.1231;
     }
     thermodynamics
@@ -16460,7 +15433,6 @@ O3-
 {
     specie
     {
-        nMoles          1;
         molWeight       47.9987;
     }
     thermodynamics
@@ -16476,7 +15448,6 @@ C5H7_Cy-1en-3-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       67.1115;
     }
     thermodynamics
@@ -16492,7 +15463,6 @@ C7H10_cyC5H9-CCH
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1578;
     }
     thermodynamics
@@ -16508,7 +15478,6 @@ ClO2___OClO___HF
 {
     specie
     {
-        nMoles          1;
         molWeight       67.4518;
     }
     thermodynamics
@@ -16524,7 +15493,6 @@ NCCH2OOH
 {
     specie
     {
-        nMoles          1;
         molWeight       73.0517;
     }
     thermodynamics
@@ -16540,7 +15508,6 @@ HCNO_Fulminic_Acid
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -16556,7 +15523,6 @@ C8_linear_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       96.0892;
     }
     thermodynamics
@@ -16572,7 +15538,6 @@ NH2OH+
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0295;
     }
     thermodynamics
@@ -16588,7 +15553,6 @@ MgCl
 {
     specie
     {
-        nMoles          1;
         molWeight       59.765;
     }
     thermodynamics
@@ -16604,7 +15568,6 @@ BO
 {
     specie
     {
-        nMoles          1;
         molWeight       26.8104;
     }
     thermodynamics
@@ -16620,7 +15583,6 @@ CH2O__CH**-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0265;
     }
     thermodynamics
@@ -16636,7 +15598,6 @@ Sn-
 {
     specie
     {
-        nMoles          1;
         molWeight       118.691;
     }
     thermodynamics
@@ -16652,7 +15613,6 @@ C5Cl6___CycloPer
 {
     specie
     {
-        nMoles          1;
         molWeight       272.774;
     }
     thermodynamics
@@ -16668,7 +15628,6 @@ C2+
 {
     specie
     {
-        nMoles          1;
         molWeight       24.0218;
     }
     thermodynamics
@@ -16684,7 +15643,6 @@ MgSiO3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       100.396;
     }
     thermodynamics
@@ -16700,7 +15658,6 @@ C3H7OO_PropylPer
 {
     specie
     {
-        nMoles          1;
         molWeight       75.088;
     }
     thermodynamics
@@ -16716,7 +15673,6 @@ C6H5-_phenyl_ani
 {
     specie
     {
-        nMoles          1;
         molWeight       77.1073;
     }
     thermodynamics
@@ -16732,7 +15688,6 @@ CH3N2__C*H2-N=NH
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0485;
     }
     thermodynamics
@@ -16748,7 +15703,6 @@ SiO2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0848;
     }
     thermodynamics
@@ -16764,7 +15718,6 @@ SF5
 {
     specie
     {
-        nMoles          1;
         molWeight       127.056;
     }
     thermodynamics
@@ -16780,7 +15733,6 @@ NH3_Anharmonic
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0306;
     }
     thermodynamics
@@ -16796,7 +15748,6 @@ C6H12O2_Butyric
 {
     specie
     {
-        nMoles          1;
         molWeight       116.161;
     }
     thermodynamics
@@ -16812,7 +15763,6 @@ PH+
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9818;
     }
     thermodynamics
@@ -16828,7 +15778,6 @@ C2HCl4_CHCl2-CCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       166.842;
     }
     thermodynamics
@@ -16844,7 +15793,6 @@ C5H5O_Cyclo-2,4-
 {
     specie
     {
-        nMoles          1;
         molWeight       81.095;
     }
     thermodynamics
@@ -16860,7 +15808,6 @@ BF
 {
     specie
     {
-        nMoles          1;
         molWeight       29.8094;
     }
     thermodynamics
@@ -16876,7 +15823,6 @@ C15H30O2_n-acid
 {
     specie
     {
-        nMoles          1;
         molWeight       242.405;
     }
     thermodynamics
@@ -16892,7 +15838,6 @@ C7H13_1-Heptyl-4en
 {
     specie
     {
-        nMoles          1;
         molWeight       97.1817;
     }
     thermodynamics
@@ -16908,7 +15853,6 @@ C22H44O2_Ethyl_E
 {
     specie
     {
-        nMoles          1;
         molWeight       340.595;
     }
     thermodynamics
@@ -16924,7 +15868,6 @@ NOH-
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0146;
     }
     thermodynamics
@@ -16940,7 +15883,6 @@ BiCl
 {
     specie
     {
-        nMoles          1;
         molWeight       244.433;
     }
     thermodynamics
@@ -16956,7 +15898,6 @@ N2O3+
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0111;
     }
     thermodynamics
@@ -16972,7 +15913,6 @@ Ge(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       72.59;
     }
     thermodynamics
@@ -16988,7 +15928,6 @@ C4H10FO2P_SARIN
 {
     specie
     {
-        nMoles          1;
         molWeight       159.094;
     }
     thermodynamics
@@ -17004,7 +15943,6 @@ s-1-C10H7CH=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       154.214;
     }
     thermodynamics
@@ -17020,7 +15958,6 @@ BF2-
 {
     specie
     {
-        nMoles          1;
         molWeight       48.8083;
     }
     thermodynamics
@@ -17036,7 +15973,6 @@ C4H9O_s-butoxy_r
 {
     specie
     {
-        nMoles          1;
         molWeight       73.1157;
     }
     thermodynamics
@@ -17052,7 +15988,6 @@ C2DH_Acetylene-D
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0444;
     }
     thermodynamics
@@ -17068,7 +16003,6 @@ HgBr2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       360.392;
     }
     thermodynamics
@@ -17084,7 +16018,6 @@ Cr2O3(Ip)
 {
     specie
     {
-        nMoles          1;
         molWeight       151.99;
     }
     thermodynamics
@@ -17100,7 +16033,6 @@ C2D6_Ethane-D6
 {
     specie
     {
-        nMoles          1;
         molWeight       36.1069;
     }
     thermodynamics
@@ -17116,7 +16048,6 @@ CH3O-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       31.035;
     }
     thermodynamics
@@ -17132,7 +16063,6 @@ MgS
 {
     specie
     {
-        nMoles          1;
         molWeight       56.376;
     }
     thermodynamics
@@ -17148,7 +16078,6 @@ MoO2__Solid
 {
     specie
     {
-        nMoles          1;
         molWeight       127.939;
     }
     thermodynamics
@@ -17164,7 +16093,6 @@ N-C9H19_________N-
 {
     specie
     {
-        nMoles          1;
         molWeight       127.252;
     }
     thermodynamics
@@ -17180,7 +16108,6 @@ C10H9_1-methyl
 {
     specie
     {
-        nMoles          1;
         molWeight       129.183;
     }
     thermodynamics
@@ -17196,7 +16123,6 @@ C23H47_1-Tricosane
 {
     specie
     {
-        nMoles          1;
         molWeight       323.631;
     }
     thermodynamics
@@ -17212,7 +16138,6 @@ C4H6_1-butyne
 {
     specie
     {
-        nMoles          1;
         molWeight       54.0924;
     }
     thermodynamics
@@ -17228,7 +16153,6 @@ F-
 {
     specie
     {
-        nMoles          1;
         molWeight       18.9989;
     }
     thermodynamics
@@ -17244,7 +16168,6 @@ BF2
 {
     specie
     {
-        nMoles          1;
         molWeight       48.8078;
     }
     thermodynamics
@@ -17260,7 +16183,6 @@ NH4Cl(II)
 {
     specie
     {
-        nMoles          1;
         molWeight       53.4916;
     }
     thermodynamics
@@ -17276,7 +16198,6 @@ C5H3N_CyanoVinyl
 {
     specie
     {
-        nMoles          1;
         molWeight       77.0864;
     }
     thermodynamics
@@ -17292,7 +16213,6 @@ C7H5NO_Benzoxazole
 {
     specie
     {
-        nMoles          1;
         molWeight       119.124;
     }
     thermodynamics
@@ -17308,7 +16228,6 @@ Cu3Cl3
 {
     specie
     {
-        nMoles          1;
         molWeight       296.979;
     }
     thermodynamics
@@ -17324,7 +16243,6 @@ C7H7_QuadriShould
 {
     specie
     {
-        nMoles          1;
         molWeight       91.1338;
     }
     thermodynamics
@@ -17340,7 +16258,6 @@ CH3CH-__anion
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0547;
     }
     thermodynamics
@@ -17356,7 +16273,6 @@ Fe(OH)2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       89.8617;
     }
     thermodynamics
@@ -17372,7 +16288,6 @@ HOCN_Cyanic_Acid
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -17388,7 +16303,6 @@ C5H10O_T.H.PYRAN
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1349;
     }
     thermodynamics
@@ -17404,7 +16318,6 @@ GeH4
 {
     specie
     {
-        nMoles          1;
         molWeight       76.6219;
     }
     thermodynamics
@@ -17420,7 +16333,6 @@ NH3__RRHO
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0306;
     }
     thermodynamics
@@ -17436,7 +16348,6 @@ CH4N2O_Urea
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0558;
     }
     thermodynamics
@@ -17452,7 +16363,6 @@ C2H-
 {
     specie
     {
-        nMoles          1;
         molWeight       25.0308;
     }
     thermodynamics
@@ -17468,7 +16378,6 @@ Zr-
 {
     specie
     {
-        nMoles          1;
         molWeight       91.2205;
     }
     thermodynamics
@@ -17484,7 +16393,6 @@ N-UNDECANE
 {
     specie
     {
-        nMoles          1;
         molWeight       156.314;
     }
     thermodynamics
@@ -17500,7 +16408,6 @@ O3+
 {
     specie
     {
-        nMoles          1;
         molWeight       47.9977;
     }
     thermodynamics
@@ -17516,7 +16423,6 @@ CH3NC_Methyl-Iso
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0529;
     }
     thermodynamics
@@ -17532,7 +16438,6 @@ C4H4N2_PYRAZINE
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0899;
     }
     thermodynamics
@@ -17548,7 +16453,6 @@ PO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       62.9731;
     }
     thermodynamics
@@ -17564,7 +16468,6 @@ C2H6S__(C2H5SH)
 {
     specie
     {
-        nMoles          1;
         molWeight       62.1341;
     }
     thermodynamics
@@ -17580,7 +16483,6 @@ C7H16O_n-heptanol
 {
     specie
     {
-        nMoles          1;
         molWeight       116.205;
     }
     thermodynamics
@@ -17596,7 +16498,6 @@ C7H10_23C5H4(CH3)2
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1578;
     }
     thermodynamics
@@ -17612,7 +16513,6 @@ NCCH2OO_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       72.0437;
     }
     thermodynamics
@@ -17628,7 +16528,6 @@ HO3____HOOO
 {
     specie
     {
-        nMoles          1;
         molWeight       49.0062;
     }
     thermodynamics
@@ -17644,7 +16543,6 @@ Fe(c)
 {
     specie
     {
-        nMoles          1;
         molWeight       55.847;
     }
     thermodynamics
@@ -17660,7 +16558,6 @@ C2H5O2_HOCH2C*HO
 {
     specie
     {
-        nMoles          1;
         molWeight       61.061;
     }
     thermodynamics
@@ -17676,7 +16573,6 @@ CH5N__CH3NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0577;
     }
     thermodynamics
@@ -17692,7 +16588,6 @@ C7H8O__C6H5CH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       108.141;
     }
     thermodynamics
@@ -17708,7 +16603,6 @@ C4H5O__EtKetene-2
 {
     specie
     {
-        nMoles          1;
         molWeight       69.0838;
     }
     thermodynamics
@@ -17724,7 +16618,6 @@ CH3ONO2
 {
     specie
     {
-        nMoles          1;
         molWeight       77.04;
     }
     thermodynamics
@@ -17740,7 +16633,6 @@ C2H2(NO2)2
 {
     specie
     {
-        nMoles          1;
         molWeight       118.049;
     }
     thermodynamics
@@ -17756,7 +16648,6 @@ s-1,2,3-C6H4-5-yne
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0988;
     }
     thermodynamics
@@ -17772,7 +16663,6 @@ Cr(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       51.996;
     }
     thermodynamics
@@ -17788,7 +16678,6 @@ C8H6__Benzocybuten
 {
     specie
     {
-        nMoles          1;
         molWeight       102.137;
     }
     thermodynamics
@@ -17804,7 +16693,6 @@ C3H_Radical_HCCC
 {
     specie
     {
-        nMoles          1;
         molWeight       37.0414;
     }
     thermodynamics
@@ -17820,7 +16708,6 @@ MgBr
 {
     specie
     {
-        nMoles          1;
         molWeight       104.213;
     }
     thermodynamics
@@ -17836,7 +16723,6 @@ C2-
 {
     specie
     {
-        nMoles          1;
         molWeight       24.0228;
     }
     thermodynamics
@@ -17852,7 +16738,6 @@ N4_cyclo
 {
     specie
     {
-        nMoles          1;
         molWeight       56.0268;
     }
     thermodynamics
@@ -17868,7 +16753,6 @@ SF3
 {
     specie
     {
-        nMoles          1;
         molWeight       89.0592;
     }
     thermodynamics
@@ -17884,7 +16768,6 @@ Kr
 {
     specie
     {
-        nMoles          1;
         molWeight       83.8;
     }
     thermodynamics
@@ -17900,7 +16783,6 @@ Bi___GAS
 {
     specie
     {
-        nMoles          1;
         molWeight       208.98;
     }
     thermodynamics
@@ -17916,7 +16798,6 @@ C3H3ON_Oxazole
 {
     specie
     {
-        nMoles          1;
         molWeight       69.0635;
     }
     thermodynamics
@@ -17932,7 +16813,6 @@ C10H10_3-meIndene
 {
     specie
     {
-        nMoles          1;
         molWeight       130.191;
     }
     thermodynamics
@@ -17948,7 +16828,6 @@ C2H5ClO2
 {
     specie
     {
-        nMoles          1;
         molWeight       96.514;
     }
     thermodynamics
@@ -17964,7 +16843,6 @@ BrNC_BrIsocyanogen
 {
     specie
     {
-        nMoles          1;
         molWeight       105.919;
     }
     thermodynamics
@@ -17980,7 +16858,6 @@ C6F6
 {
     specie
     {
-        nMoles          1;
         molWeight       186.057;
     }
     thermodynamics
@@ -17996,7 +16873,6 @@ C2H5-_Ethyl_anio
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0627;
     }
     thermodynamics
@@ -18012,7 +16888,6 @@ C5H5OH_Cyclo-1,3
 {
     specie
     {
-        nMoles          1;
         molWeight       82.103;
     }
     thermodynamics
@@ -18028,7 +16903,6 @@ HSO
 {
     specie
     {
-        nMoles          1;
         molWeight       49.0714;
     }
     thermodynamics
@@ -18044,7 +16918,6 @@ O-
 {
     specie
     {
-        nMoles          1;
         molWeight       15.9999;
     }
     thermodynamics
@@ -18060,7 +16933,6 @@ Fe3C_(S)_Solid-A
 {
     specie
     {
-        nMoles          1;
         molWeight       179.552;
     }
     thermodynamics
@@ -18076,7 +16948,6 @@ C4H8O2_MePropionat
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1072;
     }
     thermodynamics
@@ -18092,7 +16963,6 @@ HDO
 {
     specie
     {
-        nMoles          1;
         molWeight       19.0215;
     }
     thermodynamics
@@ -18108,7 +16978,6 @@ MgO(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       40.3114;
     }
     thermodynamics
@@ -18124,7 +16993,6 @@ C3H3Cl_CH2Cl-CCH
 {
     specie
     {
-        nMoles          1;
         molWeight       74.5104;
     }
     thermodynamics
@@ -18140,7 +17008,6 @@ CD3OD_Methanol_d4
 {
     specie
     {
-        nMoles          1;
         molWeight       36.0669;
     }
     thermodynamics
@@ -18156,7 +17023,6 @@ C8H18(L)_n-octane
 {
     specie
     {
-        nMoles          1;
         molWeight       114.233;
     }
     thermodynamics
@@ -18172,7 +17038,6 @@ CBr4
 {
     specie
     {
-        nMoles          1;
         molWeight       331.615;
     }
     thermodynamics
@@ -18188,7 +17053,6 @@ BaO(G)
 {
     specie
     {
-        nMoles          1;
         molWeight       153.339;
     }
     thermodynamics
@@ -18204,7 +17068,6 @@ MgI2(s)
 {
     specie
     {
-        nMoles          1;
         molWeight       278.121;
     }
     thermodynamics
@@ -18220,7 +17083,6 @@ C6HCl5_5-ClBenzen
 {
     specie
     {
-        nMoles          1;
         molWeight       250.34;
     }
     thermodynamics
@@ -18236,7 +17098,6 @@ C4N2
 {
     specie
     {
-        nMoles          1;
         molWeight       76.058;
     }
     thermodynamics
@@ -18252,7 +17113,6 @@ CH2F2___FC-32
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0239;
     }
     thermodynamics
@@ -18268,7 +17128,6 @@ HCC-OH__Ethynol
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -18284,7 +17143,6 @@ C5H5N_PYRIDINE_Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1023;
     }
     thermodynamics
@@ -18300,7 +17158,6 @@ MgF2(cr)II
 {
     specie
     {
-        nMoles          1;
         molWeight       62.3088;
     }
     thermodynamics
@@ -18316,7 +17173,6 @@ NITROPROPYLENE_C
 {
     specie
     {
-        nMoles          1;
         molWeight       87.0788;
     }
     thermodynamics
@@ -18332,7 +17188,6 @@ BCl
 {
     specie
     {
-        nMoles          1;
         molWeight       46.264;
     }
     thermodynamics
@@ -18348,7 +17203,6 @@ Po_Polonium_(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       210;
     }
     thermodynamics
@@ -18364,7 +17218,6 @@ C5H3
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0797;
     }
     thermodynamics
@@ -18380,7 +17233,6 @@ Bi(OH)3
 {
     specie
     {
-        nMoles          1;
         molWeight       260.002;
     }
     thermodynamics
@@ -18396,7 +17248,6 @@ C10H10_1,1p(C5H5)2
 {
     specie
     {
-        nMoles          1;
         molWeight       130.191;
     }
     thermodynamics
@@ -18412,7 +17263,6 @@ C6H14O_2-hexanol
 {
     specie
     {
-        nMoles          1;
         molWeight       102.178;
     }
     thermodynamics
@@ -18428,7 +17278,6 @@ CH2N2O2_H2C=NNO2
 {
     specie
     {
-        nMoles          1;
         molWeight       74.0393;
     }
     thermodynamics
@@ -18444,7 +17293,6 @@ C4H10O2_t-perox
 {
     specie
     {
-        nMoles          1;
         molWeight       90.1231;
     }
     thermodynamics
@@ -18460,7 +17308,6 @@ CH3NO__HO-CH=NH
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0412;
     }
     thermodynamics
@@ -18476,7 +17323,6 @@ BiCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       279.886;
     }
     thermodynamics
@@ -18492,7 +17338,6 @@ Br2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       159.802;
     }
     thermodynamics
@@ -18508,7 +17353,6 @@ ClO3F
 {
     specie
     {
-        nMoles          1;
         molWeight       102.45;
     }
     thermodynamics
@@ -18524,7 +17368,6 @@ Po+_Polonium_catio
 {
     specie
     {
-        nMoles          1;
         molWeight       209.999;
     }
     thermodynamics
@@ -18540,7 +17383,6 @@ BrO-
 {
     specie
     {
-        nMoles          1;
         molWeight       95.9008;
     }
     thermodynamics
@@ -18556,7 +17398,6 @@ Fe.947O(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       71.8464;
     }
     thermodynamics
@@ -18572,7 +17413,6 @@ s-(CH3COOH)2
 {
     specie
     {
-        nMoles          1;
         molWeight       120.106;
     }
     thermodynamics
@@ -18588,7 +17428,6 @@ SF4-
 {
     specie
     {
-        nMoles          1;
         molWeight       108.058;
     }
     thermodynamics
@@ -18604,7 +17443,6 @@ SF5Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       162.509;
     }
     thermodynamics
@@ -18620,7 +17458,6 @@ T_Tritium__(g)
 {
     specie
     {
-        nMoles          1;
         molWeight       3.016;
     }
     thermodynamics
@@ -18636,7 +17473,6 @@ NH4ClO4(I)
 {
     specie
     {
-        nMoles          1;
         molWeight       117.489;
     }
     thermodynamics
@@ -18652,7 +17488,6 @@ SO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0633;
     }
     thermodynamics
@@ -18668,7 +17503,6 @@ s-1-C10H7-CC*
 {
     specie
     {
-        nMoles          1;
         molWeight       151.19;
     }
     thermodynamics
@@ -18684,7 +17518,6 @@ CNN+
 {
     specie
     {
-        nMoles          1;
         molWeight       40.024;
     }
     thermodynamics
@@ -18700,7 +17533,6 @@ C4Cl6_Butadiene
 {
     specie
     {
-        nMoles          1;
         molWeight       260.763;
     }
     thermodynamics
@@ -18716,7 +17548,6 @@ Pb(G)
 {
     specie
     {
-        nMoles          1;
         molWeight       207.19;
     }
     thermodynamics
@@ -18732,7 +17563,6 @@ TBr_Tritium_Brom
 {
     specie
     {
-        nMoles          1;
         molWeight       127.801;
     }
     thermodynamics
@@ -18748,7 +17578,6 @@ CH5N2__CH2*NHNH2
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0644;
     }
     thermodynamics
@@ -18764,7 +17593,6 @@ PF2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       104.424;
     }
     thermodynamics
@@ -18780,7 +17608,6 @@ N2O_NON
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0128;
     }
     thermodynamics
@@ -18796,7 +17623,6 @@ P3
 {
     specie
     {
-        nMoles          1;
         molWeight       92.9214;
     }
     thermodynamics
@@ -18812,7 +17638,6 @@ C14H10O_Phenantrol
 {
     specie
     {
-        nMoles          1;
         molWeight       194.235;
     }
     thermodynamics
@@ -18828,7 +17653,6 @@ C3H9N__(CH3)3N
 {
     specie
     {
-        nMoles          1;
         molWeight       59.1119;
     }
     thermodynamics
@@ -18844,7 +17668,6 @@ N2O4__ONONO2
 {
     specie
     {
-        nMoles          1;
         molWeight       92.011;
     }
     thermodynamics
@@ -18860,7 +17683,6 @@ F2
 {
     specie
     {
-        nMoles          1;
         molWeight       37.9968;
     }
     thermodynamics
@@ -18876,7 +17698,6 @@ C2N-__C-CN-
 {
     specie
     {
-        nMoles          1;
         molWeight       38.0295;
     }
     thermodynamics
@@ -18892,7 +17713,6 @@ CH+
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0186;
     }
     thermodynamics
@@ -18908,7 +17728,6 @@ MgF2(cr)I
 {
     specie
     {
-        nMoles          1;
         molWeight       62.3088;
     }
     thermodynamics
@@ -18924,7 +17743,6 @@ C6H5Cl+_Chlorobe
 {
     specie
     {
-        nMoles          1;
         molWeight       112.559;
     }
     thermodynamics
@@ -18940,7 +17758,6 @@ C16H9_2-Pyrenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       201.25;
     }
     thermodynamics
@@ -18956,7 +17773,6 @@ CH-
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0197;
     }
     thermodynamics
@@ -18972,7 +17788,6 @@ NHF2
 {
     specie
     {
-        nMoles          1;
         molWeight       53.0115;
     }
     thermodynamics
@@ -18988,7 +17803,6 @@ C8H14_Bicyclooctan
 {
     specie
     {
-        nMoles          1;
         molWeight       110.201;
     }
     thermodynamics
@@ -19004,7 +17818,6 @@ HNOH_trans_&_Equ
 {
     specie
     {
-        nMoles          1;
         molWeight       32.022;
     }
     thermodynamics
@@ -19020,7 +17833,6 @@ C2HO__HCC=O-
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0302;
     }
     thermodynamics
@@ -19036,7 +17848,6 @@ C4H9O2_n-Butyl_P
 {
     specie
     {
-        nMoles          1;
         molWeight       89.1151;
     }
     thermodynamics
@@ -19052,7 +17863,6 @@ CD4__ANHARMONIC
 {
     specie
     {
-        nMoles          1;
         molWeight       20.0676;
     }
     thermodynamics
@@ -19068,7 +17878,6 @@ CH2=CH-NO2_Nitroe
 {
     specie
     {
-        nMoles          1;
         molWeight       73.0517;
     }
     thermodynamics
@@ -19084,7 +17893,6 @@ C3HCl3__TriClAllen
 {
     specie
     {
-        nMoles          1;
         molWeight       143.4;
     }
     thermodynamics
@@ -19100,7 +17908,6 @@ C2H4Cl2_1,1-Dich
 {
     specie
     {
-        nMoles          1;
         molWeight       98.9602;
     }
     thermodynamics
@@ -19116,7 +17923,6 @@ CH3-CO-O-O-CO-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       118.09;
     }
     thermodynamics
@@ -19132,7 +17938,6 @@ C3H8O_1propanol
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0966;
     }
     thermodynamics
@@ -19148,7 +17953,6 @@ C13H28_TriDecane
 {
     specie
     {
-        nMoles          1;
         molWeight       184.368;
     }
     thermodynamics
@@ -19164,7 +17968,6 @@ C4H8O2_EtAcetate
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1072;
     }
     thermodynamics
@@ -19180,7 +17983,6 @@ BrF
 {
     specie
     {
-        nMoles          1;
         molWeight       98.8993;
     }
     thermodynamics
@@ -19196,7 +17998,6 @@ C5H9_1buten3m1yl
 {
     specie
     {
-        nMoles          1;
         molWeight       69.1275;
     }
     thermodynamics
@@ -19212,7 +18013,6 @@ C30H62_Triacotane
 {
     specie
     {
-        nMoles          1;
         molWeight       422.829;
     }
     thermodynamics
@@ -19228,7 +18028,6 @@ Kr+
 {
     specie
     {
-        nMoles          1;
         molWeight       83.7995;
     }
     thermodynamics
@@ -19244,7 +18043,6 @@ C4H6O_H3CCH2CH=C
 {
     specie
     {
-        nMoles          1;
         molWeight       70.0918;
     }
     thermodynamics
@@ -19260,7 +18058,6 @@ SCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       102.97;
     }
     thermodynamics
@@ -19276,7 +18073,6 @@ CCl3OH
 {
     specie
     {
-        nMoles          1;
         molWeight       135.378;
     }
     thermodynamics
@@ -19292,7 +18088,6 @@ C8H10_C6H5C2H5
 {
     specie
     {
-        nMoles          1;
         molWeight       106.169;
     }
     thermodynamics
@@ -19308,7 +18103,6 @@ C3H2F3_CF3-C*=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       95.0446;
     }
     thermodynamics
@@ -19324,7 +18118,6 @@ CH3CCl3_1,1,1-
 {
     specie
     {
-        nMoles          1;
         molWeight       133.405;
     }
     thermodynamics
@@ -19340,7 +18133,6 @@ DNO-
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0207;
     }
     thermodynamics
@@ -19356,7 +18148,6 @@ C5H9O2_Valeryl
 {
     specie
     {
-        nMoles          1;
         molWeight       101.126;
     }
     thermodynamics
@@ -19372,7 +18163,6 @@ C8H17_n-octyl
 {
     specie
     {
-        nMoles          1;
         molWeight       113.225;
     }
     thermodynamics
@@ -19388,7 +18178,6 @@ C4H8O_2-Butanone
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1078;
     }
     thermodynamics
@@ -19404,7 +18193,6 @@ C2H4Cl_alfaClEthyl
 {
     specie
     {
-        nMoles          1;
         molWeight       63.5072;
     }
     thermodynamics
@@ -19420,7 +18208,6 @@ C3H5_SYMMETRIC
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0733;
     }
     thermodynamics
@@ -19436,7 +18223,6 @@ HCOO__Formyloxy
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0179;
     }
     thermodynamics
@@ -19452,7 +18238,6 @@ C3H6O3_Lactic_Ac
 {
     specie
     {
-        nMoles          1;
         molWeight       90.0795;
     }
     thermodynamics
@@ -19468,7 +18253,6 @@ MgBr2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       184.114;
     }
     thermodynamics
@@ -19484,7 +18268,6 @@ BCl+
 {
     specie
     {
-        nMoles          1;
         molWeight       46.2635;
     }
     thermodynamics
@@ -19500,7 +18283,6 @@ CHNH2-__anion__H
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0423;
     }
     thermodynamics
@@ -19516,7 +18298,6 @@ CHBrCl2__FC-20B1
 {
     specie
     {
-        nMoles          1;
         molWeight       163.826;
     }
     thermodynamics
@@ -19532,7 +18313,6 @@ Cu(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       63.54;
     }
     thermodynamics
@@ -19548,7 +18328,6 @@ CH2N-__H*C=NH_cis
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0343;
     }
     thermodynamics
@@ -19564,7 +18343,6 @@ C4H7__1-meth-allyl
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1004;
     }
     thermodynamics
@@ -19580,7 +18358,6 @@ PH-
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9818;
     }
     thermodynamics
@@ -19596,7 +18373,6 @@ SF6
 {
     specie
     {
-        nMoles          1;
         molWeight       146.054;
     }
     thermodynamics
@@ -19612,7 +18388,6 @@ CH3N__(H2C=NH)
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0418;
     }
     thermodynamics
@@ -19628,7 +18403,6 @@ HAlO2
 {
     specie
     {
-        nMoles          1;
         molWeight       59.9883;
     }
     thermodynamics
@@ -19644,7 +18418,6 @@ HCN
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0258;
     }
     thermodynamics
@@ -19660,7 +18433,6 @@ AlO2
 {
     specie
     {
-        nMoles          1;
         molWeight       58.9803;
     }
     thermodynamics
@@ -19676,7 +18448,6 @@ HOCl
 {
     specie
     {
-        nMoles          1;
         molWeight       52.4604;
     }
     thermodynamics
@@ -19692,7 +18463,6 @@ Na2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       77.9784;
     }
     thermodynamics
@@ -19708,7 +18478,6 @@ C12D10_Biphenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       164.275;
     }
     thermodynamics
@@ -19724,7 +18493,6 @@ C4H7O2_MePropionat
 {
     specie
     {
-        nMoles          1;
         molWeight       87.0992;
     }
     thermodynamics
@@ -19740,7 +18508,6 @@ C6H11I_IodocyHexan
 {
     specie
     {
-        nMoles          1;
         molWeight       210.059;
     }
     thermodynamics
@@ -19756,7 +18523,6 @@ Cl-
 {
     specie
     {
-        nMoles          1;
         molWeight       35.4535;
     }
     thermodynamics
@@ -19772,7 +18538,6 @@ CF+
 {
     specie
     {
-        nMoles          1;
         molWeight       31.009;
     }
     thermodynamics
@@ -19788,7 +18553,6 @@ FeS(G)
 {
     specie
     {
-        nMoles          1;
         molWeight       87.911;
     }
     thermodynamics
@@ -19804,7 +18568,6 @@ Bi(CH3)2___HF298
 {
     specie
     {
-        nMoles          1;
         molWeight       239.05;
     }
     thermodynamics
@@ -19820,7 +18583,6 @@ C7H7_Quadri_Base
 {
     specie
     {
-        nMoles          1;
         molWeight       91.1338;
     }
     thermodynamics
@@ -19836,7 +18598,6 @@ CBrCl3_Bromotric
 {
     specie
     {
-        nMoles          1;
         molWeight       198.271;
     }
     thermodynamics
@@ -19852,7 +18613,6 @@ CCl3F___FC-11
 {
     specie
     {
-        nMoles          1;
         molWeight       137.369;
     }
     thermodynamics
@@ -19868,7 +18628,6 @@ MnS___Solid
 {
     specie
     {
-        nMoles          1;
         molWeight       87.002;
     }
     thermodynamics
@@ -19884,7 +18643,6 @@ BrF3
 {
     specie
     {
-        nMoles          1;
         molWeight       136.896;
     }
     thermodynamics
@@ -19900,7 +18658,6 @@ HNCO_Isocyanic_Aci
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -19916,7 +18673,6 @@ NT_Tritium_Nitro
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0306;
     }
     thermodynamics
@@ -19932,7 +18688,6 @@ B(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       10.811;
     }
     thermodynamics
@@ -19948,7 +18703,6 @@ C4H2__butadiyne
 {
     specie
     {
-        nMoles          1;
         molWeight       50.0605;
     }
     thermodynamics
@@ -19964,7 +18718,6 @@ P3O6
 {
     specie
     {
-        nMoles          1;
         molWeight       188.918;
     }
     thermodynamics
@@ -19980,7 +18733,6 @@ P4O10
 {
     specie
     {
-        nMoles          1;
         molWeight       283.889;
     }
     thermodynamics
@@ -19996,7 +18748,6 @@ FeSO4(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       151.909;
     }
     thermodynamics
@@ -20012,7 +18763,6 @@ C2Br4
 {
     specie
     {
-        nMoles          1;
         molWeight       343.626;
     }
     thermodynamics
@@ -20028,7 +18778,6 @@ MnS2_(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       119.066;
     }
     thermodynamics
@@ -20044,7 +18793,6 @@ CH3-NH-NH-CH3_Sy
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0995;
     }
     thermodynamics
@@ -20060,7 +18808,6 @@ DOBr
 {
     specie
     {
-        nMoles          1;
         molWeight       97.9144;
     }
     thermodynamics
@@ -20076,7 +18823,6 @@ P4O10(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       283.889;
     }
     thermodynamics
@@ -20092,7 +18838,6 @@ C3H6O_MeOxyrane
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0807;
     }
     thermodynamics
@@ -20108,7 +18853,6 @@ C4__triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0446;
     }
     thermodynamics
@@ -20124,7 +18868,6 @@ Si2H6__Disilane
 {
     specie
     {
-        nMoles          1;
         molWeight       62.2198;
     }
     thermodynamics
@@ -20140,7 +18883,6 @@ FeO
 {
     specie
     {
-        nMoles          1;
         molWeight       71.8464;
     }
     thermodynamics
@@ -20156,7 +18898,6 @@ C3H2F3_CF3-CH=CH*
 {
     specie
     {
-        nMoles          1;
         molWeight       95.0446;
     }
     thermodynamics
@@ -20172,7 +18913,6 @@ Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       70.906;
     }
     thermodynamics
@@ -20188,7 +18928,6 @@ Al2O+
 {
     specie
     {
-        nMoles          1;
         molWeight       69.9619;
     }
     thermodynamics
@@ -20204,7 +18943,6 @@ NOH
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0141;
     }
     thermodynamics
@@ -20220,7 +18958,6 @@ OH+
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0068;
     }
     thermodynamics
@@ -20236,7 +18973,6 @@ N3H
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0281;
     }
     thermodynamics
@@ -20252,7 +18988,6 @@ COH
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0185;
     }
     thermodynamics
@@ -20268,7 +19003,6 @@ C4Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       118.951;
     }
     thermodynamics
@@ -20284,7 +19018,6 @@ s-1,2,3,4-C6H2Cl4
 {
     specie
     {
-        nMoles          1;
         molWeight       215.895;
     }
     thermodynamics
@@ -20300,7 +19033,6 @@ NITROETHYLENE
 {
     specie
     {
-        nMoles          1;
         molWeight       73.0517;
     }
     thermodynamics
@@ -20316,7 +19048,6 @@ C5H10,cyclo-
 {
     specie
     {
-        nMoles          1;
         molWeight       70.1355;
     }
     thermodynamics
@@ -20332,7 +19063,6 @@ DOCl
 {
     specie
     {
-        nMoles          1;
         molWeight       53.4665;
     }
     thermodynamics
@@ -20348,7 +19078,6 @@ PO2
 {
     specie
     {
-        nMoles          1;
         molWeight       62.9726;
     }
     thermodynamics
@@ -20364,7 +19093,6 @@ NH2D
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0367;
     }
     thermodynamics
@@ -20380,7 +19108,6 @@ C4H4O_Vin-KETENE
 {
     specie
     {
-        nMoles          1;
         molWeight       68.0759;
     }
     thermodynamics
@@ -20396,7 +19123,6 @@ NO
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0061;
     }
     thermodynamics
@@ -20412,7 +19138,6 @@ NO2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       81.4585;
     }
     thermodynamics
@@ -20428,7 +19153,6 @@ C5H7_1,4-diene-3yl
 {
     specie
     {
-        nMoles          1;
         molWeight       67.1115;
     }
     thermodynamics
@@ -20444,7 +19168,6 @@ MgBr2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       184.114;
     }
     thermodynamics
@@ -20460,7 +19183,6 @@ FO
 {
     specie
     {
-        nMoles          1;
         molWeight       34.9978;
     }
     thermodynamics
@@ -20476,7 +19198,6 @@ C6H9I-3-iodo
 {
     specie
     {
-        nMoles          1;
         molWeight       208.043;
     }
     thermodynamics
@@ -20492,7 +19213,6 @@ FeCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       162.206;
     }
     thermodynamics
@@ -20508,7 +19228,6 @@ NO3F
 {
     specie
     {
-        nMoles          1;
         molWeight       81.0033;
     }
     thermodynamics
@@ -20524,7 +19243,6 @@ C22H18_(C10H7CH2)2
 {
     specie
     {
-        nMoles          1;
         molWeight       282.389;
     }
     thermodynamics
@@ -20540,7 +19258,6 @@ C2HCl5
 {
     specie
     {
-        nMoles          1;
         molWeight       202.295;
     }
     thermodynamics
@@ -20556,7 +19273,6 @@ C3H3+_CH2=C=CH+
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0568;
     }
     thermodynamics
@@ -20572,7 +19288,6 @@ CCl4
 {
     specie
     {
-        nMoles          1;
         molWeight       153.823;
     }
     thermodynamics
@@ -20588,7 +19303,6 @@ C2HBr
 {
     specie
     {
-        nMoles          1;
         molWeight       104.931;
     }
     thermodynamics
@@ -20604,7 +19318,6 @@ N2H4_HYDRAZINE
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0453;
     }
     thermodynamics
@@ -20620,7 +19333,6 @@ RDX_135_Triazine
 {
     specie
     {
-        nMoles          1;
         molWeight       222.118;
     }
     thermodynamics
@@ -20636,7 +19348,6 @@ C2H4O3_HOCH2COOH
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0524;
     }
     thermodynamics
@@ -20652,7 +19363,6 @@ C14H9_1-Phenantr
 {
     specie
     {
-        nMoles          1;
         molWeight       177.228;
     }
     thermodynamics
@@ -20668,7 +19378,6 @@ HFCO+
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0169;
     }
     thermodynamics
@@ -20684,7 +19393,6 @@ C4H8S2_1,3_Dithi
 {
     specie
     {
-        nMoles          1;
         molWeight       120.236;
     }
     thermodynamics
@@ -20700,7 +19408,6 @@ ZnCO3_solid
 {
     specie
     {
-        nMoles          1;
         molWeight       125.379;
     }
     thermodynamics
@@ -20716,7 +19423,6 @@ IO2__O-I-O
 {
     specie
     {
-        nMoles          1;
         molWeight       158.903;
     }
     thermodynamics
@@ -20732,7 +19438,6 @@ CH2_SINGLET
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -20748,7 +19453,6 @@ CHON3_FormilAzide
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0386;
     }
     thermodynamics
@@ -20764,7 +19468,6 @@ C12H26O_1-dodeca
 {
     specie
     {
-        nMoles          1;
         molWeight       186.34;
     }
     thermodynamics
@@ -20780,7 +19483,6 @@ KO
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1014;
     }
     thermodynamics
@@ -20796,7 +19498,6 @@ Mn
 {
     specie
     {
-        nMoles          1;
         molWeight       54.938;
     }
     thermodynamics
@@ -20812,7 +19513,6 @@ C10H20_1-Decene
 {
     specie
     {
-        nMoles          1;
         molWeight       140.271;
     }
     thermodynamics
@@ -20828,7 +19528,6 @@ ZrN(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       105.227;
     }
     thermodynamics
@@ -20844,7 +19543,6 @@ AlF
 {
     specie
     {
-        nMoles          1;
         molWeight       45.9799;
     }
     thermodynamics
@@ -20860,7 +19558,6 @@ CF3O2_CF3O-O*
 {
     specie
     {
-        nMoles          1;
         molWeight       101.005;
     }
     thermodynamics
@@ -20876,7 +19573,6 @@ C4H7__tt-1buten-
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1004;
     }
     thermodynamics
@@ -20892,7 +19588,6 @@ C15H30O2_memyrist
 {
     specie
     {
-        nMoles          1;
         molWeight       242.405;
     }
     thermodynamics
@@ -20908,7 +19603,6 @@ CD2O_Deutherofor
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0388;
     }
     thermodynamics
@@ -20924,7 +19618,6 @@ MgI2
 {
     specie
     {
-        nMoles          1;
         molWeight       278.121;
     }
     thermodynamics
@@ -20940,7 +19633,6 @@ C2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       59.4753;
     }
     thermodynamics
@@ -20956,7 +19648,6 @@ C10H20_CycloDecan
 {
     specie
     {
-        nMoles          1;
         molWeight       140.271;
     }
     thermodynamics
@@ -20972,7 +19663,6 @@ CHI3__IODOFORM
 {
     specie
     {
-        nMoles          1;
         molWeight       393.732;
     }
     thermodynamics
@@ -20988,7 +19678,6 @@ Mn3O4__Solid-A
 {
     specie
     {
-        nMoles          1;
         molWeight       228.812;
     }
     thermodynamics
@@ -21004,7 +19693,6 @@ Bi2O3
 {
     specie
     {
-        nMoles          1;
         molWeight       465.958;
     }
     thermodynamics
@@ -21020,7 +19708,6 @@ C5H4N__linear_Ra
 {
     specie
     {
-        nMoles          1;
         molWeight       78.0943;
     }
     thermodynamics
@@ -21036,7 +19723,6 @@ P(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       30.9738;
     }
     thermodynamics
@@ -21052,7 +19738,6 @@ C20H34O2_EtLinolen
 {
     specie
     {
-        nMoles          1;
         molWeight       306.493;
     }
     thermodynamics
@@ -21068,7 +19753,6 @@ C4F6_1,3-Butadiene
 {
     specie
     {
-        nMoles          1;
         molWeight       162.035;
     }
     thermodynamics
@@ -21084,7 +19768,6 @@ NCN+
 {
     specie
     {
-        nMoles          1;
         molWeight       40.024;
     }
     thermodynamics
@@ -21100,7 +19783,6 @@ MgOH+
 {
     specie
     {
-        nMoles          1;
         molWeight       41.3188;
     }
     thermodynamics
@@ -21116,7 +19798,6 @@ Zn3N2_solid
 {
     specie
     {
-        nMoles          1;
         molWeight       224.123;
     }
     thermodynamics
@@ -21132,7 +19813,6 @@ BO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       42.8103;
     }
     thermodynamics
@@ -21148,7 +19828,6 @@ O2+
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9983;
     }
     thermodynamics
@@ -21164,7 +19843,6 @@ C22H14_Pentafene
 {
     specie
     {
-        nMoles          1;
         molWeight       278.357;
     }
     thermodynamics
@@ -21180,7 +19858,6 @@ Cr2FeO4
 {
     specie
     {
-        nMoles          1;
         molWeight       223.837;
     }
     thermodynamics
@@ -21196,7 +19873,6 @@ ND2H
 {
     specie
     {
-        nMoles          1;
         molWeight       19.0429;
     }
     thermodynamics
@@ -21212,7 +19888,6 @@ C3H3_CH2(CH=C*)
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0574;
     }
     thermodynamics
@@ -21228,7 +19903,6 @@ CF-
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0101;
     }
     thermodynamics
@@ -21244,7 +19918,6 @@ C5H8Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       103.573;
     }
     thermodynamics
@@ -21260,7 +19933,6 @@ s-1,2,3,C6H3Cl3_1,
 {
     specie
     {
-        nMoles          1;
         molWeight       181.45;
     }
     thermodynamics
@@ -21276,7 +19948,6 @@ HCOOH_FORMIC_ACID
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0259;
     }
     thermodynamics
@@ -21292,7 +19963,6 @@ GeS2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       136.718;
     }
     thermodynamics
@@ -21308,7 +19978,6 @@ I2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       253.809;
     }
     thermodynamics
@@ -21324,7 +19993,6 @@ C6H12O2_Caproic_ac
 {
     specie
     {
-        nMoles          1;
         molWeight       116.161;
     }
     thermodynamics
@@ -21340,7 +20008,6 @@ K(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       39.102;
     }
     thermodynamics
@@ -21356,7 +20023,6 @@ AlO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       58.9808;
     }
     thermodynamics
@@ -21372,7 +20038,6 @@ N3-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0206;
     }
     thermodynamics
@@ -21388,7 +20053,6 @@ C6H14,n-hexane
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1785;
     }
     thermodynamics
@@ -21404,7 +20068,6 @@ CH2O2-_CH2OO-
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0264;
     }
     thermodynamics
@@ -21420,7 +20083,6 @@ C13H26O2_Me-ester
 {
     specie
     {
-        nMoles          1;
         molWeight       214.351;
     }
     thermodynamics
@@ -21436,7 +20098,6 @@ Mg(OH)2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       58.3267;
     }
     thermodynamics
@@ -21452,7 +20113,6 @@ C3HN_Cyano-Acety
 {
     specie
     {
-        nMoles          1;
         molWeight       51.0481;
     }
     thermodynamics
@@ -21468,7 +20128,6 @@ TNT____Solid_Yin
 {
     specie
     {
-        nMoles          1;
         molWeight       227.134;
     }
     thermodynamics
@@ -21484,7 +20143,6 @@ C7H15__Neoheptyl-1
 {
     specie
     {
-        nMoles          1;
         molWeight       99.1976;
     }
     thermodynamics
@@ -21500,7 +20158,6 @@ C7H6O2_C6H5-COOH
 {
     specie
     {
-        nMoles          1;
         molWeight       122.125;
     }
     thermodynamics
@@ -21516,7 +20173,6 @@ ZrO2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       123.219;
     }
     thermodynamics
@@ -21532,7 +20188,6 @@ CH3NH_radical
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0497;
     }
     thermodynamics
@@ -21548,7 +20203,6 @@ C4H4N2_SUCCINONITR
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0899;
     }
     thermodynamics
@@ -21564,7 +20218,6 @@ C3HCl2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       124.955;
     }
     thermodynamics
@@ -21580,7 +20233,6 @@ NOCl
 {
     specie
     {
-        nMoles          1;
         molWeight       65.4591;
     }
     thermodynamics
@@ -21596,7 +20248,6 @@ BI
 {
     specie
     {
-        nMoles          1;
         molWeight       137.715;
     }
     thermodynamics
@@ -21612,7 +20263,6 @@ C4H7O2_Butyrat
 {
     specie
     {
-        nMoles          1;
         molWeight       87.0992;
     }
     thermodynamics
@@ -21628,7 +20278,6 @@ Mg3N2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       100.949;
     }
     thermodynamics
@@ -21644,7 +20293,6 @@ CBr3__Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       251.714;
     }
     thermodynamics
@@ -21660,7 +20308,6 @@ ClF5
 {
     specie
     {
-        nMoles          1;
         molWeight       130.445;
     }
     thermodynamics
@@ -21676,7 +20323,6 @@ C5F12__FC_41-12
 {
     specie
     {
-        nMoles          1;
         molWeight       288.037;
     }
     thermodynamics
@@ -21692,7 +20338,6 @@ C20H10__CORANNUL
 {
     specie
     {
-        nMoles          1;
         molWeight       250.303;
     }
     thermodynamics
@@ -21708,7 +20353,6 @@ C4H7O_2-butyralde
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0998;
     }
     thermodynamics
@@ -21724,7 +20368,6 @@ Po_Polonium
 {
     specie
     {
-        nMoles          1;
         molWeight       210;
     }
     thermodynamics
@@ -21740,7 +20383,6 @@ D2
 {
     specie
     {
-        nMoles          1;
         molWeight       4.0282;
     }
     thermodynamics
@@ -21756,7 +20398,6 @@ COF2+__cation
 {
     specie
     {
-        nMoles          1;
         molWeight       66.0068;
     }
     thermodynamics
@@ -21772,7 +20413,6 @@ Mg
 {
     specie
     {
-        nMoles          1;
         molWeight       24.312;
     }
     thermodynamics
@@ -21788,7 +20428,6 @@ s-(CH3)2N-NH*
 {
     specie
     {
-        nMoles          1;
         molWeight       59.0915;
     }
     thermodynamics
@@ -21804,7 +20443,6 @@ C10H8_Naphthalene
 {
     specie
     {
-        nMoles          1;
         molWeight       128.175;
     }
     thermodynamics
@@ -21820,7 +20458,6 @@ IO
 {
     specie
     {
-        nMoles          1;
         molWeight       142.904;
     }
     thermodynamics
@@ -21836,7 +20473,6 @@ MgO(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       40.3114;
     }
     thermodynamics
@@ -21852,7 +20488,6 @@ Fe.947O(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       71.8464;
     }
     thermodynamics
@@ -21868,7 +20503,6 @@ HNO
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0141;
     }
     thermodynamics
@@ -21884,7 +20518,6 @@ N3+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0196;
     }
     thermodynamics
@@ -21900,7 +20533,6 @@ C2N2Hg_(CN)2Hg
 {
     specie
     {
-        nMoles          1;
         molWeight       252.626;
     }
     thermodynamics
@@ -21916,7 +20548,6 @@ C6H5F_Fluorobenz
 {
     specie
     {
-        nMoles          1;
         molWeight       96.1052;
     }
     thermodynamics
@@ -21932,7 +20563,6 @@ C18H34O2_EtPalmOle
 {
     specie
     {
-        nMoles          1;
         molWeight       282.47;
     }
     thermodynamics
@@ -21948,7 +20578,6 @@ NH4+
 {
     specie
     {
-        nMoles          1;
         molWeight       18.038;
     }
     thermodynamics
@@ -21964,7 +20593,6 @@ C12H_linear
 {
     specie
     {
-        nMoles          1;
         molWeight       145.142;
     }
     thermodynamics
@@ -21980,7 +20608,6 @@ CH3SS_radical
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1631;
     }
     thermodynamics
@@ -21996,7 +20623,6 @@ Ni
 {
     specie
     {
-        nMoles          1;
         molWeight       58.71;
     }
     thermodynamics
@@ -22012,7 +20638,6 @@ CYCLOPENTADIENE
 {
     specie
     {
-        nMoles          1;
         molWeight       66.1036;
     }
     thermodynamics
@@ -22028,7 +20653,6 @@ ZrC(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       103.231;
     }
     thermodynamics
@@ -22044,7 +20668,6 @@ CCl2F
 {
     specie
     {
-        nMoles          1;
         molWeight       101.916;
     }
     thermodynamics
@@ -22060,7 +20683,6 @@ C7H__linear
 {
     specie
     {
-        nMoles          1;
         molWeight       85.086;
     }
     thermodynamics
@@ -22076,7 +20698,6 @@ C9H11_PropylBenzen
 {
     specie
     {
-        nMoles          1;
         molWeight       119.188;
     }
     thermodynamics
@@ -22092,7 +20713,6 @@ NH2+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0221;
     }
     thermodynamics
@@ -22108,7 +20728,6 @@ CH3-N*-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0768;
     }
     thermodynamics
@@ -22124,7 +20743,6 @@ S-C3H5_CH3CH=CH*
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0733;
     }
     thermodynamics
@@ -22140,7 +20758,6 @@ CH2NC_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0449;
     }
     thermodynamics
@@ -22156,7 +20773,6 @@ PF+
 {
     specie
     {
-        nMoles          1;
         molWeight       49.9717;
     }
     thermodynamics
@@ -22172,7 +20788,6 @@ H2O2+__cis
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0142;
     }
     thermodynamics
@@ -22188,7 +20803,6 @@ Sb(OH)3
 {
     specie
     {
-        nMoles          1;
         molWeight       172.772;
     }
     thermodynamics
@@ -22204,7 +20818,6 @@ CF4____FC-14
 {
     specie
     {
-        nMoles          1;
         molWeight       88.0048;
     }
     thermodynamics
@@ -22220,7 +20833,6 @@ IR_(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       192.2;
     }
     thermodynamics
@@ -22236,7 +20848,6 @@ C3HBr2O*__Radica
 {
     specie
     {
-        nMoles          1;
         molWeight       212.843;
     }
     thermodynamics
@@ -22252,7 +20863,6 @@ C3O2+_O=C=C=C=O+
 {
     specie
     {
-        nMoles          1;
         molWeight       68.0317;
     }
     thermodynamics
@@ -22268,7 +20878,6 @@ s-1-C10H7-CH=CH*
 {
     specie
     {
-        nMoles          1;
         molWeight       153.206;
     }
     thermodynamics
@@ -22284,7 +20893,6 @@ Fe3O4(S)_Solid-A
 {
     specie
     {
-        nMoles          1;
         molWeight       231.539;
     }
     thermodynamics
@@ -22300,7 +20908,6 @@ HCS_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0831;
     }
     thermodynamics
@@ -22316,7 +20923,6 @@ SN
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0707;
     }
     thermodynamics
@@ -22332,7 +20938,6 @@ HgCl_____Calomel
 {
     specie
     {
-        nMoles          1;
         molWeight       236.043;
     }
     thermodynamics
@@ -22348,7 +20953,6 @@ C8H20PB_PB(C2H5)4
 {
     specie
     {
-        nMoles          1;
         molWeight       323.439;
     }
     thermodynamics
@@ -22364,7 +20968,6 @@ I+
 {
     specie
     {
-        nMoles          1;
         molWeight       126.904;
     }
     thermodynamics
@@ -22380,7 +20983,6 @@ C3H4N__CH3-CH*-CN
 {
     specie
     {
-        nMoles          1;
         molWeight       54.072;
     }
     thermodynamics
@@ -22396,7 +20998,6 @@ PFCl
 {
     specie
     {
-        nMoles          1;
         molWeight       85.4252;
     }
     thermodynamics
@@ -22412,7 +21013,6 @@ C7H14O2_MeCaproate
 {
     specie
     {
-        nMoles          1;
         molWeight       130.188;
     }
     thermodynamics
@@ -22428,7 +21028,6 @@ C2H2O2_HOCH=C=O
 {
     specie
     {
-        nMoles          1;
         molWeight       58.037;
     }
     thermodynamics
@@ -22444,7 +21043,6 @@ CH3ONO
 {
     specie
     {
-        nMoles          1;
         molWeight       61.0406;
     }
     thermodynamics
@@ -22460,7 +21058,6 @@ CH2_TRIPLET
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -22476,7 +21073,6 @@ NH4NO3(III)
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0435;
     }
     thermodynamics
@@ -22492,7 +21088,6 @@ C7H7ON_AcetPyridin
 {
     specie
     {
-        nMoles          1;
         molWeight       121.14;
     }
     thermodynamics
@@ -22508,7 +21103,6 @@ C3H6O3_Trioxane
 {
     specie
     {
-        nMoles          1;
         molWeight       90.0795;
     }
     thermodynamics
@@ -22524,7 +21118,6 @@ AlH
 {
     specie
     {
-        nMoles          1;
         molWeight       27.9895;
     }
     thermodynamics
@@ -22540,7 +21133,6 @@ C2H2+_Acetylene+
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0377;
     }
     thermodynamics
@@ -22556,7 +21148,6 @@ C18H35O2_Stearyl
 {
     specie
     {
-        nMoles          1;
         molWeight       283.478;
     }
     thermodynamics
@@ -22572,7 +21163,6 @@ C10H16_Adamantane
 {
     specie
     {
-        nMoles          1;
         molWeight       136.239;
     }
     thermodynamics
@@ -22588,7 +21178,6 @@ C2H+
 {
     specie
     {
-        nMoles          1;
         molWeight       25.0297;
     }
     thermodynamics
@@ -22604,7 +21193,6 @@ s-*CH2(CH3)-N-NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       59.0915;
     }
     thermodynamics
@@ -22620,7 +21208,6 @@ C6H6_1,3-Hexadiyn
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -22636,7 +21223,6 @@ C5H5N5__Adenine
 {
     specie
     {
-        nMoles          1;
         molWeight       135.129;
     }
     thermodynamics
@@ -22652,7 +21238,6 @@ C7H16_ISOHEPTANE
 {
     specie
     {
-        nMoles          1;
         molWeight       100.206;
     }
     thermodynamics
@@ -22668,7 +21253,6 @@ NHF
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0131;
     }
     thermodynamics
@@ -22684,7 +21268,6 @@ IC2H4OH
 {
     specie
     {
-        nMoles          1;
         molWeight       171.966;
     }
     thermodynamics
@@ -22700,7 +21283,6 @@ FCN
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0162;
     }
     thermodynamics
@@ -22716,7 +21298,6 @@ He
 {
     specie
     {
-        nMoles          1;
         molWeight       4.0026;
     }
     thermodynamics
@@ -22732,7 +21313,6 @@ C2H5O+__CH3C*HOH+
 {
     specie
     {
-        nMoles          1;
         molWeight       45.061;
     }
     thermodynamics
@@ -22748,7 +21328,6 @@ D
 {
     specie
     {
-        nMoles          1;
         molWeight       2.0141;
     }
     thermodynamics
@@ -22764,7 +21343,6 @@ C2Cl2F4_CF3CFCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       170.922;
     }
     thermodynamics
@@ -22780,7 +21358,6 @@ CH2O2_cycCH2(OO)
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0259;
     }
     thermodynamics
@@ -22796,7 +21373,6 @@ SbCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       192.656;
     }
     thermodynamics
@@ -22812,7 +21388,6 @@ Al2O3
 {
     specie
     {
-        nMoles          1;
         molWeight       101.961;
     }
     thermodynamics
@@ -22828,7 +21403,6 @@ C5H11__neopentyl
 {
     specie
     {
-        nMoles          1;
         molWeight       71.1434;
     }
     thermodynamics
@@ -22844,7 +21418,6 @@ C2F2
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0191;
     }
     thermodynamics
@@ -22860,7 +21433,6 @@ ClHC=C=CCl(O*)
 {
     specie
     {
-        nMoles          1;
         molWeight       123.947;
     }
     thermodynamics
@@ -22876,7 +21448,6 @@ s-2,4-C6H4Cl2O_tr
 {
     specie
     {
-        nMoles          1;
         molWeight       163.004;
     }
     thermodynamics
@@ -22892,7 +21463,6 @@ CH5O+__OH2CH3+
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0499;
     }
     thermodynamics
@@ -22908,7 +21478,6 @@ OH
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0074;
     }
     thermodynamics
@@ -22924,7 +21493,6 @@ C3H6_propylene
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0813;
     }
     thermodynamics
@@ -22940,7 +21508,6 @@ FeCl3(s)
 {
     specie
     {
-        nMoles          1;
         molWeight       162.206;
     }
     thermodynamics
@@ -22956,7 +21523,6 @@ C4H7__3-buten-1-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1004;
     }
     thermodynamics
@@ -22972,7 +21538,6 @@ C7H15O_3,3-dimet
 {
     specie
     {
-        nMoles          1;
         molWeight       115.197;
     }
     thermodynamics
@@ -22988,7 +21553,6 @@ ZnSO4(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       161.432;
     }
     thermodynamics
@@ -23004,7 +21568,6 @@ INO2_NitroIodine
 {
     specie
     {
-        nMoles          1;
         molWeight       172.91;
     }
     thermodynamics
@@ -23020,7 +21583,6 @@ C6H12O6__Glucose
 {
     specie
     {
-        nMoles          1;
         molWeight       180.159;
     }
     thermodynamics
@@ -23036,7 +21598,6 @@ NiS2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       122.838;
     }
     thermodynamics
@@ -23052,7 +21613,6 @@ C7H5NO__Anthranil
 {
     specie
     {
-        nMoles          1;
         molWeight       119.124;
     }
     thermodynamics
@@ -23068,7 +21628,6 @@ CH2(NO2)2
 {
     specie
     {
-        nMoles          1;
         molWeight       106.038;
     }
     thermodynamics
@@ -23084,7 +21643,6 @@ HNNH-__trans
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0299;
     }
     thermodynamics
@@ -23100,7 +21658,6 @@ SbCl5
 {
     specie
     {
-        nMoles          1;
         molWeight       299.015;
     }
     thermodynamics
@@ -23116,7 +21673,6 @@ C19H34O2_meLinolei
 {
     specie
     {
-        nMoles          1;
         molWeight       294.482;
     }
     thermodynamics
@@ -23132,7 +21688,6 @@ SiH3__Silyl
 {
     specie
     {
-        nMoles          1;
         molWeight       31.1099;
     }
     thermodynamics
@@ -23148,7 +21703,6 @@ Hg
 {
     specie
     {
-        nMoles          1;
         molWeight       200.59;
     }
     thermodynamics
@@ -23164,7 +21718,6 @@ C6H5__FULVENYL_M
 {
     specie
     {
-        nMoles          1;
         molWeight       77.1068;
     }
     thermodynamics
@@ -23180,7 +21733,6 @@ S
 {
     specie
     {
-        nMoles          1;
         molWeight       32.064;
     }
     thermodynamics
@@ -23196,7 +21748,6 @@ BH4
 {
     specie
     {
-        nMoles          1;
         molWeight       14.8429;
     }
     thermodynamics
@@ -23212,7 +21763,6 @@ HF+
 {
     specie
     {
-        nMoles          1;
         molWeight       20.0058;
     }
     thermodynamics
@@ -23228,7 +21778,6 @@ C9H18O6_TATP
 {
     specie
     {
-        nMoles          1;
         molWeight       222.24;
     }
     thermodynamics
@@ -23244,7 +21793,6 @@ C12H5Cl4O2_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       322.984;
     }
     thermodynamics
@@ -23260,7 +21808,6 @@ CDH3
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0492;
     }
     thermodynamics
@@ -23276,7 +21823,6 @@ C17H32O2_mepalmOle
 {
     specie
     {
-        nMoles          1;
         molWeight       268.443;
     }
     thermodynamics
@@ -23292,7 +21838,6 @@ HNO2-_trans____H
 {
     specie
     {
-        nMoles          1;
         molWeight       47.014;
     }
     thermodynamics
@@ -23308,7 +21853,6 @@ JET-A(G)_C12H23
 {
     specie
     {
-        nMoles          1;
         molWeight       167.317;
     }
     thermodynamics
@@ -23324,7 +21868,6 @@ O3__cyclo__O(OO)
 {
     specie
     {
-        nMoles          1;
         molWeight       47.9982;
     }
     thermodynamics
@@ -23340,7 +21883,6 @@ H2O3+__HOOOH+
 {
     specie
     {
-        nMoles          1;
         molWeight       50.0136;
     }
     thermodynamics
@@ -23356,7 +21898,6 @@ C2H6O__CH3OCH3
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0695;
     }
     thermodynamics
@@ -23372,7 +21913,6 @@ C12H4Cl4O3_1368
 {
     specie
     {
-        nMoles          1;
         molWeight       337.976;
     }
     thermodynamics
@@ -23388,7 +21928,6 @@ E-_electron_gas
 {
     specie
     {
-        nMoles          1;
         molWeight       0.000545;
     }
     thermodynamics
@@ -23404,7 +21943,6 @@ NH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       33.03;
     }
     thermodynamics
@@ -23420,7 +21958,6 @@ Mn5N2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       302.703;
     }
     thermodynamics
@@ -23436,7 +21973,6 @@ P2
 {
     specie
     {
-        nMoles          1;
         molWeight       61.9476;
     }
     thermodynamics
@@ -23452,7 +21988,6 @@ CBr3Cl__TriBromo
 {
     specie
     {
-        nMoles          1;
         molWeight       287.167;
     }
     thermodynamics
@@ -23468,7 +22003,6 @@ C6H3_CH2=C=C=C=C=C
 {
     specie
     {
-        nMoles          1;
         molWeight       75.0908;
     }
     thermodynamics
@@ -23484,7 +22018,6 @@ ClF3
 {
     specie
     {
-        nMoles          1;
         molWeight       92.4482;
     }
     thermodynamics
@@ -23500,7 +22033,6 @@ C18H36O4_9,10-di
 {
     specie
     {
-        nMoles          1;
         molWeight       316.485;
     }
     thermodynamics
@@ -23516,7 +22048,6 @@ SiHF3
 {
     specie
     {
-        nMoles          1;
         molWeight       86.0892;
     }
     thermodynamics
@@ -23532,7 +22063,6 @@ C5H12O(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1508;
     }
     thermodynamics
@@ -23548,7 +22078,6 @@ D2-
 {
     specie
     {
-        nMoles          1;
         molWeight       4.02874;
     }
     thermodynamics
@@ -23564,7 +22093,6 @@ ND2
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0349;
     }
     thermodynamics
@@ -23580,7 +22108,6 @@ C3H4O2_AcrylAcid
 {
     specie
     {
-        nMoles          1;
         molWeight       72.0641;
     }
     thermodynamics
@@ -23596,7 +22123,6 @@ CHFClBr
 {
     specie
     {
-        nMoles          1;
         molWeight       147.371;
     }
     thermodynamics
@@ -23612,7 +22138,6 @@ AlCl
 {
     specie
     {
-        nMoles          1;
         molWeight       62.4345;
     }
     thermodynamics
@@ -23628,7 +22153,6 @@ C3H6O__OXETANE
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0807;
     }
     thermodynamics
@@ -23644,7 +22168,6 @@ PO-
 {
     specie
     {
-        nMoles          1;
         molWeight       46.9737;
     }
     thermodynamics
@@ -23660,7 +22183,6 @@ C4F2
 {
     specie
     {
-        nMoles          1;
         molWeight       86.0414;
     }
     thermodynamics
@@ -23676,7 +22198,6 @@ I2_gas
 {
     specie
     {
-        nMoles          1;
         molWeight       253.809;
     }
     thermodynamics
@@ -23692,7 +22213,6 @@ CH3C(CH3)2CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1514;
     }
     thermodynamics
@@ -23708,7 +22228,6 @@ GeCl2____triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       143.496;
     }
     thermodynamics
@@ -23724,7 +22243,6 @@ Cl2O7
 {
     specie
     {
-        nMoles          1;
         molWeight       182.902;
     }
     thermodynamics
@@ -23740,7 +22258,6 @@ BrBrO_Br-Br-O
 {
     specie
     {
-        nMoles          1;
         molWeight       175.801;
     }
     thermodynamics
@@ -23756,7 +22273,6 @@ C8H7N__o-ToluoNitr
 {
     specie
     {
-        nMoles          1;
         molWeight       117.152;
     }
     thermodynamics
@@ -23772,7 +22288,6 @@ ClNC_biradical
 {
     specie
     {
-        nMoles          1;
         molWeight       61.4709;
     }
     thermodynamics
@@ -23788,7 +22303,6 @@ C10H__linear
 {
     specie
     {
-        nMoles          1;
         molWeight       121.119;
     }
     thermodynamics
@@ -23804,7 +22318,6 @@ K2O2(g)
 {
     specie
     {
-        nMoles          1;
         molWeight       110.203;
     }
     thermodynamics
@@ -23820,7 +22333,6 @@ NITRO-PENTANE
 {
     specie
     {
-        nMoles          1;
         molWeight       117.149;
     }
     thermodynamics
@@ -23836,7 +22348,6 @@ Ar
 {
     specie
     {
-        nMoles          1;
         molWeight       39.948;
     }
     thermodynamics
@@ -23852,7 +22363,6 @@ I-
 {
     specie
     {
-        nMoles          1;
         molWeight       126.905;
     }
     thermodynamics
@@ -23868,7 +22378,6 @@ C4H9O2_tert-Buty
 {
     specie
     {
-        nMoles          1;
         molWeight       89.1151;
     }
     thermodynamics
@@ -23884,7 +22393,6 @@ C24H18__1,3,5_TPB
 {
     specie
     {
-        nMoles          1;
         molWeight       306.411;
     }
     thermodynamics
@@ -23900,7 +22408,6 @@ C<GR>
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0112;
     }
     thermodynamics
@@ -23916,7 +22423,6 @@ Na2O(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       61.979;
     }
     thermodynamics
@@ -23932,7 +22438,6 @@ FeCl2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       126.753;
     }
     thermodynamics
@@ -23948,7 +22453,6 @@ Na2O(c)
 {
     specie
     {
-        nMoles          1;
         molWeight       61.979;
     }
     thermodynamics
@@ -23964,7 +22468,6 @@ CF3-CHCl2__HF123
 {
     specie
     {
-        nMoles          1;
         molWeight       152.931;
     }
     thermodynamics
@@ -23980,7 +22483,6 @@ C5H5_cyPentadiene
 {
     specie
     {
-        nMoles          1;
         molWeight       65.0956;
     }
     thermodynamics
@@ -23996,7 +22498,6 @@ MgCO3(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       84.3213;
     }
     thermodynamics
@@ -24012,7 +22513,6 @@ C6H12O_Oxepane
 {
     specie
     {
-        nMoles          1;
         molWeight       100.162;
     }
     thermodynamics
@@ -24028,7 +22528,6 @@ C6D6
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1515;
     }
     thermodynamics
@@ -24044,7 +22543,6 @@ C2D2O_Ketene-D2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0499;
     }
     thermodynamics
@@ -24060,7 +22558,6 @@ Zn(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       65.37;
     }
     thermodynamics
@@ -24076,7 +22573,6 @@ C3H7_i-propyl
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0892;
     }
     thermodynamics
@@ -24092,7 +22588,6 @@ AlOH
 {
     specie
     {
-        nMoles          1;
         molWeight       43.9889;
     }
     thermodynamics
@@ -24108,7 +22603,6 @@ MgTiO3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       120.21;
     }
     thermodynamics
@@ -24124,7 +22618,6 @@ H3PO
 {
     specie
     {
-        nMoles          1;
         molWeight       49.9971;
     }
     thermodynamics
@@ -24140,7 +22633,6 @@ Pt-_Platinum_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       195.091;
     }
     thermodynamics
@@ -24156,7 +22648,6 @@ CH2BrI
 {
     specie
     {
-        nMoles          1;
         molWeight       220.832;
     }
     thermodynamics
@@ -24172,7 +22663,6 @@ C6H11__1-ene-6-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -24188,7 +22678,6 @@ SF5-
 {
     specie
     {
-        nMoles          1;
         molWeight       127.057;
     }
     thermodynamics
@@ -24204,7 +22693,6 @@ C4H6O_2.5-DHFuran
 {
     specie
     {
-        nMoles          1;
         molWeight       70.0918;
     }
     thermodynamics
@@ -24220,7 +22708,6 @@ C5H3+_CyPentTriene
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0791;
     }
     thermodynamics
@@ -24236,7 +22723,6 @@ Br2-
 {
     specie
     {
-        nMoles          1;
         molWeight       159.802;
     }
     thermodynamics
@@ -24252,7 +22738,6 @@ Fe3O4(L)_Liquid
 {
     specie
     {
-        nMoles          1;
         molWeight       231.539;
     }
     thermodynamics
@@ -24268,7 +22753,6 @@ C8H18,n-octane
 {
     specie
     {
-        nMoles          1;
         molWeight       114.233;
     }
     thermodynamics
@@ -24284,7 +22768,6 @@ C12H6Cl4O2
 {
     specie
     {
-        nMoles          1;
         molWeight       323.992;
     }
     thermodynamics
@@ -24300,7 +22783,6 @@ CF2+
 {
     specie
     {
-        nMoles          1;
         molWeight       50.0074;
     }
     thermodynamics
@@ -24316,7 +22798,6 @@ N-C10H22_DECANE
 {
     specie
     {
-        nMoles          1;
         molWeight       142.287;
     }
     thermodynamics
@@ -24332,7 +22813,6 @@ S(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       32.064;
     }
     thermodynamics
@@ -24348,7 +22828,6 @@ Mo
 {
     specie
     {
-        nMoles          1;
         molWeight       95.94;
     }
     thermodynamics
@@ -24364,7 +22843,6 @@ C10H9_1-methylen
 {
     specie
     {
-        nMoles          1;
         molWeight       129.183;
     }
     thermodynamics
@@ -24380,7 +22858,6 @@ HCN+
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0253;
     }
     thermodynamics
@@ -24396,7 +22873,6 @@ C12H10_biphenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       154.214;
     }
     thermodynamics
@@ -24412,7 +22888,6 @@ NH4Cl(III)
 {
     specie
     {
-        nMoles          1;
         molWeight       53.4916;
     }
     thermodynamics
@@ -24428,7 +22903,6 @@ SO2FCl
 {
     specie
     {
-        nMoles          1;
         molWeight       118.514;
     }
     thermodynamics
@@ -24444,7 +22918,6 @@ CH3N2_cy(-CH2N=N*-
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0485;
     }
     thermodynamics
@@ -24460,7 +22933,6 @@ C3H5O__CH3C(O)CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       57.0727;
     }
     thermodynamics
@@ -24476,7 +22948,6 @@ C(NO2)4
 {
     specie
     {
-        nMoles          1;
         molWeight       196.033;
     }
     thermodynamics
@@ -24492,7 +22963,6 @@ NH2NO2_NITRAMIDE
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0281;
     }
     thermodynamics
@@ -24508,7 +22978,6 @@ FO2+___F-O-O+
 {
     specie
     {
-        nMoles          1;
         molWeight       50.9967;
     }
     thermodynamics
@@ -24524,7 +22993,6 @@ HNCN_Cyanamide
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0325;
     }
     thermodynamics
@@ -24540,7 +23008,6 @@ C5H12O_2-Pentanol
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1508;
     }
     thermodynamics
@@ -24556,7 +23023,6 @@ ZrCl4________GAS
 {
     specie
     {
-        nMoles          1;
         molWeight       233.032;
     }
     thermodynamics
@@ -24572,7 +23038,6 @@ C5H8_1,3_Pentadi
 {
     specie
     {
-        nMoles          1;
         molWeight       68.1195;
     }
     thermodynamics
@@ -24588,7 +23053,6 @@ o-C6H4I_radical
 {
     specie
     {
-        nMoles          1;
         molWeight       203.003;
     }
     thermodynamics
@@ -24604,7 +23068,6 @@ C10H22(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       142.287;
     }
     thermodynamics
@@ -24620,7 +23083,6 @@ C7H5(NO2)3_(TNT)
 {
     specie
     {
-        nMoles          1;
         molWeight       227.134;
     }
     thermodynamics
@@ -24636,7 +23098,6 @@ C2H5Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       64.5152;
     }
     thermodynamics
@@ -24652,7 +23113,6 @@ CH3O__METHOXY_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -24668,7 +23128,6 @@ C20H12_Benzopyrene
 {
     specie
     {
-        nMoles          1;
         molWeight       252.319;
     }
     thermodynamics
@@ -24684,7 +23143,6 @@ CH3C
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0462;
     }
     thermodynamics
@@ -24700,7 +23158,6 @@ CH2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       49.4801;
     }
     thermodynamics
@@ -24716,7 +23173,6 @@ N2F4
 {
     specie
     {
-        nMoles          1;
         molWeight       104.007;
     }
     thermodynamics
@@ -24732,7 +23188,6 @@ C6H8__1,3-Cycloh
 {
     specie
     {
-        nMoles          1;
         molWeight       80.1307;
     }
     thermodynamics
@@ -24748,7 +23203,6 @@ C6H3N3O7_Picricaci
 {
     specie
     {
-        nMoles          1;
         molWeight       229.107;
     }
     thermodynamics
@@ -24764,7 +23218,6 @@ C20H40O2_methyna
 {
     specie
     {
-        nMoles          1;
         molWeight       312.541;
     }
     thermodynamics
@@ -24780,7 +23233,6 @@ N3H+
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0275;
     }
     thermodynamics
@@ -24796,7 +23248,6 @@ BH3
 {
     specie
     {
-        nMoles          1;
         molWeight       13.8349;
     }
     thermodynamics
@@ -24812,7 +23263,6 @@ CH2NO__H2C=N-O*
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0332;
     }
     thermodynamics
@@ -24828,7 +23278,6 @@ CI3
 {
     specie
     {
-        nMoles          1;
         molWeight       392.724;
     }
     thermodynamics
@@ -24844,7 +23293,6 @@ NCN
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0246;
     }
     thermodynamics
@@ -24860,7 +23308,6 @@ CHBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       172.821;
     }
     thermodynamics
@@ -24876,7 +23323,6 @@ CHO2-_Formyloxy
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0185;
     }
     thermodynamics
@@ -24892,7 +23338,6 @@ CH3-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0356;
     }
     thermodynamics
@@ -24908,7 +23353,6 @@ MgAl2O4(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       142.273;
     }
     thermodynamics
@@ -24924,7 +23368,6 @@ C20H12_Perylene
 {
     specie
     {
-        nMoles          1;
         molWeight       252.319;
     }
     thermodynamics
@@ -24940,7 +23383,6 @@ HDO2
 {
     specie
     {
-        nMoles          1;
         molWeight       35.0209;
     }
     thermodynamics
@@ -24956,7 +23398,6 @@ CH5N3_guanidin
 {
     specie
     {
-        nMoles          1;
         molWeight       59.0711;
     }
     thermodynamics
@@ -24972,7 +23413,6 @@ C6H9_Cy_C5H7-4CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       81.1386;
     }
     thermodynamics
@@ -24988,7 +23428,6 @@ C12H24O2_n-acid
 {
     specie
     {
-        nMoles          1;
         molWeight       200.324;
     }
     thermodynamics
@@ -25004,7 +23443,6 @@ C6H9_Cy_C5H6-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       81.1386;
     }
     thermodynamics
@@ -25020,7 +23458,6 @@ CrO2
 {
     specie
     {
-        nMoles          1;
         molWeight       83.9948;
     }
     thermodynamics
@@ -25036,7 +23473,6 @@ C7H14,1-heptene
 {
     specie
     {
-        nMoles          1;
         molWeight       98.1896;
     }
     thermodynamics
@@ -25052,7 +23488,6 @@ MUSTARD_S(CH2CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       159.078;
     }
     thermodynamics
@@ -25068,7 +23503,6 @@ C6H11_3-ene-6yl
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -25084,7 +23518,6 @@ C12H9,o-bipheny
 {
     specie
     {
-        nMoles          1;
         molWeight       153.206;
     }
     thermodynamics
@@ -25100,7 +23533,6 @@ ClF
 {
     specie
     {
-        nMoles          1;
         molWeight       54.4514;
     }
     thermodynamics
@@ -25116,7 +23548,6 @@ D+
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01356;
     }
     thermodynamics
@@ -25132,7 +23563,6 @@ HOCl+_Hypochloro
 {
     specie
     {
-        nMoles          1;
         molWeight       52.4598;
     }
     thermodynamics
@@ -25148,7 +23578,6 @@ N2O+
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0123;
     }
     thermodynamics
@@ -25164,7 +23593,6 @@ ClCN
 {
     specie
     {
-        nMoles          1;
         molWeight       61.4709;
     }
     thermodynamics
@@ -25180,7 +23608,6 @@ SO2
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0628;
     }
     thermodynamics
@@ -25196,7 +23623,6 @@ ClC3H4
 {
     specie
     {
-        nMoles          1;
         molWeight       75.5183;
     }
     thermodynamics
@@ -25212,7 +23638,6 @@ C14H9_3-Phenantr
 {
     specie
     {
-        nMoles          1;
         molWeight       177.228;
     }
     thermodynamics
@@ -25228,7 +23653,6 @@ BiI
 {
     specie
     {
-        nMoles          1;
         molWeight       335.884;
     }
     thermodynamics
@@ -25244,7 +23668,6 @@ C6H6_3,4-Dimethy
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -25260,7 +23683,6 @@ CBr2O
 {
     specie
     {
-        nMoles          1;
         molWeight       187.812;
     }
     thermodynamics
@@ -25276,7 +23698,6 @@ CH_quartet
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0191;
     }
     thermodynamics
@@ -25292,7 +23713,6 @@ C7H7_Quadricy_Ap.
 {
     specie
     {
-        nMoles          1;
         molWeight       91.1338;
     }
     thermodynamics
@@ -25308,7 +23728,6 @@ C7H16_NeoHeptane
 {
     specie
     {
-        nMoles          1;
         molWeight       100.206;
     }
     thermodynamics
@@ -25324,7 +23743,6 @@ C3H3I_HCC-CH2I
 {
     specie
     {
-        nMoles          1;
         molWeight       165.962;
     }
     thermodynamics
@@ -25340,7 +23758,6 @@ C6H6___Benzvalen
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -25356,7 +23773,6 @@ C6H8_DIHYDROBENZVA
 {
     specie
     {
-        nMoles          1;
         molWeight       80.1307;
     }
     thermodynamics
@@ -25372,7 +23788,6 @@ C3F___Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       55.0319;
     }
     thermodynamics
@@ -25388,7 +23803,6 @@ C2HF3__CHF=CF2
 {
     specie
     {
-        nMoles          1;
         molWeight       82.0255;
     }
     thermodynamics
@@ -25404,7 +23818,6 @@ D2+
 {
     specie
     {
-        nMoles          1;
         molWeight       4.02766;
     }
     thermodynamics
@@ -25420,7 +23833,6 @@ FCO__(CFObyCOF)
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0089;
     }
     thermodynamics
@@ -25436,7 +23848,6 @@ HBr+_Hydrogen_Br
 {
     specie
     {
-        nMoles          1;
         molWeight       80.9083;
     }
     thermodynamics
@@ -25452,7 +23863,6 @@ NOF
 {
     specie
     {
-        nMoles          1;
         molWeight       49.0045;
     }
     thermodynamics
@@ -25468,7 +23878,6 @@ S-
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0645;
     }
     thermodynamics
@@ -25484,7 +23893,6 @@ C5H3_1,4DIYNE3YL
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0797;
     }
     thermodynamics
@@ -25500,7 +23908,6 @@ C2HF5
 {
     specie
     {
-        nMoles          1;
         molWeight       120.022;
     }
     thermodynamics
@@ -25516,7 +23923,6 @@ CFO-
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0095;
     }
     thermodynamics
@@ -25532,7 +23938,6 @@ C20H38O2_Gondoicac
 {
     specie
     {
-        nMoles          1;
         molWeight       310.525;
     }
     thermodynamics
@@ -25548,7 +23953,6 @@ PbI
 {
     specie
     {
-        nMoles          1;
         molWeight       334.094;
     }
     thermodynamics
@@ -25564,7 +23968,6 @@ DO2
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0129;
     }
     thermodynamics
@@ -25580,7 +23983,6 @@ CH3I+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       141.939;
     }
     thermodynamics
@@ -25596,7 +23998,6 @@ B2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       53.6208;
     }
     thermodynamics
@@ -25612,7 +24013,6 @@ C2H5NO2_NitroEth
 {
     specie
     {
-        nMoles          1;
         molWeight       75.0677;
     }
     thermodynamics
@@ -25628,7 +24028,6 @@ DBr
 {
     specie
     {
-        nMoles          1;
         molWeight       81.915;
     }
     thermodynamics
@@ -25644,7 +24043,6 @@ SnH3
 {
     specie
     {
-        nMoles          1;
         molWeight       121.714;
     }
     thermodynamics
@@ -25660,7 +24058,6 @@ NO-
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0066;
     }
     thermodynamics
@@ -25676,7 +24073,6 @@ C3H3Cl_Chloro-Al
 {
     specie
     {
-        nMoles          1;
         molWeight       74.5104;
     }
     thermodynamics
@@ -25692,7 +24088,6 @@ BFCl
 {
     specie
     {
-        nMoles          1;
         molWeight       65.2624;
     }
     thermodynamics
@@ -25708,7 +24103,6 @@ C8H6__C6H5CCH
 {
     specie
     {
-        nMoles          1;
         molWeight       102.137;
     }
     thermodynamics
@@ -25724,7 +24118,6 @@ H2CN2_cy(-CH2N=N-)
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0405;
     }
     thermodynamics
@@ -25740,7 +24133,6 @@ CHD3_Methane-D3
 {
     specie
     {
-        nMoles          1;
         molWeight       19.0614;
     }
     thermodynamics
@@ -25756,7 +24148,6 @@ H3PO4
 {
     specie
     {
-        nMoles          1;
         molWeight       97.9953;
     }
     thermodynamics
@@ -25772,7 +24163,6 @@ C2HO__HCC=O+
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0291;
     }
     thermodynamics
@@ -25788,7 +24178,6 @@ C6H5OOH_hydroper
 {
     specie
     {
-        nMoles          1;
         molWeight       110.114;
     }
     thermodynamics
@@ -25804,7 +24193,6 @@ C7H8__CyTriEne
 {
     specie
     {
-        nMoles          1;
         molWeight       92.1418;
     }
     thermodynamics
@@ -25820,7 +24208,6 @@ C16H9_4-Pyrenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       201.25;
     }
     thermodynamics
@@ -25836,7 +24223,6 @@ C5H5N__1-Cyano
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1023;
     }
     thermodynamics
@@ -25852,7 +24238,6 @@ CH3CN_Methyl-Cya
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0529;
     }
     thermodynamics
@@ -25868,7 +24253,6 @@ T-C4H10O_T-Butan
 {
     specie
     {
-        nMoles          1;
         molWeight       74.1237;
     }
     thermodynamics
@@ -25884,7 +24268,6 @@ C2H6
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0701;
     }
     thermodynamics
@@ -25900,7 +24283,6 @@ C12H22O11_Cellobi
 {
     specie
     {
-        nMoles          1;
         molWeight       342.303;
     }
     thermodynamics
@@ -25916,7 +24298,6 @@ s-1-2-C10H10
 {
     specie
     {
-        nMoles          1;
         molWeight       130.191;
     }
     thermodynamics
@@ -25932,7 +24313,6 @@ NOF3
 {
     specie
     {
-        nMoles          1;
         molWeight       87.0013;
     }
     thermodynamics
@@ -25948,7 +24328,6 @@ C2H4F_beta-Fluor
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0526;
     }
     thermodynamics
@@ -25964,7 +24343,6 @@ Al(OH)3
 {
     specie
     {
-        nMoles          1;
         molWeight       78.0036;
     }
     thermodynamics
@@ -25980,7 +24358,6 @@ NCCH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       57.0523;
     }
     thermodynamics
@@ -25996,7 +24373,6 @@ C9H10_Methyl_styre
 {
     specie
     {
-        nMoles          1;
         molWeight       118.18;
     }
     thermodynamics
@@ -26012,7 +24388,6 @@ H6F6
 {
     specie
     {
-        nMoles          1;
         molWeight       120.038;
     }
     thermodynamics
@@ -26028,7 +24403,6 @@ GeCl2____singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       143.496;
     }
     thermodynamics
@@ -26044,7 +24418,6 @@ C3H6_cyclo-
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0813;
     }
     thermodynamics
@@ -26060,7 +24433,6 @@ AlO+
 {
     specie
     {
-        nMoles          1;
         molWeight       42.9804;
     }
     thermodynamics
@@ -26076,7 +24448,6 @@ SF2
 {
     specie
     {
-        nMoles          1;
         molWeight       70.0608;
     }
     thermodynamics
@@ -26092,7 +24463,6 @@ NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0055;
     }
     thermodynamics
@@ -26108,7 +24478,6 @@ C3H5N_Propionitryl
 {
     specie
     {
-        nMoles          1;
         molWeight       55.08;
     }
     thermodynamics
@@ -26124,7 +24493,6 @@ BBr3
 {
     specie
     {
-        nMoles          1;
         molWeight       250.514;
     }
     thermodynamics
@@ -26140,7 +24508,6 @@ C14H28O2_Ethyl_D
 {
     specie
     {
-        nMoles          1;
         molWeight       228.378;
     }
     thermodynamics
@@ -26156,7 +24523,6 @@ NaO2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       54.9886;
     }
     thermodynamics
@@ -26172,7 +24538,6 @@ HOF
 {
     specie
     {
-        nMoles          1;
         molWeight       36.0058;
     }
     thermodynamics
@@ -26188,7 +24553,6 @@ C4H8O_DiMethylOxyr
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1078;
     }
     thermodynamics
@@ -26204,7 +24568,6 @@ C5H9_1Buten3M3yl
 {
     specie
     {
-        nMoles          1;
         molWeight       69.1275;
     }
     thermodynamics
@@ -26220,7 +24583,6 @@ C(NO)_cy
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0173;
     }
     thermodynamics
@@ -26236,7 +24598,6 @@ C10D8__Naphthale
 {
     specie
     {
-        nMoles          1;
         molWeight       136.224;
     }
     thermodynamics
@@ -26252,7 +24613,6 @@ H2O(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -26268,7 +24628,6 @@ CBr2ClF___11B3
 {
     specie
     {
-        nMoles          1;
         molWeight       226.264;
     }
     thermodynamics
@@ -26284,7 +24643,6 @@ CH3N2*___CH3-N=N
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0485;
     }
     thermodynamics
@@ -26300,7 +24658,6 @@ C2N___N(CC)_cy
 {
     specie
     {
-        nMoles          1;
         molWeight       38.029;
     }
     thermodynamics
@@ -26316,7 +24673,6 @@ C3H2N_CH=CHCN
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0561;
     }
     thermodynamics
@@ -26332,7 +24688,6 @@ CH3O2_Methyl_Per
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0339;
     }
     thermodynamics
@@ -26348,7 +24703,6 @@ C14H28_Cy4Decane
 {
     specie
     {
-        nMoles          1;
         molWeight       196.379;
     }
     thermodynamics
@@ -26364,7 +24718,6 @@ CH2OOCH3
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0689;
     }
     thermodynamics
@@ -26380,7 +24733,6 @@ HNOH+_trans_&_Eq
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0215;
     }
     thermodynamics
@@ -26396,7 +24748,6 @@ Bi(CH3)3
 {
     specie
     {
-        nMoles          1;
         molWeight       254.085;
     }
     thermodynamics
@@ -26412,7 +24763,6 @@ C23H46_1-Tricosen
 {
     specie
     {
-        nMoles          1;
         molWeight       322.623;
     }
     thermodynamics
@@ -26428,7 +24778,6 @@ C3H2(3)_*HC=C=CH*
 {
     specie
     {
-        nMoles          1;
         molWeight       38.0494;
     }
     thermodynamics
@@ -26444,7 +24793,6 @@ FC2H4OH__ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       64.06;
     }
     thermodynamics
@@ -26460,7 +24808,6 @@ CH3F+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0329;
     }
     thermodynamics
@@ -26476,7 +24823,6 @@ Ge-
 {
     specie
     {
-        nMoles          1;
         molWeight       72.5905;
     }
     thermodynamics
@@ -26492,7 +24838,6 @@ C6H2Cl3OOH__Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       213.449;
     }
     thermodynamics
@@ -26508,7 +24853,6 @@ N2O3
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0116;
     }
     thermodynamics
@@ -26524,7 +24868,6 @@ Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       35.453;
     }
     thermodynamics
@@ -26540,7 +24883,6 @@ Cl2C=C=CCl(O*)
 {
     specie
     {
-        nMoles          1;
         molWeight       158.392;
     }
     thermodynamics
@@ -26556,7 +24898,6 @@ NO3-
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0054;
     }
     thermodynamics
@@ -26572,7 +24913,6 @@ CrO
 {
     specie
     {
-        nMoles          1;
         molWeight       67.9954;
     }
     thermodynamics
@@ -26588,7 +24928,6 @@ AlCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       133.341;
     }
     thermodynamics
@@ -26604,7 +24943,6 @@ C4H3_E-1yl_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       51.0685;
     }
     thermodynamics
@@ -26620,7 +24958,6 @@ COCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       98.9166;
     }
     thermodynamics
@@ -26636,7 +24973,6 @@ Pd(liq)
 {
     specie
     {
-        nMoles          1;
         molWeight       106.4;
     }
     thermodynamics
@@ -26652,7 +24988,6 @@ C10H13_C5H7-C5H6*
 {
     specie
     {
-        nMoles          1;
         molWeight       133.215;
     }
     thermodynamics
@@ -26668,7 +25003,6 @@ C10H19_1-decenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       139.263;
     }
     thermodynamics
@@ -26684,7 +25018,6 @@ C3H6O_Propionald
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0807;
     }
     thermodynamics
@@ -26700,7 +25033,6 @@ CH3N_Rad_Triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0418;
     }
     thermodynamics
@@ -26716,7 +25048,6 @@ C5H4_1,4-DIYNE
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0876;
     }
     thermodynamics
@@ -26732,7 +25063,6 @@ F2O___F-O-F
 {
     specie
     {
-        nMoles          1;
         molWeight       53.9962;
     }
     thermodynamics
@@ -26748,7 +25078,6 @@ C30H10_Half-Buck
 {
     specie
     {
-        nMoles          1;
         molWeight       370.414;
     }
     thermodynamics
@@ -26764,7 +25093,6 @@ C3H3F3_CF3-CH=CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       96.0526;
     }
     thermodynamics
@@ -26780,7 +25108,6 @@ FCN+___ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0157;
     }
     thermodynamics
@@ -26796,7 +25123,6 @@ C5H4O_Cy_CPD-ONE
 {
     specie
     {
-        nMoles          1;
         molWeight       80.087;
     }
     thermodynamics
@@ -26812,7 +25138,6 @@ C10H7_C6H4*-CH=CCH
 {
     specie
     {
-        nMoles          1;
         molWeight       127.167;
     }
     thermodynamics
@@ -26828,7 +25153,6 @@ BrO+
 {
     specie
     {
-        nMoles          1;
         molWeight       95.8998;
     }
     thermodynamics
@@ -26844,7 +25168,6 @@ C4H4S_Thiophene
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1405;
     }
     thermodynamics
@@ -26860,7 +25183,6 @@ PbBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       366.992;
     }
     thermodynamics
@@ -26876,7 +25198,6 @@ H3+_TRIHYDROGEN
 {
     specie
     {
-        nMoles          1;
         molWeight       3.02337;
     }
     thermodynamics
@@ -26892,7 +25213,6 @@ C10H20_2-decene-
 {
     specie
     {
-        nMoles          1;
         molWeight       140.271;
     }
     thermodynamics
@@ -26908,7 +25228,6 @@ s-1,2-C2H4(NO2)2
 {
     specie
     {
-        nMoles          1;
         molWeight       120.065;
     }
     thermodynamics
@@ -26924,7 +25243,6 @@ PT+_Platinum_cati
 {
     specie
     {
-        nMoles          1;
         molWeight       195.089;
     }
     thermodynamics
@@ -26940,7 +25258,6 @@ H2S
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0799;
     }
     thermodynamics
@@ -26956,7 +25273,6 @@ C3H5O__CH3CH2*CO
 {
     specie
     {
-        nMoles          1;
         molWeight       57.0727;
     }
     thermodynamics
@@ -26972,7 +25288,6 @@ CH2OH_RADICAL
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -26988,7 +25303,6 @@ NiS2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       122.838;
     }
     thermodynamics
@@ -27004,7 +25318,6 @@ Mg2SiO4(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       140.708;
     }
     thermodynamics
@@ -27020,7 +25333,6 @@ N-C9H20_NONANE
 {
     specie
     {
-        nMoles          1;
         molWeight       128.26;
     }
     thermodynamics
@@ -27036,7 +25348,6 @@ C2H2Cl3_1,1,1-Tr
 {
     specie
     {
-        nMoles          1;
         molWeight       132.397;
     }
     thermodynamics
@@ -27052,7 +25363,6 @@ NiS(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       90.774;
     }
     thermodynamics
@@ -27068,7 +25378,6 @@ HO2+
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0062;
     }
     thermodynamics
@@ -27084,7 +25393,6 @@ SO
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0634;
     }
     thermodynamics
@@ -27100,7 +25408,6 @@ CCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       82.9172;
     }
     thermodynamics
@@ -27116,7 +25423,6 @@ BrC2H4OH__ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       124.962;
     }
     thermodynamics
@@ -27132,7 +25438,6 @@ C8H9_DiMethylPh_R
 {
     specie
     {
-        nMoles          1;
         molWeight       105.161;
     }
     thermodynamics
@@ -27148,7 +25453,6 @@ CH2O-__CH**-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       30.027;
     }
     thermodynamics
@@ -27164,7 +25468,6 @@ BiF
 {
     specie
     {
-        nMoles          1;
         molWeight       227.978;
     }
     thermodynamics
@@ -27180,7 +25483,6 @@ CrN(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       66.0027;
     }
     thermodynamics
@@ -27196,7 +25498,6 @@ MgI2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       278.121;
     }
     thermodynamics
@@ -27212,7 +25513,6 @@ s-1-C10H7-CH*-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       155.221;
     }
     thermodynamics
@@ -27228,7 +25528,6 @@ CuF2
 {
     specie
     {
-        nMoles          1;
         molWeight       101.537;
     }
     thermodynamics
@@ -27244,7 +25543,6 @@ CH3NO__O=CH-NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0412;
     }
     thermodynamics
@@ -27260,7 +25558,6 @@ C4H5__1,3-Butadi
 {
     specie
     {
-        nMoles          1;
         molWeight       53.0845;
     }
     thermodynamics
@@ -27276,7 +25573,6 @@ MgCl2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       95.218;
     }
     thermodynamics
@@ -27292,7 +25588,6 @@ C2H3-
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0468;
     }
     thermodynamics
@@ -27308,7 +25603,6 @@ CH3+
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0345;
     }
     thermodynamics
@@ -27324,7 +25618,6 @@ AlBr3
 {
     specie
     {
-        nMoles          1;
         molWeight       266.684;
     }
     thermodynamics
@@ -27340,7 +25633,6 @@ C3H6O__CyC3H5-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0807;
     }
     thermodynamics
@@ -27356,7 +25648,6 @@ C11H24O_1-undeca
 {
     specie
     {
-        nMoles          1;
         molWeight       172.313;
     }
     thermodynamics
@@ -27372,7 +25663,6 @@ C16H31O2_palmita
 {
     specie
     {
-        nMoles          1;
         molWeight       255.424;
     }
     thermodynamics
@@ -27388,7 +25678,6 @@ C6F14__FC_51-14
 {
     specie
     {
-        nMoles          1;
         molWeight       338.044;
     }
     thermodynamics
@@ -27404,7 +25693,6 @@ C12_linear_Triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       144.134;
     }
     thermodynamics
@@ -27420,7 +25708,6 @@ C22H46___docosane
 {
     specie
     {
-        nMoles          1;
         molWeight       310.612;
     }
     thermodynamics
@@ -27436,7 +25723,6 @@ HPO
 {
     specie
     {
-        nMoles          1;
         molWeight       47.9812;
     }
     thermodynamics
@@ -27452,7 +25738,6 @@ FeOCl(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       107.299;
     }
     thermodynamics
@@ -27468,7 +25753,6 @@ C5_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0558;
     }
     thermodynamics
@@ -27484,7 +25768,6 @@ Cl2C=C=CH(O*)
 {
     specie
     {
-        nMoles          1;
         molWeight       123.947;
     }
     thermodynamics
@@ -27500,7 +25783,6 @@ P2O3
 {
     specie
     {
-        nMoles          1;
         molWeight       109.946;
     }
     thermodynamics
@@ -27516,7 +25798,6 @@ C10H7_Naphtyl_rad
 {
     specie
     {
-        nMoles          1;
         molWeight       127.167;
     }
     thermodynamics
@@ -27532,7 +25813,6 @@ CHF-
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0181;
     }
     thermodynamics
@@ -27548,7 +25828,6 @@ C10H21_2-decyl
 {
     specie
     {
-        nMoles          1;
         molWeight       141.279;
     }
     thermodynamics
@@ -27564,7 +25843,6 @@ O3
 {
     specie
     {
-        nMoles          1;
         molWeight       47.9982;
     }
     thermodynamics
@@ -27580,7 +25858,6 @@ NOO
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0055;
     }
     thermodynamics
@@ -27596,7 +25873,6 @@ PO
 {
     specie
     {
-        nMoles          1;
         molWeight       46.9732;
     }
     thermodynamics
@@ -27612,7 +25888,6 @@ BF3
 {
     specie
     {
-        nMoles          1;
         molWeight       67.8062;
     }
     thermodynamics
@@ -27628,7 +25903,6 @@ C3H8O3_Glycerol
 {
     specie
     {
-        nMoles          1;
         molWeight       92.0954;
     }
     thermodynamics
@@ -27644,7 +25918,6 @@ T2O__(3H2O)
 {
     specie
     {
-        nMoles          1;
         molWeight       111.799;
     }
     thermodynamics
@@ -27660,7 +25933,6 @@ o-C6H3I_Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       201.995;
     }
     thermodynamics
@@ -27676,7 +25948,6 @@ CH3NH2-_anion__H
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0582;
     }
     thermodynamics
@@ -27692,7 +25963,6 @@ CHF2
 {
     specie
     {
-        nMoles          1;
         molWeight       51.0159;
     }
     thermodynamics
@@ -27708,7 +25978,6 @@ SbH3
 {
     specie
     {
-        nMoles          1;
         molWeight       124.774;
     }
     thermodynamics
@@ -27724,7 +25993,6 @@ C19H38O2_Stearate
 {
     specie
     {
-        nMoles          1;
         molWeight       298.514;
     }
     thermodynamics
@@ -27740,7 +26008,6 @@ Fe(CO)5(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       195.9;
     }
     thermodynamics
@@ -27756,7 +26023,6 @@ C5H6O__4H-Pyran
 {
     specie
     {
-        nMoles          1;
         molWeight       82.103;
     }
     thermodynamics
@@ -27772,7 +26038,6 @@ CrO3
 {
     specie
     {
-        nMoles          1;
         molWeight       99.9942;
     }
     thermodynamics
@@ -27788,7 +26053,6 @@ BOCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       97.7164;
     }
     thermodynamics
@@ -27804,7 +26068,6 @@ Fe2Cl4
 {
     specie
     {
-        nMoles          1;
         molWeight       253.506;
     }
     thermodynamics
@@ -27820,7 +26083,6 @@ C3H7_n-propyl
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0892;
     }
     thermodynamics
@@ -27836,7 +26098,6 @@ CH2D2_Methane-D2
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0553;
     }
     thermodynamics
@@ -27852,7 +26113,6 @@ C7H12__Cy-heptene
 {
     specie
     {
-        nMoles          1;
         molWeight       96.1737;
     }
     thermodynamics
@@ -27868,7 +26128,6 @@ FeS(c)
 {
     specie
     {
-        nMoles          1;
         molWeight       87.911;
     }
     thermodynamics
@@ -27884,7 +26143,6 @@ CH_excited_B2Sig
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0191;
     }
     thermodynamics
@@ -27900,7 +26158,6 @@ C3H7I_2-IodoProp
 {
     specie
     {
-        nMoles          1;
         molWeight       169.994;
     }
     thermodynamics
@@ -27916,7 +26173,6 @@ PD3_Phosphine-D3
 {
     specie
     {
-        nMoles          1;
         molWeight       37.0161;
     }
     thermodynamics
@@ -27932,7 +26188,6 @@ C14H9_2-Phenantr
 {
     specie
     {
-        nMoles          1;
         molWeight       177.228;
     }
     thermodynamics
@@ -27948,7 +26203,6 @@ CH2-NH-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0768;
     }
     thermodynamics
@@ -27964,7 +26218,6 @@ C4F10
 {
     specie
     {
-        nMoles          1;
         molWeight       238.029;
     }
     thermodynamics
@@ -27980,7 +26233,6 @@ C2H4ClF_1,1-Chlo
 {
     specie
     {
-        nMoles          1;
         molWeight       82.5056;
     }
     thermodynamics
@@ -27996,7 +26248,6 @@ C18H29O2_Linolenat
 {
     specie
     {
-        nMoles          1;
         molWeight       277.431;
     }
     thermodynamics
@@ -28012,7 +26263,6 @@ N2+
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0129;
     }
     thermodynamics
@@ -28028,7 +26278,6 @@ He+
 {
     specie
     {
-        nMoles          1;
         molWeight       4.00206;
     }
     thermodynamics
@@ -28044,7 +26293,6 @@ C16H32O2_Palmitiac
 {
     specie
     {
-        nMoles          1;
         molWeight       256.432;
     }
     thermodynamics
@@ -28060,7 +26308,6 @@ SO2F2
 {
     specie
     {
-        nMoles          1;
         molWeight       102.06;
     }
     thermodynamics
@@ -28076,7 +26323,6 @@ P4O10(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       283.889;
     }
     thermodynamics
@@ -28092,7 +26338,6 @@ C2Cl6
 {
     specie
     {
-        nMoles          1;
         molWeight       236.74;
     }
     thermodynamics
@@ -28108,7 +26353,6 @@ C4H6Cl2_3,4-DiCl
 {
     specie
     {
-        nMoles          1;
         molWeight       124.998;
     }
     thermodynamics
@@ -28124,7 +26368,6 @@ N2O+_NON+
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0123;
     }
     thermodynamics
@@ -28140,7 +26383,6 @@ m-CHLOROPHENYL
 {
     specie
     {
-        nMoles          1;
         molWeight       111.552;
     }
     thermodynamics
@@ -28156,7 +26398,6 @@ C2H5_ethyl_radic
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0622;
     }
     thermodynamics
@@ -28172,7 +26413,6 @@ C4H8O__CyButanol
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1078;
     }
     thermodynamics
@@ -28188,7 +26428,6 @@ C8H2_linear
 {
     specie
     {
-        nMoles          1;
         molWeight       98.1051;
     }
     thermodynamics
@@ -28204,7 +26443,6 @@ C2F4__FC-1114
 {
     specie
     {
-        nMoles          1;
         molWeight       100.016;
     }
     thermodynamics
@@ -28220,7 +26458,6 @@ C2HClF2_cis
 {
     specie
     {
-        nMoles          1;
         molWeight       98.4801;
     }
     thermodynamics
@@ -28236,7 +26473,6 @@ C18H36_1-Octadece
 {
     specie
     {
-        nMoles          1;
         molWeight       252.488;
     }
     thermodynamics
@@ -28252,7 +26488,6 @@ MnO2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       86.9368;
     }
     thermodynamics
@@ -28268,7 +26503,6 @@ C6H7__C5H5-1-CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1227;
     }
     thermodynamics
@@ -28284,7 +26518,6 @@ Cr(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       51.996;
     }
     thermodynamics
@@ -28300,7 +26533,6 @@ P4_tetrahedral
 {
     specie
     {
-        nMoles          1;
         molWeight       123.895;
     }
     thermodynamics
@@ -28316,7 +26548,6 @@ ZrF4
 {
     specie
     {
-        nMoles          1;
         molWeight       167.214;
     }
     thermodynamics
@@ -28332,7 +26563,6 @@ CD2_Deutherometh
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0393;
     }
     thermodynamics
@@ -28348,7 +26578,6 @@ C2H2Cl2_1,1-
 {
     specie
     {
-        nMoles          1;
         molWeight       96.9442;
     }
     thermodynamics
@@ -28364,7 +26593,6 @@ BFCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       100.715;
     }
     thermodynamics
@@ -28380,7 +26608,6 @@ C6H9_a
 {
     specie
     {
-        nMoles          1;
         molWeight       81.1386;
     }
     thermodynamics
@@ -28396,7 +26623,6 @@ CH2N2_Carbodiimi
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0405;
     }
     thermodynamics
@@ -28412,7 +26638,6 @@ CH3CHO_Acetaldehy
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0536;
     }
     thermodynamics
@@ -28428,7 +26653,6 @@ s-2,4-C6H4Cl2O_cis
 {
     specie
     {
-        nMoles          1;
         molWeight       163.004;
     }
     thermodynamics
@@ -28444,7 +26668,6 @@ C7H14O2_Enanthic
 {
     specie
     {
-        nMoles          1;
         molWeight       130.188;
     }
     thermodynamics
@@ -28460,7 +26683,6 @@ C6H13__2-Hexyl
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1705;
     }
     thermodynamics
@@ -28476,7 +26698,6 @@ s-1,3,5-C6H3Cl3
 {
     specie
     {
-        nMoles          1;
         molWeight       181.45;
     }
     thermodynamics
@@ -28492,7 +26713,6 @@ C3H2(1)_HCC-CH**
 {
     specie
     {
-        nMoles          1;
         molWeight       38.0494;
     }
     thermodynamics
@@ -28508,7 +26728,6 @@ HAlO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.9889;
     }
     thermodynamics
@@ -28524,7 +26743,6 @@ C6H11_1ene2M-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -28540,7 +26758,6 @@ H2N2O__H2NN=O
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0287;
     }
     thermodynamics
@@ -28556,7 +26773,6 @@ S5
 {
     specie
     {
-        nMoles          1;
         molWeight       160.32;
     }
     thermodynamics
@@ -28572,7 +26788,6 @@ CH6N+__CH3NH3+
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0651;
     }
     thermodynamics
@@ -28588,7 +26803,6 @@ C7H4__CH(CCH)3
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1099;
     }
     thermodynamics
@@ -28604,7 +26818,6 @@ CrCl6
 {
     specie
     {
-        nMoles          1;
         molWeight       264.714;
     }
     thermodynamics
@@ -28620,7 +26833,6 @@ PH2+
 {
     specie
     {
-        nMoles          1;
         molWeight       32.9897;
     }
     thermodynamics
@@ -28636,7 +26848,6 @@ C5H6O_2-Me_Furan
 {
     specie
     {
-        nMoles          1;
         molWeight       82.103;
     }
     thermodynamics
@@ -28652,7 +26863,6 @@ CH2ClBr
 {
     specie
     {
-        nMoles          1;
         molWeight       129.381;
     }
     thermodynamics
@@ -28668,7 +26878,6 @@ CT4__methane_T-4
 {
     specie
     {
-        nMoles          1;
         molWeight       203.611;
     }
     thermodynamics
@@ -28684,7 +26893,6 @@ C3H8O2_C3H7O-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       76.096;
     }
     thermodynamics
@@ -28700,7 +26908,6 @@ SB(CH3)3
 {
     specie
     {
-        nMoles          1;
         molWeight       166.855;
     }
     thermodynamics
@@ -28716,7 +26923,6 @@ FeS2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       119.975;
     }
     thermodynamics
@@ -28732,7 +26938,6 @@ C2O_(CCO)
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0217;
     }
     thermodynamics
@@ -28748,7 +26953,6 @@ C2H6N2_Azomethan
 {
     specie
     {
-        nMoles          1;
         molWeight       58.0835;
     }
     thermodynamics
@@ -28764,7 +26968,6 @@ C6H7_1,3,5_Linear
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1227;
     }
     thermodynamics
@@ -28780,7 +26983,6 @@ HClO4
 {
     specie
     {
-        nMoles          1;
         molWeight       100.459;
     }
     thermodynamics
@@ -28796,7 +26998,6 @@ C2N+___C-CN
 {
     specie
     {
-        nMoles          1;
         molWeight       38.0285;
     }
     thermodynamics
@@ -28812,7 +27013,6 @@ C6_linear_triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       72.0669;
     }
     thermodynamics
@@ -28828,7 +27028,6 @@ CH2DNO2
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0467;
     }
     thermodynamics
@@ -28844,7 +27043,6 @@ Pb+
 {
     specie
     {
-        nMoles          1;
         molWeight       207.189;
     }
     thermodynamics
@@ -28860,7 +27058,6 @@ N2-
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0139;
     }
     thermodynamics
@@ -28876,7 +27073,6 @@ BCl2+
 {
     specie
     {
-        nMoles          1;
         molWeight       81.7165;
     }
     thermodynamics
@@ -28892,7 +27088,6 @@ BHF2
 {
     specie
     {
-        nMoles          1;
         molWeight       49.8158;
     }
     thermodynamics
@@ -28908,7 +27103,6 @@ C6H7O5(NO2)3__NC
 {
     specie
     {
-        nMoles          1;
         molWeight       297.136;
     }
     thermodynamics
@@ -28924,7 +27118,6 @@ HC(OO)_cyclo_rad
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0179;
     }
     thermodynamics
@@ -28940,7 +27133,6 @@ CH4N2_cyc(-CH2-N
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0564;
     }
     thermodynamics
@@ -28956,7 +27148,6 @@ K20(g)
 {
     specie
     {
-        nMoles          1;
         molWeight       94.2034;
     }
     thermodynamics
@@ -28972,7 +27163,6 @@ CH2Br2
 {
     specie
     {
-        nMoles          1;
         molWeight       173.829;
     }
     thermodynamics
@@ -28988,7 +27178,6 @@ ClONO2_Clnitrat
 {
     specie
     {
-        nMoles          1;
         molWeight       97.4579;
     }
     thermodynamics
@@ -29004,7 +27193,6 @@ NH4NO3_gas
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0435;
     }
     thermodynamics
@@ -29020,7 +27208,6 @@ Cl+
 {
     specie
     {
-        nMoles          1;
         molWeight       35.4525;
     }
     thermodynamics
@@ -29036,7 +27223,6 @@ CF2
 {
     specie
     {
-        nMoles          1;
         molWeight       50.008;
     }
     thermodynamics
@@ -29052,7 +27238,6 @@ CH2N-_H*C=NH_trans
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0343;
     }
     thermodynamics
@@ -29068,7 +27253,6 @@ C4H9O_N-Butoxy_R
 {
     specie
     {
-        nMoles          1;
         molWeight       73.1157;
     }
     thermodynamics
@@ -29084,7 +27268,6 @@ s-*CH2ONO2
 {
     specie
     {
-        nMoles          1;
         molWeight       76.032;
     }
     thermodynamics
@@ -29100,7 +27283,6 @@ NH2O__RADICAL
 {
     specie
     {
-        nMoles          1;
         molWeight       32.022;
     }
     thermodynamics
@@ -29116,7 +27298,6 @@ F2O+__FOF+
 {
     specie
     {
-        nMoles          1;
         molWeight       53.9957;
     }
     thermodynamics
@@ -29132,7 +27313,6 @@ AlF2-
 {
     specie
     {
-        nMoles          1;
         molWeight       64.9788;
     }
     thermodynamics
@@ -29148,7 +27328,6 @@ O4+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       63.9971;
     }
     thermodynamics
@@ -29164,7 +27343,6 @@ Na2O2(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       77.9784;
     }
     thermodynamics
@@ -29180,7 +27358,6 @@ Ag+
 {
     specie
     {
-        nMoles          1;
         molWeight       107.869;
     }
     thermodynamics
@@ -29196,7 +27373,6 @@ C6H14(L)_n-hexa
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1785;
     }
     thermodynamics
@@ -29212,7 +27388,6 @@ C18H38_n-Octadeca
 {
     specie
     {
-        nMoles          1;
         molWeight       254.504;
     }
     thermodynamics
@@ -29228,7 +27403,6 @@ C10H4Cl4_2,3,6,7
 {
     specie
     {
-        nMoles          1;
         molWeight       265.955;
     }
     thermodynamics
@@ -29244,7 +27418,6 @@ C2H3O2_COOCH3
 {
     specie
     {
-        nMoles          1;
         molWeight       59.045;
     }
     thermodynamics
@@ -29260,7 +27433,6 @@ C2H5NH2__Et-amin
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0848;
     }
     thermodynamics
@@ -29276,7 +27448,6 @@ C6H5Br+__Cation
 {
     specie
     {
-        nMoles          1;
         molWeight       157.007;
     }
     thermodynamics
@@ -29292,7 +27463,6 @@ C6H4__Pentaene
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0988;
     }
     thermodynamics
@@ -29308,7 +27478,6 @@ C10H8O__Naphtol
 {
     specie
     {
-        nMoles          1;
         molWeight       144.175;
     }
     thermodynamics
@@ -29324,7 +27493,6 @@ AlH3
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0054;
     }
     thermodynamics
@@ -29340,7 +27508,6 @@ ZrN
 {
     specie
     {
-        nMoles          1;
         molWeight       105.227;
     }
     thermodynamics
@@ -29356,7 +27523,6 @@ C3HBr3_BromoAllene
 {
     specie
     {
-        nMoles          1;
         molWeight       276.744;
     }
     thermodynamics
@@ -29372,7 +27538,6 @@ s-1,2,3,5-C6H2Cl4
 {
     specie
     {
-        nMoles          1;
         molWeight       215.895;
     }
     thermodynamics
@@ -29388,7 +27553,6 @@ CCl2F2_FREON-12
 {
     specie
     {
-        nMoles          1;
         molWeight       120.914;
     }
     thermodynamics
@@ -29404,7 +27568,6 @@ CH2=S
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0911;
     }
     thermodynamics
@@ -29420,7 +27583,6 @@ C5H12,i-pentane
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1514;
     }
     thermodynamics
@@ -29436,7 +27598,6 @@ C2H3O2_HOCH2C=O
 {
     specie
     {
-        nMoles          1;
         molWeight       59.045;
     }
     thermodynamics
@@ -29452,7 +27613,6 @@ C5H6N2_Cyclo_2-A
 {
     specie
     {
-        nMoles          1;
         molWeight       94.117;
     }
     thermodynamics
@@ -29468,7 +27628,6 @@ MgH
 {
     specie
     {
-        nMoles          1;
         molWeight       25.32;
     }
     thermodynamics
@@ -29484,7 +27643,6 @@ C4H7O_CH3CH2CH2CO
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0998;
     }
     thermodynamics
@@ -29500,7 +27658,6 @@ C8H16_CyOctane
 {
     specie
     {
-        nMoles          1;
         molWeight       112.217;
     }
     thermodynamics
@@ -29516,7 +27673,6 @@ NF2
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0035;
     }
     thermodynamics
@@ -29532,7 +27688,6 @@ C17H36_HeptaDecan
 {
     specie
     {
-        nMoles          1;
         molWeight       240.476;
     }
     thermodynamics
@@ -29548,7 +27703,6 @@ HNOH+_cis
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0215;
     }
     thermodynamics
@@ -29564,7 +27718,6 @@ N-
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0072;
     }
     thermodynamics
@@ -29580,7 +27733,6 @@ Ag-
 {
     specie
     {
-        nMoles          1;
         molWeight       107.871;
     }
     thermodynamics
@@ -29596,7 +27748,6 @@ C7H7_Benzyl_rad
 {
     specie
     {
-        nMoles          1;
         molWeight       91.1338;
     }
     thermodynamics
@@ -29612,7 +27763,6 @@ CrO3-
 {
     specie
     {
-        nMoles          1;
         molWeight       99.9947;
     }
     thermodynamics
@@ -29628,7 +27778,6 @@ C3Br4_PerBrAllene
 {
     specie
     {
-        nMoles          1;
         molWeight       355.637;
     }
     thermodynamics
@@ -29644,7 +27793,6 @@ m-C6H4I2
 {
     specie
     {
-        nMoles          1;
         molWeight       329.908;
     }
     thermodynamics
@@ -29660,7 +27808,6 @@ C5H3_CycloPentat
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0797;
     }
     thermodynamics
@@ -29676,7 +27823,6 @@ CNH2+_triradical
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0332;
     }
     thermodynamics
@@ -29692,7 +27838,6 @@ CH3S_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0991;
     }
     thermodynamics
@@ -29708,7 +27853,6 @@ CHFCl2___FC-21
 {
     specie
     {
-        nMoles          1;
         molWeight       102.924;
     }
     thermodynamics
@@ -29724,7 +27868,6 @@ C4H9O_DiEthyl_Beta
 {
     specie
     {
-        nMoles          1;
         molWeight       73.1157;
     }
     thermodynamics
@@ -29740,7 +27883,6 @@ Rn+
 {
     specie
     {
-        nMoles          1;
         molWeight       221.999;
     }
     thermodynamics
@@ -29756,7 +27898,6 @@ ICN
 {
     specie
     {
-        nMoles          1;
         molWeight       152.922;
     }
     thermodynamics
@@ -29772,7 +27913,6 @@ C8H9_C6H5CH2CH2*
 {
     specie
     {
-        nMoles          1;
         molWeight       105.161;
     }
     thermodynamics
@@ -29788,7 +27928,6 @@ C2H4F_alfa-Fluor
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0526;
     }
     thermodynamics
@@ -29804,7 +27943,6 @@ H2NC=O__H2N-C*=O
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0332;
     }
     thermodynamics
@@ -29820,7 +27958,6 @@ MgN
 {
     specie
     {
-        nMoles          1;
         molWeight       38.3187;
     }
     thermodynamics
@@ -29836,7 +27973,6 @@ NCCHO
 {
     specie
     {
-        nMoles          1;
         molWeight       55.0364;
     }
     thermodynamics
@@ -29852,7 +27988,6 @@ C2_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       24.0223;
     }
     thermodynamics
@@ -29868,7 +28003,6 @@ OT_Tritium_Hydro
 {
     specie
     {
-        nMoles          1;
         molWeight       63.8994;
     }
     thermodynamics
@@ -29884,7 +28018,6 @@ Si3N4(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       140.285;
     }
     thermodynamics
@@ -29900,7 +28033,6 @@ C6H4Cl2_o-Clbenzen
 {
     specie
     {
-        nMoles          1;
         molWeight       147.005;
     }
     thermodynamics
@@ -29916,7 +28048,6 @@ Cu(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       63.54;
     }
     thermodynamics
@@ -29932,7 +28063,6 @@ C6H5_phenyl_radi
 {
     specie
     {
-        nMoles          1;
         molWeight       77.1068;
     }
     thermodynamics
@@ -29948,7 +28078,6 @@ C3H4N2__Imidogen
 {
     specie
     {
-        nMoles          1;
         molWeight       68.0787;
     }
     thermodynamics
@@ -29964,7 +28093,6 @@ PbBr
 {
     specie
     {
-        nMoles          1;
         molWeight       287.091;
     }
     thermodynamics
@@ -29980,7 +28108,6 @@ CuF
 {
     specie
     {
-        nMoles          1;
         molWeight       82.5384;
     }
     thermodynamics
@@ -29996,7 +28123,6 @@ SF4
 {
     specie
     {
-        nMoles          1;
         molWeight       108.058;
     }
     thermodynamics
@@ -30012,7 +28138,6 @@ HOBr+___ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       96.9077;
     }
     thermodynamics
@@ -30028,7 +28153,6 @@ H4C3_PROPYNE
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0653;
     }
     thermodynamics
@@ -30044,7 +28168,6 @@ C4H9_n-butyl
 {
     specie
     {
-        nMoles          1;
         molWeight       57.1163;
     }
     thermodynamics
@@ -30060,7 +28183,6 @@ C5H8O2_2-Pentenoic
 {
     specie
     {
-        nMoles          1;
         molWeight       100.118;
     }
     thermodynamics
@@ -30076,7 +28198,6 @@ O-C12D9_Biphenyl
 {
     specie
     {
-        nMoles          1;
         molWeight       162.261;
     }
     thermodynamics
@@ -30092,7 +28213,6 @@ C4__singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       48.0446;
     }
     thermodynamics
@@ -30108,7 +28228,6 @@ C4H8O_EthylOxyran
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1078;
     }
     thermodynamics
@@ -30124,7 +28243,6 @@ BI3
 {
     specie
     {
-        nMoles          1;
         molWeight       391.524;
     }
     thermodynamics
@@ -30140,7 +28258,6 @@ C6H5ClO__2,4-cyc
 {
     specie
     {
-        nMoles          1;
         molWeight       128.559;
     }
     thermodynamics
@@ -30156,7 +28273,6 @@ N2F2
 {
     specie
     {
-        nMoles          1;
         molWeight       66.0102;
     }
     thermodynamics
@@ -30172,7 +28288,6 @@ C8H6__Pentalene
 {
     specie
     {
-        nMoles          1;
         molWeight       102.137;
     }
     thermodynamics
@@ -30188,7 +28303,6 @@ C2H2Br2_trans
 {
     specie
     {
-        nMoles          1;
         molWeight       185.84;
     }
     thermodynamics
@@ -30204,7 +28318,6 @@ SiCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       98.992;
     }
     thermodynamics
@@ -30220,7 +28333,6 @@ C5H10__2MB-2-ene
 {
     specie
     {
-        nMoles          1;
         molWeight       70.1355;
     }
     thermodynamics
@@ -30236,7 +28348,6 @@ N-DODECANE
 {
     specie
     {
-        nMoles          1;
         molWeight       170.341;
     }
     thermodynamics
@@ -30252,7 +28363,6 @@ HCCN_Triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       39.037;
     }
     thermodynamics
@@ -30268,7 +28378,6 @@ S2F2__(S=SF2)
 {
     specie
     {
-        nMoles          1;
         molWeight       102.125;
     }
     thermodynamics
@@ -30284,7 +28393,6 @@ C4H4O2_1,4-Dioxin
 {
     specie
     {
-        nMoles          1;
         molWeight       84.0753;
     }
     thermodynamics
@@ -30300,7 +28408,6 @@ Cr2O3(I)
 {
     specie
     {
-        nMoles          1;
         molWeight       151.99;
     }
     thermodynamics
@@ -30316,7 +28423,6 @@ OS(g)__Osmium
 {
     specie
     {
-        nMoles          1;
         molWeight       190.2;
     }
     thermodynamics
@@ -30332,7 +28438,6 @@ C4H10N2_1,4-PIPE
 {
     specie
     {
-        nMoles          1;
         molWeight       86.1377;
     }
     thermodynamics
@@ -30348,7 +28453,6 @@ C3H7O_Propoxy_rad
 {
     specie
     {
-        nMoles          1;
         molWeight       59.0886;
     }
     thermodynamics
@@ -30364,7 +28468,6 @@ C3H5NH2_Cyclopro
 {
     specie
     {
-        nMoles          1;
         molWeight       57.0959;
     }
     thermodynamics
@@ -30380,7 +28483,6 @@ ClCN+___ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       61.4703;
     }
     thermodynamics
@@ -30396,7 +28498,6 @@ C6H11__2-ene-6-yl
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -30412,7 +28513,6 @@ WC(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       195.861;
     }
     thermodynamics
@@ -30428,7 +28528,6 @@ C4F8_CY
 {
     specie
     {
-        nMoles          1;
         molWeight       200.032;
     }
     thermodynamics
@@ -30444,7 +28543,6 @@ CHCl3_Chloroform
 {
     specie
     {
-        nMoles          1;
         molWeight       119.378;
     }
     thermodynamics
@@ -30460,7 +28558,6 @@ C5H5_1yne3ene5yl
 {
     specie
     {
-        nMoles          1;
         molWeight       65.0956;
     }
     thermodynamics
@@ -30476,7 +28573,6 @@ H3PO3__[P(OH)3]
 {
     specie
     {
-        nMoles          1;
         molWeight       81.9959;
     }
     thermodynamics
@@ -30492,7 +28588,6 @@ ZnSO4(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       161.432;
     }
     thermodynamics
@@ -30508,7 +28603,6 @@ CH3CO_ACETYL_RAD
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0456;
     }
     thermodynamics
@@ -30524,7 +28618,6 @@ N2H2_Isodiazene
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0293;
     }
     thermodynamics
@@ -30540,7 +28633,6 @@ HSO3__HO-SO2
 {
     specie
     {
-        nMoles          1;
         molWeight       81.0702;
     }
     thermodynamics
@@ -30556,7 +28648,6 @@ NOO+___cation
 {
     specie
     {
-        nMoles          1;
         molWeight       46.005;
     }
     thermodynamics
@@ -30572,7 +28663,6 @@ CH3-NH-NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0724;
     }
     thermodynamics
@@ -30588,7 +28678,6 @@ SCl
 {
     specie
     {
-        nMoles          1;
         molWeight       67.517;
     }
     thermodynamics
@@ -30604,7 +28693,6 @@ H5F5
 {
     specie
     {
-        nMoles          1;
         molWeight       100.032;
     }
     thermodynamics
@@ -30620,7 +28708,6 @@ CH2O2+__CH2(OO)+
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0253;
     }
     thermodynamics
@@ -30636,7 +28723,6 @@ F2O2+
 {
     specie
     {
-        nMoles          1;
         molWeight       69.9951;
     }
     thermodynamics
@@ -30652,7 +28738,6 @@ C3Cl3_123Cy-Radic
 {
     specie
     {
-        nMoles          1;
         molWeight       142.392;
     }
     thermodynamics
@@ -30668,7 +28753,6 @@ N2H4+__Hydrazine
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0447;
     }
     thermodynamics
@@ -30684,7 +28768,6 @@ Mg2TiO4(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       160.522;
     }
     thermodynamics
@@ -30700,7 +28783,6 @@ C5H12O2_n-Pentyl
 {
     specie
     {
-        nMoles          1;
         molWeight       104.15;
     }
     thermodynamics
@@ -30716,7 +28798,6 @@ C6H5+_phenyl_cat
 {
     specie
     {
-        nMoles          1;
         molWeight       77.1062;
     }
     thermodynamics
@@ -30732,7 +28813,6 @@ CH3-NH-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0848;
     }
     thermodynamics
@@ -30748,7 +28828,6 @@ Fe3C_(L)_Liquid
 {
     specie
     {
-        nMoles          1;
         molWeight       179.552;
     }
     thermodynamics
@@ -30764,7 +28843,6 @@ C4H4N2O2_Uracil
 {
     specie
     {
-        nMoles          1;
         molWeight       112.089;
     }
     thermodynamics
@@ -30780,7 +28858,6 @@ CT_Tritium_Carbon
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0351;
     }
     thermodynamics
@@ -30796,7 +28873,6 @@ Si2N2O(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       100.185;
     }
     thermodynamics
@@ -30812,7 +28888,6 @@ Pb(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       207.19;
     }
     thermodynamics
@@ -30828,7 +28903,6 @@ C10H16_endo
 {
     specie
     {
-        nMoles          1;
         molWeight       136.239;
     }
     thermodynamics
@@ -30844,7 +28918,6 @@ C6H11__2M2EN4YL
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -30860,7 +28933,6 @@ MgF2
 {
     specie
     {
-        nMoles          1;
         molWeight       62.3088;
     }
     thermodynamics
@@ -30876,7 +28948,6 @@ C2H5OH
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0695;
     }
     thermodynamics
@@ -30892,7 +28963,6 @@ C8H8___2,3,5,7_Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       104.153;
     }
     thermodynamics
@@ -30908,7 +28978,6 @@ SF3-
 {
     specie
     {
-        nMoles          1;
         molWeight       89.0597;
     }
     thermodynamics
@@ -30924,7 +28993,6 @@ C17H32O2_Margarole
 {
     specie
     {
-        nMoles          1;
         molWeight       268.443;
     }
     thermodynamics
@@ -30940,7 +29008,6 @@ C20H39O2_Archidi
 {
     specie
     {
-        nMoles          1;
         molWeight       311.533;
     }
     thermodynamics
@@ -30956,7 +29023,6 @@ C(NN)__Cyclo
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0246;
     }
     thermodynamics
@@ -30972,7 +29038,6 @@ Br2+
 {
     specie
     {
-        nMoles          1;
         molWeight       159.801;
     }
     thermodynamics
@@ -30988,7 +29053,6 @@ Fe3C_(S)_Solid-B
 {
     specie
     {
-        nMoles          1;
         molWeight       179.552;
     }
     thermodynamics
@@ -31004,7 +29068,6 @@ CH3-O-CH2-O-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       76.096;
     }
     thermodynamics
@@ -31020,7 +29083,6 @@ C6H6O__Oxepin
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1141;
     }
     thermodynamics
@@ -31036,7 +29098,6 @@ Cr2N(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       117.999;
     }
     thermodynamics
@@ -31052,7 +29113,6 @@ CH3F__FC-41_-236
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0335;
     }
     thermodynamics
@@ -31068,7 +29128,6 @@ o-C6H5BrO_cis(Z)
 {
     specie
     {
-        nMoles          1;
         molWeight       173.007;
     }
     thermodynamics
@@ -31084,7 +29143,6 @@ C3Br2_BrC*=C=CBr*
 {
     specie
     {
-        nMoles          1;
         molWeight       195.835;
     }
     thermodynamics
@@ -31100,7 +29158,6 @@ C2N+___C-N=C
 {
     specie
     {
-        nMoles          1;
         molWeight       38.0285;
     }
     thermodynamics
@@ -31116,7 +29173,6 @@ s-2-C4H10O_2-Butan
 {
     specie
     {
-        nMoles          1;
         molWeight       74.1237;
     }
     thermodynamics
@@ -31132,7 +29188,6 @@ C17H34O2_n-Marga
 {
     specie
     {
-        nMoles          1;
         molWeight       270.459;
     }
     thermodynamics
@@ -31148,7 +29203,6 @@ C2H2F2_equil
 {
     specie
     {
-        nMoles          1;
         molWeight       64.035;
     }
     thermodynamics
@@ -31164,7 +29218,6 @@ C8H8__Styrene
 {
     specie
     {
-        nMoles          1;
         molWeight       104.153;
     }
     thermodynamics
@@ -31180,7 +29233,6 @@ C12H2_linear
 {
     specie
     {
-        nMoles          1;
         molWeight       146.15;
     }
     thermodynamics
@@ -31196,7 +29248,6 @@ CH4+__CATION
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0425;
     }
     thermodynamics
@@ -31212,7 +29263,6 @@ C24H17
 {
     specie
     {
-        nMoles          1;
         molWeight       305.403;
     }
     thermodynamics
@@ -31228,7 +29278,6 @@ BCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       81.717;
     }
     thermodynamics
@@ -31244,7 +29293,6 @@ ClC*=C=CCl*_birad
 {
     specie
     {
-        nMoles          1;
         molWeight       106.939;
     }
     thermodynamics
@@ -31260,7 +29308,6 @@ Ge2S2
 {
     specie
     {
-        nMoles          1;
         molWeight       209.308;
     }
     thermodynamics
@@ -31276,7 +29323,6 @@ C5H9_Cyclopentyl
 {
     specie
     {
-        nMoles          1;
         molWeight       69.1275;
     }
     thermodynamics
@@ -31292,7 +29338,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -31308,7 +29353,6 @@ CH3CD3
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0885;
     }
     thermodynamics
@@ -31324,7 +29368,6 @@ CI4
 {
     specie
     {
-        nMoles          1;
         molWeight       519.629;
     }
     thermodynamics
@@ -31340,7 +29383,6 @@ C6H11__2M4en3yl
 {
     specie
     {
-        nMoles          1;
         molWeight       83.1546;
     }
     thermodynamics
@@ -31356,7 +29398,6 @@ B2O3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       69.6202;
     }
     thermodynamics
@@ -31372,7 +29413,6 @@ PbF2
 {
     specie
     {
-        nMoles          1;
         molWeight       245.187;
     }
     thermodynamics
@@ -31388,7 +29428,6 @@ C14H10__Phenanth
 {
     specie
     {
-        nMoles          1;
         molWeight       178.236;
     }
     thermodynamics
@@ -31404,7 +29443,6 @@ C9H7N_ISOQUINOLI
 {
     specie
     {
-        nMoles          1;
         molWeight       129.163;
     }
     thermodynamics
@@ -31420,7 +29458,6 @@ C5H10O2_Valeric_ac
 {
     specie
     {
-        nMoles          1;
         molWeight       102.134;
     }
     thermodynamics
@@ -31436,7 +29473,6 @@ SbF3
 {
     specie
     {
-        nMoles          1;
         molWeight       178.745;
     }
     thermodynamics
@@ -31452,7 +29488,6 @@ CI
 {
     specie
     {
-        nMoles          1;
         molWeight       138.916;
     }
     thermodynamics
@@ -31468,7 +29503,6 @@ C12H6Cl2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       253.086;
     }
     thermodynamics
@@ -31484,7 +29518,6 @@ s-(HCOOH)2__DIMER
 {
     specie
     {
-        nMoles          1;
         molWeight       92.0518;
     }
     thermodynamics
@@ -31500,7 +29533,6 @@ C13H10O__Benzoph
 {
     specie
     {
-        nMoles          1;
         molWeight       182.224;
     }
     thermodynamics
@@ -31516,7 +29548,6 @@ C2H2Cl2_Equilibriu
 {
     specie
     {
-        nMoles          1;
         molWeight       96.9442;
     }
     thermodynamics
@@ -31532,7 +29563,6 @@ HNO2+_cis____HF2
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0129;
     }
     thermodynamics
@@ -31548,7 +29578,6 @@ CBr
 {
     specie
     {
-        nMoles          1;
         molWeight       91.912;
     }
     thermodynamics
@@ -31564,7 +29593,6 @@ C2(NO2)2
 {
     specie
     {
-        nMoles          1;
         molWeight       116.033;
     }
     thermodynamics
@@ -31580,7 +29608,6 @@ CCN__Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       38.029;
     }
     thermodynamics
@@ -31596,7 +29623,6 @@ C10H15__c5h8*-c5
 {
     specie
     {
-        nMoles          1;
         molWeight       135.231;
     }
     thermodynamics
@@ -31612,7 +29638,6 @@ H2Sn(C2H5)2
 {
     specie
     {
-        nMoles          1;
         molWeight       178.83;
     }
     thermodynamics
@@ -31628,7 +29653,6 @@ Al2O3(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       101.961;
     }
     thermodynamics
@@ -31644,7 +29668,6 @@ Cr
 {
     specie
     {
-        nMoles          1;
         molWeight       51.996;
     }
     thermodynamics
@@ -31660,7 +29683,6 @@ MgSiO3(III)
 {
     specie
     {
-        nMoles          1;
         molWeight       100.396;
     }
     thermodynamics
@@ -31676,7 +29698,6 @@ C5H7Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       138.018;
     }
     thermodynamics
@@ -31692,7 +29713,6 @@ C6H7+_1,4_cyDiEne
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1221;
     }
     thermodynamics
@@ -31708,7 +29728,6 @@ Cu
 {
     specie
     {
-        nMoles          1;
         molWeight       63.54;
     }
     thermodynamics
@@ -31724,7 +29743,6 @@ HCCNO2
 {
     specie
     {
-        nMoles          1;
         molWeight       71.0358;
     }
     thermodynamics
@@ -31740,7 +29758,6 @@ S2Cl2
 {
     specie
     {
-        nMoles          1;
         molWeight       135.034;
     }
     thermodynamics
@@ -31756,7 +29773,6 @@ CHNH2+__cation
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0412;
     }
     thermodynamics
@@ -31772,7 +29788,6 @@ MgI
 {
     specie
     {
-        nMoles          1;
         molWeight       151.216;
     }
     thermodynamics
@@ -31788,7 +29803,6 @@ C25H20___TetraPh
 {
     specie
     {
-        nMoles          1;
         molWeight       320.438;
     }
     thermodynamics
@@ -31804,7 +29818,6 @@ C7H14O__MIAK
 {
     specie
     {
-        nMoles          1;
         molWeight       114.189;
     }
     thermodynamics
@@ -31820,7 +29833,6 @@ Mg+
 {
     specie
     {
-        nMoles          1;
         molWeight       24.3115;
     }
     thermodynamics
@@ -31836,7 +29848,6 @@ C5H8O_CYC5H8=O
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1189;
     }
     thermodynamics
@@ -31852,7 +29863,6 @@ Po2_DiPolonium
 {
     specie
     {
-        nMoles          1;
         molWeight       420;
     }
     thermodynamics
@@ -31868,7 +29878,6 @@ Cr2O3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       151.99;
     }
     thermodynamics
@@ -31884,7 +29893,6 @@ CN-
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0184;
     }
     thermodynamics
@@ -31900,7 +29908,6 @@ HD
 {
     specie
     {
-        nMoles          1;
         molWeight       3.02207;
     }
     thermodynamics
@@ -31916,7 +29923,6 @@ o-C6H5ClO_cis(Z)
 {
     specie
     {
-        nMoles          1;
         molWeight       163.004;
     }
     thermodynamics
@@ -31932,7 +29938,6 @@ C4H9O_DiEthyl_Et
 {
     specie
     {
-        nMoles          1;
         molWeight       73.1157;
     }
     thermodynamics
@@ -31948,7 +29953,6 @@ C2Br6
 {
     specie
     {
-        nMoles          1;
         molWeight       503.428;
     }
     thermodynamics
@@ -31964,7 +29968,6 @@ HBr
 {
     specie
     {
-        nMoles          1;
         molWeight       80.9089;
     }
     thermodynamics
@@ -31980,7 +29983,6 @@ NCCH2O_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       56.0443;
     }
     thermodynamics
@@ -31996,7 +29998,6 @@ Sn+
 {
     specie
     {
-        nMoles          1;
         molWeight       118.689;
     }
     thermodynamics
@@ -32012,7 +30013,6 @@ CH2Cl-CH2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       98.9602;
     }
     thermodynamics
@@ -32028,7 +30028,6 @@ C2H2F4_1,1,1,2
 {
     specie
     {
-        nMoles          1;
         molWeight       102.032;
     }
     thermodynamics
@@ -32044,7 +30043,6 @@ C18H33O2_Oleatoxy
 {
     specie
     {
-        nMoles          1;
         molWeight       281.463;
     }
     thermodynamics
@@ -32060,7 +30058,6 @@ C24H20Pb__TetraP
 {
     specie
     {
-        nMoles          1;
         molWeight       515.617;
     }
     thermodynamics
@@ -32076,7 +30073,6 @@ HOCO+__radical_c
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0174;
     }
     thermodynamics
@@ -32092,7 +30088,6 @@ D2S
 {
     specie
     {
-        nMoles          1;
         molWeight       36.0922;
     }
     thermodynamics
@@ -32108,7 +30103,6 @@ C3H3_*CH(CH=CH)
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0574;
     }
     thermodynamics
@@ -32124,7 +30118,6 @@ C18H34O2_Oleic_ac
 {
     specie
     {
-        nMoles          1;
         molWeight       282.47;
     }
     thermodynamics
@@ -32140,7 +30133,6 @@ PF2
 {
     specie
     {
-        nMoles          1;
         molWeight       68.9706;
     }
     thermodynamics
@@ -32156,7 +30148,6 @@ C6H8_3-CH3-1,3C5H5
 {
     specie
     {
-        nMoles          1;
         molWeight       80.1307;
     }
     thermodynamics
@@ -32172,7 +30163,6 @@ C(NO)+_cy
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0167;
     }
     thermodynamics
@@ -32188,7 +30178,6 @@ Ca
 {
     specie
     {
-        nMoles          1;
         molWeight       40.08;
     }
     thermodynamics
@@ -32204,7 +30193,6 @@ C5H12__n-pentane
 {
     specie
     {
-        nMoles          1;
         molWeight       72.1514;
     }
     thermodynamics
@@ -32220,7 +30208,6 @@ C8H8__Cubane
 {
     specie
     {
-        nMoles          1;
         molWeight       104.153;
     }
     thermodynamics
@@ -32236,7 +30223,6 @@ C4H8O2_DIOXANE
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1072;
     }
     thermodynamics
@@ -32252,7 +30238,6 @@ AlO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.9809;
     }
     thermodynamics
@@ -32268,7 +30253,6 @@ Mo2C(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       203.891;
     }
     thermodynamics
@@ -32284,7 +30268,6 @@ C3H7S_2-PropylThio
 {
     specie
     {
-        nMoles          1;
         molWeight       75.1532;
     }
     thermodynamics
@@ -32300,7 +30283,6 @@ C8H16O2_cis-acid
 {
     specie
     {
-        nMoles          1;
         molWeight       144.216;
     }
     thermodynamics
@@ -32316,7 +30298,6 @@ SF5Br
 {
     specie
     {
-        nMoles          1;
         molWeight       206.957;
     }
     thermodynamics
@@ -32332,7 +30313,6 @@ Mo(s)
 {
     specie
     {
-        nMoles          1;
         molWeight       95.94;
     }
     thermodynamics
@@ -32348,7 +30328,6 @@ C3H6O2_C2H5COOH
 {
     specie
     {
-        nMoles          1;
         molWeight       74.0801;
     }
     thermodynamics
@@ -32364,7 +30343,6 @@ cy-C5H5+__cycation
 {
     specie
     {
-        nMoles          1;
         molWeight       65.0951;
     }
     thermodynamics
@@ -32380,7 +30358,6 @@ NO2-
 {
     specie
     {
-        nMoles          1;
         molWeight       46.006;
     }
     thermodynamics
@@ -32396,7 +30373,6 @@ C2HBr4_1,1,2,2
 {
     specie
     {
-        nMoles          1;
         molWeight       344.634;
     }
     thermodynamics
@@ -32412,7 +30388,6 @@ F2+
 {
     specie
     {
-        nMoles          1;
         molWeight       37.9963;
     }
     thermodynamics
@@ -32428,7 +30403,6 @@ CF2Cl-CHClF_123a
 {
     specie
     {
-        nMoles          1;
         molWeight       152.931;
     }
     thermodynamics
@@ -32444,7 +30418,6 @@ COOH
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0179;
     }
     thermodynamics
@@ -32460,7 +30433,6 @@ CH3COCl_Acetyl-Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       78.4986;
     }
     thermodynamics
@@ -32476,7 +30448,6 @@ Ne
 {
     specie
     {
-        nMoles          1;
         molWeight       20.183;
     }
     thermodynamics
@@ -32492,7 +30463,6 @@ HgCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       271.496;
     }
     thermodynamics
@@ -32508,7 +30478,6 @@ H-
 {
     specie
     {
-        nMoles          1;
         molWeight       1.00852;
     }
     thermodynamics
@@ -32524,7 +30493,6 @@ HCCN_singlet
 {
     specie
     {
-        nMoles          1;
         molWeight       39.037;
     }
     thermodynamics
@@ -32540,7 +30508,6 @@ C6H5-CH=CHCH=CH*
 {
     specie
     {
-        nMoles          1;
         molWeight       127.167;
     }
     thermodynamics
@@ -32556,7 +30523,6 @@ C2H6O2_Peroxyeth
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0689;
     }
     thermodynamics
@@ -32572,7 +30538,6 @@ COS
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0746;
     }
     thermodynamics
@@ -32588,7 +30553,6 @@ C7H12__Norbornane
 {
     specie
     {
-        nMoles          1;
         molWeight       96.1737;
     }
     thermodynamics
@@ -32604,7 +30568,6 @@ Pd(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       106.4;
     }
     thermodynamics
@@ -32620,7 +30583,6 @@ C14H9_2-Antryl_R
 {
     specie
     {
-        nMoles          1;
         molWeight       177.228;
     }
     thermodynamics
@@ -32636,7 +30598,6 @@ SbCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       228.109;
     }
     thermodynamics
@@ -32652,7 +30613,6 @@ C4H9O2_s-Butyl_P
 {
     specie
     {
-        nMoles          1;
         molWeight       89.1151;
     }
     thermodynamics
@@ -32668,7 +30628,6 @@ C4H10O_DEE_DiEth
 {
     specie
     {
-        nMoles          1;
         molWeight       74.1237;
     }
     thermodynamics
@@ -32684,7 +30643,6 @@ SiS2__Liquid
 {
     specie
     {
-        nMoles          1;
         molWeight       92.214;
     }
     thermodynamics
@@ -32700,7 +30658,6 @@ C6H7__C5H5-3-CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       79.1227;
     }
     thermodynamics
@@ -32716,7 +30673,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -32732,7 +30688,6 @@ C5H4_TETRAENE
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0876;
     }
     thermodynamics
@@ -32748,7 +30703,6 @@ s-1-C10H7-CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       142.202;
     }
     thermodynamics
@@ -32764,7 +30718,6 @@ C3H7S_PropylThiol
 {
     specie
     {
-        nMoles          1;
         molWeight       75.1532;
     }
     thermodynamics
@@ -32780,7 +30733,6 @@ C2H6O2_1,2-diOl
 {
     specie
     {
-        nMoles          1;
         molWeight       62.0689;
     }
     thermodynamics
@@ -32796,7 +30748,6 @@ Sb________GAS
 {
     specie
     {
-        nMoles          1;
         molWeight       121.75;
     }
     thermodynamics
@@ -32812,7 +30763,6 @@ C12H8O_DiBenzoFu
 {
     specie
     {
-        nMoles          1;
         molWeight       168.197;
     }
     thermodynamics
@@ -32828,7 +30778,6 @@ C2N2+__NC-CN+__H
 {
     specie
     {
-        nMoles          1;
         molWeight       52.0352;
     }
     thermodynamics
@@ -32844,7 +30793,6 @@ CH3OH(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0424;
     }
     thermodynamics
@@ -32860,7 +30808,6 @@ KNO3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       101.107;
     }
     thermodynamics
@@ -32876,7 +30823,6 @@ s-1,2-C2H2F2-trans
 {
     specie
     {
-        nMoles          1;
         molWeight       64.035;
     }
     thermodynamics
@@ -32892,7 +30838,6 @@ C5H8N4O12_PETN
 {
     specie
     {
-        nMoles          1;
         molWeight       316.139;
     }
     thermodynamics
@@ -32908,7 +30853,6 @@ N-NITRO-AZETIDIN
 {
     specie
     {
-        nMoles          1;
         molWeight       102.093;
     }
     thermodynamics
@@ -32924,7 +30868,6 @@ PF3
 {
     specie
     {
-        nMoles          1;
         molWeight       87.969;
     }
     thermodynamics
@@ -32940,7 +30883,6 @@ H2PO__HPOH
 {
     specie
     {
-        nMoles          1;
         molWeight       48.9891;
     }
     thermodynamics
@@ -32956,7 +30898,6 @@ Ni(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       58.71;
     }
     thermodynamics
@@ -32972,7 +30913,6 @@ C4H10O_n-butanol
 {
     specie
     {
-        nMoles          1;
         molWeight       74.1237;
     }
     thermodynamics
@@ -32988,7 +30928,6 @@ H2O2+__trans
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0142;
     }
     thermodynamics
@@ -33004,7 +30943,6 @@ C5H5OH_Cyclo-2,4
 {
     specie
     {
-        nMoles          1;
         molWeight       82.103;
     }
     thermodynamics
@@ -33020,7 +30958,6 @@ s-1,4-C6H4_BENZYNE
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0988;
     }
     thermodynamics
@@ -33036,7 +30973,6 @@ C2H5O-__CH3C*HOH-
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0621;
     }
     thermodynamics
@@ -33052,7 +30988,6 @@ C12H4Cl6O2__tric
 {
     specie
     {
-        nMoles          1;
         molWeight       392.882;
     }
     thermodynamics
@@ -33068,7 +31003,6 @@ COCl
 {
     specie
     {
-        nMoles          1;
         molWeight       63.4636;
     }
     thermodynamics
@@ -33084,7 +31018,6 @@ C6H8O5(NO2)2
 {
     specie
     {
-        nMoles          1;
         molWeight       252.139;
     }
     thermodynamics
@@ -33100,7 +31033,6 @@ C2D6N2_Azomethan
 {
     specie
     {
-        nMoles          1;
         molWeight       64.1203;
     }
     thermodynamics
@@ -33116,7 +31048,6 @@ CBr2F2
 {
     specie
     {
-        nMoles          1;
         molWeight       209.81;
     }
     thermodynamics
@@ -33132,7 +31063,6 @@ Zr(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       91.22;
     }
     thermodynamics
@@ -33148,7 +31078,6 @@ C4H7O2_Peroxy_Rad
 {
     specie
     {
-        nMoles          1;
         molWeight       87.0992;
     }
     thermodynamics
@@ -33164,7 +31093,6 @@ C10H9+_protonazule
 {
     specie
     {
-        nMoles          1;
         molWeight       129.183;
     }
     thermodynamics
@@ -33180,7 +31108,6 @@ GeBr4
 {
     specie
     {
-        nMoles          1;
         molWeight       392.194;
     }
     thermodynamics
@@ -33196,7 +31123,6 @@ C2H6+_Ethane_cat
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0696;
     }
     thermodynamics
@@ -33212,7 +31138,6 @@ C9H12__1-2-4-TMB
 {
     specie
     {
-        nMoles          1;
         molWeight       120.196;
     }
     thermodynamics
@@ -33228,7 +31153,6 @@ ZrO2(II)
 {
     specie
     {
-        nMoles          1;
         molWeight       123.219;
     }
     thermodynamics
@@ -33244,7 +31168,6 @@ CH2CN_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0449;
     }
     thermodynamics
@@ -33260,7 +31183,6 @@ CH2N__H*C=NH_Trans
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0338;
     }
     thermodynamics
@@ -33276,7 +31198,6 @@ P4O7
 {
     specie
     {
-        nMoles          1;
         molWeight       235.891;
     }
     thermodynamics
@@ -33292,7 +31213,6 @@ C5H5O__1-oxy-1,4-
 {
     specie
     {
-        nMoles          1;
         molWeight       81.095;
     }
     thermodynamics
@@ -33308,7 +31228,6 @@ C6H12O2_MeValere
 {
     specie
     {
-        nMoles          1;
         molWeight       116.161;
     }
     thermodynamics
@@ -33324,7 +31243,6 @@ C7H8_Quadricyclen
 {
     specie
     {
-        nMoles          1;
         molWeight       92.1418;
     }
     thermodynamics
@@ -33340,7 +31258,6 @@ C2H5I
 {
     specie
     {
-        nMoles          1;
         molWeight       155.967;
     }
     thermodynamics
@@ -33356,7 +31273,6 @@ CH3OH_Metanol
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0424;
     }
     thermodynamics
@@ -33372,7 +31288,6 @@ S+
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0635;
     }
     thermodynamics
@@ -33388,7 +31303,6 @@ C4H10_isobutane
 {
     specie
     {
-        nMoles          1;
         molWeight       58.1243;
     }
     thermodynamics
@@ -33404,7 +31318,6 @@ C12H5Cl5O2_PD
 {
     specie
     {
-        nMoles          1;
         molWeight       358.437;
     }
     thermodynamics
@@ -33420,7 +31333,6 @@ C16H30O2_acid
 {
     specie
     {
-        nMoles          1;
         molWeight       254.416;
     }
     thermodynamics
@@ -33436,7 +31348,6 @@ MgH2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       26.3279;
     }
     thermodynamics
@@ -33452,7 +31363,6 @@ C3H4Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       75.5183;
     }
     thermodynamics
@@ -33468,7 +31378,6 @@ C3F6__CF2=CF-CF3
 {
     specie
     {
-        nMoles          1;
         molWeight       150.024;
     }
     thermodynamics
@@ -33484,7 +31393,6 @@ s-(NH2)2C=N-NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       104.069;
     }
     thermodynamics
@@ -33500,7 +31408,6 @@ C3H3O_*CH2-CH=CO
 {
     specie
     {
-        nMoles          1;
         molWeight       55.0568;
     }
     thermodynamics
@@ -33516,7 +31423,6 @@ CNN
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0246;
     }
     thermodynamics
@@ -33532,7 +31438,6 @@ C2H3F2_Radical
 {
     specie
     {
-        nMoles          1;
         molWeight       65.043;
     }
     thermodynamics
@@ -33548,7 +31453,6 @@ C2D2_Acetylene-D
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0505;
     }
     thermodynamics
@@ -33564,7 +31468,6 @@ Br-
 {
     specie
     {
-        nMoles          1;
         molWeight       79.9014;
     }
     thermodynamics
@@ -33580,7 +31483,6 @@ MgSO4(I)
 {
     specie
     {
-        nMoles          1;
         molWeight       120.374;
     }
     thermodynamics
@@ -33596,7 +31498,6 @@ C2HFCl2_equilibr
 {
     specie
     {
-        nMoles          1;
         molWeight       114.935;
     }
     thermodynamics
@@ -33612,7 +31513,6 @@ NiS(a)
 {
     specie
     {
-        nMoles          1;
         molWeight       90.774;
     }
     thermodynamics
@@ -33628,7 +31528,6 @@ H3PO4(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       97.9953;
     }
     thermodynamics
@@ -33644,7 +31543,6 @@ Na2O(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       61.979;
     }
     thermodynamics
@@ -33660,7 +31558,6 @@ CH3C(O)O-ONO2
 {
     specie
     {
-        nMoles          1;
         molWeight       121.05;
     }
     thermodynamics
@@ -33676,7 +31573,6 @@ C3H3Cl_1-Cl-1Prop
 {
     specie
     {
-        nMoles          1;
         molWeight       74.5104;
     }
     thermodynamics
@@ -33692,7 +31588,6 @@ C2H
 {
     specie
     {
-        nMoles          1;
         molWeight       25.0303;
     }
     thermodynamics
@@ -33708,7 +31603,6 @@ ZnSO4(ap)
 {
     specie
     {
-        nMoles          1;
         molWeight       161.432;
     }
     thermodynamics
@@ -33724,7 +31618,6 @@ CH3NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       61.0406;
     }
     thermodynamics
@@ -33740,7 +31633,6 @@ NH2OH__cis
 {
     specie
     {
-        nMoles          1;
         molWeight       33.03;
     }
     thermodynamics
@@ -33756,7 +31648,6 @@ HgBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       360.392;
     }
     thermodynamics
@@ -33772,7 +31663,6 @@ C4H7OOH__Peroxyb
 {
     specie
     {
-        nMoles          1;
         molWeight       88.1072;
     }
     thermodynamics
@@ -33788,7 +31678,6 @@ C18H36O2_etPalmita
 {
     specie
     {
-        nMoles          1;
         molWeight       284.486;
     }
     thermodynamics
@@ -33804,7 +31693,6 @@ COFCl
 {
     specie
     {
-        nMoles          1;
         molWeight       82.462;
     }
     thermodynamics
@@ -33820,7 +31708,6 @@ NHD
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0288;
     }
     thermodynamics
@@ -33836,7 +31723,6 @@ C12H23O2__1,12
 {
     specie
     {
-        nMoles          1;
         molWeight       199.316;
     }
     thermodynamics
@@ -33852,7 +31738,6 @@ CH3SnH3
 {
     specie
     {
-        nMoles          1;
         molWeight       136.749;
     }
     thermodynamics
@@ -33868,7 +31753,6 @@ C5H9_2-en-5yl
 {
     specie
     {
-        nMoles          1;
         molWeight       69.1275;
     }
     thermodynamics
@@ -33884,7 +31768,6 @@ C6H6+_Benzene_ion
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1142;
     }
     thermodynamics
@@ -33900,7 +31783,6 @@ BrCN
 {
     specie
     {
-        nMoles          1;
         molWeight       105.919;
     }
     thermodynamics
@@ -33916,7 +31798,6 @@ C2HClF2_trans
 {
     specie
     {
-        nMoles          1;
         molWeight       98.4801;
     }
     thermodynamics
@@ -33932,7 +31813,6 @@ SF
 {
     specie
     {
-        nMoles          1;
         molWeight       51.0624;
     }
     thermodynamics
@@ -33948,7 +31828,6 @@ HgO(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       216.589;
     }
     thermodynamics
@@ -33964,7 +31843,6 @@ C8H7___i-styryl
 {
     specie
     {
-        nMoles          1;
         molWeight       103.145;
     }
     thermodynamics
@@ -33980,7 +31858,6 @@ GeCl
 {
     specie
     {
-        nMoles          1;
         molWeight       108.043;
     }
     thermodynamics
@@ -33996,7 +31873,6 @@ CHClF2__HCFC-22
 {
     specie
     {
-        nMoles          1;
         molWeight       86.4689;
     }
     thermodynamics
@@ -34012,7 +31888,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -34028,7 +31903,6 @@ S2
 {
     specie
     {
-        nMoles          1;
         molWeight       64.128;
     }
     thermodynamics
@@ -34044,7 +31918,6 @@ C7H10__Norbornene
 {
     specie
     {
-        nMoles          1;
         molWeight       94.1578;
     }
     thermodynamics
@@ -34060,7 +31933,6 @@ CHF__triplet
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0175;
     }
     thermodynamics
@@ -34076,7 +31948,6 @@ CH2O+__CH**-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0259;
     }
     thermodynamics
@@ -34092,7 +31963,6 @@ Si(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       28.086;
     }
     thermodynamics
@@ -34108,7 +31978,6 @@ FO2____F-O-O
 {
     specie
     {
-        nMoles          1;
         molWeight       50.9972;
     }
     thermodynamics
@@ -34124,7 +31993,6 @@ C4H8__Isobuten
 {
     specie
     {
-        nMoles          1;
         molWeight       56.1084;
     }
     thermodynamics
@@ -34140,7 +32008,6 @@ C2HF
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0287;
     }
     thermodynamics
@@ -34156,7 +32023,6 @@ CH5+_cation
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0505;
     }
     thermodynamics
@@ -34172,7 +32038,6 @@ C13H26O2_n-acide
 {
     specie
     {
-        nMoles          1;
         molWeight       214.351;
     }
     thermodynamics
@@ -34188,7 +32053,6 @@ NiO(cr)C
 {
     specie
     {
-        nMoles          1;
         molWeight       74.7094;
     }
     thermodynamics
@@ -34204,7 +32068,6 @@ SiC2
 {
     specie
     {
-        nMoles          1;
         molWeight       52.1083;
     }
     thermodynamics
@@ -34220,7 +32083,6 @@ C20H38O2_EtOleate
 {
     specie
     {
-        nMoles          1;
         molWeight       310.525;
     }
     thermodynamics
@@ -34236,7 +32098,6 @@ beta_HMX__198-54
 {
     specie
     {
-        nMoles          1;
         molWeight       296.157;
     }
     thermodynamics
@@ -34252,7 +32113,6 @@ Rn
 {
     specie
     {
-        nMoles          1;
         molWeight       222;
     }
     thermodynamics
@@ -34268,7 +32128,6 @@ NH4NO3(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       80.0435;
     }
     thermodynamics
@@ -34284,7 +32143,6 @@ CH2O2-__CH2(OO)-
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0264;
     }
     thermodynamics
@@ -34300,7 +32158,6 @@ C7H8(L)_Toluene
 {
     specie
     {
-        nMoles          1;
         molWeight       92.1418;
     }
     thermodynamics
@@ -34316,7 +32173,6 @@ CrCl
 {
     specie
     {
-        nMoles          1;
         molWeight       87.449;
     }
     thermodynamics
@@ -34332,7 +32188,6 @@ Jet-A(L)_C12H23
 {
     specie
     {
-        nMoles          1;
         molWeight       167.317;
     }
     thermodynamics
@@ -34348,7 +32203,6 @@ OS(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       190.2;
     }
     thermodynamics
@@ -34364,7 +32218,6 @@ C15H32_n-PentaDe
 {
     specie
     {
-        nMoles          1;
         molWeight       198.395;
     }
     thermodynamics
@@ -34380,7 +32233,6 @@ PO-_Polonium_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       210.001;
     }
     thermodynamics
@@ -34396,7 +32248,6 @@ Br2S
 {
     specie
     {
-        nMoles          1;
         molWeight       191.866;
     }
     thermodynamics
@@ -34412,7 +32263,6 @@ O-C12D9_________O-
 {
     specie
     {
-        nMoles          1;
         molWeight       162.261;
     }
     thermodynamics
@@ -34428,7 +32278,6 @@ GeBr
 {
     specie
     {
-        nMoles          1;
         molWeight       152.491;
     }
     thermodynamics
@@ -34444,7 +32293,6 @@ C6H6(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -34460,7 +32308,6 @@ C4H7__trans-2-Bu
 {
     specie
     {
-        nMoles          1;
         molWeight       55.1004;
     }
     thermodynamics
@@ -34476,7 +32323,6 @@ Ni3S2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       240.258;
     }
     thermodynamics
@@ -34492,7 +32338,6 @@ N2O3-_ONONO-
 {
     specie
     {
-        nMoles          1;
         molWeight       76.0121;
     }
     thermodynamics
@@ -34508,7 +32353,6 @@ C5H5O2__2-Penten
 {
     specie
     {
-        nMoles          1;
         molWeight       97.0944;
     }
     thermodynamics
@@ -34524,7 +32368,6 @@ C2H5O2__C2H5OO
 {
     specie
     {
-        nMoles          1;
         molWeight       61.061;
     }
     thermodynamics
@@ -34540,7 +32383,6 @@ C6H4(C2H)CH=CH*
 {
     specie
     {
-        nMoles          1;
         molWeight       127.167;
     }
     thermodynamics
@@ -34556,7 +32398,6 @@ CF3+
 {
     specie
     {
-        nMoles          1;
         molWeight       69.0058;
     }
     thermodynamics
@@ -34572,7 +32413,6 @@ O(CH)2O_Glyoxal
 {
     specie
     {
-        nMoles          1;
         molWeight       58.037;
     }
     thermodynamics
@@ -34588,7 +32428,6 @@ Fe(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       55.847;
     }
     thermodynamics
@@ -34604,7 +32443,6 @@ W
 {
     specie
     {
-        nMoles          1;
         molWeight       183.85;
     }
     thermodynamics
@@ -34620,7 +32458,6 @@ C19H36O2_meOleic
 {
     specie
     {
-        nMoles          1;
         molWeight       296.498;
     }
     thermodynamics
@@ -34636,7 +32473,6 @@ MgCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       95.218;
     }
     thermodynamics
@@ -34652,7 +32488,6 @@ C10H15_JP10_RAD.
 {
     specie
     {
-        nMoles          1;
         molWeight       135.231;
     }
     thermodynamics
@@ -34668,7 +32503,6 @@ B2F4
 {
     specie
     {
-        nMoles          1;
         molWeight       97.6156;
     }
     thermodynamics
@@ -34684,7 +32518,6 @@ C6H6_1,3-Butadie
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -34700,7 +32533,6 @@ MgCl2(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       95.218;
     }
     thermodynamics
@@ -34716,7 +32548,6 @@ Xe
 {
     specie
     {
-        nMoles          1;
         molWeight       131.3;
     }
     thermodynamics
@@ -34732,7 +32563,6 @@ GeS2(II)(s)
 {
     specie
     {
-        nMoles          1;
         molWeight       136.718;
     }
     thermodynamics
@@ -34748,7 +32578,6 @@ Al2O
 {
     specie
     {
-        nMoles          1;
         molWeight       69.9624;
     }
     thermodynamics
@@ -34764,7 +32593,6 @@ CuO
 {
     specie
     {
-        nMoles          1;
         molWeight       79.5394;
     }
     thermodynamics
@@ -34780,7 +32608,6 @@ Mg2SiO4(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       140.708;
     }
     thermodynamics
@@ -34796,7 +32623,6 @@ SCl2+
 {
     specie
     {
-        nMoles          1;
         molWeight       102.969;
     }
     thermodynamics
@@ -34812,7 +32638,6 @@ C20H32O2_Arachid
 {
     specie
     {
-        nMoles          1;
         molWeight       304.477;
     }
     thermodynamics
@@ -34828,7 +32653,6 @@ Sb4__tetrahedron
 {
     specie
     {
-        nMoles          1;
         molWeight       487;
     }
     thermodynamics
@@ -34844,7 +32668,6 @@ CH4___ANHARMONIC
 {
     specie
     {
-        nMoles          1;
         molWeight       16.043;
     }
     thermodynamics
@@ -34860,7 +32683,6 @@ B2H2
 {
     specie
     {
-        nMoles          1;
         molWeight       23.6379;
     }
     thermodynamics
@@ -34876,7 +32698,6 @@ C2Cl5___Pentachl
 {
     specie
     {
-        nMoles          1;
         molWeight       201.287;
     }
     thermodynamics
@@ -34892,7 +32713,6 @@ C2Br3
 {
     specie
     {
-        nMoles          1;
         molWeight       263.725;
     }
     thermodynamics
@@ -34908,7 +32728,6 @@ C4H6_Dime_acetylen
 {
     specie
     {
-        nMoles          1;
         molWeight       54.0924;
     }
     thermodynamics
@@ -34924,7 +32743,6 @@ CHF2Br_HBFC-22B1
 {
     specie
     {
-        nMoles          1;
         molWeight       130.917;
     }
     thermodynamics
@@ -34940,7 +32758,6 @@ CNN-
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0251;
     }
     thermodynamics
@@ -34956,7 +32773,6 @@ CH2=CHO*__Vinyl-
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0456;
     }
     thermodynamics
@@ -34972,7 +32788,6 @@ p-C6H4I2
 {
     specie
     {
-        nMoles          1;
         molWeight       329.908;
     }
     thermodynamics
@@ -34988,7 +32803,6 @@ C9H12__propylben
 {
     specie
     {
-        nMoles          1;
         molWeight       120.196;
     }
     thermodynamics
@@ -35004,7 +32818,6 @@ ClO
 {
     specie
     {
-        nMoles          1;
         molWeight       51.4524;
     }
     thermodynamics
@@ -35020,7 +32833,6 @@ C18H15N__Triphamin
 {
     specie
     {
-        nMoles          1;
         molWeight       245.327;
     }
     thermodynamics
@@ -35036,7 +32848,6 @@ C8H7___1,3,5,7_Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       103.145;
     }
     thermodynamics
@@ -35052,7 +32863,6 @@ PbS(cr)__GALENA
 {
     specie
     {
-        nMoles          1;
         molWeight       239.254;
     }
     thermodynamics
@@ -35068,7 +32878,6 @@ MgBr2
 {
     specie
     {
-        nMoles          1;
         molWeight       184.114;
     }
     thermodynamics
@@ -35084,7 +32893,6 @@ C4H2+__DiAcetyle
 {
     specie
     {
-        nMoles          1;
         molWeight       50.06;
     }
     thermodynamics
@@ -35100,7 +32908,6 @@ KNO3(a)_Rhombic
 {
     specie
     {
-        nMoles          1;
         molWeight       101.107;
     }
     thermodynamics
@@ -35116,7 +32923,6 @@ C2HCl3
 {
     specie
     {
-        nMoles          1;
         molWeight       165.834;
     }
     thermodynamics
@@ -35132,7 +32938,6 @@ C5H5N5O__Guanine
 {
     specie
     {
-        nMoles          1;
         molWeight       151.129;
     }
     thermodynamics
@@ -35148,7 +32953,6 @@ s-1-C10H7-CH2*
 {
     specie
     {
-        nMoles          1;
         molWeight       141.194;
     }
     thermodynamics
@@ -35164,7 +32968,6 @@ C16H320O2_etMyrist
 {
     specie
     {
-        nMoles          1;
         molWeight       256.432;
     }
     thermodynamics
@@ -35180,7 +32983,6 @@ PH3_RRHO
 {
     specie
     {
-        nMoles          1;
         molWeight       33.9977;
     }
     thermodynamics
@@ -35196,7 +32998,6 @@ C4H6Cl2_1,4-DiCl
 {
     specie
     {
-        nMoles          1;
         molWeight       124.998;
     }
     thermodynamics
@@ -35212,7 +33013,6 @@ CHBr2Cl
 {
     specie
     {
-        nMoles          1;
         molWeight       208.274;
     }
     thermodynamics
@@ -35228,7 +33028,6 @@ HNO2-_cis____HF2
 {
     specie
     {
-        nMoles          1;
         molWeight       47.014;
     }
     thermodynamics
@@ -35244,7 +33043,6 @@ C2F6____FC-116
 {
     specie
     {
-        nMoles          1;
         molWeight       138.013;
     }
     thermodynamics
@@ -35260,7 +33058,6 @@ ClC2H4OH__ATcT_C
 {
     specie
     {
-        nMoles          1;
         molWeight       80.5146;
     }
     thermodynamics
@@ -35276,7 +33073,6 @@ AlBr
 {
     specie
     {
-        nMoles          1;
         molWeight       106.882;
     }
     thermodynamics
@@ -35292,7 +33088,6 @@ C6Cr23
 {
     specie
     {
-        nMoles          1;
         molWeight       1267.97;
     }
     thermodynamics
@@ -35308,7 +33103,6 @@ C6H6_1,3-Hexadie
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -35324,7 +33118,6 @@ Na2O
 {
     specie
     {
-        nMoles          1;
         molWeight       61.979;
     }
     thermodynamics
@@ -35340,7 +33133,6 @@ CHCl
 {
     specie
     {
-        nMoles          1;
         molWeight       48.4721;
     }
     thermodynamics
@@ -35356,7 +33148,6 @@ CH4____RRHO
 {
     specie
     {
-        nMoles          1;
         molWeight       16.043;
     }
     thermodynamics
@@ -35372,7 +33163,6 @@ C4H10_n-butane
 {
     specie
     {
-        nMoles          1;
         molWeight       58.1243;
     }
     thermodynamics
@@ -35388,7 +33178,6 @@ ClI__Iodine_Chlo
 {
     specie
     {
-        nMoles          1;
         molWeight       162.357;
     }
     thermodynamics
@@ -35404,7 +33193,6 @@ C4F6_CycloButene
 {
     specie
     {
-        nMoles          1;
         molWeight       162.035;
     }
     thermodynamics
@@ -35420,7 +33208,6 @@ C24Cl12_Coronene
 {
     specie
     {
-        nMoles          1;
         molWeight       713.704;
     }
     thermodynamics
@@ -35436,7 +33223,6 @@ O2-
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9993;
     }
     thermodynamics
@@ -35452,7 +33238,6 @@ SD
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0781;
     }
     thermodynamics
@@ -35468,7 +33253,6 @@ C3H2F4_CF3-CF=CF3
 {
     specie
     {
-        nMoles          1;
         molWeight       114.043;
     }
     thermodynamics
@@ -35484,7 +33268,6 @@ BF4-
 {
     specie
     {
-        nMoles          1;
         molWeight       86.8051;
     }
     thermodynamics
@@ -35500,7 +33283,6 @@ NO2HCCNO2_radical
 {
     specie
     {
-        nMoles          1;
         molWeight       117.041;
     }
     thermodynamics
@@ -35516,7 +33298,6 @@ C4H5O2_E-Crotoat
 {
     specie
     {
-        nMoles          1;
         molWeight       85.0833;
     }
     thermodynamics
@@ -35532,7 +33313,6 @@ MgF2+
 {
     specie
     {
-        nMoles          1;
         molWeight       62.3083;
     }
     thermodynamics
@@ -35548,7 +33328,6 @@ C14H30_Tetradecan
 {
     specie
     {
-        nMoles          1;
         molWeight       198.395;
     }
     thermodynamics
@@ -35564,7 +33343,6 @@ SF3+
 {
     specie
     {
-        nMoles          1;
         molWeight       89.0587;
     }
     thermodynamics
@@ -35580,7 +33358,6 @@ H2+
 {
     specie
     {
-        nMoles          1;
         molWeight       2.0154;
     }
     thermodynamics
@@ -35596,7 +33373,6 @@ C3H8O_2propanol
 {
     specie
     {
-        nMoles          1;
         molWeight       60.0966;
     }
     thermodynamics
@@ -35612,7 +33388,6 @@ BrO2__Br-O-O
 {
     specie
     {
-        nMoles          1;
         molWeight       111.9;
     }
     thermodynamics
@@ -35628,7 +33403,6 @@ NH+
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0141;
     }
     thermodynamics
@@ -35644,7 +33418,6 @@ C6H5ClO__2,5-cyc
 {
     specie
     {
-        nMoles          1;
         molWeight       128.559;
     }
     thermodynamics
@@ -35660,7 +33433,6 @@ C7H8__1,6-diyne
 {
     specie
     {
-        nMoles          1;
         molWeight       92.1418;
     }
     thermodynamics
@@ -35676,7 +33448,6 @@ CHCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       83.9251;
     }
     thermodynamics
@@ -35692,7 +33463,6 @@ C2H3I_Iodoethyle
 {
     specie
     {
-        nMoles          1;
         molWeight       153.951;
     }
     thermodynamics
@@ -35708,7 +33478,6 @@ CH2N__H*C=NH__cis
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0338;
     }
     thermodynamics
@@ -35724,7 +33493,6 @@ Na(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       22.9898;
     }
     thermodynamics
@@ -35740,7 +33508,6 @@ B(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       10.811;
     }
     thermodynamics
@@ -35756,7 +33523,6 @@ C10H2__linear
 {
     specie
     {
-        nMoles          1;
         molWeight       122.127;
     }
     thermodynamics
@@ -35772,7 +33538,6 @@ B3O3F3
 {
     specie
     {
-        nMoles          1;
         molWeight       137.426;
     }
     thermodynamics
@@ -35788,7 +33553,6 @@ PbCl
 {
     specie
     {
-        nMoles          1;
         molWeight       242.643;
     }
     thermodynamics
@@ -35804,7 +33568,6 @@ C2H5OH(L)_McBrid
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0695;
     }
     thermodynamics
@@ -35820,7 +33583,6 @@ C10_linear_triple
 {
     specie
     {
-        nMoles          1;
         molWeight       120.112;
     }
     thermodynamics
@@ -35836,7 +33598,6 @@ C2Cl2F4__FC-114
 {
     specie
     {
-        nMoles          1;
         molWeight       170.922;
     }
     thermodynamics
@@ -35852,7 +33613,6 @@ H2S2__H-S-S-H
 {
     specie
     {
-        nMoles          1;
         molWeight       66.1439;
     }
     thermodynamics
@@ -35868,7 +33628,6 @@ MgO
 {
     specie
     {
-        nMoles          1;
         molWeight       40.3114;
     }
     thermodynamics
@@ -35884,7 +33643,6 @@ C4H8,cis2-buten
 {
     specie
     {
-        nMoles          1;
         molWeight       56.1084;
     }
     thermodynamics
@@ -35900,7 +33658,6 @@ Si
 {
     specie
     {
-        nMoles          1;
         molWeight       28.086;
     }
     thermodynamics
@@ -35916,7 +33673,6 @@ C7H5NS_Benzothiaz
 {
     specie
     {
-        nMoles          1;
         molWeight       135.189;
     }
     thermodynamics
@@ -35932,7 +33688,6 @@ AlCl2
 {
     specie
     {
-        nMoles          1;
         molWeight       97.8875;
     }
     thermodynamics
@@ -35948,7 +33703,6 @@ s-(CH3)3COOC(CH3)
 {
     specie
     {
-        nMoles          1;
         molWeight       146.231;
     }
     thermodynamics
@@ -35964,7 +33718,6 @@ H7F7
 {
     specie
     {
-        nMoles          1;
         molWeight       140.045;
     }
     thermodynamics
@@ -35980,7 +33733,6 @@ C2H3F
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0446;
     }
     thermodynamics
@@ -35996,7 +33748,6 @@ C3H5_Cyclopropyl
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0733;
     }
     thermodynamics
@@ -36012,7 +33763,6 @@ NSC3H3_IsoThiazole
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1281;
     }
     thermodynamics
@@ -36028,7 +33778,6 @@ PbS(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       239.254;
     }
     thermodynamics
@@ -36044,7 +33793,6 @@ COF2-_anion
 {
     specie
     {
-        nMoles          1;
         molWeight       66.0079;
     }
     thermodynamics
@@ -36060,7 +33808,6 @@ CN
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0179;
     }
     thermodynamics
@@ -36076,7 +33823,6 @@ C3H6O2_Meacetate
 {
     specie
     {
-        nMoles          1;
         molWeight       74.0801;
     }
     thermodynamics
@@ -36092,7 +33838,6 @@ C6H9__C5H7-3-CH2*
 {
     specie
     {
-        nMoles          1;
         molWeight       81.1386;
     }
     thermodynamics
@@ -36108,7 +33853,6 @@ IO2__I-O-O
 {
     specie
     {
-        nMoles          1;
         molWeight       158.903;
     }
     thermodynamics
@@ -36124,7 +33868,6 @@ C2H3+__Vinylium
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0457;
     }
     thermodynamics
@@ -36140,7 +33883,6 @@ K
 {
     specie
     {
-        nMoles          1;
         molWeight       39.102;
     }
     thermodynamics
@@ -36156,7 +33898,6 @@ ZrO2
 {
     specie
     {
-        nMoles          1;
         molWeight       123.219;
     }
     thermodynamics
@@ -36172,7 +33913,6 @@ D-
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01464;
     }
     thermodynamics
@@ -36188,7 +33928,6 @@ HNO3+
 {
     specie
     {
-        nMoles          1;
         molWeight       63.0123;
     }
     thermodynamics
@@ -36204,7 +33943,6 @@ CClF
 {
     specie
     {
-        nMoles          1;
         molWeight       66.4626;
     }
     thermodynamics
@@ -36220,7 +33958,6 @@ C6H12,cyclo-
 {
     specie
     {
-        nMoles          1;
         molWeight       84.1625;
     }
     thermodynamics
@@ -36236,7 +33973,6 @@ s-(-ClC=C=CCl-)_cy
 {
     specie
     {
-        nMoles          1;
         molWeight       106.939;
     }
     thermodynamics
@@ -36252,7 +33988,6 @@ CN+
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0173;
     }
     thermodynamics
@@ -36268,7 +34003,6 @@ S2O
 {
     specie
     {
-        nMoles          1;
         molWeight       80.1274;
     }
     thermodynamics
@@ -36284,7 +34018,6 @@ Hg(cr)
 {
     specie
     {
-        nMoles          1;
         molWeight       200.59;
     }
     thermodynamics
@@ -36300,7 +34033,6 @@ GeS(s)
 {
     specie
     {
-        nMoles          1;
         molWeight       104.654;
     }
     thermodynamics
@@ -36316,7 +34048,6 @@ D2O
 {
     specie
     {
-        nMoles          1;
         molWeight       20.0276;
     }
     thermodynamics
@@ -36332,7 +34063,6 @@ DOT__Water-DT
 {
     specie
     {
-        nMoles          1;
         molWeight       65.9135;
     }
     thermodynamics
@@ -36348,7 +34078,6 @@ B2H6
 {
     specie
     {
-        nMoles          1;
         molWeight       27.6698;
     }
     thermodynamics
@@ -36364,7 +34093,6 @@ TRI-NITRO_BENZEN
 {
     specie
     {
-        nMoles          1;
         molWeight       213.107;
     }
     thermodynamics
@@ -36380,7 +34108,6 @@ SiF3
 {
     specie
     {
-        nMoles          1;
         molWeight       85.0812;
     }
     thermodynamics
@@ -36396,7 +34123,6 @@ C3H7NO3_NPN
 {
     specie
     {
-        nMoles          1;
         molWeight       105.094;
     }
     thermodynamics
@@ -36412,7 +34138,6 @@ air
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9644;
     }
     thermodynamics
@@ -36428,7 +34153,6 @@ C6H5I_Iodobenzen
 {
     specie
     {
-        nMoles          1;
         molWeight       204.011;
     }
     thermodynamics
@@ -36444,7 +34168,6 @@ o-C6H5ClO_trans(E)
 {
     specie
     {
-        nMoles          1;
         molWeight       163.004;
     }
     thermodynamics
@@ -36460,7 +34183,6 @@ C4H5N3O__Cytosine
 {
     specie
     {
-        nMoles          1;
         molWeight       111.104;
     }
     thermodynamics
@@ -36476,7 +34198,6 @@ HOF+_Hypoflorous
 {
     specie
     {
-        nMoles          1;
         molWeight       36.0052;
     }
     thermodynamics
@@ -36492,7 +34213,6 @@ BOF
 {
     specie
     {
-        nMoles          1;
         molWeight       45.8088;
     }
     thermodynamics
@@ -36508,7 +34228,6 @@ C4H8O4_Tetraoxocan
 {
     specie
     {
-        nMoles          1;
         molWeight       120.106;
     }
     thermodynamics
@@ -36524,7 +34243,6 @@ HNO+
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0135;
     }
     thermodynamics
@@ -36540,7 +34258,6 @@ Fe2O3(S)_Solid-A
 {
     specie
     {
-        nMoles          1;
         molWeight       159.692;
     }
     thermodynamics
@@ -36556,7 +34273,6 @@ CH3NO__CH2=N-OH
 {
     specie
     {
-        nMoles          1;
         molWeight       45.0412;
     }
     thermodynamics
@@ -36572,7 +34288,6 @@ C10H15_RADICAL
 {
     specie
     {
-        nMoles          1;
         molWeight       135.231;
     }
     thermodynamics
@@ -36588,7 +34303,6 @@ C5H4OH_Cyclo-2,4
 {
     specie
     {
-        nMoles          1;
         molWeight       81.095;
     }
     thermodynamics
@@ -36604,7 +34318,6 @@ C6H13__2M-1yl
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1705;
     }
     thermodynamics
@@ -36620,7 +34333,6 @@ N2H3-_Hydrazine
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0379;
     }
     thermodynamics
@@ -36636,7 +34348,6 @@ C3H2(3)_H2C*-CC*
 {
     specie
     {
-        nMoles          1;
         molWeight       38.0494;
     }
     thermodynamics
@@ -36652,7 +34363,6 @@ CH_excited_A2DEL
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0191;
     }
     thermodynamics
@@ -36668,7 +34378,6 @@ C4H5N_Cy-C3H5-CN
 {
     specie
     {
-        nMoles          1;
         molWeight       67.0911;
     }
     thermodynamics
@@ -36684,7 +34393,6 @@ K2CO3
 {
     specie
     {
-        nMoles          1;
         molWeight       138.213;
     }
     thermodynamics
@@ -36700,7 +34408,6 @@ C6Cl6_Hexachloro
 {
     specie
     {
-        nMoles          1;
         molWeight       284.785;
     }
     thermodynamics
@@ -36716,7 +34423,6 @@ BrO3
 {
     specie
     {
-        nMoles          1;
         molWeight       127.899;
     }
     thermodynamics
@@ -36732,7 +34438,6 @@ C8H10_1,4-dimeth
 {
     specie
     {
-        nMoles          1;
         molWeight       106.169;
     }
     thermodynamics
@@ -36748,7 +34453,6 @@ HO3+_equil__HOOO
 {
     specie
     {
-        nMoles          1;
         molWeight       49.0056;
     }
     thermodynamics
@@ -36764,7 +34468,6 @@ OH-
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0079;
     }
     thermodynamics
@@ -36780,7 +34483,6 @@ C6H5NH2(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       93.1294;
     }
     thermodynamics
@@ -36796,7 +34498,6 @@ CH2O+_Fornald_cati
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0259;
     }
     thermodynamics
@@ -36812,7 +34513,6 @@ C12H6Cl2O
 {
     specie
     {
-        nMoles          1;
         molWeight       237.087;
     }
     thermodynamics
@@ -36828,7 +34528,6 @@ CD3NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       64.0589;
     }
     thermodynamics
@@ -36844,7 +34543,6 @@ DF
 {
     specie
     {
-        nMoles          1;
         molWeight       21.0125;
     }
     thermodynamics
@@ -36860,7 +34558,6 @@ C4H4O_Furan
 {
     specie
     {
-        nMoles          1;
         molWeight       68.0759;
     }
     thermodynamics
@@ -36876,7 +34573,6 @@ C3H4_ALLENE
 {
     specie
     {
-        nMoles          1;
         molWeight       40.0653;
     }
     thermodynamics
@@ -36892,7 +34588,6 @@ C2H6S_(CH3SCH3)
 {
     specie
     {
-        nMoles          1;
         molWeight       62.1341;
     }
     thermodynamics
@@ -36908,7 +34603,6 @@ CNO__(NCO)
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0173;
     }
     thermodynamics
@@ -36924,7 +34618,6 @@ NT3__Tritium_Amo
 {
     specie
     {
-        nMoles          1;
         molWeight       157.707;
     }
     thermodynamics
@@ -36940,7 +34633,6 @@ Na2O(L)
 {
     specie
     {
-        nMoles          1;
         molWeight       61.979;
     }
     thermodynamics
@@ -36956,7 +34648,6 @@ CH2BrCOOH
 {
     specie
     {
-        nMoles          1;
         molWeight       138.946;
     }
     thermodynamics
@@ -36972,7 +34663,6 @@ N2O4__O2NNO2
 {
     specie
     {
-        nMoles          1;
         molWeight       92.011;
     }
     thermodynamics
@@ -36988,7 +34678,6 @@ C7H9__C5H4(CH3)=
 {
     specie
     {
-        nMoles          1;
         molWeight       93.1498;
     }
     thermodynamics
@@ -37004,7 +34693,6 @@ NO2+_cyclo_N(OO)
 {
     specie
     {
-        nMoles          1;
         molWeight       46.005;
     }
     thermodynamics
@@ -37020,7 +34708,6 @@ HNO2+_trans_&_eq
 {
     specie
     {
-        nMoles          1;
         molWeight       47.0129;
     }
     thermodynamics
@@ -37036,7 +34723,6 @@ C3H3_1-propynyl
 {
     specie
     {
-        nMoles          1;
         molWeight       39.0574;
     }
     thermodynamics
@@ -37052,7 +34738,6 @@ C6H6__1,2-Hexadi
 {
     specie
     {
-        nMoles          1;
         molWeight       78.1147;
     }
     thermodynamics
@@ -37068,7 +34753,6 @@ PbI3
 {
     specie
     {
-        nMoles          1;
         molWeight       587.903;
     }
     thermodynamics
@@ -37084,7 +34768,6 @@ C5H10O2_Butyrate
 {
     specie
     {
-        nMoles          1;
         molWeight       102.134;
     }
     thermodynamics
@@ -37100,7 +34783,6 @@ N4+_cyclo
 {
     specie
     {
-        nMoles          1;
         molWeight       56.0263;
     }
     thermodynamics
@@ -37116,7 +34798,6 @@ C8H7___2,3,5,7_Cy
 {
     specie
     {
-        nMoles          1;
         molWeight       103.145;
     }
     thermodynamics
@@ -37132,7 +34813,6 @@ ZrO2(III)
 {
     specie
     {
-        nMoles          1;
         molWeight       123.219;
     }
     thermodynamics
@@ -37148,7 +34828,6 @@ C6H13__2M-4yl
 {
     specie
     {
-        nMoles          1;
         molWeight       85.1705;
     }
     thermodynamics
@@ -37164,7 +34843,6 @@ C2H5OH+_Ethanol+
 {
     specie
     {
-        nMoles          1;
         molWeight       46.069;
     }
     thermodynamics
@@ -37180,7 +34858,6 @@ C9H18_1-nonene
 {
     specie
     {
-        nMoles          1;
         molWeight       126.244;
     }
     thermodynamics
@@ -37196,7 +34873,6 @@ S(b)
 {
     specie
     {
-        nMoles          1;
         molWeight       32.064;
     }
     thermodynamics
@@ -37212,7 +34888,6 @@ Pd+__Paladium__C
 {
     specie
     {
-        nMoles          1;
         molWeight       106.399;
     }
     thermodynamics
@@ -37228,7 +34903,6 @@ C70_FOOTBALLENE
 {
     specie
     {
-        nMoles          1;
         molWeight       840.781;
     }
     thermodynamics
@@ -37244,7 +34918,6 @@ Mg(OH)2
 {
     specie
     {
-        nMoles          1;
         molWeight       58.3267;
     }
     thermodynamics
@@ -37260,7 +34933,6 @@ H+
 {
     specie
     {
-        nMoles          1;
         molWeight       1.00743;
     }
     thermodynamics
@@ -37276,7 +34948,6 @@ CH3Hg
 {
     specie
     {
-        nMoles          1;
         molWeight       215.625;
     }
     thermodynamics
@@ -37292,7 +34963,6 @@ C4H7O2_EtAcetat_R
 {
     specie
     {
-        nMoles          1;
         molWeight       87.0992;
     }
     thermodynamics
@@ -37308,7 +34978,6 @@ C2H6-_Ethane_ani
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0707;
     }
     thermodynamics
@@ -37324,7 +34993,6 @@ C3H5O2_Propionic
 {
     specie
     {
-        nMoles          1;
         molWeight       73.0721;
     }
     thermodynamics
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
index 23dedf0b07b..af6c701bc76 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,6 @@ Usage
         // Solid thermo
         specie
         {
-            nMoles          1;
             molWeight       20;
         }
         transport
diff --git a/src/lagrangian/coalCombustion/Make/options b/src/lagrangian/coalCombustion/Make/options
index 04b133ba053..10c855cf41f 100644
--- a/src/lagrangian/coalCombustion/Make/options
+++ b/src/lagrangian/coalCombustion/Make/options
@@ -6,9 +6,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
@@ -31,9 +29,7 @@ LIB_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/lagrangian/intermediate/Make/options b/src/lagrangian/intermediate/Make/options
index a5a3b3c8ebd..e1ec44b4b65 100644
--- a/src/lagrangian/intermediate/Make/options
+++ b/src/lagrangian/intermediate/Make/options
@@ -5,9 +5,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
@@ -26,9 +24,7 @@ LIB_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/lagrangian/spray/Make/options b/src/lagrangian/spray/Make/options
index 3b5a4e72e95..51974e3c995 100644
--- a/src/lagrangian/spray/Make/options
+++ b/src/lagrangian/spray/Make/options
@@ -7,9 +7,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
@@ -33,9 +31,7 @@ LIB_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/lagrangian/turbulence/Make/options b/src/lagrangian/turbulence/Make/options
index 7b2fc4bea88..825da6fbb80 100644
--- a/src/lagrangian/turbulence/Make/options
+++ b/src/lagrangian/turbulence/Make/options
@@ -6,9 +6,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
@@ -31,9 +29,7 @@ LIB_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/regionModels/regionCoupling/Make/options b/src/regionModels/regionCoupling/Make/options
index 379349b0452..90d6d183b09 100644
--- a/src/regionModels/regionCoupling/Make/options
+++ b/src/regionModels/regionCoupling/Make/options
@@ -7,9 +7,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude\
     -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/solidSpecie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
diff --git a/src/regionModels/surfaceFilmModels/Make/options b/src/regionModels/surfaceFilmModels/Make/options
index a0eb4828eaa..a5311a2cc83 100644
--- a/src/regionModels/surfaceFilmModels/Make/options
+++ b/src/regionModels/surfaceFilmModels/Make/options
@@ -3,9 +3,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
@@ -18,9 +16,7 @@ LIB_LIBS = \
     -lfluidThermophysicalModels \
     -lspecie \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -ldistributionModels \
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options
index c736bdc8265..8ea8ffa2e91 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options
@@ -3,9 +3,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
@@ -20,9 +18,7 @@ LIB_LIBS = \
     -lfluidThermophysicalModels \
     -lspecie \
     -lliquidProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
-    -lsolidMixtureProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lturbulenceModels \
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
index 824dd5a203e..6c511cc5499 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -189,7 +189,7 @@ scalar liquidFilmThermo::kappa
     const scalar T
 ) const
 {
-    return liquidPtr_->K(p, T);
+    return liquidPtr_->kappa(p, T);
 }
 
 
diff --git a/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H b/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
index 0bb7a092ced..b29bab13a4e 100644
--- a/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
+++ b/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,6 @@ Usage
         {
             specie
             {
-                nMoles          1;
                 molWeight       20;
             }
             transport
diff --git a/src/thermophysicalModels/SLGThermo/Make/options b/src/thermophysicalModels/SLGThermo/Make/options
index c4f0b2a8a95..37e3533de0d 100644
--- a/src/thermophysicalModels/SLGThermo/Make/options
+++ b/src/thermophysicalModels/SLGThermo/Make/options
@@ -3,9 +3,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
 
diff --git a/src/thermophysicalModels/basic/heThermo/heThermo.C b/src/thermophysicalModels/basic/heThermo/heThermo.C
index 280b33999cf..c06ffb75d79 100644
--- a/src/thermophysicalModels/basic/heThermo/heThermo.C
+++ b/src/thermophysicalModels/basic/heThermo/heThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -456,11 +456,11 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::gamma
 ) const
 {
     tmp<scalarField> tgamma(new scalarField(T.size()));
-    scalarField& cpv = tgamma.ref();
+    scalarField& gamma = tgamma.ref();
 
     forAll(T, facei)
     {
-        cpv[facei] =
+        gamma[facei] =
             this->patchFaceMixture(patchi, facei).gamma(p[facei], T[facei]);
     }
 
@@ -531,11 +531,11 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cpv
 ) const
 {
     tmp<scalarField> tCpv(new scalarField(T.size()));
-    scalarField& cpv = tCpv.ref();
+    scalarField& Cpv = tCpv.ref();
 
     forAll(T, facei)
     {
-        cpv[facei] =
+        Cpv[facei] =
             this->patchFaceMixture(patchi, facei).Cpv(p[facei], T[facei]);
     }
 
@@ -567,21 +567,21 @@ Foam::heThermo<BasicThermo, MixtureType>::Cpv() const
         )
     );
 
-    volScalarField& cpv = tCpv.ref();
+    volScalarField& Cpv = tCpv.ref();
 
     forAll(this->T_, celli)
     {
-        cpv[celli] =
+        Cpv[celli] =
             this->cellMixture(celli).Cpv(this->p_[celli], this->T_[celli]);
     }
 
-    volScalarField::Boundary& cpvBf = cpv.boundaryFieldRef();
+    volScalarField::Boundary& CpvBf = Cpv.boundaryFieldRef();
 
-    forAll(cpvBf, patchi)
+    forAll(CpvBf, patchi)
     {
         const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
         const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
-        fvPatchScalarField& pCpv = cpvBf[patchi];
+        fvPatchScalarField& pCpv = CpvBf[patchi];
 
         forAll(pT, facei)
         {
@@ -603,12 +603,12 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::CpByCpv
 ) const
 {
     tmp<scalarField> tCpByCpv(new scalarField(T.size()));
-    scalarField& cpByCpv = tCpByCpv.ref();
+    scalarField& CpByCpv = tCpByCpv.ref();
 
     forAll(T, facei)
     {
-        cpByCpv[facei] =
-            this->patchFaceMixture(patchi, facei).cpBycpv(p[facei], T[facei]);
+        CpByCpv[facei] =
+            this->patchFaceMixture(patchi, facei).CpByCpv(p[facei], T[facei]);
     }
 
     return tCpByCpv;
@@ -639,29 +639,29 @@ Foam::heThermo<BasicThermo, MixtureType>::CpByCpv() const
         )
     );
 
-    volScalarField& cpByCpv = tCpByCpv.ref();
+    volScalarField& CpByCpv = tCpByCpv.ref();
 
     forAll(this->T_, celli)
     {
-        cpByCpv[celli] = this->cellMixture(celli).cpBycpv
+        CpByCpv[celli] = this->cellMixture(celli).CpByCpv
         (
             this->p_[celli],
             this->T_[celli]
         );
     }
 
-    volScalarField::Boundary& cpByCpvBf =
-        cpByCpv.boundaryFieldRef();
+    volScalarField::Boundary& CpByCpvBf =
+        CpByCpv.boundaryFieldRef();
 
-    forAll(cpByCpvBf, patchi)
+    forAll(CpByCpvBf, patchi)
     {
         const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
         const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
-        fvPatchScalarField& pCpByCpv = cpByCpvBf[patchi];
+        fvPatchScalarField& pCpByCpv = CpByCpvBf[patchi];
 
         forAll(pT, facei)
         {
-            pCpByCpv[facei] = this->patchFaceMixture(patchi, facei).cpBycpv
+            pCpByCpv[facei] = this->patchFaceMixture(patchi, facei).CpByCpv
             (
                 pp[facei],
                 pT[facei]
diff --git a/src/thermophysicalModels/properties/Allwmake b/src/thermophysicalModels/properties/Allwmake
index 5ad45938fc0..0837290b627 100755
--- a/src/thermophysicalModels/properties/Allwmake
+++ b/src/thermophysicalModels/properties/Allwmake
@@ -5,8 +5,6 @@ cd ${0%/*} || exit 1    # Run from this directory
 . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
 
 wmake $targetType liquidProperties
-wmake $targetType liquidMixtureProperties
 wmake $targetType solidProperties
-wmake $targetType solidMixtureProperties
 
 #------------------------------------------------------------------------------
diff --git a/src/thermophysicalModels/properties/liquidMixtureProperties/Make/files b/src/thermophysicalModels/properties/liquidMixtureProperties/Make/files
deleted file mode 100644
index 4f0959cfc77..00000000000
--- a/src/thermophysicalModels/properties/liquidMixtureProperties/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-liquidMixtureProperties/liquidMixtureProperties.C
-
-LIB = $(FOAM_LIBBIN)/libliquidMixtureProperties
diff --git a/src/thermophysicalModels/properties/liquidMixtureProperties/Make/options b/src/thermophysicalModels/properties/liquidMixtureProperties/Make/options
deleted file mode 100644
index 6e1d19dbb60..00000000000
--- a/src/thermophysicalModels/properties/liquidMixtureProperties/Make/options
+++ /dev/null
@@ -1,10 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude
-
-LIB_LIBS = \
-    -lliquidProperties \
-    -lthermophysicalFunctions
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
index 8c1b9e04474..8a4844a7224 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
+++ b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,8 +78,8 @@ Foam::Ar::Ar()
     ),
     mu_(-8.868, 204.3, -0.3831, -1.3e-22, 10.0),
     mug_(8.386e-07, 0.6175, 75.377, -432.5),
-    K_(0.1819, -0.0003176, -4.11e-06, 0.0, 0.0, 0.0),
-    Kg_(0.0001236, 0.8262, -132.8, 16000),
+    kappa_(0.1819, -0.0003176, -4.11e-06, 0.0, 0.0, 0.0),
+    kappag_(0.0001236, 0.8262, -132.8, 16000),
     sigma_(150.86, 0.03823, 1.2927, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 39.948, 28) // note: Same as nHeptane
 {}
@@ -113,8 +113,8 @@ Foam::Ar::Ar
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -132,8 +132,8 @@ Foam::Ar::Ar(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -151,8 +151,8 @@ Foam::Ar::Ar(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -170,8 +170,8 @@ Foam::Ar::Ar(const Ar& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
index 40b76ae9a5a..c26405a96b1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
+++ b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class Ar
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/ArI.H b/src/thermophysicalModels/properties/liquidProperties/Ar/ArI.H
index 89100966eaa..81b12e11898 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Ar/ArI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/Ar/ArI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::Ar::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::Ar::K(scalar p, scalar T) const
+inline Foam::scalar Foam::Ar::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::Ar::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::Ar::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
index 853cb2fe2c9..6358c3bd4cd 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C10H22::C10H22()
     ),
     mu_(-16.468, 1533.5, 0.7511, 0.0, 0.0),
     mug_(2.64e-08, 0.9487, 71.0, 0.0),
-    K_(0.2063, -0.000254, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-668.4, 0.9323, -4071000000.0, 0.0),
+    kappa_(0.2063, -0.000254, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-668.4, 0.9323, -4071000000.0, 0.0),
     sigma_(617.70, 0.055435, 1.3095, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 142.285, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C10H22::C10H22
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C10H22::C10H22(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C10H22::C10H22(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C10H22::C10H22(const C10H22& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
index da0272542f5..bfa91a6a353 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C10H22
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22I.H b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22I.H
index 558516478ce..e6ea047fcac 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C10H22::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C10H22::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C10H22::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C10H22::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C10H22::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
index 4e4c6cf95bc..54a5124afb3 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,8 +78,8 @@ Foam::C12H26::C12H26()
     ),
     mu_(-20.607, 1943, 1.3205, 0.0, 0.0),
     mug_(6.344e-08, 0.8287, 219.5, 0.0),
-    K_(0.2047, -0.0002326, 0.0, 0.0, 0.0, 0.0),
-    Kg_(5.719e-06, 1.4699, 579.4, 0.0),
+    kappa_(0.2047, -0.0002326, 0.0, 0.0, 0.0, 0.0),
+    kappag_(5.719e-06, 1.4699, 579.4, 0.0),
     sigma_(658.0, 0.055493, 1.3262, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 170.338, 28.0) // note: Same as nHeptane
 {}
@@ -113,8 +113,8 @@ Foam::C12H26::C12H26
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -132,8 +132,8 @@ Foam::C12H26::C12H26(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -151,8 +151,8 @@ Foam::C12H26::C12H26(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -170,8 +170,8 @@ Foam::C12H26::C12H26(const C12H26& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
index e8fc1a2bfad..c665f2678c4 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C12H26
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26I.H b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26I.H
index 0cb385206eb..5a12631f146 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C12H26::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C12H26::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C12H26::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C12H26::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C12H26::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
index 566edd993ef..1f9eb06b666 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C13H28::C13H28()
     ),
     mu_(-23.341, 2121.9, 1.7208, 0.0, 0.0),
     mug_(3.5585e-08, 0.8987, 165.3, 0.0),
-    K_(0.1981, -0.0002046, 0.0, 0.0, 0.0, 0.0),
-    Kg_(5.3701e-06, 1.4751, 599.09, 0.0),
+    kappa_(0.1981, -0.0002046, 0.0, 0.0, 0.0, 0.0),
+    kappag_(5.3701e-06, 1.4751, 599.09, 0.0),
     sigma_(675.80, 0.05561, 1.3361, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 184.365, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C13H28::C13H28
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C13H28::C13H28(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C13H28::C13H28(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C13H28::C13H28(const C13H28& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
index de0a261a35f..6962ea8a515 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C13H28
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28I.H b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28I.H
index cafc579a87e..7f66e5f8ddf 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C13H28::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C13H28::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C13H28::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C13H28::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C13H28::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
index 3689c0d07e4..5c0cd60c50a 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C14H30::C14H30()
     ),
     mu_(-18.964, 2010.9, 1.0648, 0.0, 0.0),
     mug_(4.4565e-08, 0.8684, 228.16, -4347.2),
-    K_(0.1957, -0.0001993, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-0.000628, 0.944, -5490, 0.0),
+    kappa_(0.1957, -0.0001993, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-0.000628, 0.944, -5490, 0.0),
     sigma_(692.40, 0.056436, 1.3658, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 198.392, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C14H30::C14H30
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C14H30::C14H30(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C14H30::C14H30(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C14H30::C14H30(const C14H30& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
index a3955f6e9d6..f1ea7dff2ed 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C14H30
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30I.H b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30I.H
index f0f8a8db4d2..9a2771e8e50 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C14H30::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C14H30::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C14H30::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C14H30::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C14H30::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
index 38640fd6096..f583cc27164 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C16H34::C16H34()
     ),
     mu_(-18.388, 2056.8, 0.98681, 0.0, 0.0),
     mug_(1.2463e-07, 0.7322, 395.0, 6000.0),
-    K_(0.1963, -0.00019, 0.0, 0.0, 0.0, 0.0),
-    Kg_(3.075e-06, 1.552, 678.0, 0.0),
+    kappa_(0.1963, -0.00019, 0.0, 0.0, 0.0, 0.0),
+    kappag_(3.075e-06, 1.552, 678.0, 0.0),
     sigma_(720.60, 0.05699, 1.3929, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 226.446, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C16H34::C16H34
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C16H34::C16H34(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C16H34::C16H34(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C16H34::C16H34(const C16H34& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
index ac328a82eeb..e1c39b9a2e1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C16H34
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34I.H b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34I.H
index 284638014b5..bb2970d4bbe 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C16H34::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C16H34::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C16H34::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C16H34::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C16H34::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
index 55a4e1920a9..ad3a0b167b0 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C2H5OH::C2H5OH()
     ),
     mu_(8.049, 776, -3.068, 0.0, 0.0),
     mug_(1.0613e-07, 0.8066, 52.7, 0.0),
-    K_(0.253, -0.000281, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-3.12, 0.7152, -3550000.0, 0.0),
+    kappa_(0.253, -0.000281, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-3.12, 0.7152, -3550000.0, 0.0),
     sigma_(3.7640e-02, -2.1570e-05, -1.025e-07, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 46.069, 28) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C2H5OH::C2H5OH
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C2H5OH::C2H5OH(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C2H5OH::C2H5OH(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C2H5OH::C2H5OH(const C2H5OH& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
index 6a51c1f63b8..526d7fe49cb 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C2H5OH
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc0 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OHI.H b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OHI.H
index 7fe083d645d..968c5bfd676 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OHI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OHI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C2H5OH::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C2H5OH::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C2H5OH::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C2H5OH::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C2H5OH::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
index d755a010951..b118dc310df 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,8 +77,8 @@ Foam::C2H6::C2H6()
     ),
     mu_(-3.4134, 197.05, -1.2193, -9.2023e-26, 10.0),
     mug_(2.5906e-07, 0.67988, 98.902, 0.0),
-    K_(0.35758, -0.0011458, 6.1866e-07, 0.0, 0.0, 0.0),
-    Kg_(7.3869e-05, 1.1689, 500.73, 0.0),
+    kappa_(0.35758, -0.0011458, 6.1866e-07, 0.0, 0.0, 0.0),
+    kappag_(7.3869e-05, 1.1689, 500.73, 0.0),
     sigma_(305.32, 0.048643, 1.1981, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 30.070, 28) // note: Same as nHeptane
 {}
@@ -112,8 +112,8 @@ Foam::C2H6::C2H6
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -131,8 +131,8 @@ Foam::C2H6::C2H6(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -150,8 +150,8 @@ Foam::C2H6::C2H6(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -169,8 +169,8 @@ Foam::C2H6::C2H6(const C2H6& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
index 9bfa5e98207..74b7f1a0186 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C2H6
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6I.H b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6I.H
index f2005a7fcfe..62901b78291 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C2H6::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C2H6::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C2H6::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C2H6::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C2H6::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
index 475d6eccbea..1a9ba151a45 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C2H6O::C2H6O()
     ),
     mu_(-10.62, 448.99, 8.3967e-05, 0.0, 0.0),
     mug_(7.27, 0.1091, 440600000, 0.0),
-    K_(0.31276, -0.0005677, 0.0, 0.0, 0.0, 0.0),
-    Kg_(0.2247, 0.1026, 997.06, 1762900),
+    kappa_(0.31276, -0.0005677, 0.0, 0.0, 0.0, 0.0),
+    kappag_(0.2247, 0.1026, 997.06, 1762900),
     sigma_(400.10, 0.06096, 1.2286, 0, 0, 0),
     D_(147.18, 20.1, 46.069, 28) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C2H6O::C2H6O
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C2H6O::C2H6O(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C2H6O::C2H6O(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C2H6O::C2H6O(const C2H6O& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
index 0bb21316775..b85d7273ef2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C2H6O
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6OI.H b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6OI.H
index 97e2e769e9f..92ce3483fd8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6OI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C2H6O::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C2H6O::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C2H6O::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C2H6O::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C2H6O::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
index f100dbf2c41..d0e3a5c160c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C3H6O::C3H6O()
     ),
     mu_(-14.918, 1023.4, 0.5961, 0.0, 0.0),
     mug_(3.1005e-08, 0.9762, 23.139, 0.0),
-    K_(0.2502, -0.000298, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-26.8, 0.9098, -126500000, 0.0),
+    kappa_(0.2502, -0.000298, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-26.8, 0.9098, -126500000, 0.0),
     sigma_(508.20, 0.0622, 1.124, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 58.08, 28) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C3H6O::C3H6O
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C3H6O::C3H6O(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C3H6O::C3H6O(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C3H6O::C3H6O(const C3H6O& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
index 47d298f6238..3e58a5fb093 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C3H6O
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6OI.H b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6OI.H
index e99086a10e0..2b025bb37b4 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6OI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,15 +76,15 @@ inline Foam::scalar Foam::C3H6O::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C3H6O::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C3H6O::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C3H6O::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C3H6O::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
index bb4b2a2839c..669dd0056b9 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,8 +76,8 @@ Foam::C3H8::C3H8()
     ),
     mu_(-6.9281, 420.76, -0.63276, -1.713e-26, 10.0),
     mug_(2.4993e-07, 0.68612, 179.34, -8254.6),
-    K_(0.26755, -0.00066457, 2.774e-07, 0.0, 0.0, 0.0),
-    Kg_(-1.12, 0.10972, -9834.6, -7535800),
+    kappa_(0.26755, -0.00066457, 2.774e-07, 0.0, 0.0, 0.0),
+    kappag_(-1.12, 0.10972, -9834.6, -7535800),
     sigma_(369.83, 0.05092, 1.2197, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 44.096, 28) // note: Same as nHeptane
 {}
@@ -111,8 +111,8 @@ Foam::C3H8::C3H8
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -130,8 +130,8 @@ Foam::C3H8::C3H8(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -149,8 +149,8 @@ Foam::C3H8::C3H8(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -168,8 +168,8 @@ Foam::C3H8::C3H8(const C3H8& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
index 12a5c67ee97..ab345407e28 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C3H8
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8I.H b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8I.H
index ce54b116eb8..627ffee3937 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C3H8::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C3H8::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C3H8::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C3H8::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C3H8::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
index 06cfa49be6d..32e217cd4d5 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C4H10O::C4H10O()
     ),
     mu_(10.197, -63.8, -3.226, 0.0, 0.0),
     mug_(1.948e-06, 0.41, 495.8, 0.0),
-    K_(0.249, -0.0004005, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-0.0044894, 0.6155, -3266.3, 0.0),
+    kappa_(0.249, -0.0004005, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-0.0044894, 0.6155, -3266.3, 0.0),
     sigma_(466.70, 0.057356, 1.288, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 74.123, 28) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C4H10O::C4H10O
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C4H10O::C4H10O(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C4H10O::C4H10O(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C4H10O::C4H10O(const C4H10O& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
index 833377ae6ba..c3e04909cdf 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C4H10O
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10OI.H b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10OI.H
index cccec3594f8..29836f9ebd1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10OI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C4H10O::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C4H10O::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C4H10O::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C4H10O::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C4H10O::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
index 1dae3fe1b2a..0aa12512fd7 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C6H14::C6H14()
     ),
     mu_(-20.715, 1207.5, 1.4993, 0.0, 0.0),
     mug_(1.7514e-07, 0.70737, 157.14, 0.0),
-    K_(0.22492, -0.0003533, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-650.5, 0.8053, -1412100000, 0.0),
+    kappa_(0.22492, -0.0003533, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-650.5, 0.8053, -1412100000, 0.0),
     sigma_(507.60, 0.055003, 1.2674, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 86.177, 28) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C6H14::C6H14
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C6H14::C6H14(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C6H14::C6H14(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C6H14::C6H14(const C6H14& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
index 7034f06cb68..574b249b4d1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C6H14
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14I.H b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14I.H
index f9b89b42756..f88632998b3 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C6H14::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C6H14::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C6H14::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C6H14::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C6H14::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
index 4163583a3a4..ff3e040ef0d 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C6H6::C6H6()
     ),
     mu_(6.764, 336.4, -2.687, 0.0, 0.0),
     mug_(3.134e-08, 0.9676, 7.9, 0.0),
-    K_(0.2407, -0.0003202, 0.0, 0.0, 0.0, 0.0),
-    Kg_(1.652e-05, 1.3117, 491, 0.0),
+    kappa_(0.2407, -0.0003202, 0.0, 0.0, 0.0, 0.0),
+    kappag_(1.652e-05, 1.3117, 491, 0.0),
     sigma_(562.16, 0.07195, 1.2389, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 78.114, 28) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C6H6::C6H6
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C6H6::C6H6(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C6H6::C6H6(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C6H6::C6H6(const C6H6& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
index cc1302778e3..8f682060c4b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C6H6
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6I.H b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6I.H
index 982298a4765..7bf345a1f7b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C6H6::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C6H6::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C6H6::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C6H6::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C6H6::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
index 349197194f3..90651a711c7 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -85,8 +85,8 @@ Foam::C7H16::C7H16()
     ),
     mu_(-24.451, 1533.1, 2.0087, 0.0, 0.0),
     mug_(6.672e-08, 0.82837, 85.752, 0.0),
-    K_(0.215, -0.000303, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-0.070028, 0.38068, -7049.9, -2400500.0),
+    kappa_(0.215, -0.000303, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-0.070028, 0.38068, -7049.9, -2400500.0),
     sigma_(540.20, 0.054143, 1.2512, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 100.204, 28.0)
 {}
@@ -120,8 +120,8 @@ Foam::C7H16::C7H16
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -139,8 +139,8 @@ Foam::C7H16::C7H16(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -158,8 +158,8 @@ Foam::C7H16::C7H16(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -177,8 +177,8 @@ Foam::C7H16::C7H16(const C7H16& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
index 0649b88d1f2..b8032cd919d 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C7H16
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16I.H b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16I.H
index 9631cb4d7ad..74b13a52cec 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C7H16::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C7H16::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C7H16::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C7H16::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C7H16::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
index 698b0acb3dd..a9026f39dee 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C7H8::C7H8()
     ),
     mu_(-13.362, 1183, 0.333, 0.0, 0.0),
     mug_(2.919e-08, 0.9648, 0.0, 0.0),
-    K_(0.2043, -0.000239, 0.0, 0.0, 0.0, 0.0),
-    Kg_(2.392e-05, 1.2694, 537, 0.0),
+    kappa_(0.2043, -0.000239, 0.0, 0.0, 0.0, 0.0),
+    kappag_(2.392e-05, 1.2694, 537, 0.0),
     sigma_(591.79, 0.06685, 1.2456, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 92.141, 28) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C7H8::C7H8
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C7H8::C7H8(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C7H8::C7H8(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C7H8::C7H8(const C7H8& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
index 7835aaca2a4..7e01f058b00 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C7H8
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8I.H b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8I.H
index 32359be9ef5..b84974e28f9 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C7H8::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C7H8::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C7H8::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C7H8::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C7H8::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
index 09d76b8af0b..8c8484270ff 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C8H10::C8H10()
     ),
     mu_(-10.452, 1048.4, -0.0715, 0.0, 0.0),
     mug_(1.2e-06, 0.4518, 439.0, 0.0),
-    K_(0.20149, -0.00023988, 0.0, 0.0, 0.0, 0.0),
-    Kg_(1.708e-05, 1.319, 565.6, 0.0),
+    kappa_(0.20149, -0.00023988, 0.0, 0.0, 0.0, 0.0),
+    kappag_(1.708e-05, 1.319, 565.6, 0.0),
     sigma_(617.17, 0.066, 1.268, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 106.167, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C8H10::C8H10
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C8H10::C8H10(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C8H10::C8H10(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C8H10::C8H10(const C8H10& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
index 689959ed48b..4e36b542943 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,8 +70,8 @@ class C8H10
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -152,10 +152,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -182,8 +182,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10I.H b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10I.H
index 2c6a452291b..1f2703b7bfb 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C8H10::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C8H10::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C8H10::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C8H10::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C8H10::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
index 3493b9da1e5..d50c15e0af3 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C8H18::C8H18()
     ),
     mu_(-20.463, 1497.4, 1.379, 0.0, 0.0),
     mug_(3.1191e-08, 0.92925, 55.092, 0.0),
-    K_(0.2156, -0.00029483, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-8758, 0.8448, -27121000000.0, 0.0),
+    kappa_(0.2156, -0.00029483, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-8758, 0.8448, -27121000000.0, 0.0),
     sigma_(568.70, 0.052789, 1.2323, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 114.231, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C8H18::C8H18
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C8H18::C8H18(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C8H18::C8H18(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C8H18::C8H18(const C8H18& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
index acdb0da423c..8bd606d1e56 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C8H18
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18I.H b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18I.H
index a59cc18b0e0..c55f1d66d76 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C8H18::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C8H18::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C8H18::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C8H18::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C8H18::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
index aae2191b3ed..4db12992a26 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::C9H20::C9H20()
     ),
     mu_(-21.149, 1658, 1.454, 0.0, 0.0),
     mug_(1.0344e-07, 0.77301, 220.47, 0.0),
-    K_(0.209, -0.000264, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-0.065771, 0.27198, -3482.3, -1580300.0),
+    kappa_(0.209, -0.000264, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-0.065771, 0.27198, -3482.3, -1580300.0),
     sigma_(594.60, 0.054975, 1.2897, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 128.258, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::C9H20::C9H20
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::C9H20::C9H20(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::C9H20::C9H20(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::C9H20::C9H20(const C9H20& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
index b4caf6d135d..7cd448be55c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class C9H20
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20I.H b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20I.H
index 14ddb9a72cd..f0bcc0b169f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::C9H20::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::C9H20::K(scalar p, scalar T) const
+inline Foam::scalar Foam::C9H20::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::C9H20::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::C9H20::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
index 3b5701c8e82..f656c0bc9fe 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
+++ b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::CH3OH::CH3OH()
     ),
     mu_(-7.288, 1065.3, -0.6657, 0.0, 0.0),
     mug_(3.0663e-07, 0.69655, 205.0, 0.0),
-    K_(0.2837, -0.000281, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-7.763, 1.0279, -74360000.0, 6770000000.0),
+    kappa_(0.2837, -0.000281, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-7.763, 1.0279, -74360000.0, 6770000000.0),
     sigma_(512.58, 0.056, -0.00014583, 1.08e-07, 0.0, 0.0),
     D_(147.18, 20.1, 32.042, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::CH3OH::CH3OH
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::CH3OH::CH3OH(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::CH3OH::CH3OH(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::CH3OH::CH3OH(const CH3OH& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
index 50d2e75459b..43d9b7acf7f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class CH3OH
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OHI.H b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OHI.H
index bfe2eeaed44..2b2e3995cd8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OHI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OHI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::CH3OH::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::CH3OH::K(scalar p, scalar T) const
+inline Foam::scalar Foam::CH3OH::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::CH3OH::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::CH3OH::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
index e011b50d8d2..0e271803ec2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,8 +70,8 @@ Foam::CH4N2O::CH4N2O()
     ),
     mu_(-51.964, 3670.6, 5.7331, -5.3495e-29, 10.0),
     mug_(2.6986e-06, 0.498, 1257.7, -19570.0),
-    K_(-0.4267, 0.0056903, -8.0065e-06, 1.815e-09, 0.0, 0.0),
-    Kg_(6.977e-05, 1.1243, 844.9, -148850.0),
+    kappa_(-0.4267, 0.0056903, -8.0065e-06, 1.815e-09, 0.0, 0.0),
+    kappag_(6.977e-05, 1.1243, 844.9, -148850.0),
     sigma_(705.0, 1.0, 0.0, 0.0, 0.0, 0.0), // note: set to constant
     D_(147.18, 20.1, 60.056, 28.0) // note: Same as nHeptane
 {}
@@ -105,8 +105,8 @@ Foam::CH4N2O::CH4N2O
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -124,8 +124,8 @@ Foam::CH4N2O::CH4N2O(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -143,8 +143,8 @@ Foam::CH4N2O::CH4N2O(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -162,8 +162,8 @@ Foam::CH4N2O::CH4N2O(const CH4N2O& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
index 10246da1cb9..ceca9fc4eb5 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -72,8 +72,8 @@ class CH4N2O
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H
index f5bf4cb8642..89dc6fc672d 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::CH4N2O::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::CH4N2O::K(scalar p, scalar T) const
+inline Foam::scalar Foam::CH4N2O::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::CH4N2O::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::CH4N2O::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
index 8c570a2a162..fc1c64a5c36 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,8 +93,8 @@ Foam::H2O::H2O()
     ),
     mu_(-51.964, 3670.6, 5.7331, -5.3495e-29, 10),
     mug_(2.6986e-06, 0.498, 1257.7, -19570),
-    K_(-0.4267, 0.0056903, -8.0065e-06, 1.815e-09, 0, 0),
-    Kg_(6.977e-05, 1.1243, 844.9, -148850),
+    kappa_(-0.4267, 0.0056903, -8.0065e-06, 1.815e-09, 0, 0),
+    kappag_(6.977e-05, 1.1243, 844.9, -148850),
     sigma_(647.13, 0.18548, 2.717, -3.554, 2.047, 0),
     D_(15.0, 15.0, 18.015, 28)
 {}
@@ -128,8 +128,8 @@ Foam::H2O::H2O
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -147,29 +147,31 @@ Foam::H2O::H2O(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
 
 
 Foam::H2O::H2O(const dictionary& dict)
-:
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
+    :
+    H2O()
+// :
+//     liquidProperties(dict),
+//     rho_(dict.subDict("rho")),
+//     pv_(dict.subDict("pv")),
+//     hl_(dict.subDict("hl")),
+//     Cp_(dict.subDict("Cp")),
+//     h_(dict.subDict("h")),
+//     Cpg_(dict.subDict("Cpg")),
+//     B_(dict.subDict("B")),
+//     mu_(dict.subDict("mu")),
+//     mug_(dict.subDict("mug")),
+//     kappa_(dict.subDict("K")),
+//     kappag_(dict.subDict("kappag")),
+//     sigma_(dict.subDict("sigma")),
+//     D_(dict.subDict("D"))
 {}
 
 
@@ -185,8 +187,8 @@ Foam::H2O::H2O(const H2O& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
index 6852f315c21..2b599e18663 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,8 +70,8 @@ class H2O
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -152,10 +152,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -182,8 +182,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2OI.H b/src/thermophysicalModels/properties/liquidProperties/H2O/H2OI.H
index a86d4094e13..f00d1b7a546 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/H2O/H2OI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::H2O::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::H2O::K(scalar p, scalar T) const
+inline Foam::scalar Foam::H2O::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::H2O::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::H2O::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
index 76fa337dcda..fc793c8c745 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
+++ b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::IC8H18::IC8H18()
     ),
     mu_(-15.811, 1282.5, 0.67791, -3.8617e-28, 10.0),
     mug_(1.107e-07, 0.746, 72.4, 0.0),
-    K_(0.1508, -0.0001712, 0.0, 0.0, 0.0, 0.0),
-    Kg_(1.758e-05, 1.3114, 392.9, 0.0),
+    kappa_(0.1508, -0.0001712, 0.0, 0.0, 0.0, 0.0),
+    kappag_(1.758e-05, 1.3114, 392.9, 0.0),
     sigma_(543.96, 0.047434, 1.1975, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 114.231, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::IC8H18::IC8H18
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::IC8H18::IC8H18(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::IC8H18::IC8H18(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::IC8H18::IC8H18(const IC8H18& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
index 79842a43c9c..d044ccfaa9c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class IC8H18
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18I.H b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18I.H
index a66fc479f4d..1c7ce68d387 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::IC8H18::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::IC8H18::K(scalar p, scalar T) const
+inline Foam::scalar Foam::IC8H18::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::IC8H18::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::IC8H18::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
index aeaff10fa4c..fc950df619a 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
+++ b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,8 +92,8 @@ Foam::IDEA::IDEA()
     ),
     mu_(-6.9645853822e+01, 4.4390635942e+03, 8.4680722718e+00, 0.0, 0.0),
     mug_(4.2629382158e-08, 8.8144402122e-01, 9.6918097636e+01, 0.0),
-    K_(2.03684e-01, -2.3168e-04, 0.0, 0.0, 0.0, 0.0),
-    Kg_
+    kappa_(2.03684e-01, -2.3168e-04, 0.0, 0.0, 0.0, 0.0),
+    kappag_
     (
        -5.664925956707e+02,
         8.896721676320e-01,
@@ -141,8 +141,8 @@ Foam::IDEA::IDEA
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -160,8 +160,8 @@ Foam::IDEA::IDEA(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -179,8 +179,8 @@ Foam::IDEA::IDEA(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -198,8 +198,8 @@ Foam::IDEA::IDEA(const IDEA& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
index 9a68cbe1682..ec19b109849 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,8 +93,8 @@ class IDEA
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -175,10 +175,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -204,8 +204,8 @@ public:
             Cpg_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEAI.H b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEAI.H
index a5f457109bc..f3f46378f12 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEAI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEAI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::IDEA::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::IDEA::K(scalar p, scalar T) const
+inline Foam::scalar Foam::IDEA::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::IDEA::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::IDEA::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.C b/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
index 3e336b3bac2..f2cce3c18cb 100644
--- a/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
+++ b/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,8 +70,8 @@ Foam::MB::MB()
     ),
     mu_(-12.206, 1141.7, 0.15014, 0.0, 0.0),
     mug_(3.733e-07, 0.6177, 256.5, 0.0),
-    K_(0.2298, -0.0003002, 0.0, 0.0, 0.0, 0.0),
-    Kg_(1333.1, 0.9962, 12317000000.0, 0.0),
+    kappa_(0.2298, -0.0003002, 0.0, 0.0, 0.0, 0.0),
+    kappag_(1333.1, 0.9962, 12317000000.0, 0.0),
     sigma_(554.5, 0.064084, 1.2418, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 102.133, 28.0) // note: Same as nHeptane
 {}
@@ -105,8 +105,8 @@ Foam::MB::MB
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -124,8 +124,8 @@ Foam::MB::MB(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -143,8 +143,8 @@ Foam::MB::MB(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -162,8 +162,8 @@ Foam::MB::MB(const MB& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.H b/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
index 2615511135b..2d204bf8513 100644
--- a/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
+++ b/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class MB
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MBI.H b/src/thermophysicalModels/properties/liquidProperties/MB/MBI.H
index 9ee002bf222..d72c33e79e0 100644
--- a/src/thermophysicalModels/properties/liquidProperties/MB/MBI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/MB/MBI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::MB::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::MB::K(scalar p, scalar T) const
+inline Foam::scalar Foam::MB::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::MB::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::MB::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/Make/files b/src/thermophysicalModels/properties/liquidProperties/Make/files
index 9b6347d83ef..47f70772e88 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Make/files
+++ b/src/thermophysicalModels/properties/liquidProperties/Make/files
@@ -1,4 +1,6 @@
 liquidProperties/liquidProperties.C
+liquidMixtureProperties/liquidMixtureProperties.C
+
 H2O/H2O.C
 C7H16/C7H16.C
 C12H26/C12H26.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/Make/options b/src/thermophysicalModels/properties/liquidProperties/Make/options
index b964b61294c..383322f7d46 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Make/options
+++ b/src/thermophysicalModels/properties/liquidProperties/Make/options
@@ -1,5 +1,7 @@
 EXE_INC = \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude
 
 LIB_LIBS = \
+    -lspecie \
     -lthermophysicalFunctions
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.C b/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
index e3f09d561b2..3470173d973 100644
--- a/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
+++ b/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::N2::N2()
     ),
     mu_(32.165, 496.9, 3.9069, -1.08e-21, 10.0),
     mug_(7.632e-07, 0.58823, 67.75, 0.0),
-    K_(0.7259, -0.016728, 0.00016215, -5.7605e-07, 0.0, 0.0),
-    Kg_(0.000351, 0.7652, 25.767, 0.0),
+    kappa_(0.7259, -0.016728, 0.00016215, -5.7605e-07, 0.0, 0.0),
+    kappag_(0.000351, 0.7652, 25.767, 0.0),
     sigma_(126.10, 0.02898, 1.2457, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 28.014, 28.0) // note: Same as nHeptane
 {}
@@ -121,8 +121,8 @@ Foam::N2::N2
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::N2::N2(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::N2::N2(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::N2::N2(const N2& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.H b/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
index 82ac36b36f4..77c155d58f0 100644
--- a/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
+++ b/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class N2
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2I.H b/src/thermophysicalModels/properties/liquidProperties/N2/N2I.H
index 49e8a3faad9..bd3c4caf439 100644
--- a/src/thermophysicalModels/properties/liquidProperties/N2/N2I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/N2/N2I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::N2::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::N2::K(scalar p, scalar T) const
+inline Foam::scalar Foam::N2::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::N2::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::N2::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
index e8592ecffbe..83e9e894f49 100644
--- a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
+++ b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,8 +78,8 @@ Foam::aC10H7CH3::aC10H7CH3()
     ),
     mu_(-93.6, 5784, 12, 0, 0),
     mug_(2.5672e-06, 0.3566, 825.54, 0),
-    K_(0.19758, -0.0001796, 0, 0, 0, 0),
-    Kg_(0.3911, -0.1051, -213.52, 2318300),
+    kappa_(0.19758, -0.0001796, 0, 0, 0, 0),
+    kappag_(0.3911, -0.1051, -213.52, 2318300),
     sigma_(772.04, 0.076, 1.33, 0, 0, 0),
     D_(147.18, 20.1, 142.2, 28) // note: Same as nHeptane
 {}
@@ -113,8 +113,8 @@ Foam::aC10H7CH3::aC10H7CH3
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -132,8 +132,8 @@ Foam::aC10H7CH3::aC10H7CH3(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -151,8 +151,8 @@ Foam::aC10H7CH3::aC10H7CH3(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -170,8 +170,8 @@ Foam::aC10H7CH3::aC10H7CH3(const aC10H7CH3& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
index 171195d6a79..06a25fdca13 100644
--- a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
+++ b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class aC10H7CH3
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3I.H b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3I.H
index e652b547627..6d64a5e4bbf 100644
--- a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::aC10H7CH3::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::aC10H7CH3::K(scalar p, scalar T) const
+inline Foam::scalar Foam::aC10H7CH3::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::aC10H7CH3::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::aC10H7CH3::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
index db118f43009..159b7c9de9e 100644
--- a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
+++ b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,8 +78,8 @@ Foam::bC10H7CH3::bC10H7CH3()
     ),
     mu_(-63.276, 4219, 7.5549, 0.0, 0.0),
     mug_(2.1791e-06, 0.3717, 712.53, 0.0),
-    K_(0.1962, -0.00018414, 0.0, 0.0, 0.0, 0.0),
-    Kg_(0.4477, -0.1282, -345.89, 2340100),
+    kappa_(0.1962, -0.00018414, 0.0, 0.0, 0.0, 0.0),
+    kappag_(0.4477, -0.1282, -345.89, 2340100),
     sigma_(761.0, 0.066442, 1.2634, 0.0, 0.0, 0.0),
     D_(147.18, 20.1, 142.2, 28) // note: Same as nHeptane
 {}
@@ -113,8 +113,8 @@ Foam::bC10H7CH3::bC10H7CH3
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -132,8 +132,8 @@ Foam::bC10H7CH3::bC10H7CH3(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -151,8 +151,8 @@ Foam::bC10H7CH3::bC10H7CH3(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -170,8 +170,8 @@ Foam::bC10H7CH3::bC10H7CH3(const bC10H7CH3& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
index 28dd844f84c..7869b2db5d2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
+++ b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,8 +71,8 @@ class bC10H7CH3
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc6 sigma_;
         APIdiffCoefFunc D_;
 
@@ -153,10 +153,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -183,8 +183,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3I.H b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3I.H
index c9823307277..1ff9ab15463 100644
--- a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3I.H
+++ b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3I.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::bC10H7CH3::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::bC10H7CH3::K(scalar p, scalar T) const
+inline Foam::scalar Foam::bC10H7CH3::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::bC10H7CH3::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::bC10H7CH3::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
index 3e492562741..48d92becb13 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::iC3H8O::iC3H8O()
     ),
     mu_(-8.23, 2282.2, -0.98495, 0.0, 0.0),
     mug_(1.993e-07, 0.7233, 178.0, 0.0),
-    K_(0.2029, -0.0002278, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-80.642, -1.4549, -604.42, 0.0),
+    kappa_(0.2029, -0.0002278, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-80.642, -1.4549, -604.42, 0.0),
     sigma_(0.03818, -3.818e-05, -6.51e-08, 0.0, 0.0, 0.0),
     D_(4.75e-10, 1.75, 0.0, 0.0, 0.0)
 {}
@@ -121,8 +121,8 @@ Foam::iC3H8O::iC3H8O
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::iC3H8O::iC3H8O(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::iC3H8O::iC3H8O(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::iC3H8O::iC3H8O(const iC3H8O& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
index ce7c4393347..8ad465f5128 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
@@ -70,8 +70,8 @@ class iC3H8O
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc0 sigma_;
         NSRDSfunc1 D_;
 
@@ -151,10 +151,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity  [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity  [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -182,8 +182,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H
index 9e488d871b2..7f355196dd2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::iC3H8O::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::iC3H8O::K(scalar p, scalar T) const
+inline Foam::scalar Foam::iC3H8O::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::iC3H8O::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::iC3H8O::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidMixtureProperties/liquidMixtureProperties/liquidMixtureProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
similarity index 97%
rename from src/thermophysicalModels/properties/liquidMixtureProperties/liquidMixtureProperties/liquidMixtureProperties.C
rename to src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
index 84c202b8543..fd314151728 100644
--- a/src/thermophysicalModels/properties/liquidMixtureProperties/liquidMixtureProperties/liquidMixtureProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -438,7 +438,7 @@ Foam::scalar Foam::liquidMixtureProperties::mu
 }
 
 
-Foam::scalar Foam::liquidMixtureProperties::K
+Foam::scalar Foam::liquidMixtureProperties::kappa
 (
     const scalar p,
     const scalar T,
@@ -473,8 +473,8 @@ Foam::scalar Foam::liquidMixtureProperties::K
             scalar Kij =
                 2.0
                /(
-                    1.0/properties_[i].K(p, Ti)
-                  + 1.0/properties_[j].K(p, Tj)
+                    1.0/properties_[i].kappa(p, Ti)
+                  + 1.0/properties_[j].kappa(p, Tj)
                 );
             K += phii[i]*phii[j]*Kij;
         }
diff --git a/src/thermophysicalModels/properties/liquidMixtureProperties/liquidMixtureProperties/liquidMixtureProperties.H b/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
similarity index 98%
rename from src/thermophysicalModels/properties/liquidMixtureProperties/liquidMixtureProperties/liquidMixtureProperties.H
rename to src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
index dd276a25472..09f37540a8f 100644
--- a/src/thermophysicalModels/properties/liquidMixtureProperties/liquidMixtureProperties/liquidMixtureProperties.H
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -226,7 +226,7 @@ public:
 
         //- Estimate thermal conductivity  [W/(m K)]
         //  Li's method, Eq. 10-12.27 - 10.12-19
-        scalar K
+        scalar kappa
         (
             const scalar p,
             const scalar T,
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
index 57f6e789553..7e0f43c7ef8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,50 +118,6 @@ Foam::liquidProperties::liquidProperties(const liquidProperties& liq)
 
 // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New(Istream& is)
-{
-    if (debug)
-    {
-        InfoInFunction << "Constructing liquidProperties" << endl;
-    }
-
-    const word liquidPropertiesType(is);
-    const word coeffs(is);
-
-    if (coeffs == "defaultCoeffs")
-    {
-        ConstructorTable::iterator cstrIter =
-            ConstructorTablePtr_->find(liquidPropertiesType);
-
-        if (cstrIter == ConstructorTablePtr_->end())
-        {
-            FatalErrorInFunction
-                << "Unknown liquidProperties type "
-                << liquidPropertiesType << nl << nl
-                << "Valid liquidProperties types are:" << nl
-                << ConstructorTablePtr_->sortedToc()
-                << abort(FatalError);
-        }
-
-        return autoPtr<liquidProperties>(cstrIter()());
-    }
-    else if (coeffs == "coeffs")
-    {
-        return autoPtr<liquidProperties>(new liquidProperties(is));
-    }
-    else
-    {
-        FatalErrorInFunction
-            << "liquidProperties type " << liquidPropertiesType
-            << ", option " << coeffs << " given"
-            << ", should be coeffs or defaultCoeffs"
-            << abort(FatalError);
-
-        return autoPtr<liquidProperties>(nullptr);
-    }
-}
-
-
 Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 (
     const dictionary& dict
@@ -274,14 +230,14 @@ Foam::scalar Foam::liquidProperties::mug(scalar p, scalar T) const
 }
 
 
-Foam::scalar Foam::liquidProperties::K(scalar p, scalar T) const
+Foam::scalar Foam::liquidProperties::kappa(scalar p, scalar T) const
 {
     NotImplemented;
     return 0.0;
 }
 
 
-Foam::scalar Foam::liquidProperties::Kg(scalar p, scalar T) const
+Foam::scalar Foam::liquidProperties::kappag(scalar p, scalar T) const
 {
     NotImplemented;
     return 0.0;
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
index fa295c97c97..5cbfebf2611 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -161,7 +161,7 @@ public:
     // Selectors
 
         //- Return a pointer to a new liquidProperties created from input
-        static autoPtr<liquidProperties> New(Istream& is);
+    // static autoPtr<liquidProperties> New(Istream& is);
 
         //- Return a pointer to a new liquidProperties created from dictionary
         static autoPtr<liquidProperties> New(const dictionary& dict);
@@ -179,6 +179,17 @@ public:
             //- Molecular weight [kg/kmol]
             inline scalar W() const;
 
+            //- No of moles of this species in mixture
+            //  Note Mixing of liquidProperties is not currently supported
+            //  so Y = 1
+            inline scalar Y() const;
+
+            //- Is the equation of state is incompressible i.e. rho != f(p)
+            static const bool incompressible = true;
+
+            //- Is the equation of state is isochoric i.e. rho = const
+            static const bool isochoric = false;
+
             //- Critical temperature [K]
             inline scalar Tc() const;
 
@@ -209,25 +220,55 @@ public:
             //- Solubility parameter [(J/m^3)^(1/2)]
             inline scalar delta() const;
 
+            //- Limit the temperature to be in the range Tlow_ to Thigh_
+            inline scalar limit(const scalar T) const;
 
-        // Physical property pure virtual functions
 
-            //- Liquid rho [kg/m^3]
+        // Fundamental equation of state properties
+
+            //- Liquid density [kg/m^3]
             virtual scalar rho(scalar p, scalar T) const;
 
+            //- Liquid compressibility rho/p [s^2/m^2]
+            //  Note: currently it is assumed the liquid is incompressible
+            inline scalar psi(scalar p, scalar T) const;
+
+            //- Return (Cp - Cv) [J/(kg K]
+            //  Note: currently it is assumed the liquid is incompressible
+            //  so CpMCv = 0
+            inline scalar CpMCv(scalar p, scalar T) const;
+
+
+        // Fundamental thermodynamic properties
+
+            //- Heat capacity at constant pressure [J/(kg K)]
+            virtual scalar Cp(const scalar p, const scalar T) const;
+
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
+
+            //- Sensible enthalpy [J/kg]
+            inline scalar Hs(const scalar p, const scalar T) const;
+
+            //- Chemical enthalpy [J/kg]
+            inline scalar Hc() const;
+
+            // Entropy [J/(kg K)]
+            // inline scalar S(const scalar p, const scalar T) const;
+
+
+        // Physical properties
+
             //- Vapour pressure [Pa]
             virtual scalar pv(scalar p, scalar T) const;
 
             //- Heat of vapourisation [J/kg]
             virtual scalar hl(scalar p, scalar T) const;
 
-            //- Liquid heat capacity [J/(kg K)]
-            virtual scalar Cp(scalar p, scalar T) const;
-
             //- Liquid enthalpy [J/kg] - reference to 298.15 K
             virtual scalar h(scalar p, scalar T) const;
 
-            //- Ideal gas heat capacity [J/(kg K)]
+            //- Vapour heat capacity [J/(kg K)]
             virtual scalar Cpg(scalar p, scalar T) const;
 
             //- Liquid viscosity [Pa s]
@@ -237,10 +278,13 @@ public:
             virtual scalar mug(scalar p, scalar T) const;
 
             //- Liquid thermal conductivity  [W/(m K)]
-            virtual scalar K(scalar p, scalar T) const;
+            virtual scalar kappa(scalar p, scalar T) const;
+
+            //- Liquid thermal diffusivity of enthalpy [kg/ms]
+            inline scalar alphah(const scalar p, const scalar T) const;
 
             //- Vapour thermal conductivity  [W/(m K)]
-            virtual scalar Kg(scalar p, scalar T) const;
+            virtual scalar kappag(scalar p, scalar T) const;
 
             //- Surface tension [N/m]
             virtual scalar sigma(scalar p, scalar T) const;
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
index 865035fe1a3..61a0b8d5f94 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,12 +23,24 @@ License
 
 \*---------------------------------------------------------------------------*/
 
+inline Foam::scalar Foam::liquidProperties::limit(const scalar T) const
+{
+    return T;
+}
+
+
 inline Foam::scalar Foam::liquidProperties::W() const
 {
     return W_;
 }
 
 
+inline Foam::scalar Foam::liquidProperties::Y() const
+{
+    return 1;
+}
+
+
 inline Foam::scalar Foam::liquidProperties::Tc() const
 {
     return Tc_;
@@ -89,4 +101,40 @@ inline Foam::scalar Foam::liquidProperties::delta() const
 }
 
 
+inline Foam::scalar Foam::liquidProperties::psi(scalar p, scalar T) const
+{
+    return 0;
+}
+
+
+inline Foam::scalar Foam::liquidProperties::CpMCv(scalar p, scalar T) const
+{
+    return 0;
+}
+
+
+inline Foam::scalar Foam::liquidProperties::Ha(scalar p, scalar T) const
+{
+    return h(p, T);
+}
+
+
+inline Foam::scalar Foam::liquidProperties::Hs(scalar p, scalar T) const
+{
+    return h(p, T);
+}
+
+
+inline Foam::scalar Foam::liquidProperties::Hc() const
+{
+    return 0;
+}
+
+
+inline Foam::scalar Foam::liquidProperties::alphah(scalar p, scalar T) const
+{
+    return kappa(p, T)/Cp(p, T);
+}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
index cbbe7714aea..2369adffd06 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,8 +86,8 @@ Foam::nC3H8O::nC3H8O()
     ),
     mu_(0.571, 1521, -2.0894, 0.0, 0.0),
     mug_(7.942e-07, 0.5491, 415.8, 0.0),
-    K_(0.204, -0.000169, 0.0, 0.0, 0.0, 0.0),
-    Kg_(-613.84, 0.7927, -1157400000.0, 0.0),
+    kappa_(0.204, -0.000169, 0.0, 0.0, 0.0, 0.0),
+    kappag_(-613.84, 0.7927, -1157400000.0, 0.0),
     sigma_(0.04533, -6.88e-05, -1.6e-08, 0.0, 0.0, 0.0),
     D_(4.75e-10, 1.75, 0.0, 0.0, 0.0) // note: same as iC3H8O
 {}
@@ -121,8 +121,8 @@ Foam::nC3H8O::nC3H8O
     B_(secondVirialCoeff),
     mu_(dynamicViscosity),
     mug_(vapourDynamicViscosity),
-    K_(thermalConductivity),
-    Kg_(vapourThermalConductivity),
+    kappa_(thermalConductivity),
+    kappag_(vapourThermalConductivity),
     sigma_(surfaceTension),
     D_(vapourDiffussivity)
 {}
@@ -140,8 +140,8 @@ Foam::nC3H8O::nC3H8O(Istream& is)
     B_(is),
     mu_(is),
     mug_(is),
-    K_(is),
-    Kg_(is),
+    kappa_(is),
+    kappag_(is),
     sigma_(is),
     D_(is)
 {}
@@ -159,8 +159,8 @@ Foam::nC3H8O::nC3H8O(const dictionary& dict)
     B_(dict.subDict("B")),
     mu_(dict.subDict("mu")),
     mug_(dict.subDict("mug")),
-    K_(dict.subDict("K")),
-    Kg_(dict.subDict("Kg")),
+    kappa_(dict.subDict("K")),
+    kappag_(dict.subDict("kappag")),
     sigma_(dict.subDict("sigma")),
     D_(dict.subDict("D"))
 {}
@@ -178,8 +178,8 @@ Foam::nC3H8O::nC3H8O(const nC3H8O& liq)
     B_(liq.B_),
     mu_(liq.mu_),
     mug_(liq.mug_),
-    K_(liq.K_),
-    Kg_(liq.Kg_),
+    kappa_(liq.kappa_),
+    kappag_(liq.kappag_),
     sigma_(liq.sigma_),
     D_(liq.D_)
 {}
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
index 3f2fcfa9927..a55a0e53ff9 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
@@ -70,8 +70,8 @@ class nC3H8O
         NSRDSfunc4 B_;
         NSRDSfunc1 mu_;
         NSRDSfunc2 mug_;
-        NSRDSfunc0 K_;
-        NSRDSfunc2 Kg_;
+        NSRDSfunc0 kappa_;
+        NSRDSfunc2 kappag_;
         NSRDSfunc0 sigma_;
         NSRDSfunc1 D_;
 
@@ -151,10 +151,10 @@ public:
         inline scalar mug(scalar p, scalar T) const;
 
         //- Liquid thermal conductivity [W/(m K)]
-        inline scalar K(scalar p, scalar T) const;
+        inline scalar kappa(scalar p, scalar T) const;
 
         //- Vapour thermal conductivity [W/(m K)]
-        inline scalar Kg(scalar p, scalar T) const;
+        inline scalar kappag(scalar p, scalar T) const;
 
         //- Surface tension [N/m]
         inline scalar sigma(scalar p, scalar T) const;
@@ -182,8 +182,8 @@ public:
             B_.writeData(os); os << nl;
             mu_.writeData(os); os << nl;
             mug_.writeData(os); os << nl;
-            K_.writeData(os); os << nl;
-            Kg_.writeData(os); os << nl;
+            kappa_.writeData(os); os << nl;
+            kappag_.writeData(os); os << nl;
             sigma_.writeData(os); os << nl;
             D_.writeData(os); os << endl;
         }
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H
index 32f1379fd47..89cd732c559 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H
@@ -77,15 +77,15 @@ inline Foam::scalar Foam::nC3H8O::mug(scalar p, scalar T) const
 }
 
 
-inline Foam::scalar Foam::nC3H8O::K(scalar p, scalar T) const
+inline Foam::scalar Foam::nC3H8O::kappa(scalar p, scalar T) const
 {
-    return K_.f(p, T);
+    return kappa_.f(p, T);
 }
 
 
-inline Foam::scalar Foam::nC3H8O::Kg(scalar p, scalar T) const
+inline Foam::scalar Foam::nC3H8O::kappag(scalar p, scalar T) const
 {
-    return Kg_.f(p, T);
+    return kappag_.f(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/properties/solidMixtureProperties/Make/files b/src/thermophysicalModels/properties/solidMixtureProperties/Make/files
deleted file mode 100644
index e31412ed1dd..00000000000
--- a/src/thermophysicalModels/properties/solidMixtureProperties/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-solidMixtureProperties/solidMixtureProperties.C
-
-LIB = $(FOAM_LIBBIN)/libsolidMixtureProperties
diff --git a/src/thermophysicalModels/properties/solidMixtureProperties/Make/options b/src/thermophysicalModels/properties/solidMixtureProperties/Make/options
deleted file mode 100644
index f2d8f809d5d..00000000000
--- a/src/thermophysicalModels/properties/solidMixtureProperties/Make/options
+++ /dev/null
@@ -1,3 +0,0 @@
-EXE_INC = \
-    -I${LIB_SRC}/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude
diff --git a/src/thermophysicalModels/properties/solidProperties/Make/files b/src/thermophysicalModels/properties/solidProperties/Make/files
index 694c379453f..fdd25a7a6b4 100644
--- a/src/thermophysicalModels/properties/solidProperties/Make/files
+++ b/src/thermophysicalModels/properties/solidProperties/Make/files
@@ -1,5 +1,6 @@
 solidProperties/solidProperties.C
 solidProperties/solidPropertiesNew.C
+solidMixtureProperties/solidMixtureProperties.C
 
 ash/ash.C
 C/C.C
diff --git a/src/thermophysicalModels/properties/solidMixtureProperties/solidMixtureProperties/solidMixtureProperties.C b/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
similarity index 97%
rename from src/thermophysicalModels/properties/solidMixtureProperties/solidMixtureProperties/solidMixtureProperties.C
rename to src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
index ee37311f57d..ea6c0efbc70 100644
--- a/src/thermophysicalModels/properties/solidMixtureProperties/solidMixtureProperties/solidMixtureProperties.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/properties/solidMixtureProperties/solidMixtureProperties/solidMixtureProperties.H b/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
similarity index 98%
rename from src/thermophysicalModels/properties/solidMixtureProperties/solidMixtureProperties/solidMixtureProperties.H
rename to src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
index ed0aad5bfaa..2d34f771b8d 100644
--- a/src/thermophysicalModels/properties/solidMixtureProperties/solidMixtureProperties/solidMixtureProperties.H
+++ b/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
index 7d889fe7075..9151ff5da77 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,7 @@ Foam::solidProperties::solidProperties
 :
     rho_(rho),
     Cp_(Cp),
-    K_(K),
+    kappa_(K),
     Hf_(Hf),
     emissivity_(emissivity)
 {}
@@ -58,7 +58,7 @@ Foam::solidProperties::solidProperties(Istream& is)
 :
     rho_(readScalar(is)),
     Cp_(readScalar(is)),
-    K_(readScalar(is)),
+    kappa_(readScalar(is)),
     Hf_(readScalar(is)),
     emissivity_(readScalar(is))
 {}
@@ -68,7 +68,7 @@ Foam::solidProperties::solidProperties(const dictionary& dict)
 :
     rho_(readScalar(dict.lookup("rho"))),
     Cp_(readScalar(dict.lookup("Cp"))),
-    K_(readScalar(dict.lookup("K"))),
+    kappa_(readScalar(dict.lookup("K"))),
     Hf_(readScalar(dict.lookup("Hf"))),
     emissivity_(readScalar(dict.lookup("emissivity")))
 {}
@@ -78,7 +78,7 @@ Foam::solidProperties::solidProperties(const solidProperties& s)
 :
     rho_(s.rho_),
     Cp_(s.Cp_),
-    K_(s.K_),
+    kappa_(s.kappa_),
     Hf_(s.Hf_),
     emissivity_(s.emissivity_)
 {}
@@ -90,7 +90,7 @@ void Foam::solidProperties::writeData(Ostream& os) const
 {
     os  << rho_ << token::SPACE
         << Cp_ << token::SPACE
-        << K_ << token::SPACE
+        << kappa_ << token::SPACE
         << Hf_ << token::SPACE
         << emissivity_;
 }
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
index 6ae416d8c89..c0acae07eda 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,7 +70,7 @@ class solidProperties
         scalar Cp_;
 
         //- Thermal conductivity [W/(m.K)]
-        scalar K_;
+        scalar kappa_;
 
         //- Heat of formation [J/kg]
         scalar Hf_;
@@ -168,7 +168,7 @@ public:
             inline scalar Cp() const;
 
             //- Thermal conductivity [W/(m.K)]
-            inline scalar K() const;
+            inline scalar kappa() const;
 
             //- Heat of formation [J/kg]
             inline scalar Hf() const;
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesI.H b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesI.H
index 3910a4f37fa..e1f3d0f190d 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesI.H
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -39,9 +39,9 @@ inline Foam::scalar Foam::solidProperties::Cp() const
 }
 
 
-inline Foam::scalar Foam::solidProperties::K() const
+inline Foam::scalar Foam::solidProperties::kappa() const
 {
-    return K_;
+    return kappa_;
 }
 
 
diff --git a/src/thermophysicalModels/radiation/Make/options b/src/thermophysicalModels/radiation/Make/options
index 726b76e7644..3cc7218bdd5 100644
--- a/src/thermophysicalModels/radiation/Make/options
+++ b/src/thermophysicalModels/radiation/Make/options
@@ -5,9 +5,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
@@ -18,8 +16,6 @@ LIB_LIBS = \
     -lspecie \
     -lsolidThermo \
     -lSLGThermo \
-    -lsolidMixtureProperties \
-    -lliquidMixtureProperties \
     -lsolidProperties \
     -lliquidProperties \
     -lfiniteVolume \
diff --git a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L
index bf5e9ac83cf..5bbf9f0e40e 100644
--- a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L
+++ b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -121,7 +121,7 @@ startIsotopeMolW      {space}"/"{space}
 isotopeMolW           {space}{floatNum}{space}"/"{space}
 
 specieName            {space}[A-Za-z](([A-Za-z0-9)*+-])|("("[^+]))*{space}
-nMoles                {space}{floatNum}{space}
+Y                {space}{floatNum}{space}
 
 thermoTemp            .{10}
 
@@ -640,7 +640,8 @@ bool finishReaction = false;
                     currentHighT,
                     currentCommonT,
                     highCpCoeffs,
-                    lowCpCoeffs
+                    lowCpCoeffs,
+                    true
                 ),
                 transportDict_.subDict(currentSpecieName)
             )
@@ -687,7 +688,7 @@ bool finishReaction = false;
         BEGIN(readReactionKeyword);
     }
 
-<readReactionKeyword>{nMoles} {
+<readReactionKeyword>{Y} {
         currentSpecieCoeff.stoichCoeff = atof(YYText());
         currentSpecieCoeff.exponent = currentSpecieCoeff.stoichCoeff;
     }
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.C b/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.C
index f69cbeca54f..4cb6b0eb293 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.C
+++ b/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,16 +48,6 @@ Foam::SpecieMixture<MixtureType>::SpecieMixture
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-template<class MixtureType>
-Foam::scalar Foam::SpecieMixture<MixtureType>::nMoles
-(
-    const label speciei
-) const
-{
-    return this->getLocalThermo(speciei).nMoles();
-}
-
-
 template<class MixtureType>
 Foam::scalar Foam::SpecieMixture<MixtureType>::W
 (
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H b/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H
index 24f95915abf..759f8b69207 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H
+++ b/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -75,9 +75,6 @@ public:
 
         // Per specie properties
 
-            //- Number of moles of the given specie []
-            virtual scalar nMoles(const label speciei) const;
-
             //- Molecular weight of the given specie [kg/kmol]
             virtual scalar W(const label speciei) const;
 
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/basicSpecieMixture/basicSpecieMixture.H b/src/thermophysicalModels/reactionThermo/mixtures/basicSpecieMixture/basicSpecieMixture.H
index e814154a9cd..e23639498ec 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/basicSpecieMixture/basicSpecieMixture.H
+++ b/src/thermophysicalModels/reactionThermo/mixtures/basicSpecieMixture/basicSpecieMixture.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,9 +82,6 @@ public:
 
         // Per specie properties
 
-            //- Number of moles of the given specie []
-            virtual scalar nMoles(const label speciei) const = 0;
-
             //- Molecular weight of the given specie [kg/kmol]
             virtual scalar W(const label speciei) const = 0;
 
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/egrMixture/egrMixture.C b/src/thermophysicalModels/reactionThermo/mixtures/egrMixture/egrMixture.C
index 7c52bea5d04..d5e368ca9f1 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/egrMixture/egrMixture.C
+++ b/src/thermophysicalModels/reactionThermo/mixtures/egrMixture/egrMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,9 +89,9 @@ const ThermoType& Foam::egrMixture<ThermoType>::mixture
 
         scalar pr = 1 - fu - ox;
 
-        mixture_ = fu/fuel_.W()*fuel_;
-        mixture_ += ox/oxidant_.W()*oxidant_;
-        mixture_ += pr/products_.W()*products_;
+        mixture_ = fu*fuel_;
+        mixture_ += ox*oxidant_;
+        mixture_ += pr*products_;
 
         return mixture_;
     }
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/homogeneousMixture/homogeneousMixture.C b/src/thermophysicalModels/reactionThermo/mixtures/homogeneousMixture/homogeneousMixture.C
index 7bf2f11abda..4ae9bc10bd6 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/homogeneousMixture/homogeneousMixture.C
+++ b/src/thermophysicalModels/reactionThermo/mixtures/homogeneousMixture/homogeneousMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -75,8 +75,8 @@ const ThermoType& Foam::homogeneousMixture<ThermoType>::mixture
     }
     else
     {
-        mixture_ = b/reactants_.W()*reactants_;
-        mixture_ += (1 - b)/products_.W()*products_;
+        mixture_ = b*reactants_;
+        mixture_ += (1 - b)*products_;
 
         return mixture_;
     }
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/inhomogeneousMixture/inhomogeneousMixture.C b/src/thermophysicalModels/reactionThermo/mixtures/inhomogeneousMixture/inhomogeneousMixture.C
index 15220cab18d..ef7d739f51a 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/inhomogeneousMixture/inhomogeneousMixture.C
+++ b/src/thermophysicalModels/reactionThermo/mixtures/inhomogeneousMixture/inhomogeneousMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,9 +86,9 @@ const ThermoType& Foam::inhomogeneousMixture<ThermoType>::mixture
         scalar ox = 1 - ft - (ft - fu)*stoicRatio().value();
         scalar pr = 1 - fu - ox;
 
-        mixture_ = fu/fuel_.W()*fuel_;
-        mixture_ += ox/oxidant_.W()*oxidant_;
-        mixture_ += pr/products_.W()*products_;
+        mixture_ = fu*fuel_;
+        mixture_ += ox*oxidant_;
+        mixture_ += pr*products_;
 
         return mixture_;
     }
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/multiComponentMixture/multiComponentMixture.C b/src/thermophysicalModels/reactionThermo/mixtures/multiComponentMixture/multiComponentMixture.C
index ba651a2b515..bb6d4e04141 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/multiComponentMixture/multiComponentMixture.C
+++ b/src/thermophysicalModels/reactionThermo/mixtures/multiComponentMixture/multiComponentMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -132,11 +132,11 @@ const ThermoType& Foam::multiComponentMixture<ThermoType>::cellMixture
     const label celli
 ) const
 {
-    mixture_ = Y_[0][celli]/speciesData_[0].W()*speciesData_[0];
+    mixture_ = Y_[0][celli]*speciesData_[0];
 
     for (label n=1; n<Y_.size(); n++)
     {
-        mixture_ += Y_[n][celli]/speciesData_[n].W()*speciesData_[n];
+        mixture_ += Y_[n][celli]*speciesData_[n];
     }
 
     return mixture_;
@@ -150,15 +150,11 @@ const ThermoType& Foam::multiComponentMixture<ThermoType>::patchFaceMixture
     const label facei
 ) const
 {
-    mixture_ =
-        Y_[0].boundaryField()[patchi][facei]
-       /speciesData_[0].W()*speciesData_[0];
+    mixture_ = Y_[0].boundaryField()[patchi][facei]*speciesData_[0];
 
     for (label n=1; n<Y_.size(); n++)
     {
-        mixture_ +=
-            Y_[n].boundaryField()[patchi][facei]
-           /speciesData_[n].W()*speciesData_[n];
+        mixture_ += Y_[n].boundaryField()[patchi][facei]*speciesData_[n];
     }
 
     return mixture_;
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/veryInhomogeneousMixture/veryInhomogeneousMixture.C b/src/thermophysicalModels/reactionThermo/mixtures/veryInhomogeneousMixture/veryInhomogeneousMixture.C
index 663b79ce682..28d71d5f86a 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/veryInhomogeneousMixture/veryInhomogeneousMixture.C
+++ b/src/thermophysicalModels/reactionThermo/mixtures/veryInhomogeneousMixture/veryInhomogeneousMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -87,9 +87,9 @@ const ThermoType& Foam::veryInhomogeneousMixture<ThermoType>::mixture
         scalar ox = 1 - ft - (ft - fu)*stoicRatio().value();
         scalar pr = 1 - fu - ox;
 
-        mixture_ = fu/fuel_.W()*fuel_;
-        mixture_ += ox/oxidant_.W()*oxidant_;
-        mixture_ += pr/products_.W()*products_;
+        mixture_ = fu*fuel_;
+        mixture_ += ox*oxidant_;
+        mixture_ += pr*products_;
 
         return mixture_;
     }
diff --git a/src/thermophysicalModels/reactionThermo/psiuReactionThermo/psiuReactionThermos.C b/src/thermophysicalModels/reactionThermo/psiuReactionThermo/psiuReactionThermos.C
index 49c462d3835..4e9173530df 100644
--- a/src/thermophysicalModels/reactionThermo/psiuReactionThermo/psiuReactionThermos.C
+++ b/src/thermophysicalModels/reactionThermo/psiuReactionThermo/psiuReactionThermos.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,6 +107,19 @@ makeReactionThermo
 );
 
 
+makeReactionThermo
+(
+    psiThermo,
+    psiuReactionThermo,
+    heheuPsiThermo,
+    homogeneousMixture,
+    constTransport,
+    absoluteEnthalpy,
+    janafThermo,
+    perfectGas,
+    specie
+);
+
 makeReactionThermo
 (
     psiThermo,
diff --git a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermos.C b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermos.C
index 27bc73d75f7..a7431ca2007 100644
--- a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermos.C
+++ b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermos.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -261,7 +261,7 @@ makeReactionMixtureThermo
 );
 
 
-    // Multi-component reaction thermo
+// Multi-component reaction thermo
 
 makeReactionMixtureThermo
 (
@@ -318,8 +318,6 @@ makeReactionMixtureThermo
 );
 
 
-
-
 // Multi-component thermo for sensible enthalpy
 
 makeReactionMixtureThermo
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.H
index d7b388ccd6e..3b75b4ebe65 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.H
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -135,9 +135,9 @@ public:
 
         inline void operator=(const constAnIsoSolidTransport&);
         inline void operator+=(const constAnIsoSolidTransport&);
-        inline void operator-=(const constAnIsoSolidTransport&);
 
-         // Friend operators
+
+    // Friend operators
 
         friend constAnIsoSolidTransport operator* <Thermo>
         (
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H
index fabc997a8dd..60e06fbb4e2 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -113,27 +113,12 @@ inline void Foam::constAnIsoSolidTransport<Thermo>::operator+=
     const constAnIsoSolidTransport<Thermo>& ct
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
+    Y1 /= this->Y();
+    scalar Y2 = ct.Y()/this->Y();
 
-    kappa_ = molr1*kappa_ + molr2*ct.kappa_;
-}
-
-
-template<class Thermo>
-inline void Foam::constAnIsoSolidTransport<Thermo>::operator-=
-(
-    const constAnIsoSolidTransport<Thermo>& ct
-)
-{
-    scalar molr1 = this->nMoles();
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
-
-    kappa_ = molr1*kappa_ - molr2*ct.kappa_;
+    kappa_ = Y1*kappa_ + Y2*ct.kappa_;
 }
 
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H
index 4439a279fac..f290b4288df 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -136,7 +136,6 @@ public:
 
         inline void operator=(const constIsoSolidTransport&);
         inline void operator+=(const constIsoSolidTransport&);
-        inline void operator-=(const constIsoSolidTransport&);
 
 
     // Friend operators
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H
index 7ee8ee618e7..45b5f4d2964 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -114,32 +114,16 @@ inline void Foam::constIsoSolidTransport<thermo>::operator+=
     const constIsoSolidTransport<thermo>& ct
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
     thermo::operator+=(ct);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
+    Y1 /= this->Y();
+    scalar Y2 = ct.Y()/this->Y();
 
-    kappa_ = molr1*kappa_ + molr2*ct.kappa_;
+    kappa_ = Y1*kappa_ + Y2*ct.kappa_;
 }
 
 
-template<class thermo>
-inline void Foam::constIsoSolidTransport<thermo>::operator-=
-(
-    const constIsoSolidTransport<thermo>& ct
-)
-{
-    scalar molr1 = this->nMoles();
-
-    thermo::operator-=(ct);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
-
-    kappa_ = molr1*kappa_ - molr2*ct.kappa_;
-}
-
 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
 
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.H
index f8c8267644b..1d69fdefad8 100644
--- a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.H
+++ b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -144,7 +144,6 @@ public:
 
         inline void operator=(const exponentialSolidTransport&);
         inline void operator+=(const exponentialSolidTransport&);
-        inline void operator-=(const exponentialSolidTransport&);
 
 
     // Friend operators
diff --git a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H
index 909106e5dbb..ec80965b8ab 100644
--- a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -128,31 +128,14 @@ inline void Foam::exponentialSolidTransport<Thermo>::operator+=
     const exponentialSolidTransport<Thermo>& ct
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
+    Y1 /= this->Y();
+    scalar Y2 = ct.Y()/this->Y();
 
-    kappa0_ = molr1*kappa0_ + molr2*ct.kappa0_;
-    n0_ = (molr1*n0_ + molr2*ct.n0_);
-    Tref_ = (molr1*Tref_ + molr2*ct.Tref_);
-}
-
-
-template<class Thermo>
-inline void Foam::exponentialSolidTransport<Thermo>::operator-=
-(
-    const exponentialSolidTransport<Thermo>& ct
-)
-{
-    scalar molr1 = this->nMoles();
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
-
-    kappa0_ = (molr1*kappa0_ - molr2*ct.kappa0_);
-    n0_ = (molr1*n0_ - molr2*ct.n0_);
-    Tref_ = (molr1*Tref_ - molr2*ct.Tref_);
+    kappa0_ = Y1*kappa0_ + Y2*ct.kappa0_;
+    n0_ = (Y1*n0_ + Y2*ct.n0_);
+    Tref_ = (Y1*Tref_ + Y2*ct.Tref_);
 }
 
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
index d55a3c6733d..716284cb1b5 100644
--- a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,13 +82,6 @@ inline polynomialSolidTransport<Thermo, PolySize> operator+
     const polynomialSolidTransport<Thermo, PolySize>&
 );
 
-template<class Thermo, int PolySize>
-inline polynomialSolidTransport<Thermo, PolySize> operator-
-(
-    const polynomialSolidTransport<Thermo, PolySize>&,
-    const polynomialSolidTransport<Thermo, PolySize>&
-);
-
 template<class Thermo, int PolySize>
 inline polynomialSolidTransport<Thermo, PolySize> operator*
 (
@@ -96,13 +89,6 @@ inline polynomialSolidTransport<Thermo, PolySize> operator*
     const polynomialSolidTransport<Thermo, PolySize>&
 );
 
-template<class Thermo, int PolySize>
-inline polynomialSolidTransport<Thermo, PolySize> operator==
-(
-    const polynomialSolidTransport<Thermo, PolySize>&,
-    const polynomialSolidTransport<Thermo, PolySize>&
-);
-
 template<class Thermo, int PolySize>
 Ostream& operator<<
 (
@@ -202,7 +188,6 @@ public:
 
         inline void operator=(const polynomialSolidTransport&);
         inline void operator+=(const polynomialSolidTransport&);
-        inline void operator-=(const polynomialSolidTransport&);
         inline void operator*=(const scalar);
 
 
@@ -214,24 +199,12 @@ public:
             const polynomialSolidTransport&
         );
 
-        friend polynomialSolidTransport operator- <Thermo, PolySize>
-        (
-            const polynomialSolidTransport&,
-            const polynomialSolidTransport&
-        );
-
         friend polynomialSolidTransport operator* <Thermo, PolySize>
         (
             const scalar,
             const polynomialSolidTransport&
         );
 
-        friend polynomialSolidTransport operator== <Thermo, PolySize>
-        (
-            const polynomialSolidTransport&,
-            const polynomialSolidTransport&
-        );
-
 
     // Ostream Operator
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
index 45d4e95f495..1a923d490f4 100644
--- a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -165,31 +165,14 @@ inline void Foam::polynomialSolidTransport<Thermo, PolySize>::operator+=
     const polynomialSolidTransport<Thermo, PolySize>& pt
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     Thermo::operator+=(pt);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
+    Y1 /= this->Y();
+    scalar Y2 = pt.Y()/this->Y();
 
-    kappaCoeffs_ = molr1*kappaCoeffs_ + molr2*pt.kappaCoeffs_;
-}
-
-
-template<class Thermo, int PolySize>
-inline void Foam::polynomialSolidTransport<Thermo, PolySize>::operator-=
-(
-    const polynomialSolidTransport<Thermo, PolySize>& pt
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Thermo::operator-=(pt);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
-
-    kappaCoeffs_ = molr1*kappaCoeffs_ - molr2*pt.kappaCoeffs_;
+    kappaCoeffs_ = Y1*kappaCoeffs_ + Y2*pt.kappaCoeffs_;
 }
 
 
@@ -217,36 +200,13 @@ inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator+
         static_cast<const Thermo&>(pt1) + static_cast<const Thermo&>(pt2)
     );
 
-    scalar molr1 = pt1.nMoles()/t.nMoles();
-    scalar molr2 = pt2.nMoles()/t.nMoles();
-
-    return polynomialSolidTransport<Thermo, PolySize>
-    (
-        t,
-        molr1*pt1.kappaCoeffs_ + molr2*pt2.kappaCoeffs_
-    );
-}
-
-
-template<class Thermo, int PolySize>
-inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator-
-(
-    const polynomialSolidTransport<Thermo, PolySize>& pt1,
-    const polynomialSolidTransport<Thermo, PolySize>& pt2
-)
-{
-    Thermo t
-    (
-        static_cast<const Thermo&>(pt1) - static_cast<const Thermo&>(pt2)
-    );
-
-    scalar molr1 = pt1.nMoles()/t.nMoles();
-    scalar molr2 = pt2.nMoles()/t.nMoles();
+    scalar Y1 = pt1.Y()/t.Y();
+    scalar Y2 = pt2.Y()/t.Y();
 
     return polynomialSolidTransport<Thermo, PolySize>
     (
         t,
-        molr1*pt1.kappaCoeffs_ - molr2*pt2.kappaCoeffs_
+        Y1*pt1.kappaCoeffs_ + Y2*pt2.kappaCoeffs_
     );
 }
 
@@ -266,15 +226,4 @@ inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator*
 }
 
 
-template<class Thermo, int PolySize>
-inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator==
-(
-    const polynomialSolidTransport<Thermo, PolySize>& pt1,
-    const polynomialSolidTransport<Thermo, PolySize>& pt2
-)
-{
-    return pt2 - pt1;
-}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C
index b37ec2f9d01..12286d13f67 100644
--- a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C
+++ b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H
index a388cbddc00..720483c07e7 100644
--- a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H
+++ b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,13 +59,6 @@ inline Boussinesq<Specie> operator+
     const Boussinesq<Specie>&
 );
 
-template<class Specie>
-inline Boussinesq<Specie> operator-
-(
-    const Boussinesq<Specie>&,
-    const Boussinesq<Specie>&
-);
-
 template<class Specie>
 inline Boussinesq<Specie> operator*
 (
@@ -173,14 +166,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -188,8 +181,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -202,8 +195,6 @@ public:
 
         inline void operator=(const Boussinesq&);
         inline void operator+=(const Boussinesq&);
-        inline void operator-=(const Boussinesq&);
-
         inline void operator*=(const scalar);
 
 
@@ -215,12 +206,6 @@ public:
             const Boussinesq&
         );
 
-        friend Boussinesq operator- <Specie>
-        (
-            const Boussinesq&,
-            const Boussinesq&
-        );
-
         friend Boussinesq operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H b/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H
index 2d689847382..45b9d58cfea 100644
--- a/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H
+++ b/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -121,21 +121,21 @@ inline Foam::scalar Foam::Boussinesq<Specie>::rho
 
 
 template<class Specie>
-inline Foam::scalar Foam::Boussinesq<Specie>::h(scalar p, scalar T) const
+inline Foam::scalar Foam::Boussinesq<Specie>::H(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::Boussinesq<Specie>::cp(scalar p, scalar T) const
+inline Foam::scalar Foam::Boussinesq<Specie>::Cp(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::Boussinesq<Specie>::s
+inline Foam::scalar Foam::Boussinesq<Specie>::S
 (
     scalar p,
     scalar T
@@ -168,13 +168,13 @@ inline Foam::scalar Foam::Boussinesq<Specie>::Z
 
 
 template<class Specie>
-inline Foam::scalar Foam::Boussinesq<Specie>::cpMcv
+inline Foam::scalar Foam::Boussinesq<Specie>::CpMCv
 (
     scalar p,
     scalar T
 ) const
 {
-    return RR;
+    return this->R();
 }
 
 
@@ -200,27 +200,18 @@ inline void Foam::Boussinesq<Specie>::operator+=
     const Boussinesq<Specie>& b
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
     Specie::operator+=(b);
-    molr1 /= this->nMoles();
-    scalar molr2 = b.nMoles()/this->nMoles();
-
-    rho0_ = molr1*rho0_ + molr2*b.rho0_;
-    T0_ = molr1*T0_ + molr2*b.T0_;
-    beta_ = molr1*beta_ + molr2*b.beta_;
-}
 
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = b.Y()/this->Y();
 
-template<class Specie>
-inline void Foam::Boussinesq<Specie>::operator-=
-(
-    const Boussinesq<Specie>& b
-)
-{
-    Specie::operator-=(b);
-    rho0_ = b.rho0_;
-    T0_ = b.T0_;
-    beta_ = b.beta_;
+        rho0_ = Y1*rho0_ + Y2*b.rho0_;
+        T0_ = Y1*T0_ + Y2*b.T0_;
+        beta_ = Y1*beta_ + Y2*b.beta_;
+    }
 }
 
 
@@ -240,36 +231,31 @@ inline Foam::Boussinesq<Specie> Foam::operator+
     const Boussinesq<Specie>& b2
 )
 {
-    scalar nMoles = b1.nMoles() + b2.nMoles();
-    scalar molr1 = b1.nMoles()/nMoles;
-    scalar molr2 = b2.nMoles()/nMoles;
-
-    return Boussinesq<Specie>
-    (
-        static_cast<const Specie&>(b1)
-      + static_cast<const Specie&>(b2),
-        molr1*b1.rho0_ + molr2*b2.rho0_,
-        molr1*b1.T0_ + molr2*b2.T0_,
-        molr1*b1.beta_ + molr2*b2.beta_
-    );
-}
-
-
-template<class Specie>
-inline Foam::Boussinesq<Specie> Foam::operator-
-(
-    const Boussinesq<Specie>& b1,
-    const Boussinesq<Specie>& b2
-)
-{
-    return Boussinesq<Specie>
-    (
-        static_cast<const Specie&>(b1)
-      - static_cast<const Specie&>(b2),
-        b1.rho0_ - b2.rho0_,
-        b1.T0_ - b2.T0_,
-        b1.beta_ - b2.beta_
-    );
+    Specie sp(static_cast<const Specie&>(b1) + static_cast<const Specie&>(b2));
+
+    if (mag(sp.Y()) < SMALL)
+    {
+        return Boussinesq<Specie>
+        (
+            sp,
+            b1.rho0_,
+            b1.T0_,
+            b1.beta_
+        );
+    }
+    else
+    {
+        const scalar Y1 = b1.Y()/sp.Y();
+        const scalar Y2 = b2.Y()/sp.Y();
+
+        return Boussinesq<Specie>
+        (
+            sp,
+            Y1*b1.rho0_ + Y2*b2.rho0_,
+            Y1*b1.T0_ + Y2*b2.T0_,
+            Y1*b1.beta_ + Y2*b2.beta_
+        );
+    }
 }
 
 
@@ -293,11 +279,22 @@ inline Foam::Boussinesq<Specie> Foam::operator*
 template<class Specie>
 inline Foam::Boussinesq<Specie> Foam::operator==
 (
-    const Boussinesq<Specie>& pg1,
-    const Boussinesq<Specie>& pg2
+    const Boussinesq<Specie>& b1,
+    const Boussinesq<Specie>& b2
 )
 {
-    return pg2 - pg1;
+    Specie sp(static_cast<const Specie&>(b1) == static_cast<const Specie&>(b2));
+
+    const scalar Y1 = b1.Y()/sp.Y();
+    const scalar Y2 = b2.Y()/sp.Y();
+
+    return Boussinesq<Specie>
+    (
+        sp,
+        Y2*b2.rho0_ - Y1*b1.rho0_,
+        Y2*b2.T0_   - Y1*b1.T0_,
+        Y2*b2.beta_ - Y1*b1.beta_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C
index a36766ade86..eeaa0a2cead 100644
--- a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C
+++ b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H
index 49e1445c459..3f0498bb5ee 100644
--- a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H
+++ b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,13 +54,6 @@ inline PengRobinsonGas<Specie> operator+
     const PengRobinsonGas<Specie>&
 );
 
-template<class Specie>
-inline PengRobinsonGas<Specie> operator-
-(
-    const PengRobinsonGas<Specie>&,
-    const PengRobinsonGas<Specie>&
-);
-
 template<class Specie>
 inline PengRobinsonGas<Specie> operator*
 (
@@ -168,23 +161,23 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
 
-            //- Return compression factor [-]
+            //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
     // IO
@@ -195,8 +188,6 @@ public:
     // Member operators
 
         inline void operator+=(const PengRobinsonGas&);
-        inline void operator-=(const PengRobinsonGas&);
-
         inline void operator*=(const scalar);
 
 
@@ -208,12 +199,6 @@ public:
             const PengRobinsonGas&
         );
 
-        friend PengRobinsonGas operator- <Specie>
-        (
-            const PengRobinsonGas&,
-            const PengRobinsonGas&
-        );
-
         friend PengRobinsonGas operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H
index dc2ed305b4b..d4553eb380d 100644
--- a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H
+++ b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -111,24 +111,25 @@ inline Foam::scalar Foam::PengRobinsonGas<Specie>::rho
     scalar T
 ) const
 {
-    scalar Z = this->Z(p, T);
+    const scalar Z = this->Z(p, T);
     return p/(Z*this->R()*T);
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::PengRobinsonGas<Specie>::h(scalar p, scalar T) const
+inline Foam::scalar Foam::PengRobinsonGas<Specie>::H(scalar p, scalar T) const
 {
-    scalar Pr = p/Pc_;
-    scalar Tr = T/Tc_;
-    scalar B = 0.07780*Pr/Tr;
-    scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
-    scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
+    const scalar Pr = p/Pc_;
+    const scalar Tr = T/Tc_;
+    const scalar B = 0.07780*Pr/Tr;
+    const scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
+    const scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
 
-    scalar Z = this->Z(p, T);
+    const scalar Z = this->Z(p, T);
 
     return
-        RR*Tc_
+        this->R()
+       *Tc_
        *(
            Tr*(Z - 1)
          - 2.078*(1 + kappa)*sqrt(alpha)
@@ -138,55 +139,59 @@ inline Foam::scalar Foam::PengRobinsonGas<Specie>::h(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::PengRobinsonGas<Specie>::cp(scalar p, scalar T) const
+inline Foam::scalar Foam::PengRobinsonGas<Specie>::Cp(scalar p, scalar T) const
 {
-    scalar Tr = T/Tc_;
-    scalar a = 0.45724*sqr(RR*Tc_)/Pc_;
-    scalar b = 0.07780*RR*Tc_/Pc_;
-    scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
-    scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
+    const scalar Tr = T/Tc_;
+    const scalar a = 0.45724*sqr(RR*Tc_)/Pc_;
+    const scalar b = 0.07780*RR*Tc_/Pc_;
+    const scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
+    const scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
 
-    scalar A = a*alpha*p/sqr(RR*T);
-    scalar B = b*p/(RR*T);
+    const scalar A = a*alpha*p/sqr(RR*T);
+    const scalar B = b*p/(RR*T);
 
-    scalar Z = this->Z(p, T);
+    const scalar Z = this->Z(p, T);
 
-    scalar ap = kappa*a*(kappa/Tc_ - (1 + kappa)/sqrt(T*Tc_));
-    scalar app = kappa*a*(1 + kappa)/(2*sqrt(pow3(T)*Tc_));
+    const scalar ap = kappa*a*(kappa/Tc_ - (1 + kappa)/sqrt(T*Tc_));
+    const scalar app = kappa*a*(1 + kappa)/(2*sqrt(pow3(T)*Tc_));
 
-    scalar M = (sqr(Z) + 2*B*Z - sqr(B))/(Z - B);
-    scalar N = ap*B/(b*RR);
+    const scalar M = (sqr(Z) + 2*B*Z - sqr(B))/(Z - B);
+    const scalar N = ap*B/(b*RR);
 
     const scalar root2 = sqrt(2.0);
 
     return
+    (
         app*(T/(2*root2*b))*log((Z + (root2 + 1)*B)/(Z - (root2 - 1)*B))
       + RR*sqr(M - N)/(sqr(M) - 2*A*(Z + B))
-      - RR;
+      - RR
+    )/this->W();
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::PengRobinsonGas<Specie>::s
+inline Foam::scalar Foam::PengRobinsonGas<Specie>::S
 (
     scalar p,
     scalar T
 ) const
 {
-    scalar Pr = p/Pc_;
-    scalar Tr = T/Tc_;
-    scalar B = 0.07780*Pr/Tr;
-    scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
+    const scalar Pr = p/Pc_;
+    const scalar Tr = T/Tc_;
+    const scalar B = 0.07780*Pr/Tr;
+    const scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
 
-    scalar Z = this->Z(p, T);
+    const scalar Z = this->Z(p, T);
 
     return
-      - RR*log(p/Pstd)
-      + RR
+        this->R()
        *(
-           log(Z - B)
-         - 2.078*kappa*((1 + kappa)/sqrt(Tr) - kappa)
-          *log((Z + 2.414*B)/(Z - 0.414*B))
+          - log(p/Pstd)
+          + (
+                log(Z - B)
+              - 2.078*kappa*((1 + kappa)/sqrt(Tr) - kappa)
+               *log((Z + 2.414*B)/(Z - 0.414*B))
+            )
         );
 }
 
@@ -198,7 +203,7 @@ inline Foam::scalar Foam::PengRobinsonGas<Specie>::psi
     scalar T
 ) const
 {
-    scalar Z = this->Z(p, T);
+    const scalar Z = this->Z(p, T);
 
     return 1.0/(Z*this->R()*T);
 }
@@ -211,42 +216,44 @@ inline Foam::scalar Foam::PengRobinsonGas<Specie>::Z
     scalar T
 ) const
 {
-    scalar Tr = T/Tc_;
-    scalar a = 0.45724*sqr(RR*Tc_)/Pc_;
-    scalar b = 0.07780*RR*Tc_/Pc_;
-    scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
-    scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
+    const scalar Tr = T/Tc_;
+    const scalar a = 0.45724*sqr(RR*Tc_)/Pc_;
+    const scalar b = 0.07780*RR*Tc_/Pc_;
+    const scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
+    const scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
 
-    scalar A = a*alpha*p/sqr(RR*T);
-    scalar B = b*p/(RR*T);
+    const scalar A = a*alpha*p/sqr(RR*T);
+    const scalar B = b*p/(RR*T);
 
-    scalar a2 = B - 1;
-    scalar a1 = A - 2*B - 3*sqr(B);
-    scalar a0 = -A*B + sqr(B) + pow3(B);
+    const scalar a2 = B - 1;
+    const scalar a1 = A - 2*B - 3*sqr(B);
+    const scalar a0 = -A*B + sqr(B) + pow3(B);
 
-    scalar Q = (3*a1 - a2*a2)/9.0;
-    scalar Rl = (9*a2*a1 - 27*a0 - 2*a2*a2*a2)/54.0;
+    const scalar Q = (3*a1 - a2*a2)/9.0;
+    const scalar Rl = (9*a2*a1 - 27*a0 - 2*a2*a2*a2)/54.0;
 
-    scalar Q3 = Q*Q*Q;
-    scalar D = Q3 + Rl*Rl;
+    const scalar Q3 = Q*Q*Q;
+    const scalar D = Q3 + Rl*Rl;
 
     scalar root = -1;
 
     if (D <= 0)
     {
-        scalar th = ::acos(Rl/sqrt(-Q3));
-        scalar qm = 2*sqrt(-Q);
-        scalar r1 = qm*cos(th/3.0) - a2/3.0;
-        scalar r2 = qm*cos((th + 2*constant::mathematical::pi)/3.0) - a2/3.0;
-        scalar r3 = qm*cos((th + 4*constant::mathematical::pi)/3.0) - a2/3.0;
+        const scalar th = ::acos(Rl/sqrt(-Q3));
+        const scalar qm = 2*sqrt(-Q);
+        const scalar r1 = qm*cos(th/3.0) - a2/3.0;
+        const scalar r2 =
+            qm*cos((th + 2*constant::mathematical::pi)/3.0) - a2/3.0;
+        const scalar r3 =
+            qm*cos((th + 4*constant::mathematical::pi)/3.0) - a2/3.0;
 
         root = max(r1, max(r2, r3));
     }
     else
     {
         // One root is real
-        scalar D05 = sqrt(D);
-        scalar S = pow(Rl + D05, 1.0/3.0);
+        const scalar D05 = sqrt(D);
+        const scalar S = pow(Rl + D05, 1.0/3.0);
         scalar Tl = 0;
         if (D05 > Rl)
         {
@@ -265,28 +272,28 @@ inline Foam::scalar Foam::PengRobinsonGas<Specie>::Z
 
 
 template<class Specie>
-inline Foam::scalar Foam::PengRobinsonGas<Specie>::cpMcv
+inline Foam::scalar Foam::PengRobinsonGas<Specie>::CpMCv
 (
     scalar p,
     scalar T
 ) const
 {
-    scalar Tr = T/Tc_;
-    scalar a = 0.45724*sqr(RR*Tc_)/Pc_;
-    scalar b = 0.07780*RR*Tc_/Pc_;
-    scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
-    scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
+    const scalar Tr = T/Tc_;
+    const scalar a = 0.45724*sqr(RR*Tc_)/Pc_;
+    const scalar b = 0.07780*RR*Tc_/Pc_;
+    const scalar kappa = 0.37464 + 1.54226*omega_ - 0.26992*sqr(omega_);
+    const scalar alpha = sqr(1 + kappa*(1 - sqrt(Tr)));
 
-    scalar A = alpha*a*p/sqr(RR*T);
-    scalar B = b*p/(RR*T);
+    const scalar A = alpha*a*p/sqr(RR*T);
+    const scalar B = b*p/(RR*T);
 
-    scalar Z = this->Z(p, T);
+    const scalar Z = this->Z(p, T);
 
-    scalar ap = kappa*a*(kappa/Tc_ - (1 + kappa)/sqrt(T*Tc_));
-    scalar M = (sqr(Z) + 2*B*Z - sqr(B))/(Z - B);
-    scalar N = ap*B/(b*RR);
+    const scalar ap = kappa*a*(kappa/Tc_ - (1 + kappa)/sqrt(T*Tc_));
+    const scalar M = (sqr(Z) + 2*B*Z - sqr(B))/(Z - B);
+    const scalar N = ap*B/(b*RR);
 
-    return RR*sqr(M - N)/(sqr(M) - 2*A*(Z + B));
+    return this->R()*sqr(M - N)/(sqr(M) - 2*A*(Z + B));
 }
 
 
@@ -298,38 +305,20 @@ inline void Foam::PengRobinsonGas<Specie>::operator+=
     const PengRobinsonGas<Specie>& pg
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
     Specie::operator+=(pg);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pg.nMoles()/this->nMoles();
-
-    Tc_ = molr1*Tc_ + molr2*pg.Tc_;
-    Vc_ = molr1*Vc_ + molr2*pg.Vc_;
-    Zc_ = molr1*Zc_ + molr2*pg.Zc_;
-    Pc_ = RR*Zc_*Tc_/Vc_;
-    omega_ = molr1*omega_ + molr2*pg.omega_;
-}
-
-
-template<class Specie>
-inline void Foam::PengRobinsonGas<Specie>::operator-=
-(
-    const PengRobinsonGas<Specie>& pg
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Specie::operator-=(pg);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pg.nMoles()/this->nMoles();
-
-    Tc_ = molr1*Tc_ - molr2*pg.Tc_;
-    Vc_ = molr1*Vc_ - molr2*pg.Vc_;
-    Zc_ = molr1*Zc_ - molr2*pg.Zc_;
-    Pc_ = RR*Zc_*Tc_/Vc_;
-    omega_ = molr1*omega_ - molr2*pg.omega_;
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = pg.Y()/this->Y();
+
+        Tc_ = Y1*Tc_ + Y2*pg.Tc_;
+        Vc_ = Y1*Vc_ + Y2*pg.Vc_;
+        Zc_ = Y1*Zc_ + Y2*pg.Zc_;
+        Pc_ = RR*Zc_*Tc_/Vc_;
+        omega_ = Y1*omega_ + Y2*pg.omega_;
+    }
 }
 
 
@@ -350,52 +339,43 @@ Foam::PengRobinsonGas<Specie> Foam::operator+
     const PengRobinsonGas<Specie>& pg2
 )
 {
-    scalar nMoles = pg1.nMoles() + pg2.nMoles();
-    scalar molr1 = pg1.nMoles()/nMoles;
-    scalar molr2 = pg2.nMoles()/nMoles;
-
-    const scalar Tc = molr1*pg1.Tc_ + molr2*pg2.Tc_;
-    const scalar Vc = molr1*pg1.Vc_ + molr2*pg2.Vc_;
-    const scalar Zc = molr1*pg1.Zc_ + molr2*pg2.Zc_;
-
-    return PengRobinsonGas<Specie>
+    Specie sp
     (
         static_cast<const Specie&>(pg1)
-      + static_cast<const Specie&>(pg2),
-        Tc,
-        Vc,
-        Zc,
-        RR*Zc*Tc/Vc,
-        molr1*pg1.omega_ + molr2*pg2.omega_
+      + static_cast<const Specie&>(pg2)
     );
-}
 
-
-template<class Specie>
-Foam::PengRobinsonGas<Specie> Foam::operator-
-(
-    const PengRobinsonGas<Specie>& pg1,
-    const PengRobinsonGas<Specie>& pg2
-)
-{
-    scalar nMoles = pg1.nMoles() + pg2.nMoles();
-    scalar molr1 = pg1.nMoles()/nMoles;
-    scalar molr2 = pg2.nMoles()/nMoles;
-
-    const scalar Tc = molr1*pg1.Tc_ + molr2*pg2.Tc_;
-    const scalar Vc = molr1*pg1.Vc_ + molr2*pg2.Vc_;
-    const scalar Zc = molr1*pg1.Zc_ + molr2*pg2.Zc_;
-
-    return PengRobinsonGas<Specie>
-    (
-        static_cast<const Specie&>(pg1)
-      - static_cast<const Specie&>(pg2),
-        Tc,
-        Vc,
-        Zc,
-        RR*Zc*Tc/Vc,
-        molr1*pg1.omega_ - molr2*pg2.omega_
-    );
+    if (mag(sp.Y()) < SMALL)
+    {
+        return PengRobinsonGas<Specie>
+        (
+            sp,
+            pg1.Tc_,
+            pg1.Vc_,
+            pg1.Zc_,
+            pg1.Pc_,
+            pg1.omega_
+        );
+    }
+    else
+    {
+        const scalar Y1 = pg1.Y()/sp.Y();
+        const scalar Y2 = pg2.Y()/sp.Y();
+
+        const scalar Tc = Y1*pg1.Tc_ + Y2*pg2.Tc_;
+        const scalar Vc = Y1*pg1.Vc_ + Y2*pg2.Vc_;
+        const scalar Zc = Y1*pg1.Zc_ + Y2*pg2.Zc_;
+
+        return PengRobinsonGas<Specie>
+        (
+            sp,
+            Tc,
+            Vc,
+            Zc,
+            RR*Zc*Tc/Vc,
+            Y1*pg1.omega_ + Y2*pg2.omega_
+        );
+    }
 }
 
 
@@ -425,7 +405,28 @@ Foam::PengRobinsonGas<Specie> Foam::operator==
     const PengRobinsonGas<Specie>& pg2
 )
 {
-    return pg2 - pg1;
+    Specie sp
+    (
+        static_cast<const Specie&>(pg1)
+     == static_cast<const Specie&>(pg2)
+    );
+
+    const scalar Y1 = pg1.Y()/sp.Y();
+    const scalar Y2 = pg2.Y()/sp.Y();
+
+    const scalar Tc = Y2*pg2.Tc_ - Y1*pg1.Tc_;
+    const scalar Vc = Y2*pg2.Vc_ - Y1*pg1.Vc_;
+    const scalar Zc = Y2*pg2.Zc_ - Y1*pg1.Zc_;
+
+    return PengRobinsonGas<Specie>
+    (
+        sp,
+        Tc,
+        Vc,
+        Zc,
+        RR*Zc*Tc/Vc,
+        Y2*pg2.omega_ - Y1*pg1.omega_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C
index 5d35425ccce..a8609cb7ad2 100644
--- a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C
+++ b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H
index 342e6b3bb68..f22275cf91c 100644
--- a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H
+++ b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,7 +25,7 @@ Class
     Foam::adiabaticPerfectFluid
 
 Description
-    AdiabaticPerfect gas equation of state.
+    Adiabatic perfect fluid equation of state.
 
 SourceFiles
     adiabaticPerfectFluidI.H
@@ -54,13 +54,6 @@ inline adiabaticPerfectFluid<Specie> operator+
     const adiabaticPerfectFluid<Specie>&
 );
 
-template<class Specie>
-inline adiabaticPerfectFluid<Specie> operator-
-(
-    const adiabaticPerfectFluid<Specie>&,
-    const adiabaticPerfectFluid<Specie>&
-);
-
 template<class Specie>
 inline adiabaticPerfectFluid<Specie> operator*
 (
@@ -167,14 +160,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -182,8 +175,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -195,8 +188,6 @@ public:
     // Member operators
 
         inline void operator+=(const adiabaticPerfectFluid&);
-        inline void operator-=(const adiabaticPerfectFluid&);
-
         inline void operator*=(const scalar);
 
 
@@ -208,12 +199,6 @@ public:
             const adiabaticPerfectFluid&
         );
 
-        friend adiabaticPerfectFluid operator- <Specie>
-        (
-            const adiabaticPerfectFluid&,
-            const adiabaticPerfectFluid&
-        );
-
         friend adiabaticPerfectFluid operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H
index 87adcdad2bb..c6275c99004 100644
--- a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H
+++ b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -112,7 +112,7 @@ inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::rho
 
 
 template<class Specie>
-inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::h
+inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::H
 (
     scalar p,
     scalar T
@@ -123,7 +123,7 @@ inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::h
 
 
 template<class Specie>
-inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::cp
+inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::Cp
 (
     scalar p,
     scalar T
@@ -134,7 +134,7 @@ inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::cp
 
 
 template<class Specie>
-inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::s
+inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::S
 (
     scalar p,
     scalar T
@@ -168,7 +168,7 @@ inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::Z(scalar, scalar) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::cpMcv
+inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::CpMCv
 (
     scalar p,
     scalar T
@@ -186,37 +186,19 @@ inline void Foam::adiabaticPerfectFluid<Specie>::operator+=
     const adiabaticPerfectFluid<Specie>& pf
 )
 {
-    scalar molr1 = this->nMoles();
-
+    scalar Y1 = this->Y();
     Specie::operator+=(pf);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pf.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = pf.Y()/this->Y();
 
-    p0_ = molr1*p0_ + molr2*pf.p0_;
-    rho0_ = molr1*rho0_ + molr2*pf.rho0_;
-    gamma_ = molr1*gamma_ + molr2*pf.gamma_;
-    B_ = molr1*B_ + molr2*pf.B_;
-}
-
-
-template<class Specie>
-inline void Foam::adiabaticPerfectFluid<Specie>::operator-=
-(
-    const adiabaticPerfectFluid<Specie>& pf
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Specie::operator-=(pf);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pf.nMoles()/this->nMoles();
-
-    p0_ = molr1*p0_ - molr2*pf.p0_;
-    rho0_ = molr1*rho0_ - molr2*pf.rho0_;
-    gamma_ = molr1*gamma_ - molr2*pf.gamma_;
-    B_ = molr1*B_ - molr2*pf.B_;
+        p0_ = Y1*p0_ + Y2*pf.p0_;
+        rho0_ = Y1*rho0_ + Y2*pf.rho0_;
+        gamma_ = Y1*gamma_ + Y2*pf.gamma_;
+        B_ = Y1*B_ + Y2*pf.B_;
+    }
 }
 
 
@@ -236,42 +218,37 @@ inline Foam::adiabaticPerfectFluid<Specie> Foam::operator+
     const adiabaticPerfectFluid<Specie>& pf2
 )
 {
-    scalar nMoles = pf1.nMoles() + pf2.nMoles();
-    scalar molr1 = pf1.nMoles()/nMoles;
-    scalar molr2 = pf2.nMoles()/nMoles;
-
-    return rhoConst<Specie>
+    Specie sp
     (
         static_cast<const Specie&>(pf1)
-      + static_cast<const Specie&>(pf2),
-        molr1*pf1.p0_ + molr2*pf2.p0_,
-        molr1*pf1.rho0_ + molr2*pf2.rho0_,
-        molr1*pf1.gamma_ + molr2*pf2.gamma_,
-        molr1*pf1.B_ + molr2*pf2.B_
+      + static_cast<const Specie&>(pf2)
     );
-}
-
 
-template<class Specie>
-inline Foam::adiabaticPerfectFluid<Specie> Foam::operator-
-(
-    const adiabaticPerfectFluid<Specie>& pf1,
-    const adiabaticPerfectFluid<Specie>& pf2
-)
-{
-    scalar nMoles = pf1.nMoles() + pf2.nMoles();
-    scalar molr1 = pf1.nMoles()/nMoles;
-    scalar molr2 = pf2.nMoles()/nMoles;
-
-    return rhoConst<Specie>
-    (
-        static_cast<const Specie&>(pf1)
-      - static_cast<const Specie&>(pf2),
-        molr1*pf1.p0_ - molr2*pf2.p0_,
-        molr1*pf1.rho0_ - molr2*pf2.rho0_,
-        molr1*pf1.gamma_ - molr2*pf2.gamma_,
-        molr1*pf1.B_ - molr2*pf2.B_
-    );
+    if (mag(sp.Y()) < SMALL)
+    {
+        return adiabaticPerfectFluid<Specie>
+        (
+            sp,
+            pf1.p0_,
+            pf1.rho0_,
+            pf1.gamma_,
+            pf1.B_
+        );
+    }
+    else
+    {
+        const scalar Y1 = pf1.Y()/sp.Y();
+        const scalar Y2 = pf2.Y()/sp.Y();
+
+        return adiabaticPerfectFluid<Specie>
+        (
+            sp,
+            Y1*pf1.p0_ + Y2*pf2.p0_,
+            Y1*pf1.rho0_ + Y2*pf2.rho0_,
+            Y1*pf1.gamma_ + Y2*pf2.gamma_,
+            Y1*pf1.B_ + Y2*pf2.B_
+        );
+    }
 }
 
 
@@ -300,7 +277,23 @@ inline Foam::adiabaticPerfectFluid<Specie> Foam::operator==
     const adiabaticPerfectFluid<Specie>& pf2
 )
 {
-    return pf2 - pf1;
+    Specie sp
+    (
+        static_cast<const Specie&>(pf1)
+     == static_cast<const Specie&>(pf2)
+    );
+
+    const scalar Y1 = pf1.Y()/sp.Y();
+    const scalar Y2 = pf2.Y()/sp.Y();
+
+    return adiabaticPerfectFluid<Specie>
+    (
+        sp,
+        Y2*pf2.p0_    - Y1*pf1.p0_,
+        Y2*pf2.rho0_  - Y1*pf1.rho0_,
+        Y2*pf2.gamma_ - Y1*pf1.gamma_,
+        Y2*pf2.B_     - Y1*pf1.B_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C
index 3550f8a1be3..472ff3e5fe8 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,9 +38,7 @@ icoPolynomial<Specie, PolySize>::icoPolynomial(Istream& is)
 :
     Specie(is),
     rhoCoeffs_("rhoCoeffs<" + Foam::name(PolySize) + '>', is)
-{
-    rhoCoeffs_ *= this->W();
-}
+{}
 
 
 template<class Specie, int PolySize>
@@ -54,9 +52,7 @@ icoPolynomial<Specie, PolySize>::icoPolynomial(const dictionary& dict)
         "rhoCoeffs<" + Foam::name(PolySize) + '>'
     )
 )
-{
-    rhoCoeffs_ *= this->W();
-}
+{}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -70,7 +66,7 @@ void icoPolynomial<Specie, PolySize>::write(Ostream& os) const
     dict.add
     (
         word("rhoCoeffs<" + Foam::name(PolySize) + '>'),
-        rhoCoeffs_/this->W()
+        rhoCoeffs_
     );
 
     os  << indent << dict.dictName() << dict;
@@ -84,7 +80,7 @@ Ostream& operator<<(Ostream& os, const icoPolynomial<Specie, PolySize>& ip)
 {
     os  << static_cast<const Specie&>(ip) << tab
         << "rhoCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << ip.rhoCoeffs_/ip.W();
+        << ip.rhoCoeffs_;
 
     os.check
     (
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
index 80bf9e928af..2ba5425125e 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,13 +83,6 @@ icoPolynomial<Specie, PolySize> operator+
     const icoPolynomial<Specie, PolySize>&
 );
 
-template<class Specie, int PolySize>
-icoPolynomial<Specie, PolySize> operator-
-(
-    const icoPolynomial<Specie, PolySize>&,
-    const icoPolynomial<Specie, PolySize>&
-);
-
 template<class Specie, int PolySize>
 icoPolynomial<Specie, PolySize> operator*
 (
@@ -180,14 +173,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -195,8 +188,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -209,8 +202,6 @@ public:
 
         inline void operator=(const icoPolynomial&);
         inline void operator+=(const icoPolynomial&);
-        inline void operator-=(const icoPolynomial&);
-
         inline void operator*=(const scalar);
 
 
@@ -222,12 +213,6 @@ public:
             const icoPolynomial&
         );
 
-        friend icoPolynomial operator- <Specie, PolySize>
-        (
-            const icoPolynomial&,
-            const icoPolynomial&
-        );
-
         friend icoPolynomial operator* <Specie, PolySize>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H
index 03d087c74f7..5358f425e34 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -106,12 +106,12 @@ inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::rho
     scalar T
 ) const
 {
-    return rhoCoeffs_.value(T)/this->W();
+    return rhoCoeffs_.value(T);
 }
 
 
 template<class Specie, int PolySize>
-inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::h
+inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::H
 (
     scalar p,
     scalar T
@@ -122,7 +122,7 @@ inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::h
 
 
 template<class Specie, int PolySize>
-inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::cp
+inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::Cp
 (
     scalar p,
     scalar T
@@ -133,7 +133,7 @@ inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::cp
 
 
 template<class Specie, int PolySize>
-inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::s
+inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::S
 (
     scalar p,
     scalar T
@@ -166,7 +166,7 @@ inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::Z
 
 
 template<class Specie, int PolySize>
-inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::cpMcv
+inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::CpMCv
 (
     scalar p,
     scalar T
@@ -196,31 +196,16 @@ inline void Foam::icoPolynomial<Specie, PolySize>::operator+=
     const icoPolynomial<Specie, PolySize>& ip
 )
 {
-    scalar molr1 = this->nMoles();
-
+    scalar Y1 = this->Y();
     Specie::operator+=(ip);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ip.nMoles()/this->nMoles();
-
-    rhoCoeffs_ = molr1*rhoCoeffs_ + molr2*ip.rhoCoeffs_;
-}
-
-
-template<class Specie, int PolySize>
-inline void Foam::icoPolynomial<Specie, PolySize>::operator-=
-(
-    const icoPolynomial<Specie, PolySize>& ip
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Specie::operator-=(ip);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ip.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = ip.Y()/this->Y();
 
-    rhoCoeffs_ = molr1*rhoCoeffs_ - molr2*ip.rhoCoeffs_;
+        rhoCoeffs_ = Y1*rhoCoeffs_ + Y2*ip.rhoCoeffs_;
+    }
 }
 
 
@@ -240,36 +225,31 @@ Foam::icoPolynomial<Specie, PolySize> Foam::operator+
     const icoPolynomial<Specie, PolySize>& ip2
 )
 {
-    scalar nMoles = ip1.nMoles() + ip2.nMoles();
-    scalar molr1 = ip1.nMoles()/nMoles;
-    scalar molr2 = ip2.nMoles()/nMoles;
-
-    return icoPolynomial<Specie, PolySize>
+    Specie sp
     (
         static_cast<const Specie&>(ip1)
-      + static_cast<const Specie&>(ip2),
-        molr1*ip1.rhoCoeffs_ + molr2*ip2.rhoCoeffs_
+      + static_cast<const Specie&>(ip2)
     );
-}
-
 
-template<class Specie, int PolySize>
-Foam::icoPolynomial<Specie, PolySize> Foam::operator-
-(
-    const icoPolynomial<Specie, PolySize>& ip1,
-    const icoPolynomial<Specie, PolySize>& ip2
-)
-{
-    scalar nMoles = ip1.nMoles() + ip2.nMoles();
-    scalar molr1 = ip1.nMoles()/nMoles;
-    scalar molr2 = ip2.nMoles()/nMoles;
-
-    return icoPolynomial<Specie, PolySize>
-    (
-        static_cast<const Specie&>(ip1)
-      - static_cast<const Specie&>(ip2),
-        molr1*ip1.rhoCoeffs_ - molr2*ip2.rhoCoeffs_
-    );
+    if (mag(sp.Y()) < SMALL)
+    {
+        return icoPolynomial<Specie, PolySize>
+        (
+            sp,
+            ip1.rhoCoeffs_
+        );
+    }
+    else
+    {
+        const scalar Y1 = ip1.Y()/sp.Y();
+        const scalar Y2 = ip2.Y()/sp.Y();
+
+        return icoPolynomial<Specie, PolySize>
+        (
+            sp,
+            Y1*ip1.rhoCoeffs_ + Y2*ip2.rhoCoeffs_
+        );
+    }
 }
 
 
@@ -295,7 +275,20 @@ Foam::icoPolynomial<Specie, PolySize> Foam::operator==
     const icoPolynomial<Specie, PolySize>& ip2
 )
 {
-    return ip2 - ip1;
+    Specie sp
+    (
+        static_cast<const Specie&>(ip1)
+     == static_cast<const Specie&>(ip2)
+    );
+
+    const scalar Y1 = ip1.Y()/sp.Y();
+    const scalar Y2 = ip2.Y()/sp.Y();
+
+    return icoPolynomial<Specie, PolySize>
+    (
+        sp,
+        Y2*ip2.rhoCoeffs_ - Y1*ip1.rhoCoeffs_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C
index 4f957aafedf..02955422baf 100644
--- a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C
+++ b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H
index 67adc188c24..cf0c73dbf19 100644
--- a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H
+++ b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,13 +56,6 @@ inline incompressiblePerfectGas<Specie> operator+
     const incompressiblePerfectGas<Specie>&
 );
 
-template<class Specie>
-inline incompressiblePerfectGas<Specie> operator-
-(
-    const incompressiblePerfectGas<Specie>&,
-    const incompressiblePerfectGas<Specie>&
-);
-
 template<class Specie>
 inline incompressiblePerfectGas<Specie> operator*
 (
@@ -158,14 +151,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -173,8 +166,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -187,8 +180,6 @@ public:
 
         inline void operator=(const incompressiblePerfectGas&);
         inline void operator+=(const incompressiblePerfectGas&);
-        inline void operator-=(const incompressiblePerfectGas&);
-
         inline void operator*=(const scalar);
 
 
@@ -200,12 +191,6 @@ public:
             const incompressiblePerfectGas&
         );
 
-        friend incompressiblePerfectGas operator- <Specie>
-        (
-            const incompressiblePerfectGas&,
-            const incompressiblePerfectGas&
-        );
-
         friend incompressiblePerfectGas operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H
index 8816c9f317c..f1772442b5e 100644
--- a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H
+++ b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -115,7 +115,7 @@ inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::rho
 
 
 template<class Specie>
-inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::h
+inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::H
 (
     scalar p,
     scalar T
@@ -126,7 +126,7 @@ inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::h
 
 
 template<class Specie>
-inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::cp
+inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::Cp
 (
     scalar p,
     scalar T
@@ -137,7 +137,7 @@ inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::cp
 
 
 template<class Specie>
-inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::s
+inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::S
 (
     scalar p,
     scalar T
@@ -170,13 +170,13 @@ inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::Z
 
 
 template<class Specie>
-inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::cpMcv
+inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::CpMCv
 (
     scalar p,
     scalar T
 ) const
 {
-    return RR;
+    return this->R();
 }
 
 
@@ -199,23 +199,16 @@ inline void Foam::incompressiblePerfectGas<Specie>::operator+=
     const incompressiblePerfectGas<Specie>& ipg
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
     Specie::operator+=(ipg);
-    molr1 /= this->nMoles();
-    scalar molr2 = ipg.nMoles()/this->nMoles();
-
-    pRef_ = molr1*pRef_ + molr2*ipg.pRef_;
-}
 
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = ipg.Y()/this->Y();
 
-template<class Specie>
-inline void Foam::incompressiblePerfectGas<Specie>::operator-=
-(
-    const incompressiblePerfectGas<Specie>& ipg
-)
-{
-    Specie::operator-=(ipg);
-    pRef_ = ipg.pRef_;
+        pRef_ = Y1*pRef_ + Y2*ipg.pRef_;
+    }
 }
 
 
@@ -235,32 +228,31 @@ inline Foam::incompressiblePerfectGas<Specie> Foam::operator+
     const incompressiblePerfectGas<Specie>& ipg2
 )
 {
-    scalar nMoles = ipg1.nMoles() + ipg2.nMoles();
-    scalar molr1 = ipg1.nMoles()/nMoles;
-    scalar molr2 = ipg2.nMoles()/nMoles;
-
-    return incompressiblePerfectGas<Specie>
+    Specie sp
     (
         static_cast<const Specie&>(ipg1)
-      + static_cast<const Specie&>(ipg2),
-        molr1*ipg1.pRef_ + molr2*ipg2.pRef_
+      + static_cast<const Specie&>(ipg2)
     );
-}
-
 
-template<class Specie>
-inline Foam::incompressiblePerfectGas<Specie> Foam::operator-
-(
-    const incompressiblePerfectGas<Specie>& ipg1,
-    const incompressiblePerfectGas<Specie>& ipg2
-)
-{
-    return incompressiblePerfectGas<Specie>
-    (
-        static_cast<const Specie&>(ipg1)
-      - static_cast<const Specie&>(ipg2),
-        ipg1.pRef_
-    );
+    if (mag(sp.Y()) < SMALL)
+    {
+        return incompressiblePerfectGas<Specie>
+        (
+            sp,
+            ipg1.pRef_
+        );
+    }
+    else
+    {
+        const scalar Y1 = ipg1.Y()/sp.Y();
+        const scalar Y2 = ipg2.Y()/sp.Y();
+
+        return incompressiblePerfectGas<Specie>
+        (
+            sp,
+            Y1*ipg1.pRef_ + Y2*ipg2.pRef_
+        );
+    }
 }
 
 
@@ -282,11 +274,24 @@ inline Foam::incompressiblePerfectGas<Specie> Foam::operator*
 template<class Specie>
 inline Foam::incompressiblePerfectGas<Specie> Foam::operator==
 (
-    const incompressiblePerfectGas<Specie>& pg1,
-    const incompressiblePerfectGas<Specie>& pg2
+    const incompressiblePerfectGas<Specie>& ipg1,
+    const incompressiblePerfectGas<Specie>& ipg2
 )
 {
-    return pg2 - pg1;
+    Specie sp
+    (
+        static_cast<const Specie&>(ipg1)
+     == static_cast<const Specie&>(ipg2)
+    );
+
+    const scalar Y1 = ipg1.Y()/sp.Y();
+    const scalar Y2 = ipg2.Y()/sp.Y();
+
+    return incompressiblePerfectGas<Specie>
+    (
+        sp,
+        Y2*ipg2.pRef_ - Y1*ipg1.pRef_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/linear/linear.C b/src/thermophysicalModels/specie/equationOfState/linear/linear.C
index 562bdecf2bd..6259930aea7 100644
--- a/src/thermophysicalModels/specie/equationOfState/linear/linear.C
+++ b/src/thermophysicalModels/specie/equationOfState/linear/linear.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/specie/equationOfState/linear/linear.H b/src/thermophysicalModels/specie/equationOfState/linear/linear.H
index 99d924632df..9bff7e46fa0 100644
--- a/src/thermophysicalModels/specie/equationOfState/linear/linear.H
+++ b/src/thermophysicalModels/specie/equationOfState/linear/linear.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,13 +58,6 @@ inline linear<Specie> operator+
     const linear<Specie>&
 );
 
-template<class Specie>
-inline linear<Specie> operator-
-(
-    const linear<Specie>&,
-    const linear<Specie>&
-);
-
 template<class Specie>
 inline linear<Specie> operator*
 (
@@ -156,14 +149,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -171,8 +164,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -184,8 +177,6 @@ public:
     // Member operators
 
         inline void operator+=(const linear&);
-        inline void operator-=(const linear&);
-
         inline void operator*=(const scalar);
 
 
@@ -197,12 +188,6 @@ public:
             const linear&
         );
 
-        friend linear operator- <Specie>
-        (
-            const linear&,
-            const linear&
-        );
-
         friend linear operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/linear/linearI.H b/src/thermophysicalModels/specie/equationOfState/linear/linearI.H
index 701ccc3c7ce..951268eab9d 100644
--- a/src/thermophysicalModels/specie/equationOfState/linear/linearI.H
+++ b/src/thermophysicalModels/specie/equationOfState/linear/linearI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,21 +93,21 @@ inline Foam::scalar Foam::linear<Specie>::rho(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::linear<Specie>::h(scalar p, scalar T) const
+inline Foam::scalar Foam::linear<Specie>::H(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::linear<Specie>::cp(scalar p, scalar T) const
+inline Foam::scalar Foam::linear<Specie>::Cp(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::linear<Specie>::s(scalar p, scalar T) const
+inline Foam::scalar Foam::linear<Specie>::S(scalar p, scalar T) const
 {
     return -log((rho0_ + psi_*p)/(rho0_ + psi_*Pstd))/(T*psi_);
 }
@@ -128,7 +128,7 @@ inline Foam::scalar Foam::linear<Specie>::Z(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::linear<Specie>::cpMcv(scalar p, scalar T) const
+inline Foam::scalar Foam::linear<Specie>::CpMCv(scalar p, scalar T) const
 {
     return 0;
 }
@@ -142,33 +142,17 @@ inline void Foam::linear<Specie>::operator+=
     const linear<Specie>& pf
 )
 {
-    scalar molr1 = this->nMoles();
-
+    scalar Y1 = this->Y();
     Specie::operator+=(pf);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pf.nMoles()/this->nMoles();
-
-    psi_ = molr1*psi_ + molr2*pf.psi_;
-    rho0_ = molr1*rho0_ + molr2*pf.rho0_;
-}
-
-
-template<class Specie>
-inline void Foam::linear<Specie>::operator-=
-(
-    const linear<Specie>& pf
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Specie::operator-=(pf);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pf.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = pf.Y()/this->Y();
 
-    psi_ = molr1*psi_ - molr2*pf.psi_;
-    rho0_ = molr1*rho0_ - molr2*pf.rho0_;
+        psi_ = Y1*psi_ + Y2*pf.psi_;
+        rho0_ = Y1*rho0_ + Y2*pf.rho0_;
+    }
 }
 
 
@@ -188,38 +172,33 @@ inline Foam::linear<Specie> Foam::operator+
     const linear<Specie>& pf2
 )
 {
-    scalar nMoles = pf1.nMoles() + pf2.nMoles();
-    scalar molr1 = pf1.nMoles()/nMoles;
-    scalar molr2 = pf2.nMoles()/nMoles;
-
-    return rhoConst<Specie>
+    Specie sp
     (
         static_cast<const Specie&>(pf1)
-      + static_cast<const Specie&>(pf2),
-        molr1*pf1.psi_ + molr2*pf2.psi_,
-        molr1*pf1.rho0_ + molr2*pf2.rho0_
+      + static_cast<const Specie&>(pf2)
     );
-}
 
+    if (mag(sp.Y()) < SMALL)
+    {
+        return linear<Specie>
+        (
+            sp,
+            pf1.psi_,
+            pf1.rho0_
+        );
+    }
+    else
+    {
+        const scalar Y1 = pf1.Y()/sp.Y();
+        const scalar Y2 = pf2.Y()/sp.Y();
 
-template<class Specie>
-inline Foam::linear<Specie> Foam::operator-
-(
-    const linear<Specie>& pf1,
-    const linear<Specie>& pf2
-)
-{
-    scalar nMoles = pf1.nMoles() + pf2.nMoles();
-    scalar molr1 = pf1.nMoles()/nMoles;
-    scalar molr2 = pf2.nMoles()/nMoles;
-
-    return rhoConst<Specie>
-    (
-        static_cast<const Specie&>(pf1)
-      - static_cast<const Specie&>(pf2),
-        molr1*pf1.psi_ - molr2*pf2.psi_,
-        molr1*pf1.rho0_ - molr2*pf2.rho0_
-    );
+        return linear<Specie>
+        (
+            sp,
+            Y1*pf1.psi_ + Y2*pf2.psi_,
+            Y1*pf1.rho0_ + Y2*pf2.rho0_
+        );
+    }
 }
 
 
@@ -246,7 +225,21 @@ inline Foam::linear<Specie> Foam::operator==
     const linear<Specie>& pf2
 )
 {
-    return pf2 - pf1;
+    Specie sp
+    (
+        static_cast<const Specie&>(pf1)
+     == static_cast<const Specie&>(pf2)
+    );
+
+    const scalar Y1 = pf1.Y()/sp.Y();
+    const scalar Y2 = pf2.Y()/sp.Y();
+
+    return linear<Specie>
+    (
+        sp,
+        Y2*pf2.psi_  - Y1*pf1.psi_,
+        Y2*pf2.rho0_ - Y1*pf1.rho0_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C
index 612fc6f9eb0..1857552c6b7 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C
+++ b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H
index 1d0e993b4e9..89fcab7873f 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,13 +54,6 @@ inline perfectFluid<Specie> operator+
     const perfectFluid<Specie>&
 );
 
-template<class Specie>
-inline perfectFluid<Specie> operator-
-(
-    const perfectFluid<Specie>&,
-    const perfectFluid<Specie>&
-);
-
 template<class Specie>
 inline perfectFluid<Specie> operator*
 (
@@ -155,14 +148,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -170,8 +163,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -183,8 +176,6 @@ public:
     // Member operators
 
         inline void operator+=(const perfectFluid&);
-        inline void operator-=(const perfectFluid&);
-
         inline void operator*=(const scalar);
 
 
@@ -196,12 +187,6 @@ public:
             const perfectFluid&
         );
 
-        friend perfectFluid operator- <Specie>
-        (
-            const perfectFluid&,
-            const perfectFluid&
-        );
-
         friend perfectFluid operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H
index f58bcaaed6a..133902b8717 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -101,23 +101,23 @@ inline Foam::scalar Foam::perfectFluid<Specie>::rho(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectFluid<Specie>::h(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectFluid<Specie>::H(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectFluid<Specie>::cp(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectFluid<Specie>::Cp(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectFluid<Specie>::s(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectFluid<Specie>::S(scalar p, scalar T) const
 {
-    return -RR*log(p/Pstd);
+    return -this->R()*log(p/Pstd);
 }
 
 
@@ -136,7 +136,7 @@ inline Foam::scalar Foam::perfectFluid<Specie>::Z(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectFluid<Specie>::cpMcv(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectFluid<Specie>::CpMCv(scalar p, scalar T) const
 {
     return 0;
 }
@@ -150,33 +150,17 @@ inline void Foam::perfectFluid<Specie>::operator+=
     const perfectFluid<Specie>& pf
 )
 {
-    scalar molr1 = this->nMoles();
-
+    scalar Y1 = this->Y();
     Specie::operator+=(pf);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pf.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = pf.Y()/this->Y();
 
-    R_ = 1.0/(molr1/R_ + molr2/pf.R_);
-    rho0_ = molr1*rho0_ + molr2*pf.rho0_;
-}
-
-
-template<class Specie>
-inline void Foam::perfectFluid<Specie>::operator-=
-(
-    const perfectFluid<Specie>& pf
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Specie::operator-=(pf);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pf.nMoles()/this->nMoles();
-
-    R_ = 1.0/(molr1/R_ - molr2/pf.R_);
-    rho0_ = molr1*rho0_ - molr2*pf.rho0_;
+        R_ = 1.0/(Y1/R_ + Y2/pf.R_);
+        rho0_ = Y1*rho0_ + Y2*pf.rho0_;
+    }
 }
 
 
@@ -196,38 +180,33 @@ inline Foam::perfectFluid<Specie> Foam::operator+
     const perfectFluid<Specie>& pf2
 )
 {
-    scalar nMoles = pf1.nMoles() + pf2.nMoles();
-    scalar molr1 = pf1.nMoles()/nMoles;
-    scalar molr2 = pf2.nMoles()/nMoles;
-
-    return perfectFluid<Specie>
+    Specie sp
     (
         static_cast<const Specie&>(pf1)
-      + static_cast<const Specie&>(pf2),
-        1.0/(molr1/pf1.R_ + molr2/pf2.R_),
-        molr1*pf1.rho0_ + molr2*pf2.rho0_
+      + static_cast<const Specie&>(pf2)
     );
-}
 
+    if (mag(sp.Y()) < SMALL)
+    {
+        return perfectFluid<Specie>
+        (
+            sp,
+            pf1.R_,
+            pf1.rho0_
+        );
+    }
+    else
+    {
+        const scalar Y1 = pf1.Y()/sp.Y();
+        const scalar Y2 = pf2.Y()/sp.Y();
 
-template<class Specie>
-inline Foam::perfectFluid<Specie> Foam::operator-
-(
-    const perfectFluid<Specie>& pf1,
-    const perfectFluid<Specie>& pf2
-)
-{
-    scalar nMoles = pf1.nMoles() + pf2.nMoles();
-    scalar molr1 = pf1.nMoles()/nMoles;
-    scalar molr2 = pf2.nMoles()/nMoles;
-
-    return perfectFluid<Specie>
-    (
-        static_cast<const Specie&>(pf1)
-      - static_cast<const Specie&>(pf2),
-        1.0/(molr1/pf1.R_ - molr2/pf2.R_),
-        molr1*pf1.rho0_ - molr2*pf2.rho0_
-    );
+        return perfectFluid<Specie>
+        (
+            sp,
+            1.0/(Y1/pf1.R_ + Y2/pf2.R_),
+            Y1*pf1.rho0_ + Y2*pf2.rho0_
+        );
+    }
 }
 
 
@@ -254,7 +233,21 @@ inline Foam::perfectFluid<Specie> Foam::operator==
     const perfectFluid<Specie>& pf2
 )
 {
-    return pf2 - pf1;
+    Specie sp
+    (
+        static_cast<const Specie&>(pf1)
+     == static_cast<const Specie&>(pf2)
+    );
+
+    const scalar Y1 = pf1.Y()/sp.Y();
+    const scalar Y2 = pf2.Y()/sp.Y();
+
+    return perfectFluid<Specie>
+    (
+        sp,
+        1.0/(Y2/pf2.R_ - Y1/pf1.R_),
+        Y2*pf2.rho0_ - Y1*pf1.rho0_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C
index 115f7ae7cd1..f63ffbbc634 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C
+++ b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H
index b3671e5b11e..6d519c75c39 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,13 +54,6 @@ inline perfectGas<Specie> operator+
     const perfectGas<Specie>&
 );
 
-template<class Specie>
-inline perfectGas<Specie> operator-
-(
-    const perfectGas<Specie>&,
-    const perfectGas<Specie>&
-);
-
 template<class Specie>
 inline perfectGas<Specie> operator*
 (
@@ -139,14 +132,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -154,8 +147,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -167,8 +160,6 @@ public:
     // Member operators
 
         inline void operator+=(const perfectGas&);
-        inline void operator-=(const perfectGas&);
-
         inline void operator*=(const scalar);
 
 
@@ -180,12 +171,6 @@ public:
             const perfectGas&
         );
 
-        friend perfectGas operator- <Specie>
-        (
-            const perfectGas&,
-            const perfectGas&
-        );
-
         friend perfectGas operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H
index 94e0c500ffc..764a53dfef1 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,23 +83,23 @@ inline Foam::scalar Foam::perfectGas<Specie>::rho(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectGas<Specie>::h(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectGas<Specie>::H(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectGas<Specie>::cp(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectGas<Specie>::Cp(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectGas<Specie>::s(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectGas<Specie>::S(scalar p, scalar T) const
 {
-    return -RR*log(p/Pstd);
+    return -this->R()*log(p/Pstd);
 }
 
 
@@ -118,9 +118,9 @@ inline Foam::scalar Foam::perfectGas<Specie>::Z(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::perfectGas<Specie>::cpMcv(scalar p, scalar T) const
+inline Foam::scalar Foam::perfectGas<Specie>::CpMCv(scalar p, scalar T) const
 {
-    return RR;
+    return this->R();
 }
 
 
@@ -133,13 +133,6 @@ inline void Foam::perfectGas<Specie>::operator+=(const perfectGas<Specie>& pg)
 }
 
 
-template<class Specie>
-inline void Foam::perfectGas<Specie>::operator-=(const perfectGas<Specie>& pg)
-{
-    Specie::operator-=(pg);
-}
-
-
 template<class Specie>
 inline void Foam::perfectGas<Specie>::operator*=(const scalar s)
 {
@@ -158,23 +151,7 @@ inline Foam::perfectGas<Specie> Foam::operator+
 {
     return perfectGas<Specie>
     (
-        static_cast<const Specie&>(pg1)
-      + static_cast<const Specie&>(pg2)
-    );
-}
-
-
-template<class Specie>
-inline Foam::perfectGas<Specie> Foam::operator-
-(
-    const perfectGas<Specie>& pg1,
-    const perfectGas<Specie>& pg2
-)
-{
-    return perfectGas<Specie>
-    (
-        static_cast<const Specie&>(pg1)
-      - static_cast<const Specie&>(pg2)
+        static_cast<const Specie&>(pg1) + static_cast<const Specie&>(pg2)
     );
 }
 
@@ -197,7 +174,10 @@ inline Foam::perfectGas<Specie> Foam::operator==
     const perfectGas<Specie>& pg2
 )
 {
-    return pg2 - pg1;
+    return perfectGas<Specie>
+    (
+        static_cast<const Specie&>(pg1) == static_cast<const Specie&>(pg2)
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H
index 160015a0f39..a60f52581de 100644
--- a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H
+++ b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,13 +54,6 @@ inline rhoConst<Specie> operator+
     const rhoConst<Specie>&
 );
 
-template<class Specie>
-inline rhoConst<Specie> operator-
-(
-    const rhoConst<Specie>&,
-    const rhoConst<Specie>&
-);
-
 template<class Specie>
 inline rhoConst<Specie> operator*
 (
@@ -141,14 +134,14 @@ public:
             //- Return density [kg/m^3]
             inline scalar rho(scalar p, scalar T) const;
 
-            //- Return enthalpy departure [J/kmol]
-            inline scalar h(const scalar p, const scalar T) const;
+            //- Return enthalpy departure [J/kg]
+            inline scalar H(const scalar p, const scalar T) const;
 
-            //- Return cp departure [J/(kmol K]
-            inline scalar cp(scalar p, scalar T) const;
+            //- Return Cp departure [J/(kg K]
+            inline scalar Cp(scalar p, scalar T) const;
 
-            //- Return entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Return entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
             //- Return compressibility rho/p [s^2/m^2]
             inline scalar psi(scalar p, scalar T) const;
@@ -156,8 +149,8 @@ public:
             //- Return compression factor []
             inline scalar Z(scalar p, scalar T) const;
 
-            //- Return (cp - cv) [J/(kmol K]
-            inline scalar cpMcv(scalar p, scalar T) const;
+            //- Return (Cp - Cv) [J/(kg K]
+            inline scalar CpMCv(scalar p, scalar T) const;
 
 
         // IO
@@ -169,8 +162,6 @@ public:
     // Member operators
 
         inline void operator+=(const rhoConst&);
-        inline void operator-=(const rhoConst&);
-
         inline void operator*=(const scalar);
 
 
@@ -182,12 +173,6 @@ public:
             const rhoConst&
         );
 
-        friend rhoConst operator- <Specie>
-        (
-            const rhoConst&,
-            const rhoConst&
-        );
-
         friend rhoConst operator* <Specie>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H
index 09f884b8b7b..fb5e101248f 100644
--- a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H
+++ b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,21 +79,21 @@ inline Foam::scalar Foam::rhoConst<Specie>::rho(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::rhoConst<Specie>::h(scalar p, scalar T) const
+inline Foam::scalar Foam::rhoConst<Specie>::H(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::rhoConst<Specie>::cp(scalar p, scalar T) const
+inline Foam::scalar Foam::rhoConst<Specie>::Cp(scalar p, scalar T) const
 {
     return 0;
 }
 
 
 template<class Specie>
-inline Foam::scalar Foam::rhoConst<Specie>::s(scalar p, scalar T) const
+inline Foam::scalar Foam::rhoConst<Specie>::S(scalar p, scalar T) const
 {
     return 0;
 }
@@ -114,7 +114,7 @@ inline Foam::scalar Foam::rhoConst<Specie>::Z(scalar p, scalar T) const
 
 
 template<class Specie>
-inline Foam::scalar Foam::rhoConst<Specie>::cpMcv(scalar p, scalar T) const
+inline Foam::scalar Foam::rhoConst<Specie>::CpMCv(scalar p, scalar T) const
 {
     return 0;
 }
@@ -125,28 +125,16 @@ inline Foam::scalar Foam::rhoConst<Specie>::cpMcv(scalar p, scalar T) const
 template<class Specie>
 inline void Foam::rhoConst<Specie>::operator+=(const rhoConst<Specie>& ico)
 {
-    scalar molr1 = this->nMoles();
-
+    scalar Y1 = this->Y();
     Specie::operator+=(ico);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ico.nMoles()/this->nMoles();
-
-    rho_ = molr1*rho_ + molr2*ico.rho_;
-}
-
-
-template<class Specie>
-inline void Foam::rhoConst<Specie>::operator-=(const rhoConst<Specie>& ico)
-{
-    scalar molr1 = this->nMoles();
-
-    Specie::operator-=(ico);
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = ico.Y()/this->Y();
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ico.nMoles()/this->nMoles();
-
-    rho_ = molr1*rho_ - molr2*ico.rho_;
+        rho_ = Y1*rho_ + Y2*ico.rho_;
+    }
 }
 
 
@@ -166,36 +154,31 @@ inline Foam::rhoConst<Specie> Foam::operator+
     const rhoConst<Specie>& ico2
 )
 {
-    scalar nMoles = ico1.nMoles() + ico2.nMoles();
-    scalar molr1 = ico1.nMoles()/nMoles;
-    scalar molr2 = ico2.nMoles()/nMoles;
-
-    return rhoConst<Specie>
+    Specie sp
     (
         static_cast<const Specie&>(ico1)
-      + static_cast<const Specie&>(ico2),
-        molr1*ico1.rho_ + molr2*ico2.rho_
+      + static_cast<const Specie&>(ico2)
     );
-}
 
+    if (mag(sp.Y()) < SMALL)
+    {
+        return rhoConst<Specie>
+        (
+            sp,
+            ico1.rho_
+        );
+    }
+    else
+    {
+        const scalar Y1 = ico1.Y()/sp.Y();
+        const scalar Y2 = ico2.Y()/sp.Y();
 
-template<class Specie>
-inline Foam::rhoConst<Specie> Foam::operator-
-(
-    const rhoConst<Specie>& ico1,
-    const rhoConst<Specie>& ico2
-)
-{
-    scalar nMoles = ico1.nMoles() + ico2.nMoles();
-    scalar molr1 = ico1.nMoles()/nMoles;
-    scalar molr2 = ico2.nMoles()/nMoles;
-
-    return rhoConst<Specie>
-    (
-        static_cast<const Specie&>(ico1)
-      - static_cast<const Specie&>(ico2),
-        molr1*ico1.rho_ - molr2*ico2.rho_
-    );
+        return rhoConst<Specie>
+        (
+            sp,
+            Y1*ico1.rho_ + Y2*ico2.rho_
+        );
+    }
 }
 
 
@@ -217,7 +200,20 @@ inline Foam::rhoConst<Specie> Foam::operator==
     const rhoConst<Specie>& ico2
 )
 {
-    return ico2 - ico1;
+    Specie sp
+    (
+        static_cast<const Specie&>(ico1)
+     == static_cast<const Specie&>(ico2)
+    );
+
+    const scalar Y1 = ico1.Y()/sp.Y();
+    const scalar Y2 = ico2.Y()/sp.Y();
+
+    return rhoConst<Specie>
+    (
+        sp,
+        Y2*ico2.rho_ - Y1*ico1.rho_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C
index 8dff4ef9380..dc43975c461 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C
+++ b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -111,29 +111,37 @@ void Foam::Reaction<ReactionThermo>::setThermo
     const HashPtrTable<ReactionThermo>& thermoDatabase
 )
 {
-    if (rhs_.size() > 0)
-    {
-        ReactionThermo::thermoType::operator=
-        (
-            rhs_[0].stoichCoeff*(*thermoDatabase[species_[rhs_[0].index]])
-        );
+    typename ReactionThermo::thermoType rhsThermo
+    (
+        rhs_[0].stoichCoeff
+       *(*thermoDatabase[species_[rhs_[0].index]]).W()
+       *(*thermoDatabase[species_[rhs_[0].index]])
+    );
 
-        for (label i=1; i<rhs_.size(); ++i)
-        {
-            this->operator+=
-            (
-                rhs_[i].stoichCoeff*(*thermoDatabase[species_[rhs_[i].index]])
-            );
-        }
+    for (label i=1; i<rhs_.size(); ++i)
+    {
+        rhsThermo +=
+            rhs_[i].stoichCoeff
+           *(*thermoDatabase[species_[rhs_[i].index]]).W()
+           *(*thermoDatabase[species_[rhs_[i].index]]);
     }
 
-    forAll(lhs_, i)
+    typename ReactionThermo::thermoType lhsThermo
+    (
+        lhs_[0].stoichCoeff
+       *(*thermoDatabase[species_[lhs_[0].index]]).W()
+       *(*thermoDatabase[species_[lhs_[0].index]])
+    );
+
+    for (label i=1; i<lhs_.size(); ++i)
     {
-        this->operator-=
-        (
-            lhs_[i].stoichCoeff*(*thermoDatabase[species_[lhs_[i].index]])
-        );
+        lhsThermo +=
+            lhs_[i].stoichCoeff
+           *(*thermoDatabase[species_[lhs_[i].index]]).W()
+           *(*thermoDatabase[species_[lhs_[i].index]]);
     }
+
+    ReactionThermo::thermoType::operator=(lhsThermo == rhsThermo);
 }
 
 
diff --git a/src/thermophysicalModels/specie/specie/specie.C b/src/thermophysicalModels/specie/specie/specie.C
index 8a4f7612a68..b507212cd0e 100644
--- a/src/thermophysicalModels/specie/specie/specie.C
+++ b/src/thermophysicalModels/specie/specie/specie.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,7 @@ namespace Foam
 Foam::specie::specie(Istream& is)
 :
     name_(is),
-    nMoles_(readScalar(is)),
+    Y_(readScalar(is)),
     molWeight_(readScalar(is))
 {
     is.check("specie::specie(Istream& is)");
@@ -50,7 +50,7 @@ Foam::specie::specie(Istream& is)
 Foam::specie::specie(const dictionary& dict)
 :
     name_(dict.dictName()),
-    nMoles_(readScalar(dict.subDict("specie").lookup("nMoles"))),
+    Y_(dict.subDict("specie").lookupOrDefault("massFraction", 1.0)),
     molWeight_(readScalar(dict.subDict("specie").lookup("molWeight")))
 {}
 
@@ -60,7 +60,10 @@ Foam::specie::specie(const dictionary& dict)
 void Foam::specie::write(Ostream& os) const
 {
     dictionary dict("specie");
-    dict.add("nMoles", nMoles_);
+    if (Y_ != 1)
+    {
+        dict.add("massFraction", Y_);
+    }
     dict.add("molWeight", molWeight_);
     os  << indent << dict.dictName() << dict;
 }
@@ -71,7 +74,7 @@ void Foam::specie::write(Ostream& os) const
 Foam::Ostream& Foam::operator<<(Ostream& os, const specie& st)
 {
     os  << st.name_ << tab
-        << st.nMoles_ << tab
+        << st.Y_ << tab
         << st.molWeight_;
 
     os.check("Ostream& operator<<(Ostream& os, const specie& st)");
diff --git a/src/thermophysicalModels/specie/specie/specie.H b/src/thermophysicalModels/specie/specie/specie.H
index 28d7290818b..52ebcbe13e3 100644
--- a/src/thermophysicalModels/specie/specie/specie.H
+++ b/src/thermophysicalModels/specie/specie/specie.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,6 @@ namespace Foam
 class specie;
 
 inline specie operator+(const specie&, const specie&);
-inline specie operator-(const specie&, const specie&);
 inline specie operator*(const scalar, const specie&);
 inline specie operator==(const specie&, const specie&);
 
@@ -72,7 +71,7 @@ class specie
         word name_;
 
         //- Number of moles of this component in the mixture
-        scalar nMoles_;
+        scalar Y_;
 
         //- Molecular weight of specie [kg/kmol]
         scalar molWeight_;
@@ -86,15 +85,14 @@ public:
 
     // Constructors
 
-
         //- Construct from components without name
-        inline specie(const scalar nMoles, const scalar molWeight);
+        inline specie(const scalar Y, const scalar molWeight);
 
         //- Construct from components with name
         inline specie
         (
             const word& name,
-            const scalar nMoles,
+            const scalar Y,
             const scalar molWeight
         );
 
@@ -122,7 +120,7 @@ public:
             inline scalar W() const;
 
             //- No of moles of this species in mixture
-            inline scalar nMoles() const;
+            inline scalar Y() const;
 
             //- Gas constant [J/(kg K)]
             inline scalar R() const;
@@ -137,20 +135,14 @@ public:
     // Member operators
 
         inline void operator=(const specie&);
-
         inline void operator+=(const specie&);
-        inline void operator-=(const specie&);
-
         inline void operator*=(const scalar);
 
 
     // Friend operators
 
         inline friend specie operator+(const specie&, const specie&);
-        inline friend specie operator-(const specie&, const specie&);
-
         inline friend specie operator*(const scalar, const specie&);
-
         inline friend specie operator==(const specie&, const specie&);
 
 
diff --git a/src/thermophysicalModels/specie/specie/specieI.H b/src/thermophysicalModels/specie/specie/specieI.H
index 76d979b3c7c..fb8255dbef1 100644
--- a/src/thermophysicalModels/specie/specie/specieI.H
+++ b/src/thermophysicalModels/specie/specie/specieI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,23 +35,23 @@ namespace Foam
 inline specie::specie
 (
     const word& name,
-    const scalar nMoles,
+    const scalar Y,
     const scalar molWeight
 )
 :
     name_(name),
-    nMoles_(nMoles),
+    Y_(Y),
     molWeight_(molWeight)
 {}
 
 
 inline specie::specie
 (
-    const scalar nMoles,
+    const scalar Y,
     const scalar molWeight
 )
 :
-    nMoles_(nMoles),
+    Y_(Y),
     molWeight_(molWeight)
 {}
 
@@ -61,7 +61,7 @@ inline specie::specie
 inline specie::specie(const specie& st)
 :
     name_(st.name_),
-    nMoles_(st.nMoles_),
+    Y_(st.Y_),
     molWeight_(st.molWeight_)
 {}
 
@@ -69,7 +69,7 @@ inline specie::specie(const specie& st)
 inline specie::specie(const word& name, const specie& st)
 :
     name_(name),
-    nMoles_(st.nMoles_),
+    Y_(st.Y_),
     molWeight_(st.molWeight_)
 {}
 
@@ -88,9 +88,9 @@ inline scalar specie::W() const
 }
 
 
-inline scalar specie::nMoles() const
+inline scalar specie::Y() const
 {
-    return nMoles_;
+    return Y_;
 }
 
 
@@ -105,42 +105,26 @@ inline scalar specie::R() const
 inline void specie::operator=(const specie& st)
 {
     //name_ = st.name_;
-    nMoles_ = st.nMoles_;
+    Y_ = st.Y_;
     molWeight_ = st.molWeight_;
 }
 
 
 inline void specie::operator+=(const specie& st)
 {
-    scalar sumNmoles = max(nMoles_ + st.nMoles_, SMALL);
-
-    molWeight_ =
-        nMoles_/sumNmoles*molWeight_
-      + st.nMoles_/sumNmoles*st.molWeight_;
-
-    nMoles_ = sumNmoles;
-}
-
-
-inline void specie::operator-=(const specie& st)
-{
-    scalar diffnMoles = nMoles_ - st.nMoles_;
-    if (mag(diffnMoles) < SMALL)
+    const scalar sumY = Y_ + st.Y_;
+    if (mag(sumY) > SMALL)
     {
-        diffnMoles = SMALL;
+        molWeight_ = sumY/(Y_/molWeight_ + st.Y_/st.molWeight_);
     }
 
-    molWeight_ =
-        nMoles_/diffnMoles*molWeight_
-      - st.nMoles_/diffnMoles*st.molWeight_;
-
-    nMoles_ = diffnMoles;
+    Y_ = sumY;
 }
 
 
 inline void specie::operator*=(const scalar s)
 {
-    nMoles_ *= s;
+    Y_ *= s;
 }
 
 
@@ -148,31 +132,20 @@ inline void specie::operator*=(const scalar s)
 
 inline specie operator+(const specie& st1, const specie& st2)
 {
-    scalar sumNmoles = max(st1.nMoles_ + st2.nMoles_, SMALL);
+    const scalar sumY = max(st1.Y_ + st2.Y_, SMALL);
 
-    return specie
-    (
-        sumNmoles,
-        st1.nMoles_/sumNmoles*st1.molWeight_
-      + st2.nMoles_/sumNmoles*st2.molWeight_
-    );
-}
-
-
-inline specie operator-(const specie& st1, const specie& st2)
-{
-    scalar diffNmoles = st1.nMoles_ - st2.nMoles_;
-    if (mag(diffNmoles) < SMALL)
+    if (mag(sumY) > SMALL)
     {
-        diffNmoles = SMALL;
+        return specie
+        (
+            sumY,
+            sumY/(st1.Y_/st1.molWeight_ + st2.Y_/st2.molWeight_)
+        );
+    }
+    else
+    {
+        return st1;
     }
-
-    return specie
-    (
-        diffNmoles,
-        st1.nMoles_/diffNmoles*st1.molWeight_
-      - st2.nMoles_/diffNmoles*st2.molWeight_
-    );
 }
 
 
@@ -180,7 +153,7 @@ inline specie operator*(const scalar s, const specie& st)
 {
     return specie
     (
-        s*st.nMoles_,
+        s*st.Y_,
         st.molWeight_
     );
 }
@@ -188,7 +161,22 @@ inline specie operator*(const scalar s, const specie& st)
 
 inline specie operator==(const specie& st1, const specie& st2)
 {
-    return st2 - st1;
+    scalar diffY = st2.Y_ - st1.Y_;
+    if (mag(diffY) < SMALL)
+    {
+        diffY = SMALL;
+    }
+
+    const scalar diffRW =
+        st2.Y_/st2.molWeight_ - st1.Y_/st1.molWeight_;
+
+    scalar molWeight = GREAT;
+    if (mag(diffRW) > SMALL)
+    {
+        molWeight = diffY/diffRW;
+    }
+
+    return specie(diffY, molWeight);
 }
 
 
diff --git a/src/thermophysicalModels/specie/thermo/absoluteEnthalpy/absoluteEnthalpy.H b/src/thermophysicalModels/specie/thermo/absoluteEnthalpy/absoluteEnthalpy.H
index 98bf51e03f0..2130d60bc6c 100644
--- a/src/thermophysicalModels/specie/thermo/absoluteEnthalpy/absoluteEnthalpy.H
+++ b/src/thermophysicalModels/specie/thermo/absoluteEnthalpy/absoluteEnthalpy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,7 @@ Class
     Foam::absoluteEnthalpy
 
 Description
-    Thermodynamics mapping class to expose the absolute enthalpy function
-    as the standard enthalpy function h(T).
+    Thermodynamics mapping class to expose the absolute enthalpy functions.
 
 \*---------------------------------------------------------------------------*/
 
@@ -70,30 +69,19 @@ public:
                 return "ha";
             }
 
-            // Absolute enthalpy [J/kmol]
-            scalar he
+            // Heat capacity at constant pressure [J/(kg K)]
+            scalar Cpv
             (
                 const Thermo& thermo,
                 const scalar p,
                 const scalar T
             ) const
             {
-                return thermo.ha(p, T);
+                return thermo.Cp(p, T);
             }
 
-            // Heat capacity at constant pressure [J/(kmol K)]
-            scalar cpv
-            (
-                const Thermo& thermo,
-                const scalar p,
-                const scalar T
-            ) const
-            {
-                return thermo.cp(p, T);
-            }
-
-            //- cp/cp []
-            scalar cpBycpv
+            //- Cp/Cp []
+            scalar CpByCpv
             (
                 const Thermo& thermo,
                 const scalar p,
diff --git a/src/thermophysicalModels/specie/thermo/absoluteInternalEnergy/absoluteInternalEnergy.H b/src/thermophysicalModels/specie/thermo/absoluteInternalEnergy/absoluteInternalEnergy.H
index 6ea5df7dc23..c78b61d50e8 100644
--- a/src/thermophysicalModels/specie/thermo/absoluteInternalEnergy/absoluteInternalEnergy.H
+++ b/src/thermophysicalModels/specie/thermo/absoluteInternalEnergy/absoluteInternalEnergy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,8 @@ Class
     Foam::absoluteInternalEnergy
 
 Description
-    Thermodynamics mapping class to expose the absolute internal energy function
-    as the standard internal energy function e(T).
+    Thermodynamics mapping class to expose the absolute internal energy
+    functions.
 
 \*---------------------------------------------------------------------------*/
 
@@ -70,30 +70,19 @@ public:
                 return "ea";
             }
 
-            // Absolute internal energy [J/kmol]
-            scalar he
+            // Heat capacity at constant volume [J/(kg K)]
+            scalar Cpv
             (
                 const Thermo& thermo,
                 const scalar p,
                 const scalar T
             ) const
             {
-                return thermo.ea(p, T);
+                return thermo.Cv(p, T);
             }
 
-            // Heat capacity at constant volume [J/(kmol K)]
-            scalar cpv
-            (
-                const Thermo& thermo,
-                const scalar p,
-                const scalar T
-            ) const
-            {
-                return thermo.cv(p, T);
-            }
-
-            //- cp/cv []
-            scalar cpBycpv
+            //- Cp/Cv []
+            scalar CpByCpv
             (
                 const Thermo& thermo,
                 const scalar p,
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
index a004ed0e62b..d38693c03fd 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,9 +36,6 @@ Foam::eConstThermo<EquationOfState>::eConstThermo(Istream& is)
     Hf_(readScalar(is))
 {
     is.check("eConstThermo<EquationOfState>::eConstThermo(Istream&)");
-
-    Cv_ *= this->W();
-    Hf_ *= this->W();
 }
 
 
@@ -48,10 +45,7 @@ Foam::eConstThermo<EquationOfState>::eConstThermo(const dictionary& dict)
     EquationOfState(dict),
     Cv_(readScalar(dict.subDict("thermodynamics").lookup("Cv"))),
     Hf_(readScalar(dict.subDict("thermodynamics").lookup("Hf")))
-{
-    Cv_ *= this->W();
-    Hf_ *= this->W();
-}
+{}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -62,8 +56,8 @@ void Foam::eConstThermo<EquationOfState>::write(Ostream& os) const
     EquationOfState::write(os);
 
     dictionary dict("thermodynamics");
-    dict.add("Cv", Cv_/this->W());
-    dict.add("Hf", Hf_/this->W());
+    dict.add("Cv", Cv_);
+    dict.add("Hf", Hf_);
     os  << indent << dict.dictName() << dict;
 }
 
@@ -78,7 +72,7 @@ Foam::Ostream& Foam::operator<<
 )
 {
     os  << static_cast<const EquationOfState&>(ct) << tab
-        << ct.Cv_/ct.W() << tab << ct.Hf_/ct.W();
+        << ct.Cv_ << tab << ct.Hf_;
 
     os.check("Ostream& operator<<(Ostream&, const eConstThermo&)");
     return os;
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
index 6a99ba435f4..9f5354ca9ca 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
@@ -1,8 +1,8 @@
-/*---------------------------------------------------------------------------*\
+/*---------------------------------------------------------------------------* \
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,13 +55,6 @@ inline eConstThermo<EquationOfState> operator+
     const eConstThermo<EquationOfState>&
 );
 
-template<class EquationOfState>
-inline eConstThermo<EquationOfState> operator-
-(
-    const eConstThermo<EquationOfState>&,
-    const eConstThermo<EquationOfState>&
-);
-
 template<class EquationOfState>
 inline eConstThermo<EquationOfState> operator*
 (
@@ -152,20 +145,20 @@ public:
 
         // Fundamental properties
 
-            //- Heat capacity at constant pressure [J/(kmol K)]
-            inline scalar cp(const scalar p, const scalar T) const;
+            //- Heat capacity at constant pressure [J/(kg K)]
+            inline scalar Cp(const scalar p, const scalar T) const;
 
-            //- Absolute Enthalpy [J/kmol]
-            inline scalar ha(const scalar p, const scalar T) const;
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
 
-            //- Sensible Enthalpy [J/kmol]
-            inline scalar hs(const scalar p, const scalar T) const;
+            //- Sensible enthalpy [J/kg]
+            inline scalar Hs(const scalar p, const scalar T) const;
 
-            //- Chemical enthalpy [J/kmol]
-            inline scalar hc() const;
+            //- Chemical enthalpy [J/kg]
+            inline scalar Hc() const;
 
-            //- Entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
 
         // I-O
@@ -177,7 +170,6 @@ public:
     // Member operators
 
         inline void operator+=(const eConstThermo&);
-        inline void operator-=(const eConstThermo&);
 
 
     // Friend operators
@@ -188,12 +180,6 @@ public:
             const eConstThermo&
         );
 
-        friend eConstThermo operator- <EquationOfState>
-        (
-            const eConstThermo&,
-            const eConstThermo&
-        );
-
         friend eConstThermo operator* <EquationOfState>
         (
             const scalar,
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
index ad21fcf456a..e6c1b84afe7 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
@@ -100,53 +100,53 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::limit
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::eConstThermo<EquationOfState>::cp
+inline Foam::scalar Foam::eConstThermo<EquationOfState>::Cp
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return Cv_ + this->cpMcv(p, T) + EquationOfState::cp(p, T);
+    return Cv_ + this->CpMCv(p, T) + EquationOfState::Cp(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::eConstThermo<EquationOfState>::ha
+inline Foam::scalar Foam::eConstThermo<EquationOfState>::Ha
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return cp(p, T)*T + Hf_ + EquationOfState::h(p, T);
+    return Cp(p, T)*T + Hf_ + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::eConstThermo<EquationOfState>::hs
+inline Foam::scalar Foam::eConstThermo<EquationOfState>::Hs
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return cp(p, T)*T + EquationOfState::h(p, T);
+    return Cp(p, T)*T + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::eConstThermo<EquationOfState>::hc() const
+inline Foam::scalar Foam::eConstThermo<EquationOfState>::Hc() const
 {
     return Hf_;
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::eConstThermo<EquationOfState>::s
+inline Foam::scalar Foam::eConstThermo<EquationOfState>::S
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return cp(p, T)*log(T/Tstd) + EquationOfState::s(p, T);
+    return Cp(p, T)*log(T/Tstd) + EquationOfState::S(p, T);
 }
 
 
@@ -158,33 +158,18 @@ inline void Foam::eConstThermo<EquationOfState>::operator+=
     const eConstThermo<EquationOfState>& ct
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     EquationOfState::operator+=(ct);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = ct.Y()/this->Y();
 
-    Cv_ = molr1*Cv_ + molr2*ct.Cv_;
-    Hf_ = molr1*Hf_ + molr2*ct.Hf_;
-}
-
-
-template<class EquationOfState>
-inline void Foam::eConstThermo<EquationOfState>::operator-=
-(
-    const eConstThermo<EquationOfState>& ct
-)
-{
-    scalar molr1 = this->nMoles();
-
-    EquationOfState::operator-=(ct);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
-
-    Cv_ = molr1*Cv_ - molr2*ct.Cv_;
-    Hf_ = molr1*Hf_ - molr2*ct.Hf_;
+        Cv_ = Y1*Cv_ + Y2*ct.Cv_;
+        Hf_ = Y1*Hf_ + Y2*ct.Hf_;
+    }
 }
 
 
@@ -203,38 +188,26 @@ inline Foam::eConstThermo<EquationOfState> Foam::operator+
       + static_cast<const EquationOfState&>(ct2)
     );
 
-    return eConstThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.Cv_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Cv_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Hf_
-    );
-}
-
-
-template<class EquationOfState>
-inline Foam::eConstThermo<EquationOfState> Foam::operator-
-(
-    const eConstThermo<EquationOfState>& ct1,
-    const eConstThermo<EquationOfState>& ct2
-)
-{
-    EquationOfState eofs
-    (
-        static_cast<const EquationOfState&>(ct1)
-      - static_cast<const EquationOfState&>(ct2)
-    );
-
-    return eConstThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.Cv_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Cv_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Hf_
-    );
+    if (mag(eofs.Y()) < SMALL)
+    {
+        return eConstThermo<EquationOfState>
+        (
+            eofs,
+            ct1.Cv_,
+            ct1.Hf_
+        );
+    }
+    else
+    {
+        return eConstThermo<EquationOfState>
+        (
+            eofs,
+            ct1.Y()/eofs.Y()*ct1.Cv_
+          + ct2.Y()/eofs.Y()*ct2.Cv_,
+            ct1.Y()/eofs.Y()*ct1.Hf_
+          + ct2.Y()/eofs.Y()*ct2.Hf_
+        );
+    }
 }
 
 
@@ -261,7 +234,20 @@ inline Foam::eConstThermo<EquationOfState> Foam::operator==
     const eConstThermo<EquationOfState>& ct2
 )
 {
-    return ct2 - ct1;
+    EquationOfState eofs
+    (
+        static_cast<const EquationOfState&>(ct1)
+     == static_cast<const EquationOfState&>(ct2)
+    );
+
+    return eConstThermo<EquationOfState>
+    (
+        eofs,
+        ct2.Y()/eofs.Y()*ct2.Cv_
+      - ct1.Y()/eofs.Y()*ct1.Cv_,
+        ct2.Y()/eofs.Y()*ct2.Hf_
+      - ct1.Y()/eofs.Y()*ct1.Hf_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C
index e4c60c18d60..2f892cbbf64 100644
--- a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,9 +36,6 @@ Foam::hConstThermo<EquationOfState>::hConstThermo(Istream& is)
     Hf_(readScalar(is))
 {
     is.check("hConstThermo::hConstThermo(Istream& is)");
-
-    Cp_ *= this->W();
-    Hf_ *= this->W();
 }
 
 
@@ -48,10 +45,7 @@ Foam::hConstThermo<EquationOfState>::hConstThermo(const dictionary& dict)
     EquationOfState(dict),
     Cp_(readScalar(dict.subDict("thermodynamics").lookup("Cp"))),
     Hf_(readScalar(dict.subDict("thermodynamics").lookup("Hf")))
-{
-    Cp_ *= this->W();
-    Hf_ *= this->W();
-}
+{}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -62,8 +56,8 @@ void Foam::hConstThermo<EquationOfState>::write(Ostream& os) const
     EquationOfState::write(os);
 
     dictionary dict("thermodynamics");
-    dict.add("Cp", Cp_/this->W());
-    dict.add("Hf", Hf_/this->W());
+    dict.add("Cp", Cp_);
+    dict.add("Hf", Hf_);
     os  << indent << dict.dictName() << dict;
 }
 
@@ -78,7 +72,7 @@ Foam::Ostream& Foam::operator<<
 )
 {
     os  << static_cast<const EquationOfState&>(ct) << tab
-        << ct.Cp_/ct.W() << tab << ct.Hf_/ct.W();
+        << ct.Cp_ << tab << ct.Hf_;
 
     os.check("Ostream& operator<<(Ostream& os, const hConstThermo& ct)");
     return os;
diff --git a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H
index a83346040b1..7c04be81e39 100644
--- a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,13 +53,6 @@ inline hConstThermo<EquationOfState> operator+
     const hConstThermo<EquationOfState>&
 );
 
-template<class EquationOfState>
-inline hConstThermo<EquationOfState> operator-
-(
-    const hConstThermo<EquationOfState>&,
-    const hConstThermo<EquationOfState>&
-);
-
 template<class EquationOfState>
 inline hConstThermo<EquationOfState> operator*
 (
@@ -145,20 +138,20 @@ public:
 
         // Fundamental properties
 
-            //- Heat capacity at constant pressure [J/(kmol K)]
-            inline scalar cp(const scalar p, const scalar T) const;
+            //- Heat capacity at constant pressure [J/(kg K)]
+            inline scalar Cp(const scalar p, const scalar T) const;
 
-            //- Absolute Enthalpy [J/kmol]
-            inline scalar ha(const scalar p, const scalar T) const;
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
 
-            //- Sensible enthalpy [J/kmol]
-            inline scalar hs(const scalar p, const scalar T) const;
+            //- Sensible enthalpy [J/kg]
+            inline scalar Hs(const scalar p, const scalar T) const;
 
-            //- Chemical enthalpy [J/kmol]
-            inline scalar hc() const;
+            //- Chemical enthalpy [J/kg]
+            inline scalar Hc() const;
 
-            //- Entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
 
         // I-O
@@ -170,7 +163,6 @@ public:
     // Member operators
 
         inline void operator+=(const hConstThermo&);
-        inline void operator-=(const hConstThermo&);
 
 
     // Friend operators
@@ -181,12 +173,6 @@ public:
             const hConstThermo&
         );
 
-        friend hConstThermo operator- <EquationOfState>
-        (
-            const hConstThermo&,
-            const hConstThermo&
-        );
-
         friend hConstThermo operator* <EquationOfState>
         (
             const scalar,
diff --git a/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H b/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H
index 1367c7c426c..ebed57e4321 100644
--- a/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -100,50 +100,50 @@ inline Foam::scalar Foam::hConstThermo<EquationOfState>::limit
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hConstThermo<EquationOfState>::cp
+inline Foam::scalar Foam::hConstThermo<EquationOfState>::Cp
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return Cp_ + EquationOfState::cp(p, T);
+    return Cp_ + EquationOfState::Cp(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hConstThermo<EquationOfState>::ha
+inline Foam::scalar Foam::hConstThermo<EquationOfState>::Ha
 (
     const scalar p, const scalar T
 ) const
 {
-    return Cp_*T + Hf_ + EquationOfState::h(p, T);
+    return Cp_*T + Hf_ + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hConstThermo<EquationOfState>::hs
+inline Foam::scalar Foam::hConstThermo<EquationOfState>::Hs
 (
     const scalar p, const scalar T
 ) const
 {
-    return Cp_*T + EquationOfState::h(p, T);
+    return Cp_*T + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hConstThermo<EquationOfState>::hc() const
+inline Foam::scalar Foam::hConstThermo<EquationOfState>::Hc() const
 {
     return Hf_;
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hConstThermo<EquationOfState>::s
+inline Foam::scalar Foam::hConstThermo<EquationOfState>::S
 (
     const scalar p, const scalar T
 ) const
 {
-    return Cp_*log(T/Tstd) + EquationOfState::s(p, T);
+    return Cp_*log(T/Tstd) + EquationOfState::S(p, T);
 }
 
 
@@ -155,33 +155,18 @@ inline void Foam::hConstThermo<EquationOfState>::operator+=
     const hConstThermo<EquationOfState>& ct
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     EquationOfState::operator+=(ct);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        scalar Y2 = ct.Y()/this->Y();
 
-    Cp_ = molr1*Cp_ + molr2*ct.Cp_;
-    Hf_ = molr1*Hf_ + molr2*ct.Hf_;
-}
-
-
-template<class EquationOfState>
-inline void Foam::hConstThermo<EquationOfState>::operator-=
-(
-    const hConstThermo<EquationOfState>& ct
-)
-{
-    scalar molr1 = this->nMoles();
-
-    EquationOfState::operator-=(ct);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
-
-    Cp_ = molr1*Cp_ - molr2*ct.Cp_;
-    Hf_ = molr1*Hf_ - molr2*ct.Hf_;
+        Cp_ = Y1*Cp_ + Y2*ct.Cp_;
+        Hf_ = Y1*Hf_ + Y2*ct.Hf_;
+    }
 }
 
 
@@ -200,38 +185,26 @@ inline Foam::hConstThermo<EquationOfState> Foam::operator+
       + static_cast<const EquationOfState&>(ct2)
     );
 
-    return hConstThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.Cp_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Cp_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Hf_
-    );
-}
-
-
-template<class EquationOfState>
-inline Foam::hConstThermo<EquationOfState> Foam::operator-
-(
-    const hConstThermo<EquationOfState>& ct1,
-    const hConstThermo<EquationOfState>& ct2
-)
-{
-    EquationOfState eofs
-    (
-        static_cast<const EquationOfState&>(ct1)
-      - static_cast<const EquationOfState&>(ct2)
-    );
-
-    return hConstThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.Cp_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Cp_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Hf_
-    );
+    if (mag(eofs.Y()) < SMALL)
+    {
+        return hConstThermo<EquationOfState>
+        (
+            eofs,
+            ct1.Cp_,
+            ct1.Hf_
+        );
+    }
+    else
+    {
+        return hConstThermo<EquationOfState>
+        (
+            eofs,
+            ct1.Y()/eofs.Y()*ct1.Cp_
+          + ct2.Y()/eofs.Y()*ct2.Cp_,
+            ct1.Y()/eofs.Y()*ct1.Hf_
+          + ct2.Y()/eofs.Y()*ct2.Hf_
+        );
+    }
 }
 
 
@@ -258,7 +231,20 @@ inline Foam::hConstThermo<EquationOfState> Foam::operator==
     const hConstThermo<EquationOfState>& ct2
 )
 {
-    return ct2 - ct1;
+    EquationOfState eofs
+    (
+        static_cast<const EquationOfState&>(ct1)
+     == static_cast<const EquationOfState&>(ct2)
+    );
+
+    return hConstThermo<EquationOfState>
+    (
+        eofs,
+        ct2.Y()/eofs.Y()*ct2.Cp_
+      - ct1.Y()/eofs.Y()*ct1.Cp_,
+        ct2.Y()/eofs.Y()*ct2.Hf_
+      - ct1.Y()/eofs.Y()*ct1.Hf_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C
index 511e871bf19..0aa43c1f72a 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,10 +41,6 @@ Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
     hCoeffs_(),
     sCoeffs_()
 {
-    Hf_ *= this->W();
-    Sf_ *= this->W();
-    CpCoeffs_ *= this->W();
-
     hCoeffs_ = CpCoeffs_.integral();
     sCoeffs_ = CpCoeffs_.integralMinus1();
 
@@ -75,10 +71,6 @@ Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
     hCoeffs_(),
     sCoeffs_()
 {
-    Hf_ *= this->W();
-    Sf_ *= this->W();
-    CpCoeffs_ *= this->W();
-
     hCoeffs_ = CpCoeffs_.integral();
     sCoeffs_ = CpCoeffs_.integralMinus1();
 
@@ -101,12 +93,12 @@ void Foam::hPolynomialThermo<EquationOfState, PolySize>::write
     EquationOfState::write(os);
 
     dictionary dict("thermodynamics");
-    dict.add("Hf", Hf_/this->W());
-    dict.add("Sf", Sf_/this->W());
+    dict.add("Hf", Hf_);
+    dict.add("Sf", Sf_);
     dict.add
     (
         word("CpCoeffs<" + Foam::name(PolySize) + '>'),
-        CpCoeffs_/this->W()
+        CpCoeffs_
     );
     os  << indent << dict.dictName() << dict;
 }
@@ -122,10 +114,10 @@ Foam::Ostream& Foam::operator<<
 )
 {
     os  << static_cast<const EquationOfState&>(pt) << tab
-        << pt.Hf_/pt.W() << tab
-        << pt.Sf_/pt.W() << tab
+        << pt.Hf_ << tab
+        << pt.Sf_ << tab
         << "CpCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.CpCoeffs_/pt.W();
+        << pt.CpCoeffs_/pt;
 
     os.check
     (
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
index e7d48a6d0dc..d8acaee18a5 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,13 +93,6 @@ inline hPolynomialThermo<EquationOfState, PolySize> operator+
     const hPolynomialThermo<EquationOfState, PolySize>&
 );
 
-template<class EquationOfState, int PolySize>
-inline hPolynomialThermo<EquationOfState, PolySize> operator-
-(
-    const hPolynomialThermo<EquationOfState, PolySize>&,
-    const hPolynomialThermo<EquationOfState, PolySize>&
-);
-
 template<class EquationOfState, int PolySize>
 inline hPolynomialThermo<EquationOfState, PolySize> operator*
 (
@@ -195,20 +188,20 @@ public:
 
         // Fundamental properties
 
-            //- Heat capacity at constant pressure [J/(kmol K)]
-            inline scalar cp(const scalar p, const scalar T) const;
+            //- Heat capacity at constant pressure [J/(kg K)]
+            inline scalar Cp(const scalar p, const scalar T) const;
 
-            //- Absolute Enthalpy [J/kmol]
-            inline scalar ha(const scalar p, const scalar T) const;
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
 
-            //- Sensible enthalpy [J/kmol]
-            inline scalar hs(const scalar p, const scalar T) const;
+            //- Sensible enthalpy [J/kg]
+            inline scalar Hs(const scalar p, const scalar T) const;
 
-            //- Chemical enthalpy [J/kmol]
-            inline scalar hc() const;
+            //- Chemical enthalpy [J/kg]
+            inline scalar Hc() const;
 
-            //- Entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
 
         // I-O
@@ -221,7 +214,6 @@ public:
 
         inline void operator=(const hPolynomialThermo&);
         inline void operator+=(const hPolynomialThermo&);
-        inline void operator-=(const hPolynomialThermo&);
         inline void operator*=(const scalar);
 
 
@@ -233,12 +225,6 @@ public:
             const hPolynomialThermo&
         );
 
-        friend hPolynomialThermo operator- <EquationOfState, PolySize>
-        (
-            const hPolynomialThermo&,
-            const hPolynomialThermo&
-        );
-
         friend hPolynomialThermo operator* <EquationOfState, PolySize>
         (
             const scalar,
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H
index 7cef8ce2b53..26049dfc5f4 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,37 +93,37 @@ inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::limit
 
 
 template<class EquationOfState, int PolySize>
-inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::cp
+inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::Cp
 (
     const scalar p, const scalar T
 ) const
 {
-    return CpCoeffs_.value(T) + EquationOfState::cp(p, T);
+    return CpCoeffs_.value(T) + EquationOfState::Cp(p, T);
 }
 
 
 template<class EquationOfState, int PolySize>
-inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::ha
+inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::Ha
 (
     const scalar p, const scalar T
 ) const
 {
-    return hCoeffs_.value(T) + EquationOfState::h(p, T);
+    return hCoeffs_.value(T) + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState, int PolySize>
-inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::hs
+inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::Hs
 (
     const scalar p, const scalar T
 ) const
 {
-    return ha(p, T) - hc();
+    return Ha(p, T) - Hc();
 }
 
 
 template<class EquationOfState, int PolySize>
-inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::hc()
+inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::Hc()
 const
 {
     return Hf_;
@@ -131,13 +131,13 @@ const
 
 
 template<class EquationOfState, int PolySize>
-inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::s
+inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::S
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return sCoeffs_.value(T) + EquationOfState::s(p, T);
+    return sCoeffs_.value(T) + EquationOfState::S(p, T);
 }
 
 
@@ -165,39 +165,21 @@ inline void Foam::hPolynomialThermo<EquationOfState, PolySize>::operator+=
     const hPolynomialThermo<EquationOfState, PolySize>& pt
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     EquationOfState::operator+=(pt);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
-
-    Hf_ = molr1*Hf_ + molr2*pt.Hf_;
-    Sf_ = molr1*Sf_ + molr2*pt.Sf_;
-    CpCoeffs_ = molr1*CpCoeffs_ + molr2*pt.CpCoeffs_;
-    hCoeffs_ = molr1*hCoeffs_ + molr2*pt.hCoeffs_;
-    sCoeffs_ = molr1*sCoeffs_ + molr2*pt.sCoeffs_;
-}
-
-
-template<class EquationOfState, int PolySize>
-inline void Foam::hPolynomialThermo<EquationOfState, PolySize>::operator-=
-(
-    const hPolynomialThermo<EquationOfState, PolySize>& pt
-)
-{
-    scalar molr1 = this->nMoles();
-
-    EquationOfState::operator-=(pt);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
-
-    Hf_ = molr1*Hf_ - molr2*pt.Hf_;
-    Sf_ = molr1*Sf_ - molr2*pt.Sf_;
-    CpCoeffs_ = molr1*CpCoeffs_ - molr2*pt.CpCoeffs_;
-    hCoeffs_ = molr1*hCoeffs_ - molr2*pt.hCoeffs_;
-    sCoeffs_ = molr1*sCoeffs_ - molr2*pt.sCoeffs_;
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = pt.Y()/this->Y();
+
+        Hf_ = Y1*Hf_ + Y2*pt.Hf_;
+        Sf_ = Y1*Sf_ + Y2*pt.Sf_;
+        CpCoeffs_ = Y1*CpCoeffs_ + Y2*pt.CpCoeffs_;
+        hCoeffs_ = Y1*hCoeffs_ + Y2*pt.hCoeffs_;
+        sCoeffs_ = Y1*sCoeffs_ + Y2*pt.sCoeffs_;
+    }
 }
 
 
@@ -223,43 +205,32 @@ inline Foam::hPolynomialThermo<EquationOfState, PolySize> Foam::operator+
     EquationOfState eofs = pt1;
     eofs += pt2;
 
-    scalar molr1 = pt1.nMoles()/eofs.nMoles();
-    scalar molr2 = pt2.nMoles()/eofs.nMoles();
-
-    return hPolynomialThermo<EquationOfState, PolySize>
-    (
-        eofs,
-        molr1*pt1.Hf_ + molr2*pt2.Hf_,
-        molr1*pt1.Sf_ + molr2*pt2.Sf_,
-        molr1*pt1.CpCoeffs_ + molr2*pt2.CpCoeffs_,
-        molr1*pt1.hCoeffs_ + molr2*pt2.hCoeffs_,
-        molr1*pt1.sCoeffs_ + molr2*pt2.sCoeffs_
-    );
-}
-
-
-template<class EquationOfState, int PolySize>
-inline Foam::hPolynomialThermo<EquationOfState, PolySize> Foam::operator-
-(
-    const hPolynomialThermo<EquationOfState, PolySize>& pt1,
-    const hPolynomialThermo<EquationOfState, PolySize>& pt2
-)
-{
-    EquationOfState eofs = pt1;
-    eofs -= pt2;
-
-    scalar molr1 = pt1.nMoles()/eofs.nMoles();
-    scalar molr2 = pt2.nMoles()/eofs.nMoles();
-
-    return hPolynomialThermo<EquationOfState, PolySize>
-    (
-        eofs,
-        molr1*pt1.Hf_ - molr2*pt2.Hf_,
-        molr1*pt1.Sf_ - molr2*pt2.Sf_,
-        molr1*pt1.CpCoeffs_ - molr2*pt2.CpCoeffs_,
-        molr1*pt1.hCoeffs_ - molr2*pt2.hCoeffs_,
-        molr1*pt1.sCoeffs_ - molr2*pt2.sCoeffs_
-    );
+    if (mag(eofs.Y()) < SMALL)
+    {
+        return hPolynomialThermo<EquationOfState, PolySize>
+        (
+            eofs,
+            pt1.Hf_,
+            pt1.Sf_,
+            pt1.CpCoeffs_,
+            pt1.hCoeffs_,
+            pt1.sCoeffs_
+        );
+    }
+    {
+        const scalar Y1 = pt1.Y()/eofs.Y();
+        const scalar Y2 = pt2.Y()/eofs.Y();
+
+        return hPolynomialThermo<EquationOfState, PolySize>
+        (
+            eofs,
+            Y1*pt1.Hf_ + Y2*pt2.Hf_,
+            Y1*pt1.Sf_ + Y2*pt2.Sf_,
+            Y1*pt1.CpCoeffs_ + Y2*pt2.CpCoeffs_,
+            Y1*pt1.hCoeffs_ + Y2*pt2.hCoeffs_,
+            Y1*pt1.sCoeffs_ + Y2*pt2.sCoeffs_
+        );
+    }
 }
 
 
@@ -289,7 +260,24 @@ inline Foam::hPolynomialThermo<EquationOfState, PolySize> Foam::operator==
     const hPolynomialThermo<EquationOfState, PolySize>& pt2
 )
 {
-    return pt2 - pt1;
+    EquationOfState eofs
+    (
+        static_cast<const EquationOfState&>(pt1)
+     == static_cast<const EquationOfState&>(pt2)
+    );
+
+    const scalar Y1 = pt1.Y()/eofs.Y();
+    const scalar Y2 = pt2.Y()/eofs.Y();
+
+    return hPolynomialThermo<EquationOfState, PolySize>
+    (
+        eofs,
+        Y2*pt2.Hf_       - Y1*pt1.Hf_,
+        Y2*pt2.Sf_       - Y1*pt1.Sf_,
+        Y2*pt2.CpCoeffs_ - Y1*pt1.CpCoeffs_,
+        Y2*pt2.hCoeffs_  - Y1*pt1.hCoeffs_,
+        Y2*pt2.sCoeffs_  - Y1*pt1.sCoeffs_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C
index 4ab71b4e654..bab5f226aea 100644
--- a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,9 +37,6 @@ Foam::hPowerThermo<EquationOfState>::hPowerThermo(Istream& is)
     Hf_(readScalar(is))
 {
     is.check("hPowerThermo::hPowerThermo(Istream& is)");
-
-    c0_ *= this->W();
-    Hf_ *= this->W();
 }
 
 
@@ -54,10 +51,7 @@ Foam::hPowerThermo<EquationOfState>::hPowerThermo
     n0_(readScalar(dict.subDict("thermodynamics").lookup("n0"))),
     Tref_(readScalar(dict.subDict("thermodynamics").lookup("Tref"))),
     Hf_(readScalar(dict.subDict("thermodynamics").lookup("Hf")))
-{
-    c0_ *= this->W();
-    Hf_ *= this->W();
-}
+{}
 
 
 // * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H
index 1f0caaff09d..be30a506ad2 100644
--- a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,13 +61,6 @@ inline hPowerThermo<EquationOfState> operator+
     const hPowerThermo<EquationOfState>&
 );
 
-template<class EquationOfState>
-inline hPowerThermo<EquationOfState> operator-
-(
-    const hPowerThermo<EquationOfState>&,
-    const hPowerThermo<EquationOfState>&
-);
-
 template<class EquationOfState>
 inline hPowerThermo<EquationOfState> operator*
 (
@@ -167,25 +160,24 @@ public:
         // Fundamental properties
 
             //- Heat capacity at constant pressure [J/(kg K)]
-            inline scalar cp(const scalar p, const scalar T) const;
+            inline scalar Cp(const scalar p, const scalar T) const;
 
-            //- Absolute enthalpy [J/kmol]
-            inline scalar ha(const scalar p, const scalar T) const;
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
 
             //- Sensible enthalpy [J/kg]
-            inline scalar hs(const scalar p, const scalar T) const;
+            inline scalar Hs(const scalar p, const scalar T) const;
 
             //- Chemical enthalpy [J/kg]
-            inline scalar hc() const;
+            inline scalar Hc() const;
 
-            //- Entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
 
     // Member operators
 
         inline void operator+=(const hPowerThermo&);
-        inline void operator-=(const hPowerThermo&);
 
 
     // Friend operators
@@ -196,12 +188,6 @@ public:
             const hPowerThermo&
         );
 
-        friend hPowerThermo operator- <EquationOfState>
-        (
-            const hPowerThermo&,
-            const hPowerThermo&
-        );
-
         friend hPowerThermo operator* <EquationOfState>
         (
             const scalar,
diff --git a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H
index c9114a1dd81..e5160d973c7 100644
--- a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -125,53 +125,53 @@ inline Foam::scalar Foam::hPowerThermo<EquationOfState>::limit
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hPowerThermo<EquationOfState>::cp
+inline Foam::scalar Foam::hPowerThermo<EquationOfState>::Cp
 (
     const scalar p, const scalar T
 ) const
 {
-    return c0_*pow(T/Tref_, n0_) + EquationOfState::cp(p, T);
+    return c0_*pow(T/Tref_, n0_) + EquationOfState::Cp(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hPowerThermo<EquationOfState>::ha
+inline Foam::scalar Foam::hPowerThermo<EquationOfState>::Ha
 (
     const scalar p, const scalar T
 ) const
 {
-    return hs(p, T) + hc();
+    return Hs(p, T) + Hc();
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hPowerThermo<EquationOfState>::hs
+inline Foam::scalar Foam::hPowerThermo<EquationOfState>::Hs
 (
     const scalar p, const scalar T
 ) const
 {
     return
         c0_*(pow(T, n0_ + 1) - pow(Tstd, n0_ + 1))/(pow(Tref_, n0_)*(n0_ + 1))
-      + EquationOfState::h(p, T);
+      + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hPowerThermo<EquationOfState>::hc() const
+inline Foam::scalar Foam::hPowerThermo<EquationOfState>::Hc() const
 {
     return Hf_;
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hPowerThermo<EquationOfState>::s
+inline Foam::scalar Foam::hPowerThermo<EquationOfState>::S
 (
     const scalar p, const scalar T
 ) const
 {
     return
         c0_*(pow(T, n0_) - pow(Tstd, n0_))/(pow(Tref_, n0_)*n0_)
-      + EquationOfState::s(p, T);
+      + EquationOfState::S(p, T);
 }
 
 
@@ -183,36 +183,20 @@ inline void Foam::hPowerThermo<EquationOfState>::operator+=
     const hPowerThermo<EquationOfState>& ct
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     EquationOfState::operator+=(ct);
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
 
-    Hf_ = molr1*Hf_ + molr2*ct.Hf_;
-    c0_ = molr1*c0_ + molr2*ct.c0_;
-    n0_ = molr1*n0_ + molr2*ct.n0_;
-    Tref_ = molr1*Tref_ + molr2*ct.Tref_;
-}
-
-
-template<class EquationOfState>
-inline void Foam::hPowerThermo<EquationOfState>::operator-=
-(
-    const hPowerThermo<EquationOfState>& ct
-)
-{
-    scalar molr1 = this->nMoles();
-
-    EquationOfState::operator-=(ct);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = ct.Y()/this->Y();
 
-    Hf_ = molr1*Hf_ - molr2*ct.Hf_;
-    c0_ = (molr1*c0_ - molr2*ct.c0_);
-    n0_ = (molr1*n0_ - molr2*ct.n0_);
-    Tref_ = (molr1*Tref_ - molr2*ct.Tref_);
+        Hf_ = Y1*Hf_ + Y2*ct.Hf_;
+        c0_ = Y1*c0_ + Y2*ct.c0_;
+        n0_ = Y1*n0_ + Y2*ct.n0_;
+        Tref_ = Y1*Tref_ + Y2*ct.Tref_;
+    }
 }
 
 
@@ -231,46 +215,32 @@ inline Foam::hPowerThermo<EquationOfState> Foam::operator+
       + static_cast<const EquationOfState&>(ct2)
     );
 
-    return hPowerThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.c0_
-      + ct2.nMoles()/eofs.nMoles()*ct2.c0_,
-        ct1.nMoles()/eofs.nMoles()*ct1.n0_
-      + ct2.nMoles()/eofs.nMoles()*ct2.n0_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Tref_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Tref_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Hf_
-    );
-}
-
-
-template<class EquationOfState>
-inline Foam::hPowerThermo<EquationOfState> Foam::operator-
-(
-    const hPowerThermo<EquationOfState>& ct1,
-    const hPowerThermo<EquationOfState>& ct2
-)
-{
-    EquationOfState eofs
-    (
-        static_cast<const EquationOfState&>(ct1)
-      + static_cast<const EquationOfState&>(ct2)
-    );
-
-    return hPowerThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.c0_
-      - ct2.nMoles()/eofs.nMoles()*ct2.c0_,
-        ct1.nMoles()/eofs.nMoles()*ct1.n0_
-      - ct2.nMoles()/eofs.nMoles()*ct2.n0_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Tref_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Tref_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Hf_
-    );
+    if (mag(eofs.Y()) < SMALL)
+    {
+        return hPowerThermo<EquationOfState>
+        (
+            eofs,
+            ct1.c0_,
+            ct1.n0_,
+            ct1.Tref_,
+            ct1.Hf_
+        );
+    }
+    else
+    {
+        return hPowerThermo<EquationOfState>
+        (
+            eofs,
+            ct1.Y()/eofs.Y()*ct1.c0_
+          + ct2.Y()/eofs.Y()*ct2.c0_,
+            ct1.Y()/eofs.Y()*ct1.n0_
+          + ct2.Y()/eofs.Y()*ct2.n0_,
+            ct1.Y()/eofs.Y()*ct1.Tref_
+          + ct2.Y()/eofs.Y()*ct2.Tref_,
+            ct1.Y()/eofs.Y()*ct1.Hf_
+          + ct2.Y()/eofs.Y()*ct2.Hf_
+        );
+    }
 }
 
 
@@ -299,7 +269,24 @@ inline Foam::hPowerThermo<EquationOfState> Foam::operator==
     const hPowerThermo<EquationOfState>& ct2
 )
 {
-    return ct2 - ct1;
+    EquationOfState eofs
+    (
+        static_cast<const EquationOfState&>(ct1)
+     == static_cast<const EquationOfState&>(ct2)
+    );
+
+    return hPowerThermo<EquationOfState>
+    (
+        eofs,
+        ct2.Y()/eofs.Y()*ct2.c0_
+      - ct1.Y()/eofs.Y()*ct1.c0_,
+        ct2.Y()/eofs.Y()*ct2.n0_
+      - ct1.Y()/eofs.Y()*ct1.n0_,
+        ct2.Y()/eofs.Y()*ct2.Tref_
+      - ct1.Y()/eofs.Y()*ct1.Tref_,
+        ct2.Y()/eofs.Y()*ct2.Hf_
+      - ct1.Y()/eofs.Y()*ct1.Hf_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C
index fe83f1794b6..a73c8748fa7 100644
--- a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,10 +38,6 @@ Foam::hRefConstThermo<EquationOfState>::hRefConstThermo(Istream& is)
     Href_(readScalar(is))
 {
     is.check("hRefConstThermo::hRefConstThermo(Istream& is)");
-
-    Cp_ *= this->W();
-    Hf_ *= this->W();
-    Href_ *= this->W();
 }
 
 
@@ -53,11 +49,7 @@ Foam::hRefConstThermo<EquationOfState>::hRefConstThermo(const dictionary& dict)
     Hf_(readScalar(dict.subDict("thermodynamics").lookup("Hf"))),
     Tref_(readScalar(dict.subDict("thermodynamics").lookup("Tref"))),
     Href_(readScalar(dict.subDict("thermodynamics").lookup("Href")))
-{
-    Cp_ *= this->W();
-    Hf_ *= this->W();
-    Href_ *= this->W();
-}
+{}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -68,10 +60,10 @@ void Foam::hRefConstThermo<EquationOfState>::write(Ostream& os) const
     EquationOfState::write(os);
 
     dictionary dict("thermodynamics");
-    dict.add("Cp", Cp_/this->W());
-    dict.add("Hf", Hf_/this->W());
+    dict.add("Cp", Cp_);
+    dict.add("Hf", Hf_);
     dict.add("Tref", Tref_);
-    dict.add("Href", Href_/this->W());
+    dict.add("Href", Href_);
     os  << indent << dict.dictName() << dict;
 }
 
@@ -86,8 +78,8 @@ Foam::Ostream& Foam::operator<<
 )
 {
     os  << static_cast<const EquationOfState&>(ct) << tab
-        << ct.Cp_/ct.W() << tab << ct.Hf_/ct.W() << tab
-        << ct.Tref_ << tab << ct.Href_/ct.W();
+        << ct.Cp_ << tab << ct.Hf_ << tab
+        << ct.Tref_ << tab << ct.Href_;
 
     os.check("Ostream& operator<<(Ostream& os, const hRefConstThermo& ct)");
     return os;
diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H
index 04b9d311b41..0bb18203861 100644
--- a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,13 +53,6 @@ inline hRefConstThermo<EquationOfState> operator+
     const hRefConstThermo<EquationOfState>&
 );
 
-template<class EquationOfState>
-inline hRefConstThermo<EquationOfState> operator-
-(
-    const hRefConstThermo<EquationOfState>&,
-    const hRefConstThermo<EquationOfState>&
-);
-
 template<class EquationOfState>
 inline hRefConstThermo<EquationOfState> operator*
 (
@@ -149,20 +142,20 @@ public:
 
         // Fundamental properties
 
-            //- Heat capacity at constant pressure [J/(kmol K)]
-            inline scalar cp(const scalar p, const scalar T) const;
+            //- Heat capacity at constant pressure [J/(kg K)]
+            inline scalar Cp(const scalar p, const scalar T) const;
 
-            //- Absolute Enthalpy [J/kmol]
-            inline scalar ha(const scalar p, const scalar T) const;
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
 
-            //- Sensible enthalpy [J/kmol]
-            inline scalar hs(const scalar p, const scalar T) const;
+            //- Sensible enthalpy [J/kg]
+            inline scalar Hs(const scalar p, const scalar T) const;
 
-            //- Chemical enthalpy [J/kmol]
-            inline scalar hc() const;
+            //- Chemical enthalpy [J/kg]
+            inline scalar Hc() const;
 
-            //- Entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
 
         // I-O
@@ -174,7 +167,6 @@ public:
     // Member operators
 
         inline void operator+=(const hRefConstThermo&);
-        inline void operator-=(const hRefConstThermo&);
 
 
     // Friend operators
@@ -185,12 +177,6 @@ public:
             const hRefConstThermo&
         );
 
-        friend hRefConstThermo operator- <EquationOfState>
-        (
-            const hRefConstThermo&,
-            const hRefConstThermo&
-        );
-
         friend hRefConstThermo operator* <EquationOfState>
         (
             const scalar,
diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H
index 29bd2c97530..941c4b5e889 100644
--- a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -106,50 +106,50 @@ inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::limit
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::cp
+inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::Cp
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return Cp_ + EquationOfState::cp(p, T);
+    return Cp_ + EquationOfState::Cp(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::ha
+inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::Ha
 (
     const scalar p, const scalar T
 ) const
 {
-    return Cp_*(T-Tref_) + Href_ + Hf_ + EquationOfState::h(p, T);
+    return Cp_*(T-Tref_) + Href_ + Hf_ + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::hs
+inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::Hs
 (
     const scalar p, const scalar T
 ) const
 {
-    return Cp_*(T-Tref_) + Href_ + EquationOfState::h(p, T);
+    return Cp_*(T-Tref_) + Href_ + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::hc() const
+inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::Hc() const
 {
     return Hf_;
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::s
+inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::S
 (
     const scalar p, const scalar T
 ) const
 {
-    return Cp_*log(T/Tstd) + EquationOfState::s(p, T);
+    return Cp_*log(T/Tstd) + EquationOfState::S(p, T);
 }
 
 
@@ -161,33 +161,18 @@ inline void Foam::hRefConstThermo<EquationOfState>::operator+=
     const hRefConstThermo<EquationOfState>& ct
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     EquationOfState::operator+=(ct);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        const scalar Y2 = ct.Y()/this->Y();
 
-    Cp_ = molr1*Cp_ + molr2*ct.Cp_;
-    Hf_ = molr1*Hf_ + molr2*ct.Hf_;
-}
-
-
-template<class EquationOfState>
-inline void Foam::hRefConstThermo<EquationOfState>::operator-=
-(
-    const hRefConstThermo<EquationOfState>& ct
-)
-{
-    scalar molr1 = this->nMoles();
-
-    EquationOfState::operator-=(ct);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = ct.nMoles()/this->nMoles();
-
-    Cp_ = molr1*Cp_ - molr2*ct.Cp_;
-    Hf_ = molr1*Hf_ - molr2*ct.Hf_;
+        Cp_ = Y1*Cp_ + Y2*ct.Cp_;
+        Hf_ = Y1*Hf_ + Y2*ct.Hf_;
+    }
 }
 
 
@@ -206,42 +191,32 @@ inline Foam::hRefConstThermo<EquationOfState> Foam::operator+
       + static_cast<const EquationOfState&>(ct2)
     );
 
-    return hRefConstThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.Cp_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Cp_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Hf_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Tref_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Tref_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Href_
-      + ct2.nMoles()/eofs.nMoles()*ct2.Href_
-    );
-}
-
-
-template<class EquationOfState>
-inline Foam::hRefConstThermo<EquationOfState> Foam::operator-
-(
-    const hRefConstThermo<EquationOfState>& ct1,
-    const hRefConstThermo<EquationOfState>& ct2
-)
-{
-    EquationOfState eofs
-    (
-        static_cast<const EquationOfState&>(ct1)
-      - static_cast<const EquationOfState&>(ct2)
-    );
-
-    return hRefConstThermo<EquationOfState>
-    (
-        eofs,
-        ct1.nMoles()/eofs.nMoles()*ct1.Cp_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Cp_,
-        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
-      - ct2.nMoles()/eofs.nMoles()*ct2.Hf_
-    );
+    if (mag(eofs.Y()) < SMALL)
+    {
+        return hRefConstThermo<EquationOfState>
+        (
+            eofs,
+            ct1.Cp_,
+            ct1.Hf_,
+            ct1.Tref_,
+            ct1.Href_
+        );
+    }
+    else
+    {
+        return hRefConstThermo<EquationOfState>
+        (
+            eofs,
+            ct1.Y()/eofs.Y()*ct1.Cp_
+          + ct2.Y()/eofs.Y()*ct2.Cp_,
+            ct1.Y()/eofs.Y()*ct1.Hf_
+          + ct2.Y()/eofs.Y()*ct2.Hf_,
+            ct1.Y()/eofs.Y()*ct1.Tref_
+          + ct2.Y()/eofs.Y()*ct2.Tref_,
+            ct1.Y()/eofs.Y()*ct1.Href_
+          + ct2.Y()/eofs.Y()*ct2.Href_
+        );
+    }
 }
 
 
@@ -270,7 +245,20 @@ inline Foam::hRefConstThermo<EquationOfState> Foam::operator==
     const hRefConstThermo<EquationOfState>& ct2
 )
 {
-    return ct2 - ct1;
+    EquationOfState eofs
+    (
+        static_cast<const EquationOfState&>(ct1)
+     == static_cast<const EquationOfState&>(ct2)
+    );
+
+    return hRefConstThermo<EquationOfState>
+    (
+        eofs,
+        ct2.Y()/eofs.Y()*ct2.Cp_
+      - ct1.Y()/eofs.Y()*ct1.Cp_,
+        ct2.Y()/eofs.Y()*ct2.Hf_
+      - ct1.Y()/eofs.Y()*ct1.Hf_
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C b/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C
index 63c379825d9..44c053e0f12 100644
--- a/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C
+++ b/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,31 +56,6 @@ void Foam::janafThermo<EquationOfState>::checkInputData() const
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class EquationOfState>
-Foam::janafThermo<EquationOfState>::janafThermo(Istream& is)
-:
-    EquationOfState(is),
-    Tlow_(readScalar(is)),
-    Thigh_(readScalar(is)),
-    Tcommon_(readScalar(is))
-{
-    checkInputData();
-
-    forAll(highCpCoeffs_, i)
-    {
-        is >> highCpCoeffs_[i];
-    }
-
-    forAll(lowCpCoeffs_, i)
-    {
-        is >> lowCpCoeffs_[i];
-    }
-
-    // Check state of Istream
-    is.check("janafThermo::janafThermo(Istream& is)");
-}
-
-
 template<class EquationOfState>
 Foam::janafThermo<EquationOfState>::janafThermo(const dictionary& dict)
 :
@@ -91,6 +66,13 @@ Foam::janafThermo<EquationOfState>::janafThermo(const dictionary& dict)
     highCpCoeffs_(dict.subDict("thermodynamics").lookup("highCpCoeffs")),
     lowCpCoeffs_(dict.subDict("thermodynamics").lookup("lowCpCoeffs"))
 {
+    // Convert coefficients to mass-basis
+    for (label coefLabel=0; coefLabel<nCoeffs_; coefLabel++)
+    {
+        highCpCoeffs_[coefLabel] *= this->R();
+        lowCpCoeffs_[coefLabel] *= this->R();
+    }
+
     checkInputData();
 }
 
@@ -102,12 +84,21 @@ void Foam::janafThermo<EquationOfState>::write(Ostream& os) const
 {
     EquationOfState::write(os);
 
+    // Convert coefficients back to dimensionless form
+    coeffArray highCpCoeffs;
+    coeffArray lowCpCoeffs;
+    for (label coefLabel=0; coefLabel<nCoeffs_; coefLabel++)
+    {
+        highCpCoeffs[coefLabel] = highCpCoeffs_[coefLabel]/this->R();
+        lowCpCoeffs[coefLabel] = lowCpCoeffs_[coefLabel]/this->R();
+    }
+
     dictionary dict("thermodynamics");
     dict.add("Tlow", Tlow_);
     dict.add("Thigh", Thigh_);
     dict.add("Tcommon", Tcommon_);
-    dict.add("highCpCoeffs", highCpCoeffs_);
-    dict.add("lowCpCoeffs", lowCpCoeffs_);
+    dict.add("highCpCoeffs", highCpCoeffs);
+    dict.add("lowCpCoeffs", lowCpCoeffs);
     os  << indent << dict.dictName() << dict;
 }
 
@@ -130,14 +121,14 @@ Foam::Ostream& Foam::operator<<
 
     forAll(jt.highCpCoeffs_, i)
     {
-        os << jt.highCpCoeffs_[i] << ' ';
+        os << jt.highCpCoeffs_[i]/jt.R() << ' ';
     }
 
     os << nl << "    ";
 
     forAll(jt.lowCpCoeffs_, i)
     {
-        os << jt.lowCpCoeffs_[i] << ' ';
+        os << jt.lowCpCoeffs_[i]/jt.R() << ' ';
     }
 
     os << endl;
diff --git a/src/thermophysicalModels/specie/thermo/janaf/janafThermo.H b/src/thermophysicalModels/specie/thermo/janaf/janafThermo.H
index 34f3777c51a..f16b76ebfee 100644
--- a/src/thermophysicalModels/specie/thermo/janaf/janafThermo.H
+++ b/src/thermophysicalModels/specie/thermo/janaf/janafThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,13 +56,6 @@ inline janafThermo<EquationOfState> operator+
     const janafThermo<EquationOfState>&
 );
 
-template<class EquationOfState>
-inline janafThermo<EquationOfState> operator-
-(
-    const janafThermo<EquationOfState>&,
-    const janafThermo<EquationOfState>&
-);
-
 template<class EquationOfState>
 inline janafThermo<EquationOfState> operator*
 (
@@ -135,12 +128,10 @@ public:
             const scalar Thigh,
             const scalar Tcommon,
             const coeffArray& highCpCoeffs,
-            const coeffArray& lowCpCoeffs
+            const coeffArray& lowCpCoeffs,
+            const bool convertCoeffs = false
         );
 
-        //- Construct from Istream
-        janafThermo(Istream&);
-
         //- Construct from dictionary
         janafThermo(const dictionary& dict);
 
@@ -180,20 +171,20 @@ public:
 
         // Fundamental properties
 
-            //- Heat capacity at constant pressure [J/(kmol K)]
-            inline scalar cp(const scalar p, const scalar T) const;
+            //- Heat capacity at constant pressure [J/(kg K)]
+            inline scalar Cp(const scalar p, const scalar T) const;
 
-            //- Absolute Enthalpy [J/kmol]
-            inline scalar ha(const scalar p, const scalar T) const;
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
 
-            //- Sensible enthalpy [J/kmol]
-            inline scalar hs(const scalar p, const scalar T) const;
+            //- Sensible enthalpy [J/kg]
+            inline scalar Hs(const scalar p, const scalar T) const;
 
-            //- Chemical enthalpy [J/kmol]
-            inline scalar hc() const;
+            //- Chemical enthalpy [J/kg]
+            inline scalar Hc() const;
 
-            //- Entropy [J/(kmol K)]
-            inline scalar s(const scalar p, const scalar T) const;
+            //- Entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
 
 
         // I-O
@@ -205,7 +196,6 @@ public:
     // Member operators
 
         inline void operator+=(const janafThermo&);
-        inline void operator-=(const janafThermo&);
 
 
     // Friend operators
@@ -216,12 +206,6 @@ public:
             const janafThermo&
         );
 
-        friend janafThermo operator- <EquationOfState>
-        (
-            const janafThermo&,
-            const janafThermo&
-        );
-
         friend janafThermo operator* <EquationOfState>
         (
             const scalar,
diff --git a/src/thermophysicalModels/specie/thermo/janaf/janafThermoI.H b/src/thermophysicalModels/specie/thermo/janaf/janafThermoI.H
index b3fd676a297..8935b04685c 100644
--- a/src/thermophysicalModels/specie/thermo/janaf/janafThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/janaf/janafThermoI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,7 +36,8 @@ inline Foam::janafThermo<EquationOfState>::janafThermo
     const scalar Thigh,
     const scalar Tcommon,
     const typename janafThermo<EquationOfState>::coeffArray& highCpCoeffs,
-    const typename janafThermo<EquationOfState>::coeffArray& lowCpCoeffs
+    const typename janafThermo<EquationOfState>::coeffArray& lowCpCoeffs,
+    const bool convertCoeffs
 )
 :
     EquationOfState(st),
@@ -44,10 +45,21 @@ inline Foam::janafThermo<EquationOfState>::janafThermo
     Thigh_(Thigh),
     Tcommon_(Tcommon)
 {
-    for (label coefLabel=0; coefLabel<nCoeffs_; coefLabel++)
+    if (convertCoeffs)
     {
-        highCpCoeffs_[coefLabel] = highCpCoeffs[coefLabel];
-        lowCpCoeffs_[coefLabel] = lowCpCoeffs[coefLabel];
+        for (label coefLabel=0; coefLabel<nCoeffs_; coefLabel++)
+        {
+            highCpCoeffs_[coefLabel] = highCpCoeffs[coefLabel]*this->R();
+            lowCpCoeffs_[coefLabel] = lowCpCoeffs[coefLabel]*this->R();
+        }
+    }
+    else
+    {
+        for (label coefLabel=0; coefLabel<nCoeffs_; coefLabel++)
+        {
+            highCpCoeffs_[coefLabel] = highCpCoeffs[coefLabel];
+            lowCpCoeffs_[coefLabel] = lowCpCoeffs[coefLabel];
+        }
     }
 }
 
@@ -155,7 +167,7 @@ Foam::janafThermo<EquationOfState>::lowCpCoeffs() const
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::janafThermo<EquationOfState>::cp
+inline Foam::scalar Foam::janafThermo<EquationOfState>::Cp
 (
     const scalar p,
     const scalar T
@@ -163,44 +175,43 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::cp
 {
     const coeffArray& a = coeffs(T);
     return
-        RR*((((a[4]*T + a[3])*T + a[2])*T + a[1])*T + a[0])
-      + EquationOfState::cp(p, T);
+        ((((a[4]*T + a[3])*T + a[2])*T + a[1])*T + a[0])
+      + EquationOfState::Cp(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::janafThermo<EquationOfState>::ha
+inline Foam::scalar Foam::janafThermo<EquationOfState>::Ha
 (
     const scalar p,
     const scalar T
 ) const
 {
     const coeffArray& a = coeffs(T);
-    return RR*
+    return
     (
         ((((a[4]/5.0*T + a[3]/4.0)*T + a[2]/3.0)*T + a[1]/2.0)*T + a[0])*T
       + a[5]
-    )
-  + EquationOfState::h(p, T);
+    ) + EquationOfState::H(p, T);
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::janafThermo<EquationOfState>::hs
+inline Foam::scalar Foam::janafThermo<EquationOfState>::Hs
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return ha(p, T) - hc();
+    return Ha(p, T) - Hc();
 }
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::janafThermo<EquationOfState>::hc() const
+inline Foam::scalar Foam::janafThermo<EquationOfState>::Hc() const
 {
     const coeffArray& a = lowCpCoeffs_;
-    return RR*
+    return
     (
         (
             (((a[4]/5.0*Tstd + a[3]/4.0)*Tstd + a[2]/3.0)*Tstd + a[1]/2.0)*Tstd
@@ -211,7 +222,7 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::hc() const
 
 
 template<class EquationOfState>
-inline Foam::scalar Foam::janafThermo<EquationOfState>::s
+inline Foam::scalar Foam::janafThermo<EquationOfState>::S
 (
     const scalar p,
     const scalar T
@@ -219,12 +230,10 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::s
 {
     const coeffArray& a = coeffs(T);
     return
-    RR*
     (
         (((a[4]/4.0*T + a[3]/3.0)*T + a[2]/2.0)*T + a[1])*T + a[0]*log(T)
       + a[6]
-    )
-  + EquationOfState::s(p, T);
+    ) + EquationOfState::S(p, T);
 }
 
 
@@ -236,84 +245,47 @@ inline void Foam::janafThermo<EquationOfState>::operator+=
     const janafThermo<EquationOfState>& jt
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     EquationOfState::operator+=(jt);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = jt.nMoles()/this->nMoles();
-
-    Tlow_ = max(Tlow_, jt.Tlow_);
-    Thigh_ = min(Thigh_, jt.Thigh_);
-
-    if (janafThermo<EquationOfState>::debug && notEqual(Tcommon_, jt.Tcommon_))
+    if (mag(this->Y()) > SMALL)
     {
-        FatalErrorInFunction
-            << "Tcommon " << Tcommon_ << " for "
-            << (this->name().size() ? this->name() : "others")
-            << " != " << jt.Tcommon_ << " for "
-            << (jt.name().size() ? jt.name() : "others")
-            << exit(FatalError);
-    }
-
-    for
-    (
-        label coefLabel=0;
-        coefLabel<janafThermo<EquationOfState>::nCoeffs_;
-        coefLabel++
-    )
-    {
-        highCpCoeffs_[coefLabel] =
-            molr1*highCpCoeffs_[coefLabel]
-          + molr2*jt.highCpCoeffs_[coefLabel];
-
-        lowCpCoeffs_[coefLabel] =
-            molr1*lowCpCoeffs_[coefLabel]
-          + molr2*jt.lowCpCoeffs_[coefLabel];
-    }
-}
-
-
-template<class EquationOfState>
-inline void Foam::janafThermo<EquationOfState>::operator-=
-(
-    const janafThermo<EquationOfState>& jt
-)
-{
-    scalar molr1 = this->nMoles();
-
-    EquationOfState::operator-=(jt);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = jt.nMoles()/this->nMoles();
+        Y1 /= this->Y();
+        const scalar Y2 = jt.Y()/this->Y();
 
-    Tlow_ = max(Tlow_, jt.Tlow_);
-    Thigh_ = min(Thigh_, jt.Thigh_);
+        Tlow_ = max(Tlow_, jt.Tlow_);
+        Thigh_ = min(Thigh_, jt.Thigh_);
 
-    if (janafThermo<EquationOfState>::debug && notEqual(Tcommon_, jt.Tcommon_))
-    {
-        FatalErrorInFunction
-            << "Tcommon " << Tcommon_ << " for "
-            << (this->name().size() ? this->name() : "others")
-            << " != " << jt.Tcommon_ << " for "
-            << (jt.name().size() ? jt.name() : "others")
-            << exit(FatalError);
-    }
-
-    for
-    (
-        label coefLabel=0;
-        coefLabel<janafThermo<EquationOfState>::nCoeffs_;
-        coefLabel++
-    )
-    {
-        highCpCoeffs_[coefLabel] =
-            molr1*highCpCoeffs_[coefLabel]
-          - molr2*jt.highCpCoeffs_[coefLabel];
-
-        lowCpCoeffs_[coefLabel] =
-            molr1*lowCpCoeffs_[coefLabel]
-          - molr2*jt.lowCpCoeffs_[coefLabel];
+        if
+        (
+            janafThermo<EquationOfState>::debug
+         && notEqual(Tcommon_, jt.Tcommon_)
+        )
+        {
+            FatalErrorInFunction
+                << "Tcommon " << Tcommon_ << " for "
+                << (this->name().size() ? this->name() : "others")
+                << " != " << jt.Tcommon_ << " for "
+                << (jt.name().size() ? jt.name() : "others")
+                << exit(FatalError);
+        }
+
+        for
+        (
+            label coefLabel=0;
+            coefLabel<janafThermo<EquationOfState>::nCoeffs_;
+            coefLabel++
+        )
+        {
+            highCpCoeffs_[coefLabel] =
+                Y1*highCpCoeffs_[coefLabel]
+              + Y2*jt.highCpCoeffs_[coefLabel];
+
+            lowCpCoeffs_[coefLabel] =
+                Y1*lowCpCoeffs_[coefLabel]
+              + Y2*jt.lowCpCoeffs_[coefLabel];
+        }
     }
 }
 
@@ -330,66 +302,103 @@ inline Foam::janafThermo<EquationOfState> Foam::operator+
     EquationOfState eofs = jt1;
     eofs += jt2;
 
-    scalar molr1 = jt1.nMoles()/eofs.nMoles();
-    scalar molr2 = jt2.nMoles()/eofs.nMoles();
-
-    typename janafThermo<EquationOfState>::coeffArray highCpCoeffs;
-    typename janafThermo<EquationOfState>::coeffArray lowCpCoeffs;
-
-    for
-    (
-        label coefLabel=0;
-        coefLabel<janafThermo<EquationOfState>::nCoeffs_;
-        coefLabel++
-    )
+    if (mag(eofs.Y()) < SMALL)
     {
-        highCpCoeffs[coefLabel] =
-            molr1*jt1.highCpCoeffs_[coefLabel]
-          + molr2*jt2.highCpCoeffs_[coefLabel];
-
-        lowCpCoeffs[coefLabel] =
-            molr1*jt1.lowCpCoeffs_[coefLabel]
-          + molr2*jt2.lowCpCoeffs_[coefLabel];
+        return janafThermo<EquationOfState>
+        (
+            eofs,
+            jt1.Tlow_,
+            jt1.Thigh_,
+            jt1.Tcommon_,
+            jt1.highCpCoeffs_,
+            jt1.lowCpCoeffs_
+        );
     }
-
-    if
-    (
-        janafThermo<EquationOfState>::debug
-     && notEqual(jt1.Tcommon_, jt2.Tcommon_)
-    )
+    else
     {
-        FatalErrorInFunction
-            << "Tcommon " << jt1.Tcommon_ << " for "
-            << (jt1.name().size() ? jt1.name() : "others")
-            << " != " << jt2.Tcommon_ << " for "
-            << (jt2.name().size() ? jt2.name() : "others")
-            << exit(FatalError);
+        const scalar Y1 = jt1.Y()/eofs.Y();
+        const scalar Y2 = jt2.Y()/eofs.Y();
+
+        typename janafThermo<EquationOfState>::coeffArray highCpCoeffs;
+        typename janafThermo<EquationOfState>::coeffArray lowCpCoeffs;
+
+        for
+        (
+            label coefLabel=0;
+            coefLabel<janafThermo<EquationOfState>::nCoeffs_;
+            coefLabel++
+        )
+        {
+            highCpCoeffs[coefLabel] =
+                Y1*jt1.highCpCoeffs_[coefLabel]
+              + Y2*jt2.highCpCoeffs_[coefLabel];
+
+            lowCpCoeffs[coefLabel] =
+                Y1*jt1.lowCpCoeffs_[coefLabel]
+              + Y2*jt2.lowCpCoeffs_[coefLabel];
+        }
+
+        if
+        (
+            janafThermo<EquationOfState>::debug
+         && notEqual(jt1.Tcommon_, jt2.Tcommon_)
+        )
+        {
+            FatalErrorInFunction
+                << "Tcommon " << jt1.Tcommon_ << " for "
+                << (jt1.name().size() ? jt1.name() : "others")
+                << " != " << jt2.Tcommon_ << " for "
+                << (jt2.name().size() ? jt2.name() : "others")
+                << exit(FatalError);
+        }
+
+        return janafThermo<EquationOfState>
+        (
+            eofs,
+            max(jt1.Tlow_, jt2.Tlow_),
+            min(jt1.Thigh_, jt2.Thigh_),
+            jt1.Tcommon_,
+            highCpCoeffs,
+            lowCpCoeffs
+        );
     }
+}
 
+
+template<class EquationOfState>
+inline Foam::janafThermo<EquationOfState> Foam::operator*
+(
+    const scalar s,
+    const janafThermo<EquationOfState>& jt
+)
+{
     return janafThermo<EquationOfState>
     (
-        eofs,
-        max(jt1.Tlow_, jt2.Tlow_),
-        min(jt1.Thigh_, jt2.Thigh_),
-        jt1.Tcommon_,
-        highCpCoeffs,
-        lowCpCoeffs
+        s*static_cast<const EquationOfState&>(jt),
+        jt.Tlow_,
+        jt.Thigh_,
+        jt.Tcommon_,
+        jt.highCpCoeffs_,
+        jt.lowCpCoeffs_
     );
 }
 
 
 template<class EquationOfState>
-inline Foam::janafThermo<EquationOfState> Foam::operator-
+inline Foam::janafThermo<EquationOfState> Foam::operator==
 (
     const janafThermo<EquationOfState>& jt1,
     const janafThermo<EquationOfState>& jt2
 )
 {
-    EquationOfState eofs = jt1;
-    eofs -= jt2;
+    EquationOfState eofs
+    (
+        static_cast<const EquationOfState&>(jt1)
+     == static_cast<const EquationOfState&>(jt2)
+    );
 
-    scalar molr1 = jt1.nMoles()/eofs.nMoles();
-    scalar molr2 = jt2.nMoles()/eofs.nMoles();
+    const scalar Y1 = jt2.Y()/eofs.Y();
+    const scalar Y2 = jt1.Y()/eofs.Y();
 
     typename janafThermo<EquationOfState>::coeffArray highCpCoeffs;
     typename janafThermo<EquationOfState>::coeffArray lowCpCoeffs;
@@ -402,68 +411,38 @@ inline Foam::janafThermo<EquationOfState> Foam::operator-
     )
     {
         highCpCoeffs[coefLabel] =
-            molr1*jt1.highCpCoeffs_[coefLabel]
-          - molr2*jt2.highCpCoeffs_[coefLabel];
+            Y1*jt2.highCpCoeffs_[coefLabel]
+          - Y2*jt1.highCpCoeffs_[coefLabel];
 
         lowCpCoeffs[coefLabel] =
-            molr1*jt1.lowCpCoeffs_[coefLabel]
-          - molr2*jt2.lowCpCoeffs_[coefLabel];
+            Y1*jt2.lowCpCoeffs_[coefLabel]
+          - Y2*jt1.lowCpCoeffs_[coefLabel];
     }
 
     if
     (
         janafThermo<EquationOfState>::debug
-     && notEqual(jt1.Tcommon_, jt2.Tcommon_)
+     && notEqual(jt2.Tcommon_, jt1.Tcommon_)
     )
     {
         FatalErrorInFunction
-            << "Tcommon " << jt1.Tcommon_ << " for "
-            << (jt1.name().size() ? jt1.name() : "others")
-            << " != " << jt2.Tcommon_ << " for "
+            << "Tcommon " << jt2.Tcommon_ << " for "
             << (jt2.name().size() ? jt2.name() : "others")
+            << " != " << jt1.Tcommon_ << " for "
+            << (jt1.name().size() ? jt1.name() : "others")
             << exit(FatalError);
     }
 
     return janafThermo<EquationOfState>
     (
         eofs,
-        max(jt1.Tlow_, jt2.Tlow_),
-        min(jt1.Thigh_, jt2.Thigh_),
-        jt1.Tcommon_,
+        max(jt2.Tlow_, jt1.Tlow_),
+        min(jt2.Thigh_, jt1.Thigh_),
+        jt2.Tcommon_,
         highCpCoeffs,
         lowCpCoeffs
     );
 }
 
 
-template<class EquationOfState>
-inline Foam::janafThermo<EquationOfState> Foam::operator*
-(
-    const scalar s,
-    const janafThermo<EquationOfState>& jt
-)
-{
-    return janafThermo<EquationOfState>
-    (
-        s*static_cast<const EquationOfState&>(jt),
-        jt.Tlow_,
-        jt.Thigh_,
-        jt.Tcommon_,
-        jt.highCpCoeffs_,
-        jt.lowCpCoeffs_
-    );
-}
-
-
-template<class EquationOfState>
-inline Foam::janafThermo<EquationOfState> Foam::operator==
-(
-    const janafThermo<EquationOfState>& jt1,
-    const janafThermo<EquationOfState>& jt2
-)
-{
-    return jt2 - jt1;
-}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/specie/thermo/sensibleEnthalpy/sensibleEnthalpy.H b/src/thermophysicalModels/specie/thermo/sensibleEnthalpy/sensibleEnthalpy.H
index 07cf5a27654..1b77cd40a69 100644
--- a/src/thermophysicalModels/specie/thermo/sensibleEnthalpy/sensibleEnthalpy.H
+++ b/src/thermophysicalModels/specie/thermo/sensibleEnthalpy/sensibleEnthalpy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,7 @@ Class
     Foam::sensibleEnthalpy
 
 Description
-    Thermodynamics mapping class to expose the sensible enthalpy function
-    as the standard enthalpy function h(T).
+    Thermodynamics mapping class to expose the sensible enthalpy functions.
 
 \*---------------------------------------------------------------------------*/
 
@@ -70,30 +69,19 @@ public:
                 return "h";
             }
 
-            // Sensible enthalpy [J/kmol]
-            scalar he
+            // Heat capacity at constant pressure [J/(kg K)]
+            scalar Cpv
             (
                 const Thermo& thermo,
                 const scalar p,
                 const scalar T
             ) const
             {
-                return thermo.hs(p, T);
+                return thermo.Cp(p, T);
             }
 
-            // Heat capacity at constant pressure [J/(kmol K)]
-            scalar cpv
-            (
-                const Thermo& thermo,
-                const scalar p,
-                const scalar T
-            ) const
-            {
-                return thermo.cp(p, T);
-            }
-
-            //- cp/cp []
-            scalar cpBycpv
+            //- Cp/Cp []
+            scalar CpByCpv
             (
                 const Thermo& thermo,
                 const scalar p,
diff --git a/src/thermophysicalModels/specie/thermo/sensibleInternalEnergy/sensibleInternalEnergy.H b/src/thermophysicalModels/specie/thermo/sensibleInternalEnergy/sensibleInternalEnergy.H
index b6b5889ff56..0922569c7d5 100644
--- a/src/thermophysicalModels/specie/thermo/sensibleInternalEnergy/sensibleInternalEnergy.H
+++ b/src/thermophysicalModels/specie/thermo/sensibleInternalEnergy/sensibleInternalEnergy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,8 @@ Class
     Foam::sensibleInternalEnergy
 
 Description
-    Thermodynamics mapping class to expose the sensible internal energy function
-    as the standard internal energy function e(T).
+    Thermodynamics mapping class to expose the sensible internal energy
+    functions.
 
 \*---------------------------------------------------------------------------*/
 
@@ -70,29 +70,19 @@ public:
                 return "e";
             }
 
-            //- Sensible Internal energy [J/kmol]
-            scalar he
-            (
-                const Thermo& thermo,
-                const scalar p,
-                const scalar T) const
-            {
-                return thermo.es(p, T);
-            }
-
-            //- Heat capacity at constant volume [J/(kmol K)]
-            scalar cpv
+            //- Heat capacity at constant volume [J/(kg K)]
+            scalar Cpv
             (
                 const Thermo& thermo,
                 const scalar p,
                 const scalar T
             ) const
             {
-                return thermo.cv(p, T);
+                return thermo.Cv(p, T);
             }
 
-            //- cp/cv []
-            scalar cpBycpv
+            //- Cp/Cv []
+            scalar CpByCpv
             (
                 const Thermo& thermo,
                 const scalar p,
diff --git a/src/thermophysicalModels/specie/thermo/thermo/thermo.H b/src/thermophysicalModels/specie/thermo/thermo/thermo.H
index 9820f114734..cc25cbaadf7 100644
--- a/src/thermophysicalModels/specie/thermo/thermo/thermo.H
+++ b/src/thermophysicalModels/specie/thermo/thermo/thermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,13 +59,6 @@ inline thermo<Thermo, Type> operator+
     const thermo<Thermo, Type>&
 );
 
-template<class Thermo, template<class> class Type>
-inline thermo<Thermo, Type> operator-
-(
-    const thermo<Thermo, Type>&,
-    const thermo<Thermo, Type>&
-);
-
 template<class Thermo, template<class> class Type>
 inline thermo<Thermo, Type> operator*
 (
@@ -154,102 +147,94 @@ public:
                 + Type<thermo<Thermo, Type>>::typeName();
         }
 
-        // Fundamental properties
-        // (These functions must be provided in derived types)
-
-            // Heat capacity at constant pressure [J/(kmol K)]
-            // scalar cp(const scalar) const;
+        //- Name of Enthalpy/Internal energy
+        static inline word heName();
 
-            // Absolute Enthalpy [J/kmol]
-            // scalar ha(const scalar) const;
 
-            // Sensible enthalpy [J/kmol]
-            // scalar hs(const scalar) const;
-
-            // Chemical enthalpy [J/kmol]
-            // scalar hc(const scalar) const;
+        // Fundamental properties
+        // (These functions must be provided in derived types)
 
-            // Entropy [J/(kmol K)]
-            // scalar s(const scalar) const;
+            // Heat capacity at constant pressure [J/(kg K)]
+            // inline scalar Cp(const scalar p, const scalar T) const;
 
+            // Sensible enthalpy [J/kg]
+            // inline scalar Hs(const scalar p, const scalar T) const;
 
-        // Calculate and return derived properties
-        // (These functions need not provided in derived types)
+            // Chemical enthalpy [J/kg]
+            // inline scalar Hc() const;
 
-            // Mole specific properties
+            // Absolute Enthalpy [J/kg]
+            // inline scalar Ha(const scalar p, const scalar T) const;
 
-                //- Name of Enthalpy/Internal energy
-                static inline word heName();
+            // Entropy [J/(kg K)]
+            // inline scalar S(const scalar p, const scalar T) const;
 
-                //- Enthalpy/Internal energy [J/kmol]
-                inline scalar he(const scalar p, const scalar T) const;
 
-                //- Heat capacity at constant volume [J/(kmol K)]
-                inline scalar cv(const scalar p, const scalar T) const;
+        // Mass specific derived properties
 
-                //- Heat capacity at constant pressure/volume [J/(kmol K)]
-                inline scalar cpv(const scalar p, const scalar T) const;
+            //- Heat capacity at constant volume [J/(kg K)]
+            inline scalar Cv(const scalar p, const scalar T) const;
 
-                //- Gamma = cp/cv []
-                inline scalar gamma(const scalar p, const scalar T) const;
+            //- Heat capacity at constant pressure/volume [J/(kg K)]
+            inline scalar Cpv(const scalar p, const scalar T) const;
 
-                //- Ratio of heat capacity at constant pressure to that at
-                //  constant pressure/volume []
-                inline scalar cpBycpv(const scalar p, const scalar T) const;
+            //- Gamma = Cp/Cv []
+            inline scalar gamma(const scalar p, const scalar T) const;
 
-                //- Sensible internal energy [J/kmol]
-                inline scalar es(const scalar p, const scalar T) const;
+            //- Ratio of heat capacity at constant pressure to that at
+            //  constant pressure/volume []
+            inline scalar CpByCpv(const scalar p, const scalar T) const;
 
-                //- Absolute internal energy [J/kmol]
-                inline scalar ea(const scalar p, const scalar T) const;
+            //- Enthalpy/Internal energy [J/kg]
+            inline scalar HE(const scalar p, const scalar T) const;
 
-                //- Gibbs free energy [J/kmol]
-                inline scalar g(const scalar p, const scalar T) const;
+            //- Sensible internal energy [J/kg]
+            inline scalar Es(const scalar p, const scalar T) const;
 
-                //- Helmholtz free energy [J/kmol]
-                inline scalar a(const scalar p, const scalar T) const;
+            //- Absolute internal energy [J/kg]
+            inline scalar Ea(const scalar p, const scalar T) const;
 
+            //- Gibbs free energy [J/kg]
+            inline scalar G(const scalar p, const scalar T) const;
 
-            // Mass specific properties
+            //- Helmholtz free energy [J/kg]
+            inline scalar A(const scalar p, const scalar T) const;
 
-                //- Heat capacity at constant pressure [J/(kg K)]
-                inline scalar Cp(const scalar p, const scalar T) const;
 
-                //- Heat capacity at constant volume [J/(kg K)]
-                inline scalar Cv(const scalar p, const scalar T) const;
+        // Mole specific derived properties
 
-                //- Heat capacity at constant pressure/volume [J/(kg K)]
-                inline scalar Cpv(const scalar p, const scalar T) const;
+            //- Heat capacity at constant pressure [J/(kmol K)]
+            inline scalar cp(const scalar p, const scalar T) const;
 
-                //- Enthalpy/Internal energy [J/kg]
-                inline scalar HE(const scalar p, const scalar T) const;
+            //- Absolute Enthalpy [J/kmol]
+            inline scalar ha(const scalar p, const scalar T) const;
 
-                //- Sensible enthalpy [J/kg]
-                inline scalar Hs(const scalar p, const scalar T) const;
+            //- Sensible enthalpy [J/kmol]
+            inline scalar hs(const scalar p, const scalar T) const;
 
-                //- Chemical enthalpy [J/kg]
-                inline scalar Hc() const;
+            //- Chemical enthalpy [J/kmol]
+            inline scalar hc() const;
 
-                //- Absolute Enthalpy [J/kg]
-                inline scalar Ha(const scalar p, const scalar T) const;
+            //- Entropy [J/(kmol K)]
+            inline scalar s(const scalar p, const scalar T) const;
 
-                //- Entropy [J/(kg K)]
-                inline scalar S(const scalar p, const scalar T) const;
+            //- Enthalpy/Internal energy [J/kmol]
+            inline scalar he(const scalar p, const scalar T) const;
 
-                //- Internal energy [J/kg]
-                inline scalar E(const scalar p, const scalar T) const;
+            //- Heat capacity at constant volume [J/(kmol K)]
+            inline scalar cv(const scalar p, const scalar T) const;
 
-                //- Sensible internal energy [J/kg]
-                inline scalar Es(const scalar p, const scalar T) const;
+            //- Sensible internal energy [J/kmol]
+            inline scalar es(const scalar p, const scalar T) const;
 
-                //- Absolute internal energy [J/kg]
-                inline scalar Ea(const scalar p, const scalar T) const;
+            //- Absolute internal energy [J/kmol]
+            inline scalar ea(const scalar p, const scalar T) const;
 
-                //- Gibbs free energy [J/kg]
-                inline scalar G(const scalar p, const scalar T) const;
+            //- Gibbs free energy [J/kmol]
+            inline scalar g(const scalar p, const scalar T) const;
 
-                //- Helmholtz free energy [J/kg]
-                inline scalar A(const scalar p, const scalar T) const;
+            //- Helmholtz free energy [J/kmol]
+            inline scalar a(const scalar p, const scalar T) const;
 
 
         // Equilibrium reaction thermodynamics
@@ -345,8 +330,6 @@ public:
     // Member operators
 
         inline void operator+=(const thermo&);
-        inline void operator-=(const thermo&);
-
         inline void operator*=(const scalar);
 
 
@@ -358,12 +341,6 @@ public:
             const thermo&
         );
 
-        friend thermo operator- <Thermo, Type>
-        (
-            const thermo&,
-            const thermo&
-        );
-
         friend thermo operator* <Thermo, Type>
         (
             const scalar s,
diff --git a/src/thermophysicalModels/specie/thermo/thermo/thermoI.H b/src/thermophysicalModels/specie/thermo/thermo/thermoI.H
index 669d7e7a217..cdaa3400762 100644
--- a/src/thermophysicalModels/specie/thermo/thermo/thermoI.H
+++ b/src/thermophysicalModels/specie/thermo/thermo/thermoI.H
@@ -106,25 +106,17 @@ Foam::species::thermo<Thermo, Type>::heName()
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::he(const scalar p, const scalar T) const
-{
-    return Type<thermo<Thermo, Type>>::he(*this, p, T);
-}
-
-
-template<class Thermo, template<class> class Type>
-inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::cv(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::Cv(const scalar p, const scalar T) const
 {
-    return this->cp(p, T) - this->cpMcv(p, T);
+    return this->Cp(p, T) - this->CpMCv(p, T);
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::cpv(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::Cpv(const scalar p, const scalar T) const
 {
-    return Type<thermo<Thermo, Type>>::cpv(*this, p, T);
+    return Type<thermo<Thermo, Type>>::Cpv(*this, p, T);
 }
 
 
@@ -132,155 +124,148 @@ template<class Thermo, template<class> class Type>
 inline Foam::scalar
 Foam::species::thermo<Thermo, Type>::gamma(const scalar p, const scalar T) const
 {
-    scalar cp = this->cp(p, T);
-    return cp/(cp - this->cpMcv(p, T));
+    const scalar Cp = this->Cp(p, T);
+    return Cp/(Cp - this->CpMCv(p, T));
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::cpBycpv
+Foam::species::thermo<Thermo, Type>::CpByCpv
 (
     const scalar p,
     const scalar T
 ) const
 {
-    return Type<thermo<Thermo, Type>>::cpBycpv(*this, p, T);
+    return Type<thermo<Thermo, Type>>::CpByCpv(*this, p, T);
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::es(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::HE(const scalar p, const scalar T) const
 {
-    return this->hs(p, T) - p*this->W()/this->rho(p, T);
+    return Type<thermo<Thermo, Type>>::HE(*this, p, T);
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::ea(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::Es(const scalar p, const scalar T) const
 {
-    return this->ha(p, T) - p*this->W()/this->rho(p, T);
+    return this->Hs(p, T) - p/this->rho(p, T);
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::g(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::Ea(const scalar p, const scalar T) const
 {
-    return this->ha(p, T) - T*this->s(p, T);
+    return this->Ha(p, T) - p/this->rho(p, T);
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::a(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::G(const scalar p, const scalar T) const
 {
-    return this->ea(p, T) - T*this->s(p, T);
+    return this->Ha(p, T) - T*this->S(p, T);
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Cpv(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::A(const scalar p, const scalar T) const
 {
-    return this->cpv(p, T)/this->W();
+    return this->Ea(p, T) - T*this->S(p, T);
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Cp(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::cp(const scalar p, const scalar T) const
 {
-    return this->cp(p, T)/this->W();
+    return this->Cp(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Cv(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::ha(const scalar p, const scalar T) const
 {
-    return this->cv(p, T)/this->W();
+    return this->Ha(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::HE(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::hs(const scalar p, const scalar T) const
 {
-    return Type<thermo<Thermo, Type>>::HE(*this, p, T);
+    return this->Hs(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Hs(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::hc() const
 {
-    return this->hs(p, T)/this->W();
+    return this->Hc()*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Hc() const
+Foam::species::thermo<Thermo, Type>::s(const scalar p, const scalar T) const
 {
-    return this->hc()/this->W();
+    return this->S(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Ha(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::he(const scalar p, const scalar T) const
 {
-    return this->ha(p, T)/this->W();
+    return this->HE(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::S(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::cv(const scalar p, const scalar T) const
 {
-    return this->s(p, T)/this->W();
+    return this->Cv(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::E(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::es(const scalar p, const scalar T) const
 {
-    return this->e(p, T)/this->W();
+    return this->Es(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Es(const scalar p, const scalar T) const
-{
-    return this->es(p, T)/this->W();
-}
-
-template<class Thermo, template<class> class Type>
-inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::Ea(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::ea(const scalar p, const scalar T) const
 {
-    return this->ea(p, T)/this->W();
+    return this->Ea(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::G(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::g(const scalar p, const scalar T) const
 {
-    return this->g(p, T)/this->W();
+    return this->G(p, T)*this->W();
 }
 
 
 template<class Thermo, template<class> class Type>
 inline Foam::scalar
-Foam::species::thermo<Thermo, Type>::A(const scalar p, const scalar T) const
+Foam::species::thermo<Thermo, Type>::a(const scalar p, const scalar T) const
 {
-    return this->a(p, T)/this->W();
+    return this->A(p, T)*this->W();
 }
 
 
@@ -288,9 +273,9 @@ template<class Thermo, template<class> class Type>
 inline Foam::scalar
 Foam::species::thermo<Thermo, Type>::K(const scalar p, const scalar T) const
 {
-    scalar arg = -this->nMoles()*this->g(Pstd, T)/(RR*T);
+    scalar arg = -this->Y()*this->G(Pstd, T)/(RR*T);
 
-    if (arg < 600.0)
+    if (arg < 600)
     {
         return exp(arg);
     }
@@ -313,13 +298,15 @@ template<class Thermo, template<class> class Type>
 inline Foam::scalar
 Foam::species::thermo<Thermo, Type>::Kc(const scalar p, const scalar T) const
 {
-    if (equal(this->nMoles(), SMALL))
+    const scalar nm = this->Y()/this->W();
+
+    if (equal(nm, SMALL))
     {
         return Kp(p, T);
     }
     else
     {
-        return Kp(p, T)*pow(Pstd/(RR*T), this->nMoles());
+        return Kp(p, T)*pow(Pstd/(RR*T), nm);
     }
 }
 
@@ -331,13 +318,15 @@ inline Foam::scalar Foam::species::thermo<Thermo, Type>::Kx
     const scalar T
 ) const
 {
-    if (equal(this->nMoles(), SMALL))
+    const scalar nm = this->Y()/this->W();
+
+    if (equal(nm, SMALL))
     {
         return Kp(p, T);
     }
     else
     {
-        return Kp(p, T)*pow(Pstd/p, this->nMoles());
+        return Kp(p, T)*pow(Pstd/p, nm);
     }
 }
 
@@ -350,13 +339,15 @@ inline Foam::scalar Foam::species::thermo<Thermo, Type>::Kn
     const scalar n
 ) const
 {
-    if (equal(this->nMoles(), SMALL))
+    const scalar nm = this->Y()/this->W();
+
+    if (equal(nm, SMALL))
     {
         return Kp(p, T);
     }
     else
     {
-        return Kp(p, T)*pow(n*Pstd/p, this->nMoles());
+        return Kp(p, T)*pow(n*Pstd/p, nm);
     }
 }
 
@@ -465,16 +456,6 @@ inline void Foam::species::thermo<Thermo, Type>::operator+=
 }
 
 
-template<class Thermo, template<class> class Type>
-inline void Foam::species::thermo<Thermo, Type>::operator-=
-(
-    const thermo<Thermo, Type>& st
-)
-{
-    Thermo::operator-=(st);
-}
-
-
 template<class Thermo, template<class> class Type>
 inline void Foam::species::thermo<Thermo, Type>::operator*=(const scalar s)
 {
@@ -498,20 +479,6 @@ inline Foam::species::thermo<Thermo, Type> Foam::species::operator+
 }
 
 
-template<class Thermo, template<class> class Type>
-inline Foam::species::thermo<Thermo, Type> Foam::species::operator-
-(
-    const thermo<Thermo, Type>& st1,
-    const thermo<Thermo, Type>& st2
-)
-{
-    return thermo<Thermo, Type>
-    (
-        static_cast<const Thermo&>(st1) - static_cast<const Thermo&>(st2)
-    );
-}
-
-
 template<class Thermo, template<class> class Type>
 inline Foam::species::thermo<Thermo, Type> Foam::species::operator*
 (
@@ -533,7 +500,10 @@ inline Foam::species::thermo<Thermo, Type> Foam::species::operator==
     const thermo<Thermo, Type>& st2
 )
 {
-    return st2 - st1;
+    return thermo<Thermo, Type>
+    (
+        static_cast<const Thermo&>(st1) == static_cast<const Thermo&>(st2)
+    );
 }
 
 
diff --git a/src/thermophysicalModels/specie/transport/const/constTransport.H b/src/thermophysicalModels/specie/transport/const/constTransport.H
index 2c2e691bf2b..2c4be8d4d36 100644
--- a/src/thermophysicalModels/specie/transport/const/constTransport.H
+++ b/src/thermophysicalModels/specie/transport/const/constTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,13 +54,6 @@ inline constTransport<Thermo> operator+
     const constTransport<Thermo>&
 );
 
-template<class Thermo>
-inline constTransport<Thermo> operator-
-(
-    const constTransport<Thermo>&,
-    const constTransport<Thermo>&
-);
-
 template<class Thermo>
 inline constTransport<Thermo> operator*
 (
@@ -68,13 +61,6 @@ inline constTransport<Thermo> operator*
     const constTransport<Thermo>&
 );
 
-template<class Thermo>
-inline constTransport<Thermo> operator==
-(
-    const constTransport<Thermo>&,
-    const constTransport<Thermo>&
-);
-
 template<class Thermo>
 Ostream& operator<<
 (
@@ -165,8 +151,6 @@ public:
 
         inline void operator+=(const constTransport&);
 
-        inline void operator-=(const constTransport&);
-
         inline void operator*=(const scalar);
 
 
@@ -178,24 +162,12 @@ public:
             const constTransport&
         );
 
-        friend constTransport operator- <Thermo>
-        (
-            const constTransport&,
-            const constTransport&
-        );
-
         friend constTransport operator* <Thermo>
         (
             const scalar,
             const constTransport&
         );
 
-        friend constTransport operator== <Thermo>
-        (
-            const constTransport&,
-            const constTransport&
-        );
-
 
     // Ostream Operator
 
diff --git a/src/thermophysicalModels/specie/transport/const/constTransportI.H b/src/thermophysicalModels/specie/transport/const/constTransportI.H
index 6c304476fd2..71a21021793 100644
--- a/src/thermophysicalModels/specie/transport/const/constTransportI.H
+++ b/src/thermophysicalModels/specie/transport/const/constTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -147,38 +147,17 @@ inline void Foam::constTransport<Thermo>::operator+=
     const constTransport<Thermo>& st
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     Thermo::operator+=(st);
 
-    if (mag(molr1) + mag(st.nMoles()) > SMALL)
+    if (mag(this->Y()) > SMALL)
     {
-        molr1 /= this->nMoles();
-        scalar molr2 = st.nMoles()/this->nMoles();
+        Y1 /= this->Y();
+        scalar Y2 = st.Y()/this->Y();
 
-        mu_ = molr1*mu_ + molr2*st.mu_;
-        rPr_ = 1.0/(molr1/rPr_ + molr2/st.rPr_);
-    }
-}
-
-
-template<class Thermo>
-inline void Foam::constTransport<Thermo>::operator-=
-(
-    const constTransport<Thermo>& st
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Thermo::operator-=(st);
-
-    if (mag(molr1) + mag(st.nMoles()) > SMALL)
-    {
-        molr1 /= this->nMoles();
-        scalar molr2 = st.nMoles()/this->nMoles();
-
-        mu_ = molr1*mu_ - molr2*st.mu_;
-        rPr_ = 1.0/(molr1/rPr_ - molr2/st.rPr_);
+        mu_ = Y1*mu_ + Y2*st.mu_;
+        rPr_ = 1.0/(Y1/rPr_ + Y2/st.rPr_);
     }
 }
 
@@ -207,7 +186,7 @@ inline Foam::constTransport<Thermo> Foam::operator+
         static_cast<const Thermo&>(ct1) + static_cast<const Thermo&>(ct2)
     );
 
-    if (mag(ct1.nMoles()) + mag(ct2.nMoles()) < SMALL)
+    if (mag(t.Y()) < SMALL)
     {
         return constTransport<Thermo>
         (
@@ -218,50 +197,14 @@ inline Foam::constTransport<Thermo> Foam::operator+
     }
     else
     {
-        scalar molr1 = ct1.nMoles()/t.nMoles();
-        scalar molr2 = ct2.nMoles()/t.nMoles();
+        scalar Y1 = ct1.Y()/t.Y();
+        scalar Y2 = ct2.Y()/t.Y();
 
         return constTransport<Thermo>
         (
             t,
-            molr1*ct1.mu_ + molr2*ct2.mu_,
-            1.0/(molr1/ct1.rPr_ + molr2/ct2.rPr_)
-        );
-    }
-}
-
-
-template<class Thermo>
-inline Foam::constTransport<Thermo> Foam::operator-
-(
-    const constTransport<Thermo>& ct1,
-    const constTransport<Thermo>& ct2
-)
-{
-    Thermo t
-    (
-        static_cast<const Thermo&>(ct1) - static_cast<const Thermo&>(ct2)
-    );
-
-    if (mag(ct1.nMoles()) + mag(ct2.nMoles()) < SMALL)
-    {
-        return constTransport<Thermo>
-        (
-            t,
-            0,
-            ct1.rPr_
-        );
-    }
-    else
-    {
-        scalar molr1 = ct1.nMoles()/t.nMoles();
-        scalar molr2 = ct2.nMoles()/t.nMoles();
-
-        return constTransport<Thermo>
-        (
-            t,
-            molr1*ct1.mu_ - molr2*ct2.mu_,
-            1.0/(molr1/ct1.rPr_ - molr2/ct2.rPr_)
+            Y1*ct1.mu_ + Y2*ct2.mu_,
+            1.0/(Y1/ct1.rPr_ + Y2/ct2.rPr_)
         );
     }
 }
@@ -283,15 +226,4 @@ inline Foam::constTransport<Thermo> Foam::operator*
 }
 
 
-template<class Thermo>
-inline Foam::constTransport<Thermo> Foam::operator==
-(
-    const constTransport<Thermo>& ct1,
-    const constTransport<Thermo>& ct2
-)
-{
-    return ct2 - ct1;
-}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C
index b1fd1f82166..0d53683fce3 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,10 +37,7 @@ Foam::logPolynomialTransport<Thermo, PolySize>::logPolynomialTransport
     Thermo(is),
     muCoeffs_("muLogCoeffs<" + Foam::name(PolySize) + '>', is),
     kappaCoeffs_("kappaLogCoeffs<" + Foam::name(PolySize) + '>', is)
-{
-    muCoeffs_ *= this->W();
-    kappaCoeffs_ *= this->W();
-}
+{}
 
 
 template<class Thermo, int PolySize>
@@ -64,10 +61,7 @@ Foam::logPolynomialTransport<Thermo, PolySize>::logPolynomialTransport
             "kappaLogCoeffs<" + Foam::name(PolySize) + '>'
         )
     )
-{
-    muCoeffs_ *= this->W();
-    kappaCoeffs_ *= this->W();
-}
+{}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -84,12 +78,12 @@ void Foam::logPolynomialTransport<Thermo, PolySize>::write(Ostream& os) const
     dict.add
     (
         word("muLogCoeffs<" + Foam::name(PolySize) + '>'),
-        muCoeffs_/this->W()
+        muCoeffs_
     );
     dict.add
     (
         word("kappaLogCoeffs<" + Foam::name(PolySize) + '>'),
-        kappaCoeffs_/this->W()
+        kappaCoeffs_
     );
     os  << indent << dict.dictName() << dict;
 
@@ -108,9 +102,9 @@ Foam::Ostream& Foam::operator<<
 {
     os  << static_cast<const Thermo&>(pt) << tab
         << "muLogCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.muCoeffs_/pt.W() << tab
+        << pt.muCoeffs_ << tab
         << "kappaLogCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.kappaCoeffs_/pt.W();
+        << pt.kappaCoeffs_;
 
     os.check
     (
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
index 65f7ba6617c..01b4fc9f336 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -99,13 +99,6 @@ inline logPolynomialTransport<Thermo, PolySize> operator+
     const logPolynomialTransport<Thermo, PolySize>&
 );
 
-template<class Thermo, int PolySize>
-inline logPolynomialTransport<Thermo, PolySize> operator-
-(
-    const logPolynomialTransport<Thermo, PolySize>&,
-    const logPolynomialTransport<Thermo, PolySize>&
-);
-
 template<class Thermo, int PolySize>
 inline logPolynomialTransport<Thermo, PolySize> operator*
 (
@@ -113,13 +106,6 @@ inline logPolynomialTransport<Thermo, PolySize> operator*
     const logPolynomialTransport<Thermo, PolySize>&
 );
 
-template<class Thermo, int PolySize>
-inline logPolynomialTransport<Thermo, PolySize> operator==
-(
-    const logPolynomialTransport<Thermo, PolySize>&,
-    const logPolynomialTransport<Thermo, PolySize>&
-);
-
 template<class Thermo, int PolySize>
 Ostream& operator<<
 (
@@ -219,8 +205,9 @@ public:
     // Member operators
 
         inline void operator=(const logPolynomialTransport&);
+
         inline void operator+=(const logPolynomialTransport&);
-        inline void operator-=(const logPolynomialTransport&);
+
         inline void operator*=(const scalar);
 
 
@@ -232,24 +219,12 @@ public:
             const logPolynomialTransport&
         );
 
-        friend logPolynomialTransport operator- <Thermo, PolySize>
-        (
-            const logPolynomialTransport&,
-            const logPolynomialTransport&
-        );
-
         friend logPolynomialTransport operator* <Thermo, PolySize>
         (
             const scalar,
             const logPolynomialTransport&
         );
 
-        friend logPolynomialTransport operator== <Thermo, PolySize>
-        (
-            const logPolynomialTransport&,
-            const logPolynomialTransport&
-        );
-
 
     // Ostream Operator
 
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
index 4fb373c8939..514d243dec8 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,7 +108,7 @@ inline Foam::scalar Foam::logPolynomialTransport<Thermo, PolySize>::mu
     const scalar T
 ) const
 {
-    return exp(muCoeffs_.value(log(T))/this->W());
+    return exp(muCoeffs_.value(log(T)));
 }
 
 
@@ -119,7 +119,7 @@ inline Foam::scalar Foam::logPolynomialTransport<Thermo, PolySize>::kappa
     const scalar T
 ) const
 {
-    return exp(kappaCoeffs_.value(log(T))/this->W());
+    return exp(kappaCoeffs_.value(log(T)));
 }
 
 
@@ -154,33 +154,18 @@ inline void Foam::logPolynomialTransport<Thermo, PolySize>::operator+=
     const logPolynomialTransport<Thermo, PolySize>& pt
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     Thermo::operator+=(pt);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        scalar Y2 = pt.Y()/this->Y();
 
-    muCoeffs_ = molr1*muCoeffs_ + molr2*pt.muCoeffs_;
-    kappaCoeffs_ = molr1*kappaCoeffs_ + molr2*pt.kappaCoeffs_;
-}
-
-
-template<class Thermo, int PolySize>
-inline void Foam::logPolynomialTransport<Thermo, PolySize>::operator-=
-(
-    const logPolynomialTransport<Thermo, PolySize>& pt
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Thermo::operator-=(pt);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
-
-    muCoeffs_ = molr1*muCoeffs_ - molr2*pt.muCoeffs_;
-    kappaCoeffs_ = molr1*kappaCoeffs_ - molr2*pt.kappaCoeffs_;
+        muCoeffs_ = Y1*muCoeffs_ + Y2*pt.muCoeffs_;
+        kappaCoeffs_ = Y1*kappaCoeffs_ + Y2*pt.kappaCoeffs_;
+    }
 }
 
 
@@ -208,39 +193,28 @@ inline Foam::logPolynomialTransport<Thermo, PolySize> Foam::operator+
         static_cast<const Thermo&>(pt1) + static_cast<const Thermo&>(pt2)
     );
 
-    scalar molr1 = pt1.nMoles()/t.nMoles();
-    scalar molr2 = pt2.nMoles()/t.nMoles();
-
-    return logPolynomialTransport<Thermo, PolySize>
-    (
-        t,
-        molr1*pt1.muCoeffs_ + molr2*pt2.muCoeffs_,
-        molr1*pt1.kappaCoeffs_ + molr2*pt2.kappaCoeffs_
-    );
-}
-
-
-template<class Thermo, int PolySize>
-inline Foam::logPolynomialTransport<Thermo, PolySize> Foam::operator-
-(
-    const logPolynomialTransport<Thermo, PolySize>& pt1,
-    const logPolynomialTransport<Thermo, PolySize>& pt2
-)
-{
-    Thermo t
-    (
-        static_cast<const Thermo&>(pt1) - static_cast<const Thermo&>(pt2)
-    );
-
-    scalar molr1 = pt1.nMoles()/t.nMoles();
-    scalar molr2 = pt2.nMoles()/t.nMoles();
-
-    return logPolynomialTransport<Thermo, PolySize>
-    (
-        t,
-        molr1*pt1.muCoeffs_ - molr2*pt2.muCoeffs_,
-        molr1*pt1.kappaCoeffs_ - molr2*pt2.kappaCoeffs_
-    );
+    if (mag(t.Y()) < SMALL)
+    {
+        return logPolynomialTransport<Thermo>
+        (
+            t,
+            0,
+            pt1.muCoeffs_,
+            pt1.kappaCoeffs_
+        );
+    }
+    else
+    {
+        scalar Y1 = pt1.Y()/t.Y();
+        scalar Y2 = pt2.Y()/t.Y();
+
+        return logPolynomialTransport<Thermo, PolySize>
+        (
+            t,
+            Y1*pt1.muCoeffs_ + Y2*pt2.muCoeffs_,
+            Y1*pt1.kappaCoeffs_ + Y2*pt2.kappaCoeffs_
+        );
+    }
 }
 
 
@@ -260,15 +234,4 @@ inline Foam::logPolynomialTransport<Thermo, PolySize> Foam::operator*
 }
 
 
-template<class Thermo, int PolySize>
-inline Foam::logPolynomialTransport<Thermo, PolySize> Foam::operator==
-(
-    const logPolynomialTransport<Thermo, PolySize>& pt1,
-    const logPolynomialTransport<Thermo, PolySize>& pt2
-)
-{
-    return pt2 - pt1;
-}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C
index 32640927d95..adcc8485d19 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,10 +34,7 @@ Foam::polynomialTransport<Thermo, PolySize>::polynomialTransport(Istream& is)
     Thermo(is),
     muCoeffs_("muCoeffs<" + Foam::name(PolySize) + '>', is),
     kappaCoeffs_("kappaCoeffs<" + Foam::name(PolySize) + '>', is)
-{
-    muCoeffs_ *= this->W();
-    kappaCoeffs_ *= this->W();
-}
+{}
 
 
 template<class Thermo, int PolySize>
@@ -61,10 +58,7 @@ Foam::polynomialTransport<Thermo, PolySize>::polynomialTransport
             "kappaCoeffs<" + Foam::name(PolySize) + '>'
         )
     )
-{
-    muCoeffs_ *= this->W();
-    kappaCoeffs_ *= this->W();
-}
+{}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -81,12 +75,12 @@ void Foam::polynomialTransport<Thermo, PolySize>::write(Ostream& os) const
     dict.add
     (
         word("muCoeffs<" + Foam::name(PolySize) + '>'),
-        muCoeffs_/this->W()
+        muCoeffs_
     );
     dict.add
     (
         word("kappaCoeffs<" + Foam::name(PolySize) + '>'),
-        kappaCoeffs_/this->W()
+        kappaCoeffs_
     );
     os  << indent << dict.dictName() << dict;
 
@@ -105,9 +99,9 @@ Foam::Ostream& Foam::operator<<
 {
     os  << static_cast<const Thermo&>(pt) << tab
         << "muCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.muCoeffs_/pt.W() << tab
+        << pt.muCoeffs_ << tab
         << "kappaCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.kappaCoeffs_/pt.W();
+        << pt.kappaCoeffs_;
 
     os.check
     (
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
index 8f7e39b1fbb..8b7c95cedc6 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -90,13 +90,6 @@ inline polynomialTransport<Thermo, PolySize> operator+
     const polynomialTransport<Thermo, PolySize>&
 );
 
-template<class Thermo, int PolySize>
-inline polynomialTransport<Thermo, PolySize> operator-
-(
-    const polynomialTransport<Thermo, PolySize>&,
-    const polynomialTransport<Thermo, PolySize>&
-);
-
 template<class Thermo, int PolySize>
 inline polynomialTransport<Thermo, PolySize> operator*
 (
@@ -104,13 +97,6 @@ inline polynomialTransport<Thermo, PolySize> operator*
     const polynomialTransport<Thermo, PolySize>&
 );
 
-template<class Thermo, int PolySize>
-inline polynomialTransport<Thermo, PolySize> operator==
-(
-    const polynomialTransport<Thermo, PolySize>&,
-    const polynomialTransport<Thermo, PolySize>&
-);
-
 template<class Thermo, int PolySize>
 Ostream& operator<<
 (
@@ -201,8 +187,9 @@ public:
     // Member operators
 
         inline void operator=(const polynomialTransport&);
+
         inline void operator+=(const polynomialTransport&);
-        inline void operator-=(const polynomialTransport&);
+
         inline void operator*=(const scalar);
 
 
@@ -214,24 +201,12 @@ public:
             const polynomialTransport&
         );
 
-        friend polynomialTransport operator- <Thermo, PolySize>
-        (
-            const polynomialTransport&,
-            const polynomialTransport&
-        );
-
         friend polynomialTransport operator* <Thermo, PolySize>
         (
             const scalar,
             const polynomialTransport&
         );
 
-        friend polynomialTransport operator== <Thermo, PolySize>
-        (
-            const polynomialTransport&,
-            const polynomialTransport&
-        );
-
 
     // Ostream Operator
 
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
index ca82f18d862..501c9f0633f 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,7 +108,7 @@ inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::mu
     const scalar T
 ) const
 {
-    return muCoeffs_.value(T)/this->W();
+    return muCoeffs_.value(T);
 }
 
 
@@ -119,7 +119,7 @@ inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::kappa
     const scalar T
 ) const
 {
-    return kappaCoeffs_.value(T)/this->W();
+    return kappaCoeffs_.value(T);
 }
 
 
@@ -154,33 +154,18 @@ inline void Foam::polynomialTransport<Thermo, PolySize>::operator+=
     const polynomialTransport<Thermo, PolySize>& pt
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     Thermo::operator+=(pt);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        scalar Y2 = pt.Y()/this->Y();
 
-    muCoeffs_ = molr1*muCoeffs_ + molr2*pt.muCoeffs_;
-    kappaCoeffs_ = molr1*kappaCoeffs_ + molr2*pt.kappaCoeffs_;
-}
-
-
-template<class Thermo, int PolySize>
-inline void Foam::polynomialTransport<Thermo, PolySize>::operator-=
-(
-    const polynomialTransport<Thermo, PolySize>& pt
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Thermo::operator-=(pt);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = pt.nMoles()/this->nMoles();
-
-    muCoeffs_ = molr1*muCoeffs_ - molr2*pt.muCoeffs_;
-    kappaCoeffs_ = molr1*kappaCoeffs_ - molr2*pt.kappaCoeffs_;
+        muCoeffs_ = Y1*muCoeffs_ + Y2*pt.muCoeffs_;
+        kappaCoeffs_ = Y1*kappaCoeffs_ + Y2*pt.kappaCoeffs_;
+    }
 }
 
 
@@ -208,39 +193,28 @@ inline Foam::polynomialTransport<Thermo, PolySize> Foam::operator+
         static_cast<const Thermo&>(pt1) + static_cast<const Thermo&>(pt2)
     );
 
-    scalar molr1 = pt1.nMoles()/t.nMoles();
-    scalar molr2 = pt2.nMoles()/t.nMoles();
-
-    return polynomialTransport<Thermo, PolySize>
-    (
-        t,
-        molr1*pt1.muCoeffs_ + molr2*pt2.muCoeffs_,
-        molr1*pt1.kappaCoeffs_ + molr2*pt2.kappaCoeffs_
-    );
-}
-
-
-template<class Thermo, int PolySize>
-inline Foam::polynomialTransport<Thermo, PolySize> Foam::operator-
-(
-    const polynomialTransport<Thermo, PolySize>& pt1,
-    const polynomialTransport<Thermo, PolySize>& pt2
-)
-{
-    Thermo t
-    (
-        static_cast<const Thermo&>(pt1) - static_cast<const Thermo&>(pt2)
-    );
-
-    scalar molr1 = pt1.nMoles()/t.nMoles();
-    scalar molr2 = pt2.nMoles()/t.nMoles();
-
-    return polynomialTransport<Thermo, PolySize>
-    (
-        t,
-        molr1*pt1.muCoeffs_ - molr2*pt2.muCoeffs_,
-        molr1*pt1.kappaCoeffs_ - molr2*pt2.kappaCoeffs_
-    );
+    if (mag(t.Y()) < SMALL)
+    {
+        return polynomialTransport<Thermo>
+        (
+            t,
+            0,
+            pt1.muCoeffs_,
+            pt1.kappaCoeffs_
+        );
+    }
+    else
+    {
+        scalar Y1 = pt1.Y()/t.Y();
+        scalar Y2 = pt2.Y()/t.Y();
+
+        return polynomialTransport<Thermo, PolySize>
+        (
+            t,
+            Y1*pt1.muCoeffs_ + Y2*pt2.muCoeffs_,
+            Y1*pt1.kappaCoeffs_ + Y2*pt2.kappaCoeffs_
+        );
+    }
 }
 
 
@@ -260,15 +234,4 @@ inline Foam::polynomialTransport<Thermo, PolySize> Foam::operator*
 }
 
 
-template<class Thermo, int PolySize>
-inline Foam::polynomialTransport<Thermo, PolySize> Foam::operator==
-(
-    const polynomialTransport<Thermo, PolySize>& pt1,
-    const polynomialTransport<Thermo, PolySize>& pt2
-)
-{
-    return pt2 - pt1;
-}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H
index 3c926eb0052..1acc05bcc57 100644
--- a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H
+++ b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,13 +60,6 @@ inline sutherlandTransport<Thermo> operator+
     const sutherlandTransport<Thermo>&
 );
 
-template<class Thermo>
-inline sutherlandTransport<Thermo> operator-
-(
-    const sutherlandTransport<Thermo>&,
-    const sutherlandTransport<Thermo>&
-);
-
 template<class Thermo>
 inline sutherlandTransport<Thermo> operator*
 (
@@ -74,13 +67,6 @@ inline sutherlandTransport<Thermo> operator*
     const sutherlandTransport<Thermo>&
 );
 
-template<class Thermo>
-inline sutherlandTransport<Thermo> operator==
-(
-    const sutherlandTransport<Thermo>&,
-    const sutherlandTransport<Thermo>&
-);
-
 template<class Thermo>
 Ostream& operator<<
 (
@@ -190,8 +176,6 @@ public:
 
         inline void operator+=(const sutherlandTransport&);
 
-        inline void operator-=(const sutherlandTransport&);
-
         inline void operator*=(const scalar);
 
 
@@ -203,24 +187,12 @@ public:
             const sutherlandTransport&
         );
 
-        friend sutherlandTransport operator- <Thermo>
-        (
-            const sutherlandTransport&,
-            const sutherlandTransport&
-        );
-
         friend sutherlandTransport operator* <Thermo>
         (
             const scalar,
             const sutherlandTransport&
         );
 
-        friend sutherlandTransport operator== <Thermo>
-        (
-            const sutherlandTransport&,
-            const sutherlandTransport&
-        );
-
 
     // Ostream Operator
 
diff --git a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
index 60ce87da8c5..71b4449079a 100644
--- a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
+++ b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -183,33 +183,18 @@ inline void Foam::sutherlandTransport<Thermo>::operator+=
     const sutherlandTransport<Thermo>& st
 )
 {
-    scalar molr1 = this->nMoles();
+    scalar Y1 = this->Y();
 
     Thermo::operator+=(st);
 
-    molr1 /= this->nMoles();
-    scalar molr2 = st.nMoles()/this->nMoles();
+    if (mag(this->Y()) > SMALL)
+    {
+        Y1 /= this->Y();
+        scalar Y2 = st.Y()/this->Y();
 
-    As_ = molr1*As_ + molr2*st.As_;
-    Ts_ = molr1*Ts_ + molr2*st.Ts_;
-}
-
-
-template<class Thermo>
-inline void Foam::sutherlandTransport<Thermo>::operator-=
-(
-    const sutherlandTransport<Thermo>& st
-)
-{
-    scalar molr1 = this->nMoles();
-
-    Thermo::operator-=(st);
-
-    molr1 /= this->nMoles();
-    scalar molr2 = st.nMoles()/this->nMoles();
-
-    As_ = molr1*As_ - molr2*st.As_;
-    Ts_ = molr1*Ts_ - molr2*st.Ts_;
+        As_ = Y1*As_ + Y2*st.As_;
+        Ts_ = Y1*Ts_ + Y2*st.Ts_;
+    }
 }
 
 
@@ -237,39 +222,28 @@ inline Foam::sutherlandTransport<Thermo> Foam::operator+
         static_cast<const Thermo&>(st1) + static_cast<const Thermo&>(st2)
     );
 
-    scalar molr1 = st1.nMoles()/t.nMoles();
-    scalar molr2 = st2.nMoles()/t.nMoles();
-
-    return sutherlandTransport<Thermo>
-    (
-        t,
-        molr1*st1.As_ + molr2*st2.As_,
-        molr1*st1.Ts_ + molr2*st2.Ts_
-    );
-}
-
-
-template<class Thermo>
-inline Foam::sutherlandTransport<Thermo> Foam::operator-
-(
-    const sutherlandTransport<Thermo>& st1,
-    const sutherlandTransport<Thermo>& st2
-)
-{
-    Thermo t
-    (
-        static_cast<const Thermo&>(st1) - static_cast<const Thermo&>(st2)
-    );
-
-    scalar molr1 = st1.nMoles()/t.nMoles();
-    scalar molr2 = st2.nMoles()/t.nMoles();
-
-    return sutherlandTransport<Thermo>
-    (
-        t,
-        molr1*st1.As_ - molr2*st2.As_,
-        molr1*st1.Ts_ - molr2*st2.Ts_
-    );
+    if (mag(t.Y()) < SMALL)
+    {
+        return sutherlandTransport<Thermo>
+        (
+            t,
+            0,
+            st1.As_,
+            st1.Ts_
+        );
+    }
+    else
+    {
+        scalar Y1 = st1.Y()/t.Y();
+        scalar Y2 = st2.Y()/t.Y();
+
+        return sutherlandTransport<Thermo>
+        (
+            t,
+            Y1*st1.As_ + Y2*st2.As_,
+            Y1*st1.Ts_ + Y2*st2.Ts_
+        );
+    }
 }
 
 
@@ -289,15 +263,4 @@ inline Foam::sutherlandTransport<Thermo> Foam::operator*
 }
 
 
-template<class Thermo>
-inline Foam::sutherlandTransport<Thermo> Foam::operator==
-(
-    const sutherlandTransport<Thermo>& st1,
-    const sutherlandTransport<Thermo>& st2
-)
-{
-    return st2 - st1;
-}
-
-
 // ************************************************************************* //
diff --git a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
index f2bfd9fb9bf..93db588c6f7 100644
--- a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
+++ b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
@@ -32,7 +32,6 @@ fuel
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0962;
     }
     thermodynamics
@@ -55,7 +54,6 @@ oxidant
 {
     specie
     {
-        nMoles          1;
         molWeight       28.8504;
     }
     thermodynamics
@@ -77,7 +75,6 @@ burntProducts
 {
     specie
     {
-        nMoles         1;
         molWeight      28.3233;
     }
     thermodynamics
diff --git a/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties
index e6e3ab3a222..8489c7fa7dc 100644
--- a/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties
+++ b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties
@@ -19,32 +19,43 @@ thermoType
 {
     type            heheuPsiThermo;
     mixture         homogeneousMixture;
-    transport       sutherland;
+    transport       const;
     thermo          janaf;
     equationOfState perfectGas;
     specie          specie;
     energy          absoluteEnthalpy;
 }
 
-stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.675;
+stoichiometricAirFuelMassRatio
+    stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.675;
 
 reactants
 {
     specie
     {
-        nMoles          24.8095;
         molWeight       29.4649;
     }
     thermodynamics
     {
         Tlow            200;
-        Thigh           5000;
+        Thigh           6000;
         Tcommon         1000;
-        highCpCoeffs    ( 3.28069 0.00195035 -6.53483e-07 1.00239e-10 -5.64653e-15 -1609.55 4.41496 );
-        lowCpCoeffs     ( 3.47696 0.000367499 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075 );
+        highCpCoeffs
+        (
+            3.24515 0.00202212 -6.98806e-07 1.11477e-10
+            -6.60444e-15 -1601.58 4.60831
+        );
+        lowCpCoeffs
+        (
+            3.60909 -0.000628822 4.45105e-06 -3.81328e-09
+            1.0553e-12 -1587.86 3.21309
+        );
     }
     transport
     {
+        mu              1e-5;
+        Pr              1;
+
         As              1.67212e-06;
         Ts              170.672;
     }
@@ -54,19 +65,29 @@ products
 {
     specie
     {
-        nMoles          1;
         molWeight       28.3233;
     }
     thermodynamics
     {
         Tlow            200;
-        Thigh           5000;
+        Thigh           6000;
         Tcommon         1000;
-        highCpCoeffs    ( 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 );
-        lowCpCoeffs     ( 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 );
+        highCpCoeffs
+        (
+            3.10561 0.00179748 -5.94701e-07 9.05612e-11
+            -5.08447e-15 -11003.6 5.12109
+        );
+        lowCpCoeffs
+        (
+            3.498 0.000638554 -1.83885e-07 1.20991e-09
+            -7.68702e-13 -11080.6 3.1819
+        );
     }
     transport
     {
+        mu              1e-5;
+        Pr              1;
+
         As              1.67212e-06;
         Ts              170.672;
     }
diff --git a/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen
index 397d6345d01..e4b3555955f 100644
--- a/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen
+++ b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen
@@ -32,7 +32,6 @@ reactants
 {
     specie
     {
-        nMoles          24.8095;
         molWeight       16.0243;
     }
     thermodynamics
@@ -54,7 +53,6 @@ products
 {
     specie
     {
-        nMoles          1;
         molWeight       17.9973;
     }
     thermodynamics
diff --git a/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties b/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
index 863152a970a..b64b041ab33 100644
--- a/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
+++ b/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
@@ -33,7 +33,6 @@ fuel
 {
     specie
     {
-        nMoles          1;
         molWeight       114.23;
     }
     thermodynamics
@@ -55,7 +54,6 @@ oxidant
 {
     specie
     {
-        nMoles          1;
         molWeight       28.8504;
     }
     thermodynamics
@@ -77,7 +75,6 @@ burntProducts
 {
     specie
     {
-        nMoles          1;
         molWeight       28.6068;
     }
     thermodynamics
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid
index a4b2c48134a..ecb4a042a20 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid
@@ -19,7 +19,6 @@ wood
 {
     specie
     {
-        nMoles      1;
         molWeight   100;
     }
     transport
@@ -41,7 +40,6 @@ char
 {
     specie
     {
-        nMoles      1;
         molWeight   50;
     }
     transport
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties
index 4765d84e02f..e1db45d87e2 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties
@@ -46,7 +46,6 @@ gas
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas
index d2d8f2cd2a3..3a25b01d287 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -85,7 +82,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
@@ -107,7 +103,6 @@ C3H8
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0962;
     }
     thermodynamics
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermo.solid b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermo.solid
index a4b2c48134a..ecb4a042a20 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermo.solid
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermo.solid
@@ -19,7 +19,6 @@ wood
 {
     specie
     {
-        nMoles      1;
         molWeight   100;
     }
     transport
@@ -41,7 +40,6 @@ char
 {
     specie
     {
-        nMoles      1;
         molWeight   50;
     }
     transport
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
index a4d89de8c3b..df2e38a59e3 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
@@ -46,7 +46,6 @@ gas
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermo.compressibleGas
index 7544819fc47..57b05bac72f 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermo.compressibleGas
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ C3H8
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -85,7 +82,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -107,7 +103,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermo.compressibleGas
index db199425255..6506999a700 100644
--- a/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermo.compressibleGas
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     thermodynamics
@@ -85,7 +82,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -107,7 +103,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermo.compressibleGas
index db199425255..6506999a700 100644
--- a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermo.compressibleGas
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     thermodynamics
@@ -85,7 +82,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -107,7 +103,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D/constant/thermo.compressibleGas
index ff00e560b42..1bacad52c3f 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     thermodynamics
@@ -85,7 +82,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -107,7 +103,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS/constant/thermo.compressibleGas
index ff00e560b42..1bacad52c3f 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     thermodynamics
@@ -85,7 +82,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -107,7 +103,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
index 33208fc6c04..8e3adfc37f6 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     elements
@@ -45,7 +44,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     elements
@@ -72,7 +70,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     elements
@@ -99,7 +96,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     elements
@@ -126,7 +122,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     elements
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI
index 00d5cd86dcf..f709692e99b 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGasGRI
@@ -2,7 +2,6 @@ OH
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0074;
     }
     thermodynamics
@@ -28,7 +27,6 @@ CN
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0179;
     }
     thermodynamics
@@ -54,7 +52,6 @@ C2H3
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0462;
     }
     thermodynamics
@@ -80,7 +77,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
@@ -105,7 +101,6 @@ HOCN
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -133,7 +128,6 @@ N
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0067;
     }
     thermodynamics
@@ -158,7 +152,6 @@ C2H
 {
     specie
     {
-        nMoles          1;
         molWeight       25.0303;
     }
     thermodynamics
@@ -184,7 +177,6 @@ HNO
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0141;
     }
     thermodynamics
@@ -211,7 +203,6 @@ CH2CO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -238,7 +229,6 @@ CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0351;
     }
     thermodynamics
@@ -264,7 +254,6 @@ C2H5
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0622;
     }
     thermodynamics
@@ -290,7 +279,6 @@ C2H4
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0542;
     }
     thermodynamics
@@ -316,7 +304,6 @@ C3H8
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0972;
     }
     thermodynamics
@@ -342,7 +329,6 @@ HCN
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0258;
     }
     thermodynamics
@@ -369,7 +355,6 @@ C2H6
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0701;
     }
     thermodynamics
@@ -395,7 +380,6 @@ NH3
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0306;
     }
     thermodynamics
@@ -421,7 +405,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -447,7 +430,6 @@ C2H2
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0382;
     }
     thermodynamics
@@ -473,7 +455,6 @@ CH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -500,7 +481,6 @@ H2CN
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0338;
     }
     thermodynamics
@@ -527,7 +507,6 @@ HCCOH
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -554,7 +533,6 @@ H2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0147;
     }
     thermodynamics
@@ -580,7 +558,6 @@ HCO
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0185;
     }
     thermodynamics
@@ -607,7 +584,6 @@ NNH
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0214;
     }
     thermodynamics
@@ -633,7 +609,6 @@ N2O
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0128;
     }
     thermodynamics
@@ -659,7 +634,6 @@ CH2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -685,7 +659,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -710,7 +683,6 @@ CH2CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0456;
     }
     thermodynamics
@@ -737,7 +709,6 @@ HNCO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -765,7 +736,6 @@ HCCO
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0297;
     }
     thermodynamics
@@ -792,7 +762,6 @@ H2
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01594;
     }
     thermodynamics
@@ -817,7 +786,6 @@ NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0055;
     }
     thermodynamics
@@ -843,7 +811,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.043;
     }
     thermodynamics
@@ -869,7 +836,6 @@ C
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0112;
     }
     thermodynamics
@@ -894,7 +860,6 @@ HO2
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0068;
     }
     thermodynamics
@@ -920,7 +885,6 @@ CH3CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0536;
     }
     thermodynamics
@@ -947,7 +911,6 @@ C3H7
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0892;
     }
     thermodynamics
@@ -973,7 +936,6 @@ CH3OH
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0424;
     }
     thermodynamics
@@ -1000,7 +962,6 @@ CH2O
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0265;
     }
     thermodynamics
@@ -1027,7 +988,6 @@ CO
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0106;
     }
     thermodynamics
@@ -1053,7 +1013,6 @@ CH3O
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -1080,7 +1039,6 @@ O
 {
     specie
     {
-        nMoles          1;
         molWeight       15.9994;
     }
     thermodynamics
@@ -1105,7 +1063,6 @@ HCNN
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0325;
     }
     thermodynamics
@@ -1132,7 +1089,6 @@ NCO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0173;
     }
     thermodynamics
@@ -1159,7 +1115,6 @@ CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -1185,7 +1140,6 @@ HCNO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -1213,7 +1167,6 @@ NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0226;
     }
     thermodynamics
@@ -1239,7 +1192,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -1265,7 +1217,6 @@ NH
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0147;
     }
     thermodynamics
@@ -1291,7 +1242,6 @@ H
 {
     specie
     {
-        nMoles          1;
         molWeight       1.00797;
     }
     thermodynamics
@@ -1316,7 +1266,6 @@ AR
 {
     specie
     {
-        nMoles          1;
         molWeight       39.948;
     }
     thermodynamics
@@ -1341,7 +1290,6 @@ NO
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0061;
     }
     thermodynamics
@@ -1367,7 +1315,6 @@ CH
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0191;
     }
     thermodynamics
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas
index 33208fc6c04..8e3adfc37f6 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     elements
@@ -45,7 +44,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     elements
@@ -72,7 +70,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     elements
@@ -99,7 +96,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     elements
@@ -126,7 +122,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     elements
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGasGRI b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGasGRI
index 00d5cd86dcf..f709692e99b 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGasGRI
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGasGRI
@@ -2,7 +2,6 @@ OH
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0074;
     }
     thermodynamics
@@ -28,7 +27,6 @@ CN
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0179;
     }
     thermodynamics
@@ -54,7 +52,6 @@ C2H3
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0462;
     }
     thermodynamics
@@ -80,7 +77,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
@@ -105,7 +101,6 @@ HOCN
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -133,7 +128,6 @@ N
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0067;
     }
     thermodynamics
@@ -158,7 +152,6 @@ C2H
 {
     specie
     {
-        nMoles          1;
         molWeight       25.0303;
     }
     thermodynamics
@@ -184,7 +177,6 @@ HNO
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0141;
     }
     thermodynamics
@@ -211,7 +203,6 @@ CH2CO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -238,7 +229,6 @@ CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0351;
     }
     thermodynamics
@@ -264,7 +254,6 @@ C2H5
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0622;
     }
     thermodynamics
@@ -290,7 +279,6 @@ C2H4
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0542;
     }
     thermodynamics
@@ -316,7 +304,6 @@ C3H8
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0972;
     }
     thermodynamics
@@ -342,7 +329,6 @@ HCN
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0258;
     }
     thermodynamics
@@ -369,7 +355,6 @@ C2H6
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0701;
     }
     thermodynamics
@@ -395,7 +380,6 @@ NH3
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0306;
     }
     thermodynamics
@@ -421,7 +405,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -447,7 +430,6 @@ C2H2
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0382;
     }
     thermodynamics
@@ -473,7 +455,6 @@ CH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -500,7 +481,6 @@ H2CN
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0338;
     }
     thermodynamics
@@ -527,7 +507,6 @@ HCCOH
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -554,7 +533,6 @@ H2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0147;
     }
     thermodynamics
@@ -580,7 +558,6 @@ HCO
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0185;
     }
     thermodynamics
@@ -607,7 +584,6 @@ NNH
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0214;
     }
     thermodynamics
@@ -633,7 +609,6 @@ N2O
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0128;
     }
     thermodynamics
@@ -659,7 +634,6 @@ CH2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -685,7 +659,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -710,7 +683,6 @@ CH2CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0456;
     }
     thermodynamics
@@ -737,7 +709,6 @@ HNCO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -765,7 +736,6 @@ HCCO
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0297;
     }
     thermodynamics
@@ -792,7 +762,6 @@ H2
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01594;
     }
     thermodynamics
@@ -817,7 +786,6 @@ NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0055;
     }
     thermodynamics
@@ -843,7 +811,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.043;
     }
     thermodynamics
@@ -869,7 +836,6 @@ C
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0112;
     }
     thermodynamics
@@ -894,7 +860,6 @@ HO2
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0068;
     }
     thermodynamics
@@ -920,7 +885,6 @@ CH3CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0536;
     }
     thermodynamics
@@ -947,7 +911,6 @@ C3H7
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0892;
     }
     thermodynamics
@@ -973,7 +936,6 @@ CH3OH
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0424;
     }
     thermodynamics
@@ -1000,7 +962,6 @@ CH2O
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0265;
     }
     thermodynamics
@@ -1027,7 +988,6 @@ CO
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0106;
     }
     thermodynamics
@@ -1053,7 +1013,6 @@ CH3O
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -1080,7 +1039,6 @@ O
 {
     specie
     {
-        nMoles          1;
         molWeight       15.9994;
     }
     thermodynamics
@@ -1105,7 +1063,6 @@ HCNN
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0325;
     }
     thermodynamics
@@ -1132,7 +1089,6 @@ NCO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0173;
     }
     thermodynamics
@@ -1159,7 +1115,6 @@ CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -1185,7 +1140,6 @@ HCNO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -1213,7 +1167,6 @@ NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0226;
     }
     thermodynamics
@@ -1239,7 +1192,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -1265,7 +1217,6 @@ NH
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0147;
     }
     thermodynamics
@@ -1291,7 +1242,6 @@ H
 {
     specie
     {
-        nMoles          1;
         molWeight       1.00797;
     }
     thermodynamics
@@ -1316,7 +1266,6 @@ AR
 {
     specie
     {
-        nMoles          1;
         molWeight       39.948;
     }
     thermodynamics
@@ -1341,7 +1290,6 @@ NO
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0061;
     }
     thermodynamics
@@ -1367,7 +1315,6 @@ CH
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0191;
     }
     thermodynamics
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas
index 33208fc6c04..8e3adfc37f6 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     elements
@@ -45,7 +44,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     elements
@@ -72,7 +70,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     elements
@@ -99,7 +96,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     elements
@@ -126,7 +122,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     elements
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGasGRI b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGasGRI
index 00d5cd86dcf..f709692e99b 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGasGRI
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGasGRI
@@ -2,7 +2,6 @@ OH
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0074;
     }
     thermodynamics
@@ -28,7 +27,6 @@ CN
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0179;
     }
     thermodynamics
@@ -54,7 +52,6 @@ C2H3
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0462;
     }
     thermodynamics
@@ -80,7 +77,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
@@ -105,7 +101,6 @@ HOCN
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -133,7 +128,6 @@ N
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0067;
     }
     thermodynamics
@@ -158,7 +152,6 @@ C2H
 {
     specie
     {
-        nMoles          1;
         molWeight       25.0303;
     }
     thermodynamics
@@ -184,7 +177,6 @@ HNO
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0141;
     }
     thermodynamics
@@ -211,7 +203,6 @@ CH2CO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -238,7 +229,6 @@ CH3
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0351;
     }
     thermodynamics
@@ -264,7 +254,6 @@ C2H5
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0622;
     }
     thermodynamics
@@ -290,7 +279,6 @@ C2H4
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0542;
     }
     thermodynamics
@@ -316,7 +304,6 @@ C3H8
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0972;
     }
     thermodynamics
@@ -342,7 +329,6 @@ HCN
 {
     specie
     {
-        nMoles          1;
         molWeight       27.0258;
     }
     thermodynamics
@@ -369,7 +355,6 @@ C2H6
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0701;
     }
     thermodynamics
@@ -395,7 +380,6 @@ NH3
 {
     specie
     {
-        nMoles          1;
         molWeight       17.0306;
     }
     thermodynamics
@@ -421,7 +405,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -447,7 +430,6 @@ C2H2
 {
     specie
     {
-        nMoles          1;
         molWeight       26.0382;
     }
     thermodynamics
@@ -473,7 +455,6 @@ CH2OH
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -500,7 +481,6 @@ H2CN
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0338;
     }
     thermodynamics
@@ -527,7 +507,6 @@ HCCOH
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0376;
     }
     thermodynamics
@@ -554,7 +533,6 @@ H2O2
 {
     specie
     {
-        nMoles          1;
         molWeight       34.0147;
     }
     thermodynamics
@@ -580,7 +558,6 @@ HCO
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0185;
     }
     thermodynamics
@@ -607,7 +584,6 @@ NNH
 {
     specie
     {
-        nMoles          1;
         molWeight       29.0214;
     }
     thermodynamics
@@ -633,7 +609,6 @@ N2O
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0128;
     }
     thermodynamics
@@ -659,7 +634,6 @@ CH2(S)
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -685,7 +659,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -710,7 +683,6 @@ CH2CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0456;
     }
     thermodynamics
@@ -737,7 +709,6 @@ HNCO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -765,7 +736,6 @@ HCCO
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0297;
     }
     thermodynamics
@@ -792,7 +762,6 @@ H2
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01594;
     }
     thermodynamics
@@ -817,7 +786,6 @@ NO2
 {
     specie
     {
-        nMoles          1;
         molWeight       46.0055;
     }
     thermodynamics
@@ -843,7 +811,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.043;
     }
     thermodynamics
@@ -869,7 +836,6 @@ C
 {
     specie
     {
-        nMoles          1;
         molWeight       12.0112;
     }
     thermodynamics
@@ -894,7 +860,6 @@ HO2
 {
     specie
     {
-        nMoles          1;
         molWeight       33.0068;
     }
     thermodynamics
@@ -920,7 +885,6 @@ CH3CHO
 {
     specie
     {
-        nMoles          1;
         molWeight       44.0536;
     }
     thermodynamics
@@ -947,7 +911,6 @@ C3H7
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0892;
     }
     thermodynamics
@@ -973,7 +936,6 @@ CH3OH
 {
     specie
     {
-        nMoles          1;
         molWeight       32.0424;
     }
     thermodynamics
@@ -1000,7 +962,6 @@ CH2O
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0265;
     }
     thermodynamics
@@ -1027,7 +988,6 @@ CO
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0106;
     }
     thermodynamics
@@ -1053,7 +1013,6 @@ CH3O
 {
     specie
     {
-        nMoles          1;
         molWeight       31.0345;
     }
     thermodynamics
@@ -1080,7 +1039,6 @@ O
 {
     specie
     {
-        nMoles          1;
         molWeight       15.9994;
     }
     thermodynamics
@@ -1105,7 +1063,6 @@ HCNN
 {
     specie
     {
-        nMoles          1;
         molWeight       41.0325;
     }
     thermodynamics
@@ -1132,7 +1089,6 @@ NCO
 {
     specie
     {
-        nMoles          1;
         molWeight       42.0173;
     }
     thermodynamics
@@ -1159,7 +1115,6 @@ CH2
 {
     specie
     {
-        nMoles          1;
         molWeight       14.0271;
     }
     thermodynamics
@@ -1185,7 +1140,6 @@ HCNO
 {
     specie
     {
-        nMoles          1;
         molWeight       43.0252;
     }
     thermodynamics
@@ -1213,7 +1167,6 @@ NH2
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0226;
     }
     thermodynamics
@@ -1239,7 +1192,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -1265,7 +1217,6 @@ NH
 {
     specie
     {
-        nMoles          1;
         molWeight       15.0147;
     }
     thermodynamics
@@ -1291,7 +1242,6 @@ H
 {
     specie
     {
-        nMoles          1;
         molWeight       1.00797;
     }
     thermodynamics
@@ -1316,7 +1266,6 @@ AR
 {
     specie
     {
-        nMoles          1;
         molWeight       39.948;
     }
     thermodynamics
@@ -1341,7 +1290,6 @@ NO
 {
     specie
     {
-        nMoles          1;
         molWeight       30.0061;
     }
     thermodynamics
@@ -1367,7 +1315,6 @@ CH
 {
     specie
     {
-        nMoles          1;
         molWeight       13.0191;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties
index 582e7e1ac1e..112ba7f12b1 100644
--- a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
index f7ae5e91df0..bd0da1ae5ca 100644
--- a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.96;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
index 311e40d8fad..b4813dcb63d 100644
--- a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.01348;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
index f26f216f96c..d78a252eca0 100644
--- a/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
@@ -33,7 +33,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       11640.3;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
index 20369bc4ace..82a7d7e9233 100644
--- a/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
@@ -31,7 +31,6 @@ mixture
     // normalised gas
     specie
     {
-        nMoles          1;
         molWeight       11640.3;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
index dff8b1620d0..8db0e85dec6 100644
--- a/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.96;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
index 20369bc4ace..82a7d7e9233 100644
--- a/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
@@ -31,7 +31,6 @@ mixture
     // normalised gas
     specie
     {
-        nMoles          1;
         molWeight       11640.3;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/thermophysicalProperties
index 7182386e005..32542b344e4 100644
--- a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/thermophysicalProperties
index 392e2e045bf..665522c09e4 100644
--- a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
index 7182386e005..32542b344e4 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/thermophysicalProperties
index 7182386e005..32542b344e4 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/thermophysicalProperties
index 6671abebe73..56843556d02 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/thermophysicalProperties
index 82e3c59f878..861ac55c79e 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties
index 392e2e045bf..665522c09e4 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
index 920fff435c7..75b4b67f385 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties
index db1f5947af0..c4bdac2f8bb 100644
--- a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBend/constant/thermophysicalProperties b/tutorials/compressible/rhoSimpleFoam/squareBend/constant/thermophysicalProperties
index 8658d3da81e..7fc31fc96b5 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBend/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoSimpleFoam/squareBend/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/sonicDyMFoam/movingCone/constant/thermophysicalProperties b/tutorials/compressible/sonicDyMFoam/movingCone/constant/thermophysicalProperties
index 582e7e1ac1e..112ba7f12b1 100644
--- a/tutorials/compressible/sonicDyMFoam/movingCone/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicDyMFoam/movingCone/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/thermophysicalProperties
index 341cdb94d5c..56c00e7541c 100644
--- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/sonicFoam/RAS/prism/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/RAS/prism/constant/thermophysicalProperties
index 341cdb94d5c..56c00e7541c 100644
--- a/tutorials/compressible/sonicFoam/RAS/prism/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/RAS/prism/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
index f26f216f96c..d78a252eca0 100644
--- a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
@@ -33,7 +33,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       11640.3;
     }
     thermodynamics
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
index 7d0bc7caf33..de265e60e94 100644
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
index ab678e4d886..dcecaaf3c62 100644
--- a/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
@@ -32,7 +32,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
index 95579e34cb5..516edffaa33 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.96;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/1DBaffle/1DbaffleSolidThermo b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/1DBaffle/1DbaffleSolidThermo
index 82a4468a905..cf3af70f1cd 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/1DBaffle/1DbaffleSolidThermo
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/1DBaffle/1DbaffleSolidThermo
@@ -8,7 +8,6 @@
 
 specie
 {
-    nMoles          1;
     molWeight       20;
 }
 transport
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/3DBaffle/3DbaffleSolidThermo b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/3DBaffle/3DbaffleSolidThermo
index 05d8ca3f747..751501e13a8 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/3DBaffle/3DbaffleSolidThermo
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.orig/include/3DBaffle/3DbaffleSolidThermo
@@ -22,7 +22,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       20;
     }
     transport
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
index 95579e34cb5..516edffaa33 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.96;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/constant/thermophysicalProperties
index 95579e34cb5..516edffaa33 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/constant/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.96;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/thermophysicalProperties
index ab678e4d886..dcecaaf3c62 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoom/constant/thermophysicalProperties
@@ -32,7 +32,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
index ab678e4d886..dcecaaf3c62 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
@@ -32,7 +32,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomWater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomWater/thermophysicalProperties
index 828c78d2084..c82346a41a5 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomWater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomWater/thermophysicalProperties
@@ -29,7 +29,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       18;
     }
     equationOfState
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties
index edb01db8b83..97bdf462909 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties
@@ -29,7 +29,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   50;
     }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
index c293c032a33..8309d666a80 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
index c293c032a33..8309d666a80 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
index df146b74f38..3569242da54 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
@@ -29,7 +29,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   12;
     }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/thermophysicalProperties
index b3c0a589981..6553fe2a218 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/thermophysicalProperties
@@ -32,7 +32,6 @@ mixture
 
     specie
     {
-        nMoles          1;
         molWeight       28.85;
     }
     equationOfState
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/thermophysicalProperties
index 41e355a66bf..4f46120b50c 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/thermophysicalProperties
@@ -32,7 +32,6 @@ mixture
 
     specie
     {
-        nMoles          1;
         molWeight       18;
     }
     equationOfState
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
index c293c032a33..8309d666a80 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9;
     }
     thermodynamics
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties
index 894a9f39be2..e6e7b76fecb 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties
@@ -29,7 +29,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   12;
     }
 
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/foam.dat b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/foam.dat
index 3b2be669144..320de4df7de 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/foam.dat
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/foam.dat
@@ -19,7 +19,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -41,7 +40,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.043;
     }
     thermodynamics
@@ -63,7 +61,6 @@ H2
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01594;
     }
     thermodynamics
@@ -85,7 +82,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -107,7 +103,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -129,7 +124,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.dat b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.dat
index 1cff004fd84..3521a7ef728 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.dat
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.dat
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.dat b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.dat
index 1cff004fd84..3521a7ef728 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.dat
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.dat
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.dat b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.dat
index 1cff004fd84..3521a7ef728 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.dat
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.dat
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.dat b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.dat
index 1cff004fd84..3521a7ef728 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.dat
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.dat
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/constant/thermo.compressibleGas b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/constant/thermo.compressibleGas
index ff00e560b42..1bacad52c3f 100644
--- a/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/constant/thermo.compressibleGas
+++ b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/constant/thermo.compressibleGas
@@ -19,7 +19,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     thermodynamics
@@ -41,7 +40,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -63,7 +61,6 @@ CH4
 {
     specie
     {
-        nMoles          1;
         molWeight       16.0428;
     }
     thermodynamics
@@ -85,7 +82,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -107,7 +103,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     thermodynamics
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermo.incompressiblePoly b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermo.incompressiblePoly
index ec4289e9775..6989ffe5013 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermo.incompressiblePoly
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermo.incompressiblePoly
@@ -19,7 +19,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     equationOfState
@@ -43,7 +42,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     equationOfState
@@ -67,7 +65,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
@@ -91,7 +88,6 @@ air
 {
     specie
     {
-        nMoles          1;
         molWeight       28.85;
     }
     equationOfState
diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermo.incompressiblePoly b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermo.incompressiblePoly
index ec4289e9775..6989ffe5013 100644
--- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermo.incompressiblePoly
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermo.incompressiblePoly
@@ -19,7 +19,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     equationOfState
@@ -43,7 +42,6 @@ O2
 {
     specie
     {
-        nMoles          1;
         molWeight       31.9988;
     }
     equationOfState
@@ -67,7 +65,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
@@ -91,7 +88,6 @@ air
 {
     specie
     {
-        nMoles          1;
         molWeight       28.85;
     }
     equationOfState
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly
index 3b8bf27dfe8..669e2c7ad14 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly
@@ -19,7 +19,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     equationOfState
@@ -43,7 +42,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
@@ -67,7 +65,6 @@ air
 {
     specie
     {
-        nMoles          1;
         molWeight       28.85;
     }
     equationOfState
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermo.incompressiblePoly b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermo.incompressiblePoly
index 3b8bf27dfe8..669e2c7ad14 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermo.incompressiblePoly
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermo.incompressiblePoly
@@ -19,7 +19,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     equationOfState
@@ -43,7 +42,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
@@ -67,7 +65,6 @@ air
 {
     specie
     {
-        nMoles          1;
         molWeight       28.85;
     }
     equationOfState
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly
index 3b8bf27dfe8..669e2c7ad14 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermo.incompressiblePoly
@@ -19,7 +19,6 @@ N2
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0134;
     }
     equationOfState
@@ -43,7 +42,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
@@ -67,7 +65,6 @@ air
 {
     specie
     {
-        nMoles          1;
         molWeight       28.85;
     }
     equationOfState
diff --git a/tutorials/mesh/foamyQuadMesh/OpenCFD/constant/thermophysicalProperties b/tutorials/mesh/foamyQuadMesh/OpenCFD/constant/thermophysicalProperties
index 4f396330711..07da539297b 100644
--- a/tutorials/mesh/foamyQuadMesh/OpenCFD/constant/thermophysicalProperties
+++ b/tutorials/mesh/foamyQuadMesh/OpenCFD/constant/thermophysicalProperties
@@ -24,7 +24,6 @@ mixture
 {
     specie
     {
-        nMoles          1;
         molWeight       11640.3;
     }
     thermodynamics
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.air b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.air
index e61009c10be..5a63396e43d 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.water b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.water
index 1ffcbddad7b..8c1db784a4e 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18.0;
     }
     equationOfState
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.air b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.air
index e61009c10be..5a63396e43d 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water
index 1ffcbddad7b..8c1db784a4e 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18.0;
     }
     equationOfState
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.air b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.air
index e61009c10be..5a63396e43d 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.water b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.water
index 1ffcbddad7b..8c1db784a4e 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18.0;
     }
     equationOfState
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.air b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.mercury b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.mercury
index e90070ef131..e82a6b9a7ef 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.mercury
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.mercury
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   200.59;
     }
     equationOfState
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.oil b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.oil
index 0bcdc33f4cb..431b0c3c14a 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.oil
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.oil
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   100.21;
     }
     equationOfState
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.water b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.water
index 91e7adc381b..d1cd8cb9e0c 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18.0;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.mercury b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.mercury
index 864b73f24ed..04754d77988 100644
--- a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.mercury
+++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.mercury
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   200;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.oil b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.oil
index 7c0d16aa903..953ae48bb07 100644
--- a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.oil
+++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.oil
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   160;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas
index a2a98f45f2c..9a2c2de58e2 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids
index 84dae4b7166..3bd3e7f5120 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   100;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermo.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermo.gas
index dde77f08718..5a836c21d10 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermo.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermo.gas
@@ -2,7 +2,6 @@ CO
 {
     specie
     {
-        nMoles          1;
         molWeight       28.0106;
     }
     thermodynamics
@@ -24,7 +23,6 @@ CO2
 {
     specie
     {
-        nMoles          1;
         molWeight       44.01;
     }
     thermodynamics
@@ -46,7 +44,6 @@ H2
 {
     specie
     {
-        nMoles          1;
         molWeight       2.01594;
     }
     thermodynamics
@@ -68,7 +65,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -90,7 +86,6 @@ AIR
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9596;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermophysicalProperties.liquid b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermophysicalProperties.liquid
index 90073f75ef8..f5bae7e9cbe 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/constant/thermophysicalProperties.liquid
@@ -38,7 +38,6 @@ inertSpecie H2O;
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
@@ -62,7 +61,6 @@ AIR
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles
index 7508b70aa31..e710b21d500 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   100;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.gas
index 7b3b350ea14..31715a77a50 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.gas
@@ -43,7 +43,6 @@ water
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.liquid b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.liquid
index 7406b2ce4f0..7d579f06cb4 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/constant/thermophysicalProperties.liquid
@@ -39,7 +39,6 @@ inertSpecie water;
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.gas
index 7b3b350ea14..31715a77a50 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.gas
@@ -43,7 +43,6 @@ water
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.liquid b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.liquid
index 7406b2ce4f0..7d579f06cb4 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/constant/thermophysicalProperties.liquid
@@ -39,7 +39,6 @@ inertSpecie water;
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.gas
index 0bfc34018d2..68649a6afcd 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.gas
@@ -38,7 +38,6 @@ H2O
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     thermodynamics
@@ -60,7 +59,6 @@ air
 {
     specie
     {
-        nMoles          1;
         molWeight       28.9596;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.liquid b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.liquid
index 2f486f8bea8..41529cc02ea 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/constant/thermophysicalProperties.liquid
@@ -38,7 +38,6 @@ inertSpecie H2O;
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
     equationOfState
@@ -62,7 +61,6 @@ air
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.gas
index 8b813293286..3c54e2737d3 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.gas
@@ -38,7 +38,6 @@ inertSpecie air;
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
@@ -57,7 +56,6 @@ water
 {
     specie
     {
-        nMoles      1;
         molWeight   18.0153;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.liquid b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.liquid
index 22a48eded3b..a5db4a1f29a 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving/constant/thermophysicalProperties.liquid
@@ -38,7 +38,6 @@ inertSpecie water;
 {
     specie
     {
-        nMoles      1;
         molWeight   18.0153;
     }
     equationOfState
@@ -62,7 +61,6 @@ air
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
index 7508b70aa31..e710b21d500 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   100;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
index 4053b173ee9..73efe39b114 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
@@ -37,7 +37,6 @@ water
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
 
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
index 3e40c9dce6a..84cdbf19654 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
@@ -37,7 +37,6 @@ water
 {
     specie
     {
-        nMoles          1;
         molWeight       18.0153;
     }
 
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/twoPhaseEulerFoam/LES/bubbleColumn/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/bubbleColumn/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles
index 7508b70aa31..e710b21d500 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles
+++ b/tutorials/multiphase/twoPhaseEulerFoam/RAS/fluidisedBed/constant/thermophysicalProperties.particles
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   100;
     }
     equationOfState
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/bubbleColumnIATE/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles b/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
index 7508b70aa31..e710b21d500 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   100;
     }
     equationOfState
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air b/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
index befc0aeae44..eb9bb8ab730 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   28.9;
     }
     thermodynamics
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water b/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
index c44c005d3b1..31d8cf05899 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
@@ -30,7 +30,6 @@ mixture
 {
     specie
     {
-        nMoles      1;
         molWeight   18;
     }
     equationOfState
-- 
GitLab


From 3e4d253cc1dc8c2b28a1f621103ae0b9eaa9d1fa Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Feb 2017 13:41:05 +0000
Subject: [PATCH 083/277] liquidProperties: Removed unused construction from
 Istream

---
 .../properties/liquidProperties/Ar/Ar.C       | 39 ---------------
 .../properties/liquidProperties/Ar/Ar.H       |  6 ---
 .../liquidProperties/C10H22/C10H22.C          | 39 ---------------
 .../liquidProperties/C10H22/C10H22.H          |  6 ---
 .../liquidProperties/C12H26/C12H26.C          | 39 ---------------
 .../liquidProperties/C12H26/C12H26.H          |  6 ---
 .../liquidProperties/C13H28/C13H28.C          | 39 ---------------
 .../liquidProperties/C13H28/C13H28.H          |  6 ---
 .../liquidProperties/C14H30/C14H30.C          | 39 ---------------
 .../liquidProperties/C14H30/C14H30.H          |  6 ---
 .../liquidProperties/C16H34/C16H34.C          | 39 ---------------
 .../liquidProperties/C16H34/C16H34.H          |  6 ---
 .../liquidProperties/C2H5OH/C2H5OH.C          | 39 ---------------
 .../liquidProperties/C2H5OH/C2H5OH.H          |  6 ---
 .../properties/liquidProperties/C2H6/C2H6.C   | 39 ---------------
 .../properties/liquidProperties/C2H6/C2H6.H   |  6 ---
 .../properties/liquidProperties/C2H6O/C2H6O.C | 38 --------------
 .../properties/liquidProperties/C2H6O/C2H6O.H |  6 ---
 .../properties/liquidProperties/C3H6O/C3H6O.C | 39 ---------------
 .../properties/liquidProperties/C3H6O/C3H6O.H |  6 ---
 .../properties/liquidProperties/C3H8/C3H8.C   | 39 ---------------
 .../properties/liquidProperties/C3H8/C3H8.H   |  6 ---
 .../liquidProperties/C4H10O/C4H10O.C          | 39 ---------------
 .../liquidProperties/C4H10O/C4H10O.H          |  6 ---
 .../properties/liquidProperties/C6H14/C6H14.C | 39 ---------------
 .../properties/liquidProperties/C6H14/C6H14.H |  6 ---
 .../properties/liquidProperties/C6H6/C6H6.C   | 39 ---------------
 .../properties/liquidProperties/C6H6/C6H6.H   |  6 ---
 .../properties/liquidProperties/C7H16/C7H16.C | 39 ---------------
 .../properties/liquidProperties/C7H16/C7H16.H |  6 ---
 .../properties/liquidProperties/C7H8/C7H8.C   | 39 ---------------
 .../properties/liquidProperties/C7H8/C7H8.H   |  6 ---
 .../properties/liquidProperties/C8H10/C8H10.C | 39 ---------------
 .../properties/liquidProperties/C8H10/C8H10.H |  6 ---
 .../properties/liquidProperties/C8H18/C8H18.C | 39 ---------------
 .../properties/liquidProperties/C8H18/C8H18.H |  6 ---
 .../properties/liquidProperties/C9H20/C9H20.C | 39 ---------------
 .../properties/liquidProperties/C9H20/C9H20.H |  6 ---
 .../properties/liquidProperties/CH3OH/CH3OH.C | 39 ---------------
 .../properties/liquidProperties/CH3OH/CH3OH.H |  6 ---
 .../liquidProperties/CH4N2O/CH4N2O.C          | 39 ---------------
 .../liquidProperties/CH4N2O/CH4N2O.H          |  6 ---
 .../properties/liquidProperties/H2O/H2O.C     | 50 +++----------------
 .../properties/liquidProperties/H2O/H2O.H     |  7 ---
 .../liquidProperties/IC8H18/IC8H18.C          | 39 ---------------
 .../liquidProperties/IC8H18/IC8H18.H          |  6 ---
 .../properties/liquidProperties/IDEA/IDEA.C   | 39 ---------------
 .../properties/liquidProperties/IDEA/IDEA.H   |  6 ---
 .../properties/liquidProperties/MB/MB.C       | 39 ---------------
 .../properties/liquidProperties/MB/MB.H       |  6 ---
 .../properties/liquidProperties/N2/N2.C       | 39 ---------------
 .../properties/liquidProperties/N2/N2.H       |  6 ---
 .../liquidProperties/aC10H7CH3/aC10H7CH3.C    | 39 ---------------
 .../liquidProperties/aC10H7CH3/aC10H7CH3.H    |  6 ---
 .../liquidProperties/bC10H7CH3/bC10H7CH3.C    | 38 --------------
 .../liquidProperties/bC10H7CH3/bC10H7CH3.H    |  6 ---
 .../liquidProperties/iC3H8O/iC3H8O.C          | 39 ---------------
 .../liquidProperties/iC3H8O/iC3H8O.H          |  6 ---
 .../liquidProperties/liquidProperties.C       | 34 -------------
 .../liquidProperties/liquidProperties.H       | 18 -------
 .../liquidProperties/nC3H8O/nC3H8O.C          | 39 ---------------
 .../liquidProperties/nC3H8O/nC3H8O.H          |  6 ---
 62 files changed, 8 insertions(+), 1404 deletions(-)

diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
index 8a4844a7224..c6bcfbdc11b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
+++ b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(Ar, 0);
     addToRunTimeSelectionTable(liquidProperties, Ar,);
-    addToRunTimeSelectionTable(liquidProperties, Ar, Istream);
     addToRunTimeSelectionTable(liquidProperties, Ar, dictionary);
 }
 
@@ -120,25 +119,6 @@ Foam::Ar::Ar
 {}
 
 
-Foam::Ar::Ar(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::Ar::Ar(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -158,23 +138,4 @@ Foam::Ar::Ar(const dictionary& dict)
 {}
 
 
-Foam::Ar::Ar(const Ar& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
index c26405a96b1..f5710401d84 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
+++ b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        Ar(Istream& is);
-
         //- Construct from dictionary
         Ar(const dictionary& dict);
 
-        //- Construct copy
-        Ar(const Ar& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
index 6358c3bd4cd..5d82ef6da10 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C10H22, 0);
     addToRunTimeSelectionTable(liquidProperties, C10H22,);
-    addToRunTimeSelectionTable(liquidProperties, C10H22, Istream);
     addToRunTimeSelectionTable(liquidProperties, C10H22, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C10H22::C10H22
 {}
 
 
-Foam::C10H22::C10H22(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C10H22::C10H22(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C10H22::C10H22(const dictionary& dict)
 {}
 
 
-Foam::C10H22::C10H22(const C10H22& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
index bfa91a6a353..2f747a27bdf 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C10H22(Istream& is);
-
         //- Construct from dictionary
         C10H22(const dictionary& dict);
 
-        //- Construct copy
-        C10H22(const C10H22& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
index 54a5124afb3..3f5271210f2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C12H26, 0);
     addToRunTimeSelectionTable(liquidProperties, C12H26,);
-    addToRunTimeSelectionTable(liquidProperties, C12H26, Istream);
     addToRunTimeSelectionTable(liquidProperties, C12H26, dictionary);
 }
 
@@ -120,25 +119,6 @@ Foam::C12H26::C12H26
 {}
 
 
-Foam::C12H26::C12H26(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C12H26::C12H26(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -158,23 +138,4 @@ Foam::C12H26::C12H26(const dictionary& dict)
 {}
 
 
-Foam::C12H26::C12H26(const C12H26& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
index c665f2678c4..23c1ad9077c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C12H26(Istream& is);
-
         //- Construct from dictionary
         C12H26(const dictionary& dict);
 
-        //- Construct copy
-        C12H26(const C12H26& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
index 1f9eb06b666..a4011182ab4 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C13H28, 0);
     addToRunTimeSelectionTable(liquidProperties, C13H28,);
-    addToRunTimeSelectionTable(liquidProperties, C13H28, Istream);
     addToRunTimeSelectionTable(liquidProperties, C13H28, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C13H28::C13H28
 {}
 
 
-Foam::C13H28::C13H28(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C13H28::C13H28(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C13H28::C13H28(const dictionary& dict)
 {}
 
 
-Foam::C13H28::C13H28(const C13H28& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
index 6962ea8a515..4ed22aafebd 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C13H28(Istream& is);
-
         //- Construct from dictionary
         C13H28(const dictionary& dict);
 
-        //- Construct copy
-        C13H28(const C13H28& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
index 5c0cd60c50a..98fbbc8f7fb 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C14H30, 0);
     addToRunTimeSelectionTable(liquidProperties, C14H30,);
-    addToRunTimeSelectionTable(liquidProperties, C14H30, Istream);
     addToRunTimeSelectionTable(liquidProperties, C14H30, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C14H30::C14H30
 {}
 
 
-Foam::C14H30::C14H30(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C14H30::C14H30(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C14H30::C14H30(const dictionary& dict)
 {}
 
 
-Foam::C14H30::C14H30(const C14H30& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
index f1ea7dff2ed..bfa65436d5f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C14H30(Istream& is);
-
         //- Construct from dictionary
         C14H30(const dictionary& dict);
 
-        //- Construct copy
-        C14H30(const C14H30& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
index f583cc27164..12a00555b5b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C16H34, 0);
     addToRunTimeSelectionTable(liquidProperties, C16H34,);
-    addToRunTimeSelectionTable(liquidProperties, C16H34, Istream);
     addToRunTimeSelectionTable(liquidProperties, C16H34, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C16H34::C16H34
 {}
 
 
-Foam::C16H34::C16H34(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C16H34::C16H34(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C16H34::C16H34(const dictionary& dict)
 {}
 
 
-Foam::C16H34::C16H34(const C16H34& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
index e1c39b9a2e1..36085db54b3 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C16H34(Istream& is);
-
         //- Construct from dictionary
         C16H34(const dictionary& dict);
 
-        //- Construct copy
-        C16H34(const C16H34& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
index ad3a0b167b0..a9d441a9422 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C2H5OH, 0);
     addToRunTimeSelectionTable(liquidProperties, C2H5OH,);
-    addToRunTimeSelectionTable(liquidProperties, C2H5OH, Istream);
     addToRunTimeSelectionTable(liquidProperties, C2H5OH, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C2H5OH::C2H5OH
 {}
 
 
-Foam::C2H5OH::C2H5OH(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C2H5OH::C2H5OH(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C2H5OH::C2H5OH(const dictionary& dict)
 {}
 
 
-Foam::C2H5OH::C2H5OH(const C2H5OH& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
index 526d7fe49cb..7296b4e343a 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C2H5OH(Istream& is);
-
         //- Construct from dictionary
         C2H5OH(const dictionary& dict);
 
-        //- Construct copy
-        C2H5OH(const C2H5OH& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
index b118dc310df..9cab052a77c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C2H6, 0);
     addToRunTimeSelectionTable(liquidProperties, C2H6,);
-    addToRunTimeSelectionTable(liquidProperties, C2H6, Istream);
     addToRunTimeSelectionTable(liquidProperties, C2H6, dictionary);
 }
 
@@ -119,25 +118,6 @@ Foam::C2H6::C2H6
 {}
 
 
-Foam::C2H6::C2H6(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C2H6::C2H6(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -157,23 +137,4 @@ Foam::C2H6::C2H6(const dictionary& dict)
 {}
 
 
-Foam::C2H6::C2H6(const C2H6& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
index 74b7f1a0186..ebed8aa44c6 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C2H6(Istream& is);
-
         //- Construct from dictionary
         C2H6(const dictionary& dict);
 
-        //- Construct copy
-        C2H6(const C2H6& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
index 1a9ba151a45..bf0528dc0dc 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C2H6O, 0);
     addToRunTimeSelectionTable(liquidProperties, C2H6O,);
-    addToRunTimeSelectionTable(liquidProperties, C2H6O, Istream);
     addToRunTimeSelectionTable(liquidProperties, C2H6O, dictionary);
 }
 
@@ -128,24 +127,6 @@ Foam::C2H6O::C2H6O
 {}
 
 
-Foam::C2H6O::C2H6O(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
 
 Foam::C2H6O::C2H6O(const dictionary& dict)
 :
@@ -166,23 +147,4 @@ Foam::C2H6O::C2H6O(const dictionary& dict)
 {}
 
 
-Foam::C2H6O::C2H6O(const C2H6O& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
index b85d7273ef2..0477b7993e4 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C2H6O(Istream& is);
-
         //- Construct from dictionary
         C2H6O(const dictionary& dict);
 
-        //- Construct copy
-        C2H6O(const C2H6O& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
index d0e3a5c160c..f617fd592f0 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C3H6O, 0);
     addToRunTimeSelectionTable(liquidProperties, C3H6O,);
-    addToRunTimeSelectionTable(liquidProperties, C3H6O, Istream);
     addToRunTimeSelectionTable(liquidProperties, C3H6O, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C3H6O::C3H6O
 {}
 
 
-Foam::C3H6O::C3H6O(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C3H6O::C3H6O(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C3H6O::C3H6O(const dictionary& dict)
 {}
 
 
-Foam::C3H6O::C3H6O(const C3H6O& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
index 3e58a5fb093..9cafa343137 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C3H6O(Istream& is);
-
         //- Construct from dictionary
         C3H6O(const dictionary& dict);
 
-        //- Construct copy
-        C3H6O(const C3H6O& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
index 669dd0056b9..58abb7117e4 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C3H8, 0);
     addToRunTimeSelectionTable(liquidProperties, C3H8,);
-    addToRunTimeSelectionTable(liquidProperties, C3H8, Istream);
     addToRunTimeSelectionTable(liquidProperties, C3H8, dictionary);
 }
 
@@ -118,25 +117,6 @@ Foam::C3H8::C3H8
 {}
 
 
-Foam::C3H8::C3H8(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C3H8::C3H8(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -156,23 +136,4 @@ Foam::C3H8::C3H8(const dictionary& dict)
 {}
 
 
-Foam::C3H8::C3H8(const C3H8& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
index ab345407e28..9d451dcd62e 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C3H8(Istream& is);
-
         //- Construct from dictionary
         C3H8(const dictionary& dict);
 
-        //- Construct copy
-        C3H8(const C3H8& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
index 32e217cd4d5..1012d7bcf1c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C4H10O, 0);
     addToRunTimeSelectionTable(liquidProperties, C4H10O,);
-    addToRunTimeSelectionTable(liquidProperties, C4H10O, Istream);
     addToRunTimeSelectionTable(liquidProperties, C4H10O, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C4H10O::C4H10O
 {}
 
 
-Foam::C4H10O::C4H10O(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C4H10O::C4H10O(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C4H10O::C4H10O(const dictionary& dict)
 {}
 
 
-Foam::C4H10O::C4H10O(const C4H10O& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
index c3e04909cdf..16072f1c86f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C4H10O(Istream& is);
-
         //- Construct from dictionary
         C4H10O(const dictionary& dict);
 
-        //- Construct copy
-        C4H10O(const C4H10O& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
index 0aa12512fd7..dfd50d0e3ad 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C6H14, 0);
     addToRunTimeSelectionTable(liquidProperties, C6H14,);
-    addToRunTimeSelectionTable(liquidProperties, C6H14, Istream);
     addToRunTimeSelectionTable(liquidProperties, C6H14, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C6H14::C6H14
 {}
 
 
-Foam::C6H14::C6H14(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C6H14::C6H14(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C6H14::C6H14(const dictionary& dict)
 {}
 
 
-Foam::C6H14::C6H14(const C6H14& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
index 574b249b4d1..9769fc41ddd 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C6H14(Istream& is);
-
         //- Construct from dictionary
         C6H14(const dictionary& dict);
 
-        //- Construct copy
-        C6H14(const C6H14& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
index ff3e040ef0d..a4c10bea045 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C6H6, 0);
     addToRunTimeSelectionTable(liquidProperties, C6H6,);
-    addToRunTimeSelectionTable(liquidProperties, C6H6, Istream);
     addToRunTimeSelectionTable(liquidProperties, C6H6, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C6H6::C6H6
 {}
 
 
-Foam::C6H6::C6H6(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C6H6::C6H6(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C6H6::C6H6(const dictionary& dict)
 {}
 
 
-Foam::C6H6::C6H6(const C6H6& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
index 8f682060c4b..260f228e8cc 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C6H6(Istream& is);
-
         //- Construct from dictionary
         C6H6(const dictionary& dict);
 
-        //- Construct copy
-        C6H6(const C6H6& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
index 90651a711c7..c2032f54799 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C7H16, 0);
     addToRunTimeSelectionTable(liquidProperties, C7H16,);
-    addToRunTimeSelectionTable(liquidProperties, C7H16, Istream);
     addToRunTimeSelectionTable(liquidProperties, C7H16, dictionary);
 }
 
@@ -127,25 +126,6 @@ Foam::C7H16::C7H16
 {}
 
 
-Foam::C7H16::C7H16(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C7H16::C7H16(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -165,23 +145,4 @@ Foam::C7H16::C7H16(const dictionary& dict)
 {}
 
 
-Foam::C7H16::C7H16(const C7H16& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
index b8032cd919d..f18c7bf3898 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C7H16(Istream& is);
-
         //- Construct from dictionary
         C7H16(const dictionary& dict);
 
-        //- Construct copy
-        C7H16(const C7H16& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
index a9026f39dee..8b070065b1c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C7H8, 0);
     addToRunTimeSelectionTable(liquidProperties, C7H8,);
-    addToRunTimeSelectionTable(liquidProperties, C7H8, Istream);
     addToRunTimeSelectionTable(liquidProperties, C7H8, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C7H8::C7H8
 {}
 
 
-Foam::C7H8::C7H8(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C7H8::C7H8(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C7H8::C7H8(const dictionary& dict)
 {}
 
 
-Foam::C7H8::C7H8(const C7H8& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
index 7e01f058b00..28e018d7f2b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C7H8(Istream& is);
-
         //- Construct from dictionary
         C7H8(const dictionary& dict);
 
-        //- Construct copy
-        C7H8(const C7H8& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
index 8c8484270ff..95822a69fd1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C8H10, 0);
     addToRunTimeSelectionTable(liquidProperties, C8H10,);
-    addToRunTimeSelectionTable(liquidProperties, C8H10, Istream);
     addToRunTimeSelectionTable(liquidProperties, C8H10, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C8H10::C8H10
 {}
 
 
-Foam::C8H10::C8H10(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C8H10::C8H10(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C8H10::C8H10(const dictionary& dict)
 {}
 
 
-Foam::C8H10::C8H10(const C8H10& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
index 4e36b542943..d53a9dc7612 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
@@ -106,15 +106,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C8H10(Istream& is);
-
         //- Construct from dictionary
         C8H10(const dictionary& dict);
 
-        //- Construct copy
-        C8H10(const C8H10& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
index d50c15e0af3..0bd8dad7211 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C8H18, 0);
     addToRunTimeSelectionTable(liquidProperties, C8H18,);
-    addToRunTimeSelectionTable(liquidProperties, C8H18, Istream);
     addToRunTimeSelectionTable(liquidProperties, C8H18, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C8H18::C8H18
 {}
 
 
-Foam::C8H18::C8H18(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C8H18::C8H18(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C8H18::C8H18(const dictionary& dict)
 {}
 
 
-Foam::C8H18::C8H18(const C8H18& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
index 8bd606d1e56..3146c7f7885 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C8H18(Istream& is);
-
         //- Construct from dictionary
         C8H18(const dictionary& dict);
 
-        //- Construct copy
-        C8H18(const C8H18& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
index 4db12992a26..803ec867f9c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C9H20, 0);
     addToRunTimeSelectionTable(liquidProperties, C9H20,);
-    addToRunTimeSelectionTable(liquidProperties, C9H20, Istream);
     addToRunTimeSelectionTable(liquidProperties, C9H20, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::C9H20::C9H20
 {}
 
 
-Foam::C9H20::C9H20(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::C9H20::C9H20(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::C9H20::C9H20(const dictionary& dict)
 {}
 
 
-Foam::C9H20::C9H20(const C9H20& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
index 7cd448be55c..61ea898d96f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        C9H20(Istream& is);
-
         //- Construct from dictionary
         C9H20(const dictionary& dict);
 
-        //- Construct copy
-        C9H20(const C9H20& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
index f656c0bc9fe..7e3918fc71b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
+++ b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(CH3OH, 0);
     addToRunTimeSelectionTable(liquidProperties, CH3OH,);
-    addToRunTimeSelectionTable(liquidProperties, CH3OH, Istream);
     addToRunTimeSelectionTable(liquidProperties, CH3OH, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::CH3OH::CH3OH
 {}
 
 
-Foam::CH3OH::CH3OH(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::CH3OH::CH3OH(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::CH3OH::CH3OH(const dictionary& dict)
 {}
 
 
-Foam::CH3OH::CH3OH(const CH3OH& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
index 43d9b7acf7f..705493ab025 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        CH3OH(Istream& is);
-
         //- Construct from dictionary
         CH3OH(const dictionary& dict);
 
-        //- Construct copy
-        CH3OH(const CH3OH& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
index 0e271803ec2..7c218a20b7d 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(CH4N2O, 0);
     addToRunTimeSelectionTable(liquidProperties, CH4N2O,);
-    addToRunTimeSelectionTable(liquidProperties, CH4N2O, Istream);
     addToRunTimeSelectionTable(liquidProperties, CH4N2O, dictionary);
 }
 
@@ -112,25 +111,6 @@ Foam::CH4N2O::CH4N2O
 {}
 
 
-Foam::CH4N2O::CH4N2O(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::CH4N2O::CH4N2O(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -150,23 +130,4 @@ Foam::CH4N2O::CH4N2O(const dictionary& dict)
 {}
 
 
-Foam::CH4N2O::CH4N2O(const CH4N2O& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
index ceca9fc4eb5..3a459e2a952 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        CH4N2O(Istream& is);
-
         //- Construct from dictionary
         CH4N2O(const dictionary& dict);
 
-        //- Construct copy
-        CH4N2O(const CH4N2O& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
index fc1c64a5c36..5f705a70676 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(H2O, 0);
     addToRunTimeSelectionTable(liquidProperties, H2O,);
-    addToRunTimeSelectionTable(liquidProperties, H2O, Istream);
     addToRunTimeSelectionTable(liquidProperties, H2O, dictionary);
 }
 
@@ -135,31 +134,17 @@ Foam::H2O::H2O
 {}
 
 
-Foam::H2O::H2O(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::H2O::H2O(const dictionary& dict)
-    :
+:
     H2O()
-// :
+{
 //     liquidProperties(dict),
 //     rho_(dict.subDict("rho")),
+    InfoInFunction;
+    if (dict.found("rho"))
+    {
+        rho_ = NSRDSfunc5(dict.subDict("rho"));
+    }
 //     pv_(dict.subDict("pv")),
 //     hl_(dict.subDict("hl")),
 //     Cp_(dict.subDict("Cp")),
@@ -172,26 +157,7 @@ Foam::H2O::H2O(const dictionary& dict)
 //     kappag_(dict.subDict("kappag")),
 //     sigma_(dict.subDict("sigma")),
 //     D_(dict.subDict("D"))
-{}
-
-
-Foam::H2O::H2O(const H2O& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
index 2b599e18663..542dfd66c43 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
@@ -106,15 +106,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        H2O(Istream& is);
-
         //- Construct from dictionary
         H2O(const dictionary& dict);
 
-        //- Construct copy
-        H2O(const H2O& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
@@ -188,7 +182,6 @@ public:
             D_.writeData(os); os << endl;
         }
 
-
         //- Ostream Operator
         friend Ostream& operator<<(Ostream& os, const H2O& l)
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
index fc793c8c745..77ba4be1d1e 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
+++ b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(IC8H18, 0);
     addToRunTimeSelectionTable(liquidProperties, IC8H18,);
-    addToRunTimeSelectionTable(liquidProperties, IC8H18, Istream);
     addToRunTimeSelectionTable(liquidProperties, IC8H18, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::IC8H18::IC8H18
 {}
 
 
-Foam::IC8H18::IC8H18(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::IC8H18::IC8H18(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::IC8H18::IC8H18(const dictionary& dict)
 {}
 
 
-Foam::IC8H18::IC8H18(const IC8H18& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
index d044ccfaa9c..9a2e06fdf6f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        IC8H18(Istream& is);
-
         //- Construct from dictionary
         IC8H18(const dictionary& dict);
 
-        //- Construct copy
-        IC8H18(const IC8H18& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
index fc950df619a..01777a26ce6 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
+++ b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(IDEA, 0);
     addToRunTimeSelectionTable(liquidProperties, IDEA,);
-    addToRunTimeSelectionTable(liquidProperties, IDEA, Istream);
     addToRunTimeSelectionTable(liquidProperties, IDEA, dictionary);
 }
 
@@ -148,25 +147,6 @@ Foam::IDEA::IDEA
 {}
 
 
-Foam::IDEA::IDEA(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::IDEA::IDEA(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -186,23 +166,4 @@ Foam::IDEA::IDEA(const dictionary& dict)
 {}
 
 
-Foam::IDEA::IDEA(const IDEA& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
index ec19b109849..b34a7db9e99 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
@@ -129,15 +129,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        IDEA(Istream& is);
-
         //- Construct from dictionary
         IDEA(const dictionary& dict);
 
-        //- Construct copy
-        IDEA(const IDEA& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.C b/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
index f2cce3c18cb..d98ef565b19 100644
--- a/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
+++ b/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(MB, 0);
     addToRunTimeSelectionTable(liquidProperties, MB,);
-    addToRunTimeSelectionTable(liquidProperties, MB, Istream);
     addToRunTimeSelectionTable(liquidProperties, MB, dictionary);
 }
 
@@ -112,25 +111,6 @@ Foam::MB::MB
 {}
 
 
-Foam::MB::MB(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::MB::MB(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -150,23 +130,4 @@ Foam::MB::MB(const dictionary& dict)
 {}
 
 
-Foam::MB::MB(const MB& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.H b/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
index 2d204bf8513..4f7e5a5db75 100644
--- a/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
+++ b/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        MB(Istream& is);
-
         //- Construct from dictionary
         MB(const dictionary& dict);
 
-        //- Construct copy
-        MB(const MB& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.C b/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
index 3470173d973..f22e3b06883 100644
--- a/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
+++ b/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(N2, 0);
     addToRunTimeSelectionTable(liquidProperties, N2,);
-    addToRunTimeSelectionTable(liquidProperties, N2, Istream);
     addToRunTimeSelectionTable(liquidProperties, N2, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::N2::N2
 {}
 
 
-Foam::N2::N2(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::N2::N2(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::N2::N2(const dictionary& dict)
 {}
 
 
-Foam::N2::N2(const N2& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.H b/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
index 77c155d58f0..9bcc0cb67a2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
+++ b/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        N2(Istream& is);
-
         //- Construct from dictionary
         N2(const dictionary& dict);
 
-        //- Construct copy
-        N2(const N2& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
index 83e9e894f49..562a59198b8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
+++ b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(aC10H7CH3, 0);
     addToRunTimeSelectionTable(liquidProperties, aC10H7CH3,);
-    addToRunTimeSelectionTable(liquidProperties, aC10H7CH3, Istream);
     addToRunTimeSelectionTable(liquidProperties, aC10H7CH3, dictionary);
 }
 
@@ -120,25 +119,6 @@ Foam::aC10H7CH3::aC10H7CH3
 {}
 
 
-Foam::aC10H7CH3::aC10H7CH3(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::aC10H7CH3::aC10H7CH3(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -158,23 +138,4 @@ Foam::aC10H7CH3::aC10H7CH3(const dictionary& dict)
 {}
 
 
-Foam::aC10H7CH3::aC10H7CH3(const aC10H7CH3& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
index 06a25fdca13..04bdf872003 100644
--- a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
+++ b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        aC10H7CH3(Istream& is);
-
         //- Construct from dictionary
         aC10H7CH3(const dictionary& dict);
 
-        //- Construct copy
-        aC10H7CH3(const aC10H7CH3& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
index 159b7c9de9e..d2c2fd82d5b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
+++ b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(bC10H7CH3, 0);
     addToRunTimeSelectionTable(liquidProperties, bC10H7CH3,);
-    addToRunTimeSelectionTable(liquidProperties, bC10H7CH3, Istream);
     addToRunTimeSelectionTable(liquidProperties, bC10H7CH3, dictionary);
 }
 
@@ -120,24 +119,6 @@ Foam::bC10H7CH3::bC10H7CH3
 {}
 
 
-Foam::bC10H7CH3::bC10H7CH3(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
 
 Foam::bC10H7CH3::bC10H7CH3(const dictionary& dict)
 :
@@ -158,23 +139,4 @@ Foam::bC10H7CH3::bC10H7CH3(const dictionary& dict)
 {}
 
 
-Foam::bC10H7CH3::bC10H7CH3(const bC10H7CH3& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
index 7869b2db5d2..6f8966edf9e 100644
--- a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
+++ b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
@@ -107,15 +107,9 @@ public:
             const APIdiffCoefFunc& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        bC10H7CH3(Istream& is);
-
         //- Construct from dictionary
         bC10H7CH3(const dictionary& dict);
 
-        //- Construct copy
-        bC10H7CH3(const bC10H7CH3& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
index 48d92becb13..c77141a9b11 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(iC3H8O, 0);
     addToRunTimeSelectionTable(liquidProperties, iC3H8O,);
-    addToRunTimeSelectionTable(liquidProperties, iC3H8O, Istream);
     addToRunTimeSelectionTable(liquidProperties, iC3H8O, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::iC3H8O::iC3H8O
 {}
 
 
-Foam::iC3H8O::iC3H8O(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::iC3H8O::iC3H8O(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::iC3H8O::iC3H8O(const dictionary& dict)
 {}
 
 
-Foam::iC3H8O::iC3H8O(const iC3H8O& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
index 8ad465f5128..bac19d8d72e 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
@@ -105,15 +105,9 @@ public:
             const NSRDSfunc1& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        iC3H8O(Istream& is);
-
         //- Construct from dictionary
         iC3H8O(const dictionary& dict);
 
-        //- Construct copy
-        iC3H8O(const iC3H8O& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
index 7e0f43c7ef8..c5db6942fca 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
@@ -33,7 +33,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(liquidProperties, 0);
     defineRunTimeSelectionTable(liquidProperties,);
-    defineRunTimeSelectionTable(liquidProperties, Istream);
     defineRunTimeSelectionTable(liquidProperties, dictionary);
 }
 
@@ -68,22 +67,6 @@ Foam::liquidProperties::liquidProperties
 {}
 
 
-Foam::liquidProperties::liquidProperties(Istream& is)
-:
-    W_(readScalar(is)),
-    Tc_(readScalar(is)),
-    Pc_(readScalar(is)),
-    Vc_(readScalar(is)),
-    Zc_(readScalar(is)),
-    Tt_(readScalar(is)),
-    Pt_(readScalar(is)),
-    Tb_(readScalar(is)),
-    dipm_(readScalar(is)),
-    omega_(readScalar(is)),
-    delta_(readScalar(is))
-{}
-
-
 Foam::liquidProperties::liquidProperties(const dictionary& dict)
 :
     W_(readScalar(dict.lookup("W"))),
@@ -100,22 +83,6 @@ Foam::liquidProperties::liquidProperties(const dictionary& dict)
 {}
 
 
-Foam::liquidProperties::liquidProperties(const liquidProperties& liq)
-:
-    W_(liq.W_),
-    Tc_(liq.Tc_),
-    Pc_(liq.Pc_),
-    Vc_(liq.Vc_),
-    Zc_(liq.Zc_),
-    Tt_(liq.Tt_),
-    Pt_(liq.Pt_),
-    Tb_(liq.Tb_),
-    dipm_(liq.dipm_),
-    omega_(liq.omega_),
-    delta_(liq.delta_)
-{}
-
-
 // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
 
 Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
@@ -310,7 +277,6 @@ Foam::scalar Foam::liquidProperties::pvInvert(scalar p) const
 
 void Foam::liquidProperties::writeData(Ostream& os) const
 {
-
     os  << W_ << token::SPACE
         << Tc_ << token::SPACE
         << Pc_ << token::SPACE
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
index 5cbfebf2611..54eb237b1ae 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
@@ -105,15 +105,6 @@ public:
             ()
         );
 
-        declareRunTimeSelectionTable
-        (
-            autoPtr,
-            liquidProperties,
-            Istream,
-            (Istream& is),
-            (is)
-        );
-
         declareRunTimeSelectionTable
         (
             autoPtr,
@@ -142,15 +133,9 @@ public:
             scalar delta
         );
 
-        //- Construct from Istream
-        liquidProperties(Istream& is);
-
         //- Construct from dictionary
         liquidProperties(const dictionary& dict);
 
-        //- Construct copy
-        liquidProperties(const liquidProperties& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
@@ -160,9 +145,6 @@ public:
 
     // Selectors
 
-        //- Return a pointer to a new liquidProperties created from input
-    // static autoPtr<liquidProperties> New(Istream& is);
-
         //- Return a pointer to a new liquidProperties created from dictionary
         static autoPtr<liquidProperties> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
index 2369adffd06..419c0c19205 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(nC3H8O, 0);
     addToRunTimeSelectionTable(liquidProperties, nC3H8O,);
-    addToRunTimeSelectionTable(liquidProperties, nC3H8O, Istream);
     addToRunTimeSelectionTable(liquidProperties, nC3H8O, dictionary);
 }
 
@@ -128,25 +127,6 @@ Foam::nC3H8O::nC3H8O
 {}
 
 
-Foam::nC3H8O::nC3H8O(Istream& is)
-:
-    liquidProperties(is),
-    rho_(is),
-    pv_(is),
-    hl_(is),
-    Cp_(is),
-    h_(is),
-    Cpg_(is),
-    B_(is),
-    mu_(is),
-    mug_(is),
-    kappa_(is),
-    kappag_(is),
-    sigma_(is),
-    D_(is)
-{}
-
-
 Foam::nC3H8O::nC3H8O(const dictionary& dict)
 :
     liquidProperties(dict),
@@ -166,23 +146,4 @@ Foam::nC3H8O::nC3H8O(const dictionary& dict)
 {}
 
 
-Foam::nC3H8O::nC3H8O(const nC3H8O& liq)
-:
-    liquidProperties(liq),
-    rho_(liq.rho_),
-    pv_(liq.pv_),
-    hl_(liq.hl_),
-    Cp_(liq.Cp_),
-    h_(liq.h_),
-    Cpg_(liq.Cpg_),
-    B_(liq.B_),
-    mu_(liq.mu_),
-    mug_(liq.mug_),
-    kappa_(liq.kappa_),
-    kappag_(liq.kappag_),
-    sigma_(liq.sigma_),
-    D_(liq.D_)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
index a55a0e53ff9..d5dec6a855b 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
@@ -105,15 +105,9 @@ public:
             const NSRDSfunc1& vapourDiffussivity
         );
 
-        //- Construct from Istream
-        nC3H8O(Istream& is);
-
         //- Construct from dictionary
         nC3H8O(const dictionary& dict);
 
-        //- Construct copy
-        nC3H8O(const nC3H8O& liq);
-
         //- Construct and return clone
         virtual autoPtr<liquidProperties> clone() const
         {
-- 
GitLab


From 72b705edbdb1c96d362cc471c0be9e56433283a1 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Feb 2017 15:50:00 +0000
Subject: [PATCH 084/277] thermophysicalModels: Removed unused and unmaintained
 Istream constructors

---
 .../properties/solidProperties/C/C.C          | 15 +----
 .../properties/solidProperties/C/C.H          |  8 +--
 .../properties/solidProperties/CaCO3/CaCO3.C  | 15 +----
 .../properties/solidProperties/CaCO3/CaCO3.H  |  8 +--
 .../properties/solidProperties/ash/ash.C      | 15 +----
 .../properties/solidProperties/ash/ash.H      |  8 +--
 .../solidProperties/solidProperties.C         | 21 ------
 .../solidProperties/solidProperties.H         | 18 -----
 .../solidProperties/solidPropertiesNew.C      | 45 +------------
 .../fvDOM/absorptionCoeffs/absorptionCoeffs.C | 28 +-------
 .../fvDOM/absorptionCoeffs/absorptionCoeffs.H |  8 +--
 .../Reactions/solidReaction/solidReaction.C   | 19 +-----
 .../Reactions/solidReaction/solidReaction.H   | 11 +---
 .../solidArrheniusReactionRate.H              |  8 +--
 .../solidArrheniusReactionRateI.H             | 18 +----
 .../reaction/reactions/makeSolidReaction.H    | 10 +--
 .../const/constAnIsoSolidTransport.C          | 11 +---
 .../transport/const/constIsoSolidTransport.C  | 11 +---
 .../transport/const/constIsoSolidTransport.H  |  2 +-
 .../exponential/exponentialSolidTransport.C   | 11 +---
 .../polynomial/polynomialSolidTransport.C     | 28 +-------
 .../polynomial/polynomialSolidTransport.H     |  9 ---
 .../polynomial/polynomialSolidTransportI.H    | 23 -------
 .../equationOfState/Boussinesq/Boussinesq.C   | 27 +-------
 .../equationOfState/Boussinesq/Boussinesq.H   |  9 ---
 .../equationOfState/Boussinesq/BoussinesqI.H  | 27 --------
 .../PengRobinsonGas/PengRobinsonGas.C         | 26 +-------
 .../PengRobinsonGas/PengRobinsonGas.H         |  6 --
 .../PengRobinsonGas/PengRobinsonGasI.H        | 11 ----
 .../adiabaticPerfectFluid.C                   | 28 +-------
 .../adiabaticPerfectFluid.H                   |  6 --
 .../adiabaticPerfectFluidI.H                  | 11 ----
 .../icoPolynomial/icoPolynomial.C             | 19 +-----
 .../icoPolynomial/icoPolynomial.H             |  9 ---
 .../icoPolynomial/icoPolynomialI.H            | 22 -------
 .../incompressiblePerfectGas.C                | 23 +------
 .../incompressiblePerfectGas.H                |  9 ---
 .../incompressiblePerfectGasI.H               | 25 -------
 .../specie/equationOfState/linear/linear.C    | 17 +----
 .../specie/equationOfState/linear/linear.H    |  6 --
 .../specie/equationOfState/linear/linearI.H   |  8 ---
 .../perfectFluid/perfectFluid.C               | 17 +----
 .../perfectFluid/perfectFluid.H               |  6 --
 .../perfectFluid/perfectFluidI.H              |  8 ---
 .../equationOfState/perfectGas/perfectGas.C   | 13 +---
 .../equationOfState/perfectGas/perfectGas.H   |  6 --
 .../equationOfState/perfectGas/perfectGasI.H  |  8 ---
 .../equationOfState/rhoConst/rhoConst.C       | 17 +----
 .../equationOfState/rhoConst/rhoConst.H       |  6 --
 .../equationOfState/rhoConst/rhoConstI.H      |  8 ---
 .../IrreversibleReaction.C                    | 21 +-----
 .../IrreversibleReaction.H                    | 10 +--
 .../NonEquilibriumReversibleReaction.C        | 28 +-------
 .../NonEquilibriumReversibleReaction.H        | 10 +--
 .../reaction/Reactions/Reaction/Reaction.C    | 61 -----------------
 .../reaction/Reactions/Reaction/Reaction.H    | 65 +------------------
 .../Reactions/ReactionList/ReactionList.C     | 21 +-----
 .../Reactions/ReactionList/ReactionList.H     | 10 +--
 .../ReversibleReaction/ReversibleReaction.C   | 21 +-----
 .../ReversibleReaction/ReversibleReaction.H   | 10 +--
 .../ArrheniusReactionRate.H                   |  9 +--
 .../ArrheniusReactionRateI.H                  | 16 +----
 .../ChemicallyActivatedReactionRate.H         |  9 +--
 .../ChemicallyActivatedReactionRateI.H        | 22 +------
 .../FallOffReactionRate/FallOffReactionRate.H |  9 +--
 .../FallOffReactionRateI.H                    | 19 +-----
 .../JanevReactionRate/JanevReactionRate.H     |  9 +--
 .../JanevReactionRate/JanevReactionRateI.H    | 17 +----
 .../LandauTellerReactionRate.H                |  9 +--
 .../LandauTellerReactionRateI.H               | 18 +----
 .../LangmuirHinshelwoodReactionRate.H         |  9 +--
 .../LangmuirHinshelwoodReactionRateI.H        | 23 +------
 .../LindemannFallOffFunction.H                |  5 +-
 .../LindemannFallOffFunctionI.H               |  6 +-
 .../SRIFallOffFunction/SRIFallOffFunction.H   |  5 +-
 .../SRIFallOffFunction/SRIFallOffFunctionI.H  | 14 +---
 .../TroeFallOffFunction/TroeFallOffFunction.H |  5 +-
 .../TroeFallOffFunctionI.H                    | 13 +---
 .../infiniteReactionRate.H                    |  4 +-
 .../powerSeries/powerSeriesReactionRate.H     |  9 +--
 .../powerSeries/powerSeriesReactionRateI.H    | 17 +----
 .../thirdBodyArrheniusReactionRate.H          |  9 +--
 .../thirdBodyArrheniusReactionRateI.H         | 19 +-----
 .../thirdBodyEfficiencies.H                   |  9 +--
 .../thirdBodyEfficienciesI.H                  | 58 +----------------
 .../specie/reaction/reactions/makeReaction.H  | 11 +---
 .../specie/reaction/reactions/makeReactions.C |  3 +-
 .../specie/specie/specie.C                    | 16 +----
 .../specie/specie/specie.H                    |  6 --
 .../specie/specie/specieI.H                   |  8 ---
 .../specie/thermo/eConst/eConstThermo.C       | 16 +----
 .../specie/thermo/eConst/eConstThermo.H       |  6 --
 .../specie/thermo/eConst/eConstThermoI.H      | 11 ----
 .../specie/thermo/hConst/hConstThermo.C       | 16 +----
 .../specie/thermo/hConst/hConstThermo.H       |  6 --
 .../specie/thermo/hConst/hConstThermoI.H      | 11 ----
 .../thermo/hPolynomial/hPolynomialThermo.C    | 40 +-----------
 .../thermo/hPolynomial/hPolynomialThermo.H    |  6 --
 .../thermo/hPolynomial/hPolynomialThermoI.H   | 15 -----
 .../specie/thermo/hPower/hPowerThermo.C       | 28 +-------
 .../specie/thermo/hPower/hPowerThermo.H       |  6 --
 .../specie/thermo/hPower/hPowerThermoI.H      | 11 ----
 .../specie/thermo/hRefConst/hRefConstThermo.C | 19 +-----
 .../specie/thermo/hRefConst/hRefConstThermo.H |  6 --
 .../thermo/hRefConst/hRefConstThermoI.H       | 11 ----
 .../specie/thermo/janaf/janafThermo.C         | 27 +-------
 .../specie/thermo/thermo/thermo.C             | 16 +----
 .../specie/thermo/thermo/thermo.H             |  3 -
 .../specie/transport/const/constTransport.C   | 19 +-----
 .../specie/transport/const/constTransport.H   |  6 --
 .../specie/transport/const/constTransportI.H  | 14 ----
 .../logPolynomial/logPolynomialTransport.C    | 28 +-------
 .../logPolynomial/logPolynomialTransport.H    |  9 ---
 .../logPolynomial/logPolynomialTransportI.H   | 23 -------
 .../polynomial/polynomialTransport.C          | 25 +------
 .../polynomial/polynomialTransport.H          |  9 ---
 .../polynomial/polynomialTransportI.H         | 23 -------
 .../sutherland/sutherlandTransport.C          | 21 +-----
 .../sutherland/sutherlandTransport.H          |  6 --
 .../sutherland/sutherlandTransportI.H         | 14 ----
 .../APIdiffCoefFunc/APIdiffCoefFunc.C         | 19 +-----
 .../APIdiffCoefFunc/APIdiffCoefFunc.H         |  5 +-
 .../NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C    | 14 +---
 .../NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H    |  5 +-
 .../NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C    | 13 +---
 .../NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H    |  5 +-
 .../NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C  | 13 +---
 .../NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H  |  5 +-
 .../NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C    | 12 +---
 .../NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H    |  5 +-
 .../NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C    | 12 +---
 .../NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H    |  5 +-
 .../NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C    | 13 +---
 .../NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H    |  5 +-
 .../NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C    | 12 +---
 .../NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H    |  5 +-
 .../NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C    | 14 +---
 .../NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H    |  5 +-
 .../NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C    | 13 +---
 .../NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H    |  5 +-
 .../thermophysicalFunction.C                  | 37 +----------
 .../thermophysicalFunction.H                  | 14 +---
 142 files changed, 112 insertions(+), 1946 deletions(-)

diff --git a/src/thermophysicalModels/properties/solidProperties/C/C.C b/src/thermophysicalModels/properties/solidProperties/C/C.C
index 2f8dfa9acba..35474685702 100644
--- a/src/thermophysicalModels/properties/solidProperties/C/C.C
+++ b/src/thermophysicalModels/properties/solidProperties/C/C.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(C, 0);
     addToRunTimeSelectionTable(solidProperties, C,);
-    addToRunTimeSelectionTable(solidProperties, C, Istream);
     addToRunTimeSelectionTable(solidProperties, C, dictionary);
 }
 
@@ -57,24 +56,12 @@ Foam::C::C(const solidProperties& s)
 {}
 
 
-Foam::C::C(Istream& is)
-:
-    solidProperties(is)
-{}
-
-
 Foam::C::C(const dictionary& dict)
 :
     solidProperties(dict)
 {}
 
 
-Foam::C::C(const C& s)
-:
-    solidProperties(s)
-{}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 void Foam::C::writeData(Ostream& os) const
diff --git a/src/thermophysicalModels/properties/solidProperties/C/C.H b/src/thermophysicalModels/properties/solidProperties/C/C.H
index a266b152c21..7086df5324c 100644
--- a/src/thermophysicalModels/properties/solidProperties/C/C.H
+++ b/src/thermophysicalModels/properties/solidProperties/C/C.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,15 +73,9 @@ public:
         //- Construct from solidProperties
         C(const solidProperties& s);
 
-        //- Construct from Istream
-        C(Istream& is);
-
         //- Construct from dictionary
         C(const dictionary& dict);
 
-        //- Construct copy
-        C(const C& s);
-
         //- Construct and return clone
         virtual autoPtr<solidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C
index a7dbb8bff46..2bcfee1b6db 100644
--- a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C
+++ b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(CaCO3, 0);
     addToRunTimeSelectionTable(solidProperties, CaCO3,);
-    addToRunTimeSelectionTable(solidProperties, CaCO3, Istream);
     addToRunTimeSelectionTable(solidProperties, CaCO3, dictionary);
 }
 
@@ -57,24 +56,12 @@ Foam::CaCO3::CaCO3(const solidProperties& s)
 {}
 
 
-Foam::CaCO3::CaCO3(Istream& is)
-:
-    solidProperties(is)
-{}
-
-
 Foam::CaCO3::CaCO3(const dictionary& dict)
 :
     solidProperties(dict)
 {}
 
 
-Foam::CaCO3::CaCO3(const CaCO3& s)
-:
-    solidProperties(s)
-{}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 void Foam::CaCO3::writeData(Ostream& os) const
diff --git a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H
index 0ff59dae284..92bcdead4b4 100644
--- a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H
+++ b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -74,15 +74,9 @@ public:
         //- Construct from solidProperties
         CaCO3(const solidProperties& s);
 
-        //- Construct from Istream
-        CaCO3(Istream& is);
-
         //- Construct from dictionary
         CaCO3(const dictionary& dict);
 
-        //- Construct copy
-        CaCO3(const CaCO3& s);
-
         //- Construct and return clone
         virtual autoPtr<solidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/solidProperties/ash/ash.C b/src/thermophysicalModels/properties/solidProperties/ash/ash.C
index 381191f89ea..4ab67b5cdf6 100644
--- a/src/thermophysicalModels/properties/solidProperties/ash/ash.C
+++ b/src/thermophysicalModels/properties/solidProperties/ash/ash.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(ash, 0);
     addToRunTimeSelectionTable(solidProperties, ash,);
-    addToRunTimeSelectionTable(solidProperties, ash, Istream);
     addToRunTimeSelectionTable(solidProperties, ash, dictionary);
 }
 
@@ -57,24 +56,12 @@ Foam::ash::ash(const solidProperties& s)
 {}
 
 
-Foam::ash::ash(Istream& is)
-:
-    solidProperties(is)
-{}
-
-
 Foam::ash::ash(const dictionary& dict)
 :
     solidProperties(dict)
 {}
 
 
-Foam::ash::ash(const ash& s)
-:
-    solidProperties(s)
-{}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 void Foam::ash::writeData(Ostream& os) const
diff --git a/src/thermophysicalModels/properties/solidProperties/ash/ash.H b/src/thermophysicalModels/properties/solidProperties/ash/ash.H
index 2958b798496..5f6e2135b79 100644
--- a/src/thermophysicalModels/properties/solidProperties/ash/ash.H
+++ b/src/thermophysicalModels/properties/solidProperties/ash/ash.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -74,15 +74,9 @@ public:
         //- Construct from solidProperties
         ash(const solidProperties& s);
 
-        //- Construct from Istream
-        ash(Istream& is);
-
         //- Construct from dictionary
         ash(const dictionary& dict);
 
-        //- Construct copy
-        ash(const ash& s);
-
         //- Construct and return clone
         virtual autoPtr<solidProperties> clone() const
         {
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
index 9151ff5da77..cca13922030 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
@@ -31,7 +31,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(solidProperties, 0);
     defineRunTimeSelectionTable(solidProperties,);
-    defineRunTimeSelectionTable(solidProperties, Istream);
     defineRunTimeSelectionTable(solidProperties, dictionary);
 }
 
@@ -54,16 +53,6 @@ Foam::solidProperties::solidProperties
 {}
 
 
-Foam::solidProperties::solidProperties(Istream& is)
-:
-    rho_(readScalar(is)),
-    Cp_(readScalar(is)),
-    kappa_(readScalar(is)),
-    Hf_(readScalar(is)),
-    emissivity_(readScalar(is))
-{}
-
-
 Foam::solidProperties::solidProperties(const dictionary& dict)
 :
     rho_(readScalar(dict.lookup("rho"))),
@@ -74,16 +63,6 @@ Foam::solidProperties::solidProperties(const dictionary& dict)
 {}
 
 
-Foam::solidProperties::solidProperties(const solidProperties& s)
-:
-    rho_(s.rho_),
-    Cp_(s.Cp_),
-    kappa_(s.kappa_),
-    Hf_(s.Hf_),
-    emissivity_(s.emissivity_)
-{}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 void Foam::solidProperties::writeData(Ostream& os) const
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
index c0acae07eda..f42e84be646 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
@@ -96,15 +96,6 @@ public:
         ()
     );
 
-    declareRunTimeSelectionTable
-    (
-        autoPtr,
-        solidProperties,
-        Istream,
-        (Istream& is),
-        (is)
-    );
-
     declareRunTimeSelectionTable
     (
         autoPtr,
@@ -127,15 +118,9 @@ public:
             scalar emissivity
         );
 
-        //- Construct from Istream
-        solidProperties(Istream& is);
-
         //- Construct from dictionary
         solidProperties(const dictionary& dict);
 
-        //- Construct copy
-        solidProperties(const solidProperties& s);
-
         //- Construct and return clone
         virtual autoPtr<solidProperties> clone() const
         {
@@ -145,9 +130,6 @@ public:
 
     // Selectors
 
-        //- Return a pointer to a new solidProperties created from input
-        static autoPtr<solidProperties> New(Istream& is);
-
         //- Return a pointer to a new solidProperties created from dictionary
         static autoPtr<solidProperties> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
index e9c34b5726b..0e6119e0f04 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,49 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New(Istream& is)
-{
-    if (debug)
-    {
-        InfoInFunction << "Constructing solid" << endl;
-    }
-
-    const word solidType(is);
-    const word coeffs(is);
-
-    if (coeffs == "defaultCoeffs")
-    {
-        ConstructorTable::iterator cstrIter =
-            ConstructorTablePtr_->find(solidType);
-
-        if (cstrIter == ConstructorTablePtr_->end())
-        {
-            FatalErrorInFunction
-                << "Unknown solidProperties type " << solidType << nl << nl
-                << "Valid solidProperties types are :" << endl
-                << ConstructorTablePtr_->sortedToc()
-                << exit(FatalError);
-        }
-
-        return autoPtr<solidProperties>(cstrIter()());
-    }
-    else if (coeffs == "coeffs")
-    {
-        return autoPtr<solidProperties>(new solidProperties(is));
-    }
-    else
-    {
-        FatalErrorInFunction
-            << "solidProperties type " << solidType
-            << ", option " << coeffs << " given"
-            << ", should be coeffs or defaultCoeffs"
-            << exit(FatalError);
-
-        return autoPtr<solidProperties>(nullptr);
-    }
-}
-
-
 Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
 (
     const dictionary& dict
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.C
index c3bc3ef327b..1b50a08cfd0 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.C
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -26,26 +26,6 @@ License
 #include "absorptionCoeffs.H"
 #include "IOstreams.H"
 
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-Foam::radiation::absorptionCoeffs::absorptionCoeffs(Istream& is)
-:
-   Tcommon_(readScalar(is)),
-   Tlow_(readScalar(is)),
-   Thigh_(readScalar(is)),
-   invTemp_(readBool(is))
-{
-    for (label coefLabel=0; absorptionCoeffs::nCoeffs_; coefLabel++)
-    {
-        is >> highACoeffs_[coefLabel];
-    }
-
-    for (label coefLabel=0; absorptionCoeffs::nCoeffs_; coefLabel++)
-    {
-        is >> lowACoeffs_[coefLabel];
-    }
-}
-
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * //
 
@@ -86,12 +66,6 @@ Foam::radiation::absorptionCoeffs::coeffs
 }
 
 
-void Foam::radiation::absorptionCoeffs::initialise(Istream&)
-{
-    absorptionCoeffs(Istream);
-}
-
-
 void Foam::radiation::absorptionCoeffs::initialise(const dictionary& dict)
 {
     dict.lookup("Tcommon") >> Tcommon_;
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.H
index b2eed50da40..4f18495e53d 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -90,9 +90,6 @@ public:
 
     // Constructors
 
-        //- Construct from Istream
-        absorptionCoeffs(Istream&);
-
         // Null constructor
         absorptionCoeffs()
         {}
@@ -110,9 +107,6 @@ public:
         // Initialise from a dictionary
         void initialise(const dictionary&);
 
-        // Initialise from an Istream
-        void initialise(Istream&);
-
 
     // Access Functions
 
diff --git a/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.C b/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.C
index b5a4cfde96b..bffd5f8d2f2 100644
--- a/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.C
+++ b/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,23 +59,6 @@ Foam::solidReaction<ReactionThermo>::solidReaction
 {}
 
 
-template<class ReactionThermo>
-Foam::solidReaction<ReactionThermo>::solidReaction
-(
-    const speciesTable& species,
-    const HashPtrTable<ReactionThermo>& thermoDatabase,
-    Istream& is
-)
-:
-    Reaction<ReactionThermo>(species, thermoDatabase, is),
-    pyrolisisGases_(),
-    glhs_(),
-    grhs_()
-{
-    NotImplemented;
-}
-
-
 template<class ReactionThermo>
 Foam::solidReaction<ReactionThermo>::solidReaction
 (
diff --git a/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.H b/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.H
index 190e758123c..6addc874946 100644
--- a/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.H
+++ b/src/thermophysicalModels/solidSpecie/reaction/Reactions/solidReaction/solidReaction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -120,15 +120,6 @@ public:
         );
 
 
-        //- Construct from Istream
-        solidReaction
-        (
-            const speciesTable& pyrolisisGases,
-            const HashPtrTable<ReactionThermo>& thermoDatabase,
-            Istream& is
-        );
-
-
         //- Construct from dictionary
         solidReaction
         (
diff --git a/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H b/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H
index 1a734a96dbb..c5642e627b8 100644
--- a/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H
+++ b/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -75,12 +75,6 @@ public:
             const scalar Tcrit
         );
 
-        //- Construct from Istream
-        inline solidArrheniusReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
 
         //- Construct from dictionary
         inline solidArrheniusReactionRate
diff --git a/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRateI.H b/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRateI.H
index 2c59b284282..1ab4bcb50dd 100644
--- a/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRateI.H
+++ b/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -39,18 +39,6 @@ inline Foam::solidArrheniusReactionRate::solidArrheniusReactionRate
 {}
 
 
-inline Foam::solidArrheniusReactionRate::solidArrheniusReactionRate
-(
-    const speciesTable&,
-    Istream& is
-)
-:
-    A_(readScalar(is.readBegin("solidArrheniusReaction(Istream&)"))),
-    Ta_(readScalar(is)),
-    Tcrit_(readScalar(is))
-{}
-
-
 inline Foam::solidArrheniusReactionRate::solidArrheniusReactionRate
 (
     const speciesTable&,
@@ -101,9 +89,7 @@ inline Foam::Ostream& Foam::operator<<
     const solidArrheniusReactionRate& arr
 )
 {
-    os  << token::BEGIN_LIST
-        << arr.A_ << token::SPACE << arr.Ta_ << token::SPACE << arr.Tcrit_
-        << token::END_LIST;
+    arr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/solidSpecie/reaction/reactions/makeSolidReaction.H b/src/thermophysicalModels/solidSpecie/reaction/reactions/makeSolidReaction.H
index bc17d12bb41..b5444f1e59a 100644
--- a/src/thermophysicalModels/solidSpecie/reaction/reactions/makeSolidReaction.H
+++ b/src/thermophysicalModels/solidSpecie/reaction/reactions/makeSolidReaction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,6 @@ namespace Foam
     typedef ReactionType<solidReaction, Thermo, ReactionRate>                  \
         ReactionType##Thermo##ReactionRate;                                    \
                                                                                \
-    defineTemplateRunTimeSelectionTable(Reaction##Thermo, Istream);            \
     defineTemplateRunTimeSelectionTable(Reaction##Thermo, dictionary);         \
                                                                                \
     defineTemplateTypeNameAndDebug(solidReaction##Thermo, 0);                  \
@@ -69,13 +68,6 @@ namespace Foam
     );                                                                         \
                                                                                \
     addToRunTimeSelectionTable                                                 \
-    (                                                                          \
-        Reaction##Thermo,                                                      \
-        ReactionType##Thermo##ReactionRate,                                    \
-        Istream                                                                \
-    );                                                                         \
-                                                                               \
-    addToRunTimeSelectionTable                                                 \
     (                                                                          \
         Reaction##Thermo,                                                      \
         ReactionType##Thermo##ReactionRate,                                    \
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.C b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.C
index bef81029444..5a99f4caaab 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.C
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,14 +64,7 @@ Foam::Ostream& Foam::operator<<
     const constAnIsoSolidTransport<Thermo>& ct
 )
 {
-    operator<<(os, static_cast<const Thermo&>(ct));
-    os << tab << ct.kappa_;
-
-    os.check
-    (
-        "Ostream& operator<<(Ostream& os,const constAnIsoSolidTransport& ct)"
-    );
-
+    ct.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.C b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.C
index 02684194fc0..2d9135e8110 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.C
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,14 +64,7 @@ Foam::Ostream& Foam::operator<<
     const constIsoSolidTransport<Thermo>& ct
 )
 {
-    operator<<(os, static_cast<const Thermo&>(ct));
-    os << tab << ct.kappa_;
-
-    os.check
-    (
-        "Ostream& operator<<(Ostream& os,const constIsoSolidTransport& ct)"
-    );
-
+    ct.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H
index f290b4288df..5de4c38fcf9 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransport.H
@@ -94,7 +94,7 @@ public:
             const constIsoSolidTransport&
         );
 
-        //- Construct from Istream
+        //- Construct from dictionary
         constIsoSolidTransport(const dictionary& dict);
 
         // Selector from dictionary
diff --git a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.C b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.C
index 24abeac8ae7..02d6635d3f5 100644
--- a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.C
+++ b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -72,14 +72,7 @@ Foam::Ostream& Foam::operator<<
     Ostream& os, const exponentialSolidTransport<Thermo>& et
 )
 {
-    operator<<(os, static_cast<const Thermo&>(et));
-    os << tab << et.kappa0_  << tab << et.n0_ << tab << et.Tref_;
-
-    os.check
-    (
-        "Ostream& operator<<(Ostream& os, const exponentialSolidTransport& et)"
-    );
-
+    et.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.C b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.C
index e43b30a2e89..0a2d0a665f5 100644
--- a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.C
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,18 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo, int PolySize>
-Foam::polynomialSolidTransport<Thermo, PolySize>::polynomialSolidTransport
-(
-    Istream& is
-)
-:
-    Thermo(is),
-    kappaCoeffs_("kappaCoeffs<" + Foam::name(PolySize) + '>', is)
-{
-}
-
-
 template<class Thermo, int PolySize>
 Foam::polynomialSolidTransport<Thermo, PolySize>::polynomialSolidTransport
 (
@@ -85,19 +73,7 @@ Foam::Ostream& Foam::operator<<
     const polynomialSolidTransport<Thermo, PolySize>& pt
 )
 {
-    os  << static_cast<const Thermo&>(pt) << tab
-        << "kappaCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.kappaCoeffs_;
-
-    os.check
-    (
-        "Ostream& operator<<"
-        "("
-            "Ostream&, "
-            "const polynomialSolidTransport<Thermo, PolySize>&"
-        ")"
-    );
-
+    pt.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
index 716284cb1b5..3cb7a3b3ecf 100644
--- a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
@@ -127,9 +127,6 @@ public:
 
     // Constructors
 
-        //- Construct copy
-        inline polynomialSolidTransport(const polynomialSolidTransport&);
-
         //- Construct as named copy
         inline polynomialSolidTransport
         (
@@ -137,18 +134,12 @@ public:
             const polynomialSolidTransport&
         );
 
-        //- Construct from Istream
-        polynomialSolidTransport(Istream& is);
-
         //- Construct from dictionary
         polynomialSolidTransport(const dictionary& dict);
 
         //- Construct and return a clone
         inline autoPtr<polynomialSolidTransport> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<polynomialSolidTransport> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<polynomialSolidTransport> New
         (
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
index 1a923d490f4..727e2be6b0a 100644
--- a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
@@ -27,18 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo, int PolySize>
-inline Foam::polynomialSolidTransport<Thermo, PolySize>::
-polynomialSolidTransport
-(
-    const polynomialSolidTransport& pt
-)
-:
-    Thermo(pt),
-    kappaCoeffs_(pt.kappaCoeffs_)
-{}
-
-
 template<class Thermo, int PolySize>
 inline Foam::polynomialSolidTransport<Thermo, PolySize>::
 polynomialSolidTransport
@@ -76,17 +64,6 @@ Foam::polynomialSolidTransport<Thermo, PolySize>::clone() const
 }
 
 
-template<class Thermo, int PolySize>
-inline Foam::autoPtr<Foam::polynomialSolidTransport<Thermo, PolySize>>
-Foam::polynomialSolidTransport<Thermo, PolySize>::New(Istream& is)
-{
-    return autoPtr<polynomialSolidTransport<Thermo, PolySize>>
-    (
-        new polynomialSolidTransport<Thermo, PolySize>(is)
-    );
-}
-
-
 template<class Thermo, int PolySize>
 inline Foam::autoPtr<Foam::polynomialSolidTransport<Thermo, PolySize>>
 Foam::polynomialSolidTransport<Thermo, PolySize>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C
index 12286d13f67..66ae9a7cf7a 100644
--- a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C
+++ b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.C
@@ -28,22 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::Boussinesq<Specie>::Boussinesq(Istream& is)
-:
-    Specie(is),
-    rho0_(readScalar(is)),
-    T0_(readScalar(is)),
-    beta_(readScalar(is))
-{
-    is.check
-    (
-        "Boussinesq<Specie>::"
-        "Boussinesq(Istream& is)"
-    );
-}
-
-
 template<class Specie>
 Foam::Boussinesq<Specie>::Boussinesq
 (
@@ -81,16 +65,7 @@ Foam::Ostream& Foam::operator<<
     const Boussinesq<Specie>& b
 )
 {
-    os  << static_cast<const Specie&>(b)
-        << token::SPACE << b.rho0_
-        << token::SPACE << b.T0_
-        << token::SPACE << b.beta_;
-
-    os.check
-    (
-        "Ostream& operator<<"
-        "(Ostream& os, const Boussinesq<Specie>& st)"
-    );
+    b.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H
index 720483c07e7..4c91afbf27e 100644
--- a/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H
+++ b/src/thermophysicalModels/specie/equationOfState/Boussinesq/Boussinesq.H
@@ -115,12 +115,6 @@ public:
             const scalar beta
         );
 
-        //- Construct from Boussinesq
-        inline Boussinesq(const Boussinesq& sp);
-
-        //- Construct from Istream
-        Boussinesq(Istream&);
-
         //- Construct from dictionary
         Boussinesq(const dictionary& dict);
 
@@ -134,9 +128,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<Boussinesq> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<Boussinesq> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<Boussinesq> New
         (
diff --git a/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H b/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H
index 45b9d58cfea..814a9a1e82f 100644
--- a/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H
+++ b/src/thermophysicalModels/specie/equationOfState/Boussinesq/BoussinesqI.H
@@ -41,19 +41,6 @@ inline Foam::Boussinesq<Specie>::Boussinesq
 {}
 
 
-template<class Specie>
-inline Foam::Boussinesq<Specie>::Boussinesq
-(
-    const Boussinesq& b
-)
-:
-    Specie(b),
-    rho0_(b.rho0_),
-    T0_(b.T0_),
-    beta_(b.beta_)
-{}
-
-
 template<class Specie>
 inline Foam::Boussinesq<Specie>::Boussinesq
 (
@@ -79,20 +66,6 @@ Foam::Boussinesq<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::Boussinesq<Specie>>
-Foam::Boussinesq<Specie>::New
-(
-    Istream& is
-)
-{
-    return autoPtr<Boussinesq<Specie>>
-    (
-        new Boussinesq<Specie>(is)
-    );
-}
-
-
 template<class Specie>
 inline Foam::autoPtr<Foam::Boussinesq<Specie>>
 Foam::Boussinesq<Specie>::New
diff --git a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C
index eeaa0a2cead..e61f40d5f22 100644
--- a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C
+++ b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.C
@@ -28,20 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::PengRobinsonGas<Specie>::PengRobinsonGas(Istream& is)
-:
-    Specie(is),
-    Tc_(readScalar(is)),
-    Vc_(readScalar(is)),
-    Zc_(readScalar(is)),
-    Pc_(readScalar(is)),
-    omega_(readScalar(is))
-{
-    is.check("PengRobinsonGas<Specie>::PengRobinsonGas(Istream& is)");
-}
-
-
 template<class Specie>
 Foam::PengRobinsonGas<Specie>::PengRobinsonGas
 (
@@ -78,17 +64,7 @@ Foam::Ostream& Foam::operator<<
     const PengRobinsonGas<Specie>& pg
 )
 {
-    os  << static_cast<const Specie&>(pg)
-        << token::SPACE << pg.Tc_
-        << token::SPACE << pg.Vc_
-        << token::SPACE << pg.Zc_
-        << token::SPACE << pg.Pc_
-        << token::SPACE << pg.omega_;
-
-    os.check
-    (
-        "Ostream& operator<<(Ostream& os, const PengRobinsonGas<Specie>& st)"
-    );
+    pg.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H
index 3f0498bb5ee..8f15ae892fe 100644
--- a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H
+++ b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGas.H
@@ -119,9 +119,6 @@ public:
             const scalar& omega
         );
 
-        //- Construct from Istream
-        PengRobinsonGas(Istream&);
-
         //- Construct from dictionary
         PengRobinsonGas(const dictionary& dict);
 
@@ -131,9 +128,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<PengRobinsonGas> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<PengRobinsonGas> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<PengRobinsonGas> New
         (
diff --git a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H
index d4553eb380d..85df8cea5a2 100644
--- a/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H
+++ b/src/thermophysicalModels/specie/equationOfState/PengRobinsonGas/PengRobinsonGasI.H
@@ -77,17 +77,6 @@ Foam::PengRobinsonGas<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::PengRobinsonGas<Specie>>
-Foam::PengRobinsonGas<Specie>::New
-(
-    Istream& is
-)
-{
-    return autoPtr<PengRobinsonGas<Specie>>(new PengRobinsonGas<Specie>(is));
-}
-
-
 template<class Specie>
 inline Foam::autoPtr<Foam::PengRobinsonGas<Specie>>
 Foam::PengRobinsonGas<Specie>::New
diff --git a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C
index a8609cb7ad2..2c415b87481 100644
--- a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C
+++ b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.C
@@ -28,22 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::adiabaticPerfectFluid<Specie>::adiabaticPerfectFluid(Istream& is)
-:
-    Specie(is),
-    p0_(readScalar(is)),
-    rho0_(readScalar(is)),
-    gamma_(readScalar(is)),
-    B_(readScalar(is))
-{
-    is.check
-    (
-        "adiabaticPerfectFluid<Specie>::adiabaticPerfectFluid(Istream& is)"
-    );
-}
-
-
 template<class Specie>
 Foam::adiabaticPerfectFluid<Specie>::adiabaticPerfectFluid
 (
@@ -84,17 +68,7 @@ Foam::Ostream& Foam::operator<<
     const adiabaticPerfectFluid<Specie>& pf
 )
 {
-    os  << static_cast<const Specie&>(pf)
-        << token::SPACE << pf.R_
-        << token::SPACE << pf.rho0_
-        << token::SPACE << pf.gamma_
-        << token::SPACE << pf.B_;
-
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const adiabaticPerfectFluid<Specie>&)"
-    );
-
+    pf.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H
index f22275cf91c..bfb2dc19d55 100644
--- a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H
+++ b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluid.H
@@ -114,9 +114,6 @@ public:
             const scalar B
         );
 
-        //- Construct from Istream
-        adiabaticPerfectFluid(Istream&);
-
         //- Construct from dictionary
         adiabaticPerfectFluid(const dictionary& dict);
 
@@ -130,9 +127,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<adiabaticPerfectFluid> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<adiabaticPerfectFluid> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<adiabaticPerfectFluid> New
         (
diff --git a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H
index c6275c99004..57424a902e5 100644
--- a/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H
+++ b/src/thermophysicalModels/specie/equationOfState/adiabaticPerfectFluid/adiabaticPerfectFluidI.H
@@ -73,17 +73,6 @@ Foam::adiabaticPerfectFluid<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::adiabaticPerfectFluid<Specie>>
-Foam::adiabaticPerfectFluid<Specie>::New(Istream& is)
-{
-    return autoPtr<adiabaticPerfectFluid<Specie>>
-    (
-        new adiabaticPerfectFluid<Specie>(is)
-    );
-}
-
-
 template<class Specie>
 inline Foam::autoPtr<Foam::adiabaticPerfectFluid<Specie>>
 Foam::adiabaticPerfectFluid<Specie>::New
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C
index 472ff3e5fe8..fb5b0f5da15 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.C
@@ -33,14 +33,6 @@ namespace Foam
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie, int PolySize>
-icoPolynomial<Specie, PolySize>::icoPolynomial(Istream& is)
-:
-    Specie(is),
-    rhoCoeffs_("rhoCoeffs<" + Foam::name(PolySize) + '>', is)
-{}
-
-
 template<class Specie, int PolySize>
 icoPolynomial<Specie, PolySize>::icoPolynomial(const dictionary& dict)
 :
@@ -78,16 +70,7 @@ void icoPolynomial<Specie, PolySize>::write(Ostream& os) const
 template<class Specie, int PolySize>
 Ostream& operator<<(Ostream& os, const icoPolynomial<Specie, PolySize>& ip)
 {
-    os  << static_cast<const Specie&>(ip) << tab
-        << "rhoCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << ip.rhoCoeffs_;
-
-    os.check
-    (
-        "Ostream& operator<<"
-        "(Ostream& os, const icoPolynomial<Specie, PolySize>& ip)"
-    );
-
+    ip.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
index 2ba5425125e..e57f2b905a5 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
@@ -131,24 +131,15 @@ public:
             const Polynomial<PolySize>& rhoPoly
         );
 
-        //- Construct from Istream
-        icoPolynomial(Istream&);
-
         //- Construct from dictionary
         icoPolynomial(const dictionary& dict);
 
-        //- Construct as copy
-        inline icoPolynomial(const icoPolynomial&);
-
         //- Construct as named copy
         inline icoPolynomial(const word& name, const icoPolynomial&);
 
         //- Construct and return a clone
         inline autoPtr<icoPolynomial> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<icoPolynomial> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<icoPolynomial> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H
index 5358f425e34..66edf3f842a 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomialI.H
@@ -41,17 +41,6 @@ inline Foam::icoPolynomial<Specie, PolySize>::icoPolynomial
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie, int PolySize>
-inline Foam::icoPolynomial<Specie, PolySize>::icoPolynomial
-(
-    const icoPolynomial<Specie, PolySize>& ip
-)
-:
-    Specie(ip),
-    rhoCoeffs_(ip.rhoCoeffs_)
-{}
-
-
 template<class Specie, int PolySize>
 inline Foam::icoPolynomial<Specie, PolySize>::icoPolynomial
 (
@@ -75,17 +64,6 @@ Foam::icoPolynomial<Specie, PolySize>::clone() const
 }
 
 
-template<class Specie, int PolySize>
-inline Foam::autoPtr<Foam::icoPolynomial<Specie, PolySize>>
-Foam::icoPolynomial<Specie, PolySize>::New(Istream& is)
-{
-    return autoPtr<icoPolynomial<Specie, PolySize>>
-    (
-        new icoPolynomial<Specie, PolySize>(is)
-    );
-}
-
-
 template<class Specie, int PolySize>
 inline Foam::autoPtr<Foam::icoPolynomial<Specie, PolySize>>
 Foam::icoPolynomial<Specie, PolySize>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C
index 02955422baf..c2aa3c0a8fb 100644
--- a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C
+++ b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.C
@@ -28,20 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::incompressiblePerfectGas<Specie>::incompressiblePerfectGas(Istream& is)
-:
-    Specie(is),
-    pRef_(readScalar(is))
-{
-    is.check
-    (
-        "incompressiblePerfectGas<Specie>::"
-        "incompressiblePerfectGas(Istream& is)"
-    );
-}
-
-
 template<class Specie>
 Foam::incompressiblePerfectGas<Specie>::incompressiblePerfectGas
 (
@@ -75,14 +61,7 @@ Foam::Ostream& Foam::operator<<
     const incompressiblePerfectGas<Specie>& pg
 )
 {
-    os  << static_cast<const Specie&>(pg)
-        << token::SPACE << pg.pRef_;
-
-    os.check
-    (
-        "Ostream& operator<<"
-        "(Ostream& os, const incompressiblePerfectGas<Specie>& st)"
-    );
+    pg.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H
index cf0c73dbf19..26027dc6a39 100644
--- a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H
+++ b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H
@@ -100,12 +100,6 @@ public:
         //- Construct from components
         inline incompressiblePerfectGas(const Specie& sp, const scalar pRef);
 
-        //- Construct from incompressiblePerfectGas
-        inline incompressiblePerfectGas(const incompressiblePerfectGas& sp);
-
-        //- Construct from Istream
-        incompressiblePerfectGas(Istream&);
-
         //- Construct from dictionary
         incompressiblePerfectGas(const dictionary& dict);
 
@@ -119,9 +113,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<incompressiblePerfectGas> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<incompressiblePerfectGas> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<incompressiblePerfectGas> New
         (
diff --git a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H
index f1772442b5e..d04880a6db4 100644
--- a/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H
+++ b/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGasI.H
@@ -39,17 +39,6 @@ inline Foam::incompressiblePerfectGas<Specie>::incompressiblePerfectGas
 {}
 
 
-template<class Specie>
-inline Foam::incompressiblePerfectGas<Specie>::incompressiblePerfectGas
-(
-    const incompressiblePerfectGas& ipg
-)
-:
-    Specie(ipg),
-    pRef_(ipg.pRef_)
-{}
-
-
 template<class Specie>
 inline Foam::incompressiblePerfectGas<Specie>::incompressiblePerfectGas
 (
@@ -73,20 +62,6 @@ Foam::incompressiblePerfectGas<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::incompressiblePerfectGas<Specie>>
-Foam::incompressiblePerfectGas<Specie>::New
-(
-    Istream& is
-)
-{
-    return autoPtr<incompressiblePerfectGas<Specie>>
-    (
-        new incompressiblePerfectGas<Specie>(is)
-    );
-}
-
-
 template<class Specie>
 inline Foam::autoPtr<Foam::incompressiblePerfectGas<Specie>>
 Foam::incompressiblePerfectGas<Specie>::New
diff --git a/src/thermophysicalModels/specie/equationOfState/linear/linear.C b/src/thermophysicalModels/specie/equationOfState/linear/linear.C
index 6259930aea7..723eef4639c 100644
--- a/src/thermophysicalModels/specie/equationOfState/linear/linear.C
+++ b/src/thermophysicalModels/specie/equationOfState/linear/linear.C
@@ -28,17 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::linear<Specie>::linear(Istream& is)
-:
-    Specie(is),
-    psi_(readScalar(is)),
-    rho0_(readScalar(is))
-{
-    is.check("linear<Specie>::linear(Istream& is)");
-}
-
-
 template<class Specie>
 Foam::linear<Specie>::linear(const dictionary& dict)
 :
@@ -68,11 +57,7 @@ void Foam::linear<Specie>::write(Ostream& os) const
 template<class Specie>
 Foam::Ostream& Foam::operator<<(Ostream& os, const linear<Specie>& pf)
 {
-    os  << static_cast<const Specie&>(pf)
-        << token::SPACE << pf.psi_
-        << token::SPACE << pf.rho0_;
-
-    os.check("Ostream& operator<<(Ostream&, const linear<Specie>&)");
+    pf.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/linear/linear.H b/src/thermophysicalModels/specie/equationOfState/linear/linear.H
index 9bff7e46fa0..85be3d50dba 100644
--- a/src/thermophysicalModels/specie/equationOfState/linear/linear.H
+++ b/src/thermophysicalModels/specie/equationOfState/linear/linear.H
@@ -110,9 +110,6 @@ public:
             const scalar rho0
         );
 
-        //- Construct from Istream
-        linear(Istream&);
-
         //- Construct from dictionary
         linear(const dictionary& dict);
 
@@ -122,9 +119,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<linear> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<linear> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<linear> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/equationOfState/linear/linearI.H b/src/thermophysicalModels/specie/equationOfState/linear/linearI.H
index 951268eab9d..c3d361d2dc8 100644
--- a/src/thermophysicalModels/specie/equationOfState/linear/linearI.H
+++ b/src/thermophysicalModels/specie/equationOfState/linear/linearI.H
@@ -64,14 +64,6 @@ Foam::linear<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::linear<Specie>>
-Foam::linear<Specie>::New(Istream& is)
-{
-    return autoPtr<linear<Specie>>(new linear<Specie>(is));
-}
-
-
 template<class Specie>
 inline Foam::autoPtr<Foam::linear<Specie>>
 Foam::linear<Specie>::New
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C
index 1857552c6b7..cf64fb75a84 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C
+++ b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.C
@@ -28,17 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::perfectFluid<Specie>::perfectFluid(Istream& is)
-:
-    Specie(is),
-    R_(readScalar(is)),
-    rho0_(readScalar(is))
-{
-    is.check("perfectFluid<Specie>::perfectFluid(Istream& is)");
-}
-
-
 template<class Specie>
 Foam::perfectFluid<Specie>::perfectFluid(const dictionary& dict)
 :
@@ -68,11 +57,7 @@ void Foam::perfectFluid<Specie>::write(Ostream& os) const
 template<class Specie>
 Foam::Ostream& Foam::operator<<(Ostream& os, const perfectFluid<Specie>& pf)
 {
-    os  << static_cast<const Specie&>(pf)
-        << token::SPACE << pf.R_
-        << token::SPACE << pf.rho0_;
-
-    os.check("Ostream& operator<<(Ostream&, const perfectFluid<Specie>&)");
+    pf.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H
index 89fcab7873f..614183d0a6e 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluid.H
@@ -106,9 +106,6 @@ public:
             const scalar rho0
         );
 
-        //- Construct from Istream
-        perfectFluid(Istream&);
-
         //- Construct from dictionary
         perfectFluid(const dictionary& dict);
 
@@ -118,9 +115,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<perfectFluid> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<perfectFluid> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<perfectFluid> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H
index 133902b8717..a16c06c1513 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectFluid/perfectFluidI.H
@@ -65,14 +65,6 @@ Foam::perfectFluid<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::perfectFluid<Specie>>
-Foam::perfectFluid<Specie>::New(Istream& is)
-{
-    return autoPtr<perfectFluid<Specie>>(new perfectFluid<Specie>(is));
-}
-
-
 template<class Specie>
 inline Foam::autoPtr<Foam::perfectFluid<Specie>>
 Foam::perfectFluid<Specie>::New
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C
index f63ffbbc634..8f9972cda63 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C
+++ b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.C
@@ -28,15 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::perfectGas<Specie>::perfectGas(Istream& is)
-:
-    Specie(is)
-{
-    is.check("perfectGas<Specie>::perfectGas(Istream& is)");
-}
-
-
 template<class Specie>
 Foam::perfectGas<Specie>::perfectGas(const dictionary& dict)
 :
@@ -58,9 +49,7 @@ void Foam::perfectGas<Specie>::write(Ostream& os) const
 template<class Specie>
 Foam::Ostream& Foam::operator<<(Ostream& os, const perfectGas<Specie>& pg)
 {
-    os  << static_cast<const Specie&>(pg);
-
-    os.check("Ostream& operator<<(Ostream& os, const perfectGas<Specie>& st)");
+    pg.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H
index 6d519c75c39..bbb9101256c 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGas.H
@@ -93,9 +93,6 @@ public:
         //- Construct from components
         inline perfectGas(const Specie& sp);
 
-        //- Construct from Istream
-        perfectGas(Istream&);
-
         //- Construct from dictionary
         perfectGas(const dictionary& dict);
 
@@ -105,9 +102,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<perfectGas> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<perfectGas> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<perfectGas> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H
index 764a53dfef1..7795e465bbd 100644
--- a/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H
+++ b/src/thermophysicalModels/specie/equationOfState/perfectGas/perfectGasI.H
@@ -55,14 +55,6 @@ Foam::perfectGas<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::perfectGas<Specie>>
-Foam::perfectGas<Specie>::New(Istream& is)
-{
-    return autoPtr<perfectGas<Specie>>(new perfectGas<Specie>(is));
-}
-
-
 template<class Specie>
 inline Foam::autoPtr<Foam::perfectGas<Specie>> Foam::perfectGas<Specie>::New
 (
diff --git a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.C b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.C
index 895ec1859f9..f7ccfdb5a50 100644
--- a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.C
+++ b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,16 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Specie>
-Foam::rhoConst<Specie>::rhoConst(Istream& is)
-:
-    Specie(is),
-    rho_(readScalar(is))
-{
-    is.check("rhoConst<Specie>::rhoConst(Istream& is)");
-}
-
-
 template<class Specie>
 Foam::rhoConst<Specie>::rhoConst(const dictionary& dict)
 :
@@ -65,10 +55,7 @@ void Foam::rhoConst<Specie>::write(Ostream& os) const
 template<class Specie>
 Foam::Ostream& Foam::operator<<(Ostream& os, const rhoConst<Specie>& ico)
 {
-    os  << static_cast<const Specie&>(ico)
-        << token::SPACE << ico.rho_;
-
-    os.check("Ostream& operator<<(Ostream& os, const rhoConst<Specie>& ico)");
+    ico.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H
index a60f52581de..5cefe1f1e3b 100644
--- a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H
+++ b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConst.H
@@ -98,9 +98,6 @@ public:
         //- Construct from components
         inline rhoConst(const Specie& sp, const scalar rho);
 
-        //- Construct from Istream
-        rhoConst(Istream&);
-
         //- Construct from dictionary
         rhoConst(const dictionary& dict);
 
@@ -110,9 +107,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<rhoConst> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<rhoConst> New(Istream& is);
-
 
     // Member functions
 
diff --git a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H
index fb5e101248f..ee41587e8a5 100644
--- a/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H
+++ b/src/thermophysicalModels/specie/equationOfState/rhoConst/rhoConstI.H
@@ -61,14 +61,6 @@ Foam::rhoConst<Specie>::clone() const
 }
 
 
-template<class Specie>
-inline Foam::autoPtr<Foam::rhoConst<Specie>>
-Foam::rhoConst<Specie>::New(Istream& is)
-{
-    return autoPtr<rhoConst<Specie>>(new rhoConst<Specie>(is));
-}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class Specie>
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.C b/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.C
index c691af18973..32a301fab9e 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.C
+++ b/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,25 +45,6 @@ IrreversibleReaction
 {}
 
 
-template
-<
-    template<class> class ReactionType,
-    class ReactionThermo,
-    class ReactionRate
->
-Foam::IrreversibleReaction<ReactionType, ReactionThermo, ReactionRate>::
-IrreversibleReaction
-(
-    const speciesTable& species,
-    const HashPtrTable<ReactionThermo>& thermoDatabase,
-    Istream& is
-)
-:
-    ReactionType<ReactionThermo>(species, thermoDatabase, is),
-    k_(species, is)
-{}
-
-
 template
 <
     template<class> class ReactionType,
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.H b/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.H
index c5273d83026..3c3aa7eadac 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.H
+++ b/src/thermophysicalModels/specie/reaction/Reactions/IrreversibleReaction/IrreversibleReaction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -103,14 +103,6 @@ public:
             const speciesTable& species
         );
 
-        //- Construct from Istream
-        IrreversibleReaction
-        (
-            const speciesTable& species,
-            const HashPtrTable<ReactionThermo>& thermoDatabase,
-            Istream& is
-        );
-
         //- Construct from dictionary
         IrreversibleReaction
         (
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.C b/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.C
index f2f8b175bc0..255cf2b93fd 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.C
+++ b/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,32 +52,6 @@ NonEquilibriumReversibleReaction
 {}
 
 
-
-template
-<
-    template<class> class ReactionType,
-    class ReactionThermo,
-    class ReactionRate
->
-Foam::NonEquilibriumReversibleReaction
-<
-    ReactionType,
-    ReactionThermo,
-    ReactionRate
->::
-NonEquilibriumReversibleReaction
-(
-    const speciesTable& species,
-    const HashPtrTable<ReactionThermo>& thermoDatabase,
-    Istream& is
-)
-:
-    ReactionType<ReactionThermo>(species, thermoDatabase, is),
-    fk_(species, is),
-    rk_(species, is)
-{}
-
-
 template
 <
     template<class> class ReactionType,
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.H b/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.H
index f1b23abfec1..8e76691d3b0 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.H
+++ b/src/thermophysicalModels/specie/reaction/Reactions/NonEquilibriumReversibleReaction/NonEquilibriumReversibleReaction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,14 +97,6 @@ public:
             const speciesTable& species
         );
 
-        //- Construct from Istream
-        NonEquilibriumReversibleReaction
-        (
-            const speciesTable& species,
-            const HashPtrTable<ReactionThermo>& thermoDatabase,
-            Istream& is
-        );
-
         //- Construct from dictionary
         NonEquilibriumReversibleReaction
         (
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C
index dc43975c461..7d36f141803 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C
+++ b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.C
@@ -320,23 +320,6 @@ void Foam::Reaction<ReactionThermo>::setLRhs
 }
 
 
-template<class ReactionThermo>
-Foam::Reaction<ReactionThermo>::Reaction
-(
-    const speciesTable& species,
-    const HashPtrTable<ReactionThermo>& thermoDatabase,
-    Istream& is
-)
-:
-    ReactionThermo::thermoType(*thermoDatabase[species[0]]),
-    name_("un-named-reaction" + Foam::name(getNewReactionID())),
-    species_(species)
-{
-    setLRhs(is, species, lhs_, rhs_);
-    setThermo(thermoDatabase);
-}
-
-
 template<class ReactionThermo>
 Foam::Reaction<ReactionThermo>::Reaction
 (
@@ -362,50 +345,6 @@ Foam::Reaction<ReactionThermo>::Reaction
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-template<class ReactionThermo>
-Foam::autoPtr<Foam::Reaction<ReactionThermo>>
-Foam::Reaction<ReactionThermo>::New
-(
-    const speciesTable& species,
-    const HashPtrTable<ReactionThermo>& thermoDatabase,
-    Istream& is
-)
-{
-    if (is.eof())
-    {
-        FatalIOErrorInFunction
-        (
-            is
-        )   << "Reaction type not specified" << nl << nl
-            << "Valid Reaction types are :" << nl
-            << IstreamConstructorTablePtr_->sortedToc()
-            << exit(FatalIOError);
-    }
-
-    const word reactionTypeName(is);
-
-    typename IstreamConstructorTable::iterator cstrIter
-        = IstreamConstructorTablePtr_->find(reactionTypeName);
-
-    if (cstrIter == IstreamConstructorTablePtr_->end())
-    {
-        FatalIOErrorInFunction
-        (
-            is
-        )   << "Unknown reaction type "
-            << reactionTypeName << nl << nl
-            << "Valid reaction types are :" << nl
-            << IstreamConstructorTablePtr_->sortedToc()
-            << exit(FatalIOError);
-    }
-
-    return autoPtr<Reaction<ReactionThermo>>
-    (
-        cstrIter()(species, thermoDatabase, is)
-    );
-}
-
-
 template<class ReactionThermo>
 Foam::autoPtr<Foam::Reaction<ReactionThermo>>
 Foam::Reaction<ReactionThermo>::New
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.H b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.H
index ead361e1101..d96134aac95 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.H
+++ b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/Reaction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -164,19 +164,6 @@ public:
 
     // Declare run-time constructor selection tables
 
-        declareRunTimeSelectionTable
-        (
-            autoPtr,
-            Reaction,
-            Istream,
-            (
-                const speciesTable& species,
-                const HashPtrTable<ReactionThermo>& thermoDatabase,
-                Istream& is
-            ),
-            (species, thermoDatabase, is)
-        );
-
         declareRunTimeSelectionTable
         (
             autoPtr,
@@ -191,36 +178,6 @@ public:
         );
 
 
-    // Public classes
-
-        //- Class used for the read-construction of PtrLists of reaction
-        class iNew
-        {
-            const speciesTable& species_;
-            const HashPtrTable<ReactionThermo>& thermoDatabase_;
-
-        public:
-
-            iNew
-            (
-                const speciesTable& species,
-                const HashPtrTable<ReactionThermo>& thermoDatabase
-            )
-            :
-                species_(species),
-                thermoDatabase_(thermoDatabase)
-            {}
-
-            autoPtr<Reaction> operator()(Istream& is) const
-            {
-                return autoPtr<Reaction>
-                (
-                    Reaction::New(species_, thermoDatabase_, is)
-                );
-            }
-        };
-
-
     // Constructors
 
         //- Construct from components
@@ -235,14 +192,6 @@ public:
         //- Construct as copy given new speciesTable
         Reaction(const Reaction<ReactionThermo>&, const speciesTable& species);
 
-        //- Construct from Istream
-        Reaction
-        (
-            const speciesTable& species,
-            const HashPtrTable<ReactionThermo>& thermoDatabase,
-            Istream& is
-        );
-
         //- Construct from dictionary
         Reaction
         (
@@ -275,14 +224,6 @@ public:
 
     // Selectors
 
-        //- Return a pointer to new patchField created on freestore from input
-        static autoPtr<Reaction<ReactionThermo>> New
-        (
-            const speciesTable& species,
-            const HashPtrTable<ReactionThermo>& thermoDatabase,
-            Istream& is
-        );
-
         //- Return a pointer to new patchField created on freestore from dict
         static autoPtr<Reaction<ReactionThermo>> New
         (
@@ -312,10 +253,10 @@ public:
             virtual const List<specieCoeffs>& grhs() const;
             virtual const List<specieCoeffs>& glhs() const;
 
-            // - Access to specie list
+            //- Access to specie list
             const speciesTable& species() const;
 
-            // - Access to gas specie list
+            //- Access to gas specie list
             virtual const speciesTable& gasSpecies() const;
 
             //- Construct the left- and right-hand-side reaction coefficients
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.C b/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.C
index ca0334107db..6d3f2539fc3 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.C
+++ b/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,25 +60,6 @@ Foam::ReactionList<ThermoType>::ReactionList
 }
 
 
-template<class ThermoType>
-Foam::ReactionList<ThermoType>::ReactionList
-(
-    const speciesTable& species,
-    const HashPtrTable<ThermoType>& thermoDb,
-    const fileName& fName
-)
-:
-    SLPtrList<Reaction<ThermoType>>
-    (
-        dictionary(IFstream(fName)()).lookup("reactions"),
-        Reaction<ThermoType>::iNew(species, thermoDb)
-    ),
-    species_(species),
-    thermoDb_(thermoDb),
-    dict_(dictionary::null)
-{}
-
-
 template<class ThermoType>
 Foam::ReactionList<ThermoType>::ReactionList(const ReactionList& reactions)
 :
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.H b/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.H
index c9a4b2c0015..6251fda9e4f 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.H
+++ b/src/thermophysicalModels/specie/reaction/Reactions/ReactionList/ReactionList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,14 +93,6 @@ public:
             const dictionary& dict
         );
 
-        //- Construct from file using (Istream)
-        ReactionList
-        (
-            const speciesTable& species,
-            const HashPtrTable<ThermoType>& thermoDatabase,
-            const fileName& fName
-        );
-
         //- Construct copy
         ReactionList(const ReactionList<ThermoType>& reactions);
 
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.C b/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.C
index fb62950ff54..2183986e261 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.C
+++ b/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,25 +45,6 @@ ReversibleReaction
 {}
 
 
-template
-<
-    template<class> class ReactionType,
-    class ReactionThermo,
-    class ReactionRate
->
-Foam::ReversibleReaction<ReactionType, ReactionThermo, ReactionRate>::
-ReversibleReaction
-(
-    const speciesTable& species,
-    const HashPtrTable<ReactionThermo>& thermoDatabase,
-    Istream& is
-)
-:
-    ReactionType<ReactionThermo>(species, thermoDatabase, is),
-    k_(species, is)
-{}
-
-
 template
 <
     template<class> class ReactionType,
diff --git a/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.H b/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.H
index fd801d347b7..798b757592c 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.H
+++ b/src/thermophysicalModels/specie/reaction/Reactions/ReversibleReaction/ReversibleReaction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -103,14 +103,6 @@ public:
             const speciesTable& species
         );
 
-        //- Construct from Istream
-        ReversibleReaction
-        (
-            const speciesTable& species,
-            const HashPtrTable<ReactionThermo>& thermoDatabase,
-            Istream& is
-        );
-
         //- Construct from dictionary
         ReversibleReaction
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H
index deb1bb2ebde..fbe89154bae 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,13 +77,6 @@ public:
             const scalar Ta
         );
 
-        //- Construct from Istream
-        inline ArrheniusReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline ArrheniusReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H
index 273e15fd941..5c67a60e96b 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,20 +38,6 @@ inline Foam::ArrheniusReactionRate::ArrheniusReactionRate
 {}
 
 
-inline Foam::ArrheniusReactionRate::ArrheniusReactionRate
-(
-    const speciesTable&,
-    Istream& is
-)
-:
-    A_(readScalar(is.readBegin("ArrheniusReactionRate(Istream&)"))),
-    beta_(readScalar(is)),
-    Ta_(readScalar(is))
-{
-    is.readEnd("ArrheniusReactionRate(Istream&)");
-}
-
-
 inline Foam::ArrheniusReactionRate::ArrheniusReactionRate
 (
     const speciesTable&,
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRate.H
index 75a8fa507e8..87eab0d403f 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,13 +84,6 @@ public:
             const thirdBodyEfficiencies& tbes
         );
 
-        //- Construct from Istream
-        inline ChemicallyActivatedReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline ChemicallyActivatedReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H
index 952ceaa7403..f8e71fd4e37 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,26 +45,6 @@ inline Foam::ChemicallyActivatedReactionRate
 {}
 
 
-template<class ReactionRate, class ChemicallyActivationFunction>
-inline Foam::ChemicallyActivatedReactionRate
-<
-    ReactionRate,
-    ChemicallyActivationFunction
->::ChemicallyActivatedReactionRate
-(
-    const speciesTable& species,
-    Istream& is
-)
-:
-    k0_(species, is.readBegin("ChemicallyActivatedReactionRate(Istream&)")),
-    kInf_(species, is),
-    F_(is),
-    thirdBodyEfficiencies_(species, is)
-{
-    is.readEnd("ChemicallyActivatedReactionRate(Istream&)");
-}
-
-
 template<class ReactionRate, class ChemicallyActivationFunction>
 inline Foam::ChemicallyActivatedReactionRate
 <
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRate.H
index d668f214d04..e89aa89498e 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,13 +83,6 @@ public:
             const thirdBodyEfficiencies& tbes
         );
 
-        //- Construct from Istream
-        inline FallOffReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline FallOffReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H
index 954816aca38..0b7fa5f0325 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,23 +42,6 @@ FallOffReactionRate
 {}
 
 
-template<class ReactionRate, class FallOffFunction>
-inline Foam::FallOffReactionRate<ReactionRate, FallOffFunction>::
-FallOffReactionRate
-(
-    const speciesTable& species,
-    Istream& is
-)
-:
-    k0_(species, is.readBegin("FallOffReactionRate(Istream&)")),
-    kInf_(species, is),
-    F_(is),
-    thirdBodyEfficiencies_(species, is)
-{
-    is.readEnd("FallOffReactionRate(Istream&)");
-}
-
-
 template<class ReactionRate, class FallOffFunction>
 inline Foam::FallOffReactionRate<ReactionRate, FallOffFunction>::
 FallOffReactionRate
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H
index bf3d10c6b90..ab37e054fe1 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,13 +80,6 @@ public:
             const FixedList<scalar, nb_> b
         );
 
-        //- Construct from Istream
-        inline JanevReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline JanevReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H
index 381a94e5875..055d6291d7f 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,21 +40,6 @@ inline Foam::JanevReactionRate::JanevReactionRate
 {}
 
 
-inline Foam::JanevReactionRate::JanevReactionRate
-(
-    const speciesTable&,
-    Istream& is
-)
-:
-    A_(readScalar(is.readBegin("JanevReactionRate(Istream&)"))),
-    beta_(readScalar(is)),
-    Ta_(readScalar(is)),
-    b_(is)
-{
-    is.readEnd("JanevReactionRate(Istream&)");
-}
-
-
 inline Foam::JanevReactionRate::JanevReactionRate
 (
     const speciesTable&,
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H
index cba8b20cb8a..c353475be7a 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,13 +79,6 @@ public:
             const scalar C
         );
 
-        //- Construct from Istream
-        inline LandauTellerReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline LandauTellerReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H
index d3b1b79ec7e..56a636e9c7c 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,22 +42,6 @@ inline Foam::LandauTellerReactionRate::LandauTellerReactionRate
 {}
 
 
-inline Foam::LandauTellerReactionRate::LandauTellerReactionRate
-(
-    const speciesTable&,
-    Istream& is
-)
-:
-    A_(readScalar(is.readBegin("LandauTellerReactionRate(Istream&)"))),
-    beta_(readScalar(is)),
-    Ta_(readScalar(is)),
-    B_(readScalar(is)),
-    C_(readScalar(is))
-{
-    is.readEnd("LandauTellerReactionRate(Istream&)");
-}
-
-
 inline Foam::LandauTellerReactionRate::LandauTellerReactionRate
 (
     const speciesTable&,
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H
index e96f9ea20cc..1d1c5dd337d 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,13 +81,6 @@ public:
             const label no
         );
 
-        //- Construct from Istream
-        inline LangmuirHinshelwoodReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline LangmuirHinshelwoodReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H
index 26fd07bfada..029d2544417 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,27 +49,6 @@ inline Foam::LangmuirHinshelwoodReactionRate::LangmuirHinshelwoodReactionRate
 }
 
 
-inline Foam::LangmuirHinshelwoodReactionRate::LangmuirHinshelwoodReactionRate
-(
-    const speciesTable& st,
-    Istream& is
-)
-:
-    co_(st["CO"]),
-    c3h6_(st["C3H6"]),
-    no_(st["NO"])
-{
-    is.readBegin("LangmuirHinshelwoodReactionRate(Istream&)");
-
-    for (int i=0; i<n_; i++)
-    {
-        is >> A_[i] >> Ta_[i];
-    }
-
-    is.readEnd("LangmuirHinshelwoodReactionRate(Istream&)");
-}
-
-
 inline Foam::LangmuirHinshelwoodReactionRate::LangmuirHinshelwoodReactionRate
 (
     const speciesTable& st,
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunction.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunction.H
index 298ca332c5e..76c2f3acc96 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunction.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,9 +62,6 @@ public:
         //- Construct null
         inline LindemannFallOffFunction();
 
-        //- Construct from Istream
-        inline LindemannFallOffFunction(Istream&);
-
         //- Construct from dictionary
         inline LindemannFallOffFunction(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunctionI.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunctionI.H
index 1dd6ba4b558..8421898b64f 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunctionI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/LindemannFallOffFunction/LindemannFallOffFunctionI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,10 +29,6 @@ inline Foam::LindemannFallOffFunction::LindemannFallOffFunction()
 {}
 
 
-inline Foam::LindemannFallOffFunction::LindemannFallOffFunction(Istream&)
-{}
-
-
 inline Foam::LindemannFallOffFunction::LindemannFallOffFunction
 (
     const dictionary& dict
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunction.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunction.H
index 60e9bdfbd19..2a73db4be84 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunction.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,9 +73,6 @@ public:
             const scalar e
         );
 
-        //- Construct from Istream
-        inline SRIFallOffFunction(Istream&);
-
         //- Construct from dictionary
         inline SRIFallOffFunction(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H
index 6c3dd203d71..df458854790 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,18 +42,6 @@ inline Foam::SRIFallOffFunction::SRIFallOffFunction
 {}
 
 
-inline Foam::SRIFallOffFunction::SRIFallOffFunction(Istream& is)
-:
-    a_(readScalar(is.readBegin("SRIFallOffFunction(Istream&)"))),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is)),
-    e_(readScalar(is))
-{
-    is.readEnd("SRIFallOffFunction(Istream&)");
-}
-
-
 inline Foam::SRIFallOffFunction::SRIFallOffFunction(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunction.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunction.H
index ba14378315f..18b39038fbe 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunction.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,9 +73,6 @@ public:
             const scalar Tss
         );
 
-        //- Construct from Istream
-        inline TroeFallOffFunction(Istream&);
-
         //- Construct from dictionary
         inline TroeFallOffFunction(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H
index 74a8e0a17da..ff504a29f2e 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,17 +40,6 @@ inline Foam::TroeFallOffFunction::TroeFallOffFunction
 {}
 
 
-inline Foam::TroeFallOffFunction::TroeFallOffFunction(Istream& is)
-:
-    alpha_(readScalar(is.readBegin("TroeFallOffFunction(Istream&)"))),
-    Tsss_(readScalar(is)),
-    Ts_(readScalar(is)),
-    Tss_(readScalar(is))
-{
-    is.readEnd("TroeFallOffFunction(Istream&)");
-}
-
-
 inline Foam::TroeFallOffFunction::TroeFallOffFunction(const dictionary& dict)
 :
     alpha_(readScalar(dict.lookup("alpha"))),
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H
index 47dde38b49c..ec8abe2cdc1 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ public:
         inline infiniteReactionRate
         ();
 
-        //- Construct from Istream
+        //- Construct from dictionary
         inline infiniteReactionRate
         (
             const speciesTable& species,
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H
index a8561815be6..f12d3ba0d06 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,13 +80,6 @@ public:
             const FixedList<scalar, nCoeff_> coeffs
         );
 
-        //- Construct from Istream
-        inline powerSeriesReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline powerSeriesReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H
index c14d3296416..5cee7f9b7f8 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,21 +40,6 @@ inline Foam::powerSeriesReactionRate::powerSeriesReactionRate
 {}
 
 
-inline Foam::powerSeriesReactionRate::powerSeriesReactionRate
-(
-    const speciesTable&,
-    Istream& is
-)
-:
-    A_(readScalar(is.readBegin("powerSeriesReactionRate(Istream&)"))),
-    beta_(readScalar(is)),
-    Ta_(readScalar(is)),
-    coeffs_(is)
-{
-    is.readEnd("powerSeriesReactionRate(Istream&)");
-}
-
-
 inline Foam::powerSeriesReactionRate::powerSeriesReactionRate
 (
     const speciesTable&,
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H
index 9e7599ac734..c12d914c634 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,13 +76,6 @@ public:
             const thirdBodyEfficiencies& tbes
         );
 
-        //- Construct from Istream
-        inline thirdBodyArrheniusReactionRate
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline thirdBodyArrheniusReactionRate
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H
index 0cba38cee00..711dfde0e1c 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,23 +38,6 @@ inline Foam::thirdBodyArrheniusReactionRate::thirdBodyArrheniusReactionRate
 {}
 
 
-inline Foam::thirdBodyArrheniusReactionRate::thirdBodyArrheniusReactionRate
-(
-    const speciesTable& species,
-    Istream& is
-)
-:
-    ArrheniusReactionRate
-    (
-        species,
-        is.readBegin("thirdBodyArrheniusReactionRate(Istream&)")
-    ),
-    thirdBodyEfficiencies_(species, is)
-{
-    is.readEnd("thirdBodyArrheniusReactionRate(Istream&)");
-}
-
-
 inline Foam::thirdBodyArrheniusReactionRate::thirdBodyArrheniusReactionRate
 (
     const speciesTable& species,
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficiencies.H b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficiencies.H
index 8b164da1716..62b80cb37b6 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficiencies.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficiencies.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,13 +73,6 @@ public:
             const scalarList& efficiencies
         );
 
-        //- Construct from Istream
-        inline thirdBodyEfficiencies
-        (
-            const speciesTable& species,
-            Istream& is
-        );
-
         //- Construct from dictionary
         inline thirdBodyEfficiencies
         (
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H
index 59c25bcf4b3..d77df740ba8 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,62 +46,6 @@ inline Foam::thirdBodyEfficiencies::thirdBodyEfficiencies
 }
 
 
-inline Foam::thirdBodyEfficiencies::thirdBodyEfficiencies
-(
-    const speciesTable& species,
-    Istream& is
-)
-:
-    scalarList(species.size()),
-    species_(species)
-{
-    is.readBeginList
-    (
-        "thirdBodyEfficiencies::thirdBodyEfficiencies"
-        "(const speciesTable& species, Istream& is)"
-    );
-    scalar defaultEff = readScalar(is);
-    scalarList::operator=(defaultEff);
-
-    token t;
-
-    while ((is >> t) && !t.isPunctuation())
-    {
-        if (t.isWord())
-        {
-            operator[](species[t.wordToken()]) = readScalar(is);
-        }
-        else
-        {
-            FatalIOErrorInFunction
-            (
-                is
-            )   << "expected <word>, found " << t.info()
-                << exit(FatalIOError);
-        }
-    }
-
-    if (t.pToken() != token::END_LIST)
-    {
-        FatalIOErrorInFunction
-        (
-            is
-        )   << "expected ')', found " << t.info()
-            << exit(FatalIOError);
-    }
-
-    if (size() != species_.size())
-    {
-        FatalIOErrorInFunction
-        (
-            is
-        )   << "number of efficiencies = " << size()
-            << " is not equal to the number of species " << species_.size()
-            << exit(FatalIOError);
-    }
-}
-
-
 inline Foam::thirdBodyEfficiencies::thirdBodyEfficiencies
 (
     const speciesTable& species,
diff --git a/src/thermophysicalModels/specie/reaction/reactions/makeReaction.H b/src/thermophysicalModels/specie/reaction/reactions/makeReaction.H
index 74cf7c1e486..ba51a746cc4 100644
--- a/src/thermophysicalModels/specie/reaction/reactions/makeReaction.H
+++ b/src/thermophysicalModels/specie/reaction/reactions/makeReaction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,13 +73,6 @@ namespace Foam
     );                                                                         \
                                                                                \
     addToRunTimeSelectionTable                                                 \
-    (                                                                          \
-        Reaction##Thermo,                                                      \
-        ReactionType##Thermo##ReactionRate,                                    \
-        Istream                                                                \
-    );                                                                         \
-                                                                               \
-    addToRunTimeSelectionTable                                                 \
     (                                                                          \
         Reaction##Thermo,                                                      \
         ReactionType##Thermo##ReactionRate,                                    \
@@ -121,7 +114,7 @@ namespace Foam
     makeReaction(Thermo, NonEquilibriumReversibleReaction, ReactionRate)
 
 
-#define makePressureDependentReactions(Thermo, ReactionRate, FallOffFunction) \
+#define makePressureDependentReactions(Thermo, ReactionRate, FallOffFunction)  \
                                                                                \
     makePressureDependentReaction                                              \
     (                                                                          \
diff --git a/src/thermophysicalModels/specie/reaction/reactions/makeReactions.C b/src/thermophysicalModels/specie/reaction/reactions/makeReactions.C
index 96352b2c9bf..d6b9a3c0b46 100644
--- a/src/thermophysicalModels/specie/reaction/reactions/makeReactions.C
+++ b/src/thermophysicalModels/specie/reaction/reactions/makeReactions.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,6 @@ License
 #define makeReactions(Thermo, Reaction)                                        \
                                                                                \
     defineTemplateTypeNameAndDebug(Reaction, 0);                               \
-    defineTemplateRunTimeSelectionTable(Reaction, Istream);                    \
     defineTemplateRunTimeSelectionTable(Reaction, dictionary);                 \
                                                                                \
     makeIRNReactions(Thermo, ArrheniusReactionRate)                            \
diff --git a/src/thermophysicalModels/specie/specie/specie.C b/src/thermophysicalModels/specie/specie/specie.C
index b507212cd0e..508d7556268 100644
--- a/src/thermophysicalModels/specie/specie/specie.C
+++ b/src/thermophysicalModels/specie/specie/specie.C
@@ -24,7 +24,6 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "specie.H"
-#include "IOstreams.H"
 #include "constants.H"
 
 /* * * * * * * * * * * * * * * public constants  * * * * * * * * * * * * * * */
@@ -37,16 +36,6 @@ namespace Foam
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::specie::specie(Istream& is)
-:
-    name_(is),
-    Y_(readScalar(is)),
-    molWeight_(readScalar(is))
-{
-    is.check("specie::specie(Istream& is)");
-}
-
-
 Foam::specie::specie(const dictionary& dict)
 :
     name_(dict.dictName()),
@@ -73,10 +62,7 @@ void Foam::specie::write(Ostream& os) const
 
 Foam::Ostream& Foam::operator<<(Ostream& os, const specie& st)
 {
-    os  << st.name_ << tab
-        << st.Y_ << tab
-        << st.molWeight_;
-
+    st.write(os);
     os.check("Ostream& operator<<(Ostream& os, const specie& st)");
     return os;
 }
diff --git a/src/thermophysicalModels/specie/specie/specie.H b/src/thermophysicalModels/specie/specie/specie.H
index 52ebcbe13e3..192c42931f8 100644
--- a/src/thermophysicalModels/specie/specie/specie.H
+++ b/src/thermophysicalModels/specie/specie/specie.H
@@ -96,15 +96,9 @@ public:
             const scalar molWeight
         );
 
-        //- Construct as copy
-        inline specie(const specie&);
-
         //- Construct as named copy
         inline specie(const word& name, const specie&);
 
-        //- Construct from Istream
-        specie(Istream&);
-
         //- Construct from dictionary
         specie(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/specie/specieI.H b/src/thermophysicalModels/specie/specie/specieI.H
index fb8255dbef1..222ca1ceeef 100644
--- a/src/thermophysicalModels/specie/specie/specieI.H
+++ b/src/thermophysicalModels/specie/specie/specieI.H
@@ -58,14 +58,6 @@ inline specie::specie
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-inline specie::specie(const specie& st)
-:
-    name_(st.name_),
-    Y_(st.Y_),
-    molWeight_(st.molWeight_)
-{}
-
-
 inline specie::specie(const word& name, const specie& st)
 :
     name_(name),
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
index d38693c03fd..fa283c7116a 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
@@ -28,17 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class EquationOfState>
-Foam::eConstThermo<EquationOfState>::eConstThermo(Istream& is)
-:
-    EquationOfState(is),
-    Cv_(readScalar(is)),
-    Hf_(readScalar(is))
-{
-    is.check("eConstThermo<EquationOfState>::eConstThermo(Istream&)");
-}
-
-
 template<class EquationOfState>
 Foam::eConstThermo<EquationOfState>::eConstThermo(const dictionary& dict)
 :
@@ -71,10 +60,7 @@ Foam::Ostream& Foam::operator<<
     const eConstThermo<EquationOfState>& ct
 )
 {
-    os  << static_cast<const EquationOfState&>(ct) << tab
-        << ct.Cv_ << tab << ct.Hf_;
-
-    os.check("Ostream& operator<<(Ostream&, const eConstThermo&)");
+    ct.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
index 9f5354ca9ca..2a9c599ffc0 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
@@ -112,9 +112,6 @@ public:
 
     // Constructors
 
-        //- Construct from Istream
-        eConstThermo(Istream&);
-
         //- Construct from dictionary
         eConstThermo(const dictionary& dict);
 
@@ -124,9 +121,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<eConstThermo> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<eConstThermo> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<eConstThermo> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
index e6c1b84afe7..4b5ba8005a1 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
@@ -65,17 +65,6 @@ Foam::eConstThermo<EquationOfState>::clone() const
 }
 
 
-template<class EquationOfState>
-inline Foam::autoPtr<Foam::eConstThermo<EquationOfState>>
-Foam::eConstThermo<EquationOfState>::New(Istream& is)
-{
-    return autoPtr<eConstThermo<EquationOfState>>
-    (
-        new eConstThermo<EquationOfState>(is)
-    );
-}
-
-
 template<class EquationOfState>
 inline Foam::autoPtr<Foam::eConstThermo<EquationOfState>>
 Foam::eConstThermo<EquationOfState>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C
index 2f892cbbf64..1bfc380457f 100644
--- a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.C
@@ -28,17 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class EquationOfState>
-Foam::hConstThermo<EquationOfState>::hConstThermo(Istream& is)
-:
-    EquationOfState(is),
-    Cp_(readScalar(is)),
-    Hf_(readScalar(is))
-{
-    is.check("hConstThermo::hConstThermo(Istream& is)");
-}
-
-
 template<class EquationOfState>
 Foam::hConstThermo<EquationOfState>::hConstThermo(const dictionary& dict)
 :
@@ -71,10 +60,7 @@ Foam::Ostream& Foam::operator<<
     const hConstThermo<EquationOfState>& ct
 )
 {
-    os  << static_cast<const EquationOfState&>(ct) << tab
-        << ct.Cp_ << tab << ct.Hf_;
-
-    os.check("Ostream& operator<<(Ostream& os, const hConstThermo& ct)");
+    ct.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H
index 7c04be81e39..dadbb0712fc 100644
--- a/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hConst/hConstThermo.H
@@ -105,9 +105,6 @@ public:
 
     // Constructors
 
-        //- Construct from Istream
-        hConstThermo(Istream&);
-
         //- Construct from dictionary
         hConstThermo(const dictionary& dict);
 
@@ -117,9 +114,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<hConstThermo> clone() const;
 
-        //- Selector from Istream
-        inline static autoPtr<hConstThermo> New(Istream& is);
-
         //- Selector from dictionary
         inline static autoPtr<hConstThermo> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H b/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H
index ebed57e4321..09dcb986033 100644
--- a/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hConst/hConstThermoI.H
@@ -65,17 +65,6 @@ Foam::hConstThermo<EquationOfState>::clone() const
 }
 
 
-template<class EquationOfState>
-inline Foam::autoPtr<Foam::hConstThermo<EquationOfState>>
-Foam::hConstThermo<EquationOfState>::New(Istream& is)
-{
-    return autoPtr<hConstThermo<EquationOfState>>
-    (
-        new hConstThermo<EquationOfState>(is)
-    );
-}
-
-
 template<class EquationOfState>
 inline Foam::autoPtr<Foam::hConstThermo<EquationOfState>>
 Foam::hConstThermo<EquationOfState>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C
index 0aa43c1f72a..2f7817e0b8c 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.C
@@ -28,30 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class EquationOfState, int PolySize>
-Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
-(
-    Istream& is
-)
-:
-    EquationOfState(is),
-    Hf_(readScalar(is)),
-    Sf_(readScalar(is)),
-    CpCoeffs_("CpCoeffs<" + Foam::name(PolySize) + '>', is),
-    hCoeffs_(),
-    sCoeffs_()
-{
-    hCoeffs_ = CpCoeffs_.integral();
-    sCoeffs_ = CpCoeffs_.integralMinus1();
-
-    // Offset h poly so that it is relative to the enthalpy at Tstd
-    hCoeffs_[0] += Hf_ - hCoeffs_.value(Tstd);
-
-    // Offset s poly so that it is relative to the entropy at Tstd
-    sCoeffs_[0] += Sf_ - sCoeffs_.value(Tstd);
-}
-
-
 template<class EquationOfState, int PolySize>
 Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
 (
@@ -113,21 +89,7 @@ Foam::Ostream& Foam::operator<<
     const hPolynomialThermo<EquationOfState, PolySize>& pt
 )
 {
-    os  << static_cast<const EquationOfState&>(pt) << tab
-        << pt.Hf_ << tab
-        << pt.Sf_ << tab
-        << "CpCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.CpCoeffs_/pt;
-
-    os.check
-    (
-        "operator<<"
-        "("
-            "Ostream&, "
-            "const hPolynomialThermo<EquationOfState, PolySize>&"
-        ")"
-    );
-
+    pt.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
index d8acaee18a5..f9b73bd93d6 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
@@ -161,15 +161,9 @@ public:
 
     // Constructors
 
-        //- Construct from Istream
-        hPolynomialThermo(Istream& is);
-
         //- Construct from dictionary
         hPolynomialThermo(const dictionary& dict);
 
-        //- Construct as copy
-        inline hPolynomialThermo(const hPolynomialThermo&);
-
         //- Construct as a named copy
         inline hPolynomialThermo(const word&, const hPolynomialThermo&);
 
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H
index 26049dfc5f4..fb5ac1bdebf 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermoI.H
@@ -49,21 +49,6 @@ inline Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class EquationOfState, int PolySize>
-inline Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
-(
-    const hPolynomialThermo& pt
-)
-:
-    EquationOfState(pt),
-    Hf_(pt.Hf_),
-    Sf_(pt.Sf_),
-    CpCoeffs_(pt.CpCoeffs_),
-    hCoeffs_(pt.hCoeffs_),
-    sCoeffs_(pt.sCoeffs_)
-{}
-
-
 template<class EquationOfState, int PolySize>
 inline Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
 (
diff --git a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C
index bab5f226aea..5e742e2388c 100644
--- a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.C
@@ -28,18 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class EquationOfState>
-Foam::hPowerThermo<EquationOfState>::hPowerThermo(Istream& is)
-:
-    EquationOfState(is),
-    n0_(readScalar(is)),
-    Tref_(readScalar(is)),
-    Hf_(readScalar(is))
-{
-    is.check("hPowerThermo::hPowerThermo(Istream& is)");
-}
-
-
 template<class EquationOfState>
 Foam::hPowerThermo<EquationOfState>::hPowerThermo
 (
@@ -63,21 +51,7 @@ Foam::Ostream& Foam::operator<<
     const hPowerThermo<EquationOfState>& et
 )
 {
-    os  << static_cast<const EquationOfState&>(et) << nl
-        << "    " << et.c0_
-        << tab << et.n0_
-        << tab << et.Tref_
-        << tab << et.Hf_;
-
-    os << nl << "    ";
-
-    os << endl;
-
-    os.check
-    (
-        "operator<<(Ostream& os, const hPowerThermo<EquationOfState>& et)"
-    );
-
+    et.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H
index be30a506ad2..7ca3b2bbd45 100644
--- a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermo.H
@@ -122,9 +122,6 @@ public:
 
     // Constructors
 
-        //- Construct from Istream
-        hPowerThermo(Istream&);
-
         //- Construct from dictionary
         hPowerThermo(const dictionary&);
 
@@ -138,9 +135,6 @@ public:
          //- Construct and return a clone
         inline autoPtr<hPowerThermo> clone() const;
 
-        //- Selector from Istream
-        inline static autoPtr<hPowerThermo> New(Istream& is);
-
         //- Selector from dictionary
         inline static autoPtr<hPowerThermo> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H
index e5160d973c7..3f22215dbf0 100644
--- a/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hPower/hPowerThermoI.H
@@ -90,17 +90,6 @@ Foam::hPowerThermo<EquationOfState>::clone() const
 }
 
 
-template<class EquationOfState>
-inline Foam::autoPtr<Foam::hPowerThermo<EquationOfState>>
-Foam::hPowerThermo<EquationOfState>::New(Istream& is)
-{
-    return autoPtr<hPowerThermo<EquationOfState>>
-    (
-        new hPowerThermo<EquationOfState>(is)
-    );
-}
-
-
 template<class EquationOfState>
 inline Foam::autoPtr<Foam::hPowerThermo<EquationOfState>>
 Foam::hPowerThermo<EquationOfState>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C
index a73c8748fa7..c7a8cb42215 100644
--- a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C
+++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.C
@@ -28,19 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class EquationOfState>
-Foam::hRefConstThermo<EquationOfState>::hRefConstThermo(Istream& is)
-:
-    EquationOfState(is),
-    Cp_(readScalar(is)),
-    Hf_(readScalar(is)),
-    Tref_(readScalar(is)),
-    Href_(readScalar(is))
-{
-    is.check("hRefConstThermo::hRefConstThermo(Istream& is)");
-}
-
-
 template<class EquationOfState>
 Foam::hRefConstThermo<EquationOfState>::hRefConstThermo(const dictionary& dict)
 :
@@ -77,11 +64,7 @@ Foam::Ostream& Foam::operator<<
     const hRefConstThermo<EquationOfState>& ct
 )
 {
-    os  << static_cast<const EquationOfState&>(ct) << tab
-        << ct.Cp_ << tab << ct.Hf_ << tab
-        << ct.Tref_ << tab << ct.Href_;
-
-    os.check("Ostream& operator<<(Ostream& os, const hRefConstThermo& ct)");
+    ct.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H
index 0bb18203861..5af02654043 100644
--- a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermo.H
@@ -109,9 +109,6 @@ public:
 
     // Constructors
 
-        //- Construct from Istream
-        hRefConstThermo(Istream&);
-
         //- Construct from dictionary
         hRefConstThermo(const dictionary& dict);
 
@@ -121,9 +118,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<hRefConstThermo> clone() const;
 
-        //- Selector from Istream
-        inline static autoPtr<hRefConstThermo> New(Istream& is);
-
         //- Selector from dictionary
         inline static autoPtr<hRefConstThermo> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H
index 941c4b5e889..575a648ddf1 100644
--- a/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/hRefConst/hRefConstThermoI.H
@@ -71,17 +71,6 @@ Foam::hRefConstThermo<EquationOfState>::clone() const
 }
 
 
-template<class EquationOfState>
-inline Foam::autoPtr<Foam::hRefConstThermo<EquationOfState>>
-Foam::hRefConstThermo<EquationOfState>::New(Istream& is)
-{
-    return autoPtr<hRefConstThermo<EquationOfState>>
-    (
-        new hRefConstThermo<EquationOfState>(is)
-    );
-}
-
-
 template<class EquationOfState>
 inline Foam::autoPtr<Foam::hRefConstThermo<EquationOfState>>
 Foam::hRefConstThermo<EquationOfState>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C b/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C
index 44c053e0f12..6a4d0d4dc04 100644
--- a/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C
+++ b/src/thermophysicalModels/specie/thermo/janaf/janafThermo.C
@@ -112,32 +112,7 @@ Foam::Ostream& Foam::operator<<
     const janafThermo<EquationOfState>& jt
 )
 {
-    os  << static_cast<const EquationOfState&>(jt) << nl
-        << "    " << jt.Tlow_
-        << tab << jt.Thigh_
-        << tab << jt.Tcommon_;
-
-    os << nl << "    ";
-
-    forAll(jt.highCpCoeffs_, i)
-    {
-        os << jt.highCpCoeffs_[i]/jt.R() << ' ';
-    }
-
-    os << nl << "    ";
-
-    forAll(jt.lowCpCoeffs_, i)
-    {
-        os << jt.lowCpCoeffs_[i]/jt.R() << ' ';
-    }
-
-    os << endl;
-
-    os.check
-    (
-        "operator<<(Ostream& os, const janafThermo<EquationOfState>& jt)"
-    );
-
+    jt.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/thermo/thermo/thermo.C b/src/thermophysicalModels/specie/thermo/thermo/thermo.C
index 400c2d4a88f..09ce3f1d56b 100644
--- a/src/thermophysicalModels/specie/thermo/thermo/thermo.C
+++ b/src/thermophysicalModels/specie/thermo/thermo/thermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,7 +24,6 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "thermo.H"
-#include "IOstreams.H"
 
 /* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
 
@@ -37,15 +36,6 @@ const int Foam::species::thermo<Thermo, Type>::maxIter_ = 100;
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo, template<class> class Type>
-Foam::species::thermo<Thermo, Type>::thermo(Istream& is)
-:
-    Thermo(is)
-{
-    is.check("thermo<Thermo, Type>::thermo(Istream&)");
-}
-
-
 template<class Thermo, template<class> class Type>
 Foam::species::thermo<Thermo, Type>::thermo(const dictionary& dict)
 :
@@ -70,9 +60,7 @@ Foam::Ostream& Foam::species::operator<<
     Ostream& os, const thermo<Thermo, Type>& st
 )
 {
-    os  << static_cast<const Thermo&>(st);
-
-    os.check("Ostream& operator<<(Ostream&, const thermo&)");
+    st.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/thermo/thermo/thermo.H b/src/thermophysicalModels/specie/thermo/thermo/thermo.H
index cc25cbaadf7..a5cdba6ecd8 100644
--- a/src/thermophysicalModels/specie/thermo/thermo/thermo.H
+++ b/src/thermophysicalModels/specie/thermo/thermo/thermo.H
@@ -127,9 +127,6 @@ public:
         //- Construct from components
         inline thermo(const Thermo& sp);
 
-        //- Construct from Istream
-        thermo(Istream&);
-
         //- Construct from dictionary
         thermo(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/transport/const/constTransport.C b/src/thermophysicalModels/specie/transport/const/constTransport.C
index 92e4a19e4c8..8b709c9c821 100644
--- a/src/thermophysicalModels/specie/transport/const/constTransport.C
+++ b/src/thermophysicalModels/specie/transport/const/constTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,17 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo>
-Foam::constTransport<Thermo>::constTransport(Istream& is)
-:
-    Thermo(is),
-    mu_(readScalar(is)),
-    rPr_(1.0/readScalar(is))
-{
-    is.check("constTransport::constTransport(Istream& is)");
-}
-
-
 template<class Thermo>
 Foam::constTransport<Thermo>::constTransport(const dictionary& dict)
 :
@@ -72,11 +61,7 @@ void Foam::constTransport<Thermo>::constTransport::write(Ostream& os) const
 template<class Thermo>
 Foam::Ostream& Foam::operator<<(Ostream& os, const constTransport<Thermo>& ct)
 {
-    operator<<(os, static_cast<const Thermo&>(ct));
-    os << tab << ct.mu_ << tab << 1.0/ct.rPr_;
-
-    os.check("Ostream& operator<<(Ostream&, const constTransport&)");
-
+    ct.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/transport/const/constTransport.H b/src/thermophysicalModels/specie/transport/const/constTransport.H
index 2c4be8d4d36..1caad9bd730 100644
--- a/src/thermophysicalModels/specie/transport/const/constTransport.H
+++ b/src/thermophysicalModels/specie/transport/const/constTransport.H
@@ -105,18 +105,12 @@ public:
         //- Construct as named copy
         inline constTransport(const word&, const constTransport&);
 
-        //- Construct from Istream
-        constTransport(Istream&);
-
         //- Construct from dictionary
         constTransport(const dictionary& dict);
 
         //- Construct and return a clone
         inline autoPtr<constTransport> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<constTransport> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<constTransport> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/transport/const/constTransportI.H b/src/thermophysicalModels/specie/transport/const/constTransportI.H
index 71a21021793..ab865dd9abb 100644
--- a/src/thermophysicalModels/specie/transport/const/constTransportI.H
+++ b/src/thermophysicalModels/specie/transport/const/constTransportI.H
@@ -63,20 +63,6 @@ Foam::constTransport<Thermo>::clone() const
 }
 
 
-template<class Thermo>
-inline Foam::autoPtr<Foam::constTransport<Thermo>>
-Foam::constTransport<Thermo>::New
-(
-    Istream& is
-)
-{
-    return autoPtr<constTransport<Thermo>>
-    (
-        new constTransport<Thermo>(is)
-    );
-}
-
-
 template<class Thermo>
 inline Foam::autoPtr<Foam::constTransport<Thermo>>
 Foam::constTransport<Thermo>::New
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C
index 0d53683fce3..27366f28931 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.C
@@ -28,18 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo, int PolySize>
-Foam::logPolynomialTransport<Thermo, PolySize>::logPolynomialTransport
-(
-    Istream& is
-)
-:
-    Thermo(is),
-    muCoeffs_("muLogCoeffs<" + Foam::name(PolySize) + '>', is),
-    kappaCoeffs_("kappaLogCoeffs<" + Foam::name(PolySize) + '>', is)
-{}
-
-
 template<class Thermo, int PolySize>
 Foam::logPolynomialTransport<Thermo, PolySize>::logPolynomialTransport
 (
@@ -100,21 +88,7 @@ Foam::Ostream& Foam::operator<<
     const logPolynomialTransport<Thermo, PolySize>& pt
 )
 {
-    os  << static_cast<const Thermo&>(pt) << tab
-        << "muLogCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.muCoeffs_ << tab
-        << "kappaLogCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.kappaCoeffs_;
-
-    os.check
-    (
-        "Ostream& operator<<"
-        "("
-            "Ostream&, "
-            "const logPolynomialTransport<Thermo, PolySize>&"
-        ")"
-    );
-
+    pt.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
index 01b4fc9f336..712ae331153 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
@@ -149,9 +149,6 @@ public:
 
     // Constructors
 
-        //- Construct copy
-        inline logPolynomialTransport(const logPolynomialTransport&);
-
         //- Construct as named copy
         inline logPolynomialTransport
         (
@@ -159,18 +156,12 @@ public:
             const logPolynomialTransport&
         );
 
-        //- Construct from Istream
-        logPolynomialTransport(Istream& is);
-
         //- Construct from dictionary
         logPolynomialTransport(const dictionary& dict);
 
         //- Construct and return a clone
         inline autoPtr<logPolynomialTransport> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<logPolynomialTransport> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<logPolynomialTransport> New
         (
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
index 514d243dec8..29c15536968 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
@@ -27,18 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo, int PolySize>
-inline Foam::logPolynomialTransport<Thermo, PolySize>::logPolynomialTransport
-(
-    const logPolynomialTransport& pt
-)
-:
-    Thermo(pt),
-    muCoeffs_(pt.muCoeffs_),
-    kappaCoeffs_(pt.kappaCoeffs_)
-{}
-
-
 template<class Thermo, int PolySize>
 inline Foam::logPolynomialTransport<Thermo, PolySize>::logPolynomialTransport
 (
@@ -77,17 +65,6 @@ Foam::logPolynomialTransport<Thermo, PolySize>::clone() const
 }
 
 
-template<class Thermo, int PolySize>
-inline Foam::autoPtr<Foam::logPolynomialTransport<Thermo, PolySize>>
-Foam::logPolynomialTransport<Thermo, PolySize>::New(Istream& is)
-{
-    return autoPtr<logPolynomialTransport<Thermo, PolySize>>
-    (
-        new logPolynomialTransport<Thermo, PolySize>(is)
-    );
-}
-
-
 template<class Thermo, int PolySize>
 inline Foam::autoPtr<Foam::logPolynomialTransport<Thermo, PolySize>>
 Foam::logPolynomialTransport<Thermo, PolySize>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C
index adcc8485d19..cb907dd01d5 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.C
@@ -28,15 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo, int PolySize>
-Foam::polynomialTransport<Thermo, PolySize>::polynomialTransport(Istream& is)
-:
-    Thermo(is),
-    muCoeffs_("muCoeffs<" + Foam::name(PolySize) + '>', is),
-    kappaCoeffs_("kappaCoeffs<" + Foam::name(PolySize) + '>', is)
-{}
-
-
 template<class Thermo, int PolySize>
 Foam::polynomialTransport<Thermo, PolySize>::polynomialTransport
 (
@@ -97,21 +88,7 @@ Foam::Ostream& Foam::operator<<
     const polynomialTransport<Thermo, PolySize>& pt
 )
 {
-    os  << static_cast<const Thermo&>(pt) << tab
-        << "muCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.muCoeffs_ << tab
-        << "kappaCoeffs<" << Foam::name(PolySize) << '>' << tab
-        << pt.kappaCoeffs_;
-
-    os.check
-    (
-        "Ostream& operator<<"
-        "("
-            "Ostream&, "
-            "const polynomialTransport<Thermo, PolySize>&"
-        ")"
-    );
-
+    pt.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
index 8b7c95cedc6..425706f0243 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
@@ -138,24 +138,15 @@ public:
 
     // Constructors
 
-        //- Construct copy
-        inline polynomialTransport(const polynomialTransport&);
-
         //- Construct as named copy
         inline polynomialTransport(const word&, const polynomialTransport&);
 
-        //- Construct from Istream
-        polynomialTransport(Istream& is);
-
         //- Construct from dictionary
         polynomialTransport(const dictionary& dict);
 
         //- Construct and return a clone
         inline autoPtr<polynomialTransport> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<polynomialTransport> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<polynomialTransport> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
index 501c9f0633f..3715ccbb185 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
@@ -27,18 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo, int PolySize>
-inline Foam::polynomialTransport<Thermo, PolySize>::polynomialTransport
-(
-    const polynomialTransport& pt
-)
-:
-    Thermo(pt),
-    muCoeffs_(pt.muCoeffs_),
-    kappaCoeffs_(pt.kappaCoeffs_)
-{}
-
-
 template<class Thermo, int PolySize>
 inline Foam::polynomialTransport<Thermo, PolySize>::polynomialTransport
 (
@@ -77,17 +65,6 @@ Foam::polynomialTransport<Thermo, PolySize>::clone() const
 }
 
 
-template<class Thermo, int PolySize>
-inline Foam::autoPtr<Foam::polynomialTransport<Thermo, PolySize>>
-Foam::polynomialTransport<Thermo, PolySize>::New(Istream& is)
-{
-    return autoPtr<polynomialTransport<Thermo, PolySize>>
-    (
-        new polynomialTransport<Thermo, PolySize>(is)
-    );
-}
-
-
 template<class Thermo, int PolySize>
 inline Foam::autoPtr<Foam::polynomialTransport<Thermo, PolySize>>
 Foam::polynomialTransport<Thermo, PolySize>::New(const dictionary& dict)
diff --git a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.C b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.C
index db8cc730268..1fa07890149 100644
--- a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.C
+++ b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,17 +41,6 @@ Foam::scalar Foam::sutherlandTransport<Thermo>::readCoeff
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Thermo>
-Foam::sutherlandTransport<Thermo>::sutherlandTransport(Istream& is)
-:
-    Thermo(is),
-    As_(readScalar(is)),
-    Ts_(readScalar(is))
-{
-    is.check("sutherlandTransport<Thermo>::sutherlandTransport(Istream&)");
-}
-
-
 template<class Thermo>
 Foam::sutherlandTransport<Thermo>::sutherlandTransport(const dictionary& dict)
 :
@@ -102,13 +91,7 @@ Foam::Ostream& Foam::operator<<
     const sutherlandTransport<Thermo>& st
 )
 {
-    os << static_cast<const Thermo&>(st) << tab << st.As_ << tab << st.Ts_;
-
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const sutherlandTransport<Thermo>&)"
-    );
-
+    st.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H
index 1acc05bcc57..0551a566fe0 100644
--- a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H
+++ b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransport.H
@@ -127,9 +127,6 @@ public:
         //- Construct as named copy
         inline sutherlandTransport(const word&, const sutherlandTransport&);
 
-        //- Construct from Istream
-        sutherlandTransport(Istream&);
-
         //- Construct from dictionary
         sutherlandTransport(const dictionary& dict);
 
@@ -139,9 +136,6 @@ public:
         //- Construct and return a clone
         inline autoPtr<sutherlandTransport> clone() const;
 
-        // Selector from Istream
-        inline static autoPtr<sutherlandTransport> New(Istream& is);
-
         // Selector from dictionary
         inline static autoPtr<sutherlandTransport> New(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
index 71b4449079a..b5a0f6835f2 100644
--- a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
+++ b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
@@ -98,20 +98,6 @@ Foam::sutherlandTransport<Thermo>::clone() const
 }
 
 
-template<class Thermo>
-inline Foam::autoPtr<Foam::sutherlandTransport<Thermo>>
-Foam::sutherlandTransport<Thermo>::New
-(
-    Istream& is
-)
-{
-    return autoPtr<sutherlandTransport<Thermo>>
-    (
-        new sutherlandTransport<Thermo>(is)
-    );
-}
-
-
 template<class Thermo>
 inline Foam::autoPtr<Foam::sutherlandTransport<Thermo>>
 Foam::sutherlandTransport<Thermo>::New
diff --git a/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C b/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C
index c28171c3bfa..ff23b184027 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,12 +32,6 @@ namespace Foam
 {
     defineTypeNameAndDebug(APIdiffCoefFunc, 0);
     addToRunTimeSelectionTable
-    (
-        thermophysicalFunction,
-        APIdiffCoefFunc,
-        Istream
-    );
-    addToRunTimeSelectionTable
     (
         thermophysicalFunction,
         APIdiffCoefFunc,
@@ -64,17 +58,6 @@ Foam::APIdiffCoefFunc::APIdiffCoefFunc
 {}
 
 
-Foam::APIdiffCoefFunc::APIdiffCoefFunc(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    wf_(readScalar(is)),
-    wa_(readScalar(is)),
-    alpha_(sqrt(1/wf_ + 1/wa_)),
-    beta_(sqr((cbrt(a_) + cbrt(b_))))
-{}
-
-
 Foam::APIdiffCoefFunc::APIdiffCoefFunc(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H b/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H
index 164be51f0fc..a431bdee6fb 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,9 +79,6 @@ public:
             const scalar wa
         );
 
-        //- Construct from Istream
-        APIdiffCoefFunc(Istream& is);
-
         //- Construct from dictionary
         APIdiffCoefFunc(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C
index fa6bf14bb1e..0fccd567f5d 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc0, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc0, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc0, dictionary);
 }
 
@@ -56,17 +55,6 @@ Foam::NSRDSfunc0::NSRDSfunc0
 {}
 
 
-Foam::NSRDSfunc0::NSRDSfunc0(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is)),
-    e_(readScalar(is)),
-    f_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc0::NSRDSfunc0(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H
index a6da31dad23..38a4e7d2bc5 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -94,9 +94,6 @@ public:
             const scalar f
         );
 
-        //- Construct from Istream
-        NSRDSfunc0(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc0(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C
index b7db748376d..60b61614b1a 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc1, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc1, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc1, dictionary);
 }
 
@@ -54,16 +53,6 @@ Foam::NSRDSfunc1::NSRDSfunc1
 {}
 
 
-Foam::NSRDSfunc1::NSRDSfunc1(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is)),
-    e_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc1::NSRDSfunc1(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H
index 87ba1327788..c9c8e1088e2 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,9 +93,6 @@ public:
             const scalar e
         );
 
-        //- Construct from Istream
-        NSRDSfunc1(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc1(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C
index b8e8c44313d..b5aa0669333 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc14, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc14, Istream);
     addToRunTimeSelectionTable
     (
         thermophysicalFunction,
@@ -59,16 +58,6 @@ Foam::NSRDSfunc14::NSRDSfunc14
 {}
 
 
-Foam::NSRDSfunc14::NSRDSfunc14(Istream& is)
-:
-    Tc_(readScalar(is)),
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc14::NSRDSfunc14(const dictionary& dict)
 :
     Tc_(readScalar(dict.lookup("Tc"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H
index 4e1890384a5..719aa0789de 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,9 +93,6 @@ public:
             const scalar d
         );
 
-        //- Construct from Istream
-        NSRDSfunc14(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc14(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C
index 93da6a1ce74..3365d08c5cc 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc2, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc2, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc2, dictionary);
 }
 
@@ -52,15 +51,6 @@ Foam::NSRDSfunc2::NSRDSfunc2
 {}
 
 
-Foam::NSRDSfunc2::NSRDSfunc2(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc2::NSRDSfunc2(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H
index 3434eb9ef90..58a7d46129f 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,9 +92,6 @@ public:
             const scalar d
         );
 
-        //- Construct from Istream
-        NSRDSfunc2(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc2(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C
index 9ed62c74722..2c25a0ae6e5 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc3, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc3, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc3, dictionary);
 }
 
@@ -52,15 +51,6 @@ Foam::NSRDSfunc3::NSRDSfunc3
 {}
 
 
-Foam::NSRDSfunc3::NSRDSfunc3(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc3::NSRDSfunc3(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H
index 18d8bc49614..ad9809af7f7 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,9 +92,6 @@ public:
             const scalar d
         );
 
-        //- Construct from Istream
-        NSRDSfunc3(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc3(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C
index 626b0036691..809af7aa4a8 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc4, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc4, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc4, dictionary);
 }
 
@@ -54,16 +53,6 @@ Foam::NSRDSfunc4::NSRDSfunc4
 {}
 
 
-Foam::NSRDSfunc4::NSRDSfunc4(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is)),
-    e_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc4::NSRDSfunc4(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H
index 275ecbc82fa..6da5500b7fd 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,9 +93,6 @@ public:
             const scalar e
         );
 
-        //- Construct from Istream
-        NSRDSfunc4(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc4(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C
index 151a17f26cf..0c6100beb52 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc5, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc5, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc5, dictionary);
 }
 
@@ -52,15 +51,6 @@ Foam::NSRDSfunc5::NSRDSfunc5
 {}
 
 
-Foam::NSRDSfunc5::NSRDSfunc5(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc5::NSRDSfunc5(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H
index ec6372c71de..222c8686aeb 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,9 +92,6 @@ public:
             const scalar d
         );
 
-        //- Construct from Istream
-        NSRDSfunc5(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc5(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C
index 5bfce5c5bcc..766d9e88398 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc6, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc6, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc6, dictionary);
 }
 
@@ -56,17 +55,6 @@ Foam::NSRDSfunc6::NSRDSfunc6
 {}
 
 
-Foam::NSRDSfunc6::NSRDSfunc6(Istream& is)
-:
-    Tc_(readScalar(is)),
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is)),
-    e_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc6::NSRDSfunc6(const dictionary& dict)
 :
     Tc_(readScalar(dict.lookup("Tc"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H
index e061dbb2b39..4d8241ce986 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -94,9 +94,6 @@ public:
             const scalar e
         );
 
-        //- Construct from Istream
-        NSRDSfunc6(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc6(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C
index 82f095e7369..a508c91d95f 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(NSRDSfunc7, 0);
-    addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc7, Istream);
     addToRunTimeSelectionTable(thermophysicalFunction, NSRDSfunc7, dictionary);
 }
 
@@ -54,16 +53,6 @@ Foam::NSRDSfunc7::NSRDSfunc7
 {}
 
 
-Foam::NSRDSfunc7::NSRDSfunc7(Istream& is)
-:
-    a_(readScalar(is)),
-    b_(readScalar(is)),
-    c_(readScalar(is)),
-    d_(readScalar(is)),
-    e_(readScalar(is))
-{}
-
-
 Foam::NSRDSfunc7::NSRDSfunc7(const dictionary& dict)
 :
     a_(readScalar(dict.lookup("a"))),
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H
index 0ce3da7c94b..f61ec13c3b8 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,9 +93,6 @@ public:
             const scalar e
         );
 
-        //- Construct from Istream
-        NSRDSfunc7(Istream& is);
-
         //- Construct from dictionary
         NSRDSfunc7(const dictionary& dict);
 
diff --git a/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C b/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C
index 16e8f0971a8..673e80162d3 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C
+++ b/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,45 +31,12 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(thermophysicalFunction, 0);
-    defineRunTimeSelectionTable(thermophysicalFunction, Istream);
     defineRunTimeSelectionTable(thermophysicalFunction, dictionary);
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::thermophysicalFunction> Foam::thermophysicalFunction::New
-(
-    Istream& is
-)
-{
-    if (debug)
-    {
-        InfoInFunction
-            << "Constructing thermophysicalFunction"
-            << endl;
-    }
-
-    const word thermophysicalFunctionType(is);
-
-    IstreamConstructorTable::iterator cstrIter =
-        IstreamConstructorTablePtr_->find(thermophysicalFunctionType);
-
-    if (cstrIter == IstreamConstructorTablePtr_->end())
-    {
-        FatalErrorInFunction
-            << "Unknown thermophysicalFunction type "
-            << thermophysicalFunctionType
-            << nl << nl
-            << "Valid thermophysicalFunction types are :" << endl
-            << IstreamConstructorTablePtr_->sortedToc()
-            << abort(FatalError);
-    }
-
-    return autoPtr<thermophysicalFunction>(cstrIter()(is));
-}
-
-
 Foam::autoPtr<Foam::thermophysicalFunction> Foam::thermophysicalFunction::New
 (
     const dictionary& dict
@@ -87,7 +54,7 @@ Foam::autoPtr<Foam::thermophysicalFunction> Foam::thermophysicalFunction::New
     dictionaryConstructorTable::iterator cstrIter =
         dictionaryConstructorTablePtr_->find(thermophysicalFunctionType);
 
-    if (cstrIter == IstreamConstructorTablePtr_->end())
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
     {
         FatalErrorInFunction
             << "Unknown thermophysicalFunction type "
diff --git a/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H b/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H
index 63d3b288794..8f263ed5538 100644
--- a/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H
+++ b/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,15 +59,6 @@ public:
 
     // Declare run-time constructor selection tables
 
-        declareRunTimeSelectionTable
-        (
-            autoPtr,
-            thermophysicalFunction,
-            Istream,
-            (Istream& is),
-            (is)
-        );
-
         declareRunTimeSelectionTable
         (
             autoPtr,
@@ -84,9 +75,6 @@ public:
         thermophysicalFunction()
         {}
 
-        //- Return pointer to new thermophysicalFunction created from input
-        static autoPtr<thermophysicalFunction> New(Istream& is);
-
         //- Return pointer to new thermophysicalFunction created from dict
         static autoPtr<thermophysicalFunction> New(const dictionary& dict);
 
-- 
GitLab


From ba9d58a26fb6beae0aec90ee989794891e0460a7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Feb 2017 16:35:43 +0000
Subject: [PATCH 085/277] thermophysicalModels: Ostream operator calls
 write(os) for consistent IO

---
 .../reaction/Reactions/Reaction/ReactionI.H   |  7 ++-
 .../ArrheniusReactionRateI.H                  |  4 +-
 .../ChemicallyActivatedReactionRateI.H        |  4 +-
 .../FallOffReactionRateI.H                    |  7 +--
 .../JanevReactionRate/JanevReactionRateI.H    | 11 +----
 .../LandauTellerReactionRateI.H               |  5 +-
 .../LangmuirHinshelwoodReactionRateI.H        | 11 +----
 .../SRIFallOffFunction/SRIFallOffFunctionI.H  |  9 +---
 .../TroeFallOffFunctionI.H                    |  8 +---
 .../infiniteReactionRateI.H                   |  5 +-
 .../powerSeries/powerSeriesReactionRateI.H    | 11 +----
 .../thirdBodyArrheniusReactionRateI.H         |  5 +-
 .../thirdBodyEfficienciesI.H                  | 48 +------------------
 13 files changed, 16 insertions(+), 119 deletions(-)

diff --git a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/ReactionI.H b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/ReactionI.H
index 6dece80ba78..55287cbfd6c 100644
--- a/src/thermophysicalModels/specie/reaction/Reactions/Reaction/ReactionI.H
+++ b/src/thermophysicalModels/specie/reaction/Reactions/Reaction/ReactionI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,9 +67,8 @@ Reaction<ReactionThermo>::rhs() const
 template<class ReactionThermo>
 inline Ostream& operator<<(Ostream& os, const Reaction<ReactionThermo>& r)
 {
-    OStringStream reaction;
-    os << r.reactionStr(reaction)<< token::END_STATEMENT <<nl;
-   return os;
+    r.write(os);
+    return os;
 }
 
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H
index 5c67a60e96b..49ec48c71e4 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRateI.H
@@ -89,9 +89,7 @@ inline Foam::Ostream& Foam::operator<<
     const ArrheniusReactionRate& arr
 )
 {
-    os  << token::BEGIN_LIST
-        << arr.A_ << token::SPACE << arr.beta_ << token::SPACE << arr.Ta_
-        << token::END_LIST;
+    arr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H
index f8e71fd4e37..3e54f9a6ab6 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/ChemicallyActivatedReactionRate/ChemicallyActivatedReactionRateI.H
@@ -108,9 +108,7 @@ inline Foam::Ostream& Foam::operator<<
         <ReactionRate, ChemicallyActivationFunction>& carr
 )
 {
-    os  << token::BEGIN_LIST
-        << carr.k0_ << token::SPACE << carr.kInf_ << token::SPACE << carr.F_
-        << token::END_LIST;
+    carr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H
index 0b7fa5f0325..fff348d4810 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/FallOffReactionRate/FallOffReactionRateI.H
@@ -120,12 +120,7 @@ inline Foam::Ostream& Foam::operator<<
     const FallOffReactionRate<ReactionRate, FallOffFunction>& forr
 )
 {
-    os  << token::BEGIN_LIST
-        << forr.k0_ << token::SPACE
-        << forr.kInf_ << token::SPACE
-        << forr.F_ << token::SPACE
-        << forr.thirdBodyEfficiencies_
-        << token::END_LIST;
+    forr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H
index 055d6291d7f..cc76c2c2c5e 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRateI.H
@@ -104,16 +104,7 @@ inline Foam::Ostream& Foam::operator<<
     const JanevReactionRate& jrr
 )
 {
-    os  << token::BEGIN_LIST
-        << jrr.A_ << token::SPACE << jrr.beta_ << token::SPACE << jrr.Ta_;
-
-    for (int n=0; n<JanevReactionRate::nb_; n++)
-    {
-        os  << token::SPACE << jrr.b_[n];
-    }
-
-    os << token::END_LIST;
-
+    jrr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H
index 56a636e9c7c..7d2c9ecd791 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRateI.H
@@ -114,10 +114,7 @@ inline Foam::Ostream& Foam::operator<<
     const LandauTellerReactionRate& arr
 )
 {
-    os  << token::BEGIN_LIST
-        << arr.A_ << token::SPACE << arr.beta_ << token::SPACE << arr.Ta_
-        << token::SPACE << arr.B_ << token::SPACE << arr.C_
-        << token::END_LIST;
+    arr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H
index 029d2544417..d0b13587bf4 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRateI.H
@@ -109,16 +109,7 @@ inline Foam::Ostream& Foam::operator<<
     const LangmuirHinshelwoodReactionRate& lhrr
 )
 {
-    os  << token::BEGIN_LIST;
-
-    for (int i=0; i<LangmuirHinshelwoodReactionRate::n_; i++)
-    {
-        os  << token::SPACE
-            << '(' << lhrr.A_[i] << token::SPACE << lhrr.Ta_[i] << ')';
-    }
-
-    os << token::END_LIST;
-
+    lhrr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H
index df458854790..68cce0350da 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/SRIFallOffFunction/SRIFallOffFunctionI.H
@@ -83,14 +83,7 @@ inline Foam::Ostream& Foam::operator<<
     const Foam::SRIFallOffFunction& srifof
 )
 {
-    os  << token::BEGIN_LIST
-        << srifof.a_
-        << token::SPACE << srifof.b_
-        << token::SPACE << srifof.c_
-        << token::SPACE << srifof.d_
-        << token::SPACE << srifof.e_
-        << token::END_LIST;
-
+    srifof.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H
index ff504a29f2e..1913985c18d 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/fallOffFunctions/TroeFallOffFunction/TroeFallOffFunctionI.H
@@ -92,13 +92,7 @@ inline Foam::Ostream& Foam::operator<<
     const Foam::TroeFallOffFunction& tfof
 )
 {
-    os  << token::BEGIN_LIST
-        << tfof.alpha_
-        << token::SPACE << tfof.Tsss_
-        << token::SPACE << tfof.Ts_
-        << token::SPACE << tfof.Tss_
-        << token::END_LIST;
-
+    tfof.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRateI.H
index 7d95e55395f..91860345118 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,8 +60,7 @@ inline Foam::Ostream& Foam::operator<<
     const infiniteReactionRate& rr
 )
 {
-    os  << token::BEGIN_LIST
-        << token::END_LIST;
+    rr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H
index 5cee7f9b7f8..fcf9b808c3b 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRateI.H
@@ -97,16 +97,7 @@ inline Foam::Ostream& Foam::operator<<
     const powerSeriesReactionRate& psrr
 )
 {
-    os  << token::BEGIN_LIST
-        << psrr.A_ << token::SPACE << psrr.beta_ << token::SPACE << psrr.Ta_;
-
-    for (int n=0; n<powerSeriesReactionRate::nCoeff_; n++)
-    {
-        os  << token::SPACE << psrr.coeffs_[n];
-    }
-
-    os << token::END_LIST;
-
+    psrr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H
index 711dfde0e1c..d9b39b61a59 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRateI.H
@@ -81,10 +81,7 @@ inline Foam::Ostream& Foam::operator<<
     const thirdBodyArrheniusReactionRate& arr
 )
 {
-    os  << token::BEGIN_LIST
-        << static_cast<const ArrheniusReactionRate&>(arr)
-        << token::SPACE << arr.thirdBodyEfficiencies_
-        << token::END_LIST;
+    arr.write(os);
     return os;
 }
 
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H
index d77df740ba8..97a0e8eeed9 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyEfficiencies/thirdBodyEfficienciesI.H
@@ -114,53 +114,7 @@ inline Foam::Ostream& Foam::operator<<
     const thirdBodyEfficiencies& tbes
 )
 {
-    scalarList orderedTbes = tbes;
-    sort(orderedTbes);
-
-    scalar val = orderedTbes[0];
-    label count = 1;
-
-    scalar valMaxCount = val;
-    label maxCount = 1;
-
-    for (label i=1; i<orderedTbes.size(); i++)
-    {
-        if (equal(orderedTbes[i], val))
-        {
-            count++;
-        }
-        else
-        {
-            if (count > maxCount)
-            {
-                maxCount = count;
-                valMaxCount = val;
-            }
-
-            count = 1;
-            val = orderedTbes[i];
-        }
-    }
-
-    if (count > maxCount)
-    {
-        maxCount = count;
-        valMaxCount = val;
-    }
-
-    os << token::BEGIN_LIST << valMaxCount;
-
-    forAll(tbes, i)
-    {
-        if (notEqual(tbes[i], valMaxCount))
-        {
-            os  << token::SPACE << tbes.species_[i]
-                << token::SPACE << tbes[i];
-        }
-    }
-
-    os << token::END_LIST;
-
+    tbes.write(os);
     return os;
 }
 
-- 
GitLab


From a6fd99b87410df65f552f433fcec4ef36d070bed Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Feb 2017 20:29:58 +0000
Subject: [PATCH 086/277] liquidProperties: simplified and generalized the IO

When liquids are constructed from dictionary the coefficients are now first
initialized to their standard values and overridden by the now optional entries
provided in the dictionary.  For example to specify water with all the standard
temperature varying properties but override only the density with a constant
value of 1000 specify in thermophysicalProperties

liquids
{
    H2O
    {
        defaultCoeffs   no;

        H2OCoeffs
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
}
---
 .../properties/liquidProperties/Ar/Ar.C       | 36 ++++++-----
 .../properties/liquidProperties/Ar/Ar.H       | 29 +++------
 .../liquidProperties/C10H22/C10H22.C          | 36 ++++++-----
 .../liquidProperties/C10H22/C10H22.H          | 30 +++------
 .../liquidProperties/C12H26/C12H26.C          | 36 ++++++-----
 .../liquidProperties/C12H26/C12H26.H          | 29 +++------
 .../liquidProperties/C13H28/C13H28.C          | 36 ++++++-----
 .../liquidProperties/C13H28/C13H28.H          | 29 +++------
 .../liquidProperties/C14H30/C14H30.C          | 36 ++++++-----
 .../liquidProperties/C14H30/C14H30.H          | 29 +++------
 .../liquidProperties/C16H34/C16H34.C          | 36 ++++++-----
 .../liquidProperties/C16H34/C16H34.H          | 29 +++------
 .../liquidProperties/C2H5OH/C2H5OH.C          | 36 ++++++-----
 .../liquidProperties/C2H5OH/C2H5OH.H          | 29 +++------
 .../properties/liquidProperties/C2H6/C2H6.C   | 36 ++++++-----
 .../properties/liquidProperties/C2H6/C2H6.H   | 29 +++------
 .../properties/liquidProperties/C2H6O/C2H6O.C | 36 ++++++-----
 .../properties/liquidProperties/C2H6O/C2H6O.H | 29 +++------
 .../properties/liquidProperties/C3H6O/C3H6O.C | 36 ++++++-----
 .../properties/liquidProperties/C3H6O/C3H6O.H | 30 +++------
 .../properties/liquidProperties/C3H8/C3H8.C   | 36 ++++++-----
 .../properties/liquidProperties/C3H8/C3H8.H   | 29 +++------
 .../liquidProperties/C4H10O/C4H10O.C          | 36 ++++++-----
 .../liquidProperties/C4H10O/C4H10O.H          | 29 +++------
 .../properties/liquidProperties/C6H14/C6H14.C | 36 ++++++-----
 .../properties/liquidProperties/C6H14/C6H14.H | 29 +++------
 .../properties/liquidProperties/C6H6/C6H6.C   | 36 ++++++-----
 .../properties/liquidProperties/C6H6/C6H6.H   | 29 +++------
 .../properties/liquidProperties/C7H16/C7H16.C | 36 ++++++-----
 .../properties/liquidProperties/C7H16/C7H16.H | 29 +++------
 .../properties/liquidProperties/C7H8/C7H8.C   | 36 ++++++-----
 .../properties/liquidProperties/C7H8/C7H8.H   | 29 +++------
 .../properties/liquidProperties/C8H10/C8H10.C | 36 ++++++-----
 .../properties/liquidProperties/C8H10/C8H10.H | 29 +++------
 .../properties/liquidProperties/C8H18/C8H18.C | 36 ++++++-----
 .../properties/liquidProperties/C8H18/C8H18.H | 29 +++------
 .../properties/liquidProperties/C9H20/C9H20.C | 36 ++++++-----
 .../properties/liquidProperties/C9H20/C9H20.H | 29 +++------
 .../properties/liquidProperties/CH3OH/CH3OH.C | 36 ++++++-----
 .../properties/liquidProperties/CH3OH/CH3OH.H | 29 +++------
 .../liquidProperties/CH4N2O/CH4N2O.C          | 36 ++++++-----
 .../liquidProperties/CH4N2O/CH4N2O.H          | 29 +++------
 .../properties/liquidProperties/H2O/H2O.C     | 37 ++++++-----
 .../properties/liquidProperties/H2O/H2O.H     | 29 +++------
 .../liquidProperties/IC8H18/IC8H18.C          | 36 ++++++-----
 .../liquidProperties/IC8H18/IC8H18.H          | 29 +++------
 .../properties/liquidProperties/IDEA/IDEA.C   | 36 ++++++-----
 .../properties/liquidProperties/IDEA/IDEA.H   | 28 +++------
 .../properties/liquidProperties/MB/MB.C       | 36 ++++++-----
 .../properties/liquidProperties/MB/MB.H       | 29 +++------
 .../properties/liquidProperties/N2/N2.C       | 36 ++++++-----
 .../properties/liquidProperties/N2/N2.H       | 29 +++------
 .../liquidProperties/aC10H7CH3/aC10H7CH3.C    | 36 ++++++-----
 .../liquidProperties/aC10H7CH3/aC10H7CH3.H    | 30 +++------
 .../liquidProperties/bC10H7CH3/bC10H7CH3.C    | 36 ++++++-----
 .../liquidProperties/bC10H7CH3/bC10H7CH3.H    | 29 +++------
 .../liquidProperties/iC3H8O/iC3H8O.C          | 36 ++++++-----
 .../liquidProperties/iC3H8O/iC3H8O.H          | 29 +++------
 .../liquidProperties/liquidProperties.C       | 25 ++++++++
 .../liquidProperties/liquidProperties.H       | 39 ++++++++++--
 .../liquidProperties/liquidPropertiesI.H      | 63 +++++++++++++++++++
 .../liquidProperties/nC3H8O/nC3H8O.C          | 36 ++++++-----
 .../liquidProperties/nC3H8O/nC3H8O.H          | 29 +++------
 63 files changed, 959 insertions(+), 1121 deletions(-)

diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
index c6bcfbdc11b..a9f1b61bfaa 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
+++ b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
@@ -121,21 +121,27 @@ Foam::Ar::Ar
 
 Foam::Ar::Ar(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    Ar()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::Ar::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const Ar& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
index f5710401d84..a84320b96dd 100644
--- a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
+++ b/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
@@ -79,6 +79,8 @@ class Ar
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("Ar");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const Ar& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const Ar& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const Ar& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
index 5d82ef6da10..14937565f91 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
@@ -129,21 +129,27 @@ Foam::C10H22::C10H22
 
 Foam::C10H22::C10H22(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C10H22()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C10H22::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C10H22& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
index 2f747a27bdf..216acbf1581 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
@@ -79,6 +79,8 @@ class C10H22
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C10H22");
 
@@ -165,34 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
-
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C10H22& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C10H22& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C10H22& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
index 3f5271210f2..9dbc1dcee9a 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
@@ -121,21 +121,27 @@ Foam::C12H26::C12H26
 
 Foam::C12H26::C12H26(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C12H26()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C12H26::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C12H26& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
index 23c1ad9077c..e50af5035fc 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
@@ -79,6 +79,8 @@ class C12H26
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C12H26");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C12H26& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C12H26& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C12H26& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
index a4011182ab4..8c046e73e50 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
@@ -129,21 +129,27 @@ Foam::C13H28::C13H28
 
 Foam::C13H28::C13H28(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C13H28()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C13H28::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C13H28& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
index 4ed22aafebd..c8ebfdfdb0a 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
@@ -79,6 +79,8 @@ class C13H28
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C13H28");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C13H28& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C13H28& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C13H28& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
index 98fbbc8f7fb..63533f8ae2e 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
@@ -129,21 +129,27 @@ Foam::C14H30::C14H30
 
 Foam::C14H30::C14H30(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C14H30()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C14H30::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C14H30& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
index bfa65436d5f..68351c2d411 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
@@ -79,6 +79,8 @@ class C14H30
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C14H30");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C14H30& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C14H30& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C14H30& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
index 12a00555b5b..bb9c5355d21 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
@@ -129,21 +129,27 @@ Foam::C16H34::C16H34
 
 Foam::C16H34::C16H34(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C16H34()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C16H34::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C16H34& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
index 36085db54b3..a42139cc5ae 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
@@ -79,6 +79,8 @@ class C16H34
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C16H34");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C16H34& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C16H34& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C16H34& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
index a9d441a9422..8f80b13a480 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
@@ -129,21 +129,27 @@ Foam::C2H5OH::C2H5OH
 
 Foam::C2H5OH::C2H5OH(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C2H5OH()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C2H5OH::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C2H5OH& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
index 7296b4e343a..4d06bdb0421 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
@@ -79,6 +79,8 @@ class C2H5OH
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C2H5OH");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C2H5OH& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C2H5OH& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C2H5OH& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
index 9cab052a77c..bfa922171b8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
@@ -120,21 +120,27 @@ Foam::C2H6::C2H6
 
 Foam::C2H6::C2H6(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C2H6()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C2H6::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C2H6& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
index ebed8aa44c6..9f69f702988 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
@@ -79,6 +79,8 @@ class C2H6
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C2H6");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C2H6& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C2H6& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C2H6& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
index bf0528dc0dc..94c46d94c10 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
@@ -130,21 +130,27 @@ Foam::C2H6O::C2H6O
 
 Foam::C2H6O::C2H6O(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C2H6O()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C2H6O::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C2H6O& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
index 0477b7993e4..ec54cee6c30 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
@@ -79,6 +79,8 @@ class C2H6O
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C2H6O");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C2H6O& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C2H6O& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C2H6O& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
index f617fd592f0..8495142bfb8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
@@ -129,21 +129,27 @@ Foam::C3H6O::C3H6O
 
 Foam::C3H6O::C3H6O(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C3H6O()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C3H6O::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C3H6O& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
index 9cafa343137..f1f770a5244 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
@@ -79,6 +79,8 @@ class C3H6O
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C3H6O");
 
@@ -165,34 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-
-        friend Ostream& operator<<(Ostream& os, const C3H6O& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C3H6O& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C3H6O& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
index 58abb7117e4..6c827993e12 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
@@ -119,21 +119,27 @@ Foam::C3H8::C3H8
 
 Foam::C3H8::C3H8(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C3H8()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C3H8::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C3H8& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
index 9d451dcd62e..950b6e6085c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
@@ -79,6 +79,8 @@ class C3H8
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C3H8");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C3H8& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C3H8& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C3H8& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
index 1012d7bcf1c..581e38fc334 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
@@ -129,21 +129,27 @@ Foam::C4H10O::C4H10O
 
 Foam::C4H10O::C4H10O(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C4H10O()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C4H10O::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C4H10O& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
index 16072f1c86f..1049d3692fa 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
@@ -79,6 +79,8 @@ class C4H10O
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C4H10O");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C4H10O& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C4H10O& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C4H10O& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
index dfd50d0e3ad..91cfa8f91df 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
@@ -129,21 +129,27 @@ Foam::C6H14::C6H14
 
 Foam::C6H14::C6H14(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C6H14()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C6H14::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C6H14& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
index 9769fc41ddd..da6301802ff 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
@@ -79,6 +79,8 @@ class C6H14
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C6H14");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C6H14& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C6H14& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C6H14& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
index a4c10bea045..fcce3cb513f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
@@ -129,21 +129,27 @@ Foam::C6H6::C6H6
 
 Foam::C6H6::C6H6(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C6H6()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C6H6::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C6H6& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
index 260f228e8cc..da7a6f32bea 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
@@ -79,6 +79,8 @@ class C6H6
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C6H6");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C6H6& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C6H6& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C6H6& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
index c2032f54799..d8e1101f1b8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
@@ -128,21 +128,27 @@ Foam::C7H16::C7H16
 
 Foam::C7H16::C7H16(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C7H16()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C7H16::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C7H16& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
index f18c7bf3898..c30a0d4cdce 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
@@ -79,6 +79,8 @@ class C7H16
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C7H16");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C7H16& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C7H16& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C7H16& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
index 8b070065b1c..142a20a09d8 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
@@ -129,21 +129,27 @@ Foam::C7H8::C7H8
 
 Foam::C7H8::C7H8(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C7H8()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C7H8::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C7H8& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
index 28e018d7f2b..16bbb8364a3 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
@@ -79,6 +79,8 @@ class C7H8
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C7H8");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C7H8& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C7H8& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C7H8& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
index 95822a69fd1..99f021fa030 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
@@ -129,21 +129,27 @@ Foam::C8H10::C8H10
 
 Foam::C8H10::C8H10(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C8H10()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C8H10::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C8H10& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
index d53a9dc7612..856071437ef 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
@@ -78,6 +78,8 @@ class C8H10
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C8H10");
 
@@ -164,33 +166,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C8H10& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C8H10& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C8H10& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
index 0bd8dad7211..290984601ad 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
@@ -129,21 +129,27 @@ Foam::C8H18::C8H18
 
 Foam::C8H18::C8H18(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C8H18()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C8H18::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C8H18& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
index 3146c7f7885..caf1ad885a6 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
@@ -79,6 +79,8 @@ class C8H18
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C8H18");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C8H18& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C8H18& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C8H18& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
index 803ec867f9c..2062ef8edab 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
+++ b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
@@ -129,21 +129,27 @@ Foam::C9H20::C9H20
 
 Foam::C9H20::C9H20(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    C9H20()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::C9H20::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const C9H20& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
index 61ea898d96f..72d2d6f9378 100644
--- a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
+++ b/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
@@ -79,6 +79,8 @@ class C9H20
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("C9H20");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const C9H20& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const C9H20& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const C9H20& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
index 7e3918fc71b..3e21b663364 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
+++ b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
@@ -129,21 +129,27 @@ Foam::CH3OH::CH3OH
 
 Foam::CH3OH::CH3OH(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    CH3OH()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::CH3OH::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const CH3OH& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
index 705493ab025..0d359ed8311 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
@@ -79,6 +79,8 @@ class CH3OH
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("CH3OH");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const CH3OH& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const CH3OH& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const CH3OH& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
index 7c218a20b7d..b7120cbed03 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
@@ -113,21 +113,27 @@ Foam::CH4N2O::CH4N2O
 
 Foam::CH4N2O::CH4N2O(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    CH4N2O()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::CH4N2O::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const CH4N2O& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
index 3a459e2a952..2e8be163ace 100644
--- a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
@@ -79,6 +79,8 @@ class CH4N2O
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("CH4N2O");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const CH4N2O& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const CH4N2O& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const CH4N2O& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
index 5f705a70676..eb211a946f2 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
@@ -138,25 +138,24 @@ Foam::H2O::H2O(const dictionary& dict)
 :
     H2O()
 {
-//     liquidProperties(dict),
-//     rho_(dict.subDict("rho")),
-    InfoInFunction;
-    if (dict.found("rho"))
-    {
-        rho_ = NSRDSfunc5(dict.subDict("rho"));
-    }
-//     pv_(dict.subDict("pv")),
-//     hl_(dict.subDict("hl")),
-//     Cp_(dict.subDict("Cp")),
-//     h_(dict.subDict("h")),
-//     Cpg_(dict.subDict("Cpg")),
-//     B_(dict.subDict("B")),
-//     mu_(dict.subDict("mu")),
-//     mug_(dict.subDict("mug")),
-//     kappa_(dict.subDict("K")),
-//     kappag_(dict.subDict("kappag")),
-//     sigma_(dict.subDict("sigma")),
-//     D_(dict.subDict("D"))
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::H2O::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const H2O& l)
+{
+    l.writeData(os);
+    return os;
 }
 
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
index 542dfd66c43..dfa48fd32c4 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
@@ -78,6 +78,8 @@ class H2O
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("H2O");
 
@@ -164,33 +166,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const H2O& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const H2O& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const H2O& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
index 77ba4be1d1e..7f6bd4a9230 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
+++ b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
@@ -129,21 +129,27 @@ Foam::IC8H18::IC8H18
 
 Foam::IC8H18::IC8H18(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    IC8H18()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::IC8H18::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const IC8H18& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
index 9a2e06fdf6f..9be7f5885cd 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
@@ -79,6 +79,8 @@ class IC8H18
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("IC8H18");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const IC8H18& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const IC8H18& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const IC8H18& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
index 01777a26ce6..99bf130a16a 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
+++ b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
@@ -149,21 +149,27 @@ Foam::IDEA::IDEA
 
 Foam::IDEA::IDEA(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    IDEA()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::IDEA::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const IDEA& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
index b34a7db9e99..dccf97c4fcc 100644
--- a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
+++ b/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
@@ -101,6 +101,8 @@ class IDEA
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("IDEA");
 
@@ -187,32 +189,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const IDEA& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const IDEA& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const IDEA& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.C b/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
index d98ef565b19..d101add34ef 100644
--- a/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
+++ b/src/thermophysicalModels/properties/liquidProperties/MB/MB.C
@@ -113,21 +113,27 @@ Foam::MB::MB
 
 Foam::MB::MB(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    MB()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::MB::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const MB& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.H b/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
index 4f7e5a5db75..9b0c7fd4308 100644
--- a/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
+++ b/src/thermophysicalModels/properties/liquidProperties/MB/MB.H
@@ -79,6 +79,8 @@ class MB
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("MB");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const MB& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const MB& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const MB& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.C b/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
index f22e3b06883..67e7f4b89aa 100644
--- a/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
+++ b/src/thermophysicalModels/properties/liquidProperties/N2/N2.C
@@ -129,21 +129,27 @@ Foam::N2::N2
 
 Foam::N2::N2(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    N2()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::N2::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const N2& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.H b/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
index 9bcc0cb67a2..db637e421f4 100644
--- a/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
+++ b/src/thermophysicalModels/properties/liquidProperties/N2/N2.H
@@ -79,6 +79,8 @@ class N2
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("N2");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const N2& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const N2& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const N2& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
index 562a59198b8..09a765204a1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
+++ b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
@@ -121,21 +121,27 @@ Foam::aC10H7CH3::aC10H7CH3
 
 Foam::aC10H7CH3::aC10H7CH3(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    aC10H7CH3()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::aC10H7CH3::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const aC10H7CH3& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
index 04bdf872003..370609e2f6f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
+++ b/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
@@ -79,6 +79,8 @@ class aC10H7CH3
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("aC11H10");
 
@@ -165,34 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
-
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const aC10H7CH3& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const aC10H7CH3& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const aC10H7CH3& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
index d2c2fd82d5b..5392da1737e 100644
--- a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
+++ b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
@@ -122,21 +122,27 @@ Foam::bC10H7CH3::bC10H7CH3
 
 Foam::bC10H7CH3::bC10H7CH3(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    bC10H7CH3()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::bC10H7CH3::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const bC10H7CH3& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
index 6f8966edf9e..07e700773d0 100644
--- a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
+++ b/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
@@ -79,6 +79,8 @@ class bC10H7CH3
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("bC11H10");
 
@@ -165,33 +167,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const bC10H7CH3& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const bC10H7CH3& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const bC10H7CH3& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
index c77141a9b11..bcb9b432548 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
@@ -129,21 +129,27 @@ Foam::iC3H8O::iC3H8O
 
 Foam::iC3H8O::iC3H8O(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    iC3H8O()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::iC3H8O::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const iC3H8O& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
index bac19d8d72e..4f616f79d34 100644
--- a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
@@ -77,6 +77,8 @@ class iC3H8O
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("iC3H8O");
 
@@ -164,33 +166,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const iC3H8O& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const iC3H8O& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const iC3H8O& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
index c5db6942fca..fa98b40945c 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
@@ -275,6 +275,22 @@ Foam::scalar Foam::liquidProperties::pvInvert(scalar p) const
 }
 
 
+void Foam::liquidProperties::readIfPresent(const dictionary &dict)
+{
+    dict.readIfPresent("W", W_);
+    dict.readIfPresent("Tc", Tc_);
+    dict.readIfPresent("Pc", Pc_);
+    dict.readIfPresent("Vc", Vc_);
+    dict.readIfPresent("Zc", Zc_);
+    dict.readIfPresent("Tt", Tt_);
+    dict.readIfPresent("Pt", Pt_);
+    dict.readIfPresent("Tb", Tb_);
+    dict.readIfPresent("dipm", dipm_);
+    dict.readIfPresent("omega", omega_);
+    dict.readIfPresent("delta", delta_);
+}
+
+
 void Foam::liquidProperties::writeData(Ostream& os) const
 {
     os  << W_ << token::SPACE
@@ -291,4 +307,13 @@ void Foam::liquidProperties::writeData(Ostream& os) const
 }
 
 
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const liquidProperties& l)
+{
+    l.writeData(os);
+    return os;
+}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
index 54eb237b1ae..987f81a30e0 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
@@ -284,18 +284,47 @@ public:
 
     // I-O
 
+        //- Read and set the properties present it the given dictionary
+        void readIfPresent(const dictionary& dict);
+
+        //- Read and set the function coefficients
+        //  if present it the given dictionary
+        template<class Func>
+        inline void readIfPresent
+        (
+            Func& f,
+            const word& name,
+            const dictionary& dict
+        );
+
+        //- Read and set the function coefficients
+        //  if present it the given dictionary
+        template<class Liquid>
+        inline void readIfPresent
+        (
+            Liquid& l,
+            const dictionary& dict
+        );
+
         //- Write the function coefficients
         virtual void writeData(Ostream& os) const;
 
+        //- Write the data for each of the property functions
+        template<class Liquid>
+        inline void writeData
+        (
+            const Liquid& l,
+            Ostream& os
+        ) const;
+
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const liquidProperties& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const liquidProperties& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const liquidProperties& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
index 61a0b8d5f94..fb53db8c44f 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
@@ -137,4 +137,67 @@ inline Foam::scalar Foam::liquidProperties::alphah(scalar p, scalar T) const
 }
 
 
+template<class Func>
+inline void Foam::liquidProperties::readIfPresent
+(
+    Func& f,
+    const word& name,
+    const dictionary& dict
+)
+{
+    if (dict.found(name))
+    {
+        f = Func(dict.subDict(name));
+    }
+}
+
+
+template<class Liquid>
+inline void Foam::liquidProperties::readIfPresent
+(
+    Liquid& l,
+    const dictionary& dict
+)
+{
+    l.liquidProperties::readIfPresent(dict);
+    readIfPresent(l.rho_, "rho", dict);
+    readIfPresent(l.pv_, "pv", dict);
+    readIfPresent(l.hl_, "hl", dict);
+    readIfPresent(l.Cp_, "Cp", dict);
+    readIfPresent(l.h_, "h", dict);
+    readIfPresent(l.Cpg_, "Cpg", dict);
+    readIfPresent(l.B_, "B", dict);
+    readIfPresent(l.mu_, "mu", dict);
+    readIfPresent(l.mug_, "mug", dict);
+    readIfPresent(l.kappa_, "K", dict);
+    readIfPresent(l.kappag_, "kappag", dict);
+    readIfPresent(l.sigma_, "sigma", dict);
+    readIfPresent(l.D_, "D", dict);
+}
+
+
+template<class Liquid>
+inline void Foam::liquidProperties::writeData
+(
+    const Liquid& l,
+    Ostream& os
+) const
+{
+    l.liquidProperties::writeData(os); os << nl;
+    l.rho_.writeData(os); os << nl;
+    l.pv_.writeData(os); os << nl;
+    l.hl_.writeData(os); os << nl;
+    l.Cp_.writeData(os); os << nl;
+    l.h_.writeData(os); os << nl;
+    l.Cpg_.writeData(os); os << nl;
+    l.B_.writeData(os); os << nl;
+    l.mu_.writeData(os); os << nl;
+    l.mug_.writeData(os); os << nl;
+    l.kappa_.writeData(os); os << nl;
+    l.kappag_.writeData(os); os << nl;
+    l.sigma_.writeData(os); os << nl;
+    l.D_.writeData(os); os << endl;
+}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
index 419c0c19205..dc2fac5b9b6 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
@@ -129,21 +129,27 @@ Foam::nC3H8O::nC3H8O
 
 Foam::nC3H8O::nC3H8O(const dictionary& dict)
 :
-    liquidProperties(dict),
-    rho_(dict.subDict("rho")),
-    pv_(dict.subDict("pv")),
-    hl_(dict.subDict("hl")),
-    Cp_(dict.subDict("Cp")),
-    h_(dict.subDict("h")),
-    Cpg_(dict.subDict("Cpg")),
-    B_(dict.subDict("B")),
-    mu_(dict.subDict("mu")),
-    mug_(dict.subDict("mug")),
-    kappa_(dict.subDict("K")),
-    kappag_(dict.subDict("kappag")),
-    sigma_(dict.subDict("sigma")),
-    D_(dict.subDict("D"))
-{}
+    nC3H8O()
+{
+    readIfPresent(*this, dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::nC3H8O::writeData(Ostream& os) const
+{
+    liquidProperties::writeData(*this, os);
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const nC3H8O& l)
+{
+    l.writeData(os);
+    return os;
+}
 
 
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
index d5dec6a855b..578e57bb224 100644
--- a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
+++ b/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
@@ -77,6 +77,8 @@ class nC3H8O
 
 public:
 
+    friend class liquidProperties;
+
     //- Runtime type information
     TypeName("nC3H8O");
 
@@ -164,33 +166,16 @@ public:
     // I-O
 
         //- Write the function coefficients
-        void writeData(Ostream& os) const
-        {
-            liquidProperties::writeData(os); os << nl;
-            rho_.writeData(os); os << nl;
-            pv_.writeData(os); os << nl;
-            hl_.writeData(os); os << nl;
-            Cp_.writeData(os); os << nl;
-            h_.writeData(os); os << nl;
-            Cpg_.writeData(os); os << nl;
-            B_.writeData(os); os << nl;
-            mu_.writeData(os); os << nl;
-            mug_.writeData(os); os << nl;
-            kappa_.writeData(os); os << nl;
-            kappag_.writeData(os); os << nl;
-            sigma_.writeData(os); os << nl;
-            D_.writeData(os); os << endl;
-        }
+        void writeData(Ostream& os) const;
 
         //- Ostream Operator
-        friend Ostream& operator<<(Ostream& os, const nC3H8O& l)
-        {
-            l.writeData(os);
-            return os;
-        }
+        friend Ostream& operator<<(Ostream& os, const nC3H8O& l);
 };
 
 
+Ostream& operator<<(Ostream& os, const nC3H8O& l);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
-- 
GitLab


From 9b4f327e2b993ba533d7ff1f0219dad39d78c23d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Feb 2017 22:08:42 +0000
Subject: [PATCH 087/277] liquidProperties: Simplified dictionary format

The defaultCoeffs entry is now redundant and supported only for backward
compatibility.  To specify a liquid with default coefficients simply leave the
coefficients dictionary empty:

    liquids
    {
        H2O {}
    }

Any or all of the coefficients may be overridden by specifying the properties in
the coefficients dictionary, e.g.

    liquids
    {
        H2O
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
---
 .../liquidProperties/liquidProperties.C       | 86 ++++++++++++-------
 .../solidProperties/solidPropertiesNew.C      |  3 +-
 .../constant/thermophysicalProperties         |  5 +-
 .../constant/thermophysicalProperties         | 13 +--
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../filter/constant/thermophysicalProperties  |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         | 10 +--
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         | 10 +--
 14 files changed, 82 insertions(+), 117 deletions(-)

diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
index fa98b40945c..e8731cd47f1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
@@ -97,24 +97,49 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 
     const word& liquidPropertiesTypeName = dict.dictName();
 
-    const Switch defaultCoeffs(dict.lookup("defaultCoeffs"));
-
-    if (defaultCoeffs)
+    if (dict.found("defaultCoeffs"))
     {
-        ConstructorTable::iterator cstrIter =
-            ConstructorTablePtr_->find(liquidPropertiesTypeName);
+        // Backward-compatibility
+
+        const Switch defaultCoeffs(dict.lookup("defaultCoeffs"));
 
-        if (cstrIter == ConstructorTablePtr_->end())
+        if (defaultCoeffs)
         {
-            FatalErrorInFunction
-                << "Unknown liquidProperties type "
-                << liquidPropertiesTypeName << nl << nl
-                << "Valid liquidProperties types are:" << nl
-                << ConstructorTablePtr_->sortedToc()
-                << abort(FatalError);
+            ConstructorTable::iterator cstrIter =
+                ConstructorTablePtr_->find(liquidPropertiesTypeName);
+
+            if (cstrIter == ConstructorTablePtr_->end())
+            {
+                FatalErrorInFunction
+                    << "Unknown liquidProperties type "
+                    << liquidPropertiesTypeName << nl << nl
+                    << "Valid liquidProperties types are:" << nl
+                    << ConstructorTablePtr_->sortedToc()
+                    << abort(FatalError);
+            }
+
+            return autoPtr<liquidProperties>(cstrIter()());
+        }
+        else
+        {
+            dictionaryConstructorTable::iterator cstrIter =
+                dictionaryConstructorTablePtr_->find(liquidPropertiesTypeName);
+
+            if (cstrIter == dictionaryConstructorTablePtr_->end())
+            {
+                FatalErrorInFunction
+                    << "Unknown liquidProperties type "
+                    << liquidPropertiesTypeName << nl << nl
+                    << "Valid liquidProperties types are:" << nl
+                    << dictionaryConstructorTablePtr_->sortedToc()
+                    << abort(FatalError);
+            }
+
+            return autoPtr<liquidProperties>
+            (
+                cstrIter()(dict.subDict(liquidPropertiesTypeName + "Coeffs"))
+            );
         }
-
-        return autoPtr<liquidProperties>(cstrIter()());
     }
     else
     {
@@ -131,10 +156,7 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
                 << abort(FatalError);
         }
 
-        return autoPtr<liquidProperties>
-        (
-            cstrIter()(dict.subDict(liquidPropertiesTypeName + "Coeffs"))
-        );
+        return autoPtr<liquidProperties>(cstrIter()(dict));
     }
 }
 
@@ -144,91 +166,91 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 Foam::scalar Foam::liquidProperties::rho(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::pv(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::hl(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::Cp(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::h(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::Cpg(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::mu(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::mug(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::kappa(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::kappag(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::sigma(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::D(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::D(scalar p, scalar T, scalar Wb) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
@@ -259,7 +281,7 @@ Foam::scalar Foam::liquidProperties::pvInvert(scalar p) const
 
     while ((Thi - Tlo) > 1.0e-4)
     {
-        if ((pv(p, T) - p) <= 0.0)
+        if ((pv(p, T) - p) <= 0)
         {
             Tlo = T;
         }
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
index 0e6119e0f04..66f6d8f96ec 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
@@ -39,9 +39,8 @@ Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
     }
 
     const word solidType(dict.dictName());
-    const Switch defaultCoeffs(dict.lookup("defaultCoeffs"));
 
-    if (defaultCoeffs)
+    if (!dict.found("defaultCoeffs") || Switch(dict.lookup("defaultCoeffs")))
     {
         ConstructorTable::iterator cstrIter =
             ConstructorTablePtr_->find(solidType);
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
index 28c98b1d673..87cd6d9084f 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
@@ -36,13 +36,10 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
 
 foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
 
-
 liquids
 {
     H2O
-    {
-        defaultCoeffs yes;
-    }
+    {}
 }
 
 solids
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
index 63932b5a8d5..5b7081583d4 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
@@ -36,10 +36,7 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
@@ -47,7 +44,7 @@ solids
     C
     {
         defaultCoeffs   no;
-        // if  defaultCoeffs no properties should be :
+
         CCoeffs
         {
             rho             2010;
@@ -57,10 +54,8 @@ solids
             emissivity      1.0;
         }
     }
-    ash
-    {
-        defaultCoeffs   yes;
-    }
+
+    ash {}
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
index a703f9908a6..4d387a46f61 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ foamChemistryThermoFile "$FOAM_CASE/constant/thermo.incompressiblePoly";
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 inertSpecie     N2;
 
diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
index 8e324f5244f..ee162cff25b 100644
--- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
@@ -38,16 +38,11 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
index d12affc2f3b..ee162cff25b 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
@@ -38,16 +38,11 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
index c2a5aa1eb71..76f240e5ca3 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
@@ -36,18 +36,14 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 // de-activate the pressure-work term when running local time-stepping
 dpdt            no;
 
+
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
index 9b63bc18b37..9eb1bc72334 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
index 312d8c6b954..4456333c912 100644
--- a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
@@ -36,15 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    C7H16
-    {
-        defaultCoeffs   yes;
-    }
+    C7H16 {}
 }
 
 solids
-{
-    // none
-}
+{}
+
 
 // ************************************************************************* //
-- 
GitLab


From de44d09ad9f1a57cd39d2dbb8b7a177d758b2fd6 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 18 Feb 2017 12:43:10 +0000
Subject: [PATCH 088/277] liquidProperties, solidProperties: Simplified input

The entries for liquid and solid species can now be simply be the name unless
property coefficients are overridden in which are specified in a dictionary as
before e.g. in the tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek case
the water is simply specified

liquids
{
    H2O;
}

and solid ash uses standard coefficients but the coefficients for carbon are
overridden thus

solids
{
    C
    {
        rho             2010;
        Cp              710;
        kappa           0.04;
        Hf              0;
        emissivity      1.0;
    }

    ash;
}
---
 .../liquidMixtureProperties.C                 | 21 ++++--
 .../liquidProperties/liquidProperties.C       | 49 ++++++++-----
 .../liquidProperties/liquidProperties.H       | 15 ++--
 .../properties/solidProperties/C/C.C          | 12 ++--
 .../properties/solidProperties/C/C.H          | 21 ++----
 .../properties/solidProperties/CaCO3/CaCO3.C  | 12 ++--
 .../properties/solidProperties/CaCO3/CaCO3.H  | 19 ++---
 .../properties/solidProperties/ash/ash.C      | 12 ++--
 .../properties/solidProperties/ash/ash.H      | 19 ++---
 .../solidMixtureProperties.C                  | 18 ++++-
 .../solidProperties/solidProperties.C         | 22 +++++-
 .../solidProperties/solidProperties.H         | 29 ++++----
 .../solidProperties/solidPropertiesNew.C      | 69 ++++++++++++++-----
 .../constant/thermophysicalProperties         | 19 ++---
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../filter/constant/thermophysicalProperties  |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 24 files changed, 194 insertions(+), 163 deletions(-)

diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
index fd314151728..c07e51462f3 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
@@ -47,11 +47,22 @@ Foam::liquidMixtureProperties::liquidMixtureProperties
 
     forAll(components_, i)
     {
-        properties_.set
-        (
-            i,
-            liquidProperties::New(dict.subDict(components_[i]))
-        );
+        if (dict.isDict(components_[i]))
+        {
+            properties_.set
+            (
+                i,
+                liquidProperties::New(dict.subDict(components_[i]))
+            );
+        }
+        else
+        {
+            properties_.set
+            (
+                i,
+                liquidProperties::New(components_[i])
+            );
+        }
     }
 }
 
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
index e8731cd47f1..49c88103b51 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
@@ -85,6 +85,32 @@ Foam::liquidProperties::liquidProperties(const dictionary& dict)
 
 // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
 
+Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
+(
+    const word& name
+)
+{
+    if (debug)
+    {
+        InfoInFunction << "Constructing liquidProperties" << endl;
+    }
+
+    ConstructorTable::iterator cstrIter = ConstructorTablePtr_->find(name);
+
+    if (cstrIter == ConstructorTablePtr_->end())
+    {
+        FatalErrorInFunction
+            << "Unknown liquidProperties type "
+            << name << nl << nl
+            << "Valid liquidProperties types are:" << nl
+            << ConstructorTablePtr_->sortedToc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<liquidProperties>(cstrIter()());
+}
+
+
 Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 (
     const dictionary& dict
@@ -101,24 +127,9 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
     {
         // Backward-compatibility
 
-        const Switch defaultCoeffs(dict.lookup("defaultCoeffs"));
-
-        if (defaultCoeffs)
+        if (Switch(dict.lookup("defaultCoeffs")))
         {
-            ConstructorTable::iterator cstrIter =
-                ConstructorTablePtr_->find(liquidPropertiesTypeName);
-
-            if (cstrIter == ConstructorTablePtr_->end())
-            {
-                FatalErrorInFunction
-                    << "Unknown liquidProperties type "
-                    << liquidPropertiesTypeName << nl << nl
-                    << "Valid liquidProperties types are:" << nl
-                    << ConstructorTablePtr_->sortedToc()
-                    << abort(FatalError);
-            }
-
-            return autoPtr<liquidProperties>(cstrIter()());
+            return New(liquidPropertiesTypeName);
         }
         else
         {
@@ -132,7 +143,7 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
                     << liquidPropertiesTypeName << nl << nl
                     << "Valid liquidProperties types are:" << nl
                     << dictionaryConstructorTablePtr_->sortedToc()
-                    << abort(FatalError);
+                    << exit(FatalError);
             }
 
             return autoPtr<liquidProperties>
@@ -153,7 +164,7 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
                 << liquidPropertiesTypeName << nl << nl
                 << "Valid liquidProperties types are:" << nl
                 << dictionaryConstructorTablePtr_->sortedToc()
-                << abort(FatalError);
+                << exit(FatalError);
         }
 
         return autoPtr<liquidProperties>(cstrIter()(dict));
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
index 987f81a30e0..2f035a1f876 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
@@ -145,6 +145,9 @@ public:
 
     // Selectors
 
+        //- Return a pointer to a new liquidProperties created from name
+        static autoPtr<liquidProperties> New(const word& name);
+
         //- Return a pointer to a new liquidProperties created from dictionary
         static autoPtr<liquidProperties> New(const dictionary& dict);
 
@@ -300,22 +303,14 @@ public:
         //- Read and set the function coefficients
         //  if present it the given dictionary
         template<class Liquid>
-        inline void readIfPresent
-        (
-            Liquid& l,
-            const dictionary& dict
-        );
+        inline void readIfPresent(Liquid& l, const dictionary& dict);
 
         //- Write the function coefficients
         virtual void writeData(Ostream& os) const;
 
         //- Write the data for each of the property functions
         template<class Liquid>
-        inline void writeData
-        (
-            const Liquid& l,
-            Ostream& os
-        ) const;
+        inline void writeData(const Liquid& l, Ostream& os) const;
 
         //- Ostream Operator
         friend Ostream& operator<<(Ostream& os, const liquidProperties& l);
diff --git a/src/thermophysicalModels/properties/solidProperties/C/C.C b/src/thermophysicalModels/properties/solidProperties/C/C.C
index 35474685702..ec7cbc0591a 100644
--- a/src/thermophysicalModels/properties/solidProperties/C/C.C
+++ b/src/thermophysicalModels/properties/solidProperties/C/C.C
@@ -50,16 +50,12 @@ Foam::C::C()
 }
 
 
-Foam::C::C(const solidProperties& s)
-:
-    solidProperties(s)
-{}
-
-
 Foam::C::C(const dictionary& dict)
 :
-    solidProperties(dict)
-{}
+    C()
+{
+    readIfPresent(dict);
+}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/properties/solidProperties/C/C.H b/src/thermophysicalModels/properties/solidProperties/C/C.H
index 7086df5324c..7937e75ae9d 100644
--- a/src/thermophysicalModels/properties/solidProperties/C/C.H
+++ b/src/thermophysicalModels/properties/solidProperties/C/C.H
@@ -42,15 +42,6 @@ SourceFiles
 namespace Foam
 {
 
-class C;
-
-Ostream& operator<<
-(
-    Ostream&,
-    const C&
-);
-
-
 /*---------------------------------------------------------------------------*\
                             Class C Declaration
 \*---------------------------------------------------------------------------*/
@@ -59,6 +50,7 @@ class C
 :
     public solidProperties
 {
+
 public:
 
     //- Runtime type information
@@ -70,9 +62,6 @@ public:
         //- Construct null
         C();
 
-        //- Construct from solidProperties
-        C(const solidProperties& s);
-
         //- Construct from dictionary
         C(const dictionary& dict);
 
@@ -88,12 +77,14 @@ public:
         //- Write the function coefficients
         void writeData(Ostream& os) const;
 
-
-    //- Ostream Operator
-    friend Ostream& operator<<(Ostream& os, const C& s);
+        //- Ostream Operator
+        friend Ostream& operator<<(Ostream& os, const C& s);
 };
 
 
+Ostream& operator<<(Ostream& os, const C& s);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C
index 2bcfee1b6db..77a1f057ca7 100644
--- a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C
+++ b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C
@@ -50,16 +50,12 @@ Foam::CaCO3::CaCO3()
 }
 
 
-Foam::CaCO3::CaCO3(const solidProperties& s)
-:
-    solidProperties(s)
-{}
-
-
 Foam::CaCO3::CaCO3(const dictionary& dict)
 :
-    solidProperties(dict)
-{}
+    CaCO3()
+{
+    readIfPresent(dict);
+}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H
index 92bcdead4b4..1ffb1f6b195 100644
--- a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H
+++ b/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H
@@ -42,15 +42,6 @@ SourceFiles
 namespace Foam
 {
 
-class CaCO3;
-
-Ostream& operator<<
-(
-    Ostream&,
-    const CaCO3&
-);
-
-
 /*---------------------------------------------------------------------------*\
                           Class CaCO3 Declaration
 \*---------------------------------------------------------------------------*/
@@ -71,9 +62,6 @@ public:
         //- Construct null
         CaCO3();
 
-        //- Construct from solidProperties
-        CaCO3(const solidProperties& s);
-
         //- Construct from dictionary
         CaCO3(const dictionary& dict);
 
@@ -89,13 +77,14 @@ public:
         //- Write the function coefficients
         void writeData(Ostream& os) const;
 
-
-    // Ostream Operator
-
+        //- Ostream Operator
         friend Ostream& operator<<(Ostream& os, const CaCO3& s);
 };
 
 
+Ostream& operator<<(Ostream& os, const CaCO3& s);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/solidProperties/ash/ash.C b/src/thermophysicalModels/properties/solidProperties/ash/ash.C
index 4ab67b5cdf6..f91fd494f4a 100644
--- a/src/thermophysicalModels/properties/solidProperties/ash/ash.C
+++ b/src/thermophysicalModels/properties/solidProperties/ash/ash.C
@@ -50,16 +50,12 @@ Foam::ash::ash()
 }
 
 
-Foam::ash::ash(const solidProperties& s)
-:
-    solidProperties(s)
-{}
-
-
 Foam::ash::ash(const dictionary& dict)
 :
-    solidProperties(dict)
-{}
+    ash()
+{
+    readIfPresent(dict);
+}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/properties/solidProperties/ash/ash.H b/src/thermophysicalModels/properties/solidProperties/ash/ash.H
index 5f6e2135b79..b80c0385a15 100644
--- a/src/thermophysicalModels/properties/solidProperties/ash/ash.H
+++ b/src/thermophysicalModels/properties/solidProperties/ash/ash.H
@@ -42,15 +42,6 @@ SourceFiles
 namespace Foam
 {
 
-class ash;
-
-Ostream& operator<<
-(
-    Ostream&,
-    const ash&
-);
-
-
 /*---------------------------------------------------------------------------*\
                               Class ash Declaration
 \*---------------------------------------------------------------------------*/
@@ -71,9 +62,6 @@ public:
         //- Construct null
         ash();
 
-        //- Construct from solidProperties
-        ash(const solidProperties& s);
-
         //- Construct from dictionary
         ash(const dictionary& dict);
 
@@ -89,13 +77,14 @@ public:
         //- Write the function coefficients
         void writeData(Ostream& os) const;
 
-
-    // Ostream Operator
-
+        //- Ostream Operator
         friend Ostream& operator<<(Ostream& os, const ash& s);
 };
 
 
+Ostream& operator<<(Ostream& os, const ash& s);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C b/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
index ea6c0efbc70..df9a4c1f0c4 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
@@ -34,9 +34,25 @@ Foam::solidMixtureProperties::solidMixtureProperties(const dictionary& dict)
 {
     components_ = dict.toc();
     properties_.setSize(components_.size());
+
     forAll(components_, i)
     {
-        properties_.set(i, solidProperties::New(dict.subDict(components_[i])));
+        if (dict.isDict(components_[i]))
+        {
+            properties_.set
+            (
+                i,
+                solidProperties::New(dict.subDict(components_[i]))
+            );
+        }
+        else
+        {
+            properties_.set
+            (
+                i,
+                solidProperties::New(components_[i])
+            );
+        }
     }
 }
 
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
index cca13922030..1d9eb8fe65a 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
@@ -40,14 +40,14 @@ Foam::solidProperties::solidProperties
 (
     scalar rho,
     scalar Cp,
-    scalar K,
+    scalar kappa,
     scalar Hf,
     scalar emissivity
 )
 :
     rho_(rho),
     Cp_(Cp),
-    kappa_(K),
+    kappa_(kappa),
     Hf_(Hf),
     emissivity_(emissivity)
 {}
@@ -57,7 +57,12 @@ Foam::solidProperties::solidProperties(const dictionary& dict)
 :
     rho_(readScalar(dict.lookup("rho"))),
     Cp_(readScalar(dict.lookup("Cp"))),
-    kappa_(readScalar(dict.lookup("K"))),
+    kappa_
+    (
+        dict.found("K")
+      ? readScalar(dict.lookup("K"))
+      : readScalar(dict.lookup("kappa"))
+    ),
     Hf_(readScalar(dict.lookup("Hf"))),
     emissivity_(readScalar(dict.lookup("emissivity")))
 {}
@@ -65,6 +70,17 @@ Foam::solidProperties::solidProperties(const dictionary& dict)
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+void Foam::solidProperties::readIfPresent(const dictionary& dict)
+{
+    dict.readIfPresent("rho", rho_);
+    dict.readIfPresent("Cp", Cp_);
+    dict.readIfPresent("K", kappa_);
+    dict.readIfPresent("kappa", kappa_);
+    dict.readIfPresent("Hf_", Hf_);
+    dict.readIfPresent("emissivity", emissivity_);
+}
+
+
 void Foam::solidProperties::writeData(Ostream& os) const
 {
     os  << rho_ << token::SPACE
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
index f42e84be646..652c81d8fd7 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
@@ -45,22 +45,12 @@ SourceFiles
 namespace Foam
 {
 
-class solidProperties;
-
-Ostream& operator<<
-(
-    Ostream&,
-    const solidProperties&
-);
-
-
 /*---------------------------------------------------------------------------*\
                      Class solidProperties Declaration
 \*---------------------------------------------------------------------------*/
 
 class solidProperties
 {
-
     // Private data
 
         //- Density [kg/m3]
@@ -113,7 +103,7 @@ public:
         (
             scalar rho,
             scalar Cp,
-            scalar K,
+            scalar kappa,
             scalar Hf,
             scalar emissivity
         );
@@ -130,6 +120,9 @@ public:
 
     // Selectors
 
+        //- Return a pointer to a new solidProperties created from name
+        static autoPtr<solidProperties> New(const word& name);
+
         //- Return a pointer to a new solidProperties created from dictionary
         static autoPtr<solidProperties> New(const dictionary& dict);
 
@@ -162,18 +155,22 @@ public:
             inline scalar emissivity() const;
 
 
-        // I-O
-
-            //- Write the solidProperties properties
-            virtual void writeData(Ostream& os) const;
+    // I-O
 
+        //- Read and set the properties present it the given dictionary
+        void readIfPresent(const dictionary& dict);
 
-        // Ostream Operator
+        //- Write the solidProperties properties
+        virtual void writeData(Ostream& os) const;
 
+        //- Ostream Operator
         friend Ostream& operator<<(Ostream& os, const solidProperties& s);
 };
 
 
+Ostream& operator<<(Ostream&, const solidProperties&);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
index 66f6d8f96ec..75463513e1e 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
@@ -28,6 +28,32 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
+(
+    const word& name
+)
+{
+    if (debug)
+    {
+        InfoInFunction << "Constructing solidProperties" << endl;
+    }
+
+    ConstructorTable::iterator cstrIter = ConstructorTablePtr_->find(name);
+
+    if (cstrIter == ConstructorTablePtr_->end())
+    {
+        FatalErrorInFunction
+            << "Unknown solidProperties type "
+            << name << nl << nl
+            << "Valid solidProperties types are:" << nl
+            << ConstructorTablePtr_->sortedToc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<solidProperties>(cstrIter()());
+}
+
+
 Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
 (
     const dictionary& dict
@@ -40,31 +66,38 @@ Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
 
     const word solidType(dict.dictName());
 
-    if (!dict.found("defaultCoeffs") || Switch(dict.lookup("defaultCoeffs")))
+    if (dict.found("defaultCoeffs"))
     {
-        ConstructorTable::iterator cstrIter =
-            ConstructorTablePtr_->find(solidType);
+        // Backward-compatibility
 
-        if (cstrIter == ConstructorTablePtr_->end())
+        if (Switch(dict.lookup("defaultCoeffs")))
         {
-            FatalErrorInFunction
-                << "Unknown solidProperties type " << solidType << nl << nl
-                << "Valid solidProperties types are :" << endl
-                << ConstructorTablePtr_->sortedToc()
-                << exit(FatalError);
+            return New(solidType);
+        }
+        else
+        {
+            return autoPtr<solidProperties>
+            (
+                new solidProperties(dict.subDict(solidType + "Coeffs"))
+            );
         }
-
-        return autoPtr<solidProperties>(cstrIter()());
     }
     else
     {
-        return autoPtr<solidProperties>
-        (
-            new solidProperties
-            (
-                dict.subDict(solidType + "Coeffs")
-            )
-        );
+        dictionaryConstructorTable::iterator cstrIter =
+            dictionaryConstructorTablePtr_->find(solidType);
+
+        if (cstrIter == dictionaryConstructorTablePtr_->end())
+        {
+            FatalErrorInFunction
+                << "Unknown solidProperties type "
+                << solidType << nl << nl
+                << "Valid solidProperties types are:" << nl
+                << dictionaryConstructorTablePtr_->sortedToc()
+                << exit(FatalError);
+        }
+
+        return autoPtr<solidProperties>(cstrIter()(dict));
     }
 }
 
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
index 5b7081583d4..6fcb7f95c5f 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
@@ -36,26 +36,21 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
 {
     C
     {
-        defaultCoeffs   no;
-
-        CCoeffs
-        {
-            rho             2010;
-            Cp              710;
-            K               0.04;
-            Hf              0;
-            emissivity      1.0;
-        }
+        rho             2010;
+        Cp              710;
+        kappa           0.04;
+        Hf              0;
+        emissivity      1.0;
     }
 
-    ash {}
+    ash;
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
index 4f5a09da718..b005f75a2c9 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
index 4f5a09da718..b005f75a2c9 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
index 4f5a09da718..b005f75a2c9 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
index 4f5a09da718..b005f75a2c9 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
index 4d387a46f61..d90945b4e99 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ foamChemistryThermoFile "$FOAM_CASE/constant/thermo.incompressiblePoly";
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
index ee162cff25b..1bc265d1736 100644
--- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
@@ -38,7 +38,7 @@ inertSpecie     air;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
index ee162cff25b..1bc265d1736 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
@@ -38,7 +38,7 @@ inertSpecie     air;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
index 76f240e5ca3..5cb7a892a9c 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ inertSpecie     air;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
index 9eb1bc72334..b9d9f6647bd 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ inertSpecie     air;
 
 liquids
 {
-    H2O {}
+    H2O;
 }
 
 solids
diff --git a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
index 4456333c912..e7eac502800 100644
--- a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
@@ -36,7 +36,7 @@ inertSpecie     N2;
 
 liquids
 {
-    C7H16 {}
+    C7H16;
 }
 
 solids
-- 
GitLab


From d2be645483f61e8cf5e31cce51d1ff1e8f23001c Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 18 Feb 2017 21:53:20 +0000
Subject: [PATCH 089/277] thermophysicalProperties: New base-class for
 liquidProperties and in the future gasProperties

Description
    Base-class for thermophysical properties of solids, liquids and gases
    providing an interface compatible with the templated thermodynamics
    packages.

liquidProperties, solidProperties and thermophysicalFunction libraries have been
combined with the new thermophysicalProperties class into a single
thermophysicalProperties library to simplify compilation and linkage of models,
libraries and applications dependent on these classes.
---
 .../solvers/combustion/fireFoam/Make/options  |   5 +-
 .../lagrangian/DPMFoam/MPPICFoam/Make/options |   1 -
 .../solvers/lagrangian/DPMFoam/Make/options   |   1 -
 .../lagrangian/coalChemistryFoam/Make/options |   7 +-
 .../Make/options                              |   1 -
 .../Make/options                              |   1 -
 .../reactingParcelFilmFoam/Make/options       |   5 +-
 .../reactingParcelFoam/Make/options           |   7 +-
 .../simpleReactingParcelFoam/Make/options     |   7 +-
 .../solvers/lagrangian/sprayFoam/Make/options |   7 +-
 .../sprayFoam/sprayDyMFoam/Make/options       |   7 +-
 .../sprayFoam/sprayEngineFoam/Make/options    |   7 +-
 .../uncoupledKinematicParcelFoam/Make/options |   1 -
 .../interfacialCompositionModels/Make/options |   3 +-
 applications/test/Function1/Make/options      |   1 -
 applications/test/liquid/Make/options         |   4 +-
 .../miscellaneous/foamList/Make/options       |   4 +-
 src/lagrangian/coalCombustion/Make/options    |   6 +-
 src/lagrangian/intermediate/Make/options      |   6 +-
 src/lagrangian/spray/Make/options             |   6 +-
 src/lagrangian/turbulence/Make/options        |   6 +-
 src/regionModels/regionCoupling/Make/options  |   3 +-
 .../surfaceFilmModels/Make/options            |   6 +-
 .../wallFunctions/Make/options                |   6 +-
 .../liquidFilmThermo/liquidFilmThermo.C       |   3 +-
 src/thermophysicalModels/Allwmake             |   3 +-
 .../SLGThermo/Make/options                    |   3 +-
 src/thermophysicalModels/basic/Make/options   |   3 +
 .../chemistryModel/Make/options               |   1 -
 src/thermophysicalModels/properties/Allwmake  |  10 -
 .../properties/liquidProperties/Make/files    |  35 ---
 .../properties/liquidProperties/Make/options  |   7 -
 .../properties/solidProperties/Make/files     |   9 -
 .../radiation/Make/options                    |   6 +-
 .../thermophysicalFunctions/Make/files        |  17 --
 .../thermophysicalFunctions/Make/options      |   0
 .../thermophysicalProperties/Make/files       |  64 ++++++
 .../Make/options                              |   3 +
 .../liquidProperties/Ar/Ar.C                  |   0
 .../liquidProperties/Ar/Ar.H                  |   0
 .../liquidProperties/Ar/ArI.H                 |   0
 .../liquidProperties/C10H22/C10H22.C          |   0
 .../liquidProperties/C10H22/C10H22.H          |   0
 .../liquidProperties/C10H22/C10H22I.H         |   0
 .../liquidProperties/C12H26/C12H26.C          |   0
 .../liquidProperties/C12H26/C12H26.H          |   0
 .../liquidProperties/C12H26/C12H26I.H         |   0
 .../liquidProperties/C13H28/C13H28.C          |   0
 .../liquidProperties/C13H28/C13H28.H          |   0
 .../liquidProperties/C13H28/C13H28I.H         |   0
 .../liquidProperties/C14H30/C14H30.C          |   0
 .../liquidProperties/C14H30/C14H30.H          |   0
 .../liquidProperties/C14H30/C14H30I.H         |   0
 .../liquidProperties/C16H34/C16H34.C          |   0
 .../liquidProperties/C16H34/C16H34.H          |   0
 .../liquidProperties/C16H34/C16H34I.H         |   0
 .../liquidProperties/C2H5OH/C2H5OH.C          |   0
 .../liquidProperties/C2H5OH/C2H5OH.H          |   0
 .../liquidProperties/C2H5OH/C2H5OHI.H         |   0
 .../liquidProperties/C2H6/C2H6.C              |   0
 .../liquidProperties/C2H6/C2H6.H              |   0
 .../liquidProperties/C2H6/C2H6I.H             |   0
 .../liquidProperties/C2H6O/C2H6O.C            |   0
 .../liquidProperties/C2H6O/C2H6O.H            |   0
 .../liquidProperties/C2H6O/C2H6OI.H           |   0
 .../liquidProperties/C3H6O/C3H6O.C            |   0
 .../liquidProperties/C3H6O/C3H6O.H            |   0
 .../liquidProperties/C3H6O/C3H6OI.H           |   0
 .../liquidProperties/C3H8/C3H8.C              |   0
 .../liquidProperties/C3H8/C3H8.H              |   0
 .../liquidProperties/C3H8/C3H8I.H             |   0
 .../liquidProperties/C4H10O/C4H10O.C          |   0
 .../liquidProperties/C4H10O/C4H10O.H          |   0
 .../liquidProperties/C4H10O/C4H10OI.H         |   0
 .../liquidProperties/C6H14/C6H14.C            |   0
 .../liquidProperties/C6H14/C6H14.H            |   0
 .../liquidProperties/C6H14/C6H14I.H           |   0
 .../liquidProperties/C6H6/C6H6.C              |   0
 .../liquidProperties/C6H6/C6H6.H              |   0
 .../liquidProperties/C6H6/C6H6I.H             |   0
 .../liquidProperties/C7H16/C7H16.C            |   0
 .../liquidProperties/C7H16/C7H16.H            |   0
 .../liquidProperties/C7H16/C7H16I.H           |   0
 .../liquidProperties/C7H8/C7H8.C              |   0
 .../liquidProperties/C7H8/C7H8.H              |   0
 .../liquidProperties/C7H8/C7H8I.H             |   0
 .../liquidProperties/C8H10/C8H10.C            |   0
 .../liquidProperties/C8H10/C8H10.H            |   0
 .../liquidProperties/C8H10/C8H10I.H           |   0
 .../liquidProperties/C8H18/C8H18.C            |   0
 .../liquidProperties/C8H18/C8H18.H            |   0
 .../liquidProperties/C8H18/C8H18I.H           |   0
 .../liquidProperties/C9H20/C9H20.C            |   0
 .../liquidProperties/C9H20/C9H20.H            |   0
 .../liquidProperties/C9H20/C9H20I.H           |   0
 .../liquidProperties/CH3OH/CH3OH.C            |   0
 .../liquidProperties/CH3OH/CH3OH.H            |   0
 .../liquidProperties/CH3OH/CH3OHI.H           |   0
 .../liquidProperties/CH4N2O/CH4N2O.C          |   0
 .../liquidProperties/CH4N2O/CH4N2O.H          |   0
 .../liquidProperties/CH4N2O/CH4N2OI.H         |   0
 .../liquidProperties/H2O/H2O.C                |   2 +
 .../liquidProperties/H2O/H2O.H                |   0
 .../liquidProperties/H2O/H2OI.H               |   0
 .../liquidProperties/IC8H18/IC8H18.C          |   0
 .../liquidProperties/IC8H18/IC8H18.H          |   0
 .../liquidProperties/IC8H18/IC8H18I.H         |   0
 .../liquidProperties/IDEA/IDEA.C              |   0
 .../liquidProperties/IDEA/IDEA.H              |   0
 .../liquidProperties/IDEA/IDEA.thermo         |   0
 .../liquidProperties/IDEA/IDEAI.H             |   0
 .../liquidProperties/MB/MB.C                  |   0
 .../liquidProperties/MB/MB.H                  |   0
 .../liquidProperties/MB/MBI.H                 |   0
 .../liquidProperties/N2/N2.C                  |   0
 .../liquidProperties/N2/N2.H                  |   0
 .../liquidProperties/N2/N2I.H                 |   0
 .../liquidProperties/aC10H7CH3/aC10H7CH3.C    |   0
 .../liquidProperties/aC10H7CH3/aC10H7CH3.H    |   0
 .../liquidProperties/aC10H7CH3/aC10H7CH3I.H   |   0
 .../liquidProperties/bC10H7CH3/bC10H7CH3.C    |   0
 .../liquidProperties/bC10H7CH3/bC10H7CH3.H    |   0
 .../liquidProperties/bC10H7CH3/bC10H7CH3I.H   |   0
 .../liquidProperties/iC3H8O/iC3H8O.C          |   0
 .../liquidProperties/iC3H8O/iC3H8O.H          |   0
 .../liquidProperties/iC3H8O/iC3H8OI.H         |   0
 .../liquidMixtureProperties.C                 |   0
 .../liquidMixtureProperties.H                 |   0
 .../liquidProperties/liquidProperties.C       |  95 +-------
 .../liquidProperties/liquidProperties.H       |  60 ++---
 .../liquidProperties/liquidPropertiesI.H      |   6 -
 .../liquidProperties/nC3H8O/nC3H8O.C          |   0
 .../liquidProperties/nC3H8O/nC3H8O.H          |   0
 .../liquidProperties/nC3H8O/nC3H8OI.H         |   0
 .../solidProperties/C/C.C                     |   0
 .../solidProperties/C/C.H                     |   0
 .../solidProperties/CaCO3/CaCO3.C             |   0
 .../solidProperties/CaCO3/CaCO3.H             |   0
 .../solidProperties/ash/ash.C                 |   0
 .../solidProperties/ash/ash.H                 |   0
 .../solidMixtureProperties.C                  |   0
 .../solidMixtureProperties.H                  |   0
 .../solidProperties/solidProperties.C         |   0
 .../solidProperties/solidProperties.H         |   0
 .../solidProperties/solidPropertiesI.H        |   0
 .../solidProperties/solidPropertiesNew.C      |   0
 .../APIdiffCoefFunc/APIdiffCoefFunc.C         |   0
 .../APIdiffCoefFunc/APIdiffCoefFunc.H         |   0
 .../NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C    |   0
 .../NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H    |   0
 .../NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C    |   0
 .../NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H    |   0
 .../NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C  |   0
 .../NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H  |   0
 .../NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C    |   0
 .../NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H    |   0
 .../NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C    |   0
 .../NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H    |   0
 .../NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C    |   0
 .../NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H    |   0
 .../NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C    |   0
 .../NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H    |   0
 .../NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C    |   0
 .../NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H    |   0
 .../NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C    |   0
 .../NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H    |   0
 .../thermophysicalFunction.C                  |   0
 .../thermophysicalFunction.H                  |   0
 .../thermophysicalProperties.C                | 133 ++++++++++++
 .../thermophysicalProperties.H                | 205 ++++++++++++++++++
 .../thermophysicalPropertiesI.H               |  38 ++++
 171 files changed, 508 insertions(+), 303 deletions(-)
 delete mode 100755 src/thermophysicalModels/properties/Allwmake
 delete mode 100644 src/thermophysicalModels/properties/liquidProperties/Make/files
 delete mode 100644 src/thermophysicalModels/properties/liquidProperties/Make/options
 delete mode 100644 src/thermophysicalModels/properties/solidProperties/Make/files
 delete mode 100644 src/thermophysicalModels/thermophysicalFunctions/Make/files
 delete mode 100644 src/thermophysicalModels/thermophysicalFunctions/Make/options
 create mode 100644 src/thermophysicalModels/thermophysicalProperties/Make/files
 rename src/thermophysicalModels/{properties/solidProperties => thermophysicalProperties}/Make/options (71%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/Ar/Ar.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/Ar/Ar.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/Ar/ArI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C10H22/C10H22.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C10H22/C10H22.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C10H22/C10H22I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C12H26/C12H26.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C12H26/C12H26.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C12H26/C12H26I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C13H28/C13H28.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C13H28/C13H28.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C13H28/C13H28I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C14H30/C14H30.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C14H30/C14H30.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C14H30/C14H30I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C16H34/C16H34.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C16H34/C16H34.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C16H34/C16H34I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H5OH/C2H5OH.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H5OH/C2H5OH.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H5OH/C2H5OHI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H6/C2H6.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H6/C2H6.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H6/C2H6I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H6O/C2H6O.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H6O/C2H6O.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C2H6O/C2H6OI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C3H6O/C3H6O.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C3H6O/C3H6O.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C3H6O/C3H6OI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C3H8/C3H8.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C3H8/C3H8.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C3H8/C3H8I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C4H10O/C4H10O.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C4H10O/C4H10O.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C4H10O/C4H10OI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C6H14/C6H14.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C6H14/C6H14.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C6H14/C6H14I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C6H6/C6H6.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C6H6/C6H6.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C6H6/C6H6I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C7H16/C7H16.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C7H16/C7H16.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C7H16/C7H16I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C7H8/C7H8.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C7H8/C7H8.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C7H8/C7H8I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C8H10/C8H10.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C8H10/C8H10.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C8H10/C8H10I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C8H18/C8H18.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C8H18/C8H18.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C8H18/C8H18I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C9H20/C9H20.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C9H20/C9H20.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/C9H20/C9H20I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/CH3OH/CH3OH.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/CH3OH/CH3OH.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/CH3OH/CH3OHI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/CH4N2O/CH4N2O.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/CH4N2O/CH4N2O.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/CH4N2O/CH4N2OI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/H2O/H2O.C (96%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/H2O/H2O.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/H2O/H2OI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/IC8H18/IC8H18.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/IC8H18/IC8H18.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/IC8H18/IC8H18I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/IDEA/IDEA.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/IDEA/IDEA.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/IDEA/IDEA.thermo (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/IDEA/IDEAI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/MB/MB.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/MB/MB.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/MB/MBI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/N2/N2.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/N2/N2.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/N2/N2I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/aC10H7CH3/aC10H7CH3.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/aC10H7CH3/aC10H7CH3.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/aC10H7CH3/aC10H7CH3I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/bC10H7CH3/bC10H7CH3.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/bC10H7CH3/bC10H7CH3.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/bC10H7CH3/bC10H7CH3I.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/iC3H8O/iC3H8O.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/iC3H8O/iC3H8O.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/iC3H8O/iC3H8OI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/liquidProperties/liquidProperties.C (82%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/liquidProperties/liquidProperties.H (82%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/liquidProperties/liquidPropertiesI.H (98%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/nC3H8O/nC3H8O.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/nC3H8O/nC3H8O.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/liquidProperties/nC3H8O/nC3H8OI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/C/C.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/C/C.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/CaCO3/CaCO3.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/CaCO3/CaCO3.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/ash/ash.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/ash/ash.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/solidMixtureProperties/solidMixtureProperties.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/solidMixtureProperties/solidMixtureProperties.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/solidProperties/solidProperties.C (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/solidProperties/solidProperties.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/solidProperties/solidPropertiesI.H (100%)
 rename src/thermophysicalModels/{properties => thermophysicalProperties}/solidProperties/solidProperties/solidPropertiesNew.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C (100%)
 rename src/thermophysicalModels/{ => thermophysicalProperties}/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H (100%)
 create mode 100644 src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.C
 create mode 100644 src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H
 create mode 100644 src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H

diff --git a/applications/solvers/combustion/fireFoam/Make/options b/applications/solvers/combustion/fireFoam/Make/options
index 4b25d248ea0..869c315f4cf 100644
--- a/applications/solvers/combustion/fireFoam/Make/options
+++ b/applications/solvers/combustion/fireFoam/Make/options
@@ -13,8 +13,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
     -I$(LIB_SRC)/combustionModels/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -36,8 +35,6 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
index aed69697244..b0eaf6453e1 100644
--- a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
@@ -25,7 +25,6 @@ EXE_LIBS = \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
-    -lthermophysicalFunctions \
     -lspecie \
     -lradiationModels \
     -lincompressibleTransportModels \
diff --git a/applications/solvers/lagrangian/DPMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/Make/options
index 8ab44318e61..b1f295e2947 100644
--- a/applications/solvers/lagrangian/DPMFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/Make/options
@@ -21,7 +21,6 @@ EXE_LIBS = \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
-    -lthermophysicalFunctions \
     -lspecie \
     -lradiationModels \
     -lincompressibleTransportModels \
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/Make/options b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
index 978ea9d9b2d..7e4d2dccfcf 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/Make/options
+++ b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
@@ -10,8 +10,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -36,9 +35,7 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
index 0004a128e41..aebc4519bb8 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
@@ -19,7 +19,6 @@ EXE_LIBS = \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
-    -lthermophysicalFunctions \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
index 4f94e7f64f8..76fa725a3ab 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
@@ -23,7 +23,6 @@ EXE_LIBS = \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
-    -lthermophysicalFunctions \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
index 4e218c6dbc2..eab72a2389a 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
@@ -9,8 +9,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -34,8 +33,6 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
index f66d16750b4..80383470061 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
@@ -11,8 +11,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -37,9 +36,7 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
index f66d16750b4..80383470061 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
@@ -11,8 +11,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -37,9 +36,7 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/sprayFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/Make/options
index 28b5e6ac7af..75f471f2709 100644
--- a/applications/solvers/lagrangian/sprayFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/Make/options
@@ -13,8 +13,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -35,9 +34,7 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
index ebb0621e935..f6f65d7c6c0 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
@@ -14,8 +14,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -39,9 +38,7 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
index 3cda53424fc..fe32be8cfe6 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/Make/options
@@ -15,8 +15,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -42,9 +41,7 @@ EXE_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
-    -lthermophysicalFunctions \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
index f9056dd7905..639909b38e0 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
@@ -17,7 +17,6 @@ EXE_LIBS = \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
-    -lthermophysicalFunctions \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
index 5f109df5220..65db644ba79 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
@@ -2,8 +2,7 @@ EXE_INC = \
     -I../phaseSystems/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
diff --git a/applications/test/Function1/Make/options b/applications/test/Function1/Make/options
index af5541db765..b8e72a86c6e 100644
--- a/applications/test/Function1/Make/options
+++ b/applications/test/Function1/Make/options
@@ -9,7 +9,6 @@ EXE_INC = \
 EXE_LIBS = \
     -llagrangianIntermediate \
     -lradiationModels \
-    -lthermophysicalFunctions \
     -lregionModels \
     -lfiniteVolume \
     -lmeshTools \
diff --git a/applications/test/liquid/Make/options b/applications/test/liquid/Make/options
index 94e250c052a..a1664efd977 100644
--- a/applications/test/liquid/Make/options
+++ b/applications/test/liquid/Make/options
@@ -1,5 +1,3 @@
 EXE_INC = \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude
-
-EXE_LIBS = -lliquidProperties -lthermophysicalFunctions
diff --git a/applications/utilities/miscellaneous/foamList/Make/options b/applications/utilities/miscellaneous/foamList/Make/options
index 5ce9e05d42a..1835b223974 100644
--- a/applications/utilities/miscellaneous/foamList/Make/options
+++ b/applications/utilities/miscellaneous/foamList/Make/options
@@ -49,7 +49,7 @@ EXE_LIBS = \
     -llagrangianSpray \
     -llagrangianTurbulence \
     -llaminarFlameSpeedModels \
-    -lliquidProperties \
+    -lthermophysicalProperties \
     -lmeshTools \
     -lmolecularMeasurements \
     -lmolecule \
@@ -81,7 +81,6 @@ EXE_LIBS = \
     -lsnappyHexMesh \
     -lsolidChemistryModel \
     -lsolidParticle \
-    -lsolidProperties \
     -lsolidSpecie \
     -lsolidThermo \
     -lsolverFunctionObjects \
@@ -90,7 +89,6 @@ EXE_LIBS = \
     -lsurfaceFilmModels \
     -lsurfMesh \
     -lthermalBaffleModels \
-    -lthermophysicalFunctions \
     -ltopoChangerFvMesh \
     -ltriSurface \
     -lturbulenceModels \
diff --git a/src/lagrangian/coalCombustion/Make/options b/src/lagrangian/coalCombustion/Make/options
index 10c855cf41f..66870046319 100644
--- a/src/lagrangian/coalCombustion/Make/options
+++ b/src/lagrangian/coalCombustion/Make/options
@@ -5,8 +5,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
@@ -28,8 +27,7 @@ LIB_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/lagrangian/intermediate/Make/options b/src/lagrangian/intermediate/Make/options
index e1ec44b4b65..6b1b5c901ce 100644
--- a/src/lagrangian/intermediate/Make/options
+++ b/src/lagrangian/intermediate/Make/options
@@ -4,8 +4,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
@@ -23,8 +22,7 @@ LIB_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/lagrangian/spray/Make/options b/src/lagrangian/spray/Make/options
index 51974e3c995..2f941fe3230 100644
--- a/src/lagrangian/spray/Make/options
+++ b/src/lagrangian/spray/Make/options
@@ -6,8 +6,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
@@ -30,8 +29,7 @@ LIB_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/lagrangian/turbulence/Make/options b/src/lagrangian/turbulence/Make/options
index 825da6fbb80..4a7f193503e 100644
--- a/src/lagrangian/turbulence/Make/options
+++ b/src/lagrangian/turbulence/Make/options
@@ -5,8 +5,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
@@ -28,8 +27,7 @@ LIB_LIBS = \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lsolidProperties \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lradiationModels \
diff --git a/src/regionModels/regionCoupling/Make/options b/src/regionModels/regionCoupling/Make/options
index 90d6d183b09..a5cab5feb11 100644
--- a/src/regionModels/regionCoupling/Make/options
+++ b/src/regionModels/regionCoupling/Make/options
@@ -7,9 +7,8 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude\
     -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/solidSpecie/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/lnInclude \
diff --git a/src/regionModels/surfaceFilmModels/Make/options b/src/regionModels/surfaceFilmModels/Make/options
index a5311a2cc83..566ec315e50 100644
--- a/src/regionModels/surfaceFilmModels/Make/options
+++ b/src/regionModels/surfaceFilmModels/Make/options
@@ -2,8 +2,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
@@ -15,8 +14,7 @@ LIB_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
-    -lliquidProperties \
-    -lsolidProperties \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -ldistributionModels \
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options
index 8ea8ffa2e91..9f799143bc5 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/Make/options
@@ -2,8 +2,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
@@ -17,8 +16,7 @@ LIB_LIBS = \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
-    -lliquidProperties \
-    -lsolidProperties \
+    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lturbulenceModels \
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
index 6c511cc5499..d70b14bbf5a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
@@ -93,7 +93,8 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
         // new liquid create
         ownLiquid_ = true;
 
-        liquidPtr_ = new liquidProperties(dict.subDict(name_ + "Coeffs"));
+        liquidPtr_ =
+            liquidProperties::New(dict.subDict(name_ + "Coeffs")).ptr();
     }
 }
 
diff --git a/src/thermophysicalModels/Allwmake b/src/thermophysicalModels/Allwmake
index 2c90db55a8d..2d59e0aae5a 100755
--- a/src/thermophysicalModels/Allwmake
+++ b/src/thermophysicalModels/Allwmake
@@ -6,8 +6,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 
 wmake $targetType specie
 wmake $targetType solidSpecie
-wmake $targetType thermophysicalFunctions
-./properties/Allwmake $targetType $*
+wmake $targetType thermophysicalProperties
 
 wmake $targetType basic
 wmake $targetType reactionThermo
diff --git a/src/thermophysicalModels/SLGThermo/Make/options b/src/thermophysicalModels/SLGThermo/Make/options
index 37e3533de0d..6ac037828e9 100644
--- a/src/thermophysicalModels/SLGThermo/Make/options
+++ b/src/thermophysicalModels/SLGThermo/Make/options
@@ -2,8 +2,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
 
diff --git a/src/thermophysicalModels/basic/Make/options b/src/thermophysicalModels/basic/Make/options
index b5c859baf14..cb12503892c 100644
--- a/src/thermophysicalModels/basic/Make/options
+++ b/src/thermophysicalModels/basic/Make/options
@@ -1,10 +1,13 @@
 EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
     -lcompressibleTransportModels \
+    -lspecie \
+    -lthermophysicalProperties \
     -lfiniteVolume \
     -lmeshTools
diff --git a/src/thermophysicalModels/chemistryModel/Make/options b/src/thermophysicalModels/chemistryModel/Make/options
index 5997147f12c..9da89fb7b4d 100644
--- a/src/thermophysicalModels/chemistryModel/Make/options
+++ b/src/thermophysicalModels/chemistryModel/Make/options
@@ -15,7 +15,6 @@ LIB_LIBS = \
     -lfluidThermophysicalModels \
     -lreactionThermophysicalModels \
     -lspecie \
-    -lthermophysicalFunctions \
     -lODE \
     -lfiniteVolume \
     -lmeshTools
diff --git a/src/thermophysicalModels/properties/Allwmake b/src/thermophysicalModels/properties/Allwmake
deleted file mode 100755
index 0837290b627..00000000000
--- a/src/thermophysicalModels/properties/Allwmake
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-cd ${0%/*} || exit 1    # Run from this directory
-
-# Parse arguments for library compilation
-. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
-
-wmake $targetType liquidProperties
-wmake $targetType solidProperties
-
-#------------------------------------------------------------------------------
diff --git a/src/thermophysicalModels/properties/liquidProperties/Make/files b/src/thermophysicalModels/properties/liquidProperties/Make/files
deleted file mode 100644
index 47f70772e88..00000000000
--- a/src/thermophysicalModels/properties/liquidProperties/Make/files
+++ /dev/null
@@ -1,35 +0,0 @@
-liquidProperties/liquidProperties.C
-liquidMixtureProperties/liquidMixtureProperties.C
-
-H2O/H2O.C
-C7H16/C7H16.C
-C12H26/C12H26.C
-C10H22/C10H22.C
-C8H18/C8H18.C
-IC8H18/IC8H18.C
-C4H10O/C4H10O.C
-C2H6O/C2H6O.C
-IDEA/IDEA.C
-aC10H7CH3/aC10H7CH3.C
-bC10H7CH3/bC10H7CH3.C
-C8H10/C8H10.C
-C16H34/C16H34.C
-C9H20/C9H20.C
-C6H6/C6H6.C
-C7H8/C7H8.C
-C6H14/C6H14.C
-C13H28/C13H28.C
-C14H30/C14H30.C
-C3H8/C3H8.C
-C3H6O/C3H6O.C
-C2H6/C2H6.C
-CH3OH/CH3OH.C
-C2H5OH/C2H5OH.C
-Ar/Ar.C
-N2/N2.C
-MB/MB.C
-CH4N2O/CH4N2O.C
-nC3H8O/nC3H8O.C
-iC3H8O/iC3H8O.C
-
-LIB = $(FOAM_LIBBIN)/libliquidProperties
diff --git a/src/thermophysicalModels/properties/liquidProperties/Make/options b/src/thermophysicalModels/properties/liquidProperties/Make/options
deleted file mode 100644
index 383322f7d46..00000000000
--- a/src/thermophysicalModels/properties/liquidProperties/Make/options
+++ /dev/null
@@ -1,7 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude
-
-LIB_LIBS = \
-    -lspecie \
-    -lthermophysicalFunctions
diff --git a/src/thermophysicalModels/properties/solidProperties/Make/files b/src/thermophysicalModels/properties/solidProperties/Make/files
deleted file mode 100644
index fdd25a7a6b4..00000000000
--- a/src/thermophysicalModels/properties/solidProperties/Make/files
+++ /dev/null
@@ -1,9 +0,0 @@
-solidProperties/solidProperties.C
-solidProperties/solidPropertiesNew.C
-solidMixtureProperties/solidMixtureProperties.C
-
-ash/ash.C
-C/C.C
-CaCO3/CaCO3.C
-
-LIB = $(FOAM_LIBBIN)/libsolidProperties
diff --git a/src/thermophysicalModels/radiation/Make/options b/src/thermophysicalModels/radiation/Make/options
index 3cc7218bdd5..5a768463e84 100644
--- a/src/thermophysicalModels/radiation/Make/options
+++ b/src/thermophysicalModels/radiation/Make/options
@@ -4,8 +4,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
@@ -16,7 +15,6 @@ LIB_LIBS = \
     -lspecie \
     -lsolidThermo \
     -lSLGThermo \
-    -lsolidProperties \
-    -lliquidProperties \
+    -lthermophysicalProperties \
     -lfiniteVolume \
     -lmeshTools
diff --git a/src/thermophysicalModels/thermophysicalFunctions/Make/files b/src/thermophysicalModels/thermophysicalFunctions/Make/files
deleted file mode 100644
index 4fbfc660d5c..00000000000
--- a/src/thermophysicalModels/thermophysicalFunctions/Make/files
+++ /dev/null
@@ -1,17 +0,0 @@
-thermophysicalFunction = thermophysicalFunction
-NSRDSfunctions         = NSRDSfunctions
-APIfunctions           = APIfunctions
-
-$(thermophysicalFunction)/thermophysicalFunction.C
-$(NSRDSfunctions)/NSRDSfunc0/NSRDSfunc0.C
-$(NSRDSfunctions)/NSRDSfunc1/NSRDSfunc1.C
-$(NSRDSfunctions)/NSRDSfunc2/NSRDSfunc2.C
-$(NSRDSfunctions)/NSRDSfunc3/NSRDSfunc3.C
-$(NSRDSfunctions)/NSRDSfunc4/NSRDSfunc4.C
-$(NSRDSfunctions)/NSRDSfunc5/NSRDSfunc5.C
-$(NSRDSfunctions)/NSRDSfunc6/NSRDSfunc6.C
-$(NSRDSfunctions)/NSRDSfunc7/NSRDSfunc7.C
-$(NSRDSfunctions)/NSRDSfunc14/NSRDSfunc14.C
-$(APIfunctions)/APIdiffCoefFunc/APIdiffCoefFunc.C
-
-LIB = $(FOAM_LIBBIN)/libthermophysicalFunctions
diff --git a/src/thermophysicalModels/thermophysicalFunctions/Make/options b/src/thermophysicalModels/thermophysicalFunctions/Make/options
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/src/thermophysicalModels/thermophysicalProperties/Make/files b/src/thermophysicalModels/thermophysicalProperties/Make/files
new file mode 100644
index 00000000000..0ca22214419
--- /dev/null
+++ b/src/thermophysicalModels/thermophysicalProperties/Make/files
@@ -0,0 +1,64 @@
+thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C
+
+NSRDSfunctions = thermophysicalFunctions/NSRDSfunctions
+$(NSRDSfunctions)/NSRDSfunc0/NSRDSfunc0.C
+$(NSRDSfunctions)/NSRDSfunc1/NSRDSfunc1.C
+$(NSRDSfunctions)/NSRDSfunc2/NSRDSfunc2.C
+$(NSRDSfunctions)/NSRDSfunc3/NSRDSfunc3.C
+$(NSRDSfunctions)/NSRDSfunc4/NSRDSfunc4.C
+$(NSRDSfunctions)/NSRDSfunc5/NSRDSfunc5.C
+$(NSRDSfunctions)/NSRDSfunc6/NSRDSfunc6.C
+$(NSRDSfunctions)/NSRDSfunc7/NSRDSfunc7.C
+$(NSRDSfunctions)/NSRDSfunc14/NSRDSfunc14.C
+
+APIfunctions           = thermophysicalFunctions/APIfunctions
+$(APIfunctions)/APIdiffCoefFunc/APIdiffCoefFunc.C
+
+thermophysicalProperties/thermophysicalProperties.C
+
+
+liquidProperties/liquidProperties/liquidProperties.C
+liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
+
+liquidProperties/H2O/H2O.C
+liquidProperties/C7H16/C7H16.C
+liquidProperties/C12H26/C12H26.C
+liquidProperties/C10H22/C10H22.C
+liquidProperties/C8H18/C8H18.C
+liquidProperties/IC8H18/IC8H18.C
+liquidProperties/C4H10O/C4H10O.C
+liquidProperties/C2H6O/C2H6O.C
+liquidProperties/IDEA/IDEA.C
+liquidProperties/aC10H7CH3/aC10H7CH3.C
+liquidProperties/bC10H7CH3/bC10H7CH3.C
+liquidProperties/C8H10/C8H10.C
+liquidProperties/C16H34/C16H34.C
+liquidProperties/C9H20/C9H20.C
+liquidProperties/C6H6/C6H6.C
+liquidProperties/C7H8/C7H8.C
+liquidProperties/C6H14/C6H14.C
+liquidProperties/C13H28/C13H28.C
+liquidProperties/C14H30/C14H30.C
+liquidProperties/C3H8/C3H8.C
+liquidProperties/C3H6O/C3H6O.C
+liquidProperties/C2H6/C2H6.C
+liquidProperties/CH3OH/CH3OH.C
+liquidProperties/C2H5OH/C2H5OH.C
+liquidProperties/Ar/Ar.C
+liquidProperties/N2/N2.C
+liquidProperties/MB/MB.C
+liquidProperties/CH4N2O/CH4N2O.C
+liquidProperties/nC3H8O/nC3H8O.C
+liquidProperties/iC3H8O/iC3H8O.C
+
+
+solidProperties/solidProperties/solidProperties.C
+solidProperties/solidProperties/solidPropertiesNew.C
+solidProperties/solidMixtureProperties/solidMixtureProperties.C
+
+solidProperties/ash/ash.C
+solidProperties/C/C.C
+solidProperties/CaCO3/CaCO3.C
+
+
+LIB = $(FOAM_LIBBIN)/libthermophysicalProperties
diff --git a/src/thermophysicalModels/properties/solidProperties/Make/options b/src/thermophysicalModels/thermophysicalProperties/Make/options
similarity index 71%
rename from src/thermophysicalModels/properties/solidProperties/Make/options
rename to src/thermophysicalModels/thermophysicalProperties/Make/options
index 848cce789f2..bdc8b074c03 100644
--- a/src/thermophysicalModels/properties/solidProperties/Make/options
+++ b/src/thermophysicalModels/thermophysicalProperties/Make/options
@@ -1,2 +1,5 @@
 EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude
+
+LIB_LIBS = \
+    -lspecie
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/Ar/Ar.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/Ar/Ar.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/Ar/Ar.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/Ar/Ar.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/Ar/Ar.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/Ar/Ar.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/Ar/ArI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/Ar/ArI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/Ar/ArI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/Ar/ArI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C10H22/C10H22.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C10H22/C10H22.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C10H22/C10H22.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C10H22/C10H22.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C10H22/C10H22I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C10H22/C10H22I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C10H22/C10H22I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C12H26/C12H26.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C12H26/C12H26.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C12H26/C12H26.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C12H26/C12H26.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C12H26/C12H26I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C12H26/C12H26I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C12H26/C12H26I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C13H28/C13H28.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C13H28/C13H28.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C13H28/C13H28.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C13H28/C13H28.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C13H28/C13H28I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C13H28/C13H28I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C13H28/C13H28I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C14H30/C14H30.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C14H30/C14H30.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C14H30/C14H30.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C14H30/C14H30.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C14H30/C14H30I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C14H30/C14H30I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C14H30/C14H30I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C16H34/C16H34.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C16H34/C16H34.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C16H34/C16H34.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C16H34/C16H34.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C16H34/C16H34I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C16H34/C16H34I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C16H34/C16H34I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H5OH/C2H5OH.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H5OH/C2H5OH.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H5OH/C2H5OH.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OH.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H5OH/C2H5OH.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OHI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H5OH/C2H5OHI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H5OH/C2H5OHI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H5OH/C2H5OHI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6/C2H6.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6/C2H6.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6/C2H6.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6/C2H6.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6/C2H6I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H6/C2H6I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6/C2H6I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6O/C2H6O.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6O/C2H6O.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6O/C2H6O.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6O.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6O/C2H6O.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6OI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6O/C2H6OI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C2H6O/C2H6OI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C2H6O/C2H6OI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H6O/C3H6O.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H6O/C3H6O.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H6O/C3H6O.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6O.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H6O/C3H6O.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6OI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H6O/C3H6OI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C3H6O/C3H6OI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H6O/C3H6OI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H8/C3H8.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H8/C3H8.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H8/C3H8.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H8/C3H8.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H8/C3H8I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C3H8/C3H8I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C3H8/C3H8I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C4H10O/C4H10O.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C4H10O/C4H10O.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C4H10O/C4H10O.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10O.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C4H10O/C4H10O.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10OI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C4H10O/C4H10OI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C4H10O/C4H10OI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C4H10O/C4H10OI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H14/C6H14.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H14/C6H14.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H14/C6H14.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H14/C6H14.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H14/C6H14I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C6H14/C6H14I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H14/C6H14I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H6/C6H6.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H6/C6H6.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H6/C6H6.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H6/C6H6.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H6/C6H6I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C6H6/C6H6I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C6H6/C6H6I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H16/C7H16.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H16/C7H16.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H16/C7H16.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H16/C7H16.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H16/C7H16I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C7H16/C7H16I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H16/C7H16I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H8/C7H8.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H8/C7H8.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H8/C7H8.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H8/C7H8.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H8/C7H8I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C7H8/C7H8I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C7H8/C7H8I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H10/C8H10.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H10/C8H10.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H10/C8H10.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H10/C8H10.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H10/C8H10I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C8H10/C8H10I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H10/C8H10I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H18/C8H18.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H18/C8H18.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H18/C8H18.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H18/C8H18.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H18/C8H18I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C8H18/C8H18I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C8H18/C8H18I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C9H20/C9H20.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C9H20/C9H20.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C9H20/C9H20.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C9H20/C9H20.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/C9H20/C9H20I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/C9H20/C9H20I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/C9H20/C9H20I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH3OH/CH3OH.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH3OH/CH3OH.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH3OH/CH3OH.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OH.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH3OH/CH3OH.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OHI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH3OH/CH3OHI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/CH3OH/CH3OHI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH3OH/CH3OHI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH4N2O/CH4N2O.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH4N2O/CH4N2O.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH4N2O/CH4N2O.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2O.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH4N2O/CH4N2O.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH4N2O/CH4N2OI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/CH4N2O/CH4N2OI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/CH4N2O/CH4N2OI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.C
similarity index 96%
rename from src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.C
index eb211a946f2..634007fc1db 100644
--- a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.C
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.C
@@ -31,6 +31,8 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(H2O, 0);
+    addToRunTimeSelectionTable(thermophysicalProperties, H2O,);
+    addToRunTimeSelectionTable(thermophysicalProperties, H2O, dictionary);
     addToRunTimeSelectionTable(liquidProperties, H2O,);
     addToRunTimeSelectionTable(liquidProperties, H2O, dictionary);
 }
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/H2O/H2O.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/H2O/H2OI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2OI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/H2O/H2OI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2OI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/IC8H18/IC8H18.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/IC8H18/IC8H18.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/IC8H18/IC8H18.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/IC8H18/IC8H18.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/IC8H18/IC8H18I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/IC8H18/IC8H18I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/IC8H18/IC8H18I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEA.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEA.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEA.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEA.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.thermo b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEA.thermo
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/IDEA/IDEA.thermo
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEA.thermo
diff --git a/src/thermophysicalModels/properties/liquidProperties/IDEA/IDEAI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEAI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/IDEA/IDEAI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/IDEA/IDEAI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/MB/MB.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/MB/MB.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/MB/MB.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MB.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/MB/MB.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/MB/MB.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/MB/MB.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/MB/MBI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/MB/MBI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/MB/MBI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/MB/MBI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/N2/N2.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/N2/N2.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/N2/N2.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/N2/N2.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/N2/N2.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/N2/N2.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/N2/N2I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/N2/N2I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/N2/N2I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/N2/N2I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/aC10H7CH3/aC10H7CH3.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/aC10H7CH3/aC10H7CH3.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/aC10H7CH3/aC10H7CH3.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/aC10H7CH3/aC10H7CH3.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/aC10H7CH3/aC10H7CH3I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/aC10H7CH3/aC10H7CH3I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/aC10H7CH3/aC10H7CH3I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/bC10H7CH3/bC10H7CH3.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/bC10H7CH3/bC10H7CH3.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/bC10H7CH3/bC10H7CH3.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/bC10H7CH3/bC10H7CH3.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3I.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/bC10H7CH3/bC10H7CH3I.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/bC10H7CH3/bC10H7CH3I.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/bC10H7CH3/bC10H7CH3I.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/iC3H8O/iC3H8O.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/iC3H8O/iC3H8O.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/iC3H8O/iC3H8O.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8O.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/iC3H8O/iC3H8O.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/iC3H8O/iC3H8OI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/iC3H8O/iC3H8OI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/iC3H8O/iC3H8OI.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
similarity index 82%
rename from src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
index 49c88103b51..2fc7a6f97be 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
@@ -53,7 +53,7 @@ Foam::liquidProperties::liquidProperties
     scalar delta
 )
 :
-    W_(W),
+    thermophysicalProperties(W),
     Tc_(Tc),
     Pc_(Pc),
     Vc_(Vc),
@@ -69,7 +69,7 @@ Foam::liquidProperties::liquidProperties
 
 Foam::liquidProperties::liquidProperties(const dictionary& dict)
 :
-    W_(readScalar(dict.lookup("W"))),
+    thermophysicalProperties(dict),
     Tc_(readScalar(dict.lookup("Tc"))),
     Pc_(readScalar(dict.lookup("Pc"))),
     Vc_(readScalar(dict.lookup("Vc"))),
@@ -174,91 +174,7 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::scalar Foam::liquidProperties::rho(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::pv(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::hl(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::Cp(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::h(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::Cpg(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::mu(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::mug(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::kappa(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::kappag(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::sigma(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::D(scalar p, scalar T) const
-{
-    NotImplemented;
-    return 0;
-}
-
-
-Foam::scalar Foam::liquidProperties::D(scalar p, scalar T, scalar Wb) const
+Foam::scalar Foam::liquidProperties::S(scalar p, scalar T) const
 {
     NotImplemented;
     return 0;
@@ -310,7 +226,7 @@ Foam::scalar Foam::liquidProperties::pvInvert(scalar p) const
 
 void Foam::liquidProperties::readIfPresent(const dictionary &dict)
 {
-    dict.readIfPresent("W", W_);
+    thermophysicalProperties::readIfPresent(dict);
     dict.readIfPresent("Tc", Tc_);
     dict.readIfPresent("Pc", Pc_);
     dict.readIfPresent("Vc", Vc_);
@@ -326,7 +242,8 @@ void Foam::liquidProperties::readIfPresent(const dictionary &dict)
 
 void Foam::liquidProperties::writeData(Ostream& os) const
 {
-    os  << W_ << token::SPACE
+    thermophysicalProperties::writeData(os);
+    os  << token::SPACE
         << Tc_ << token::SPACE
         << Pc_ << token::SPACE
         << Vc_ << token::SPACE
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.H
similarity index 82%
rename from src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.H
index 2f035a1f876..939a80770a6 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.H
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.H
@@ -25,7 +25,7 @@ Class
     Foam::liquidProperties
 
 Description
-    The thermophysical properties of a liquidProperties
+    The thermophysical properties of a liquid
 
 SourceFiles
     liquidProperties.C
@@ -35,12 +35,7 @@ SourceFiles
 #ifndef liquidProperties_H
 #define liquidProperties_H
 
-#include "scalar.H"
-#include "IOstreams.H"
-#include "typeInfo.H"
-#include "autoPtr.H"
-#include "runTimeSelectionTables.H"
-#include "dictionary.H"
+#include "thermophysicalProperties.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -52,12 +47,11 @@ namespace Foam
 \*---------------------------------------------------------------------------*/
 
 class liquidProperties
+:
+    public thermophysicalProperties
 {
     // Private data
 
-        //- Molecular weight [kg/kmol]
-        scalar W_;
-
         //- Critical temperature [K]
         scalar Tc_;
 
@@ -137,10 +131,7 @@ public:
         liquidProperties(const dictionary& dict);
 
         //- Construct and return clone
-        virtual autoPtr<liquidProperties> clone() const
-        {
-            return autoPtr<liquidProperties>(new liquidProperties(*this));
-        }
+        virtual autoPtr<liquidProperties> clone() const = 0;
 
 
     // Selectors
@@ -161,20 +152,11 @@ public:
 
         // Physical constants which define the specie
 
-            //- Molecular weight [kg/kmol]
-            inline scalar W() const;
-
             //- No of moles of this species in mixture
             //  Note Mixing of liquidProperties is not currently supported
             //  so Y = 1
             inline scalar Y() const;
 
-            //- Is the equation of state is incompressible i.e. rho != f(p)
-            static const bool incompressible = true;
-
-            //- Is the equation of state is isochoric i.e. rho = const
-            static const bool isochoric = false;
-
             //- Critical temperature [K]
             inline scalar Tc() const;
 
@@ -211,9 +193,6 @@ public:
 
         // Fundamental equation of state properties
 
-            //- Liquid density [kg/m^3]
-            virtual scalar rho(scalar p, scalar T) const;
-
             //- Liquid compressibility rho/p [s^2/m^2]
             //  Note: currently it is assumed the liquid is incompressible
             inline scalar psi(scalar p, scalar T) const;
@@ -226,9 +205,6 @@ public:
 
         // Fundamental thermodynamic properties
 
-            //- Heat capacity at constant pressure [J/(kg K)]
-            virtual scalar Cp(const scalar p, const scalar T) const;
-
             //- Absolute Enthalpy [J/kg]
             inline scalar Ha(const scalar p, const scalar T) const;
 
@@ -239,46 +215,46 @@ public:
             inline scalar Hc() const;
 
             // Entropy [J/(kg K)]
-            // inline scalar S(const scalar p, const scalar T) const;
+            scalar S(const scalar p, const scalar T) const;
 
 
         // Physical properties
 
             //- Vapour pressure [Pa]
-            virtual scalar pv(scalar p, scalar T) const;
+            virtual scalar pv(scalar p, scalar T) const = 0;
 
             //- Heat of vapourisation [J/kg]
-            virtual scalar hl(scalar p, scalar T) const;
+            virtual scalar hl(scalar p, scalar T) const = 0;
 
             //- Liquid enthalpy [J/kg] - reference to 298.15 K
-            virtual scalar h(scalar p, scalar T) const;
+            virtual scalar h(scalar p, scalar T) const = 0;
 
             //- Vapour heat capacity [J/(kg K)]
-            virtual scalar Cpg(scalar p, scalar T) const;
+            virtual scalar Cpg(scalar p, scalar T) const = 0;
 
             //- Liquid viscosity [Pa s]
-            virtual scalar mu(scalar p, scalar T) const;
+            virtual scalar mu(scalar p, scalar T) const = 0;
 
             //- Vapour viscosity [Pa s]
-            virtual scalar mug(scalar p, scalar T) const;
+            virtual scalar mug(scalar p, scalar T) const = 0;
 
             //- Liquid thermal conductivity  [W/(m K)]
-            virtual scalar kappa(scalar p, scalar T) const;
+            virtual scalar kappa(scalar p, scalar T) const = 0;
 
             //- Liquid thermal diffusivity of enthalpy [kg/ms]
             inline scalar alphah(const scalar p, const scalar T) const;
 
             //- Vapour thermal conductivity  [W/(m K)]
-            virtual scalar kappag(scalar p, scalar T) const;
+            virtual scalar kappag(scalar p, scalar T) const = 0;
 
             //- Surface tension [N/m]
-            virtual scalar sigma(scalar p, scalar T) const;
+            virtual scalar sigma(scalar p, scalar T) const = 0;
 
             //- Vapour diffussivity [m2/s]
-            virtual scalar D(scalar p, scalar T) const;
+            virtual scalar D(scalar p, scalar T) const = 0;
 
             //- Vapour diffussivity [m2/s] with specified binary pair
-            virtual scalar D(scalar p, scalar T, scalar Wb) const;
+            virtual scalar D(scalar p, scalar T, scalar Wb) const = 0;
 
             //- Invert the vapour pressure relationship to retrieve the
             //  boiling temperuture as a function of pressure
@@ -306,7 +282,7 @@ public:
         inline void readIfPresent(Liquid& l, const dictionary& dict);
 
         //- Write the function coefficients
-        virtual void writeData(Ostream& os) const;
+        virtual void writeData(Ostream& os) const = 0;;
 
         //- Write the data for each of the property functions
         template<class Liquid>
diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidPropertiesI.H
similarity index 98%
rename from src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidPropertiesI.H
index fb53db8c44f..454116fb112 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidPropertiesI.H
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidPropertiesI.H
@@ -29,12 +29,6 @@ inline Foam::scalar Foam::liquidProperties::limit(const scalar T) const
 }
 
 
-inline Foam::scalar Foam::liquidProperties::W() const
-{
-    return W_;
-}
-
-
 inline Foam::scalar Foam::liquidProperties::Y() const
 {
     return 1;
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/nC3H8O/nC3H8O.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.C
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/nC3H8O/nC3H8O.C
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/nC3H8O/nC3H8O.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8O.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/nC3H8O/nC3H8O.H
diff --git a/src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/nC3H8O/nC3H8OI.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidProperties/nC3H8O/nC3H8OI.H
rename to src/thermophysicalModels/thermophysicalProperties/liquidProperties/nC3H8O/nC3H8OI.H
diff --git a/src/thermophysicalModels/properties/solidProperties/C/C.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/C/C.C
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/C/C.C
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/C/C.C
diff --git a/src/thermophysicalModels/properties/solidProperties/C/C.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/C/C.H
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/C/C.H
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/C/C.H
diff --git a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/CaCO3/CaCO3.C
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.C
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/CaCO3/CaCO3.C
diff --git a/src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/CaCO3/CaCO3.H
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/CaCO3/CaCO3.H
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/CaCO3/CaCO3.H
diff --git a/src/thermophysicalModels/properties/solidProperties/ash/ash.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/ash/ash.C
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/ash/ash.C
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/ash/ash.C
diff --git a/src/thermophysicalModels/properties/solidProperties/ash/ash.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/ash/ash.H
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/ash/ash.H
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/ash/ash.H
diff --git a/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
diff --git a/src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.C
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.C
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.C
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.H
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/solidProperties/solidProperties.H
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.H
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesI.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesI.H
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesI.H
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesI.H
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
similarity index 100%
rename from src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
rename to src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/APIfunctions/APIdiffCoefFunc/APIdiffCoefFunc.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc0/NSRDSfunc0.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc1/NSRDSfunc1.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc14/NSRDSfunc14.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc2/NSRDSfunc2.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc3/NSRDSfunc3.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc4/NSRDSfunc4.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc5/NSRDSfunc5.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc6/NSRDSfunc6.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/NSRDSfunctions/NSRDSfunc7/NSRDSfunc7.H
diff --git a/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.C
diff --git a/src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H
rename to src/thermophysicalModels/thermophysicalProperties/thermophysicalFunctions/thermophysicalFunction/thermophysicalFunction.H
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.C
new file mode 100644
index 00000000000..e5613a98bcf
--- /dev/null
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.C
@@ -0,0 +1,133 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "thermophysicalProperties.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(thermophysicalProperties, 0);
+    defineRunTimeSelectionTable(thermophysicalProperties,);
+    defineRunTimeSelectionTable(thermophysicalProperties, dictionary);
+}
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::thermophysicalProperties::thermophysicalProperties(scalar W)
+:
+    W_(W)
+{}
+
+
+Foam::thermophysicalProperties::thermophysicalProperties(const dictionary& dict)
+:
+    W_(readScalar(dict.lookup("W")))
+{}
+
+
+// * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::thermophysicalProperties>
+Foam::thermophysicalProperties::New
+(
+    const word& name
+)
+{
+    if (debug)
+    {
+        InfoInFunction << "Constructing thermophysicalProperties" << endl;
+    }
+
+    ConstructorTable::iterator cstrIter = ConstructorTablePtr_->find(name);
+
+    if (cstrIter == ConstructorTablePtr_->end())
+    {
+        FatalErrorInFunction
+            << "Unknown thermophysicalProperties type "
+            << name << nl << nl
+            << "Valid thermophysicalProperties types are:" << nl
+            << ConstructorTablePtr_->sortedToc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<thermophysicalProperties>(cstrIter()());
+}
+
+
+Foam::autoPtr<Foam::thermophysicalProperties>
+Foam::thermophysicalProperties::New
+(
+    const dictionary& dict
+)
+{
+    if (debug)
+    {
+        InfoInFunction << "Constructing thermophysicalProperties" << endl;
+    }
+
+    const word& thermophysicalPropertiesTypeName = dict.dictName();
+
+    dictionaryConstructorTable::iterator cstrIter =
+        dictionaryConstructorTablePtr_->find(thermophysicalPropertiesTypeName);
+
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
+    {
+        FatalErrorInFunction
+            << "Unknown thermophysicalProperties type "
+            << thermophysicalPropertiesTypeName << nl << nl
+            << "Valid thermophysicalProperties types are:" << nl
+            << dictionaryConstructorTablePtr_->sortedToc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<thermophysicalProperties>(cstrIter()(dict));
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::thermophysicalProperties::readIfPresent(const dictionary &dict)
+{
+    dict.readIfPresent("W", W_);
+}
+
+
+void Foam::thermophysicalProperties::writeData(Ostream& os) const
+{
+    os  << W_;
+}
+
+
+// * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const thermophysicalProperties& l)
+{
+    l.writeData(os);
+    return os;
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H
new file mode 100644
index 00000000000..98ec171a547
--- /dev/null
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H
@@ -0,0 +1,205 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::thermophysicalProperties
+
+Description
+    Base-class for thermophysical properties of solids, liquids and gases
+    providing an interface compatible with the templated thermodynamics
+    packages.
+
+SourceFiles
+    thermophysicalPropertiesI.H
+    thermophysicalProperties.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef thermophysicalProperties_H
+#define thermophysicalProperties_H
+
+#include "dictionary.H"
+#include "runTimeSelectionTables.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                    Class thermophysicalProperties Declaration
+\*---------------------------------------------------------------------------*/
+
+class thermophysicalProperties
+{
+    // Private data
+
+        //- Molecular weight [kg/kmol]
+        scalar W_;
+
+
+public:
+
+    TypeName("thermophysicalProperties");
+
+
+    // Declare run-time constructor selection tables
+
+        declareRunTimeSelectionTable
+        (
+            autoPtr,
+            thermophysicalProperties,
+            ,
+            (),
+            ()
+        );
+
+        declareRunTimeSelectionTable
+        (
+            autoPtr,
+            thermophysicalProperties,
+            dictionary,
+            (const dictionary& dict),
+            (dict)
+        );
+
+
+    // Constructors
+
+        //- Construct from molecular weight
+        thermophysicalProperties(scalar W);
+
+        //- Construct from dictionary
+        thermophysicalProperties(const dictionary& dict);
+
+
+    // Selectors
+
+        //- Return a pointer to a new thermophysicalProperties created from name
+        static autoPtr<thermophysicalProperties> New(const word& name);
+
+        //- Return a pointer to a new thermophysicalProperties
+        //  created from dictionary
+        static autoPtr<thermophysicalProperties> New(const dictionary& dict);
+
+
+    //- Destructor
+    virtual ~thermophysicalProperties()
+    {}
+
+
+    // Member Functions
+
+        // Physical constants which define the specie
+
+            //- Molecular weight [kg/kmol]
+            inline scalar W() const;
+
+            //- Is the equation of state is incompressible i.e. rho != f(p)
+            static const bool incompressible = true;
+
+            //- Is the equation of state is isochoric i.e. rho = const
+            static const bool isochoric = false;
+
+            //- Limit the temperature to be in the range Tlow_ to Thigh_
+            inline scalar limit(const scalar T) const;
+
+
+        // Fundamental equation of state properties
+
+            //- Liquid density [kg/m^3]
+            virtual scalar rho(scalar p, scalar T) const = 0;
+
+            //- Liquid compressibility rho/p [s^2/m^2]
+            //  Note: currently it is assumed the liquid is incompressible
+            virtual scalar psi(scalar p, scalar T) const = 0;
+
+            //- Return (Cp - Cv) [J/(kg K]
+            //  Note: currently it is assumed the liquid is incompressible
+            //  so CpMCv 0
+            virtual scalar CpMCv(scalar p, scalar T) const = 0;
+
+
+        // Fundamental thermodynamic properties
+
+            //- Heat capacity at constant pressure [J/(kg K)]
+            virtual scalar Cp(const scalar p, const scalar T) const = 0;
+
+            //- Absolute Enthalpy [J/kg]
+            virtual scalar Ha(const scalar p, const scalar T) const = 0;
+
+            //- Sensible enthalpy [J/kg]
+            virtual scalar Hs(const scalar p, const scalar T) const = 0;
+
+            //- Chemical enthalpy [J/kg]
+            virtual scalar Hc() const = 0;
+
+            // Entropy [J/(kg K)]
+            virtual scalar S(const scalar p, const scalar T) const = 0;
+
+
+        // Physical properties
+
+            //- Liquid viscosity [Pa s]
+            virtual scalar mu(scalar p, scalar T) const = 0;
+
+            //- Liquid thermal conductivity  [W/(m K)]
+            virtual scalar kappa(scalar p, scalar T) const = 0;
+
+            //- Liquid thermal diffusivity of enthalpy [kg/ms]
+            virtual scalar alphah(const scalar p, const scalar T) const = 0;
+
+
+    // I-O
+
+        //- Read and set the properties present it the given dictionary
+        void readIfPresent(const dictionary& dict);
+
+        //- Write the function coefficients
+        virtual void writeData(Ostream& os) const = 0;
+
+        //- Ostream Operator
+        friend Ostream& operator<<
+        (
+            Ostream& os,
+            const thermophysicalProperties& l
+        );
+};
+
+
+Ostream& operator<<(Ostream& os, const thermophysicalProperties& l);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "thermophysicalPropertiesI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H
new file mode 100644
index 00000000000..b6c04e00624
--- /dev/null
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H
@@ -0,0 +1,38 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+inline Foam::scalar Foam::thermophysicalProperties::limit(const scalar T) const
+{
+    return T;
+}
+
+
+inline Foam::scalar Foam::thermophysicalProperties::W() const
+{
+    return W_;
+}
+
+
+// ************************************************************************* //
-- 
GitLab


From f6dacfb484b88133c46f4d276336b46ad7e3b8bb Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sun, 19 Feb 2017 16:44:00 +0000
Subject: [PATCH 090/277] liquidThermo: rhoThermo instantiated on
 liquidProperties

This allows single, multi-phase and VoF compressible simulations to be performed
with the accurate thermophysical property functions for liquids provided by the
liquidProperty classes.  e.g. in the
multiphase/compressibleInterFoam/laminar/depthCharge2D tutorial water can now be
specified by

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    properties      liquid;
    energy          sensibleInternalEnergy;
}

mixture
{
    H2O;
}

as an alternative to the previous less accurate representation defined by

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    transport       const;
    thermo          hConst;
    equationOfState perfectFluid;
    specie          specie;
    energy          sensibleInternalEnergy;
}

mixture
{
    specie
    {
        molWeight   18.0;
    }
    equationOfState
    {
        R           3000;
        rho0        1027;
    }
    thermodynamics
    {
        Cp          4195;
        Hf          0;
    }
    transport
    {
        mu          3.645e-4;
        Pr          2.289;
    }
}

However the increase in accuracy of the new simpler and more convenient
specification and representation comes at a cost: the NSRDS functions used by
the liquidProperties classes are relatively expensive to evaluate and the
depthCharge2D case takes ~14% longer to run.
---
 src/thermophysicalModels/basic/Make/files     |   1 +
 .../basic/basicThermo/basicThermo.C           |  18 +-
 .../basic/basicThermo/basicThermo.H           |  13 +-
 .../basic/basicThermo/basicThermoTemplates.C  | 188 ++++++++++++------
 .../basic/rhoThermo/liquidThermo.C            |  91 +++++++++
 .../liquidProperties/H2O/H2O.C                |   2 -
 .../liquidProperties/liquidProperties.H       |  11 +-
 .../solidProperties/solidProperties.H         |   2 +-
 .../thermophysicalProperties.H                |   6 -
 .../thermophysicalPropertiesI.H               |   2 +
 .../thermophysicalPropertiesSelector.C        |  61 ++++++
 .../thermophysicalPropertiesSelector.H        | 154 ++++++++++++++
 .../thermophysicalPropertiesSelectorI.H       | 175 ++++++++++++++++
 .../constant/thermophysicalProperties.water   |  16 ++
 14 files changed, 665 insertions(+), 75 deletions(-)
 create mode 100644 src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
 create mode 100644 src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.C
 create mode 100644 src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
 create mode 100644 src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H

diff --git a/src/thermophysicalModels/basic/Make/files b/src/thermophysicalModels/basic/Make/files
index 7d10c1c952a..83ee06f8bf1 100644
--- a/src/thermophysicalModels/basic/Make/files
+++ b/src/thermophysicalModels/basic/Make/files
@@ -6,6 +6,7 @@ psiThermo/psiThermos.C
 
 rhoThermo/rhoThermo.C
 rhoThermo/rhoThermos.C
+rhoThermo/liquidThermo.C
 
 derivedFvPatchFields/fixedEnergy/fixedEnergyFvPatchScalarField.C
 derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.C
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermo.C b/src/thermophysicalModels/basic/basicThermo/basicThermo.C
index 9d12c6de9c1..a5acf77a323 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermo.C
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -449,14 +449,28 @@ Foam::wordList Foam::basicThermo::splitThermoName
         {
             cmpts[i] = thermoName.substr(beg, end-beg);
             cmpts[i++].replaceAll(">","");
+
+            // If the number of number of components in the name
+            // is greater than nCmpt return an empty list
+            if (i == nCmpt)
+            {
+                return wordList::null();
+            }
         }
         beg = end + 1;
     }
 
+    // If the number of number of components in the name is not equal to nCmpt
+    // return an empty list
+    if (i + 1 != nCmpt)
+    {
+        return wordList::null();
+    }
+
     if (beg < thermoName.size())
     {
         cmpts[i] = thermoName.substr(beg, string::npos);
-        cmpts[i++].replaceAll(">","");
+        cmpts[i].replaceAll(">","");
     }
 
     return cmpts;
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermo.H b/src/thermophysicalModels/basic/basicThermo/basicThermo.H
index c1d299dbb74..5a5593886e1 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermo.H
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -135,6 +135,17 @@ public:
 
     // Selectors
 
+        //- Generic lookup for thermodynamics package thermoTypeName
+        template<class Thermo, class Table>
+        static typename Table::iterator lookupThermo
+        (
+            const dictionary& thermoTypeDict,
+            Table* tablePtr,
+            const int nCmpt,
+            const char* cmptNames[],
+            const word& thermoTypeName
+        );
+
         //- Generic lookup for each of the related thermodynamics packages
         template<class Thermo, class Table>
         static typename Table::iterator lookupThermo
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C b/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
index c9741c645b5..b589708163b 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,89 +30,153 @@ License
 template<class Thermo, class Table>
 typename Table::iterator Foam::basicThermo::lookupThermo
 (
-    const dictionary& thermoDict,
-    Table* tablePtr
+    const dictionary& thermoTypeDict,
+    Table* tablePtr,
+    const int nCmpt,
+    const char* cmptNames[],
+    const word& thermoTypeName
 )
 {
-    word thermoTypeName;
+    // Lookup the thermo package
+    typename Table::iterator cstrIter = tablePtr->find(thermoTypeName);
 
-    if (thermoDict.isDict("thermoType"))
+    // Print error message if package not found in the table
+    if (cstrIter == tablePtr->end())
     {
-        const dictionary& thermoTypeDict(thermoDict.subDict("thermoType"));
+        FatalErrorInFunction
+            << "Unknown " << Thermo::typeName << " type " << nl
+            << "thermoType" << thermoTypeDict << nl << nl
+            << "Valid " << Thermo::typeName << " types are:"
+            << nl << nl;
+
+        // Get the list of all the suitable thermo packages available
+        wordList validThermoTypeNames
+        (
+            tablePtr->sortedToc()
+        );
 
-        Info<< "Selecting thermodynamics package " << thermoTypeDict << endl;
+        // Build a table of the thermo packages constituent parts
+        // Note: row-0 contains the names of constituent parts
+        List<wordList> validThermoTypeNameCmpts
+        (
+            validThermoTypeNames.size() + 1
+        );
 
-        const int nCmpt = 7;
-        const char* cmptNames[nCmpt] =
+        validThermoTypeNameCmpts[0].setSize(nCmpt);
+        forAll(validThermoTypeNameCmpts[0], j)
         {
-            "type",
-            "mixture",
-            "transport",
-            "thermo",
-            "equationOfState",
-            "specie",
-            "energy"
-        };
-
-        // Construct the name of the thermo package from the components
-        thermoTypeName =
-            word(thermoTypeDict.lookup("type")) + '<'
-          + word(thermoTypeDict.lookup("mixture")) + '<'
-          + word(thermoTypeDict.lookup("transport")) + '<'
-          + word(thermoTypeDict.lookup("thermo")) + '<'
-          + word(thermoTypeDict.lookup("equationOfState")) + '<'
-          + word(thermoTypeDict.lookup("specie")) + ">>,"
-          + word(thermoTypeDict.lookup("energy")) + ">>>";
-
-        // Lookup the thermo package
-        typename Table::iterator cstrIter = tablePtr->find(thermoTypeName);
+            validThermoTypeNameCmpts[0][j] = cmptNames[j];
+        }
 
-        // Print error message if package not found in the table
-        if (cstrIter == tablePtr->end())
+        // Split the thermo package names into their constituent parts
+        // Removing incompatible entries from the list
+        label j = 0;
+        forAll(validThermoTypeNames, i)
         {
-            FatalErrorInFunction
-                << "Unknown " << Thermo::typeName << " type " << nl
-                << "thermoType" << thermoTypeDict << nl << nl
-                << "Valid " << Thermo::typeName << " types are:" << nl << nl;
-
-            // Get the list of all the suitable thermo packages available
-            wordList validThermoTypeNames
-            (
-                tablePtr->sortedToc()
-            );
-
-            // Build a table of the thermo packages constituent parts
-            // Note: row-0 contains the names of constituent parts
-            List<wordList> validThermoTypeNameCmpts
+            wordList names
             (
-                validThermoTypeNames.size() + 1
+                Thermo::splitThermoName(validThermoTypeNames[i], nCmpt)
             );
 
-            validThermoTypeNameCmpts[0].setSize(nCmpt);
-            forAll(validThermoTypeNameCmpts[0], j)
+            if (names.size())
             {
-                validThermoTypeNameCmpts[0][j] = cmptNames[j];
+                validThermoTypeNameCmpts[j++] = names;
             }
+        }
+        validThermoTypeNameCmpts.setSize(j);
 
-            // Split the thermo package names into their constituent parts
-            forAll(validThermoTypeNames, i)
-            {
-                validThermoTypeNameCmpts[i+1] =
-                    Thermo::splitThermoName(validThermoTypeNames[i], nCmpt);
-            }
+        // Print the table of available packages
+        // in terms of their constituent parts
+        printTable(validThermoTypeNameCmpts, FatalError);
+
+        FatalError<< exit(FatalError);
+    }
+
+    return cstrIter;
+}
+
+
+template<class Thermo, class Table>
+typename Table::iterator Foam::basicThermo::lookupThermo
+(
+    const dictionary& thermoDict,
+    Table* tablePtr
+)
+{
+    if (thermoDict.isDict("thermoType"))
+    {
+        const dictionary& thermoTypeDict(thermoDict.subDict("thermoType"));
 
-            // Print the table of available packages
-            // in terms of their constituent parts
-            printTable(validThermoTypeNameCmpts, FatalError);
+        Info<< "Selecting thermodynamics package " << thermoTypeDict << endl;
+
+        if (thermoTypeDict.found("properties"))
+        {
+            const int nCmpt = 4;
+            const char* cmptNames[nCmpt] =
+            {
+                "type",
+                "mixture",
+                "properties",
+                "energy"
+            };
+
+            // Construct the name of the thermo package from the components
+            const word thermoTypeName
+            (
+                word(thermoTypeDict.lookup("type")) + '<'
+              + word(thermoTypeDict.lookup("mixture")) + '<'
+              + word(thermoTypeDict.lookup("properties")) + ','
+              + word(thermoTypeDict.lookup("energy")) + ">>"
+            );
 
-            FatalError<< exit(FatalError);
+            return lookupThermo<Thermo, Table>
+            (
+                thermoTypeDict,
+                tablePtr,
+                nCmpt,
+                cmptNames,
+                thermoTypeName
+            );
         }
+        else
+        {
+            const int nCmpt = 7;
+            const char* cmptNames[nCmpt] =
+            {
+                "type",
+                "mixture",
+                "transport",
+                "thermo",
+                "equationOfState",
+                "specie",
+                "energy"
+            };
+
+            // Construct the name of the thermo package from the components
+            const word thermoTypeName
+            (
+                word(thermoTypeDict.lookup("type")) + '<'
+              + word(thermoTypeDict.lookup("mixture")) + '<'
+              + word(thermoTypeDict.lookup("transport")) + '<'
+              + word(thermoTypeDict.lookup("thermo")) + '<'
+              + word(thermoTypeDict.lookup("equationOfState")) + '<'
+              + word(thermoTypeDict.lookup("specie")) + ">>,"
+              + word(thermoTypeDict.lookup("energy")) + ">>>"
+            );
 
-        return cstrIter;
+            return lookupThermo<Thermo, Table>
+            (
+                thermoTypeDict,
+                tablePtr,
+                nCmpt,
+                cmptNames,
+                thermoTypeName
+            );
+        }
     }
     else
     {
-        thermoTypeName = word(thermoDict.lookup("thermoType"));
+        const word thermoTypeName(thermoDict.lookup("thermoType"));
 
         Info<< "Selecting thermodynamics package " << thermoTypeName << endl;
 
diff --git a/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
new file mode 100644
index 00000000000..c023c506838
--- /dev/null
+++ b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
@@ -0,0 +1,91 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "rhoThermo.H"
+#include "heRhoThermo.H"
+#include "pureMixture.H"
+#include "thermo.H"
+#include "sensibleEnthalpy.H"
+#include "sensibleInternalEnergy.H"
+
+#include "thermophysicalPropertiesSelector.H"
+#include "liquidProperties.H"
+
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
+
+typedef heRhoThermo
+<
+    rhoThermo,
+    pureMixture
+    <
+        species::thermo
+        <
+            thermophysicalPropertiesSelector<liquidProperties>,
+            sensibleInternalEnergy
+        >
+    >
+> heRhoThermopureMixtureliquidProperties;
+
+defineTemplateTypeNameAndDebugWithName
+(
+    heRhoThermopureMixtureliquidProperties,
+    "heRhoThermo<pureMixture<liquid,sensibleInternalEnergy>>",
+    0
+);
+
+addToRunTimeSelectionTable
+(
+    basicThermo,
+    heRhoThermopureMixtureliquidProperties,
+    fvMesh
+);
+
+addToRunTimeSelectionTable
+(
+    fluidThermo,
+    heRhoThermopureMixtureliquidProperties,
+    fvMesh
+);
+
+addToRunTimeSelectionTable
+(
+    rhoThermo,
+    heRhoThermopureMixtureliquidProperties,
+    fvMesh
+);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.C
index 634007fc1db..eb211a946f2 100644
--- a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.C
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/H2O/H2O.C
@@ -31,8 +31,6 @@ License
 namespace Foam
 {
     defineTypeNameAndDebug(H2O, 0);
-    addToRunTimeSelectionTable(thermophysicalProperties, H2O,);
-    addToRunTimeSelectionTable(thermophysicalProperties, H2O, dictionary);
     addToRunTimeSelectionTable(liquidProperties, H2O,);
     addToRunTimeSelectionTable(liquidProperties, H2O, dictionary);
 }
diff --git a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.H
index 939a80770a6..7df742adca5 100644
--- a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.H
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.H
@@ -85,7 +85,7 @@ class liquidProperties
 
 public:
 
-    TypeName("liquidProperties");
+    TypeName("liquid");
 
 
     // Declare run-time constructor selection tables
@@ -148,6 +148,15 @@ public:
     {}
 
 
+    // Static data
+
+        //- Is the equation of state is incompressible i.e. rho != f(p)
+        static const bool incompressible = true;
+
+        //- Is the equation of state is isochoric i.e. rho = const
+        static const bool isochoric = false;
+
+
     // Member Functions
 
         // Physical constants which define the specie
diff --git a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.H
index 652c81d8fd7..dce26f383e5 100644
--- a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.H
+++ b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidProperties.H
@@ -72,7 +72,7 @@ class solidProperties
 public:
 
     //- Runtime type information
-    TypeName("solidProperties");
+    TypeName("solid");
 
 
     // Declare run-time constructor selection tables
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H
index 98ec171a547..f44237ed709 100644
--- a/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalProperties.H
@@ -115,12 +115,6 @@ public:
             //- Molecular weight [kg/kmol]
             inline scalar W() const;
 
-            //- Is the equation of state is incompressible i.e. rho != f(p)
-            static const bool incompressible = true;
-
-            //- Is the equation of state is isochoric i.e. rho = const
-            static const bool isochoric = false;
-
             //- Limit the temperature to be in the range Tlow_ to Thigh_
             inline scalar limit(const scalar T) const;
 
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H
index b6c04e00624..87b99ce8e32 100644
--- a/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalProperties/thermophysicalPropertiesI.H
@@ -23,6 +23,8 @@ License
 
 \*---------------------------------------------------------------------------*/
 
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
 inline Foam::scalar Foam::thermophysicalProperties::limit(const scalar T) const
 {
     return T;
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.C b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.C
new file mode 100644
index 00000000000..59607a8160b
--- /dev/null
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.C
@@ -0,0 +1,61 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "thermophysicalPropertiesSelector.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class ThermophysicalProperties>
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::
+thermophysicalPropertiesSelector
+(
+    const word& name
+)
+:
+    propertiesPtr_(ThermophysicalProperties::New(name))
+{}
+
+
+template<class ThermophysicalProperties>
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::
+thermophysicalPropertiesSelector
+(
+    const dictionary& dict
+)
+{
+    const word name(dict.first()->keyword());
+
+    if (dict.isDict(name))
+    {
+        propertiesPtr_ = ThermophysicalProperties::New(dict.subDict(name));
+    }
+    else
+    {
+        propertiesPtr_ = ThermophysicalProperties::New(name);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
new file mode 100644
index 00000000000..690e4a95053
--- /dev/null
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
@@ -0,0 +1,154 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::thermophysicalPropertiesSelector
+
+Description
+    Wrapper class providing run-time selection of thermophysicalProperties
+    for the templated thermodynamics packages.
+
+SourceFiles
+    thermophysicalPropertiesSelectorI.H
+    thermophysicalPropertiesSelector.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef thermophysicalPropertiesSelector_H
+#define thermophysicalPropertiesSelector_H
+
+#include "thermophysicalProperties.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                    Class thermophysicalPropertiesSelector Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class ThermophysicalProperties>
+class thermophysicalPropertiesSelector
+{
+    // Private member data
+
+        autoPtr<ThermophysicalProperties> propertiesPtr_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct from name
+        thermophysicalPropertiesSelector(const word& name);
+
+        //- Construct from dictionary
+        thermophysicalPropertiesSelector(const dictionary& dict);
+
+
+    // Static data
+
+        //- Is the equation of state is incompressible i.e. rho != f(p)
+        static const bool incompressible =
+            ThermophysicalProperties::incompressible;
+
+        //- Is the equation of state is isochoric i.e. rho = const
+        static const bool isochoric =
+            ThermophysicalProperties::isochoric;
+
+
+    // Member Functions
+
+        // Physical constants which define the specie
+
+            //- Molecular weight [kg/kmol]
+            inline scalar W() const;
+
+            //- Limit the temperature to be in the range Tlow_ to Thigh_
+            inline scalar limit(const scalar T) const;
+
+
+        // Fundamental equation of state properties
+
+            //- Liquid density [kg/m^3]
+            inline scalar rho(scalar p, scalar T) const;
+
+            //- Liquid compressibility rho/p [s^2/m^2]
+            //  Note: currently it is assumed the liquid is incompressible
+            inline scalar psi(scalar p, scalar T) const;
+
+            //- Return (Cp - Cv) [J/(kg K]
+            //  Note: currently it is assumed the liquid is incompressible
+            //  so CpMCv 0
+            inline scalar CpMCv(scalar p, scalar T) const;
+
+
+        // Fundamental thermodynamic properties
+
+            //- Heat capacity at constant pressure [J/(kg K)]
+            inline scalar Cp(const scalar p, const scalar T) const;
+
+            //- Absolute Enthalpy [J/kg]
+            inline scalar Ha(const scalar p, const scalar T) const;
+
+            //- Sensible enthalpy [J/kg]
+            inline scalar Hs(const scalar p, const scalar T) const;
+
+            //- Chemical enthalpy [J/kg]
+            inline scalar Hc() const;
+
+            // Entropy [J/(kg K)]
+            inline scalar S(const scalar p, const scalar T) const;
+
+
+        // Physical properties
+
+            //- Liquid viscosity [Pa s]
+            inline scalar mu(scalar p, scalar T) const;
+
+            //- Liquid thermal conductivity  [W/(m K)]
+            inline scalar kappa(scalar p, scalar T) const;
+
+            //- Liquid thermal diffusivity of enthalpy [kg/ms]
+            inline scalar alphah(const scalar p, const scalar T) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "thermophysicalPropertiesSelectorI.H"
+
+#ifdef NoRepository
+    #include "thermophysicalPropertiesSelector.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
new file mode 100644
index 00000000000..870aa1dbed3
--- /dev/null
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
@@ -0,0 +1,175 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::W() const
+{
+    return propertiesPtr_->W();
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::limit
+(
+    const scalar T
+) const
+{
+    return propertiesPtr_->limit(T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::rho
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->rho(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::psi
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->psi(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::CpMCv
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->CpMCv(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::Cp
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->Cp(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::Ha
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->Ha(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::Hs
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->Hs(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::Hc() const
+{
+    return propertiesPtr_->Hc();
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::S
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->S(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::mu
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->mu(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::kappa
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->kappa(p, T);
+}
+
+
+template<class ThermophysicalProperties>
+inline Foam::scalar
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::alphah
+(
+    scalar p,
+    scalar T
+) const
+{
+    return propertiesPtr_->alphah(p, T);
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water
index 8c1db784a4e..8e896f49c6c 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties.water
@@ -15,6 +15,21 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    properties      liquid;
+    energy          sensibleInternalEnergy;
+}
+
+mixture
+{
+    H2O;
+}
+
+
+/*
 thermoType
 {
     type            heRhoThermo;
@@ -48,6 +63,7 @@ mixture
         Pr          2.289;
     }
 }
+*/
 
 
 // ************************************************************************* //
-- 
GitLab


From e5ecc28891e0213a8d310ef146f0db5aa98859dd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 20 Feb 2017 15:30:07 +0000
Subject: [PATCH 091/277] liquidMixtureProperties: Updated documentation

---
 .../liquidMixtureProperties.H                  | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
index 09f37540a8f..d726a93dce6 100644
--- a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidMixtureProperties/liquidMixtureProperties.H
@@ -31,17 +31,11 @@ Description
     \verbatim
         <parentDictionary>
         {
-            H2O
-            {
-                defaultCoeffs   yes;     // employ default coefficients
-            }
+            H2O; // employ default coefficients
+
             C7H16
             {
-                defaultCoeffs   no;
-                C7H16Coeffs
-                {
-                    ... user defined properties for C7H16
-                }
+                // ... user defined properties for C7H16
             }
         }
     \endverbatim
@@ -57,11 +51,9 @@ See also
 #ifndef liquidMixtureProperties_H
 #define liquidMixtureProperties_H
 
-#include "word.H"
-#include "scalarField.H"
-#include "PtrList.H"
 #include "liquidProperties.H"
-#include "autoPtr.H"
+#include "PtrList.H"
+#include "scalarField.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-- 
GitLab


From a06cd912d8b9884fdde9489c6170858a07b9f2bd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 20 Feb 2017 15:30:25 +0000
Subject: [PATCH 092/277] solidMixtureProperties: Updated documentation,
 removed unused functions and corrected remaining

---
 .../solidMixtureProperties.C                  | 31 ++++++------------
 .../solidMixtureProperties.H                  | 32 ++++++-------------
 2 files changed, 19 insertions(+), 44 deletions(-)

diff --git a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
index df9a4c1f0c4..18fa9faa738 100644
--- a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
+++ b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.C
@@ -88,40 +88,29 @@ Foam::autoPtr<Foam::solidMixtureProperties> Foam::solidMixtureProperties::New
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::scalarField Foam::solidMixtureProperties::X(const scalarField& Y) const
+Foam::scalar Foam::solidMixtureProperties::rho(const scalarField& Y) const
 {
-    scalarField X(Y.size());
-    scalar rhoInv = 0.0;
-    forAll(X, i)
-    {
-        rhoInv += Y[i]/properties_[i].rho();
-        X[i] = Y[i]/properties_[i].rho();
-    }
-
-    tmp<scalarField> tfld(X/rhoInv);
-    return tfld();
-}
-
+    scalar rrho = 0;
 
-Foam::scalar Foam::solidMixtureProperties::rho(const scalarField& X) const
-{
-    scalar val = 0.0;
     forAll(properties_, i)
     {
-        val += properties_[i].rho()*X[i];
+        rrho += Y[i]/properties_[i].rho();
     }
-    return val;
+
+    return 1/rrho;
 }
 
 
 Foam::scalar Foam::solidMixtureProperties::Cp(const scalarField& Y) const
 {
-    scalar val = 0.0;
+    scalar Cp = 0;
+
     forAll(properties_, i)
     {
-        val += properties_[i].Cp()*Y[i];
+        Cp += Y[i]*properties_[i].Cp();
     }
-    return val;
+
+    return Cp;
 }
 
 
diff --git a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.H b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
index 2d34f771b8d..a9cdfa732c2 100644
--- a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
+++ b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidMixtureProperties/solidMixtureProperties.H
@@ -31,17 +31,11 @@ Description
     \verbatim
         <parentDictionary>
         {
-            C
-            {
-                defaultCoeffs   yes;     // employ default coefficients
-            }
+            C;
+
             ash
             {
-                defaultCoeffs   no;
-                ashCoeffs
-                {
-                    ... user defined properties for ash
-                }
+                //... user defined properties for ash
             }
         }
     \endverbatim
@@ -58,10 +52,9 @@ See also
 #ifndef solidMixtureProperties_H
 #define solidMixtureProperties_H
 
-#include "scalarField.H"
-#include "PtrList.H"
 #include "solidProperties.H"
-#include "autoPtr.H"
+#include "PtrList.H"
+#include "scalarField.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -134,19 +127,12 @@ public:
             return components_.size();
         }
 
-
-        //- Returns the mass fractions, given mole fractions
-        scalarField Y(const scalarField& X) const;
-
-        //- Returns the mole fractions, given mass fractions
-        scalarField X(const scalarField& Y) const;
-
         //- Calculate the mixture density [kg/m^3] as a function of
-        //  volume fractions
-        scalar rho(const scalarField& X) const;
+        //  mass fractions
+        scalar rho(const scalarField& Y) const;
 
-        //- Calculate the mixture heat capacity [J/(kg K)] as a function
-        //  of mass fractions
+        //- Calculate the mixture heat capacity [J/(kg K)] as a function of
+        //  mass fractions
         scalar Cp(const scalarField& Y) const;
 };
 
-- 
GitLab


From bec7091e21c4290e538fdb2243704ef49bf43fb1 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 21 Feb 2017 11:59:49 +0000
Subject: [PATCH 093/277] chemkinToFoam: Increase the precision of the
 thermophysical coefficient written

---
 .../utilities/thermophysical/chemkinToFoam/chemkinToFoam.C   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C b/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C
index b919ecd88d8..ca34cdf0f61 100644
--- a/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C
+++ b/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,6 +42,9 @@ using namespace Foam;
 
 int main(int argc, char *argv[])
 {
+    // Increase the precision of the output for JANAF coefficients
+    Ostream::defaultPrecision(10);
+
     argList::validArgs.append("CHEMKINFile");
     argList::validArgs.append("CHEMKINThermodynamicsFile");
     argList::validArgs.append("CHEMKINTransport");
-- 
GitLab


From 5991e30fc17ea1d2a61272475d6067759fdf8630 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 22 Feb 2017 13:20:15 +0000
Subject: [PATCH 094/277] functionObjects::fieldCoordinateSystemTransform:
 added coordinateSystem sub-dict and updated the description

Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2454
---
 .../fieldCoordinateSystemTransform.C                |  4 ++--
 .../fieldCoordinateSystemTransform.H                | 13 +++++++++----
 .../postProcessingDict                              | 10 +++++++---
 .../coordinateRotation/coordinateRotationNew.C      |  4 +---
 4 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C b/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
index 4d16100f921..5a60ff859ee 100644
--- a/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
+++ b/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ fieldCoordinateSystemTransform
 :
     fvMeshFunctionObject(name, runTime, dict),
     fieldSet_(),
-    coordSys_(mesh_, dict)
+    coordSys_(mesh_, dict.subDict("coordinateSystem"))
 {
     read(dict);
 
diff --git a/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H b/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
index 2ad43e3ec67..c644bc0acc3 100644
--- a/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
+++ b/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,11 +45,16 @@ Description
             UMean
             UPrime2Mean
         );
+
         coordinateSystem
         {
-            origin  (0.001  0       0);
-            e1      (1      0.15    0);
-            e3      (0      0      -1);
+            origin  (0.001 0 0);
+            coordinateRotation
+            {
+                type        axesRotation;
+                e1      (1      0.15    0);
+                e3      (0      0      -1);
+            }
         }
     }
     \endverbatim
diff --git a/src/functionObjects/field/fieldCoordinateSystemTransform/postProcessingDict b/src/functionObjects/field/fieldCoordinateSystemTransform/postProcessingDict
index 72ab4a83292..32451af5f5d 100644
--- a/src/functionObjects/field/fieldCoordinateSystemTransform/postProcessingDict
+++ b/src/functionObjects/field/fieldCoordinateSystemTransform/postProcessingDict
@@ -40,9 +40,13 @@ functions
 
         coordinateSystem
         {
-            origin  (0.001  0       0);
-            e1      (1      0.15    0);
-            e3      (0      0      -1);
+            origin  (0 0 0);
+            coordinateRotation
+            {
+                type    axesRotation;
+                e1      (1  0.15  0);
+                e3      (0  0    -1);
+            }
         }
     }
 }
diff --git a/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotationNew.C b/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotationNew.C
index 02b111038be..e595206f0d0 100644
--- a/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotationNew.C
+++ b/src/meshTools/coordinateSystems/coordinateRotation/coordinateRotationNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,6 @@ Foam::autoPtr<Foam::coordinateRotation> Foam::coordinateRotation::New
         )   << "Unknown coordinateRotation type "
             << rotType << nl << nl
             << "Valid coordinateRotation types are :" <<  nl
-            << "[default: axes ]"
             << dictionaryConstructorTablePtr_->sortedToc()
             << exit(FatalIOError);
     }
@@ -87,7 +86,6 @@ Foam::autoPtr<Foam::coordinateRotation> Foam::coordinateRotation::New
         )   << "Unknown coordinateRotation type "
             << rotType << nl << nl
             << "Valid coordinateRotation types are :" <<  nl
-            << "[default: axes ]"
             << dictionaryConstructorTablePtr_->sortedToc()
             << exit(FatalIOError);
     }
-- 
GitLab


From 12dd3c9c6b58dd63df4c99cbfc0d69eee25f6d15 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 22 Feb 2017 13:20:49 +0000
Subject: [PATCH 095/277] GeometricField: corrected assignment to tmp which
 wraps a non-tmp

---
 .../GeometricField/GeometricField.C           | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
index 91f4c9bf7cc..e1a56f957df 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -1164,11 +1164,18 @@ void Foam::GeometricField<Type, PatchField, GeoMesh>::operator=
 
     this->dimensions() = gf.dimensions();
 
-    // Transfer the storage from the tmp
-    primitiveFieldRef().transfer
-    (
-        const_cast<Field<Type>&>(gf.primitiveField())
-    );
+    if (tgf.isTmp())
+    {
+        // Transfer the storage from the tmp
+        primitiveFieldRef().transfer
+        (
+            const_cast<Field<Type>&>(gf.primitiveField())
+        );
+    }
+    else
+    {
+        primitiveFieldRef() = gf.primitiveField();
+    }
 
     boundaryFieldRef() = gf.boundaryField();
 
-- 
GitLab


From e5cc374d8ed68b94a3fa598886a6cb33042435fb Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 22 Feb 2017 15:34:13 +0000
Subject: [PATCH 096/277] MULES: Adjust limiter only at boundaries for which
 the field value is fixed

Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
---
 .../fvMatrices/solvers/MULES/CMULESTemplates.C        |  2 +-
 .../fvMatrices/solvers/MULES/MULESTemplates.C         | 11 ++++++++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
index 34ee43bede3..b9ffcc9bc4d 100644
--- a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
+++ b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
@@ -249,7 +249,7 @@ void Foam::MULES::limiterCorr
                 psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPNf[pFacei]);
             }
         }
-        else
+        else if (psiPf.fixesValue())
         {
             forAll(phiCorrPf, pFacei)
             {
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
index 743cb8eae5c..675e4a3bd66 100644
--- a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
+++ b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
@@ -195,6 +195,11 @@ void Foam::MULES::limiter
         MULEScontrols.lookupOrDefault<scalar>("smoothLimiter", 0)
     );
 
+    const scalar extremaCoeff
+    (
+        MULEScontrols.lookupOrDefault<scalar>("extremaCoeff", 0)
+    );
+
     const scalarField& psi0 = psi.oldTime();
 
     const labelUList& owner = mesh.owner();
@@ -286,7 +291,7 @@ void Foam::MULES::limiter
                 psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPNf[pFacei]);
             }
         }
-        else
+        else if (psiPf.fixesValue())
         {
             forAll(phiCorrPf, pFacei)
             {
@@ -316,8 +321,8 @@ void Foam::MULES::limiter
         }
     }
 
-    psiMaxn = min(psiMaxn, psiMax);
-    psiMinn = max(psiMinn, psiMin);
+    psiMaxn = min(psiMaxn + extremaCoeff*(psiMax - psiMin), psiMax);
+    psiMinn = max(psiMinn - extremaCoeff*(psiMax - psiMin), psiMin);
 
     if (smoothLimiter > SMALL)
     {
-- 
GitLab


From c393b268a51fd4cfb96738bb4badf43b58f040fd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 23 Feb 2017 12:03:50 +0000
Subject: [PATCH 097/277] MULES: Adjust limiter only at boundaries for which
 the field value is fixed

Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
---
 .../fvMatrices/solvers/MULES/CMULESTemplates.C         | 10 ++++++++++
 .../fvMatrices/solvers/MULES/MULESTemplates.C          | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
index b9ffcc9bc4d..e55889eaa36 100644
--- a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
+++ b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C
@@ -259,6 +259,16 @@ void Foam::MULES::limiterCorr
                 psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPf[pFacei]);
             }
         }
+        else
+        {
+            forAll(phiCorrPf, pFacei)
+            {
+                const label pfCelli = pFaceCells[pFacei];
+
+                psiMaxn[pfCelli] = max(psiMaxn[pfCelli], psiMax);
+                psiMinn[pfCelli] = min(psiMinn[pfCelli], psiMin);
+            }
+        }
 
         forAll(phiCorrPf, pFacei)
         {
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
index 675e4a3bd66..4ad56866257 100644
--- a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
+++ b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
@@ -301,6 +301,16 @@ void Foam::MULES::limiter
                 psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPf[pFacei]);
             }
         }
+        else
+        {
+            forAll(phiCorrPf, pFacei)
+            {
+                const label pfCelli = pFaceCells[pFacei];
+
+                psiMaxn[pfCelli] = max(psiMaxn[pfCelli], psiMax);
+                psiMinn[pfCelli] = min(psiMinn[pfCelli], psiMin);
+            }
+        }
 
         forAll(phiCorrPf, pFacei)
         {
-- 
GitLab


From a1c8cde310f48925143781a940811a5fca8a87c2 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 24 Feb 2017 11:18:01 +0000
Subject: [PATCH 098/277] rhoSimpleFoam: added support for compressible liquid
 flows

rhoSimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, e.g.

thermoType
{
    type            hePsiThermo;
    mixture         pureMixture;
    transport       sutherland;
    thermo          janaf;
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
}

instantiates a psiThermo for a perfect gas with JANAF thermodynamics, whereas

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    properties      liquid;
    energy          sensibleInternalEnergy;
}

mixture
{
    H2O;
}

instantiates a rhoThermo for water, see new tutorial
compressible/rhoSimpleFoam/squareBendLiq.

In order to support complex equations of state the pressure can no longer be
unlimited and rhoSimpleFoam now limits the pressure rather than the density to
handle start-up more robustly.

For backward compatibility 'rhoMin' and 'rhoMax' can still be used in the SIMPLE
sub-dictionary of fvSolution which are converted into 'pMax' and 'pMin' but it
is better to set either 'pMax' and 'pMin' directly or use the more convenient
'pMinFactor' and 'pMinFactor' from which 'pMax' and 'pMin' are calculated using
the fixed boundary pressure or reference pressure e.g.

SIMPLE
{
    nNonOrthogonalCorrectors 0;

    pMinFactor      0.1;
    pMaxFactor      1.5;

    transonic       yes;
    consistent      yes;

    residualControl
    {
        p               1e-3;
        U               1e-4;
        e               1e-3;
        "(k|epsilon|omega)" 1e-3;
    }
}
---
 .../compressible/rhoSimpleFoam/createFields.H |  33 +---
 .../solvers/compressible/rhoSimpleFoam/pEqn.H |  22 ++-
 .../compressible/rhoSimpleFoam/pcEqn.H        |  20 ++-
 .../rhoPorousSimpleFoam/createFields.H        |  44 +----
 .../rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H  |  15 +-
 .../rhoPorousSimpleFoam/rhoPorousSimpleFoam.C |   7 +-
 .../rhoSimpleFoam/rhoSimpleFoam.C             |   5 +-
 .../system/fvSchemes                          |   4 +-
 .../system/fvSolution                         |   6 +-
 .../CompressibleTurbulenceModel.H             |  15 +-
 .../TurbulenceModel/TurbulenceModel.H         |   6 +-
 src/finiteVolume/Make/files                   |   1 +
 .../general/findRefCell/findRefCell.C         |  14 +-
 .../general/findRefCell/findRefCell.H         |  10 +-
 .../general/pressureControl/pressureControl.C | 155 ++++++++++++++++++
 .../general/pressureControl/pressureControl.H | 108 ++++++++++++
 .../pressureControl/pressureControlI.H        |  40 +++++
 .../angledDuctExplicit/system/fvSolution      |   4 +-
 .../angledDuctImplicit/system/fvSolution      |   4 +-
 .../system/fvSolution                         |   4 +-
 .../squareBend/system/fvSolution              |   5 +-
 .../rhoSimpleFoam/squareBendLiq/0/T           |  42 +++++
 .../rhoSimpleFoam/squareBendLiq/0/U           |  42 +++++
 .../rhoSimpleFoam/squareBendLiq/0/alphat      |  43 +++++
 .../rhoSimpleFoam/squareBendLiq/0/epsilon     |  47 ++++++
 .../rhoSimpleFoam/squareBendLiq/0/k           |  44 +++++
 .../rhoSimpleFoam/squareBendLiq/0/nut         |  45 +++++
 .../rhoSimpleFoam/squareBendLiq/0/p           |  39 +++++
 .../constant/thermophysicalProperties         |  31 ++++
 .../constant/turbulenceProperties             |  30 ++++
 .../squareBendLiq/system/blockMeshDict        | 127 ++++++++++++++
 .../squareBendLiq/system/controlDict          |  51 ++++++
 .../squareBendLiq/system/decomposeParDict     |  45 +++++
 .../squareBendLiq/system/fvSchemes            |  59 +++++++
 .../squareBendLiq/system/fvSolution           |  71 ++++++++
 35 files changed, 1115 insertions(+), 123 deletions(-)
 create mode 100644 src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C
 create mode 100644 src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H
 create mode 100644 src/finiteVolume/cfdTools/general/pressureControl/pressureControlI.H
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes
 create mode 100644 tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution

diff --git a/applications/solvers/compressible/rhoSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
index e8c2ce6d548..4671347b66a 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
@@ -1,10 +1,10 @@
 Info<< "Reading thermophysical properties\n" << endl;
 
-autoPtr<psiThermo> pThermo
+autoPtr<fluidThermo> pThermo
 (
-    psiThermo::New(mesh)
+    fluidThermo::New(mesh)
 );
-psiThermo& thermo = pThermo();
+fluidThermo& thermo = pThermo();
 thermo.validate(args.executable(), "h", "e");
 
 volScalarField rho
@@ -38,35 +38,10 @@ volVectorField U
 
 #include "compressibleCreatePhi.H"
 
-
-label pRefCell = 0;
-scalar pRefValue = 0.0;
-setRefCell(p, simple.dict(), pRefCell, pRefValue);
+pressureControl pressureControl(p, rho, simple.dict());
 
 mesh.setFluxRequired(p.name());
 
-dimensionedScalar rhoMax
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMax",
-        simple.dict(),
-        dimDensity,
-        GREAT
-    )
-);
-
-dimensionedScalar rhoMin
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMin",
-        simple.dict(),
-        dimDensity,
-        0
-    )
-);
-
 Info<< "Creating turbulence model\n" << endl;
 autoPtr<compressible::turbulenceModel> turbulence
 (
diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
index e46f2a66913..06fa890c057 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
@@ -30,7 +30,11 @@
             // Relax the pressure equation to ensure diagonal-dominance
             pEqn.relax();
 
-            pEqn.setReference(pRefCell, pRefValue);
+            pEqn.setReference
+            (
+                pressureControl.refCell(),
+                pressureControl.refValue()
+            );
 
             pEqn.solve();
 
@@ -60,7 +64,11 @@
                 fvOptions(psi, p, rho.name())
             );
 
-            pEqn.setReference(pRefCell, pRefValue);
+            pEqn.setReference
+            (
+                pressureControl.refCell(),
+                pressureControl.refValue()
+            );
 
             pEqn.solve();
 
@@ -81,6 +89,8 @@
     U.correctBoundaryConditions();
     fvOptions.correct(U);
 
+    pressureControl.limit(p);
+
     // For closed-volume cases adjust the pressure and density levels
     // to obey overall mass continuity
     if (closedVolume)
@@ -89,16 +99,12 @@
             /fvc::domainIntegrate(psi);
     }
 
+    p.correctBoundaryConditions();
+
     rho = thermo.rho();
-    rho = max(rho, rhoMin);
-    rho = min(rho, rhoMax);
 
     if (!simple.transonic())
     {
         rho.relax();
     }
-
-    Info<< "rho max/min : "
-        << max(rho).value() << " "
-        << min(rho).value() << endl;
 }
diff --git a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
index 67b962f8050..0dbde829608 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
@@ -40,7 +40,11 @@ if (simple.transonic())
         // Relax the pressure equation to maintain diagonal dominance
         pEqn.relax();
 
-        pEqn.setReference(pRefCell, pRefValue);
+        pEqn.setReference
+        (
+            pressureControl.refCell(),
+            pressureControl.refValue()
+        );
 
         pEqn.solve();
 
@@ -75,7 +79,11 @@ else
             fvOptions(psi, p, rho.name())
         );
 
-        pEqn.setReference(pRefCell, pRefValue);
+        pEqn.setReference
+        (
+            pressureControl.refCell(),
+            pressureControl.refValue()
+        );
 
         pEqn.solve();
 
@@ -97,6 +105,8 @@ U = HbyA - rAtU*fvc::grad(p);
 U.correctBoundaryConditions();
 fvOptions.correct(U);
 
+pressureControl.limit(p);
+
 // For closed-volume cases adjust the pressure and density levels
 // to obey overall mass continuity
 if (closedVolume)
@@ -105,14 +115,12 @@ if (closedVolume)
         /fvc::domainIntegrate(psi);
 }
 
+p.correctBoundaryConditions();
+
 // Recalculate density from the relaxed pressure
 rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
 
 if (!simple.transonic())
 {
     rho.relax();
 }
-
-Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value() << endl;
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
index 5daef0c2de9..4671347b66a 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
@@ -1,10 +1,10 @@
 Info<< "Reading thermophysical properties\n" << endl;
 
-autoPtr<rhoThermo> pThermo
+autoPtr<fluidThermo> pThermo
 (
-    rhoThermo::New(mesh)
+    fluidThermo::New(mesh)
 );
-rhoThermo& thermo = pThermo();
+fluidThermo& thermo = pThermo();
 thermo.validate(args.executable(), "h", "e");
 
 volScalarField rho
@@ -38,46 +38,10 @@ volVectorField U
 
 #include "compressibleCreatePhi.H"
 
-
-label pRefCell = 0;
-scalar pRefValue = 0.0;
-setRefCell(p, simple.dict(), pRefCell, pRefValue);
+pressureControl pressureControl(p, rho, simple.dict());
 
 mesh.setFluxRequired(p.name());
 
-dimensionedScalar rhoMax
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMax",
-        simple.dict(),
-        dimDensity,
-        GREAT
-    )
-);
-
-dimensionedScalar rhoMin
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMin",
-        simple.dict(),
-        dimDensity,
-        0
-    )
-);
-
-dimensionedScalar pMin
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "pMin",
-        simple.dict(),
-        dimPressure,
-        10
-    )
-);
-
 Info<< "Creating turbulence model\n" << endl;
 autoPtr<compressible::turbulenceModel> turbulence
 (
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
index ca8725b4994..4167f80e599 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
@@ -48,7 +48,11 @@
 
         fvScalarMatrix& pEqn = tpEqn.ref();
 
-        pEqn.setReference(pRefCell, pRefValue);
+        pEqn.setReference
+        (
+            pressureControl.refCell(),
+            pressureControl.refValue()
+        );
 
         pEqn.solve();
 
@@ -75,6 +79,8 @@
     U.correctBoundaryConditions();
     fvOptions.correct(U);
 
+    pressureControl.limit(p);
+
     // For closed-volume cases adjust the pressure and density levels
     // to obey overall mass continuity
     if (closedVolume)
@@ -83,13 +89,6 @@
             /fvc::domainIntegrate(psi);
     }
 
-    p = max(p, pMin);
-
     rho = thermo.rho();
-    rho = max(rho, rhoMin);
-    rho = min(rho, rhoMax);
     rho.relax();
-    Info<< "rho max/min : "
-        << max(rho).value() << " "
-        << min(rho).value() << endl;
 }
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
index 6cca40e2c0d..29839274e8d 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,11 +31,12 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
-#include "rhoThermo.H"
+#include "fluidThermo.H"
 #include "turbulentFluidThermoModel.H"
+#include "simpleControl.H"
+#include "pressureControl.H"
 #include "fvOptions.H"
 #include "IOporosityModelList.H"
-#include "simpleControl.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
index 4a3cdf8e01a..200e620eef4 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,9 +30,10 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
-#include "psiThermo.H"
+#include "fluidThermo.H"
 #include "turbulentFluidThermoModel.H"
 #include "simpleControl.H"
+#include "pressureControl.H"
 #include "fvOptions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/etc/templates/compressibleInflowOutflow/system/fvSchemes b/etc/templates/compressibleInflowOutflow/system/fvSchemes
index 9986456cf79..ad7ca94ca6e 100644
--- a/etc/templates/compressibleInflowOutflow/system/fvSchemes
+++ b/etc/templates/compressibleInflowOutflow/system/fvSchemes
@@ -44,9 +44,9 @@ divSchemes
     div(phi,e)      $turbulence;
     div(phi,h)      $turbulence;
     div(phi,K)      $turbulence;
-    div(phi,Ekp)    $turbulence; 
+    div(phi,Ekp)    $turbulence;
 
-    div(phid,p)     bounded Gauss upwind;
+    div(phid,p)     Gauss upwind;
     div((phi|interpolate(rho)),p)  bounded Gauss upwind;
 
     div(((rho*nuEff)*dev2(T(grad(U)))))    Gauss linear;
diff --git a/etc/templates/compressibleInflowOutflow/system/fvSolution b/etc/templates/compressibleInflowOutflow/system/fvSolution
index 80579478d3b..d20f03588b6 100644
--- a/etc/templates/compressibleInflowOutflow/system/fvSolution
+++ b/etc/templates/compressibleInflowOutflow/system/fvSolution
@@ -43,8 +43,8 @@ SIMPLE
     }
 
     nNonOrthogonalCorrectors 0;
-    rhoMin          rhoMin [ 1 -3 0 0 0 ] 0.1;
-    rhoMax          rhoMax [ 1 -3 0 0 0 ] 1.5;
+    pMinFactor      0.1;
+    pMaxFactor      1.5;
 }
 
 relaxationFactors
@@ -56,7 +56,7 @@ relaxationFactors
     }
     equations
     {
-     	U               0.7;
+        U               0.7;
         "(e|h)"         0.7;
         "(k|epsilon|omega)" 0.7;
     }
diff --git a/src/TurbulenceModels/compressible/CompressibleTurbulenceModel/CompressibleTurbulenceModel.H b/src/TurbulenceModels/compressible/CompressibleTurbulenceModel/CompressibleTurbulenceModel.H
index 763303447ec..07b32950d78 100644
--- a/src/TurbulenceModels/compressible/CompressibleTurbulenceModel/CompressibleTurbulenceModel.H
+++ b/src/TurbulenceModels/compressible/CompressibleTurbulenceModel/CompressibleTurbulenceModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -115,6 +115,19 @@ public:
             return this->transport_.mu(patchi);
         }
 
+        //- Return the laminar viscosity
+        virtual tmp<volScalarField> nu() const
+        {
+            return this->transport_.mu()/this->rho_;
+        }
+
+        //- Return the laminar viscosity on patchi
+        virtual tmp<scalarField> nu(const label patchi) const
+        {
+            return
+                this->transport_.mu(patchi)/this->rho_.boundaryField()[patchi];
+        }
+
         //- Return the turbulence dynamic viscosity
         virtual tmp<volScalarField> mut() const
         {
diff --git a/src/TurbulenceModels/turbulenceModels/TurbulenceModel/TurbulenceModel.H b/src/TurbulenceModels/turbulenceModels/TurbulenceModel/TurbulenceModel.H
index bff236d4864..61e0ac3d7f7 100644
--- a/src/TurbulenceModels/turbulenceModels/TurbulenceModel/TurbulenceModel.H
+++ b/src/TurbulenceModels/turbulenceModels/TurbulenceModel/TurbulenceModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -158,13 +158,13 @@ public:
         }
 
         //- Return the laminar viscosity
-        tmp<volScalarField> nu() const
+        virtual tmp<volScalarField> nu() const
         {
             return transport_.nu();
         }
 
         //- Return the laminar viscosity on patchi
-        tmp<scalarField> nu(const label patchi) const
+        virtual tmp<scalarField> nu(const label patchi) const
         {
             return transport_.nu(patchi);
         }
diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files
index 2d7fbce1304..8f9122b58eb 100644
--- a/src/finiteVolume/Make/files
+++ b/src/finiteVolume/Make/files
@@ -402,6 +402,7 @@ $(general)/constrainHbyA/constrainHbyA.C
 $(general)/adjustPhi/adjustPhi.C
 $(general)/bound/bound.C
 $(general)/CorrectPhi/correctUphiBCs.C
+$(general)/pressureControl/pressureControl.C
 
 solutionControl = $(general)/solutionControl
 $(solutionControl)/solutionControl/solutionControl.C
diff --git a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
index 0d24e83a7bf..136fdda5959 100644
--- a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
+++ b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -27,7 +27,7 @@ License
 
 // * * * * * * * * * * * * * * * Global Functions  * * * * * * * * * * * * * //
 
-void Foam::setRefCell
+bool Foam::setRefCell
 (
     const volScalarField& field,
     const volScalarField& fieldRef,
@@ -109,11 +109,17 @@ void Foam::setRefCell
         }
 
         refValue = readScalar(dict.lookup(refValueName));
+
+        return true;
+    }
+    else
+    {
+        return false;
     }
 }
 
 
-void Foam::setRefCell
+bool Foam::setRefCell
 (
     const volScalarField& field,
     const dictionary& dict,
@@ -122,7 +128,7 @@ void Foam::setRefCell
     const bool forceReference
 )
 {
-    setRefCell(field, field, dict, refCelli, refValue, forceReference);
+    return setRefCell(field, field, dict, refCelli, refValue, forceReference);
 }
 
 
diff --git a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H
index 8a9d3d100a0..1532c718e78 100644
--- a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H
+++ b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,8 +46,8 @@ namespace Foam
 
 //- If the field fieldRef needs referencing find the reference cell nearest
 //  (in index) to the given cell looked-up for field, but which is not on a
-//  cyclic, symmetry or processor patch.
-void setRefCell
+//  cyclic, symmetry or processor patch and return true, otherwise return false.
+bool setRefCell
 (
     const volScalarField& field,
     const volScalarField& fieldRef,
@@ -59,8 +59,8 @@ void setRefCell
 
 //- If the field needs referencing find the reference cell nearest
 //  (in index) to the given cell looked-up for field, but which is not on a
-//  cyclic, symmetry or processor patch.
-void setRefCell
+//  cyclic, symmetry or processor patch and return true, otherwise return false.
+bool setRefCell
 (
     const volScalarField& field,
     const dictionary& dict,
diff --git a/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C
new file mode 100644
index 00000000000..101126a5e87
--- /dev/null
+++ b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C
@@ -0,0 +1,155 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "pressureControl.H"
+#include "findRefCell.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::pressureControl::pressureControl
+(
+    const volScalarField& p,
+    const volScalarField& rho,
+    const dictionary& dict
+)
+:
+    refCell_(0),
+    refValue_(0),
+    pMax_("pMax", dimPressure, 0),
+    pMin_("pMin", dimPressure, GREAT)
+{
+    if (setRefCell(p, dict, refCell_, refValue_))
+    {
+        pMax_.value() = refValue_;
+        pMin_.value() = refValue_;
+    }
+
+    const volScalarField::Boundary& pbf = p.boundaryField();
+    const volScalarField::Boundary& rhobf = rho.boundaryField();
+
+    scalar rhoRefMax = -GREAT;
+    scalar rhoRefMin = GREAT;
+    bool rhoLimits = false;
+
+    forAll(pbf, patchi)
+    {
+        if (pbf[patchi].fixesValue())
+        {
+            rhoLimits = true;
+
+            pMax_.value() = max(pMax_.value(), max(pbf[patchi]));
+            pMin_.value() = min(pMin_.value(), min(pbf[patchi]));
+
+            rhoRefMax = max(rhoRefMax, max(rhobf[patchi]));
+            rhoRefMin = min(rhoRefMin, min(rhobf[patchi]));
+        }
+    }
+
+    if (dict.found("pMax"))
+    {
+        pMax_.value() = readScalar(dict.lookup("pMax"));
+    }
+    else if (dict.found("pMaxFactor"))
+    {
+        const scalar pMaxFactor(readScalar(dict.lookup("pMaxFactor")));
+        pMax_ *= pMaxFactor;
+    }
+    else if (dict.found("rhoMax"))
+    {
+        // For backward-compatibility infer the pMax from rhoMax
+
+        IOWarningInFunction(dict)
+            << "'rhoMax' specified rather than 'pMax' or 'pMaxFactor'" << nl
+            << "    This is supported for backward-compatibility but "
+               "'pMax' or 'pMaxFactor' are more reliable." << endl;
+
+        if (!rhoLimits)
+        {
+            FatalIOErrorInFunction(dict)
+                << "'rhoMax' specified rather than 'pMaxFactor'" << nl
+                << "    but the corresponding reference density cannot"
+                   " be evaluated from the boundary conditions." << nl
+                << "Please specify 'pMaxFactor' rather than 'rhoMax'"
+                << exit(FatalError);
+        }
+
+        dimensionedScalar rhoMax("rhoMax", dimDensity, dict);
+
+        pMax_ *= max(rhoMax.value()/rhoRefMax, 1);
+    }
+
+    if (dict.found("pMin"))
+    {
+        pMin_.value() = readScalar(dict.lookup("pMin"));
+    }
+    else if (dict.found("pMinFactor"))
+    {
+        const scalar pMinFactor(readScalar(dict.lookup("pMinFactor")));
+        pMin_ *= pMinFactor;
+    }
+    else if (dict.found("rhoMin"))
+    {
+        // For backward-compatibility infer the pMin from rhoMin
+
+        IOWarningInFunction(dict)
+            << "'rhoMin' specified rather than 'pMin' or 'pMinFactor'" << nl
+            << "    This is supported for backward-compatibility but"
+               "'pMin' or 'pMinFactor' are more reliable." << endl;
+
+        if (!rhoLimits)
+        {
+            FatalIOErrorInFunction(dict)
+                << "'rhoMin' specified rather than 'pMinFactor'" << nl
+                << "    but the corresponding reference density cannot"
+                   " be evaluated from the boundary conditions." << nl
+                << "Please specify 'pMinFactor' rather than 'rhoMin'"
+                << exit(FatalError);
+        }
+
+        dimensionedScalar rhoMin("rhoMin", dimDensity, dict);
+
+        pMin_ *= min(rhoMin.value()/rhoRefMin, 1);
+    }
+
+    Info<< "pressureControl" << nl
+        << "    pMax/pMin " << pMax_.value() << " " << pMin_.value()
+        << nl << endl;
+}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+void Foam::pressureControl::limit(volScalarField& p) const
+{
+    Info<< "pressureControl: p max/min "
+        << max(p).value() << " "
+        << min(p).value() << endl;
+
+    p = max(p, pMin_);
+    p = min(p, pMax_);
+}
+
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H
new file mode 100644
index 00000000000..19bd053d430
--- /dev/null
+++ b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H
@@ -0,0 +1,108 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::pressureControl
+
+Description
+    Provides controls for the pressure reference is closed-volume simulations
+    and a general method for limiting the pressure during the startup of
+    steady-state simulations.
+
+SourceFiles
+    pressureControlI.H
+    pressureControl.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef pressureControl_H
+#define pressureControl_H
+
+#include "dimensionedScalar.H"
+#include "volFieldsFwd.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                         Class pressureControl Declaration
+\*---------------------------------------------------------------------------*/
+
+class pressureControl
+{
+    // Private data
+
+        //- Optional cell in which the reference pressure is set
+        label refCell_;
+
+        //- Optional pressure reference level
+        scalar refValue_;
+
+        //- Pressure lower-limit
+        dimensionedScalar pMax_;
+
+        //- Pressure upper-limit
+        dimensionedScalar pMin_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct from the SIMPLE/PIMPLE sub-dictionary
+        pressureControl
+        (
+            const volScalarField& p,
+            const volScalarField& rho,
+            const dictionary& dict
+        );
+
+
+    // Member Functions
+
+        //- Return the cell in which the reference pressure is set
+        inline label refCell() const;
+
+        //- Return the pressure reference level
+        inline scalar refValue() const;
+
+        //- Limit the pressure
+        void limit(volScalarField& p) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "pressureControlI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/cfdTools/general/pressureControl/pressureControlI.H b/src/finiteVolume/cfdTools/general/pressureControl/pressureControlI.H
new file mode 100644
index 00000000000..6548d43455d
--- /dev/null
+++ b/src/finiteVolume/cfdTools/general/pressureControl/pressureControlI.H
@@ -0,0 +1,40 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+inline Foam::label Foam::pressureControl::refCell() const
+{
+    return refCell_;
+}
+
+
+inline Foam::scalar Foam::pressureControl::refValue() const
+{
+    return refValue_;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution
index 9eee4c23fb0..4b7b15b9276 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution
@@ -54,8 +54,8 @@ solvers
 SIMPLE
 {
     nNonOrthogonalCorrectors 0;
-    rhoMin          0.5;
-    rhoMax          1.5;
+    pMinFactor      0.5;
+    pMaxFactor      1.5;
 
     residualControl
     {
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution
index 8699fd70954..421197bf139 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSolution
@@ -48,8 +48,8 @@ SIMPLE
 {
     nUCorrectors        2;
     nNonOrthogonalCorrectors 0;
-    rhoMin              0.5;
-    rhoMax              2.0;
+    pMinFactor          0.5;
+    pMaxFactor          2.0;
 
     residualControl
     {
diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution
index a054853c3ee..25619f1f3ff 100644
--- a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution
+++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/system/fvSolution
@@ -54,8 +54,8 @@ solvers
 SIMPLE
 {
     nNonOrthogonalCorrectors 0;
-    rhoMin          0.4;
-    rhoMax          1.5;
+    pMinFactor      0.4;
+    pMaxFactor      1.5;
 
     residualControl
     {
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution b/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution
index 3855d4cb054..2ffe1fe4be9 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution
+++ b/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution
@@ -39,8 +39,8 @@ solvers
 SIMPLE
 {
     nNonOrthogonalCorrectors 0;
-    rhoMin          0.1;
-    rhoMax          1.0;
+    pMinFactor      0.1;
+    pMaxFactor      1.5;
     transonic       yes;
     consistent      yes;
 
@@ -60,7 +60,6 @@ relaxationFactors
     fields
     {
         p               1;
-        rho             1;
     }
     equations
     {
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T
new file mode 100644
index 00000000000..2df93ba37ed
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T
@@ -0,0 +1,42 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      T;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 300;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            fixedValue;
+        value           uniform 350;
+    }
+
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U
new file mode 100644
index 00000000000..99e3c1d6354
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U
@@ -0,0 +1,42 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            noSlip;
+    }
+    inlet
+    {
+        type            flowRateInletVelocity;
+        massFlowRate    constant 5;
+        rhoInlet        1000;    // Guess for rho
+    }
+    outlet
+    {
+        type            inletOutlet;
+        value           uniform (0 0 0);
+        inletValue      uniform (0 0 0);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat
new file mode 100644
index 00000000000..3a6625042cc
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat
@@ -0,0 +1,43 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alphat;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           uniform 0;
+    }
+    inlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon
new file mode 100644
index 00000000000..71b9c782d16
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 200;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            epsilonWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 200;
+    }
+    inlet
+    {
+        type            turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.005;
+        value           uniform 200;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 200;
+        value           uniform 200;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k
new file mode 100644
index 00000000000..7ee52f8dbfb
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k
@@ -0,0 +1,44 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 1;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            kqRWallFunction;
+        value           uniform 1;
+    }
+    inlet
+    {
+        type            turbulentIntensityKineticEnergyInlet;
+        intensity       0.05;
+        value           uniform 1;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 1;
+        value           uniform 1;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut
new file mode 100644
index 00000000000..ac8d562f40e
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            nutkWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 0;
+    }
+    inlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p
new file mode 100644
index 00000000000..5e0d23f65fd
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p
@@ -0,0 +1,39 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 1e5;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            zeroGradient;
+    }
+    inlet
+    {
+        type            zeroGradient;
+    }
+    outlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties
new file mode 100644
index 00000000000..426ab721160
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties
@@ -0,0 +1,31 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    properties      liquid;
+    energy          sensibleInternalEnergy;
+}
+
+mixture
+{
+    H2O;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties
new file mode 100644
index 00000000000..cd2daf8229b
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties
@@ -0,0 +1,30 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  RAS;
+
+RAS
+{
+    RASModel        kEpsilon;
+
+    turbulence      on;
+
+    printCoeffs     on;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict
new file mode 100644
index 00000000000..9bec6a9547f
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict
@@ -0,0 +1,127 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 0.001;
+
+vertices
+(
+    // front-plane: z = +25mm
+    // inlet region
+    (   -50  25   25)           // pt 0
+    (     0  25   25)           // pt 1
+    (   -50  75   25)           // pt 2
+    (     0  75   25)           // pt 3
+    // outlet region
+    (  -500 -75   25)           // pt 4
+    (     0 -75   25)           // pt 5
+    (  -500 -25   25)           // pt 6
+    (     0 -25   25)           // pt 7
+    // bend mid-points
+    (    25   0   25)           // pt 8
+    (    75   0   25)           // pt 9
+    // back-plane: z = -25mm
+    // inlet region
+    (   -50  25   -25)          // pt 0 + 10
+    (     0  25   -25)          // pt 1 + 10
+    (   -50  75   -25)          // pt 2 + 10
+    (     0  75   -25)          // pt 3 + 10
+    // outlet region
+    (  -500 -75   -25)          // pt 4 + 10
+    (     0 -75   -25)          // pt 5 + 10
+    (  -500 -25   -25)          // pt 7 + 10
+    (     0 -25   -25)          // pt 8 + 10
+    // bend mid-points
+    (    25   0   -25)          // pt 8 + 10
+    (    75   0   -25)          // pt 9 + 10
+);
+
+blocks
+(
+    hex (0 1 11 10  2 3 13 12) inlet  ( 20 20 20)  simpleGrading (1 1 1)
+    hex (4 5 15 14  6 7 17 16) outlet (200 20 20)  simpleGrading (1 1 1)
+
+    hex (1 8 18 11  3 9 19 13) bend1  ( 30 20 20)  simpleGrading (1 1 1)
+    hex (5 9 19 15  7 8 18 17) bend2  ( 30 20 20)  simpleGrading (1 1 1)
+);
+
+edges
+(
+   // block 2
+   arc  1  8  ( 17.678  17.678  25)
+   arc 11 18  ( 17.678  17.678 -25)
+   arc  3  9  ( 53.033  53.033  25)
+   arc 13 19  ( 53.033  53.033 -25)
+   // block 3
+   arc  7  8  ( 17.678  -17.678  25)
+   arc 17 18  ( 17.678  -17.678 -25)
+   arc  5  9  ( 53.033  -53.033  25)
+   arc 15 19  ( 53.033  -53.033 -25)
+);
+
+boundary
+(
+        // is there no way of defining all my 'defaultFaces' to be 'wall'?
+    Default_Boundary_Region
+    {
+        type wall;
+        faces
+        (
+            // block0
+            ( 0 1 3 2 )
+            ( 11 10 12 13 )
+            ( 0 10 11 1 )
+            ( 2 3 13 12 )
+            // block1
+            ( 4 5 7 6 )
+            ( 15 14 16 17 )
+            ( 4 14 15 5 )
+            ( 6 7 17 16 )
+            // block2
+            ( 1 8 9 3 )
+            ( 18 11 13 19 )
+            ( 3 9 19 13 )
+            ( 1 11 18 8 )
+            // block3
+            ( 5 9 8 7 )
+            ( 19 15 17 18 )
+            ( 5 15 19 9 )
+            ( 7 8 18 17 )
+        );
+    }
+    inlet
+    {
+        type patch;
+        faces
+        (
+            (0 2 12 10)
+        );
+    }
+
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (4 6 16 14)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict
new file mode 100644
index 00000000000..edddd719e6e
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     rhoSimpleFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         500;
+
+deltaT          1;
+
+writeControl    timeStep;
+
+writeInterval   100;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+graphFormat     raw;
+
+runTimeModifiable true;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict
new file mode 100644
index 00000000000..9e844a62ba7
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 8;
+
+method          hierarchical;
+
+simpleCoeffs
+{
+    n               (8 1 1);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               (4 2 1);
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "";
+}
+
+distributed     no;
+
+roots           ( );
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes
new file mode 100644
index 00000000000..c68f548c95f
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes
@@ -0,0 +1,59 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default             steadyState;
+}
+
+gradSchemes
+{
+    default             Gauss linear;
+
+    limited             cellLimited Gauss linear 1;
+}
+
+divSchemes
+{
+    default             none;
+
+    div(phi,U)          bounded Gauss linearUpwind limited;
+    div(phi,e)          bounded Gauss linearUpwind limited;
+    div(phi,epsilon)    bounded Gauss linearUpwind limited;
+    div(phi,k)          bounded Gauss linearUpwind limited;
+    div(phi,Ekp)        bounded Gauss linearUpwind limited;
+
+    div(((rho*nuEff)*dev2(T(grad(U)))))      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution
new file mode 100644
index 00000000000..3b30d4ebe5b
--- /dev/null
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution
@@ -0,0 +1,71 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          GAMG;
+        smoother        GaussSeidel;
+
+        tolerance       1e-7;
+        relTol          0.1;
+    }
+
+    "(U|e|k|epsilon)"
+    {
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+
+        tolerance       1e-7;
+        relTol          0.1;
+    }
+}
+
+SIMPLE
+{
+    nNonOrthogonalCorrectors 0;
+    pMinFactor      0.1;
+    pMaxFactor      1.5;
+
+    transonic       no;
+    consistent      no;
+
+    residualControl
+    {
+        p               1e-4;
+        U               1e-4;
+        "(k|omega|epsilon|e|h)" 1e-3;
+    }
+}
+
+relaxationFactors
+{
+    fields
+    {
+        p               0.3;
+    }
+    equations
+    {
+        U               0.7;
+        e               0.7;
+        k               0.7;
+        epsilon         0.7;
+    }
+}
+
+// ************************************************************************* //
-- 
GitLab


From 7d6845defaa6f0840e68ebf239d024fa0d739127 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 24 Feb 2017 16:20:06 +0000
Subject: [PATCH 099/277] rhoSimpleFoam: Added support for transonic flow of
 liquids and real gases

Both stardard SIMPLE and the SIMPLEC (using the 'consistent' option in
fvSolution) are now supported for both subsonic and transonic flow of all
fluid types.
---
 .../solvers/compressible/rhoSimpleFoam/pEqn.H | 15 +++++++++------
 .../compressible/rhoSimpleFoam/pcEqn.H        | 19 +++++++++----------
 .../squareBend/system/fvSolution              |  2 +-
 3 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
index 06fa890c057..5f092ada2f6 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
@@ -8,20 +8,23 @@
 
     if (simple.transonic())
     {
+        surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
+        surfaceScalarField rhof(fvc::interpolate(rho));
+        MRF.makeRelative(rhof, phiHbyA);
+
         surfaceScalarField phid
         (
             "phid",
-            fvc::interpolate(psi)
-           *fvc::flux(HbyA)
+            (fvc::interpolate(psi)/rhof)*phiHbyA
         );
-
-        MRF.makeRelative(fvc::interpolate(psi), phid);
+        phiHbyA -= fvc::interpolate(p)*phid;
 
         while (simple.correctNonOrthogonal())
         {
             fvScalarMatrix pEqn
             (
-                fvm::div(phid, p)
+                fvc::div(phiHbyA)
+              + fvm::div(phid, p)
               - fvm::laplacian(rhorAUf, p)
               ==
                 fvOptions(psi, p, rho.name())
@@ -40,7 +43,7 @@
 
             if (simple.finalNonOrthogonalIter())
             {
-                phi == pEqn.flux();
+                phi = phiHbyA + pEqn.flux();
             }
         }
     }
diff --git a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
index 0dbde829608..af2005febd4 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
@@ -7,20 +7,19 @@ bool closedVolume = false;
 
 if (simple.transonic())
 {
+    surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
+    surfaceScalarField rhof(fvc::interpolate(rho));
+    MRF.makeRelative(rhof, phiHbyA);
+
     surfaceScalarField phid
     (
         "phid",
-        fvc::interpolate(psi)
-       *fvc::flux(HbyA)
+        (fvc::interpolate(psi)/rhof)*phiHbyA
     );
 
-    MRF.makeRelative(fvc::interpolate(psi), phid);
-
-    surfaceScalarField phic
-    (
-        "phic",
+    phiHbyA +=
         fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf()
-    );
+      - fvc::interpolate(p)*phid;
 
     HbyA -= (rAU - rAtU)*fvc::grad(p);
 
@@ -31,7 +30,7 @@ if (simple.transonic())
         fvScalarMatrix pEqn
         (
             fvm::div(phid, p)
-          + fvc::div(phic)
+          + fvc::div(phiHbyA)
           - fvm::laplacian(rhorAtU, p)
          ==
             fvOptions(psi, p, rho.name())
@@ -50,7 +49,7 @@ if (simple.transonic())
 
         if (simple.finalNonOrthogonalIter())
         {
-            phi == phic + pEqn.flux();
+            phi = phiHbyA + pEqn.flux();
         }
     }
 }
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution b/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution
index 2ffe1fe4be9..03707f600dd 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution
+++ b/tutorials/compressible/rhoSimpleFoam/squareBend/system/fvSolution
@@ -40,7 +40,7 @@ SIMPLE
 {
     nNonOrthogonalCorrectors 0;
     pMinFactor      0.1;
-    pMaxFactor      1.5;
+    pMaxFactor      2;
     transonic       yes;
     consistent      yes;
 
-- 
GitLab


From 7515ea755046f39604fe4cc7f2dc3e3d1add6f52 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 27 Feb 2017 09:39:46 +0000
Subject: [PATCH 100/277] reactingTwoPhaseEulerFoam::Lavieville: Corrected
 fLiquid function

Resolves bug-report https://bugs.openfoam.org/view.php?id=2477
---
 .../partitioningModels/Lavieville/Lavieville.C              | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/Lavieville/Lavieville.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/Lavieville/Lavieville.C
index 8feaaf8ca62..1963b114254 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/Lavieville/Lavieville.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/partitioningModels/Lavieville/Lavieville.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,13 +73,13 @@ Lavieville::fLiquid
 ) const
 {
     return
-        pos(alphaLiquid-alphaCrit_)
+        pos(alphaLiquid - alphaCrit_)
        *(
             1 - 0.5*exp(-20*(alphaLiquid - alphaCrit_))
         )
       + neg(alphaLiquid - alphaCrit_)
        *(
-            pow(0.5*(alphaLiquid/alphaCrit_), 20*alphaCrit_)
+            0.5*pow(alphaLiquid/alphaCrit_, 20*alphaCrit_)
         );
 }
 
-- 
GitLab


From 50516486a4c01de0303c866da3961a8de3cb06fa Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 28 Feb 2017 11:14:59 +0000
Subject: [PATCH 101/277] rhoPimpleFoam: Added support for transonic flow of
 liquids and real gases

Both stardard SIMPLE and the SIMPLEC (using the 'consistent' option in
fvSolution) are now supported for both subsonic and transonic flow of all
fluid types.

rhoPimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, see also commit a1c8cde310f48925143781a940811a5fca8a87c2
---
 .../compressible/rhoPimpleFoam/createFields.H |  28 +--
 .../solvers/compressible/rhoPimpleFoam/pEqn.H |  65 +++---
 .../compressible/rhoPimpleFoam/pcEqn.H        |  76 +++----
 .../rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H     |  64 +++---
 .../rhoPimpleDyMFoam/rhoPimpleDyMFoam.C       |  10 +-
 .../rhoPimpleFoam/rhoPimpleFoam.C             |   5 +-
 .../compressible/rhoSimpleFoam/createFields.H |   4 +-
 .../solvers/compressible/rhoSimpleFoam/pEqn.H |  18 +-
 .../compressible/rhoSimpleFoam/pcEqn.H        |  28 +--
 .../rhoPorousSimpleFoam/createFields.H        |  59 -----
 .../general/pressureControl/pressureControl.C | 212 ++++++++++++------
 .../general/pressureControl/pressureControl.H |   3 +-
 .../annularThermalMixer/system/fvSolution     |   5 +-
 .../LES/pitzDaily/system/fvSolution           |   5 +-
 .../constant/thermophysicalProperties         |   2 +-
 .../RAS/angledDuct/system/fvSchemes           |   3 +-
 .../RAS/angledDuct/system/fvSolution          |  14 +-
 .../RAS/angledDuctLTS/system/fvSolution       |   4 +-
 .../RAS/cavity/system/fvSolution              |   5 +-
 .../RAS/mixerVessel2D/system/fvSolution       |  15 +-
 .../helmholtzResonance/system/fvSolution      |   5 +-
 21 files changed, 291 insertions(+), 339 deletions(-)
 delete mode 100644 applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H

diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
index a7ee3eca457..84f70f2cd02 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
@@ -2,11 +2,11 @@
 
 Info<< "Reading thermophysical properties\n" << endl;
 
-autoPtr<psiThermo> pThermo
+autoPtr<fluidThermo> pThermo
 (
-    psiThermo::New(mesh)
+    fluidThermo::New(mesh)
 );
-psiThermo& thermo = pThermo();
+fluidThermo& thermo = pThermo();
 thermo.validate(args.executable(), "h", "e");
 
 volScalarField& p = thermo.p();
@@ -40,27 +40,7 @@ volVectorField U
 
 #include "compressibleCreatePhi.H"
 
-dimensionedScalar rhoMax
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMax",
-        pimple.dict(),
-        dimDensity,
-        GREAT
-    )
-);
-
-dimensionedScalar rhoMin
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMin",
-        pimple.dict(),
-        dimDensity,
-        0
-    )
-);
+pressureControl pressureControl(p, rho, pimple.dict(), false);
 
 Info<< "Creating turbulence model\n" << endl;
 autoPtr<compressible::turbulenceModel> turbulence
diff --git a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
index ac7107acf06..73ecafd89f8 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
@@ -1,8 +1,3 @@
-rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
-rho.relax();
-
 volScalarField rAU(1.0/UEqn.A());
 surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
 volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
@@ -12,55 +7,54 @@ if (pimple.nCorrPISO() <= 1)
     tUEqn.clear();
 }
 
+surfaceScalarField phiHbyA
+(
+    "phiHbyA",
+    (
+        fvc::flux(rho*HbyA)
+      + rhorAUf*fvc::ddtCorr(rho, U, phi)
+    )
+);
+
+MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+// Update the pressure BCs to ensure flux consistency
+constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
+
 if (pimple.transonic())
 {
     surfaceScalarField phid
     (
         "phid",
-        fvc::interpolate(psi)
-       *(
-            fvc::flux(HbyA)
-          + rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
-        )
+        (fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA
     );
-
-    MRF.makeRelative(fvc::interpolate(psi), phid);
+    phiHbyA -= fvc::interpolate(p)*phid;
 
     while (pimple.correctNonOrthogonal())
     {
         fvScalarMatrix pEqn
         (
             fvm::ddt(psi, p)
+          + fvc::div(phiHbyA)
           + fvm::div(phid, p)
           - fvm::laplacian(rhorAUf, p)
          ==
             fvOptions(psi, p, rho.name())
         );
 
+        // Relax the pressure equation to ensure diagonal-dominance
+        pEqn.relax();
+
         pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
 
         if (pimple.finalNonOrthogonalIter())
         {
-            phi == pEqn.flux();
+            phi = phiHbyA + pEqn.flux();
         }
     }
 }
 else
 {
-    surfaceScalarField phiHbyA
-    (
-        "phiHbyA",
-        (
-            fvc::flux(rho*HbyA)
-          + rhorAUf*fvc::ddtCorr(rho, U, phi)
-        )
-    );
-
-    MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
-
-    // Update the pressure BCs to ensure flux consistency
-    constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
-
     while (pimple.correctNonOrthogonal())
     {
         fvScalarMatrix pEqn
@@ -87,19 +81,20 @@ else
 // Explicitly relax pressure for momentum corrector
 p.relax();
 
-// Recalculate density from the relaxed pressure
-rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
-rho.relax();
-Info<< "rho max/min : " << max(rho).value()
-    << " " << min(rho).value() << endl;
-
 U = HbyA - rAU*fvc::grad(p);
 U.correctBoundaryConditions();
 fvOptions.correct(U);
 K = 0.5*magSqr(U);
 
+pressureControl.limit(p);
+p.correctBoundaryConditions();
+rho = thermo.rho();
+
+if (!pimple.transonic())
+{
+    rho.relax();
+}
+
 if (thermo.dpdt())
 {
     dpdt = fvc::ddt(p);
diff --git a/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H
index 713f443fc5d..afbc2851e4a 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H
@@ -1,8 +1,3 @@
-rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
-rho.relax();
-
 volScalarField rAU(1.0/UEqn.A());
 volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
 volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
@@ -12,72 +7,64 @@ if (pimple.nCorrPISO() <= 1)
     tUEqn.clear();
 }
 
+surfaceScalarField phiHbyA
+(
+    "phiHbyA",
+    (
+        fvc::flux(rho*HbyA)
+      + fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
+    )
+);
+
+MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+volScalarField rhorAtU("rhorAtU", rho*rAtU);
+
+// Update the pressure BCs to ensure flux consistency
+constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
+
 if (pimple.transonic())
 {
     surfaceScalarField phid
     (
         "phid",
-        fvc::interpolate(psi)
-       *(
-            fvc::flux(HbyA)
-          + fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
-           /fvc::interpolate(rho)
-        )
+        (fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA
     );
 
-    MRF.makeRelative(fvc::interpolate(psi), phid);
-
-    surfaceScalarField phic
-    (
-        "phic",
+    phiHbyA +=
         fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf()
-    );
+      - fvc::interpolate(p)*phid;
 
     HbyA -= (rAU - rAtU)*fvc::grad(p);
 
-    volScalarField rhorAtU("rhorAtU", rho*rAtU);
-
     while (pimple.correctNonOrthogonal())
     {
         fvScalarMatrix pEqn
         (
             fvm::ddt(psi, p)
+          + fvc::div(phiHbyA)
           + fvm::div(phid, p)
-          + fvc::div(phic)
           - fvm::laplacian(rhorAtU, p)
          ==
             fvOptions(psi, p, rho.name())
         );
 
+        // Relax the pressure equation to ensure diagonal-dominance
+        pEqn.relax();
+
         pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
 
         if (pimple.finalNonOrthogonalIter())
         {
-            phi == phic + pEqn.flux();
+            phi = phiHbyA + pEqn.flux();
         }
     }
 }
 else
 {
-    surfaceScalarField phiHbyA
-    (
-        "phiHbyA",
-        (
-            fvc::flux(rho*HbyA)
-          + fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
-        )
-    );
-
-    MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
-
     phiHbyA += fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf();
     HbyA -= (rAU - rAtU)*fvc::grad(p);
 
-    volScalarField rhorAtU("rhorAtU", rho*rAtU);
-
-    // Update the pressure BCs to ensure flux consistency
-    constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
-
     while (pimple.correctNonOrthogonal())
     {
         fvScalarMatrix pEqn
@@ -109,19 +96,16 @@ U.correctBoundaryConditions();
 fvOptions.correct(U);
 K = 0.5*magSqr(U);
 
-if (thermo.dpdt())
-{
-    dpdt = fvc::ddt(p);
-}
-
-// Recalculate density from the relaxed pressure
+pressureControl.limit(p);
+p.correctBoundaryConditions();
 rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
 
 if (!pimple.transonic())
 {
     rho.relax();
 }
 
-Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value() << endl;
+if (thermo.dpdt())
+{
+    dpdt = fvc::ddt(p);
+}
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H
index 7bd540df40d..0f855626189 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H
@@ -1,8 +1,3 @@
-rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
-rho.relax();
-
 volScalarField rAU(1.0/UEqn.A());
 surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
 volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
@@ -12,55 +7,53 @@ if (pimple.nCorrPISO() <= 1)
     tUEqn.clear();
 }
 
+surfaceScalarField phiHbyA
+(
+    "phiHbyA",
+    fvc::flux(rho*HbyA)
+  + rhorAUf*fvc::ddtCorr(rho, U, rhoUf)
+);
+
+fvc::makeRelative(phiHbyA, rho, U);
+MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+// Update the pressure BCs to ensure flux consistency
+constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
+
 if (pimple.transonic())
 {
     surfaceScalarField phid
     (
         "phid",
-        fvc::interpolate(psi)
-       *(
-            fvc::flux(HbyA)
-          + rhorAUf*fvc::ddtCorr(rho, U, rhoUf)/fvc::interpolate(rho)
-        )
+        (fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA
     );
-
-    fvc::makeRelative(phid, psi, U);
-    MRF.makeRelative(fvc::interpolate(psi), phid);
+    phiHbyA -= fvc::interpolate(p)*phid;
 
     while (pimple.correctNonOrthogonal())
     {
         fvScalarMatrix pEqn
         (
             fvm::ddt(psi, p)
+          + fvc::div(phiHbyA)
           + fvm::div(phid, p)
           - fvm::laplacian(rhorAUf, p)
          ==
             fvOptions(psi, p, rho.name())
         );
 
+        // Relax the pressure equation to ensure diagonal-dominance
+        pEqn.relax();
+
         pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
 
         if (pimple.finalNonOrthogonalIter())
         {
-            phi == pEqn.flux();
+            phi = phiHbyA + pEqn.flux();
         }
     }
 }
 else
 {
-    surfaceScalarField phiHbyA
-    (
-        "phiHbyA",
-        fvc::flux(rho*HbyA)
-      + rhorAUf*fvc::ddtCorr(rho, U, rhoUf)
-    );
-
-    fvc::makeRelative(phiHbyA, rho, U);
-    MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
-
-    // Update the pressure BCs to ensure flux consistency
-    constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
-
     while (pimple.correctNonOrthogonal())
     {
         // Pressure corrector
@@ -88,19 +81,20 @@ else
 // Explicitly relax pressure for momentum corrector
 p.relax();
 
-// Recalculate density from the relaxed pressure
-rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
-rho.relax();
-Info<< "rho max/min : " << max(rho).value()
-    << " " << min(rho).value() << endl;
-
 U = HbyA - rAU*fvc::grad(p);
 U.correctBoundaryConditions();
 fvOptions.correct(U);
 K = 0.5*magSqr(U);
 
+pressureControl.limit(p);
+p.correctBoundaryConditions();
+rho = thermo.rho();
+
+if (!pimple.transonic())
+{
+    rho.relax();
+}
+
 {
     rhoUf = fvc::interpolate(rho*U);
     surfaceVectorField n(mesh.Sf()/mesh.magSf());
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
index c7046bb9b40..1d20c3f10f7 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,10 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Application
-    rhoPimpleFoam
-
-Group
-    grpCompressibleSolvers grpMovingMeshSolvers
+    rhoPimpleDyMFoam
 
 Description
     Transient solver for turbulent flow of compressible fluids for HVAC and
@@ -38,10 +35,11 @@ Description
 
 #include "fvCFD.H"
 #include "dynamicFvMesh.H"
-#include "psiThermo.H"
+#include "fluidThermo.H"
 #include "turbulentFluidThermoModel.H"
 #include "bound.H"
 #include "pimpleControl.H"
+#include "pressureControl.H"
 #include "CorrectPhi.H"
 #include "fvOptions.H"
 #include "localEulerDdtScheme.H"
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
index 108ad9aa0e4..f30dae76a3b 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,10 +34,11 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
-#include "psiThermo.H"
+#include "fluidThermo.H"
 #include "turbulentFluidThermoModel.H"
 #include "bound.H"
 #include "pimpleControl.H"
+#include "pressureControl.H"
 #include "fvOptions.H"
 #include "localEulerDdtScheme.H"
 #include "fvcSmooth.H"
diff --git a/applications/solvers/compressible/rhoSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
index 4671347b66a..c7914f89d33 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
@@ -7,6 +7,8 @@ autoPtr<fluidThermo> pThermo
 fluidThermo& thermo = pThermo();
 thermo.validate(args.executable(), "h", "e");
 
+volScalarField& p = thermo.p();
+
 volScalarField rho
 (
     IOobject
@@ -20,8 +22,6 @@ volScalarField rho
     thermo.rho()
 );
 
-volScalarField& p = thermo.p();
-
 Info<< "Reading field U\n" << endl;
 volVectorField U
 (
diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
index 5f092ada2f6..c7edbb9e877 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
@@ -6,16 +6,18 @@
 
     bool closedVolume = false;
 
+    surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
+    MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+    // Update the pressure BCs to ensure flux consistency
+    constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
+
     if (simple.transonic())
     {
-        surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
-        surfaceScalarField rhof(fvc::interpolate(rho));
-        MRF.makeRelative(rhof, phiHbyA);
-
         surfaceScalarField phid
         (
             "phid",
-            (fvc::interpolate(psi)/rhof)*phiHbyA
+            (fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA
         );
         phiHbyA -= fvc::interpolate(p)*phid;
 
@@ -49,14 +51,8 @@
     }
     else
     {
-        surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
-        MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
-
         closedVolume = adjustPhi(phiHbyA, U, p);
 
-        // Update the pressure BCs to ensure flux consistency
-        constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
-
         while (simple.correctNonOrthogonal())
         {
             fvScalarMatrix pEqn
diff --git a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
index af2005febd4..c7dc0f864d2 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
@@ -5,16 +5,20 @@ tUEqn.clear();
 
 bool closedVolume = false;
 
+surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
+MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+volScalarField rhorAtU("rhorAtU", rho*rAtU);
+
+// Update the pressure BCs to ensure flux consistency
+constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
+
 if (simple.transonic())
 {
-    surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
-    surfaceScalarField rhof(fvc::interpolate(rho));
-    MRF.makeRelative(rhof, phiHbyA);
-
     surfaceScalarField phid
     (
         "phid",
-        (fvc::interpolate(psi)/rhof)*phiHbyA
+        (fvc::interpolate(psi)/fvc::interpolate(rho))*phiHbyA
     );
 
     phiHbyA +=
@@ -23,14 +27,12 @@ if (simple.transonic())
 
     HbyA -= (rAU - rAtU)*fvc::grad(p);
 
-    volScalarField rhorAtU("rhorAtU", rho*rAtU);
-
     while (simple.correctNonOrthogonal())
     {
         fvScalarMatrix pEqn
         (
-            fvm::div(phid, p)
-          + fvc::div(phiHbyA)
+            fvc::div(phiHbyA)
+          + fvm::div(phid, p)
           - fvm::laplacian(rhorAtU, p)
          ==
             fvOptions(psi, p, rho.name())
@@ -55,19 +57,11 @@ if (simple.transonic())
 }
 else
 {
-    surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
-    MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
-
     closedVolume = adjustPhi(phiHbyA, U, p);
 
     phiHbyA += fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf();
     HbyA -= (rAU - rAtU)*fvc::grad(p);
 
-    volScalarField rhorAtU("rhorAtU", rho*rAtU);
-
-    // Update the pressure BCs to ensure flux consistency
-    constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
-
     while (simple.correctNonOrthogonal())
     {
         fvScalarMatrix pEqn
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
deleted file mode 100644
index 4671347b66a..00000000000
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
+++ /dev/null
@@ -1,59 +0,0 @@
-Info<< "Reading thermophysical properties\n" << endl;
-
-autoPtr<fluidThermo> pThermo
-(
-    fluidThermo::New(mesh)
-);
-fluidThermo& thermo = pThermo();
-thermo.validate(args.executable(), "h", "e");
-
-volScalarField rho
-(
-    IOobject
-    (
-        "rho",
-        runTime.timeName(),
-        mesh,
-        IOobject::READ_IF_PRESENT,
-        IOobject::AUTO_WRITE
-    ),
-    thermo.rho()
-);
-
-volScalarField& p = thermo.p();
-
-Info<< "Reading field U\n" << endl;
-volVectorField U
-(
-    IOobject
-    (
-        "U",
-        runTime.timeName(),
-        mesh,
-        IOobject::MUST_READ,
-        IOobject::AUTO_WRITE
-    ),
-    mesh
-);
-
-#include "compressibleCreatePhi.H"
-
-pressureControl pressureControl(p, rho, simple.dict());
-
-mesh.setFluxRequired(p.name());
-
-Info<< "Creating turbulence model\n" << endl;
-autoPtr<compressible::turbulenceModel> turbulence
-(
-    compressible::turbulenceModel::New
-    (
-        rho,
-        U,
-        phi,
-        thermo
-    )
-);
-
-dimensionedScalar initialMass = fvc::domainIntegrate(rho);
-
-#include "createMRF.H"
diff --git a/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C
index 101126a5e87..aca22e76990 100644
--- a/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C
+++ b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.C
@@ -32,105 +32,171 @@ Foam::pressureControl::pressureControl
 (
     const volScalarField& p,
     const volScalarField& rho,
-    const dictionary& dict
+    const dictionary& dict,
+    const bool pRefRequired
 )
 :
-    refCell_(0),
+    refCell_(-1),
     refValue_(0),
     pMax_("pMax", dimPressure, 0),
     pMin_("pMin", dimPressure, GREAT)
 {
-    if (setRefCell(p, dict, refCell_, refValue_))
-    {
-        pMax_.value() = refValue_;
-        pMin_.value() = refValue_;
-    }
-
-    const volScalarField::Boundary& pbf = p.boundaryField();
-    const volScalarField::Boundary& rhobf = rho.boundaryField();
+    bool pLimits = false;
 
-    scalar rhoRefMax = -GREAT;
-    scalar rhoRefMin = GREAT;
-    bool rhoLimits = false;
-
-    forAll(pbf, patchi)
+    // Set the reference cell and value for closed domain simulations
+    if (pRefRequired && setRefCell(p, dict, refCell_, refValue_))
     {
-        if (pbf[patchi].fixesValue())
-        {
-            rhoLimits = true;
+        pLimits = true;
 
-            pMax_.value() = max(pMax_.value(), max(pbf[patchi]));
-            pMin_.value() = min(pMin_.value(), min(pbf[patchi]));
-
-            rhoRefMax = max(rhoRefMax, max(rhobf[patchi]));
-            rhoRefMin = min(rhoRefMin, min(rhobf[patchi]));
-        }
+        pMax_.value() = refValue_;
+        pMin_.value() = refValue_;
     }
 
-    if (dict.found("pMax"))
+    if (dict.found("pMax") && dict.found("pMin"))
     {
         pMax_.value() = readScalar(dict.lookup("pMax"));
+        pMin_.value() = readScalar(dict.lookup("pMin"));
     }
-    else if (dict.found("pMaxFactor"))
-    {
-        const scalar pMaxFactor(readScalar(dict.lookup("pMaxFactor")));
-        pMax_ *= pMaxFactor;
-    }
-    else if (dict.found("rhoMax"))
+    else
     {
-        // For backward-compatibility infer the pMax from rhoMax
+        const volScalarField::Boundary& pbf = p.boundaryField();
+        const volScalarField::Boundary& rhobf = rho.boundaryField();
 
-        IOWarningInFunction(dict)
-            << "'rhoMax' specified rather than 'pMax' or 'pMaxFactor'" << nl
-            << "    This is supported for backward-compatibility but "
-               "'pMax' or 'pMaxFactor' are more reliable." << endl;
+        scalar rhoRefMax = -GREAT;
+        scalar rhoRefMin = GREAT;
+        bool rhoLimits = false;
 
-        if (!rhoLimits)
+        forAll(pbf, patchi)
         {
-            FatalIOErrorInFunction(dict)
-                << "'rhoMax' specified rather than 'pMaxFactor'" << nl
-                << "    but the corresponding reference density cannot"
-                   " be evaluated from the boundary conditions." << nl
-                << "Please specify 'pMaxFactor' rather than 'rhoMax'"
-                << exit(FatalError);
-        }
+            if (pbf[patchi].fixesValue())
+            {
+                pLimits = true;
+                rhoLimits = true;
 
-        dimensionedScalar rhoMax("rhoMax", dimDensity, dict);
+                pMax_.value() = max(pMax_.value(), max(pbf[patchi]));
+                pMin_.value() = min(pMin_.value(), min(pbf[patchi]));
 
-        pMax_ *= max(rhoMax.value()/rhoRefMax, 1);
-    }
+                rhoRefMax = max(rhoRefMax, max(rhobf[patchi]));
+                rhoRefMin = min(rhoRefMin, min(rhobf[patchi]));
+            }
+        }
 
-    if (dict.found("pMin"))
-    {
-        pMin_.value() = readScalar(dict.lookup("pMin"));
-    }
-    else if (dict.found("pMinFactor"))
-    {
-        const scalar pMinFactor(readScalar(dict.lookup("pMinFactor")));
-        pMin_ *= pMinFactor;
-    }
-    else if (dict.found("rhoMin"))
-    {
-        // For backward-compatibility infer the pMin from rhoMin
+        reduce(rhoLimits, andOp<bool>());
+        if (rhoLimits)
+        {
+            reduce(pMax_.value(), maxOp<scalar>());
+            reduce(pMin_.value(), minOp<scalar>());
 
-        IOWarningInFunction(dict)
-            << "'rhoMin' specified rather than 'pMin' or 'pMinFactor'" << nl
-            << "    This is supported for backward-compatibility but"
-               "'pMin' or 'pMinFactor' are more reliable." << endl;
+            reduce(rhoRefMax, maxOp<scalar>());
+            reduce(rhoRefMin, minOp<scalar>());
+        }
 
-        if (!rhoLimits)
+        if (dict.found("pMax"))
         {
-            FatalIOErrorInFunction(dict)
-                << "'rhoMin' specified rather than 'pMinFactor'" << nl
-                << "    but the corresponding reference density cannot"
-                   " be evaluated from the boundary conditions." << nl
-                << "Please specify 'pMinFactor' rather than 'rhoMin'"
-                << exit(FatalError);
+            pMax_.value() = readScalar(dict.lookup("pMax"));
+        }
+        else if (dict.found("pMaxFactor"))
+        {
+            if (!pLimits)
+            {
+                FatalIOErrorInFunction(dict)
+                    << "'pMaxFactor' specified rather than 'pMax'" << nl
+                    << "    but the corresponding reference pressure cannot"
+                       " be evaluated from the boundary conditions." << nl
+                    << "    Please specify 'pMax' rather than 'pMaxFactor'"
+                    << exit(FatalIOError);
+            }
+
+            const scalar pMaxFactor(readScalar(dict.lookup("pMaxFactor")));
+            pMax_ *= pMaxFactor;
+        }
+        else if (dict.found("rhoMax"))
+        {
+            // For backward-compatibility infer the pMax from rhoMax
+
+            IOWarningInFunction(dict)
+                 << "'rhoMax' specified rather than 'pMax' or 'pMaxFactor'"
+                 << nl
+                 << "    This is supported for backward-compatibility but "
+                    "'pMax' or 'pMaxFactor' are more reliable." << endl;
+
+            if (!pLimits)
+            {
+                FatalIOErrorInFunction(dict)
+                    << "'rhoMax' specified rather than 'pMax'" << nl
+                    << "    but the corresponding reference pressure cannot"
+                       " be evaluated from the boundary conditions." << nl
+                    << "    Please specify 'pMax' rather than 'rhoMax'"
+                    << exit(FatalIOError);
+            }
+
+            if (!rhoLimits)
+            {
+                FatalIOErrorInFunction(dict)
+                    << "'rhoMax' specified rather than 'pMaxFactor'" << nl
+                    << "    but the corresponding reference density cannot"
+                       " be evaluated from the boundary conditions." << nl
+                    << "    Please specify 'pMaxFactor' rather than 'rhoMax'"
+                    << exit(FatalIOError);
+            }
+
+            dimensionedScalar rhoMax("rhoMax", dimDensity, dict);
+
+            pMax_ *= max(rhoMax.value()/rhoRefMax, 1);
         }
 
-        dimensionedScalar rhoMin("rhoMin", dimDensity, dict);
-
-        pMin_ *= min(rhoMin.value()/rhoRefMin, 1);
+        if (dict.found("pMin"))
+        {
+            pMin_.value() = readScalar(dict.lookup("pMin"));
+        }
+        else if (dict.found("pMinFactor"))
+        {
+            if (!pLimits)
+            {
+                FatalIOErrorInFunction(dict)
+                    << "'pMinFactor' specified rather than 'pMin'" << nl
+                    << "    but the corresponding reference pressure cannot"
+                       " be evaluated from the boundary conditions." << nl
+                    << "    Please specify 'pMin' rather than 'pMinFactor'"
+                    << exit(FatalIOError);
+            }
+
+            const scalar pMinFactor(readScalar(dict.lookup("pMinFactor")));
+            pMin_ *= pMinFactor;
+        }
+        else if (dict.found("rhoMin"))
+        {
+            // For backward-compatibility infer the pMin from rhoMin
+
+            IOWarningInFunction(dict)
+                << "'rhoMin' specified rather than 'pMin' or 'pMinFactor'" << nl
+                << "    This is supported for backward-compatibility but"
+                   "'pMin' or 'pMinFactor' are more reliable." << endl;
+
+            if (!pLimits)
+            {
+                FatalIOErrorInFunction(dict)
+                    << "'rhoMin' specified rather than 'pMin'" << nl
+                    << "    but the corresponding reference pressure cannot"
+                       " be evaluated from the boundary conditions." << nl
+                    << "    Please specify 'pMin' rather than 'rhoMin'"
+                    << exit(FatalIOError);
+            }
+
+            if (!rhoLimits)
+            {
+                FatalIOErrorInFunction(dict)
+                    << "'rhoMin' specified rather than 'pMinFactor'" << nl
+                    << "    but the corresponding reference density cannot"
+                       " be evaluated from the boundary conditions." << nl
+                    << "    Please specify 'pMinFactor' rather than 'rhoMin'"
+                    << exit(FatalIOError);
+            }
+
+            dimensionedScalar rhoMin("rhoMin", dimDensity, dict);
+
+            pMin_ *= min(rhoMin.value()/rhoRefMin, 1);
+        }
     }
 
     Info<< "pressureControl" << nl
diff --git a/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H
index 19bd053d430..61f510ac603 100644
--- a/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H
+++ b/src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H
@@ -76,7 +76,8 @@ public:
         (
             const volScalarField& p,
             const volScalarField& rho,
-            const dictionary& dict
+            const dictionary& dict,
+            const bool pRefRequired = true
         );
 
 
diff --git a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution
index 66786f37722..c771e4cfe36 100644
--- a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution
@@ -63,8 +63,9 @@ PIMPLE
     nOuterCorrectors    3;
     nCorrectors         1;
     nNonOrthogonalCorrectors 0;
-    rhoMin          0.5;
-    rhoMax          2.0;
+
+    pMaxFactor          1.2;
+    pMinFactor          0.8;
 }
 
 relaxationFactors
diff --git a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSolution
index 4eddb387211..b2dc2e505ef 100644
--- a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSolution
@@ -52,8 +52,9 @@ PIMPLE
     nOuterCorrectors 3;
     nCorrectors     1;
     nNonOrthogonalCorrectors 0;
-    rhoMin          0.5;
-    rhoMax          2.0;
+
+    pMinFactor      0.5;
+    pMaxFactor      2.0;
 }
 
 relaxationFactors
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
index 32542b344e4..7fc31fc96b5 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
@@ -23,7 +23,7 @@ thermoType
     thermo          hConst;
     equationOfState perfectGas;
     specie          specie;
-    energy          sensibleEnthalpy;
+    energy          sensibleInternalEnergy;
 }
 
 mixture
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSchemes
index 359d6ad3e11..c0522b83d6a 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSchemes
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSchemes
@@ -30,8 +30,9 @@ divSchemes
     default         none;
     div(phi,U)      Gauss upwind;
     div(phid,p)     Gauss upwind;
+    div(phiv,p)     Gauss linear;
     div(phi,K)      Gauss linear;
-    div(phi,h)      Gauss upwind;
+    div(phi,e)      Gauss upwind;
     div(phi,k)      Gauss upwind;
     div(phi,epsilon) Gauss upwind;
     div(phi,R)      Gauss upwind;
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSolution
index ff244067813..3c7d9238f77 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSolution
@@ -28,11 +28,10 @@ solvers
     pFinal
     {
         $p;
-        tolerance       1e-07;
         relTol          0;
     }
 
-    "(rho|U|h|k|epsilon|omega)"
+    "(rho|U|e|k|epsilon|omega)"
     {
         solver          smoothSolver;
         smoother        symGaussSeidel;
@@ -40,10 +39,9 @@ solvers
         relTol          0.1;
     }
 
-    "(rho|U|h|k|epsilon|omega)Final"
+    "(rho|U|e|k|epsilon|omega)Final"
     {
         $U;
-        tolerance       1e-06;
         relTol          0;
     }
 }
@@ -57,8 +55,8 @@ PIMPLE
     nNonOrthogonalCorrectors 0;
     consistent          yes;
 
-    rhoMin          0.4;
-    rhoMax          2.0;
+    pMaxFactor          1.5;
+    pMinFactor          0.9;
 
     residualControl
     {
@@ -76,13 +74,13 @@ relaxationFactors
 {
     fields
     {
-        "p.*"           0.9;
+        "p.*"           1;
         "rho.*"         1;
     }
     equations
     {
         "U.*"           0.9;
-        "h.*"           0.7;
+        "e.*"           0.7;
         "(k|epsilon|omega).*" 0.8;
     }
 }
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSolution
index 83e599258fd..8b4068e0d6a 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSolution
@@ -56,8 +56,8 @@ PIMPLE
     nCorrectors       1;
     nNonOrthogonalCorrectors 0;
 
-    rhoMin            0.5;
-    rhoMax            2.0;
+    pMaxFactor          1.5;
+    pMinFactor          0.9;
 
     maxCo             0.2;
     rDeltaTSmoothingCoeff 0.1;
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution
index e7c64b955d2..17ed812b9dd 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution
@@ -59,8 +59,9 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    rhoMin          0.5;
-    rhoMax          2.0;
+
+    pMax                1.2e5;
+    pMin                0.8e5;
 }
 
 
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSolution
index d4a55d13c47..02ea2958833 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSolution
@@ -84,14 +84,13 @@ solvers
 
 PIMPLE
 {
-    nOuterCorrectors 1;
-    nCorrectors     2;
-    nNonOrthogonalCorrectors 0;
-    momentumPredictor yes;
-    rhoMin          0.5;
-    rhoMax          2.0;
-    pRefCell        0;
-    pRefValue       1e5;
+    nOuterCorrectors    1;
+    nCorrectors         2;
+    nNonOrthogonalCorrectors  0;
+    momentumPredictor   yes;
+
+    pMax                1.2e5;
+    pMin                0.8e5;
 }
 
 relaxationFactors
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution
index 4eddb387211..b2dc2e505ef 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution
@@ -52,8 +52,9 @@ PIMPLE
     nOuterCorrectors 3;
     nCorrectors     1;
     nNonOrthogonalCorrectors 0;
-    rhoMin          0.5;
-    rhoMax          2.0;
+
+    pMinFactor      0.5;
+    pMaxFactor      2.0;
 }
 
 relaxationFactors
-- 
GitLab


From fe548839c519c06c8f0eccedca3ce34920c1b970 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 28 Feb 2017 11:27:28 +0000
Subject: [PATCH 102/277] tutorials/incompressible/pisoFoam/LES/motorBike:
 Removed unused $1 arguments to xargs

Resolves bug-report https://bugs.openfoam.org/view.php?id=2475
---
 .../incompressible/pisoFoam/LES/motorBike/lesFiles/Allrun   | 6 +++---
 .../incompressible/pisoFoam/LES/motorBike/motorBike/Allrun  | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/Allrun b/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/Allrun
index be0ad68bf8d..9f1f3fed03c 100755
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/Allrun
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/Allrun
@@ -7,9 +7,9 @@
 cp ../lesFiles/fvS* ../lesFiles/controlDict system/
 cp ../lesFiles/turbulenceProperties constant/
 
-ls -d processor* | xargs -I {} rm -rf ./{}/0 $1
-ls -d processor* | xargs -I {} mv ./{}/500 ./{}/0 $1
-ls -d processor* | xargs -I {} rm -rf ./{}/0/uniform $1
+ls -d processor* | xargs -I {} rm -rf ./{}/0
+ls -d processor* | xargs -I {} mv ./{}/500 ./{}/0
+ls -d processor* | xargs -I {} rm -rf ./{}/0/uniform
 
 runParallel pisoFoam
 
diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
index 5001dcaa3a2..f52cb0448a5 100755
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
@@ -19,7 +19,7 @@ runParallel snappyHexMesh -overwrite
 
 find . -type f -iname "*level*" -exec rm {} \;
 
-ls -d processor* | xargs -I {} cp -r 0.orig ./{}/0 $1
+ls -d processor* | xargs -I {} cp -r 0.orig ./{}/0
 
 runParallel renumberMesh -overwrite
 
-- 
GitLab


From 0723800d75c7f5a04dbe38243bcf16b6a7dcca4b Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 28 Feb 2017 20:08:38 +0000
Subject: [PATCH 103/277] PBiCGStab: Instantiate for symmetric and asymmetric
 matrices

PBiCGStab has proved more reliable than PCG for solving the pressure equation in
compressible systems.
---
 .../matrices/lduMatrix/solvers/PBiCGStab/PBiCGStab.C         | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCGStab/PBiCGStab.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCGStab/PBiCGStab.C
index f73bf0fbb6a..8fbbb57f240 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCGStab/PBiCGStab.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCGStab/PBiCGStab.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,6 +31,9 @@ namespace Foam
 {
     defineTypeNameAndDebug(PBiCGStab, 0);
 
+    lduMatrix::solver::addsymMatrixConstructorToTable<PBiCGStab>
+        addPBiCGStabSymMatrixConstructorToTable_;
+
     lduMatrix::solver::addasymMatrixConstructorToTable<PBiCGStab>
         addPBiCGStabAsymMatrixConstructorToTable_;
 }
-- 
GitLab


From 94c209c6d6bbc51139d3884a698e0c0a387dcfa1 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Mar 2017 22:03:29 +0000
Subject: [PATCH 104/277] CrankNicolsonDdtScheme, backwardDdtScheme: Ensure the
 V00 field is cached

---
 .../CrankNicolsonDdtScheme.C                  | 52 +++++++++----------
 .../CrankNicolsonDdtScheme.H                  | 10 +++-
 .../backwardDdtScheme/backwardDdtScheme.H     | 12 +++--
 3 files changed, 43 insertions(+), 31 deletions(-)

diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index 21e1ace876c..956898e4bd8 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -200,11 +200,11 @@ scalar CrankNicolsonDdtScheme<Type>::coef_
 {
     if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 0)
     {
-        return 1.0 + ocCoeff_;
+        return 1 + ocCoeff_;
     }
     else
     {
-        return 1.0;
+        return 1;
     }
 }
 
@@ -218,11 +218,11 @@ scalar CrankNicolsonDdtScheme<Type>::coef0_
 {
     if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 1)
     {
-        return 1.0 + ocCoeff_;
+        return 1 + ocCoeff_;
     }
     else
     {
-        return 1.0;
+        return 1;
     }
 }
 
@@ -256,7 +256,7 @@ tmp<GeoField> CrankNicolsonDdtScheme<Type>::offCentre_
     const GeoField& ddt0
 ) const
 {
-    if (ocCoeff_ < 1.0)
+    if (ocCoeff_ < 1)
     {
         return ocCoeff_*ddt0;
     }
@@ -368,7 +368,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -456,7 +456,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -546,7 +546,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -647,7 +647,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -773,7 +773,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
 
     fvMatrix<Type>& fvm = tfvm.ref();
 
-    scalar rDtCoef = rDtCoef_(ddt0).value();
+    const scalar rDtCoef = rDtCoef_(ddt0).value();
     fvm.diag() = rDtCoef*mesh().V();
 
     vf.oldTime().oldTime();
@@ -782,7 +782,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -855,7 +855,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
     );
     fvMatrix<Type>& fvm = tfvm.ref();
 
-    scalar rDtCoef = rDtCoef_(ddt0).value();
+    const scalar rDtCoef = rDtCoef_(ddt0).value();
     fvm.diag() = rDtCoef*rho.value()*mesh().V();
 
     vf.oldTime().oldTime();
@@ -864,7 +864,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -937,7 +937,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
     );
     fvMatrix<Type>& fvm = tfvm.ref();
 
-    scalar rDtCoef = rDtCoef_(ddt0).value();
+    const scalar rDtCoef = rDtCoef_(ddt0).value();
     fvm.diag() = rDtCoef*rho.primitiveField()*mesh().V();
 
     vf.oldTime().oldTime();
@@ -947,7 +947,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -1028,7 +1028,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
     );
     fvMatrix<Type>& fvm = tfvm.ref();
 
-    scalar rDtCoef = rDtCoef_(ddt0).value();
+    const scalar rDtCoef = rDtCoef_(ddt0).value();
     fvm.diag() = rDtCoef*alpha.primitiveField()*rho.primitiveField()*mesh().V();
 
     vf.oldTime().oldTime();
@@ -1039,7 +1039,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
     {
         if (evaluate(ddt0))
         {
-            scalar rDtCoef0 = rDtCoef0_(ddt0).value();
+            const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
 
             ddt0.primitiveFieldRef() =
             (
@@ -1124,14 +1124,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
     DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
         ddt0_<GeometricField<Type, fvPatchField, volMesh>>
         (
-            "ddt0(" + U.name() + ')',
+            "ddtCorrDdt0(" + U.name() + ')',
             U.dimensions()
         );
 
     DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh>>& dUfdt0 =
         ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh>>
         (
-            "ddt0(" + Uf.name() + ')',
+            "ddtCorrDdt0(" + Uf.name() + ')',
             Uf.dimensions()
         );
 
@@ -1185,14 +1185,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
     DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
         ddt0_<GeometricField<Type, fvPatchField, volMesh>>
         (
-            "ddt0(" + U.name() + ')',
+            "ddtCorrDdt0(" + U.name() + ')',
             U.dimensions()
         );
 
     DDt0Field<fluxFieldType>& dphidt0 =
         ddt0_<fluxFieldType>
         (
-            "ddt0(" + phi.name() + ')',
+            "ddtCorrDdt0(" + phi.name() + ')',
             phi.dimensions()
         );
 
@@ -1254,14 +1254,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
         DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
             ddt0_<GeometricField<Type, fvPatchField, volMesh>>
             (
-                "ddt0(" + rho.name() + ',' + U.name() + ')',
+                "ddtCorrDdt0(" + rho.name() + ',' + U.name() + ')',
                 U.dimensions()
             );
 
         DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh>>& dUfdt0 =
             ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh>>
             (
-                "ddt0(" + Uf.name() + ')',
+                "ddtCorrDdt0(" + Uf.name() + ')',
                 Uf.dimensions()
             );
 
@@ -1349,14 +1349,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
         DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
             ddt0_<GeometricField<Type, fvPatchField, volMesh>>
             (
-                "ddt0(" + rho.name() + ',' + U.name() + ')',
+                "ddtCorrDdt0(" + rho.name() + ',' + U.name() + ')',
                 U.dimensions()
             );
 
         DDt0Field<fluxFieldType>& dphidt0 =
             ddt0_<fluxFieldType>
             (
-                "ddt0(" + phi.name() + ')',
+                "ddtCorrDdt0(" + phi.name() + ')',
                 phi.dimensions()
             );
 
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
index 62d6778f0c9..42fc3328ccb 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -198,7 +198,10 @@ public:
         :
             ddtScheme<Type>(mesh),
             ocCoeff_(1.0)
-        {}
+        {
+            // Ensure the old-old-time cell volumes are available
+            mesh.V00();
+        }
 
         //- Construct from mesh and Istream
         CrankNicolsonDdtScheme(const fvMesh& mesh, Istream& is)
@@ -215,6 +218,9 @@ public:
                     << " should be >= 0 and <= 1"
                     << exit(FatalIOError);
             }
+
+            // Ensure the old-old-time cell volumes are available
+            mesh.V00();
         }
 
 
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H
index 0833cda7a4b..0b9c82b6dc4 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,13 +89,19 @@ public:
         backwardDdtScheme(const fvMesh& mesh)
         :
             ddtScheme<Type>(mesh)
-        {}
+        {
+            // Ensure the old-old-time cell volumes are available
+            mesh.V00();
+        }
 
         //- Construct from mesh and Istream
         backwardDdtScheme(const fvMesh& mesh, Istream& is)
         :
             ddtScheme<Type>(mesh, is)
-        {}
+        {
+            // Ensure the old-old-time cell volumes are available
+            mesh.V00();
+        }
 
 
     // Member Functions
-- 
GitLab


From 9b7a4accdab68bfe60f7a21d21f7a3e8d3295edb Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Mar 2017 22:04:41 +0000
Subject: [PATCH 105/277] GAMGSolverScale: minor update

---
 .../matrices/lduMatrix/solvers/GAMG/GAMGSolverScale.C         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverScale.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverScale.C
index b81455ff4b7..62ff267fa35 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverScale.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverScale.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,7 +60,7 @@ void Foam::GAMGSolver::scale
     vector2D scalingVector(scalingFactorNum, scalingFactorDenom);
     A.mesh().reduce(scalingVector, sumOp<vector2D>());
 
-    scalar sf = scalingVector.x()/stabilise(scalingVector.y(), VSMALL);
+    const scalar sf = scalingVector.x()/stabilise(scalingVector.y(), VSMALL);
 
     if (debug >= 2)
     {
-- 
GitLab


From 093ede5d3276fe0cd49d9169fbba859b7d92f721 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 3 Mar 2017 22:05:24 +0000
Subject: [PATCH 106/277] CorrectPhi: only use the "Final" tolerance for the
 last non-orthogonal iteration

---
 .../cfdTools/general/CorrectPhi/CorrectPhi.C        | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C b/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C
index f0fd91f4bae..fa4164c1b34 100644
--- a/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C
+++ b/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -102,7 +102,11 @@ void Foam::CorrectPhi
         );
 
         pcorrEqn.setReference(0, 0);
-        pcorrEqn.solve();
+
+        pcorrEqn.solve
+        (
+            mesh.solver(pcorr.select(pimple.finalNonOrthogonalIter()))
+        );
 
         if (pimple.finalNonOrthogonalIter())
         {
@@ -174,7 +178,10 @@ void Foam::CorrectPhi
             divRhoU
         );
 
-        pcorrEqn.solve();
+        pcorrEqn.solve
+        (
+            mesh.solver(pcorr.select(pimple.finalNonOrthogonalIter()))
+        );
 
         if (pimple.finalNonOrthogonalIter())
         {
-- 
GitLab


From 86dc955605ba220251d4c2e85bf5008aad3babf6 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 6 Mar 2017 17:34:10 +0000
Subject: [PATCH 107/277] interFoam family of solvers: Improved Crank-Nicolson
 implementation

Fewer limiter iterations are now required to obtain sufficient boundedness and
restart is more consistent.
---
 .../solvers/multiphase/VoF/alphaEqn.H         | 84 ++++++++++---------
 .../multiphase/VoF/createAlphaFluxes.H        | 20 +++++
 .../compressibleInterDyMFoam.C                |  1 +
 .../compressibleInterFoam.C                   |  1 +
 .../compressibleInterFoam/createFields.H      | 17 ----
 .../multiphase/interFoam/createFields.H       | 17 ----
 .../interFoam/interDyMFoam/interDyMFoam.C     |  1 +
 .../solvers/multiphase/interFoam/interFoam.C  |  1 +
 .../CrankNicolsonDdtScheme.C                  |  4 +-
 9 files changed, 70 insertions(+), 76 deletions(-)
 create mode 100644 applications/solvers/multiphase/VoF/createAlphaFluxes.H

diff --git a/applications/solvers/multiphase/VoF/alphaEqn.H b/applications/solvers/multiphase/VoF/alphaEqn.H
index 570442a3049..abae00fb385 100644
--- a/applications/solvers/multiphase/VoF/alphaEqn.H
+++ b/applications/solvers/multiphase/VoF/alphaEqn.H
@@ -2,46 +2,57 @@
     word alphaScheme("div(phi,alpha)");
     word alpharScheme("div(phirb,alpha)");
 
-    tmp<fv::ddtScheme<scalar>> ddtAlpha
-    (
-        fv::ddtScheme<scalar>::New
-        (
-            mesh,
-            mesh.ddtScheme("ddt(alpha)")
-        )
-    );
-
     // Set the off-centering coefficient according to ddt scheme
     scalar ocCoeff = 0;
-    if
-    (
-        isType<fv::EulerDdtScheme<scalar>>(ddtAlpha())
-     || isType<fv::localEulerDdtScheme<scalar>>(ddtAlpha())
-    )
     {
-        ocCoeff = 0;
-    }
-    else if (isType<fv::CrankNicolsonDdtScheme<scalar>>(ddtAlpha()))
-    {
-        if (nAlphaSubCycles > 1)
+        tmp<fv::ddtScheme<scalar>> tddtAlpha
+        (
+            fv::ddtScheme<scalar>::New
+            (
+                mesh,
+                mesh.ddtScheme("ddt(alpha)")
+            )
+        );
+        const fv::ddtScheme<scalar>& ddtAlpha = tddtAlpha();
+
+        if
+        (
+            isType<fv::EulerDdtScheme<scalar>>(ddtAlpha)
+         || isType<fv::localEulerDdtScheme<scalar>>(ddtAlpha)
+        )
+        {
+            ocCoeff = 0;
+        }
+        else if (isType<fv::CrankNicolsonDdtScheme<scalar>>(ddtAlpha))
+        {
+            if (nAlphaSubCycles > 1)
+            {
+                FatalErrorInFunction
+                    << "Sub-cycling is not supported "
+                       "with the CrankNicolson ddt scheme"
+                    << exit(FatalError);
+            }
+
+            if
+            (
+                alphaRestart
+             || mesh.time().timeIndex() > mesh.time().startTimeIndex() + 1
+            )
+            {
+                ocCoeff =
+                    refCast<const fv::CrankNicolsonDdtScheme<scalar>>(ddtAlpha)
+                   .ocCoeff();
+            }
+        }
+        else
         {
             FatalErrorInFunction
-                << "Sub-cycling is not supported "
-                   "with the CrankNicolson ddt scheme"
+                << "Only Euler and CrankNicolson ddt schemes are supported"
                 << exit(FatalError);
         }
-
-        ocCoeff =
-            refCast<const fv::CrankNicolsonDdtScheme<scalar>>(ddtAlpha())
-           .ocCoeff();
-    }
-    else
-    {
-        FatalErrorInFunction
-            << "Only Euler and CrankNicolson ddt schemes are supported"
-            << exit(FatalError);
     }
 
+    // Set the time blending factor, 1 for Euler
     scalar cnCoeff = 1.0/(1.0 + ocCoeff);
 
     // Standard face-flux compression coefficient
@@ -136,8 +147,8 @@
         (
             fvc::flux
             (
-                phi,
-                alpha1,
+                phiCN(),
+                cnCoeff*alpha1 + (1.0 - cnCoeff)*alpha1.oldTime(),
                 alphaScheme
             )
           + fvc::flux
@@ -148,13 +159,6 @@
             )
         );
 
-        // Calculate the Crank-Nicolson off-centred alpha flux
-        if (ocCoeff > 0)
-        {
-            talphaPhiUn =
-                cnCoeff*talphaPhiUn + (1.0 - cnCoeff)*alphaPhi.oldTime();
-        }
-
         if (MULESCorr)
         {
             tmp<surfaceScalarField> talphaPhiCorr(talphaPhiUn() - alphaPhi);
diff --git a/applications/solvers/multiphase/VoF/createAlphaFluxes.H b/applications/solvers/multiphase/VoF/createAlphaFluxes.H
new file mode 100644
index 00000000000..e75c2fe0b0d
--- /dev/null
+++ b/applications/solvers/multiphase/VoF/createAlphaFluxes.H
@@ -0,0 +1,20 @@
+IOobject alphaPhiHeader
+(
+    "alphaPhi",
+    runTime.timeName(),
+    mesh,
+    IOobject::READ_IF_PRESENT,
+    IOobject::AUTO_WRITE
+);
+
+const bool alphaRestart = alphaPhiHeader.headerOk();
+
+// MULES flux from previous time-step
+surfaceScalarField alphaPhi
+(
+    alphaPhiHeader,
+    phi*fvc::interpolate(alpha1)
+);
+
+// MULES Correction
+tmp<surfaceScalarField> talphaPhiCorr0;
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index f82665a49e4..896af439af9 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
@@ -64,6 +64,7 @@ int main(int argc, char *argv[])
     #include "initContinuityErrs.H"
     #include "createControl.H"
     #include "createFields.H"
+    #include "createAlphaFluxes.H"
     #include "createFvOptions.H"
     #include "createUf.H"
     #include "createControls.H"
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
index f6ec5d20cd2..ce6446d0e1d 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
@@ -61,6 +61,7 @@ int main(int argc, char *argv[])
     #include "createControl.H"
     #include "createTimeControls.H"
     #include "createFields.H"
+    #include "createAlphaFluxes.H"
     #include "createFvOptions.H"
 
     volScalarField& p = mixture.p();
diff --git a/applications/solvers/multiphase/compressibleInterFoam/createFields.H b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
index 9bac4d82592..46168e6b87f 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
@@ -101,21 +101,4 @@ autoPtr<compressible::turbulenceModel> turbulence
 Info<< "Creating field kinetic energy K\n" << endl;
 volScalarField K("K", 0.5*magSqr(U));
 
-// MULES flux from previous time-step
-surfaceScalarField alphaPhi
-(
-    IOobject
-    (
-        "alphaPhi",
-        runTime.timeName(),
-        mesh,
-        IOobject::READ_IF_PRESENT,
-        IOobject::AUTO_WRITE
-    ),
-    phi*fvc::interpolate(alpha1)
-);
-
-// MULES Correction
-tmp<surfaceScalarField> talphaPhiCorr0;
-
 #include "createMRF.H"
diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H
index 4a82afbd294..dca977548e9 100644
--- a/applications/solvers/multiphase/interFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/createFields.H
@@ -121,21 +121,4 @@ if (p_rgh.needReference())
 mesh.setFluxRequired(p_rgh.name());
 mesh.setFluxRequired(alpha1.name());
 
-// MULES flux from previous time-step
-surfaceScalarField alphaPhi
-(
-    IOobject
-    (
-        "alphaPhi",
-        runTime.timeName(),
-        mesh,
-        IOobject::READ_IF_PRESENT,
-        IOobject::AUTO_WRITE
-    ),
-    phi*fvc::interpolate(alpha1)
-);
-
-// MULES Correction
-tmp<surfaceScalarField> talphaPhiCorr0;
-
 #include "createMRF.H"
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index df826479f0b..6a6da9d2d2c 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -60,6 +60,7 @@ int main(int argc, char *argv[])
     #include "createTimeControls.H"
     #include "createDyMControls.H"
     #include "createFields.H"
+    #include "createAlphaFluxes.H"
     #include "createFvOptions.H"
 
     volScalarField rAU
diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C
index 93d70dea5e7..7b755b6d192 100644
--- a/applications/solvers/multiphase/interFoam/interFoam.C
+++ b/applications/solvers/multiphase/interFoam/interFoam.C
@@ -63,6 +63,7 @@ int main(int argc, char *argv[])
     #include "createTimeControls.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
+    #include "createAlphaFluxes.H"
     #include "createFvOptions.H"
     #include "correctPhi.H"
 
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index 956898e4bd8..0c7fe053b3b 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -198,7 +198,7 @@ scalar CrankNicolsonDdtScheme<Type>::coef_
     const DDt0Field<GeoField>& ddt0
 ) const
 {
-    if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 0)
+    if (mesh().time().timeIndex() > ddt0.startTimeIndex())
     {
         return 1 + ocCoeff_;
     }
@@ -216,7 +216,7 @@ scalar CrankNicolsonDdtScheme<Type>::coef0_
     const DDt0Field<GeoField>& ddt0
 ) const
 {
-    if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 1)
+    if (mesh().time().timeIndex() > ddt0.startTimeIndex() + 1)
     {
         return 1 + ocCoeff_;
     }
-- 
GitLab


From b535c05fa688f506a693f236a2adee4052fbf017 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 6 Mar 2017 23:15:54 +0000
Subject: [PATCH 108/277] CrankNicolsonDdtScheme, backwardDdtScheme: Ensure V00
 is available for moving meshes

---
 .../CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H  | 12 ++++++++++--
 .../ddtSchemes/backwardDdtScheme/backwardDdtScheme.H | 12 ++++++++++--
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
index 42fc3328ccb..78c343c3b4c 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
@@ -200,7 +200,11 @@ public:
             ocCoeff_(1.0)
         {
             // Ensure the old-old-time cell volumes are available
-            mesh.V00();
+            // for moving meshes
+            if (mesh.moving())
+            {
+                mesh.V00();
+            }
         }
 
         //- Construct from mesh and Istream
@@ -220,7 +224,11 @@ public:
             }
 
             // Ensure the old-old-time cell volumes are available
-            mesh.V00();
+            // for moving meshes
+            if (mesh.moving())
+            {
+                mesh.V00();
+            }
         }
 
 
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H
index 0b9c82b6dc4..c17b1f16a40 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H
@@ -91,7 +91,11 @@ public:
             ddtScheme<Type>(mesh)
         {
             // Ensure the old-old-time cell volumes are available
-            mesh.V00();
+            // for moving meshes
+            if (mesh.moving())
+            {
+                mesh.V00();
+            }
         }
 
         //- Construct from mesh and Istream
@@ -100,7 +104,11 @@ public:
             ddtScheme<Type>(mesh, is)
         {
             // Ensure the old-old-time cell volumes are available
-            mesh.V00();
+            // for moving meshes
+            if (mesh.moving())
+            {
+                mesh.V00();
+            }
         }
 
 
-- 
GitLab


From 55e7a77ac6853fcdf1829f4b36b9733bbba9cbe8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 6 Mar 2017 23:18:13 +0000
Subject: [PATCH 109/277] 
 tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun: Remove
 previous 0 directories

Patch contributed by Mattijs Janssens
---
 tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
index f52cb0448a5..7952d5c1079 100755
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
@@ -19,6 +19,7 @@ runParallel snappyHexMesh -overwrite
 
 find . -type f -iname "*level*" -exec rm {} \;
 
+ls -d processor* | xargs -I {} rm -rf ./{}/0
 ls -d processor* | xargs -I {} cp -r 0.orig ./{}/0
 
 runParallel renumberMesh -overwrite
-- 
GitLab


From 7aed8c29045fdd0cb80d7f13545d902b8930e8a6 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 7 Mar 2017 11:48:20 +0000
Subject: [PATCH 110/277] tutorials: Updated pcorr settings in fvSolution to
 provide pcorrFinal if required

---
 .../rhoCentralDyMFoam/movingCone/system/fvSolution            | 2 +-
 .../rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution    | 2 +-
 .../compressible/sonicDyMFoam/movingCone/system/fvSolution    | 2 +-
 .../pimpleDyMFoam/mixerVesselAMI2D/system/fvSolution          | 2 +-
 .../incompressible/pimpleDyMFoam/movingCone/system/fvSolution | 2 +-
 .../pimpleDyMFoam/oscillatingInletACMI2D/system/fvSolution    | 2 +-
 .../incompressible/pimpleDyMFoam/propeller/system/fvSolution  | 2 +-
 .../wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution   | 4 ++--
 .../RAS/sloshingTank2D/system/fvSolution                      | 2 +-
 .../laminar/depthCharge2D/system/fvSolution                   | 2 +-
 .../laminar/depthCharge3D/system/fvSolution                   | 2 +-
 .../laminar/damBreak4phase/system/fvSolution                  | 2 +-
 .../interDyMFoam/RAS/sloshingTank2D/system/fvSolution         | 2 +-
 .../interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution     | 2 +-
 .../interDyMFoam/RAS/sloshingTank3D/system/fvSolution         | 2 +-
 .../interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution     | 2 +-
 .../interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution     | 2 +-
 .../interDyMFoam/RAS/testTubeMixer/system/fvSolution          | 2 +-
 .../multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution   | 2 +-
 tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSolution  | 2 +-
 .../multiphase/interFoam/RAS/angledDuct/system/fvSolution     | 2 +-
 .../interFoam/RAS/damBreak/damBreak/system/fvSolution         | 2 +-
 .../interFoam/RAS/damBreakPorousBaffle/system/fvSolution      | 2 +-
 .../multiphase/interFoam/RAS/waterChannel/system/fvSolution   | 2 +-
 .../multiphase/interFoam/RAS/weirOverflow/system/fvSolution   | 2 +-
 .../interFoam/laminar/capillaryRise/system/fvSolution         | 2 +-
 .../interFoam/laminar/damBreak/damBreak/system/fvSolution     | 2 +-
 .../interFoam/laminar/mixerVessel2D/system/fvSolution         | 2 +-
 .../interMixingFoam/laminar/damBreak/system/fvSolution        | 2 +-
 .../interPhaseChangeFoam/cavitatingBullet/system/fvSolution   | 2 +-
 .../multiphaseEulerFoam/bubbleColumn/system/fvSolution        | 2 +-
 .../multiphaseEulerFoam/damBreak4phase/system/fvSolution      | 2 +-
 .../multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution  | 2 +-
 .../multiphaseEulerFoam/mixerVessel2D/system/fvSolution       | 2 +-
 .../laminar/damBreak4phase/system/fvSolution                  | 2 +-
 .../laminar/damBreak4phaseFine/system/fvSolution              | 2 +-
 .../laminar/mixerVessel2D/system/fvSolution                   | 2 +-
 .../laminar/mixerVessel2D/system/fvSolution                   | 2 +-
 38 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution
index 7a434bd220b..8847ff21791 100644
--- a/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution
+++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution
@@ -31,7 +31,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution
index c771e4cfe36..dbbbe1fa9b3 100644
--- a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/system/fvSolution
@@ -33,7 +33,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p;
         tolerance       1e-2;
diff --git a/tutorials/compressible/sonicDyMFoam/movingCone/system/fvSolution b/tutorials/compressible/sonicDyMFoam/movingCone/system/fvSolution
index 7a434bd220b..8847ff21791 100644
--- a/tutorials/compressible/sonicDyMFoam/movingCone/system/fvSolution
+++ b/tutorials/compressible/sonicDyMFoam/movingCone/system/fvSolution
@@ -31,7 +31,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/fvSolution
index 584ab729f34..3a4914e43be 100644
--- a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/fvSolution
+++ b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/fvSolution
@@ -17,7 +17,7 @@ FoamFile
 
 solvers
 {
-    pcorr
+    "pcorr.*"
     {
         solver          GAMG;
         smoother        GaussSeidel;
diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution
index c99eed8dbb1..fc68da7ad58 100644
--- a/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution
+++ b/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution
@@ -33,7 +33,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p
         tolerance       0.02;
diff --git a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/fvSolution
index acef5b9e756..ed4ea863fc2 100644
--- a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/fvSolution
+++ b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/fvSolution
@@ -16,7 +16,7 @@ FoamFile
 
 solvers
 {
-    pcorr
+    "pcorr.*"
     {
         solver          GAMG;
         tolerance       1e-2;
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution
index dd6b23ef48d..8058474ed4f 100644
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution
@@ -16,7 +16,7 @@ FoamFile
 
 solvers
 {
-    pcorr
+    "pcorr.*"
     {
         solver          GAMG;
         tolerance       1e-2;
diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution
index e9088c34855..6fe4ce84478 100644
--- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution
+++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution
@@ -16,7 +16,7 @@ FoamFile
 
 solvers
 {
-    pcorr
+    "pcorr.*"
     {
         solver           GAMG;
         tolerance        0.02;
@@ -26,7 +26,7 @@ solvers
 
     p
     {
-        $pcorr
+        $"pcorr.*"
         tolerance        1e-7;
         relTol           0.01;
     }
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSolution b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSolution
index 74b19b5c8e7..84390b1eb82 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSolution
@@ -29,7 +29,7 @@ solvers
         solver          diagonal;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
index 041112222d9..9441d0f5ed1 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
@@ -37,7 +37,7 @@ solvers
         solver          diagonal;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
index dac0efd3b8b..762b44fad09 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
@@ -32,7 +32,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
index 7cf09c590a5..2b2423527a3 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
@@ -23,7 +23,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution
index 97f51440028..75d6201a3d6 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1.5;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution
index 97f51440028..75d6201a3d6 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1.5;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution
index 97f51440028..75d6201a3d6 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1.5;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution
index 97f51440028..75d6201a3d6 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1.5;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution
index 97f51440028..75d6201a3d6 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1.5;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
index de2c8b8553c..124c92a3ffb 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
index c095e44786c..6e9a803633d 100644
--- a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
+++ b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSolution b/tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSolution
index 92eca3e174a..cb667bef065 100644
--- a/tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSolution
+++ b/tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSolution
@@ -35,7 +35,7 @@ solvers
         minIter         1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
 
diff --git a/tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSolution b/tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSolution
index 8770c52d9b1..3e368816e7f 100644
--- a/tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSolution
+++ b/tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSolution
@@ -32,7 +32,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSolution b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSolution
index e9177a9ac09..fcccb9302b3 100644
--- a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSolution
@@ -32,7 +32,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSolution b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSolution
index a44aca66b53..5778885b16e 100644
--- a/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSolution
+++ b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSolution
@@ -32,7 +32,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSolution b/tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSolution
index f9e1279b9db..62ea9f471f0 100644
--- a/tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSolution
+++ b/tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSolution
@@ -32,7 +32,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSolution b/tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSolution
index 046c25c42cd..fa2dd59598e 100644
--- a/tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSolution
+++ b/tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSolution
@@ -23,7 +23,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/laminar/capillaryRise/system/fvSolution b/tutorials/multiphase/interFoam/laminar/capillaryRise/system/fvSolution
index 40102d5cbe2..6cd972a3197 100644
--- a/tutorials/multiphase/interFoam/laminar/capillaryRise/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/capillaryRise/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution
index 81406469091..a1ec51e6f3c 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/fvSolution
@@ -32,7 +32,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution
index 26571a081c3..3a1bacab0c9 100644
--- a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution
index a1518045c83..f6e65ee6201 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution
@@ -30,7 +30,7 @@ solvers
         nSweeps         1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/fvSolution b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/fvSolution
index 766fa5a918e..a99e476fe42 100644
--- a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/fvSolution
+++ b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/fvSolution
@@ -73,7 +73,7 @@ solvers
         maxIter         50;
     };
 
-    pcorr
+    "pcorr.*"
     {
         $p_rgh;
         relTol          0;
diff --git a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution
index 62f2e7e07c0..6b91504339d 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution
@@ -37,7 +37,7 @@ solvers
         relTol          0;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p_rgh;
         tolerance       1e-5;
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution
index 08ba5626d19..f8be48038a6 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution
@@ -46,7 +46,7 @@ solvers
         maxIter         20;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p_rghFinal;
         tolerance       1e-5;
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution
index 08ba5626d19..f8be48038a6 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution
@@ -46,7 +46,7 @@ solvers
         maxIter         20;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p_rghFinal;
         tolerance       1e-5;
diff --git a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution
index c0ba3a2d4fd..57f6aeb58c0 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution
@@ -46,7 +46,7 @@ solvers
         maxIter         30;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p_rghFinal;
         tolerance       1e-5;
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
index b962745e2aa..6a3a684228f 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
@@ -23,7 +23,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
index a271af11498..7bdd8b96cf9 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
@@ -23,7 +23,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution
index 64bf5c641c3..906704e0454 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSolution b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSolution
index 5b110e03edf..81b0ab3c942 100644
--- a/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D/system/fvSolution
@@ -46,7 +46,7 @@ solvers
         maxIter         30;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p_rghFinal;
         tolerance       1e-5;
-- 
GitLab


From 7a99465d2a9c97d6092f82d33be6fa0413810ddf Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Mar 2017 11:34:08 +0000
Subject: [PATCH 111/277] verticalChannel tutorial: removed 'bounded' from the
 'div(phid,p)' scheme.

---
 .../simpleReactingParcelFoam/verticalChannel/system/fvSchemes   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/system/fvSchemes b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/system/fvSchemes
index 298c772624b..1cb618a2fb6 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/system/fvSchemes
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/system/fvSchemes
@@ -29,7 +29,7 @@ divSchemes
 {
     default         none;
     div(phi,U)      bounded Gauss upwind;
-    div(phid,p)     bounded Gauss upwind;
+    div(phid,p)     Gauss upwind;
     div(phi,K)      bounded Gauss linear;
     div(phi,h)      bounded Gauss upwind;
     div(phi,k)      bounded Gauss upwind;
-- 
GitLab


From 1be5f699e5e36eb416bac94a1d152dd7cb58a06f Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Mar 2017 11:48:06 +0000
Subject: [PATCH 112/277] decomposePar: Added 'copyZero' option

Using

decomposePar -copyZero

The mesh is decomposed as usual but the '0' directory is recursively copied to
the 'processor.*' directories rather than decomposing the fields.  This is a
convenient option to handle cases where the initial field files are generic and
can be used for serial or parallel running.  See for example the
incompressible/simpleFoam/motorBike tutorial case.
---
 .../decomposePar/decomposePar.C               | 1180 +++++++++--------
 src/OpenFOAM/db/Time/timeSelector.C           |    8 +-
 .../simpleFoam/motorBike/Allclean             |    5 +-
 .../simpleFoam/motorBike/Allrun               |   13 +-
 4 files changed, 632 insertions(+), 574 deletions(-)

diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index bc94782641e..f9425cc506b 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,6 +43,9 @@ Usage
         Decompose all regions in regionProperties. Does not check for
         existence of processor*.
 
+      - \par -copyZero \n
+        Copy \a 0 directory to processor* rather than decompose the fields.
+
       - \par -copyUniform \n
         Copy any \a uniform directories too.
 
@@ -215,6 +218,11 @@ int main(int argc, char *argv[])
         "decomposition method or as a volScalarField for post-processing."
     );
     argList::addBoolOption
+    (
+        "copyZero",
+        "Copy \a 0 directory to processor* rather than decompose the fields"
+    );
+    argList::addBoolOption
     (
         "copyUniform",
         "copy any uniform/ directories too"
@@ -247,6 +255,7 @@ int main(int argc, char *argv[])
 
     bool allRegions              = args.optionFound("allRegions");
     bool writeCellDist           = args.optionFound("cellDist");
+    bool copyZero                = args.optionFound("copyZero");
     bool copyUniform             = args.optionFound("copyUniform");
     bool decomposeFieldsOnly     = args.optionFound("fields");
     bool decomposeSets           = !args.optionFound("noSets");
@@ -476,668 +485,715 @@ int main(int argc, char *argv[])
         }
 
 
-
-        // Caches
-        // ~~~~~~
-        // Cached processor meshes and maps. These are only preserved if running
-        // with multiple times.
-        PtrList<Time> processorDbList(mesh.nProcs());
-        PtrList<fvMesh> procMeshList(mesh.nProcs());
-        PtrList<labelIOList> faceProcAddressingList(mesh.nProcs());
-        PtrList<labelIOList> cellProcAddressingList(mesh.nProcs());
-        PtrList<labelIOList> boundaryProcAddressingList(mesh.nProcs());
-        PtrList<fvFieldDecomposer> fieldDecomposerList(mesh.nProcs());
-        PtrList<dimFieldDecomposer> dimFieldDecomposerList(mesh.nProcs());
-        PtrList<labelIOList> pointProcAddressingList(mesh.nProcs());
-        PtrList<pointFieldDecomposer> pointFieldDecomposerList(mesh.nProcs());
-
-
-
-        // Loop over all times
-        forAll(times, timeI)
+        if (copyZero)
         {
-            runTime.setTime(times[timeI], timeI);
-
-            Info<< "Time = " << runTime.timeName() << endl;
-
-            // Search for list of objects for this time
-            IOobjectList objects(mesh, runTime.timeName());
-
-
-            // Construct the vol fields
-            // ~~~~~~~~~~~~~~~~~~~~~~~~
-            PtrList<volScalarField> volScalarFields;
-            readFields(mesh, objects, volScalarFields);
-            PtrList<volVectorField> volVectorFields;
-            readFields(mesh, objects, volVectorFields);
-            PtrList<volSphericalTensorField> volSphericalTensorFields;
-            readFields(mesh, objects, volSphericalTensorFields);
-            PtrList<volSymmTensorField> volSymmTensorFields;
-            readFields(mesh, objects, volSymmTensorFields);
-            PtrList<volTensorField> volTensorFields;
-            readFields(mesh, objects, volTensorFields);
-
-
-            // Construct the dimensioned fields
-            // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-            PtrList<DimensionedField<scalar, volMesh>> dimScalarFields;
-            readFields(mesh, objects, dimScalarFields);
-            PtrList<DimensionedField<vector, volMesh>> dimVectorFields;
-            readFields(mesh, objects, dimVectorFields);
-            PtrList<DimensionedField<sphericalTensor, volMesh>>
-                dimSphericalTensorFields;
-            readFields(mesh, objects, dimSphericalTensorFields);
-            PtrList<DimensionedField<symmTensor, volMesh>> dimSymmTensorFields;
-            readFields(mesh, objects, dimSymmTensorFields);
-            PtrList<DimensionedField<tensor, volMesh>> dimTensorFields;
-            readFields(mesh, objects, dimTensorFields);
-
-
-            // Construct the surface fields
-            // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-            PtrList<surfaceScalarField> surfaceScalarFields;
-            readFields(mesh, objects, surfaceScalarFields);
-            PtrList<surfaceVectorField> surfaceVectorFields;
-            readFields(mesh, objects, surfaceVectorFields);
-            PtrList<surfaceSphericalTensorField> surfaceSphericalTensorFields;
-            readFields(mesh, objects, surfaceSphericalTensorFields);
-            PtrList<surfaceSymmTensorField> surfaceSymmTensorFields;
-            readFields(mesh, objects, surfaceSymmTensorFields);
-            PtrList<surfaceTensorField> surfaceTensorFields;
-            readFields(mesh, objects, surfaceTensorFields);
-
-
-            // Construct the point fields
-            // ~~~~~~~~~~~~~~~~~~~~~~~~~~
-            const pointMesh& pMesh = pointMesh::New(mesh);
-
-            PtrList<pointScalarField> pointScalarFields;
-            readFields(pMesh, objects, pointScalarFields);
-            PtrList<pointVectorField> pointVectorFields;
-            readFields(pMesh, objects, pointVectorFields);
-            PtrList<pointSphericalTensorField> pointSphericalTensorFields;
-            readFields(pMesh, objects, pointSphericalTensorFields);
-            PtrList<pointSymmTensorField> pointSymmTensorFields;
-            readFields(pMesh, objects, pointSymmTensorFields);
-            PtrList<pointTensorField> pointTensorFields;
-            readFields(pMesh, objects, pointTensorFields);
-
-
-            // Construct the Lagrangian fields
-            // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-            fileNameList cloudDirs
-            (
-                readDir(runTime.timePath()/cloud::prefix, fileName::DIRECTORY)
-            );
-
-            // Particles
-            PtrList<Cloud<indexedParticle>> lagrangianPositions
-            (
-                cloudDirs.size()
-            );
-            // Particles per cell
-            PtrList<List<SLList<indexedParticle*>*>> cellParticles
-            (
-                cloudDirs.size()
-            );
-
-            PtrList<PtrList<labelIOField>> lagrangianLabelFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<labelFieldCompactIOField>>
-            lagrangianLabelFieldFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<scalarIOField>> lagrangianScalarFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<scalarFieldCompactIOField>>
-            lagrangianScalarFieldFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<vectorIOField>> lagrangianVectorFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<vectorFieldCompactIOField>>
-            lagrangianVectorFieldFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<sphericalTensorIOField>>
-            lagrangianSphericalTensorFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<sphericalTensorFieldCompactIOField>>
-                lagrangianSphericalTensorFieldFields(cloudDirs.size());
-            PtrList<PtrList<symmTensorIOField>> lagrangianSymmTensorFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<symmTensorFieldCompactIOField>>
-            lagrangianSymmTensorFieldFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<tensorIOField>> lagrangianTensorFields
-            (
-                cloudDirs.size()
-            );
-            PtrList<PtrList<tensorFieldCompactIOField>>
-            lagrangianTensorFieldFields
-            (
-                cloudDirs.size()
-            );
-
-            label cloudI = 0;
-
-            forAll(cloudDirs, i)
+            // Link the 0 directory into each of the processor directories
+            for (label proci = 0; proci < mesh.nProcs(); proci++)
             {
-                IOobjectList sprayObjs
+                Time processorDb
                 (
-                    mesh,
-                    runTime.timeName(),
-                    cloud::prefix/cloudDirs[i],
-                    IOobject::MUST_READ,
-                    IOobject::NO_WRITE,
-                    false
+                    Time::controlDictName,
+                    args.rootPath(),
+                    args.caseName()/fileName(word("processor") + name(proci))
                 );
+                processorDb.setTime(runTime);
 
-                IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
-
-                if (positionsPtr)
+                if (isDir(runTime.timePath()))
                 {
-                    // Read lagrangian particles
-                    // ~~~~~~~~~~~~~~~~~~~~~~~~~
-
-                    Info<< "Identified lagrangian data set: " << cloudDirs[i]
-                        << endl;
-
-                    lagrangianPositions.set
-                    (
-                        cloudI,
-                        new Cloud<indexedParticle>
-                        (
-                            mesh,
-                            cloudDirs[i],
-                            false
-                        )
-                    );
-
+                    const fileName timePath = processorDb.timePath();
 
-                    // Sort particles per cell
-                    // ~~~~~~~~~~~~~~~~~~~~~~~
-
-                    cellParticles.set
-                    (
-                        cloudI,
-                        new List<SLList<indexedParticle*>*>
-                        (
-                            mesh.nCells(),
-                            static_cast<SLList<indexedParticle*>*>(nullptr)
-                        )
-                    );
+                    Info<< "Processor " << proci
+                        << ": linking " << runTime.timePath() << nl
+                        << " to " << processorDb.timePath() << endl;
+                    cp(runTime.timePath(), processorDb.timePath());
+                }
+            }
+        }
+        else
+        {
+            // Decompose the field files
+
+            // Cached processor meshes and maps. These are only preserved if
+            // running with multiple times.
+            PtrList<Time> processorDbList(mesh.nProcs());
+            PtrList<fvMesh> procMeshList(mesh.nProcs());
+            PtrList<labelIOList> faceProcAddressingList(mesh.nProcs());
+            PtrList<labelIOList> cellProcAddressingList(mesh.nProcs());
+            PtrList<labelIOList> boundaryProcAddressingList(mesh.nProcs());
+            PtrList<fvFieldDecomposer> fieldDecomposerList(mesh.nProcs());
+            PtrList<dimFieldDecomposer> dimFieldDecomposerList(mesh.nProcs());
+            PtrList<labelIOList> pointProcAddressingList(mesh.nProcs());
+            PtrList<pointFieldDecomposer> pointFieldDecomposerList
+            (
+                mesh.nProcs()
+            );
 
-                    label i = 0;
 
-                    forAllIter
+            // Loop over all times
+            forAll(times, timeI)
+            {
+                runTime.setTime(times[timeI], timeI);
+
+                Info<< "Time = " << runTime.timeName() << endl;
+
+                // Search for list of objects for this time
+                IOobjectList objects(mesh, runTime.timeName());
+
+
+                // Construct the vol fields
+                // ~~~~~~~~~~~~~~~~~~~~~~~~
+                PtrList<volScalarField> volScalarFields;
+                readFields(mesh, objects, volScalarFields);
+                PtrList<volVectorField> volVectorFields;
+                readFields(mesh, objects, volVectorFields);
+                PtrList<volSphericalTensorField> volSphericalTensorFields;
+                readFields(mesh, objects, volSphericalTensorFields);
+                PtrList<volSymmTensorField> volSymmTensorFields;
+                readFields(mesh, objects, volSymmTensorFields);
+                PtrList<volTensorField> volTensorFields;
+                readFields(mesh, objects, volTensorFields);
+
+
+                // Construct the dimensioned fields
+                // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                PtrList<DimensionedField<scalar, volMesh>> dimScalarFields;
+                readFields(mesh, objects, dimScalarFields);
+                PtrList<DimensionedField<vector, volMesh>> dimVectorFields;
+                readFields(mesh, objects, dimVectorFields);
+                PtrList<DimensionedField<sphericalTensor, volMesh>>
+                    dimSphericalTensorFields;
+                readFields(mesh, objects, dimSphericalTensorFields);
+                PtrList<DimensionedField<symmTensor, volMesh>>
+                    dimSymmTensorFields;
+                readFields(mesh, objects, dimSymmTensorFields);
+                PtrList<DimensionedField<tensor, volMesh>> dimTensorFields;
+                readFields(mesh, objects, dimTensorFields);
+
+
+                // Construct the surface fields
+                // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                PtrList<surfaceScalarField> surfaceScalarFields;
+                readFields(mesh, objects, surfaceScalarFields);
+                PtrList<surfaceVectorField> surfaceVectorFields;
+                readFields(mesh, objects, surfaceVectorFields);
+                PtrList<surfaceSphericalTensorField>
+                    surfaceSphericalTensorFields;
+                readFields(mesh, objects, surfaceSphericalTensorFields);
+                PtrList<surfaceSymmTensorField> surfaceSymmTensorFields;
+                readFields(mesh, objects, surfaceSymmTensorFields);
+                PtrList<surfaceTensorField> surfaceTensorFields;
+                readFields(mesh, objects, surfaceTensorFields);
+
+
+                // Construct the point fields
+                // ~~~~~~~~~~~~~~~~~~~~~~~~~~
+                const pointMesh& pMesh = pointMesh::New(mesh);
+
+                PtrList<pointScalarField> pointScalarFields;
+                readFields(pMesh, objects, pointScalarFields);
+                PtrList<pointVectorField> pointVectorFields;
+                readFields(pMesh, objects, pointVectorFields);
+                PtrList<pointSphericalTensorField> pointSphericalTensorFields;
+                readFields(pMesh, objects, pointSphericalTensorFields);
+                PtrList<pointSymmTensorField> pointSymmTensorFields;
+                readFields(pMesh, objects, pointSymmTensorFields);
+                PtrList<pointTensorField> pointTensorFields;
+                readFields(pMesh, objects, pointTensorFields);
+
+
+                // Construct the Lagrangian fields
+                // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                fileNameList cloudDirs
+                (
+                    readDir
                     (
-                        Cloud<indexedParticle>,
-                        lagrangianPositions[cloudI],
-                        iter
+                        runTime.timePath()/cloud::prefix, fileName::DIRECTORY
                     )
-                    {
-                        iter().index() = i++;
-
-                        label celli = iter().cell();
-
-                        // Check
-                        if (celli < 0 || celli >= mesh.nCells())
-                        {
-                            FatalErrorInFunction
-                                << "Illegal cell number " << celli
-                                << " for particle with index " << iter().index()
-                                << " at position " << iter().position() << nl
-                                << "Cell number should be between 0 and "
-                                << mesh.nCells()-1 << nl
-                                << "On this mesh the particle should"
-                                << " be in cell "
-                                << mesh.findCell(iter().position())
-                                << exit(FatalError);
-                        }
+                );
 
-                        if (!cellParticles[cloudI][celli])
-                        {
-                            cellParticles[cloudI][celli] =
-                                new SLList<indexedParticle*>();
-                        }
+                // Particles
+                PtrList<Cloud<indexedParticle>> lagrangianPositions
+                (
+                    cloudDirs.size()
+                );
+                // Particles per cell
+                PtrList<List<SLList<indexedParticle*>*>> cellParticles
+                (
+                    cloudDirs.size()
+                );
 
-                        cellParticles[cloudI][celli]->append(&iter());
-                    }
+                PtrList<PtrList<labelIOField>> lagrangianLabelFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<labelFieldCompactIOField>>
+                lagrangianLabelFieldFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<scalarIOField>> lagrangianScalarFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<scalarFieldCompactIOField>>
+                lagrangianScalarFieldFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<vectorIOField>> lagrangianVectorFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<vectorFieldCompactIOField>>
+                lagrangianVectorFieldFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<sphericalTensorIOField>>
+                lagrangianSphericalTensorFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<sphericalTensorFieldCompactIOField>>
+                    lagrangianSphericalTensorFieldFields(cloudDirs.size());
+                PtrList<PtrList<symmTensorIOField>> lagrangianSymmTensorFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<symmTensorFieldCompactIOField>>
+                lagrangianSymmTensorFieldFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<tensorIOField>> lagrangianTensorFields
+                (
+                    cloudDirs.size()
+                );
+                PtrList<PtrList<tensorFieldCompactIOField>>
+                lagrangianTensorFieldFields
+                (
+                    cloudDirs.size()
+                );
 
-                    // Read fields
-                    // ~~~~~~~~~~~
+                label cloudI = 0;
 
-                    IOobjectList lagrangianObjects
+                forAll(cloudDirs, i)
+                {
+                    IOobjectList sprayObjs
                     (
                         mesh,
                         runTime.timeName(),
-                        cloud::prefix/cloudDirs[cloudI],
+                        cloud::prefix/cloudDirs[i],
                         IOobject::MUST_READ,
                         IOobject::NO_WRITE,
                         false
                     );
 
-                    lagrangianFieldDecomposer::readFields
+                    IOobject* positionsPtr = sprayObjs.lookup
                     (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianLabelFields
+                        word("positions")
                     );
 
-                    lagrangianFieldDecomposer::readFieldFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianLabelFieldFields
-                    );
+                    if (positionsPtr)
+                    {
+                        // Read lagrangian particles
+                        // ~~~~~~~~~~~~~~~~~~~~~~~~~
 
-                    lagrangianFieldDecomposer::readFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianScalarFields
-                    );
+                        Info<< "Identified lagrangian data set: "
+                            << cloudDirs[i] << endl;
 
-                    lagrangianFieldDecomposer::readFieldFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianScalarFieldFields
-                    );
+                        lagrangianPositions.set
+                        (
+                            cloudI,
+                            new Cloud<indexedParticle>
+                            (
+                                mesh,
+                                cloudDirs[i],
+                                false
+                            )
+                        );
 
-                    lagrangianFieldDecomposer::readFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianVectorFields
-                    );
 
-                    lagrangianFieldDecomposer::readFieldFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianVectorFieldFields
-                    );
+                        // Sort particles per cell
+                        // ~~~~~~~~~~~~~~~~~~~~~~~
 
-                    lagrangianFieldDecomposer::readFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianSphericalTensorFields
-                    );
+                        cellParticles.set
+                        (
+                            cloudI,
+                            new List<SLList<indexedParticle*>*>
+                            (
+                                mesh.nCells(),
+                                static_cast<SLList<indexedParticle*>*>(nullptr)
+                            )
+                        );
 
-                    lagrangianFieldDecomposer::readFieldFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianSphericalTensorFieldFields
-                    );
+                        label i = 0;
 
-                    lagrangianFieldDecomposer::readFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianSymmTensorFields
-                    );
+                        forAllIter
+                        (
+                            Cloud<indexedParticle>,
+                            lagrangianPositions[cloudI],
+                            iter
+                        )
+                        {
+                            iter().index() = i++;
+
+                            label celli = iter().cell();
+
+                            // Check
+                            if (celli < 0 || celli >= mesh.nCells())
+                            {
+                                FatalErrorInFunction
+                                    << "Illegal cell number " << celli
+                                    << " for particle with index "
+                                    << iter().index()
+                                    << " at position "
+                                    << iter().position() << nl
+                                    << "Cell number should be between 0 and "
+                                    << mesh.nCells()-1 << nl
+                                    << "On this mesh the particle should"
+                                    << " be in cell "
+                                    << mesh.findCell(iter().position())
+                                    << exit(FatalError);
+                            }
+
+                            if (!cellParticles[cloudI][celli])
+                            {
+                                cellParticles[cloudI][celli] =
+                                    new SLList<indexedParticle*>();
+                            }
+
+                            cellParticles[cloudI][celli]->append(&iter());
+                        }
 
-                    lagrangianFieldDecomposer::readFieldFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianSymmTensorFieldFields
-                    );
+                        // Read fields
+                        // ~~~~~~~~~~~
 
-                    lagrangianFieldDecomposer::readFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianTensorFields
-                    );
+                        IOobjectList lagrangianObjects
+                        (
+                            mesh,
+                            runTime.timeName(),
+                            cloud::prefix/cloudDirs[cloudI],
+                            IOobject::MUST_READ,
+                            IOobject::NO_WRITE,
+                            false
+                        );
 
-                    lagrangianFieldDecomposer::readFieldFields
-                    (
-                        cloudI,
-                        lagrangianObjects,
-                        lagrangianTensorFieldFields
-                    );
+                        lagrangianFieldDecomposer::readFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianLabelFields
+                        );
 
-                    cloudI++;
-                }
-            }
+                        lagrangianFieldDecomposer::readFieldFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianLabelFieldFields
+                        );
 
-            lagrangianPositions.setSize(cloudI);
-            cellParticles.setSize(cloudI);
-            lagrangianLabelFields.setSize(cloudI);
-            lagrangianLabelFieldFields.setSize(cloudI);
-            lagrangianScalarFields.setSize(cloudI);
-            lagrangianScalarFieldFields.setSize(cloudI);
-            lagrangianVectorFields.setSize(cloudI);
-            lagrangianVectorFieldFields.setSize(cloudI);
-            lagrangianSphericalTensorFields.setSize(cloudI);
-            lagrangianSphericalTensorFieldFields.setSize(cloudI);
-            lagrangianSymmTensorFields.setSize(cloudI);
-            lagrangianSymmTensorFieldFields.setSize(cloudI);
-            lagrangianTensorFields.setSize(cloudI);
-            lagrangianTensorFieldFields.setSize(cloudI);
-
-            Info<< endl;
-
-            // split the fields over processors
-            for (label proci = 0; proci < mesh.nProcs(); proci++)
-            {
-                Info<< "Processor " << proci << ": field transfer" << endl;
+                        lagrangianFieldDecomposer::readFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianScalarFields
+                        );
 
+                        lagrangianFieldDecomposer::readFieldFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianScalarFieldFields
+                        );
 
-                // open the database
-                if (!processorDbList.set(proci))
-                {
-                    processorDbList.set
-                    (
-                        proci,
-                        new Time
+                        lagrangianFieldDecomposer::readFields
                         (
-                            Time::controlDictName,
-                            args.rootPath(),
-                            args.caseName()
-                           /fileName(word("processor") + name(proci))
-                        )
-                    );
-                }
-                Time& processorDb = processorDbList[proci];
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianVectorFields
+                        );
 
+                        lagrangianFieldDecomposer::readFieldFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianVectorFieldFields
+                        );
 
-                processorDb.setTime(runTime);
+                        lagrangianFieldDecomposer::readFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianSphericalTensorFields
+                        );
 
-                // read the mesh
-                if (!procMeshList.set(proci))
-                {
-                    procMeshList.set
-                    (
-                        proci,
-                        new fvMesh
+                        lagrangianFieldDecomposer::readFieldFields
                         (
-                            IOobject
-                            (
-                                regionName,
-                                processorDb.timeName(),
-                                processorDb
-                            )
-                        )
-                    );
-                }
-                const fvMesh& procMesh = procMeshList[proci];
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianSphericalTensorFieldFields
+                        );
 
-                const labelIOList& faceProcAddressing = procAddressing
-                (
-                    procMeshList,
-                    proci,
-                    "faceProcAddressing",
-                    faceProcAddressingList
-                );
+                        lagrangianFieldDecomposer::readFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianSymmTensorFields
+                        );
 
-                const labelIOList& cellProcAddressing = procAddressing
-                (
-                    procMeshList,
-                    proci,
-                    "cellProcAddressing",
-                    cellProcAddressingList
-                );
+                        lagrangianFieldDecomposer::readFieldFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianSymmTensorFieldFields
+                        );
 
-                const labelIOList& boundaryProcAddressing = procAddressing
-                (
-                    procMeshList,
-                    proci,
-                    "boundaryProcAddressing",
-                    boundaryProcAddressingList
-                );
+                        lagrangianFieldDecomposer::readFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianTensorFields
+                        );
 
+                        lagrangianFieldDecomposer::readFieldFields
+                        (
+                            cloudI,
+                            lagrangianObjects,
+                            lagrangianTensorFieldFields
+                        );
+
+                        cloudI++;
+                    }
+                }
 
-                // FV fields
+                lagrangianPositions.setSize(cloudI);
+                cellParticles.setSize(cloudI);
+                lagrangianLabelFields.setSize(cloudI);
+                lagrangianLabelFieldFields.setSize(cloudI);
+                lagrangianScalarFields.setSize(cloudI);
+                lagrangianScalarFieldFields.setSize(cloudI);
+                lagrangianVectorFields.setSize(cloudI);
+                lagrangianVectorFieldFields.setSize(cloudI);
+                lagrangianSphericalTensorFields.setSize(cloudI);
+                lagrangianSphericalTensorFieldFields.setSize(cloudI);
+                lagrangianSymmTensorFields.setSize(cloudI);
+                lagrangianSymmTensorFieldFields.setSize(cloudI);
+                lagrangianTensorFields.setSize(cloudI);
+                lagrangianTensorFieldFields.setSize(cloudI);
+
+                Info<< endl;
+
+                // split the fields over processors
+                for (label proci = 0; proci < mesh.nProcs(); proci++)
                 {
-                    if (!fieldDecomposerList.set(proci))
+                    Info<< "Processor " << proci << ": field transfer" << endl;
+
+
+                    // open the database
+                    if (!processorDbList.set(proci))
                     {
-                        fieldDecomposerList.set
+                        processorDbList.set
                         (
                             proci,
-                            new fvFieldDecomposer
+                            new Time
                             (
-                                mesh,
-                                procMesh,
-                                faceProcAddressing,
-                                cellProcAddressing,
-                                boundaryProcAddressing
+                                Time::controlDictName,
+                                args.rootPath(),
+                                args.caseName()
+                               /fileName(word("processor") + name(proci))
                             )
                         );
                     }
-                    const fvFieldDecomposer& fieldDecomposer =
-                        fieldDecomposerList[proci];
-
-                    fieldDecomposer.decomposeFields(volScalarFields);
-                    fieldDecomposer.decomposeFields(volVectorFields);
-                    fieldDecomposer.decomposeFields(volSphericalTensorFields);
-                    fieldDecomposer.decomposeFields(volSymmTensorFields);
-                    fieldDecomposer.decomposeFields(volTensorFields);
-
-                    fieldDecomposer.decomposeFields(surfaceScalarFields);
-                    fieldDecomposer.decomposeFields(surfaceVectorFields);
-                    fieldDecomposer.decomposeFields
-                    (
-                        surfaceSphericalTensorFields
-                    );
-                    fieldDecomposer.decomposeFields(surfaceSymmTensorFields);
-                    fieldDecomposer.decomposeFields(surfaceTensorFields);
+                    Time& processorDb = processorDbList[proci];
 
-                    if (times.size() == 1)
-                    {
-                        // Clear cached decomposer
-                        fieldDecomposerList.set(proci, nullptr);
-                    }
-                }
 
-                // Dimensioned fields
-                {
-                    if (!dimFieldDecomposerList.set(proci))
+                    processorDb.setTime(runTime);
+
+                    // read the mesh
+                    if (!procMeshList.set(proci))
                     {
-                        dimFieldDecomposerList.set
+                        procMeshList.set
                         (
                             proci,
-                            new dimFieldDecomposer
+                            new fvMesh
                             (
-                                mesh,
-                                procMesh,
-                                faceProcAddressing,
-                                cellProcAddressing
+                                IOobject
+                                (
+                                    regionName,
+                                    processorDb.timeName(),
+                                    processorDb
+                                )
                             )
                         );
                     }
-                    const dimFieldDecomposer& dimDecomposer =
-                        dimFieldDecomposerList[proci];
+                    const fvMesh& procMesh = procMeshList[proci];
 
-                    dimDecomposer.decomposeFields(dimScalarFields);
-                    dimDecomposer.decomposeFields(dimVectorFields);
-                    dimDecomposer.decomposeFields(dimSphericalTensorFields);
-                    dimDecomposer.decomposeFields(dimSymmTensorFields);
-                    dimDecomposer.decomposeFields(dimTensorFields);
-
-                    if (times.size() == 1)
-                    {
-                        dimFieldDecomposerList.set(proci, nullptr);
-                    }
-                }
+                    const labelIOList& faceProcAddressing = procAddressing
+                    (
+                        procMeshList,
+                        proci,
+                        "faceProcAddressing",
+                        faceProcAddressingList
+                    );
 
+                    const labelIOList& cellProcAddressing = procAddressing
+                    (
+                        procMeshList,
+                        proci,
+                        "cellProcAddressing",
+                        cellProcAddressingList
+                    );
 
-                // Point fields
-                if
-                (
-                    pointScalarFields.size()
-                 || pointVectorFields.size()
-                 || pointSphericalTensorFields.size()
-                 || pointSymmTensorFields.size()
-                 || pointTensorFields.size()
-                )
-                {
-                    const labelIOList& pointProcAddressing = procAddressing
+                    const labelIOList& boundaryProcAddressing = procAddressing
                     (
                         procMeshList,
                         proci,
-                        "pointProcAddressing",
-                        pointProcAddressingList
+                        "boundaryProcAddressing",
+                        boundaryProcAddressingList
                     );
 
-                    const pointMesh& procPMesh = pointMesh::New(procMesh);
 
-                    if (!pointFieldDecomposerList.set(proci))
+                    // FV fields
                     {
-                        pointFieldDecomposerList.set
-                        (
-                            proci,
-                            new pointFieldDecomposer
+                        if (!fieldDecomposerList.set(proci))
+                        {
+                            fieldDecomposerList.set
                             (
-                                pMesh,
-                                procPMesh,
-                                pointProcAddressing,
-                                boundaryProcAddressing
-                            )
+                                proci,
+                                new fvFieldDecomposer
+                                (
+                                    mesh,
+                                    procMesh,
+                                    faceProcAddressing,
+                                    cellProcAddressing,
+                                    boundaryProcAddressing
+                                )
+                            );
+                        }
+                        const fvFieldDecomposer& fieldDecomposer =
+                            fieldDecomposerList[proci];
+
+                        fieldDecomposer.decomposeFields(volScalarFields);
+                        fieldDecomposer.decomposeFields(volVectorFields);
+                        fieldDecomposer.decomposeFields
+                        (
+                            volSphericalTensorFields
                         );
-                    }
-                    const pointFieldDecomposer& pointDecomposer =
-                        pointFieldDecomposerList[proci];
+                        fieldDecomposer.decomposeFields(volSymmTensorFields);
+                        fieldDecomposer.decomposeFields(volTensorFields);
 
-                    pointDecomposer.decomposeFields(pointScalarFields);
-                    pointDecomposer.decomposeFields(pointVectorFields);
-                    pointDecomposer.decomposeFields(pointSphericalTensorFields);
-                    pointDecomposer.decomposeFields(pointSymmTensorFields);
-                    pointDecomposer.decomposeFields(pointTensorFields);
+                        fieldDecomposer.decomposeFields(surfaceScalarFields);
+                        fieldDecomposer.decomposeFields(surfaceVectorFields);
+                        fieldDecomposer.decomposeFields
+                        (
+                            surfaceSphericalTensorFields
+                        );
+                        fieldDecomposer.decomposeFields
+                        (
+                            surfaceSymmTensorFields
+                        );
+                        fieldDecomposer.decomposeFields(surfaceTensorFields);
 
+                        if (times.size() == 1)
+                        {
+                            // Clear cached decomposer
+                            fieldDecomposerList.set(proci, nullptr);
+                        }
+                    }
 
-                    if (times.size() == 1)
+                    // Dimensioned fields
                     {
-                        pointProcAddressingList.set(proci, nullptr);
-                        pointFieldDecomposerList.set(proci, nullptr);
+                        if (!dimFieldDecomposerList.set(proci))
+                        {
+                            dimFieldDecomposerList.set
+                            (
+                                proci,
+                                new dimFieldDecomposer
+                                (
+                                    mesh,
+                                    procMesh,
+                                    faceProcAddressing,
+                                    cellProcAddressing
+                                )
+                            );
+                        }
+                        const dimFieldDecomposer& dimDecomposer =
+                            dimFieldDecomposerList[proci];
+
+                        dimDecomposer.decomposeFields(dimScalarFields);
+                        dimDecomposer.decomposeFields(dimVectorFields);
+                        dimDecomposer.decomposeFields(dimSphericalTensorFields);
+                        dimDecomposer.decomposeFields(dimSymmTensorFields);
+                        dimDecomposer.decomposeFields(dimTensorFields);
+
+                        if (times.size() == 1)
+                        {
+                            dimFieldDecomposerList.set(proci, nullptr);
+                        }
                     }
-                }
 
 
-                // If there is lagrangian data write it out
-                forAll(lagrangianPositions, cloudI)
-                {
-                    if (lagrangianPositions[cloudI].size())
+                    // Point fields
+                    if
+                    (
+                        pointScalarFields.size()
+                     || pointVectorFields.size()
+                     || pointSphericalTensorFields.size()
+                     || pointSymmTensorFields.size()
+                     || pointTensorFields.size()
+                    )
                     {
-                        lagrangianFieldDecomposer fieldDecomposer
+                        const labelIOList& pointProcAddressing = procAddressing
                         (
-                            mesh,
-                            procMesh,
-                            faceProcAddressing,
-                            cellProcAddressing,
-                            cloudDirs[cloudI],
-                            lagrangianPositions[cloudI],
-                            cellParticles[cloudI]
+                            procMeshList,
+                            proci,
+                            "pointProcAddressing",
+                            pointProcAddressingList
                         );
 
-                        // Lagrangian fields
+                        const pointMesh& procPMesh = pointMesh::New(procMesh);
+
+                        if (!pointFieldDecomposerList.set(proci))
                         {
-                            fieldDecomposer.decomposeFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianLabelFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFieldFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianLabelFieldFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianScalarFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFieldFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianScalarFieldFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianVectorFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFieldFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianVectorFieldFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFields
+                            pointFieldDecomposerList.set
                             (
-                                cloudDirs[cloudI],
-                                lagrangianSphericalTensorFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFieldFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianSphericalTensorFieldFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianSymmTensorFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFieldFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianSymmTensorFieldFields[cloudI]
+                                proci,
+                                new pointFieldDecomposer
+                                (
+                                    pMesh,
+                                    procPMesh,
+                                    pointProcAddressing,
+                                    boundaryProcAddressing
+                                )
                             );
-                            fieldDecomposer.decomposeFields
-                            (
-                                cloudDirs[cloudI],
-                                lagrangianTensorFields[cloudI]
-                            );
-                            fieldDecomposer.decomposeFieldFields
+                        }
+                        const pointFieldDecomposer& pointDecomposer =
+                            pointFieldDecomposerList[proci];
+
+                        pointDecomposer.decomposeFields(pointScalarFields);
+                        pointDecomposer.decomposeFields(pointVectorFields);
+                        pointDecomposer.decomposeFields
+                        (
+                            pointSphericalTensorFields
+                        );
+                        pointDecomposer.decomposeFields(pointSymmTensorFields);
+                        pointDecomposer.decomposeFields(pointTensorFields);
+
+
+                        if (times.size() == 1)
+                        {
+                            pointProcAddressingList.set(proci, nullptr);
+                            pointFieldDecomposerList.set(proci, nullptr);
+                        }
+                    }
+
+
+                    // If there is lagrangian data write it out
+                    forAll(lagrangianPositions, cloudI)
+                    {
+                        if (lagrangianPositions[cloudI].size())
+                        {
+                            lagrangianFieldDecomposer fieldDecomposer
                             (
+                                mesh,
+                                procMesh,
+                                faceProcAddressing,
+                                cellProcAddressing,
                                 cloudDirs[cloudI],
-                                lagrangianTensorFieldFields[cloudI]
+                                lagrangianPositions[cloudI],
+                                cellParticles[cloudI]
                             );
+
+                            // Lagrangian fields
+                            {
+                                fieldDecomposer.decomposeFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianLabelFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFieldFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianLabelFieldFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianScalarFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFieldFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianScalarFieldFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianVectorFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFieldFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianVectorFieldFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianSphericalTensorFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFieldFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianSphericalTensorFieldFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianSymmTensorFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFieldFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianSymmTensorFieldFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianTensorFields[cloudI]
+                                );
+                                fieldDecomposer.decomposeFieldFields
+                                (
+                                    cloudDirs[cloudI],
+                                    lagrangianTensorFieldFields[cloudI]
+                                );
+                            }
                         }
                     }
-                }
 
-                // Decompose the "uniform" directory in the time region
-                // directory
-                decomposeUniform(copyUniform, mesh, processorDb, regionDir);
+                    // Decompose the "uniform" directory in the time region
+                    // directory
+                    decomposeUniform(copyUniform, mesh, processorDb, regionDir);
 
-                // For the first region of a multi-region case additionally
-                // decompose the "uniform" directory in the time directory
-                if (regionNames.size() > 1 && regioni == 0)
-                {
-                    decomposeUniform(copyUniform, mesh, processorDb);
-                }
+                    // For the first region of a multi-region case additionally
+                    // decompose the "uniform" directory in the time directory
+                    if (regionNames.size() > 1 && regioni == 0)
+                    {
+                        decomposeUniform(copyUniform, mesh, processorDb);
+                    }
 
-                // We have cached all the constant mesh data for the current
-                // processor. This is only important if running with multiple
-                // times, otherwise it is just extra storage.
-                if (times.size() == 1)
-                {
-                    boundaryProcAddressingList.set(proci, nullptr);
-                    cellProcAddressingList.set(proci, nullptr);
-                    faceProcAddressingList.set(proci, nullptr);
-                    procMeshList.set(proci, nullptr);
-                    processorDbList.set(proci, nullptr);
+                    // We have cached all the constant mesh data for the current
+                    // processor. This is only important if running with
+                    // multiple times, otherwise it is just extra storage.
+                    if (times.size() == 1)
+                    {
+                        boundaryProcAddressingList.set(proci, nullptr);
+                        cellProcAddressingList.set(proci, nullptr);
+                        faceProcAddressingList.set(proci, nullptr);
+                        procMeshList.set(proci, nullptr);
+                        processorDbList.set(proci, nullptr);
+                    }
                 }
             }
         }
diff --git a/src/OpenFOAM/db/Time/timeSelector.C b/src/OpenFOAM/db/Time/timeSelector.C
index ecffc55dc98..7e47c12a9a8 100644
--- a/src/OpenFOAM/db/Time/timeSelector.C
+++ b/src/OpenFOAM/db/Time/timeSelector.C
@@ -135,8 +135,12 @@ void Foam::timeSelector::addOptions
     argList::addBoolOption
     (
         "noZero",
-        "exclude the '0/' dir from the times list, "
-        "has precedence over the -withZero option"
+        string("exclude the '0/' dir from the times list")
+      + (
+            withZero
+          ? ", has precedence over the -withZero option"
+          : ""
+        )
     );
     argList::addBoolOption
     (
diff --git a/tutorials/incompressible/simpleFoam/motorBike/Allclean b/tutorials/incompressible/simpleFoam/motorBike/Allclean
index 68a1d17d7b9..93a0975c85c 100755
--- a/tutorials/incompressible/simpleFoam/motorBike/Allclean
+++ b/tutorials/incompressible/simpleFoam/motorBike/Allclean
@@ -1,9 +1,10 @@
 #!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
 
 # Source tutorial clean functions
 . $WM_PROJECT_DIR/bin/tools/CleanFunctions
 
-# remove surface and features
+# Remove surface and features
 rm -f constant/triSurface/motorBike.obj.gz > /dev/null 2>&1
 rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
 rm -f constant/triSurface/motorBike.eMesh > /dev/null 2>&1
@@ -11,3 +12,5 @@ rm -f constant/triSurface/motorBike.eMesh > /dev/null 2>&1
 rm -rf 0 > /dev/null 2>&1
 
 cleanCase
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/incompressible/simpleFoam/motorBike/Allrun b/tutorials/incompressible/simpleFoam/motorBike/Allrun
index 32e10a4eee6..07069da1358 100755
--- a/tutorials/incompressible/simpleFoam/motorBike/Allrun
+++ b/tutorials/incompressible/simpleFoam/motorBike/Allrun
@@ -4,21 +4,16 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
-# copy motorbike surface from resources directory
+# Copy motorbike surface from resources directory
 cp $FOAM_TUTORIALS/resources/geometry/motorBike.obj.gz constant/triSurface/
 runApplication surfaceFeatureExtract
 
 runApplication blockMesh
 
-runApplication decomposePar
-runParallel snappyHexMesh -overwrite
-
-#- For non-parallel running
-#cp -r 0.orig 0 > /dev/null 2>&1
+[ ! -d 0 ] && cp -r 0.orig 0
 
-#- For parallel running
-ls -d processor* | xargs -I {} rm -rf ./{}/0
-ls -d processor* | xargs -I {} cp -r 0.orig ./{}/0
+runApplication decomposePar -copyZero
+runParallel snappyHexMesh -overwrite
 
 runParallel patchSummary
 runParallel potentialFoam
-- 
GitLab


From 14da5d4ee285cdf4800d980b524abcc6615811d8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 8 Mar 2017 11:51:36 +0000
Subject: [PATCH 113/277] Updated header

---
 src/OpenFOAM/db/Time/timeSelector.C | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/OpenFOAM/db/Time/timeSelector.C b/src/OpenFOAM/db/Time/timeSelector.C
index 7e47c12a9a8..b6b6e4e66e1 100644
--- a/src/OpenFOAM/db/Time/timeSelector.C
+++ b/src/OpenFOAM/db/Time/timeSelector.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
-- 
GitLab


From f5e88d6eb3cb9d5239bef89a2706b5d1efa9e7a2 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 9 Mar 2017 09:37:59 +0000
Subject: [PATCH 114/277] LES::dynamicLagrangian: Corrected access to the
 volumetric flux for compressible flow

Resolves bug-report https://bugs.openfoam.org/view.php?id=2489
---
 .../LES/dynamicLagrangian/dynamicLagrangian.C                | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
index 2a7e75130a6..00154232e37 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -159,7 +159,8 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
     }
 
     // Local references
-    const surfaceScalarField& phi = this->phi_;
+    tmp<surfaceScalarField> tphi = this->phi();
+    const surfaceScalarField& phi = tphi();
     const volVectorField& U = this->U_;
     fv::options& fvOptions(fv::options::New(this->mesh_));
 
-- 
GitLab


From c4e63c4c248da68f83001df6609ef7cf0754309d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 9 Mar 2017 17:39:27 +0000
Subject: [PATCH 115/277] functionObjects::functionObjects: Corrected initial
 totalTime for cases with variable time-step

Resolves bug-report https://bugs.openfoam.org/view.php?id=2459
---
 .../field/fieldAverage/fieldAverage.C         | 36 +++++++++----------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/functionObjects/field/fieldAverage/fieldAverage.C b/src/functionObjects/field/fieldAverage/fieldAverage.C
index a2b46f4a33d..43ab2397529 100644
--- a/src/functionObjects/field/fieldAverage/fieldAverage.C
+++ b/src/functionObjects/field/fieldAverage/fieldAverage.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,6 +67,16 @@ void Foam::functionObjects::fieldAverage::resetFields()
 
 void Foam::functionObjects::fieldAverage::initialize()
 {
+    if (!totalIter_.size())
+    {
+        totalIter_.setSize(faItems_.size(), 1);
+    }
+
+    if (!totalTime_.size())
+    {
+        totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue());
+    }
+
     resetFields();
 
     // Add mean fields to the field lists
@@ -95,15 +105,11 @@ void Foam::functionObjects::fieldAverage::initialize()
 
 void Foam::functionObjects::fieldAverage::restart()
 {
-    Log
-        << "    Restarting averaging at time " << obr_.time().timeName()
+    Log << "    Restarting averaging at time " << obr_.time().timeName()
         << nl << endl;
 
     totalIter_.clear();
-    totalIter_.setSize(faItems_.size(), 1);
-
     totalTime_.clear();
-    totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue());
 
     initialize();
 }
@@ -134,8 +140,7 @@ void Foam::functionObjects::fieldAverage::calcAverages()
         periodIndex_++;
     }
 
-    Log
-        << type() << " " << name() << " write:" << nl
+    Log << type() << " " << name() << " write:" << nl
         << "    Calculating averages" << nl;
 
     addMeanSqrToPrime2Mean<scalar, scalar>();
@@ -206,12 +211,6 @@ void Foam::functionObjects::fieldAverage::writeAveragingProperties() const
 
 void Foam::functionObjects::fieldAverage::readAveragingProperties()
 {
-    totalIter_.clear();
-    totalIter_.setSize(faItems_.size(), 1);
-
-    totalTime_.clear();
-    totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue());
-
     if ((restartOnRestart_ || restartOnOutput_) && log)
     {
         Info<< "    Starting averaging at time " << obr_.time().timeName()
@@ -232,8 +231,7 @@ void Foam::functionObjects::fieldAverage::readAveragingProperties()
 
         if (!propsDictHeader.headerOk())
         {
-            Log
-                << "    Starting averaging at time "
+            Log << "    Starting averaging at time "
                 << obr_.time().timeName() << nl;
 
             return;
@@ -243,6 +241,9 @@ void Foam::functionObjects::fieldAverage::readAveragingProperties()
 
         Log << "    Restarting averaging for fields:" << nl;
 
+        totalIter_.setSize(faItems_.size(), 1);
+        totalTime_.setSize(faItems_.size());
+
         forAll(faItems_, fieldi)
         {
             const word& fieldName = faItems_[fieldi].fieldName();
@@ -253,8 +254,7 @@ void Foam::functionObjects::fieldAverage::readAveragingProperties()
                 totalIter_[fieldi] = readLabel(fieldDict.lookup("totalIter"));
                 totalTime_[fieldi] = readScalar(fieldDict.lookup("totalTime"));
 
-                Log
-                    << "        " << fieldName
+                Log << "        " << fieldName
                     << " iters = " << totalIter_[fieldi]
                     << " time = " << totalTime_[fieldi] << nl;
             }
-- 
GitLab


From 7f5c1350203686e89eafc8fe3a5c403d4ad1666e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 9 Mar 2017 23:11:30 +0000
Subject: [PATCH 116/277] wingMotion tutorial: Corrected fvSolution file

---
 .../wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution
index 6fe4ce84478..f757a07aecd 100644
--- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution
+++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution
@@ -26,7 +26,7 @@ solvers
 
     p
     {
-        $"pcorr.*"
+        $pcorr;
         tolerance        1e-7;
         relTol           0.01;
     }
-- 
GitLab


From 942338b06cbf58c94ced9093192bf52d57d3bc8a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 9 Mar 2017 23:12:06 +0000
Subject: [PATCH 117/277] sixDoFRigidBodyDisplacementPointPatchVectorField,
 uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField: removed

These legacy boundary conditions are no longer needed and have been superseded
by the more flexible sixDoFRigidBodyMotion and rigidBodyMotion solvers.  See tutorials:

incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam
multiphase/interDyMFoam/RAS/DTCHull
multiphase/interDyMFoam/RAS/floatingObject

Resolves bug-report https://bugs.openfoam.org/view.php?id=2487
---
 src/sixDoFRigidBodyMotion/Make/files          |   3 -
 ...gidBodyDisplacementPointPatchVectorField.C | 290 ------------------
 ...gidBodyDisplacementPointPatchVectorField.H | 196 ------------
 ...gidBodyDisplacementPointPatchVectorField.C | 216 -------------
 ...gidBodyDisplacementPointPatchVectorField.H | 171 -----------
 5 files changed, 876 deletions(-)
 delete mode 100644 src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C
 delete mode 100644 src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H
 delete mode 100644 src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C
 delete mode 100644 src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H

diff --git a/src/sixDoFRigidBodyMotion/Make/files b/src/sixDoFRigidBodyMotion/Make/files
index 837d2df3fd1..f5abd78686c 100644
--- a/src/sixDoFRigidBodyMotion/Make/files
+++ b/src/sixDoFRigidBodyMotion/Make/files
@@ -24,9 +24,6 @@ $(constraints)/orientation/sixDoFRigidBodyMotionOrientationConstraint.C
 $(constraints)/plane/sixDoFRigidBodyMotionPlaneConstraint.C
 $(constraints)/point/sixDoFRigidBodyMotionPointConstraint.C
 
-pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C
-pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C
-
 sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C
 
 sixDoFSolvers/sixDoFSolver/sixDoFSolver.C
diff --git a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C b/src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C
deleted file mode 100644
index daeb9adf8d9..00000000000
--- a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C
+++ /dev/null
@@ -1,290 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 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 "sixDoFRigidBodyDisplacementPointPatchVectorField.H"
-#include "pointPatchFields.H"
-#include "addToRunTimeSelectionTable.H"
-#include "Time.H"
-#include "fvMesh.H"
-#include "volFields.H"
-#include "uniformDimensionedFields.H"
-#include "forces.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-sixDoFRigidBodyDisplacementPointPatchVectorField::
-sixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const pointPatch& p,
-    const DimensionedField<vector, pointMesh>& iF
-)
-:
-    fixedValuePointPatchField<vector>(p, iF),
-    motion_(),
-    initialPoints_(p.localPoints()),
-    rhoInf_(1.0),
-    rhoName_("rho"),
-    lookupGravity_(-1),
-    g_(Zero),
-    curTimeIndex_(-1)
-{}
-
-
-sixDoFRigidBodyDisplacementPointPatchVectorField::
-sixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const pointPatch& p,
-    const DimensionedField<vector, pointMesh>& iF,
-    const dictionary& dict
-)
-:
-    fixedValuePointPatchField<vector>(p, iF, dict),
-    motion_(dict, dict),
-    rhoInf_(1.0),
-    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
-    lookupGravity_(-1),
-    g_(Zero),
-    curTimeIndex_(-1)
-{
-    if (rhoName_ == "rhoInf")
-    {
-        rhoInf_ = readScalar(dict.lookup("rhoInf"));
-    }
-
-    if (dict.readIfPresent("g", g_))
-    {
-        lookupGravity_ = -2;
-    }
-
-    if (!dict.found("value"))
-    {
-        updateCoeffs();
-    }
-
-    if (dict.found("initialPoints"))
-    {
-        initialPoints_ = vectorField("initialPoints", dict , p.size());
-    }
-    else
-    {
-        initialPoints_ = p.localPoints();
-    }
-}
-
-
-sixDoFRigidBodyDisplacementPointPatchVectorField::
-sixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const sixDoFRigidBodyDisplacementPointPatchVectorField& ptf,
-    const pointPatch& p,
-    const DimensionedField<vector, pointMesh>& iF,
-    const pointPatchFieldMapper& mapper
-)
-:
-    fixedValuePointPatchField<vector>(ptf, p, iF, mapper),
-    motion_(ptf.motion_),
-    initialPoints_(ptf.initialPoints_, mapper),
-    rhoInf_(ptf.rhoInf_),
-    rhoName_(ptf.rhoName_),
-    lookupGravity_(ptf.lookupGravity_),
-    g_(ptf.g_),
-    curTimeIndex_(-1)
-{}
-
-
-sixDoFRigidBodyDisplacementPointPatchVectorField::
-sixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const sixDoFRigidBodyDisplacementPointPatchVectorField& ptf,
-    const DimensionedField<vector, pointMesh>& iF
-)
-:
-    fixedValuePointPatchField<vector>(ptf, iF),
-    motion_(ptf.motion_),
-    initialPoints_(ptf.initialPoints_),
-    rhoInf_(ptf.rhoInf_),
-    rhoName_(ptf.rhoName_),
-    lookupGravity_(ptf.lookupGravity_),
-    g_(ptf.g_),
-    curTimeIndex_(-1)
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void sixDoFRigidBodyDisplacementPointPatchVectorField::autoMap
-(
-    const pointPatchFieldMapper& m
-)
-{
-    fixedValuePointPatchField<vector>::autoMap(m);
-
-    initialPoints_.autoMap(m);
-}
-
-
-void sixDoFRigidBodyDisplacementPointPatchVectorField::rmap
-(
-    const pointPatchField<vector>& ptf,
-    const labelList& addr
-)
-{
-    const sixDoFRigidBodyDisplacementPointPatchVectorField& sDoFptf =
-        refCast<const sixDoFRigidBodyDisplacementPointPatchVectorField>(ptf);
-
-    fixedValuePointPatchField<vector>::rmap(sDoFptf, addr);
-
-    initialPoints_.rmap(sDoFptf.initialPoints_, addr);
-}
-
-
-void sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs()
-{
-    if (this->updated())
-    {
-        return;
-    }
-
-    if (lookupGravity_ < 0)
-    {
-        if (db().foundObject<uniformDimensionedVectorField>("g"))
-        {
-            if (lookupGravity_ == -2)
-            {
-                FatalErrorInFunction
-                    << "Specifying the value of g in this boundary condition "
-                    << "when g is available from the database is considered "
-                    << "a fatal error to avoid the possibility of inconsistency"
-                    << exit(FatalError);
-            }
-            else
-            {
-                lookupGravity_ = 1;
-            }
-        }
-        else
-        {
-            lookupGravity_ = 0;
-        }
-    }
-
-    const polyMesh& mesh = this->internalField().mesh()();
-    const Time& t = mesh.time();
-    const pointPatch& ptPatch = this->patch();
-
-    // Store the motion state at the beginning of the time-step
-    bool firstIter = false;
-    if (curTimeIndex_ != t.timeIndex())
-    {
-        motion_.newTime();
-        curTimeIndex_ = t.timeIndex();
-        firstIter = true;
-    }
-
-    dictionary forcesDict;
-
-    forcesDict.add("type", functionObjects::forces::typeName);
-    forcesDict.add("patches", wordList(1, ptPatch.name()));
-    forcesDict.add("rhoInf", rhoInf_);
-    forcesDict.add("rho", rhoName_);
-    forcesDict.add("CofR", motion_.centreOfRotation());
-
-    functionObjects::forces f("forces", db(), forcesDict);
-
-    f.calcForcesMoment();
-
-    // Get the forces on the patch faces at the current positions
-
-    if (lookupGravity_ == 1)
-    {
-        uniformDimensionedVectorField g =
-            db().lookupObject<uniformDimensionedVectorField>("g");
-
-        g_ = g.value();
-    }
-
-    // scalar ramp = min(max((t.value() - 5)/10, 0), 1);
-    scalar ramp = 1.0;
-
-    motion_.update
-    (
-        firstIter,
-        ramp*(f.forceEff() + motion_.mass()*g_),
-        ramp*(f.momentEff() + motion_.mass()*(motion_.momentArm() ^ g_)),
-        t.deltaTValue(),
-        t.deltaT0Value()
-    );
-
-    Field<vector>::operator=
-    (
-        motion_.transform(initialPoints_) - initialPoints_
-    );
-
-    fixedValuePointPatchField<vector>::updateCoeffs();
-}
-
-
-void sixDoFRigidBodyDisplacementPointPatchVectorField::write(Ostream& os) const
-{
-    pointPatchField<vector>::write(os);
-
-    os.writeKeyword("rho") << rhoName_ << token::END_STATEMENT << nl;
-
-    if (rhoName_ == "rhoInf")
-    {
-        os.writeKeyword("rhoInf") << rhoInf_ << token::END_STATEMENT << nl;
-    }
-
-    if (lookupGravity_ == 0 || lookupGravity_ == -2)
-    {
-        os.writeKeyword("g") << g_ << token::END_STATEMENT << nl;
-    }
-
-    motion_.write(os);
-
-    initialPoints_.writeEntry("initialPoints", os);
-
-    writeEntry("value", os);
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-makePointPatchTypeField
-(
-    pointPatchVectorField,
-    sixDoFRigidBodyDisplacementPointPatchVectorField
-);
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// ************************************************************************* //
diff --git a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H b/src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H
deleted file mode 100644
index 04b00170623..00000000000
--- a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H
+++ /dev/null
@@ -1,196 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 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::sixDoFRigidBodyDisplacementPointPatchVectorField
-
-Description
-    Foam::sixDoFRigidBodyDisplacementPointPatchVectorField
-
-SourceFiles
-    sixDoFRigidBodyDisplacementPointPatchVectorField.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef sixDoFRigidBodyDisplacementPointPatchVectorField_H
-#define sixDoFRigidBodyDisplacementPointPatchVectorField_H
-
-#include "fixedValuePointPatchField.H"
-#include "sixDoFRigidBodyMotion.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/*---------------------------------------------------------------------------*\
-        Class sixDoFRigidBodyDisplacementPointPatchVectorField Declaration
-\*---------------------------------------------------------------------------*/
-
-class sixDoFRigidBodyDisplacementPointPatchVectorField
-:
-    public fixedValuePointPatchField<vector>
-{
-    // Private data
-
-        //- Six dof motion object
-        sixDoFRigidBodyMotion motion_;
-
-        //- Initial positions of points on the patch
-        pointField initialPoints_;
-
-        //- Reference density required by the forces object for
-        //  incompressible calculations, required if rho == rhoInf
-        scalar rhoInf_;
-
-        //- Name of density field, optional unless used for an
-        //  incompressible simulation, when this needs to be specified
-        //  as rhoInf
-        word rhoName_;
-
-        //- State of gravity lookup:
-        //  -1 = not determined yet, as the BC may be instantiated before g has
-        //       been read into the db yet.  Determination deferred until first
-        //       call to updateCoeffs.  A g keyword was not supplied to the
-        //       dictionary.
-        //  -2 = as for -1, but a gravity value was specified in the dictionary,
-        //       specifying a value in the dictionary is considered a fatal
-        //       error if g is available from the db.
-        //   0 = Use this boundary condition's own value of gravity, as not
-        //       available from the db.
-        //   1 = Lookup gravity from db.
-        label lookupGravity_;
-
-        //- Gravity vector to store when not available from the db
-        vector g_;
-
-        //- Current time index (used for updating)
-        label curTimeIndex_;
-
-
-public:
-
-    //- Runtime type information
-    TypeName("sixDoFRigidBodyDisplacement");
-
-
-    // Constructors
-
-        //- Construct from patch and internal field
-        sixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const pointPatch&,
-            const DimensionedField<vector, pointMesh>&
-        );
-
-        //- Construct from patch, internal field and dictionary
-        sixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const pointPatch&,
-            const DimensionedField<vector, pointMesh>&,
-            const dictionary&
-        );
-
-        //- Construct by mapping given patchField<vector> onto a new patch
-        sixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const sixDoFRigidBodyDisplacementPointPatchVectorField&,
-            const pointPatch&,
-            const DimensionedField<vector, pointMesh>&,
-            const pointPatchFieldMapper&
-        );
-
-        //- Construct and return a clone
-        virtual autoPtr<pointPatchField<vector>> clone() const
-        {
-            return autoPtr<pointPatchField<vector>>
-            (
-                new sixDoFRigidBodyDisplacementPointPatchVectorField
-                (
-                    *this
-                )
-            );
-        }
-
-        //- Construct as copy setting internal field reference
-        sixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const sixDoFRigidBodyDisplacementPointPatchVectorField&,
-            const DimensionedField<vector, pointMesh>&
-        );
-
-        //- Construct and return a clone setting internal field reference
-        virtual autoPtr<pointPatchField<vector>> clone
-        (
-            const DimensionedField<vector, pointMesh>& iF
-        ) const
-        {
-            return autoPtr<pointPatchField<vector>>
-            (
-                new sixDoFRigidBodyDisplacementPointPatchVectorField
-                (
-                    *this,
-                    iF
-                )
-            );
-        }
-
-
-    // Member functions
-
-        // Mapping functions
-
-            //- Map (and resize as needed) from self given a mapping object
-            virtual void autoMap
-            (
-                const pointPatchFieldMapper&
-            );
-
-            //- Reverse map the given pointPatchField onto this pointPatchField
-            virtual void rmap
-            (
-                const pointPatchField<vector>&,
-                const labelList&
-            );
-
-
-        // Evaluation functions
-
-            //- Update the coefficients associated with the patch field
-            virtual void updateCoeffs();
-
-
-        //- Write
-        virtual void write(Ostream&) const;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C b/src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C
deleted file mode 100644
index 123b128b923..00000000000
--- a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C
+++ /dev/null
@@ -1,216 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 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 "uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H"
-#include "pointPatchFields.H"
-#include "addToRunTimeSelectionTable.H"
-#include "Time.H"
-#include "fvMesh.H"
-#include "volFields.H"
-#include "uniformDimensionedFields.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const pointPatch& p,
-    const DimensionedField<vector, pointMesh>& iF
-)
-:
-    fixedValuePointPatchField<vector>(p, iF),
-    motion_(),
-    initialPoints_(p.localPoints()),
-    curTimeIndex_(-1)
-{}
-
-
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const pointPatch& p,
-    const DimensionedField<vector, pointMesh>& iF,
-    const dictionary& dict
-)
-:
-    fixedValuePointPatchField<vector>(p, iF, dict),
-    motion_(dict, dict),
-    curTimeIndex_(-1)
-{
-    if (!dict.found("value"))
-    {
-        updateCoeffs();
-    }
-
-    if (dict.found("initialPoints"))
-    {
-        initialPoints_ = vectorField("initialPoints", dict , p.size());
-    }
-    else
-    {
-        initialPoints_ = p.localPoints();
-    }
-}
-
-
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField& ptf,
-    const pointPatch& p,
-    const DimensionedField<vector, pointMesh>& iF,
-    const pointPatchFieldMapper& mapper
-)
-:
-    fixedValuePointPatchField<vector>(ptf, p, iF, mapper),
-    motion_(ptf.motion_),
-    initialPoints_(ptf.initialPoints_, mapper),
-    curTimeIndex_(-1)
-{}
-
-
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::
-uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-(
-    const uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField& ptf,
-    const DimensionedField<vector, pointMesh>& iF
-)
-:
-    fixedValuePointPatchField<vector>(ptf, iF),
-    motion_(ptf.motion_),
-    initialPoints_(ptf.initialPoints_),
-    curTimeIndex_(-1)
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::autoMap
-(
-    const pointPatchFieldMapper& m
-)
-{
-    fixedValuePointPatchField<vector>::autoMap(m);
-
-    initialPoints_.autoMap(m);
-}
-
-
-void uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::rmap
-(
-    const pointPatchField<vector>& ptf,
-    const labelList& addr
-)
-{
-    const uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField& uSDoFptf =
-    refCast
-    <
-        const uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-    >(ptf);
-
-    fixedValuePointPatchField<vector>::rmap(uSDoFptf, addr);
-
-    initialPoints_.rmap(uSDoFptf.initialPoints_, addr);
-}
-
-
-void uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs()
-{
-    if (this->updated())
-    {
-        return;
-    }
-
-    const polyMesh& mesh = this->internalField().mesh()();
-    const Time& t = mesh.time();
-
-    // Store the motion state at the beginning of the time-step
-    bool firstIter = false;
-    if (curTimeIndex_ != t.timeIndex())
-    {
-        motion_.newTime();
-        curTimeIndex_ = t.timeIndex();
-        firstIter = true;
-    }
-
-    vector gravity = Zero;
-
-    if (db().foundObject<uniformDimensionedVectorField>("g"))
-    {
-        uniformDimensionedVectorField g =
-        db().lookupObject<uniformDimensionedVectorField>("g");
-
-        gravity = g.value();
-    }
-
-    // Do not modify the accelerations, except with gravity, where available
-    motion_.update
-    (
-        firstIter,
-        gravity*motion_.mass(),
-        Zero,
-        t.deltaTValue(),
-        t.deltaT0Value()
-    );
-
-    Field<vector>::operator=
-    (
-        motion_.transform(initialPoints_) - initialPoints_
-    );
-
-    fixedValuePointPatchField<vector>::updateCoeffs();
-}
-
-
-void uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::write
-(
-    Ostream& os
-) const
-{
-    pointPatchField<vector>::write(os);
-    motion_.write(os);
-    initialPoints_.writeEntry("initialPoints", os);
-    writeEntry("value", os);
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-makePointPatchTypeField
-(
-    pointPatchVectorField,
-    uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-);
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// ************************************************************************* //
diff --git a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H b/src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H
deleted file mode 100644
index b5025104db5..00000000000
--- a/src/sixDoFRigidBodyMotion/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H
+++ /dev/null
@@ -1,171 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 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::uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-
-Description
-    Foam::uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-
-SourceFiles
-    uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField_H
-#define uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField_H
-
-#include "fixedValuePointPatchField.H"
-#include "sixDoFRigidBodyMotion.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/*---------------------------------------------------------------------------*\
-  Class uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField Declaration
-\*---------------------------------------------------------------------------*/
-
-class uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-:
-    public fixedValuePointPatchField<vector>
-{
-    // Private data
-
-        //- Six dof motion object
-        sixDoFRigidBodyMotion motion_;
-
-        //- Initial positions of points on the patch
-        pointField initialPoints_;
-
-        //- Current time index (used for updating)
-        label curTimeIndex_;
-
-
-public:
-
-    //- Runtime type information
-    TypeName("uncoupledSixDoFRigidBodyDisplacement");
-
-
-    // Constructors
-
-        //- Construct from patch and internal field
-        uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const pointPatch&,
-            const DimensionedField<vector, pointMesh>&
-        );
-
-        //- Construct from patch, internal field and dictionary
-        uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const pointPatch&,
-            const DimensionedField<vector, pointMesh>&,
-            const dictionary&
-        );
-
-        //- Construct by mapping given patchField<vector> onto a new patch
-        uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField&,
-            const pointPatch&,
-            const DimensionedField<vector, pointMesh>&,
-            const pointPatchFieldMapper&
-        );
-
-        //- Construct and return a clone
-        virtual autoPtr<pointPatchField<vector>> clone() const
-        {
-            return autoPtr<pointPatchField<vector>>
-            (
-                new uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-                (
-                    *this
-                )
-            );
-        }
-
-        //- Construct as copy setting internal field reference
-        uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-        (
-            const uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField&,
-            const DimensionedField<vector, pointMesh>&
-        );
-
-        //- Construct and return a clone setting internal field reference
-        virtual autoPtr<pointPatchField<vector>> clone
-        (
-            const DimensionedField<vector, pointMesh>& iF
-        ) const
-        {
-            return autoPtr<pointPatchField<vector>>
-            (
-                new uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
-                (
-                    *this,
-                    iF
-                )
-            );
-        }
-
-
-    // Member functions
-
-        // Mapping functions
-
-            //- Map (and resize as needed) from self given a mapping object
-            virtual void autoMap
-            (
-                const pointPatchFieldMapper&
-            );
-
-            //- Reverse map the given pointPatchField onto this pointPatchField
-            virtual void rmap
-            (
-                const pointPatchField<vector>&,
-                const labelList&
-            );
-
-
-        // Evaluation functions
-
-            //- Update the coefficients associated with the patch field
-            virtual void updateCoeffs();
-
-
-        //- Write
-        virtual void write(Ostream&) const;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
-- 
GitLab


From af088a5c78cec36c097765e7d55a8728593f3356 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 10 Mar 2017 11:07:41 +0000
Subject: [PATCH 118/277] turbulenceModels::LES::dynamicLagrangian: Converted
 advection to compressible convection form

Formally this is equivalent to the previous formulation but more convenient to
use given that for compressible flow the mass flux rather than the volume flux
is available.
---
 .../LES/dynamicLagrangian/dynamicLagrangian.C | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
index 00154232e37..28ad1eb75aa 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
@@ -159,8 +159,9 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
     }
 
     // Local references
-    tmp<surfaceScalarField> tphi = this->phi();
-    const surfaceScalarField& phi = tphi();
+    const alphaField& alpha = this->alpha_;
+    const rhoField& rho = this->rho_;
+    const surfaceScalarField& alphaRhoPhi = this->alphaRhoPhi_;
     const volVectorField& U = this->U_;
     fv::options& fvOptions(fv::options::New(this->mesh_));
 
@@ -184,19 +185,19 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
 
     volScalarField invT
     (
-        (1.0/(theta_.value()*this->delta()))*pow(flm_*fmm_, 1.0/8.0)
+        alpha*rho*(1.0/(theta_.value()*this->delta()))*pow(flm_*fmm_, 1.0/8.0)
     );
 
     volScalarField LM(L && M);
 
     fvScalarMatrix flmEqn
     (
-        fvm::ddt(flm_)
-      + fvm::div(phi, flm_)
+        fvm::ddt(alpha, rho, flm_)
+      + fvm::div(alphaRhoPhi, flm_)
      ==
         invT*LM
       - fvm::Sp(invT, flm_)
-      + fvOptions(flm_)
+      + fvOptions(alpha, rho, flm_)
     );
 
     flmEqn.relax();
@@ -209,12 +210,12 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
 
     fvScalarMatrix fmmEqn
     (
-        fvm::ddt(fmm_)
-      + fvm::div(phi, fmm_)
+        fvm::ddt(alpha, rho, fmm_)
+      + fvm::div(alphaRhoPhi, fmm_)
      ==
         invT*MM
       - fvm::Sp(invT, fmm_)
-      + fvOptions(fmm_)
+      + fvOptions(alpha, rho, fmm_)
     );
 
     fmmEqn.relax();
-- 
GitLab


From 11a2ea7c61fca8c4c48bfddc925ffaca577006ba Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 10 Mar 2017 11:08:10 +0000
Subject: [PATCH 119/277] CrankNicolsonDdtScheme: Corrected fvcDdtUfCorr for
 compressible flow

Resolves bug-report https://bugs.openfoam.org/view.php?id=2491
---
 .../CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C           | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index 0c7fe053b3b..dd12b2552f1 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -1255,7 +1255,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
             ddt0_<GeometricField<Type, fvPatchField, volMesh>>
             (
                 "ddtCorrDdt0(" + rho.name() + ',' + U.name() + ')',
-                U.dimensions()
+                rho.dimensions()*U.dimensions()
             );
 
         DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh>>& dUfdt0 =
@@ -1350,7 +1350,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
             ddt0_<GeometricField<Type, fvPatchField, volMesh>>
             (
                 "ddtCorrDdt0(" + rho.name() + ',' + U.name() + ')',
-                U.dimensions()
+                rho.dimensions()*U.dimensions()
             );
 
         DDt0Field<fluxFieldType>& dphidt0 =
-- 
GitLab


From 812a9a53ed5bf772e8049379a7a63ce6d1ba2e01 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 10 Mar 2017 17:08:16 +0000
Subject: [PATCH 120/277] Upgraded to OpenMPI-2.0.2

---
 etc/config.csh/mpi | 4 ++--
 etc/config.sh/mpi  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi
index 34280a12c91..7a0bae2d1fd 100644
--- a/etc/config.csh/mpi
+++ b/etc/config.csh/mpi
@@ -2,7 +2,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -51,7 +51,7 @@ case SYSTEMOPENMPI:
     breaksw
 
 case OPENMPI:
-    setenv FOAM_MPI openmpi-1.10.2
+    setenv FOAM_MPI openmpi-2.0.2
     # Optional configuration tweaks:
     _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/openmpi`
 
diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi
index 8c679f6568b..9a5c7775c25 100644
--- a/etc/config.sh/mpi
+++ b/etc/config.sh/mpi
@@ -2,7 +2,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -54,7 +54,7 @@ SYSTEMOPENMPI)
     ;;
 
 OPENMPI)
-    export FOAM_MPI=openmpi-1.10.2
+    export FOAM_MPI=openmpi-2.0.2
     # Optional configuration tweaks:
     _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/openmpi`
 
-- 
GitLab


From 96ad725a0b05830f3bd5c35e12816c79ceb1f72b Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 10 Mar 2017 19:54:55 +0000
Subject: [PATCH 121/277] Updated UPstream::commsTypes to use the C++11 enum
 class

---
 .../mixedFixedValueSlipFvPatchField.H         |   5 +-
 applications/test/FixedList/Test-FixedList.C  |  10 +-
 .../Test-parallel-communicators.C             |  10 +-
 .../Test-parallel-nonBlocking.C               |   8 +-
 applications/test/parallel/Test-parallel.C    |  18 ++-
 applications/test/router/Gather/Gather.C      |  18 ++-
 .../conformalVoronoiMeshIO.C                  |   4 +-
 .../mesh/manipulation/checkMesh/checkTools.C  |   6 +-
 .../manipulation/createPatch/createPatch.C    |  10 +-
 .../splitMeshRegions/splitMeshRegions.C       |  10 +-
 .../redistributePar/loadOrCreateMesh.C        |  10 +-
 .../redistributePar/redistributePar.C         |  10 +-
 .../foamToEnsight/ensightField.C              |  10 +-
 .../foamToEnsight/ensightMesh.C               |  66 ++++++---
 .../preProcessing/mapFieldsPar/MapVolFields.H |  14 +-
 .../Lists/SortableList/ParSortableList.C      |   6 +-
 .../IOobjects/IOdictionary/IOdictionaryIO.C   |   6 +-
 .../db/IOstreams/Pstreams/PstreamBuffers.C    |   6 +-
 .../db/IOstreams/Pstreams/PstreamBuffers.H    |   4 +-
 .../db/IOstreams/Pstreams/UOPstream.C         |   4 +-
 src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H |   4 +-
 .../IOstreams/Pstreams/combineGatherScatter.C |  91 +++++++++---
 src/OpenFOAM/db/IOstreams/Pstreams/exchange.C |   6 +-
 .../db/IOstreams/Pstreams/gatherScatter.C     |  18 +--
 .../db/IOstreams/Pstreams/gatherScatterList.C |  32 +++--
 src/OpenFOAM/db/regIOobject/regIOobjectRead.C |   6 +-
 .../GeometricField/GeometricBoundaryField.C   |  14 +-
 .../basicSymmetryPointPatchField.H            |   5 +-
 .../basic/coupled/coupledPointPatchField.H    |   5 +-
 .../basic/value/valuePointPatchField.H        |   5 +-
 .../constraint/cyclic/cyclicPointPatchField.H |   5 +-
 .../cyclicSlip/cyclicSlipPointPatchField.H    |  15 +-
 ...nonuniformTransformCyclicPointPatchField.H |  15 +-
 .../processor/processorPointPatchField.H      |   7 +-
 .../processorCyclicPointPatchField.C          |   6 +-
 .../processorCyclicPointPatchField.H          |   5 +-
 .../symmetryPlanePointPatchField.H            |  14 +-
 .../constraint/wedge/wedgePointPatchField.H   |  26 ++--
 .../codedFixedValuePointPatchField.H          |   4 +-
 .../fixedNormalSlipPointPatchField.H          |  15 +-
 .../pointPatchField/pointPatchField.H         |   8 +-
 src/OpenFOAM/global/argList/argList.C         |  20 ++-
 .../matrices/LUscalarMatrix/LUscalarMatrix.C  |   6 +-
 .../LUscalarMatrix/LUscalarMatrixTemplates.C  |  10 +-
 .../LduMatrixUpdateMatrixInterfaces.C         |  24 ++--
 .../processorLduInterfaceTemplates.C          |  42 ++++--
 .../lduMatrixUpdateMatrixInterfaces.C         |  22 +--
 .../GAMGAgglomerateLduAddressing.C            |  12 +-
 .../GAMGAgglomerationTemplates.C              |  10 +-
 .../GAMGProcAgglomeration.C                   |   6 +-
 .../GAMG/GAMGSolverAgglomerateMatrix.C        |   6 +-
 .../processorGAMGInterfaceField.C             |  18 ++-
 .../ProcessorTopology/ProcessorTopology.C     |   8 +-
 .../meshes/lduMesh/lduPrimitiveMesh.C         |   6 +-
 .../pointBoundaryMesh/pointBoundaryMesh.C     |  20 +--
 .../polyMesh/globalMeshData/globalIndex.H     |  20 ++-
 .../globalMeshData/globalIndexTemplates.C     |  26 +++-
 .../polyMesh/globalMeshData/globalMeshData.C  |  39 ++++--
 .../polyMesh/globalMeshData/globalPoints.C    |  10 +-
 .../mapDistribute/mapDistributeBase.C         |  24 ++--
 .../mapDistribute/mapDistributeBase.H         |   7 +-
 .../mapDistributeBaseTemplates.C              | 132 ++++++++++++------
 .../polyBoundaryMesh/polyBoundaryMesh.C       |  20 +--
 .../polyMesh/syncTools/syncToolsTemplates.C   |  40 ++++--
 .../PatchTools/PatchToolsGatherAndMerge.C     |   6 +-
 src/Pstream/mpi/UIPread.C                     |  18 ++-
 src/Pstream/mpi/UOPwrite.C                    |   8 +-
 ...oupledTemperatureMixedFvPatchScalarField.H |  19 ++-
 .../kqRWallFunctionFvPatchField.H             |  21 ++-
 .../fvMeshDistribute/fvMeshDistribute.C       |   6 +-
 src/dynamicMesh/fvMeshSubset/fvMeshSubset.C   |   4 +-
 .../motionSmoother/motionSmootherAlgo.C       |  14 +-
 .../motionSmootherAlgoTemplates.C             |   6 +-
 .../hexRef8/refinementHistory.C               |   4 +-
 .../polyTopoChange/polyTopoChange.C           |   4 +-
 .../basicSymmetry/basicSymmetryFvPatchField.H |  22 ++-
 .../directionMixedFvPatchField.H              |   5 +-
 .../extrapolatedCalculatedFvPatchField.H      |  14 +-
 .../fixedGradient/fixedGradientFvPatchField.H |   5 +-
 .../basic/mixed/mixedFvPatchField.H           |   5 +-
 .../basic/sliced/slicedFvPatchField.H         |   8 +-
 .../zeroGradient/zeroGradientFvPatchField.H   |   5 +-
 .../constraint/cyclic/cyclicFvPatchField.C    |   4 +-
 .../cyclicACMI/cyclicACMIFvPatchField.C       |   4 +-
 .../cyclicAMI/cyclicAMIFvPatchField.C         |   4 +-
 .../jumpCyclic/jumpCyclicFvPatchField.C       |   4 +-
 .../jumpCyclicAMI/jumpCyclicAMIFvPatchField.C |   4 +-
 .../processor/processorFvPatchField.C         |  50 +++++--
 .../processor/processorFvPatchScalarField.C   |  18 ++-
 .../processorCyclicFvPatchField.C             |   4 +-
 .../symmetryPlane/symmetryPlaneFvPatchField.H |  22 ++-
 .../constraint/wedge/wedgeFvPatchField.H      |  22 ++-
 .../codedFixedValueFvPatchField.H             |   4 +-
 .../codedMixed/codedMixedFvPatchField.H       |   4 +-
 .../externalCoupledMixedFvPatchField.H        |  54 ++++---
 .../derived/fan/fanFvPatchFields.C            |   4 +-
 .../derived/fixedJump/fixedJumpFvPatchField.C |   4 +-
 .../fixedJumpAMI/fixedJumpAMIFvPatchField.C   |   4 +-
 .../fixedNormalSlipFvPatchField.H             |   5 +-
 .../flowRateInletVelocityFvPatchVectorField.C |   4 +-
 .../fluxCorrectedVelocityFvPatchVectorField.H |  15 +-
 .../partialSlip/partialSlipFvPatchField.H     |   5 +-
 .../timeVaryingMappedFixedValueFvPatchField.C |   4 +-
 .../uniformJump/uniformJumpFvPatchField.C     |   4 +-
 .../uniformJumpAMIFvPatchField.C              |   4 +-
 .../fvPatchFields/fvPatchField/fvPatchField.H |   8 +-
 .../volPointInterpolate.C                     |   6 +-
 .../field/streamLine/streamLine.C             |   6 +-
 .../wallBoundedStreamLine.C                   |   6 +-
 .../MGridGenGAMGAgglomeration.C               |   6 +-
 ...aceSlipDisplacementPointPatchVectorField.H |   4 +-
 ...meVaryingMappedFixedValuePointPatchField.C |   4 +-
 src/lagrangian/basic/Cloud/Cloud.C            |   4 +-
 .../basic/InteractionLists/InteractionLists.H |   4 +-
 .../PairCollision/PairCollision.C             |   4 +-
 .../molecule/moleculeCloud/moleculeCloud.C    |   6 +-
 .../meshRefinement/meshRefinement.C           |   4 +-
 .../meshRefinement/meshRefinementTemplates.C  |   6 +-
 .../AMIInterpolation/AMIInterpolation.C       |   6 +-
 .../AMIInterpolationParallelOps.C             |   4 +-
 .../cyclicACMIPointPatchField.H               |   5 +-
 .../cyclicAMIPointPatchField.H                |   5 +-
 .../algorithms/MeshWave/FaceCellWave.C        |   4 +-
 .../algorithms/PointEdgeWave/PointEdgeWave.C  |   4 +-
 .../simpleGeomDecomp/simpleGeomDecomp.C       |  34 +++--
 .../decompose/ptscotchDecomp/ptscotchDecomp.C |  14 +-
 .../decompose/scotchDecomp/scotchDecomp.C     |  18 ++-
 .../distributedTriSurfaceMesh.C               |   6 +-
 src/sampling/meshToMesh/meshToMesh.C          |   6 +-
 .../meshToMesh/meshToMeshParallelOps.C        |   4 +-
 .../sampledSurface/isoSurface/isoSurface.C    |  14 +-
 .../energyJump/energyJumpFvPatchScalarField.C |   4 +-
 .../energyJumpAMIFvPatchScalarField.C         |   4 +-
 .../alphaContactAngleFvPatchScalarField.H     |   4 +-
 134 files changed, 1012 insertions(+), 686 deletions(-)

diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.H b/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.H
index 5ab7d3835fb..be5014394de 100644
--- a/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.H
+++ b/applications/solvers/compressible/rhoCentralFoam/BCs/mixedFixedValueSlip/mixedFixedValueSlipFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -184,7 +184,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType=
+                    Pstream::commsTypes::blocking
             );
 
             //- Return face-gradient transform diagonal
diff --git a/applications/test/FixedList/Test-FixedList.C b/applications/test/FixedList/Test-FixedList.C
index 0a2c56a2291..ec496e1e034 100644
--- a/applications/test/FixedList/Test-FixedList.C
+++ b/applications/test/FixedList/Test-FixedList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,7 +92,11 @@ int main(int argc, char *argv[])
             Serr<< "slave sending to master "
                 << Pstream::masterNo() << endl;
 
-            OPstream toMaster(Pstream::blocking, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::blocking,
+                Pstream::masterNo()
+            );
 
             FixedList<label, 2> list3;
             list3[0] = 0;
@@ -109,7 +113,7 @@ int main(int argc, char *argv[])
             )
             {
                 Serr << "master receiving from slave " << slave << endl;
-                IPstream fromSlave(Pstream::blocking, slave);
+                IPstream fromSlave(Pstream::commsTypes::blocking, slave);
                 FixedList<label, 2> list3(fromSlave);
 
                 Serr<< list3 << endl;
diff --git a/applications/test/parallel-communicators/Test-parallel-communicators.C b/applications/test/parallel-communicators/Test-parallel-communicators.C
index 5593e07eff4..d3805c24fde 100644
--- a/applications/test/parallel-communicators/Test-parallel-communicators.C
+++ b/applications/test/parallel-communicators/Test-parallel-communicators.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ scalar sumReduce
                 scalar slaveValue;
                 UIPstream::read
                 (
-                    Pstream::blocking,
+                    Pstream::commsTypes::blocking,
                     slave,
                     reinterpret_cast<char*>(&slaveValue),
                     sizeof(scalar),
@@ -87,7 +87,7 @@ scalar sumReduce
             {
                 UOPstream::write
                 (
-                    UPstream::blocking,
+                    UPstream::commsTypes::blocking,
                     slave,
                     reinterpret_cast<const char*>(&sum),
                     sizeof(scalar),
@@ -101,7 +101,7 @@ scalar sumReduce
             {
                 UOPstream::write
                 (
-                    UPstream::blocking,
+                    UPstream::commsTypes::blocking,
                     UPstream::masterNo(),
                     reinterpret_cast<const char*>(&localValue),
                     sizeof(scalar),
@@ -113,7 +113,7 @@ scalar sumReduce
             {
                 UIPstream::read
                 (
-                    UPstream::blocking,
+                    UPstream::commsTypes::blocking,
                     UPstream::masterNo(),
                     reinterpret_cast<char*>(&sum),
                     sizeof(scalar),
diff --git a/applications/test/parallel-nonBlocking/Test-parallel-nonBlocking.C b/applications/test/parallel-nonBlocking/Test-parallel-nonBlocking.C
index eb37bd07f52..0e557174832 100644
--- a/applications/test/parallel-nonBlocking/Test-parallel-nonBlocking.C
+++ b/applications/test/parallel-nonBlocking/Test-parallel-nonBlocking.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
             Pstream::myProcNo()
         );
 
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         if (Pstream::myProcNo() != Pstream::masterNo())
         {
@@ -100,7 +100,7 @@ int main(int argc, char *argv[])
 
 
         // Send allData back
-        PstreamBuffers pBufs2(Pstream::nonBlocking);
+        PstreamBuffers pBufs2(Pstream::commsTypes::nonBlocking);
         if (Pstream::myProcNo() == Pstream::masterNo())
         {
             for
@@ -149,7 +149,7 @@ int main(int argc, char *argv[])
 
     // Do a non-blocking send inbetween
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         for (label proci = 0; proci < Pstream::nProcs(); proci++)
         {
diff --git a/applications/test/parallel/Test-parallel.C b/applications/test/parallel/Test-parallel.C
index a9fe2b66737..0766ffb5ab5 100644
--- a/applications/test/parallel/Test-parallel.C
+++ b/applications/test/parallel/Test-parallel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -147,13 +147,21 @@ int main(int argc, char *argv[])
             {
                 Perr<< "slave sending to master "
                     << Pstream::masterNo() << endl;
-                OPstream toMaster(Pstream::blocking, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::blocking,
+                    Pstream::masterNo()
+                );
                 toMaster << data;
             }
 
             Perr<< "slave receiving from master "
                 << Pstream::masterNo() << endl;
-            IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::blocking,
+                Pstream::masterNo()
+            );
             fromMaster >> data;
 
             Perr<< data << endl;
@@ -168,7 +176,7 @@ int main(int argc, char *argv[])
             )
             {
                 Perr << "master receiving from slave " << slave << endl;
-                IPstream fromSlave(Pstream::blocking, slave);
+                IPstream fromSlave(Pstream::commsTypes::blocking, slave);
                 fromSlave >> data;
 
                 Perr<< data << endl;
@@ -182,7 +190,7 @@ int main(int argc, char *argv[])
             )
             {
                 Perr << "master sending to slave " << slave << endl;
-                OPstream toSlave(Pstream::blocking, slave);
+                OPstream toSlave(Pstream::commsTypes::blocking, slave);
                 toSlave << data;
             }
         }
diff --git a/applications/test/router/Gather/Gather.C b/applications/test/router/Gather/Gather.C
index dd2035b6264..24391f4e35e 100644
--- a/applications/test/router/Gather/Gather.C
+++ b/applications/test/router/Gather/Gather.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,7 +63,7 @@ Gather<T0>::Gather(const T0& localData, const bool redistribute)
                 slave++, procIndex++
             )
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 fromSlave >> this->operator[](procIndex);
             }
 
@@ -75,7 +75,7 @@ Gather<T0>::Gather(const T0& localData, const bool redistribute)
                 slave++, procIndex++
             )
             {
-                OPstream toSlave(Pstream::scheduled, slave);
+                OPstream toSlave(Pstream::commsTypes::scheduled, slave);
 
                 if (redistribute)
                 {
@@ -92,13 +92,21 @@ Gather<T0>::Gather(const T0& localData, const bool redistribute)
         {
             // Slave: send my local data to master
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 toMaster << localData;
             }
 
             // Receive data from master
             {
-                IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+                IPstream fromMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 if (redistribute)
                 {
                     fromMaster >> *this;
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C
index c61a0b1d593..3e6e60617e3 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -641,7 +641,7 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches
     labelList rotation(faces.size(), label(0));
     labelList faceMap(faces.size(), label(-1));
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     // Send ordering
     forAll(sortMesh.boundaryMesh(), patchi)
diff --git a/applications/utilities/mesh/manipulation/checkMesh/checkTools.C b/applications/utilities/mesh/manipulation/checkMesh/checkTools.C
index aeabdf754bd..3f65097b4c2 100644
--- a/applications/utilities/mesh/manipulation/checkMesh/checkTools.C
+++ b/applications/utilities/mesh/manipulation/checkMesh/checkTools.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -417,7 +417,7 @@ void Foam::mergeAndWrite
             // Receive slave ones
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
 
                 pointField slavePts(fromSlave);
                 labelList slaveIDs(fromSlave);
@@ -433,7 +433,7 @@ void Foam::mergeAndWrite
             // be improved.
             OPstream toMaster
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 Pstream::masterNo(),
                 myPoints.byteSize() + myIDs.byteSize()
             );
diff --git a/applications/utilities/mesh/manipulation/createPatch/createPatch.C b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
index fd63da0cdb7..a756692b252 100644
--- a/applications/utilities/mesh/manipulation/createPatch/createPatch.C
+++ b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -348,7 +348,11 @@ void syncPoints
                     }
                 }
 
-                OPstream toNbr(Pstream::blocking, procPatch.neighbProcNo());
+                OPstream toNbr
+                (
+                    Pstream::commsTypes::blocking,
+                    procPatch.neighbProcNo()
+                );
                 toNbr << patchInfo;
             }
         }
@@ -376,7 +380,7 @@ void syncPoints
                     // so cannot use Pstream::read.
                     IPstream fromNbr
                     (
-                        Pstream::blocking,
+                        Pstream::commsTypes::blocking,
                         procPatch.neighbProcNo()
                     );
                     fromNbr >> nbrPatchInfo;
diff --git a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
index eddfe518984..ae9c8342924 100644
--- a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
+++ b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -394,7 +394,7 @@ void getInterfaceSizes
                 slave++
             )
             {
-                IPstream fromSlave(Pstream::blocking, slave);
+                IPstream fromSlave(Pstream::commsTypes::blocking, slave);
 
                 EdgeMap<Map<label>> slaveSizes(fromSlave);
 
@@ -439,7 +439,11 @@ void getInterfaceSizes
         {
             // Send to master
             {
-                OPstream toMaster(Pstream::blocking, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::blocking,
+                    Pstream::masterNo()
+                );
                 toMaster << regionsToSize;
             }
         }
diff --git a/applications/utilities/parallelProcessing/redistributePar/loadOrCreateMesh.C b/applications/utilities/parallelProcessing/redistributePar/loadOrCreateMesh.C
index 8b16b183f3a..1bad1c79934 100644
--- a/applications/utilities/parallelProcessing/redistributePar/loadOrCreateMesh.C
+++ b/applications/utilities/parallelProcessing/redistributePar/loadOrCreateMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,14 +97,18 @@ Foam::autoPtr<Foam::fvMesh> Foam::loadOrCreateMesh
             slave++
         )
         {
-            OPstream toSlave(Pstream::scheduled, slave);
+            OPstream toSlave(Pstream::commsTypes::scheduled, slave);
             toSlave << patchEntries;
         }
     }
     else
     {
         // Receive patches
-        IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+        IPstream fromMaster
+        (
+            Pstream::commsTypes::scheduled,
+            Pstream::masterNo()
+        );
         fromMaster >> patchEntries;
     }
 
diff --git a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
index 89580aa9af2..65ab3bbb97f 100644
--- a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
+++ b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -304,7 +304,7 @@ void readFields
                 {
                     if (!haveMesh[proci])
                     {
-                        OPstream toProc(Pstream::blocking, proci);
+                        OPstream toProc(Pstream::commsTypes::blocking, proci);
                         toProc<< tsubfld();
                     }
                 }
@@ -320,7 +320,11 @@ void readFields
             const word& name = masterNames[i];
 
             // Receive field
-            IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::blocking,
+                Pstream::masterNo()
+            );
             dictionary fieldDict(fromMaster);
 
             fields.set
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C
index 2070b0a6219..751569bb066 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -110,7 +110,7 @@ void writeField
 
                 for (int slave=1; slave<Pstream::nProcs(); slave++)
                 {
-                    IPstream fromSlave(Pstream::scheduled, slave);
+                    IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                     scalarField slaveData(fromSlave);
                     ensightFile.write(slaveData);
                 }
@@ -120,7 +120,11 @@ void writeField
         {
             for (direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 toMaster<< vf.component(cmpt);
             }
         }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
index 4d08207dd04..ef0abd3e785 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -694,7 +694,7 @@ void Foam::ensightMesh::writeAllPolys
             // Slaves
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 labelList polys(fromSlave);
                 cellList cellFaces(fromSlave);
 
@@ -708,7 +708,11 @@ void Foam::ensightMesh::writeAllPolys
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< meshCellSets_.polys << cellFaces;
         }
 
@@ -727,7 +731,7 @@ void Foam::ensightMesh::writeAllPolys
             // Slaves
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 labelList polys(fromSlave);
                 cellList cellFaces(fromSlave);
                 faceList faces(fromSlave);
@@ -743,7 +747,11 @@ void Foam::ensightMesh::writeAllPolys
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< meshCellSets_.polys << cellFaces << faces;
         }
 
@@ -763,7 +771,7 @@ void Foam::ensightMesh::writeAllPolys
             // Slaves
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 labelList polys(fromSlave);
                 cellList cellFaces(fromSlave);
                 faceList faces(fromSlave);
@@ -781,7 +789,11 @@ void Foam::ensightMesh::writeAllPolys
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< meshCellSets_.polys << cellFaces << faces << faceOwner;
         }
     }
@@ -807,7 +819,7 @@ void Foam::ensightMesh::writeAllPrims
 
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 cellShapeList cellShapes(fromSlave);
 
                 writePrims(cellShapes, ensightGeometryFile);
@@ -815,7 +827,11 @@ void Foam::ensightMesh::writeAllPrims
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< cellShapes;
         }
     }
@@ -867,7 +883,7 @@ void Foam::ensightMesh::writeAllFacePrims
 
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 faceList patchFaces(fromSlave);
 
                 writeFacePrims(patchFaces, ensightGeometryFile);
@@ -875,7 +891,11 @@ void Foam::ensightMesh::writeAllFacePrims
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< UIndirectList<face>(patchFaces, prims);
         }
     }
@@ -932,7 +952,7 @@ void Foam::ensightMesh::writeAllNSided
 
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 faceList patchFaces(fromSlave);
 
                 writeNSidedNPointsPerFace
@@ -944,7 +964,11 @@ void Foam::ensightMesh::writeAllNSided
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< UIndirectList<face>(patchFaces, prims);
         }
 
@@ -959,7 +983,7 @@ void Foam::ensightMesh::writeAllNSided
 
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 faceList patchFaces(fromSlave);
 
                 writeNSidedPoints(patchFaces, ensightGeometryFile);
@@ -967,7 +991,11 @@ void Foam::ensightMesh::writeAllNSided
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< UIndirectList<face>(patchFaces, prims);
         }
     }
@@ -997,7 +1025,7 @@ void Foam::ensightMesh::writeAllPoints
             ensightGeometryFile.write(uniquePoints.component(d));
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 scalarField patchPointsComponent(fromSlave);
                 ensightGeometryFile.write(patchPointsComponent);
             }
@@ -1007,7 +1035,11 @@ void Foam::ensightMesh::writeAllPoints
     {
         for (direction d=0; d<vector::nComponents; d++)
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster<< uniquePoints.component(d);
         }
     }
diff --git a/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H b/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H
index 19791dac16b..7fdc9424bfa 100644
--- a/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H
+++ b/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,8 +43,8 @@ void evaluateConstraintTypes(GeometricField<Type, fvPatchField, volMesh>& fld)
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         label nReq = Pstream::nRequests();
@@ -67,7 +67,7 @@ void evaluateConstraintTypes(GeometricField<Type, fvPatchField, volMesh>& fld)
         if
         (
             Pstream::parRun()
-         && Pstream::defaultCommsType == Pstream::nonBlocking
+         && Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
         )
         {
             Pstream::waitRequests(nReq);
@@ -87,7 +87,7 @@ void evaluateConstraintTypes(GeometricField<Type, fvPatchField, volMesh>& fld)
             }
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule =
             fld.mesh().globalData().patchSchedule();
@@ -105,11 +105,11 @@ void evaluateConstraintTypes(GeometricField<Type, fvPatchField, volMesh>& fld)
             {
                 if (patchSchedule[patchEvali].init)
                 {
-                    tgtField.initEvaluate(Pstream::scheduled);
+                    tgtField.initEvaluate(Pstream::commsTypes::scheduled);
                 }
                 else
                 {
-                    tgtField.evaluate(Pstream::scheduled);
+                    tgtField.evaluate(Pstream::commsTypes::scheduled);
                 }
             }
         }
diff --git a/src/OpenFOAM/containers/Lists/SortableList/ParSortableList.C b/src/OpenFOAM/containers/Lists/SortableList/ParSortableList.C
index f06cd977050..7fc604b63d7 100644
--- a/src/OpenFOAM/containers/Lists/SortableList/ParSortableList.C
+++ b/src/OpenFOAM/containers/Lists/SortableList/ParSortableList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -112,7 +112,7 @@ void Foam::ParSortableList<Type>::checkAndSend
         }
 
         {
-            OPstream toSlave(Pstream::blocking, destProci);
+            OPstream toSlave(Pstream::commsTypes::blocking, destProci);
             toSlave << values << indices;
         }
     }
@@ -306,7 +306,7 @@ void Foam::ParSortableList<Type>::sort()
                     Pout<< "Receiving from " << proci << endl;
                 }
 
-                IPstream fromSlave(Pstream::blocking, proci);
+                IPstream fromSlave(Pstream::commsTypes::blocking, proci);
 
                 fromSlave >> recValues >> recIndices;
 
diff --git a/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionaryIO.C b/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionaryIO.C
index 5be036fcec5..594e5b1ac62 100644
--- a/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionaryIO.C
+++ b/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionaryIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -99,7 +99,7 @@ void Foam::IOdictionary::readFile(const bool masterOnly)
             // not. Could reset all the ITstreams to ascii?
             IPstream fromAbove
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 myComm.above(),
                 0,
                 Pstream::msgType(),
@@ -121,7 +121,7 @@ void Foam::IOdictionary::readFile(const bool masterOnly)
             }
             OPstream toBelow
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 myComm.below()[belowI],
                 0,
                 Pstream::msgType(),
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
index 9be1dc5eb3e..b5e76852b55 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,7 +83,7 @@ void Foam::PstreamBuffers::finishedSends(const bool block)
 {
     finishedSendsCalled_ = true;
 
-    if (commsType_ == UPstream::nonBlocking)
+    if (commsType_ == UPstream::commsTypes::nonBlocking)
     {
         Pstream::exchange<DynamicList<char>, char>
         (
@@ -101,7 +101,7 @@ void Foam::PstreamBuffers::finishedSends(labelList& recvSizes, const bool block)
 {
     finishedSendsCalled_ = true;
 
-    if (commsType_ == UPstream::nonBlocking)
+    if (commsType_ == UPstream::commsTypes::nonBlocking)
     {
         Pstream::exchangeSizes(sendBuf_, recvSizes, comm_);
 
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
index c6a0e33fb6c..5fa34ad86fa 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,7 +35,7 @@ Description
 
     Example usage:
 
-        PstreamBuffers pBuffers(Pstream::nonBlocking);
+        PstreamBuffers pBuffers(Pstream::commsTypes::nonBlocking);
 
         for (label proci = 0; proci < Pstream::nProcs(); proci++)
         {
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.C b/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.C
index b06c2a8cab1..6ac1743680c 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -113,7 +113,7 @@ Foam::UOPstream::UOPstream(const int toProcNo, PstreamBuffers& buffers)
     sendBuf_(buffers.sendBuf_[toProcNo]),
     tag_(buffers.tag_),
     comm_(buffers.comm_),
-    sendAtDestruct_(buffers.commsType_ != UPstream::nonBlocking)
+    sendAtDestruct_(buffers.commsType_ != UPstream::commsTypes::nonBlocking)
 {
     setOpened();
     setGood();
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H b/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
index e63f32ae91e..fab2dd7ffd8 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,7 +62,7 @@ class UPstream
 public:
 
     //- Types of communications
-    enum commsTypes
+    enum class commsTypes
     {
         blocking,
         scheduled,
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/combineGatherScatter.C b/src/OpenFOAM/db/IOstreams/Pstreams/combineGatherScatter.C
index 6403905ad65..e69cae6613c 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/combineGatherScatter.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/combineGatherScatter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ void Foam::Pstream::combineGather
                 T value;
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     belowID,
                     reinterpret_cast<char*>(&value),
                     sizeof(T),
@@ -83,7 +83,14 @@ void Foam::Pstream::combineGather
             }
             else
             {
-                IPstream fromBelow(UPstream::scheduled, belowID, 0, tag, comm);
+                IPstream fromBelow
+                (
+                    UPstream::commsTypes::scheduled,
+                    belowID,
+                    0,
+                    tag,
+                    comm
+                );
                 T value(fromBelow);
 
                 if (debug & 2)
@@ -109,7 +116,7 @@ void Foam::Pstream::combineGather
             {
                 UOPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<const char*>(&Value),
                     sizeof(T),
@@ -121,7 +128,7 @@ void Foam::Pstream::combineGather
             {
                 OPstream toAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -189,7 +196,7 @@ void Foam::Pstream::combineScatter
             {
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<char*>(&Value),
                     sizeof(T),
@@ -201,7 +208,7 @@ void Foam::Pstream::combineScatter
             {
                 IPstream fromAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -231,7 +238,7 @@ void Foam::Pstream::combineScatter
             {
                 UOPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     belowID,
                     reinterpret_cast<const char*>(&Value),
                     sizeof(T),
@@ -241,7 +248,14 @@ void Foam::Pstream::combineScatter
             }
             else
             {
-                OPstream toBelow(UPstream::scheduled, belowID, 0, tag, comm);
+                OPstream toBelow
+                (
+                    UPstream::commsTypes::scheduled,
+                    belowID,
+                    0,
+                    tag,
+                    comm
+                );
                 toBelow << Value;
             }
         }
@@ -294,7 +308,7 @@ void Foam::Pstream::listCombineGather
 
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     belowID,
                     reinterpret_cast<char*>(receivedValues.begin()),
                     receivedValues.byteSize(),
@@ -315,7 +329,14 @@ void Foam::Pstream::listCombineGather
             }
             else
             {
-                IPstream fromBelow(UPstream::scheduled, belowID, 0, tag, comm);
+                IPstream fromBelow
+                (
+                    UPstream::commsTypes::scheduled,
+                    belowID,
+                    0,
+                    tag,
+                    comm
+                );
                 List<T> receivedValues(fromBelow);
 
                 if (debug & 2)
@@ -344,7 +365,7 @@ void Foam::Pstream::listCombineGather
             {
                 UOPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<const char*>(Values.begin()),
                     Values.byteSize(),
@@ -356,7 +377,7 @@ void Foam::Pstream::listCombineGather
             {
                 OPstream toAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -424,7 +445,7 @@ void Foam::Pstream::listCombineScatter
             {
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<char*>(Values.begin()),
                     Values.byteSize(),
@@ -436,7 +457,7 @@ void Foam::Pstream::listCombineScatter
             {
                 IPstream fromAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -466,7 +487,7 @@ void Foam::Pstream::listCombineScatter
             {
                 UOPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     belowID,
                     reinterpret_cast<const char*>(Values.begin()),
                     Values.byteSize(),
@@ -476,7 +497,14 @@ void Foam::Pstream::listCombineScatter
             }
             else
             {
-                OPstream toBelow(UPstream::scheduled, belowID, 0, tag, comm);
+                OPstream toBelow
+                (
+                    UPstream::commsTypes::scheduled,
+                    belowID,
+                    0,
+                    tag,
+                    comm
+                );
                 toBelow << Values;
             }
         }
@@ -535,7 +563,14 @@ void Foam::Pstream::mapCombineGather
         {
             label belowID = myComm.below()[belowI];
 
-            IPstream fromBelow(UPstream::scheduled, belowID, 0, tag, comm);
+            IPstream fromBelow
+            (
+                UPstream::commsTypes::scheduled,
+                belowID,
+                0,
+                tag,
+                comm
+            );
             Container receivedValues(fromBelow);
 
             if (debug & 2)
@@ -575,7 +610,14 @@ void Foam::Pstream::mapCombineGather
                     << " data:" << Values << endl;
             }
 
-            OPstream toAbove(UPstream::scheduled, myComm.above(), 0, tag, comm);
+            OPstream toAbove
+            (
+                UPstream::commsTypes::scheduled,
+                myComm.above(),
+                0,
+                tag,
+                comm
+            );
             toAbove << Values;
         }
     }
@@ -635,7 +677,7 @@ void Foam::Pstream::mapCombineScatter
         {
             IPstream fromAbove
             (
-                UPstream::scheduled,
+                UPstream::commsTypes::scheduled,
                 myComm.above(),
                 0,
                 tag,
@@ -660,7 +702,14 @@ void Foam::Pstream::mapCombineScatter
                 Pout<< " sending to " << belowID << " data:" << Values << endl;
             }
 
-            OPstream toBelow(UPstream::scheduled, belowID, 0, tag, comm);
+            OPstream toBelow
+            (
+                UPstream::commsTypes::scheduled,
+                belowID,
+                0,
+                tag,
+                comm
+            );
             toBelow << Values;
         }
     }
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C b/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
index dc514f572ae..0055e5a1cf6 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,7 +79,7 @@ void Foam::Pstream::exchange
                 recvBufs[proci].setSize(nRecv);
                 UIPstream::read
                 (
-                    UPstream::nonBlocking,
+                    UPstream::commsTypes::nonBlocking,
                     proci,
                     reinterpret_cast<char*>(recvBufs[proci].begin()),
                     nRecv*sizeof(T),
@@ -101,7 +101,7 @@ void Foam::Pstream::exchange
                 (
                    !UOPstream::write
                     (
-                        UPstream::nonBlocking,
+                        UPstream::commsTypes::nonBlocking,
                         proci,
                         reinterpret_cast<const char*>(sendBufs[proci].begin()),
                         sendBufs[proci].size()*sizeof(T),
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatter.C b/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatter.C
index 270c08fee57..f3ab16463a8 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatter.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -66,7 +66,7 @@ void Pstream::gather
             {
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.below()[belowI],
                     reinterpret_cast<char*>(&value),
                     sizeof(T),
@@ -78,7 +78,7 @@ void Pstream::gather
             {
                 IPstream fromBelow
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.below()[belowI],
                     0,
                     tag,
@@ -97,7 +97,7 @@ void Pstream::gather
             {
                 UOPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<const char*>(&Value),
                     sizeof(T),
@@ -109,7 +109,7 @@ void Pstream::gather
             {
                 OPstream toAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -163,7 +163,7 @@ void Pstream::scatter
             {
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<char*>(&Value),
                     sizeof(T),
@@ -175,7 +175,7 @@ void Pstream::scatter
             {
                 IPstream fromAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -194,7 +194,7 @@ void Pstream::scatter
             {
                 UOPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.below()[belowI],
                     reinterpret_cast<const char*>(&Value),
                     sizeof(T),
@@ -206,7 +206,7 @@ void Pstream::scatter
             {
                 OPstream toBelow
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.below()[belowI],
                     0,
                     tag,
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatterList.C b/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatterList.C
index 393d9d1b008..6323cded44c 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatterList.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/gatherScatterList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,7 +79,7 @@ void Pstream::gatherList
 
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     belowID,
                     reinterpret_cast<char*>(receivedValues.begin()),
                     receivedValues.byteSize(),
@@ -96,7 +96,14 @@ void Pstream::gatherList
             }
             else
             {
-                IPstream fromBelow(UPstream::scheduled, belowID, 0, tag, comm);
+                IPstream fromBelow
+                (
+                    UPstream::commsTypes::scheduled,
+                    belowID,
+                    0,
+                    tag,
+                    comm
+                );
                 fromBelow >> Values[belowID];
 
                 if (debug & 2)
@@ -148,7 +155,7 @@ void Pstream::gatherList
 
                 OPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<const char*>(sendingValues.begin()),
                     sendingValues.byteSize(),
@@ -160,7 +167,7 @@ void Pstream::gatherList
             {
                 OPstream toAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -234,7 +241,7 @@ void Pstream::scatterList
 
                 UIPstream::read
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     reinterpret_cast<char*>(receivedValues.begin()),
                     receivedValues.byteSize(),
@@ -251,7 +258,7 @@ void Pstream::scatterList
             {
                 IPstream fromAbove
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     myComm.above(),
                     0,
                     tag,
@@ -290,7 +297,7 @@ void Pstream::scatterList
 
                 OPstream::write
                 (
-                    UPstream::scheduled,
+                    UPstream::commsTypes::scheduled,
                     belowID,
                     reinterpret_cast<const char*>(sendingValues.begin()),
                     sendingValues.byteSize(),
@@ -300,7 +307,14 @@ void Pstream::scatterList
             }
             else
             {
-                OPstream toBelow(UPstream::scheduled, belowID, 0, tag, comm);
+                OPstream toBelow
+                (
+                    UPstream::commsTypes::scheduled,
+                    belowID,
+                    0,
+                    tag,
+                    comm
+                );
 
                 // Send data destined for all other processors below belowID
                 forAll(notBelowLeaves, leafI)
diff --git a/src/OpenFOAM/db/regIOobject/regIOobjectRead.C b/src/OpenFOAM/db/regIOobject/regIOobjectRead.C
index c699bb301f7..0a9ae883107 100644
--- a/src/OpenFOAM/db/regIOobject/regIOobjectRead.C
+++ b/src/OpenFOAM/db/regIOobject/regIOobjectRead.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -238,7 +238,7 @@ bool Foam::regIOobject::read()
             // not currently supported
             IPstream fromAbove
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 myComm.above(),
                 0,
                 Pstream::msgType(),
@@ -254,7 +254,7 @@ bool Foam::regIOobject::read()
         {
             OPstream toBelow
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 myComm.below()[belowI],
                 0,
                 Pstream::msgType(),
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
index 6265185cc51..25244a76ce8 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -422,8 +422,8 @@ evaluate()
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         label nReq = Pstream::nRequests();
@@ -437,7 +437,7 @@ evaluate()
         if
         (
             Pstream::parRun()
-         && Pstream::defaultCommsType == Pstream::nonBlocking
+         && Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
         )
         {
             Pstream::waitRequests(nReq);
@@ -448,7 +448,7 @@ evaluate()
             this->operator[](patchi).evaluate(Pstream::defaultCommsType);
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule =
             bmesh_.mesh().globalData().patchSchedule();
@@ -458,12 +458,12 @@ evaluate()
             if (patchSchedule[patchEvali].init)
             {
                 this->operator[](patchSchedule[patchEvali].patch)
-                    .initEvaluate(Pstream::scheduled);
+                    .initEvaluate(Pstream::commsTypes::scheduled);
             }
             else
             {
                 this->operator[](patchSchedule[patchEvali].patch)
-                    .evaluate(Pstream::scheduled);
+                    .evaluate(Pstream::commsTypes::scheduled);
             }
         }
     }
diff --git a/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.H
index 3529c77b7d7..115081596ee 100644
--- a/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -124,7 +124,8 @@ public:
             //- Update the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 };
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/basic/coupled/coupledPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/basic/coupled/coupledPointPatchField.H
index d9cac6941f4..19e9be93c81 100644
--- a/src/OpenFOAM/fields/pointPatchFields/basic/coupled/coupledPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/basic/coupled/coupledPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -116,7 +116,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             ) = 0;
 
             //- Initialise swap of patch point values
diff --git a/src/OpenFOAM/fields/pointPatchFields/basic/value/valuePointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/basic/value/valuePointPatchField.H
index 298eabeecb7..3058b8e5b0b 100644
--- a/src/OpenFOAM/fields/pointPatchFields/basic/value/valuePointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/basic/value/valuePointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -162,7 +162,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/cyclic/cyclicPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/constraint/cyclic/cyclicPointPatchField.H
index 50b4afbe68e..af0e4c24c6d 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/cyclic/cyclicPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/cyclic/cyclicPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -161,7 +161,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/cyclicSlip/cyclicSlipPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/constraint/cyclicSlip/cyclicSlipPointPatchField.H
index 22b39163eb4..aa55cd242ff 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/cyclicSlip/cyclicSlipPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/cyclicSlip/cyclicSlipPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,14 +122,11 @@ public:
 
     // Member functions
 
-        // Evaluation functions
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
-
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 };
 
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicPointPatchField.H
index b6ef3e2a8c9..84710c325b7 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,14 +122,11 @@ public:
 
     // Member functions
 
-        // Evaluation functions
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
-
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 };
 
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/processor/processorPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/constraint/processor/processorPointPatchField.H
index c8028b47107..3db9be39c2b 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/processor/processorPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/processor/processorPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -157,7 +157,7 @@ public:
             }
 
 
-        //- Constraint handling
+        // Constraint handling
 
             //- Return the constraint type this pointPatchField implements
             virtual const word& constraintType() const
@@ -171,7 +171,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.C b/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.C
index 74707a9a93e..aac70da39ff 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.C
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -113,7 +113,7 @@ void Foam::processorCyclicPointPatchField<Type>::initSwapAddSeparated
             )
         );
 
-        if (commsType == Pstream::nonBlocking)
+        if (commsType == Pstream::commsTypes::nonBlocking)
         {
             receiveBuf_.setSize(pf.size());
             IPstream::read
@@ -149,7 +149,7 @@ void Foam::processorCyclicPointPatchField<Type>::swapAddSeparated
     if (Pstream::parRun())
     {
         // If nonblocking data has already been received into receiveBuf_
-        if (commsType != Pstream::nonBlocking)
+        if (commsType != Pstream::commsTypes::nonBlocking)
         {
             receiveBuf_.setSize(this->size());
             IPstream::read
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.H
index 2859591bed1..656f6991475 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/processorCyclic/processorCyclicPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -166,7 +166,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/symmetryPlane/symmetryPlanePointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/constraint/symmetryPlane/symmetryPlanePointPatchField.H
index acbba86d210..ded2b84a1f9 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/symmetryPlane/symmetryPlanePointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/symmetryPlane/symmetryPlanePointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -134,13 +134,11 @@ public:
             return symmetryPlanePointPatch::typeName;
         }
 
-        // Evaluation functions
-
-            //- Update the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
+        //- Update the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 };
 
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/constraint/wedge/wedgePointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/constraint/wedge/wedgePointPatchField.H
index e14fb992e60..c0863d43940 100644
--- a/src/OpenFOAM/fields/pointPatchFields/constraint/wedge/wedgePointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/constraint/wedge/wedgePointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,21 +122,17 @@ public:
 
     // Member functions
 
-        //- Constraint handling
-
-            //- Return the constraint type this pointPatchField implements
-            virtual const word& constraintType() const
-            {
-                return type();
-            }
-
-        // Evaluation functions
+        //- Return the constraint type this pointPatchField implements
+        virtual const word& constraintType() const
+        {
+            return type();
+        }
 
-            //- Update the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
+        //- Update the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 };
 
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/derived/codedFixedValue/codedFixedValuePointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/derived/codedFixedValue/codedFixedValuePointPatchField.H
index 49e206709bb..f75db6282bf 100644
--- a/src/OpenFOAM/fields/pointPatchFields/derived/codedFixedValue/codedFixedValuePointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/derived/codedFixedValue/codedFixedValuePointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -231,7 +231,7 @@ public:
         //- Evaluate the patch field, sets Updated to false
         virtual void evaluate
         (
-            const Pstream::commsTypes commsType=Pstream::blocking
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
         );
 
         //- Write
diff --git a/src/OpenFOAM/fields/pointPatchFields/derived/fixedNormalSlip/fixedNormalSlipPointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/derived/fixedNormalSlip/fixedNormalSlipPointPatchField.H
index cff5af3d6e7..d57b68a58b3 100644
--- a/src/OpenFOAM/fields/pointPatchFields/derived/fixedNormalSlip/fixedNormalSlipPointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/derived/fixedNormalSlip/fixedNormalSlipPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -139,14 +139,11 @@ public:
 
     // Member functions
 
-        // Evaluation functions
-
-            //- Update the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
-
+        //- Update the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 
         //- Write
         virtual void write(Ostream&) const;
diff --git a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.H
index 34b0e6336ef..b4ac7f2dc8d 100644
--- a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.H
+++ b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -418,14 +418,16 @@ public:
             //- Initialise evaluation of the patch field (do nothing)
             virtual void initEvaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
 
diff --git a/src/OpenFOAM/global/argList/argList.C b/src/OpenFOAM/global/argList/argList.C
index 9e223df6ba5..cdd31a303e4 100644
--- a/src/OpenFOAM/global/argList/argList.C
+++ b/src/OpenFOAM/global/argList/argList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -703,7 +703,7 @@ void Foam::argList::parse
                 {
                     options_.set("case", roots[slave-1]/globalCase_);
 
-                    OPstream toSlave(Pstream::scheduled, slave);
+                    OPstream toSlave(Pstream::commsTypes::scheduled, slave);
                     toSlave << args_ << options_;
                 }
                 options_.erase("case");
@@ -750,7 +750,7 @@ void Foam::argList::parse
                     slave++
                 )
                 {
-                    OPstream toSlave(Pstream::scheduled, slave);
+                    OPstream toSlave(Pstream::commsTypes::scheduled, slave);
                     toSlave << args_ << options_;
                 }
             }
@@ -758,7 +758,11 @@ void Foam::argList::parse
         else
         {
             // Collect the master's argument list
-            IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             fromMaster >> args_ >> options_;
 
             // Establish rootPath_/globalCase_/case_ for slave
@@ -792,7 +796,7 @@ void Foam::argList::parse
                 slave++
             )
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
 
                 string slaveBuild;
                 string slaveMachine;
@@ -815,7 +819,11 @@ void Foam::argList::parse
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             toMaster << string(Foam::FOAMbuild) << hostName() << pid();
         }
     }
diff --git a/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrix.C b/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrix.C
index 6c9f0eff733..77fa34f6999 100644
--- a/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrix.C
+++ b/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrix.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,7 +97,7 @@ Foam::LUscalarMatrix::LUscalarMatrix
                     (
                         IPstream
                         (
-                            Pstream::scheduled,
+                            Pstream::commsTypes::scheduled,
                             slave,
                             0,          // bufSize
                             Pstream::msgType(),
@@ -111,7 +111,7 @@ Foam::LUscalarMatrix::LUscalarMatrix
         {
             OPstream toMaster
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 Pstream::masterNo(),
                 0,              // bufSize
                 Pstream::msgType(),
diff --git a/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrixTemplates.C b/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrixTemplates.C
index 432c39917c6..91c4cf37ff7 100644
--- a/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrixTemplates.C
+++ b/src/OpenFOAM/matrices/LUscalarMatrix/LUscalarMatrixTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,7 +62,7 @@ void Foam::LUscalarMatrix::solve
             {
                 IPstream::read
                 (
-                    Pstream::scheduled,
+                    Pstream::commsTypes::scheduled,
                     slave,
                     reinterpret_cast<char*>
                     (
@@ -78,7 +78,7 @@ void Foam::LUscalarMatrix::solve
         {
             OPstream::write
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 Pstream::masterNo(),
                 reinterpret_cast<const char*>(x.begin()),
                 x.byteSize(),
@@ -106,7 +106,7 @@ void Foam::LUscalarMatrix::solve
             {
                 OPstream::write
                 (
-                    Pstream::scheduled,
+                    Pstream::commsTypes::scheduled,
                     slave,
                     reinterpret_cast<const char*>
                     (
@@ -122,7 +122,7 @@ void Foam::LUscalarMatrix::solve
         {
             IPstream::read
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 Pstream::masterNo(),
                 reinterpret_cast<char*>(x.begin()),
                 x.byteSize(),
diff --git a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixUpdateMatrixInterfaces.C b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixUpdateMatrixInterfaces.C
index 8bf7a15194e..465c097bf09 100644
--- a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixUpdateMatrixInterfaces.C
+++ b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixUpdateMatrixInterfaces.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,8 +38,8 @@ void Foam::LduMatrix<Type, DType, LUType>::initMatrixInterfaces
 {
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(interfaces_, interfacei)
@@ -57,7 +57,7 @@ void Foam::LduMatrix<Type, DType, LUType>::initMatrixInterfaces
             }
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = this->patchSchedule();
 
@@ -78,7 +78,7 @@ void Foam::LduMatrix<Type, DType, LUType>::initMatrixInterfaces
                     psiif,
                     interfaceCoeffs[interfacei],
                     //Amultiplier<Type, LUType>(interfaceCoeffs[interfacei]),
-                    Pstream::blocking
+                    Pstream::commsTypes::blocking
                 );
             }
         }
@@ -103,12 +103,12 @@ void Foam::LduMatrix<Type, DType, LUType>::updateMatrixInterfaces
 {
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         // Block until all sends/receives have been finished
-        if (Pstream::defaultCommsType == Pstream::nonBlocking)
+        if (Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking)
         {
             IPstream::waitRequests();
             OPstream::waitRequests();
@@ -129,7 +129,7 @@ void Foam::LduMatrix<Type, DType, LUType>::updateMatrixInterfaces
             }
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = this->patchSchedule();
 
@@ -148,7 +148,7 @@ void Foam::LduMatrix<Type, DType, LUType>::updateMatrixInterfaces
                         psiif,
                         interfaceCoeffs[interfacei],
                       //Amultiplier<Type, LUType>(interfaceCoeffs[interfacei]),
-                        Pstream::scheduled
+                        Pstream::commsTypes::scheduled
                     );
                 }
                 else
@@ -159,7 +159,7 @@ void Foam::LduMatrix<Type, DType, LUType>::updateMatrixInterfaces
                         psiif,
                         interfaceCoeffs[interfacei],
                       //Amultiplier<Type, LUType>(interfaceCoeffs[interfacei]),
-                        Pstream::scheduled
+                        Pstream::commsTypes::scheduled
                     );
                 }
             }
@@ -182,7 +182,7 @@ void Foam::LduMatrix<Type, DType, LUType>::updateMatrixInterfaces
                     psiif,
                     interfaceCoeffs[interfacei],
                     //Amultiplier<Type, LUType>(interfaceCoeffs[interfacei]),
-                    Pstream::blocking
+                    Pstream::commsTypes::blocking
                 );
             }
         }
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C
index 8ba519430a6..853a046bc82 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,7 +38,11 @@ void Foam::processorLduInterface::send
 {
     label nBytes = f.byteSize();
 
-    if (commsType == Pstream::blocking || commsType == Pstream::scheduled)
+    if
+    (
+        commsType == Pstream::commsTypes::blocking
+     || commsType == Pstream::commsTypes::scheduled
+    )
     {
         OPstream::write
         (
@@ -50,7 +54,7 @@ void Foam::processorLduInterface::send
             comm()
         );
     }
-    else if (commsType == Pstream::nonBlocking)
+    else if (commsType == Pstream::commsTypes::nonBlocking)
     {
         resizeBuf(receiveBuf_, nBytes);
 
@@ -80,7 +84,7 @@ void Foam::processorLduInterface::send
     else
     {
         FatalErrorInFunction
-            << "Unsupported communications type " << commsType
+            << "Unsupported communications type " << int(commsType)
             << exit(FatalError);
     }
 }
@@ -93,7 +97,11 @@ void Foam::processorLduInterface::receive
     UList<Type>& f
 ) const
 {
-    if (commsType == Pstream::blocking || commsType == Pstream::scheduled)
+    if
+    (
+        commsType == Pstream::commsTypes::blocking
+     || commsType == Pstream::commsTypes::scheduled
+    )
     {
         IPstream::read
         (
@@ -105,14 +113,14 @@ void Foam::processorLduInterface::receive
             comm()
         );
     }
-    else if (commsType == Pstream::nonBlocking)
+    else if (commsType == Pstream::commsTypes::nonBlocking)
     {
         memcpy(f.begin(), receiveBuf_.begin(), f.byteSize());
     }
     else
     {
         FatalErrorInFunction
-            << "Unsupported communications type " << commsType
+            << "Unsupported communications type " << int(commsType)
             << exit(FatalError);
     }
 }
@@ -158,7 +166,11 @@ void Foam::processorLduInterface::compressedSend
 
         reinterpret_cast<Type&>(fArray[nm1]) = f.last();
 
-        if (commsType == Pstream::blocking || commsType == Pstream::scheduled)
+        if
+        (
+            commsType == Pstream::commsTypes::blocking
+         || commsType == Pstream::commsTypes::scheduled
+        )
         {
             OPstream::write
             (
@@ -170,7 +182,7 @@ void Foam::processorLduInterface::compressedSend
                 comm()
             );
         }
-        else if (commsType == Pstream::nonBlocking)
+        else if (commsType == Pstream::commsTypes::nonBlocking)
         {
             resizeBuf(receiveBuf_, nBytes);
 
@@ -197,7 +209,7 @@ void Foam::processorLduInterface::compressedSend
         else
         {
             FatalErrorInFunction
-                << "Unsupported communications type " << commsType
+                << "Unsupported communications type " << int(commsType)
                 << exit(FatalError);
         }
     }
@@ -222,7 +234,11 @@ void Foam::processorLduInterface::compressedReceive
         label nFloats = nm1 + nlast;
         label nBytes = nFloats*sizeof(float);
 
-        if (commsType == Pstream::blocking || commsType == Pstream::scheduled)
+        if
+        (
+            commsType == Pstream::commsTypes::blocking
+         || commsType == Pstream::commsTypes::scheduled
+        )
         {
             resizeBuf(receiveBuf_, nBytes);
 
@@ -236,10 +252,10 @@ void Foam::processorLduInterface::compressedReceive
                 comm()
             );
         }
-        else if (commsType != Pstream::nonBlocking)
+        else if (commsType != Pstream::commsTypes::nonBlocking)
         {
             FatalErrorInFunction
-                << "Unsupported communications type " << commsType
+                << "Unsupported communications type " << int(commsType)
                 << exit(FatalError);
         }
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixUpdateMatrixInterfaces.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixUpdateMatrixInterfaces.C
index 3709218436b..af65e1bc686 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixUpdateMatrixInterfaces.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixUpdateMatrixInterfaces.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,8 +38,8 @@ void Foam::lduMatrix::initMatrixInterfaces
 {
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(interfaces, interfacei)
@@ -57,7 +57,7 @@ void Foam::lduMatrix::initMatrixInterfaces
             }
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = this->patchSchedule();
 
@@ -78,7 +78,7 @@ void Foam::lduMatrix::initMatrixInterfaces
                     psiif,
                     coupleCoeffs[interfacei],
                     cmpt,
-                    Pstream::blocking
+                    Pstream::commsTypes::blocking
                 );
             }
         }
@@ -102,7 +102,7 @@ void Foam::lduMatrix::updateMatrixInterfaces
     const direction cmpt
 ) const
 {
-    if (Pstream::defaultCommsType == Pstream::blocking)
+    if (Pstream::defaultCommsType == Pstream::commsTypes::blocking)
     {
         forAll(interfaces, interfacei)
         {
@@ -119,7 +119,7 @@ void Foam::lduMatrix::updateMatrixInterfaces
             }
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::nonBlocking)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking)
     {
         // Try and consume interfaces as they become available
         bool allUpdated = false;
@@ -198,7 +198,7 @@ void Foam::lduMatrix::updateMatrixInterfaces
             }
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = this->patchSchedule();
 
@@ -217,7 +217,7 @@ void Foam::lduMatrix::updateMatrixInterfaces
                         psiif,
                         coupleCoeffs[interfacei],
                         cmpt,
-                        Pstream::scheduled
+                        Pstream::commsTypes::scheduled
                     );
                 }
                 else
@@ -228,7 +228,7 @@ void Foam::lduMatrix::updateMatrixInterfaces
                         psiif,
                         coupleCoeffs[interfacei],
                         cmpt,
-                        Pstream::scheduled
+                        Pstream::commsTypes::scheduled
                     );
                 }
             }
@@ -251,7 +251,7 @@ void Foam::lduMatrix::updateMatrixInterfaces
                     psiif,
                     coupleCoeffs[interfacei],
                     cmpt,
-                    Pstream::blocking
+                    Pstream::commsTypes::blocking
                 );
             }
         }
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerateLduAddressing.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerateLduAddressing.C
index 334346962ae..4036107e96e 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerateLduAddressing.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerateLduAddressing.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -279,7 +279,7 @@ void Foam::GAMGAgglomeration::agglomerateLduAddressing
         {
             fineInterfaces[inti].initInternalFieldTransfer
             (
-                Pstream::nonBlocking,
+                Pstream::commsTypes::nonBlocking,
                 restrictMap
             );
         }
@@ -322,7 +322,7 @@ void Foam::GAMGAgglomeration::agglomerateLduAddressing
                     fineInterfaces[inti].interfaceInternalField(restrictMap),
                     fineInterfaces[inti].internalFieldTransfer
                     (
-                        Pstream::nonBlocking,
+                        Pstream::commsTypes::nonBlocking,
                         restrictMap
                     ),
                     fineLevelIndex,
@@ -488,7 +488,7 @@ void Foam::GAMGAgglomeration::procAgglomerateRestrictAddressing
         procRestrictAddressing,
 
         UPstream::msgType(),
-        Pstream::nonBlocking    //Pstream::scheduled
+        Pstream::commsTypes::nonBlocking    //Pstream::commsTypes::scheduled
     );
 
 
@@ -645,7 +645,7 @@ void Foam::GAMGAgglomeration::combineLevels(const label curLevel)
 //            label& slaveVal = vals[i];
 //            IPstream::read
 //            (
-//                Pstream::scheduled,
+//                Pstream::commsTypes::scheduled,
 //                procIDs[i],
 //                reinterpret_cast<char*>(&slaveVal),
 //                sizeof(slaveVal),
@@ -658,7 +658,7 @@ void Foam::GAMGAgglomeration::combineLevels(const label curLevel)
 //    {
 //        OPstream::write
 //        (
-//            Pstream::scheduled,
+//            Pstream::commsTypes::scheduled,
 //            procIDs[0],
 //            reinterpret_cast<const char*>(&myVal),
 //            sizeof(myVal),
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerationTemplates.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerationTemplates.C
index 372accc31bd..56c16ab0ce2 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerationTemplates.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomerationTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,7 @@ void Foam::GAMGAgglomeration::gatherList
         {
             IPstream fromSlave
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 procIDs[i],
                 0,
                 tag,
@@ -62,7 +62,7 @@ void Foam::GAMGAgglomeration::gatherList
     {
         OPstream toMaster
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             procIDs[0],
             0,
             tag,
@@ -128,7 +128,7 @@ void Foam::GAMGAgglomeration::restrictField
             procIDs,
             cf,
             UPstream::msgType(),
-            Pstream::nonBlocking    //Pstream::scheduled
+            Pstream::commsTypes::nonBlocking    //Pstream::commsTypes::scheduled
         );
     }
 }
@@ -201,7 +201,7 @@ void Foam::GAMGAgglomeration::prolongField
             cf,
             allCf,
             UPstream::msgType(),
-            Pstream::nonBlocking    //Pstream::scheduled
+            Pstream::commsTypes::nonBlocking    //Pstream::commsTypes::scheduled
         );
 
         forAll(fineToCoarse, i)
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C
index 926dd147246..ec1ac3c348f 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -150,7 +150,7 @@ Foam::labelListList Foam::GAMGProcAgglomeration::globalCellCells
             {
                 interfaces[inti].initInternalFieldTransfer
                 (
-                    Pstream::nonBlocking,
+                    Pstream::commsTypes::nonBlocking,
                     globalIndices
                 );
             }
@@ -172,7 +172,7 @@ Foam::labelListList Foam::GAMGProcAgglomeration::globalCellCells
                     (
                         interfaces[inti].internalFieldTransfer
                         (
-                            Pstream::nonBlocking,
+                            Pstream::commsTypes::nonBlocking,
                             globalIndices
                         )
                     )
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverAgglomerateMatrix.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverAgglomerateMatrix.C
index 33b7d009299..58a8da4dd39 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverAgglomerateMatrix.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverAgglomerateMatrix.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -318,7 +318,7 @@ void Foam::GAMGSolver::gatherMatrices
 
             IPstream fromSlave
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 procIDs[proci],
                 0,          // bufSize
                 Pstream::msgType(),
@@ -387,7 +387,7 @@ void Foam::GAMGSolver::gatherMatrices
 
         OPstream toMaster
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             procIDs[0],
             0,
             Pstream::msgType(),
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaceFields/processorGAMGInterfaceField/processorGAMGInterfaceField.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaceFields/processorGAMGInterfaceField/processorGAMGInterfaceField.C
index 2730b8666b0..852caef35f9 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaceFields/processorGAMGInterfaceField/processorGAMGInterfaceField.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaceFields/processorGAMGInterfaceField/processorGAMGInterfaceField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -104,14 +104,18 @@ void Foam::processorGAMGInterfaceField::initInterfaceMatrixUpdate
 
     procInterface_.interfaceInternalField(psiInternal, scalarSendBuf_);
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         scalarReceiveBuf_.setSize(scalarSendBuf_.size());
         outstandingRecvRequest_ = UPstream::nRequests();
         IPstream::read
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procInterface_.neighbProcNo(),
             reinterpret_cast<char*>(scalarReceiveBuf_.begin()),
             scalarReceiveBuf_.byteSize(),
@@ -122,7 +126,7 @@ void Foam::processorGAMGInterfaceField::initInterfaceMatrixUpdate
         outstandingSendRequest_ = UPstream::nRequests();
         OPstream::write
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procInterface_.neighbProcNo(),
             reinterpret_cast<const char*>(scalarSendBuf_.begin()),
             scalarSendBuf_.byteSize(),
@@ -160,7 +164,11 @@ void Foam::processorGAMGInterfaceField::updateInterfaceMatrix
 
     const labelUList& faceCells = procInterface_.faceCells();
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         if
diff --git a/src/OpenFOAM/meshes/ProcessorTopology/ProcessorTopology.C b/src/OpenFOAM/meshes/ProcessorTopology/ProcessorTopology.C
index a7e9fbacd69..c027cb58b02 100644
--- a/src/OpenFOAM/meshes/ProcessorTopology/ProcessorTopology.C
+++ b/src/OpenFOAM/meshes/ProcessorTopology/ProcessorTopology.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -124,7 +124,11 @@ Foam::ProcessorTopology<Container, ProcPatch>::ProcessorTopology
         Pstream::scatterList(*this, Pstream::msgType(), comm);
     }
 
-    if (Pstream::parRun() && Pstream::defaultCommsType == Pstream::scheduled)
+    if
+    (
+        Pstream::parRun()
+     && Pstream::defaultCommsType == Pstream::commsTypes::scheduled
+    )
     {
         label patchEvali = 0;
 
diff --git a/src/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C b/src/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C
index 6a30d7f9b39..b4c0f7a936f 100644
--- a/src/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C
+++ b/src/OpenFOAM/meshes/lduMesh/lduPrimitiveMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -993,7 +993,7 @@ void Foam::lduPrimitiveMesh::gather
 
             IPstream fromSlave
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 procIDs[i],
                 0,          // bufSize
                 Pstream::msgType(),
@@ -1066,7 +1066,7 @@ void Foam::lduPrimitiveMesh::gather
 
         OPstream toMaster
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             procIDs[0],
             0,
             Pstream::msgType(),
diff --git a/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C b/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C
index 7ba9428d372..b466bbc30f3 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,8 +80,8 @@ void Foam::pointBoundaryMesh::calcGeometry()
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(*this, patchi)
@@ -96,7 +96,7 @@ void Foam::pointBoundaryMesh::calcGeometry()
             operator[](patchi).calcGeometry(pBufs);
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
 
@@ -126,8 +126,8 @@ void Foam::pointBoundaryMesh::movePoints(const pointField& p)
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(*this, patchi)
@@ -142,7 +142,7 @@ void Foam::pointBoundaryMesh::movePoints(const pointField& p)
             operator[](patchi).movePoints(pBufs, p);
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
 
@@ -172,8 +172,8 @@ void Foam::pointBoundaryMesh::updateMesh()
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(*this, patchi)
@@ -188,7 +188,7 @@ void Foam::pointBoundaryMesh::updateMesh()
             operator[](patchi).updateMesh(pBufs);
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
 
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H
index 5e2ff81d1ef..50492f31662 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -161,7 +161,8 @@ public:
                 const UList<Type>& fld,
                 List<Type>& allFld,
                 const int tag = UPstream::msgType(),
-                const Pstream::commsTypes commsType=Pstream::nonBlocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::nonBlocking
             );
 
             //- Collect data in processor order on master (== procIDs[0]).
@@ -174,7 +175,8 @@ public:
                 const UList<Type>& fld,
                 List<Type>& allFld,
                 const int tag = UPstream::msgType(),
-                const Pstream::commsTypes commsType=Pstream::nonBlocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::nonBlocking
             ) const
             {
                 gather(offsets_, comm, procIDs, fld, allFld, tag, commsType);
@@ -190,7 +192,8 @@ public:
                 const labelList& procIDs,
                 List<Type>& fld,
                 const int tag = UPstream::msgType(),
-                const Pstream::commsTypes commsType=Pstream::nonBlocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::nonBlocking
             );
 
             //- Inplace collect data in processor order on master
@@ -202,7 +205,8 @@ public:
                 const labelList& procIDs,
                 List<Type>& fld,
                 const int tag = UPstream::msgType(),
-                const Pstream::commsTypes commsType=Pstream::nonBlocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::nonBlocking
             ) const
             {
                 gather(offsets_, comm, procIDs, fld, tag, commsType);
@@ -218,7 +222,8 @@ public:
                 const UList<Type>& allFld,
                 UList<Type>& fld,
                 const int tag = UPstream::msgType(),
-                const Pstream::commsTypes commsType=Pstream::nonBlocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::nonBlocking
             );
 
             //- Distribute data in processor order. Requires fld to be sized!
@@ -230,7 +235,8 @@ public:
                 const UList<Type>& allFld,
                 UList<Type>& fld,
                 const int tag = UPstream::msgType(),
-                const Pstream::commsTypes commsType=Pstream::nonBlocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::nonBlocking
             ) const
             {
                 scatter(offsets_, comm, procIDs, allFld, fld, tag, commsType);
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexTemplates.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexTemplates.C
index 3be3a3a90b6..de3a7bb9f10 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexTemplates.C
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,11 @@ void Foam::globalIndex::gather
         // Assign my local data
         SubList<Type>(allFld, fld.size(), 0) = fld;
 
-        if (commsType == Pstream::scheduled || commsType == Pstream::blocking)
+        if
+        (
+            commsType == Pstream::commsTypes::scheduled
+         || commsType == Pstream::commsTypes::blocking
+        )
         {
             for (label i = 1; i < procIDs.size(); i++)
             {
@@ -113,7 +117,11 @@ void Foam::globalIndex::gather
     }
     else
     {
-        if (commsType == Pstream::scheduled || commsType == Pstream::blocking)
+        if
+        (
+            commsType == Pstream::commsTypes::scheduled
+         || commsType == Pstream::commsTypes::blocking
+        )
         {
             if (contiguous<Type>())
             {
@@ -209,7 +217,11 @@ void Foam::globalIndex::scatter
     {
         fld.deepCopy(SubList<Type>(allFld, off[1]-off[0]));
 
-        if (commsType == Pstream::scheduled || commsType == Pstream::blocking)
+        if
+        (
+            commsType == Pstream::commsTypes::scheduled
+         || commsType == Pstream::commsTypes::blocking
+        )
         {
             for (label i = 1; i < procIDs.size(); i++)
             {
@@ -286,7 +298,11 @@ void Foam::globalIndex::scatter
     }
     else
     {
-        if (commsType == Pstream::scheduled || commsType == Pstream::blocking)
+        if
+        (
+            commsType == Pstream::commsTypes::scheduled
+         || commsType == Pstream::commsTypes::blocking
+        )
         {
             if (contiguous<Type>())
             {
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
index c994bafcf1f..98e09cd18d3 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,7 +84,7 @@ void Foam::globalMeshData::initProcAddr()
 
     if (Pstream::parRun())
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         // Send indices of my processor patches to my neighbours
         forAll(processorPatches_, i)
@@ -401,7 +401,7 @@ void Foam::globalMeshData::calcSharedEdges() const
             )
             {
                 // Receive the edges using shared points from the slave.
-                IPstream fromSlave(Pstream::blocking, slave);
+                IPstream fromSlave(Pstream::commsTypes::blocking, slave);
                 EdgeMap<labelList> procSharedEdges(fromSlave);
 
                 if (debug)
@@ -450,7 +450,7 @@ void Foam::globalMeshData::calcSharedEdges() const
             )
             {
                 // Receive the edges using shared points from the slave.
-                OPstream toSlave(Pstream::blocking, slave);
+                OPstream toSlave(Pstream::commsTypes::blocking, slave);
                 toSlave << globalShared;
             }
         }
@@ -459,14 +459,20 @@ void Foam::globalMeshData::calcSharedEdges() const
     {
         // Send local edges to master
         {
-            OPstream toMaster(Pstream::blocking, Pstream::masterNo());
-
+            OPstream toMaster
+            (
+                Pstream::commsTypes::blocking,
+                Pstream::masterNo()
+            );
             toMaster << localShared;
         }
         // Receive merged edges from master.
         {
-            IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
-
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::blocking,
+                Pstream::masterNo()
+            );
             fromMaster >> globalShared;
         }
     }
@@ -1920,7 +1926,7 @@ Foam::pointField Foam::globalMeshData::sharedPoints() const
             slave++
         )
         {
-            IPstream fromSlave(Pstream::blocking, slave);
+            IPstream fromSlave(Pstream::commsTypes::blocking, slave);
 
             labelList nbrSharedPointAddr;
             pointField nbrSharedPoints;
@@ -1944,7 +1950,7 @@ Foam::pointField Foam::globalMeshData::sharedPoints() const
         {
             OPstream toSlave
             (
-                Pstream::blocking,
+                Pstream::commsTypes::blocking,
                 slave,
                 sharedPoints.size()*sizeof(Zero)
             );
@@ -1956,8 +1962,11 @@ Foam::pointField Foam::globalMeshData::sharedPoints() const
         // Slave:
         // send points
         {
-            OPstream toMaster(Pstream::blocking, Pstream::masterNo());
-
+            OPstream toMaster
+            (
+                Pstream::commsTypes::blocking,
+                Pstream::masterNo()
+            );
             toMaster
                 << pointAddr
                 << UIndirectList<point>(mesh_.points(), pointLabels)();
@@ -1965,7 +1974,11 @@ Foam::pointField Foam::globalMeshData::sharedPoints() const
 
         // Receive sharedPoints
         {
-            IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::blocking,
+                Pstream::masterNo()
+            );
             fromMaster >> sharedPoints;
         }
     }
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C
index 88b3113a58b..2cace80f4b5 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -901,8 +901,8 @@ void Foam::globalPoints::calculateSharedPoints
         PstreamBuffers pBufs
         (
             (
-                Pstream::defaultCommsType == Pstream::scheduled
-              ? Pstream::nonBlocking
+                Pstream::defaultCommsType == Pstream::commsTypes::scheduled
+              ? Pstream::commsTypes::nonBlocking
               : Pstream::defaultCommsType
             )
         );
@@ -939,8 +939,8 @@ void Foam::globalPoints::calculateSharedPoints
         PstreamBuffers pBufs
         (
             (
-                Pstream::defaultCommsType == Pstream::scheduled
-              ? Pstream::nonBlocking
+                Pstream::defaultCommsType == Pstream::commsTypes::scheduled
+              ? Pstream::commsTypes::nonBlocking
               : Pstream::defaultCommsType
             )
         );
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C
index 69d8455a1fc..5bf929910cf 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,7 +84,7 @@ Foam::List<Foam::labelPair> Foam::mapDistributeBase::schedule
             slave++
         )
         {
-            IPstream fromSlave(Pstream::scheduled, slave, 0, tag);
+            IPstream fromSlave(Pstream::commsTypes::scheduled, slave, 0, tag);
             List<labelPair> nbrData(fromSlave);
 
             forAll(nbrData, i)
@@ -105,20 +105,26 @@ Foam::List<Foam::labelPair> Foam::mapDistributeBase::schedule
             slave++
         )
         {
-            OPstream toSlave(Pstream::scheduled, slave, 0, tag);
+            OPstream toSlave(Pstream::commsTypes::scheduled, slave, 0, tag);
             toSlave << allComms;
         }
     }
     else
     {
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo(), 0, tag);
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo(),
+                0,
+                tag
+            );
             toMaster << allComms;
         }
         {
             IPstream fromMaster
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 Pstream::masterNo(),
                 0,
                 tag
@@ -861,7 +867,7 @@ void Foam::mapDistributeBase::compact(const boolList& elemIsUsed, const int tag)
                 recvFields[domain].setSize(map.size());
                 IPstream::read
                 (
-                    Pstream::nonBlocking,
+                    Pstream::commsTypes::nonBlocking,
                     domain,
                     reinterpret_cast<char*>(recvFields[domain].begin()),
                     recvFields[domain].size()*sizeof(bool),
@@ -894,7 +900,7 @@ void Foam::mapDistributeBase::compact(const boolList& elemIsUsed, const int tag)
 
                 OPstream::write
                 (
-                    Pstream::nonBlocking,
+                    Pstream::commsTypes::nonBlocking,
                     domain,
                     reinterpret_cast<const char*>(subField.begin()),
                     subField.size()*sizeof(bool),
@@ -1028,7 +1034,7 @@ void Foam::mapDistributeBase::compact
                 recvFields[domain].setSize(map.size());
                 IPstream::read
                 (
-                    Pstream::nonBlocking,
+                    Pstream::commsTypes::nonBlocking,
                     domain,
                     reinterpret_cast<char*>(recvFields[domain].begin()),
                     recvFields[domain].size()*sizeof(bool),
@@ -1060,7 +1066,7 @@ void Foam::mapDistributeBase::compact
 
                 OPstream::write
                 (
-                    Pstream::nonBlocking,
+                    Pstream::commsTypes::nonBlocking,
                     domain,
                     reinterpret_cast<const char*>(subField.begin()),
                     subField.size()*sizeof(bool),
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H
index 70799428155..c37a7fcad38 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -364,8 +364,9 @@ public:
                 const int tag = UPstream::msgType()
             );
 
-            //- Distribute data. Note:schedule only used for Pstream::scheduled
-            //  for now, all others just use send-to-all, receive-from-all.
+            //- Distribute data. Note:schedule only used for
+            //  Pstream::commsTypes::scheduled for now, all others just use
+            //  send-to-all, receive-from-all.
             template<class T, class negateOp>
             static void distribute
             (
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBaseTemplates.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBaseTemplates.C
index 0380f5d8adf..a40f9a37331 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBaseTemplates.C
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBaseTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -159,7 +159,7 @@ void Foam::mapDistributeBase::distribute
         return;
     }
 
-    if (commsType == Pstream::blocking)
+    if (commsType == Pstream::commsTypes::blocking)
     {
         // Since buffered sending can reuse the field to collect the
         // received data.
@@ -171,7 +171,7 @@ void Foam::mapDistributeBase::distribute
 
             if (domain != Pstream::myProcNo() && map.size())
             {
-                OPstream toNbr(Pstream::blocking, domain, 0, tag);
+                OPstream toNbr(Pstream::commsTypes::blocking, domain, 0, tag);
 
                 List<T> subField(map.size());
                 forAll(subField, i)
@@ -219,7 +219,7 @@ void Foam::mapDistributeBase::distribute
 
             if (domain != Pstream::myProcNo() && map.size())
             {
-                IPstream fromNbr(Pstream::blocking, domain, 0, tag);
+                IPstream fromNbr(Pstream::commsTypes::blocking, domain, 0, tag);
                 List<T> subField(fromNbr);
 
                 checkReceivedSize(domain, map.size(), subField.size());
@@ -236,7 +236,7 @@ void Foam::mapDistributeBase::distribute
             }
         }
     }
-    else if (commsType == Pstream::scheduled)
+    else if (commsType == Pstream::commsTypes::scheduled)
     {
         // Need to make sure I don't overwrite field with received data
         // since the data might need to be sent to another processor. So
@@ -285,7 +285,13 @@ void Foam::mapDistributeBase::distribute
             {
                 // I am send first, receive next
                 {
-                    OPstream toNbr(Pstream::scheduled, recvProc, 0, tag);
+                    OPstream toNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        recvProc,
+                        0,
+                        tag
+                    );
 
                     const labelList& map = subMap[recvProc];
                     List<T> subField(map.size());
@@ -302,7 +308,13 @@ void Foam::mapDistributeBase::distribute
                     toNbr << subField;
                 }
                 {
-                    IPstream fromNbr(Pstream::scheduled, recvProc, 0, tag);
+                    IPstream fromNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        recvProc,
+                        0,
+                        tag
+                    );
                     List<T> subField(fromNbr);
 
                     const labelList& map = constructMap[recvProc];
@@ -324,7 +336,13 @@ void Foam::mapDistributeBase::distribute
             {
                 // I am receive first, send next
                 {
-                    IPstream fromNbr(Pstream::scheduled, sendProc, 0, tag);
+                    IPstream fromNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        sendProc,
+                        0,
+                        tag
+                    );
                     List<T> subField(fromNbr);
 
                     const labelList& map = constructMap[sendProc];
@@ -342,7 +360,13 @@ void Foam::mapDistributeBase::distribute
                     );
                 }
                 {
-                    OPstream toNbr(Pstream::scheduled, sendProc, 0, tag);
+                    OPstream toNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        sendProc,
+                        0,
+                        tag
+                    );
 
                     const labelList& map = subMap[sendProc];
                     List<T> subField(map.size());
@@ -362,13 +386,13 @@ void Foam::mapDistributeBase::distribute
         }
         field.transfer(newField);
     }
-    else if (commsType == Pstream::nonBlocking)
+    else if (commsType == Pstream::commsTypes::nonBlocking)
     {
         label nOutstanding = Pstream::nRequests();
 
         if (!contiguous<T>())
         {
-            PstreamBuffers pBufs(Pstream::nonBlocking, tag);
+            PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking, tag);
 
             // Stream data into buffer
             for (label domain = 0; domain < Pstream::nProcs(); domain++)
@@ -484,7 +508,7 @@ void Foam::mapDistributeBase::distribute
 
                     OPstream::write
                     (
-                        Pstream::nonBlocking,
+                        Pstream::commsTypes::nonBlocking,
                         domain,
                         reinterpret_cast<const char*>(subField.begin()),
                         subField.byteSize(),
@@ -506,7 +530,7 @@ void Foam::mapDistributeBase::distribute
                     recvFields[domain].setSize(map.size());
                     IPstream::read
                     (
-                        Pstream::nonBlocking,
+                        Pstream::commsTypes::nonBlocking,
                         domain,
                         reinterpret_cast<char*>(recvFields[domain].begin()),
                         recvFields[domain].byteSize(),
@@ -591,7 +615,7 @@ void Foam::mapDistributeBase::distribute
     else
     {
         FatalErrorInFunction
-            << "Unknown communication schedule " << commsType
+            << "Unknown communication schedule " << int(commsType)
             << abort(FatalError);
     }
 }
@@ -638,7 +662,7 @@ void Foam::mapDistributeBase::distribute
         return;
     }
 
-    if (commsType == Pstream::blocking)
+    if (commsType == Pstream::commsTypes::blocking)
     {
         // Since buffered sending can reuse the field to collect the
         // received data.
@@ -650,7 +674,7 @@ void Foam::mapDistributeBase::distribute
 
             if (domain != Pstream::myProcNo() && map.size())
             {
-                OPstream toNbr(Pstream::blocking, domain, 0, tag);
+                OPstream toNbr(Pstream::commsTypes::blocking, domain, 0, tag);
                 List<T> subField(map.size());
                 forAll(subField, i)
                 {
@@ -690,7 +714,7 @@ void Foam::mapDistributeBase::distribute
 
             if (domain != Pstream::myProcNo() && map.size())
             {
-                IPstream fromNbr(Pstream::blocking, domain, 0, tag);
+                IPstream fromNbr(Pstream::commsTypes::blocking, domain, 0, tag);
                 List<T> subField(fromNbr);
 
                 checkReceivedSize(domain, map.size(), subField.size());
@@ -707,7 +731,7 @@ void Foam::mapDistributeBase::distribute
             }
         }
     }
-    else if (commsType == Pstream::scheduled)
+    else if (commsType == Pstream::commsTypes::scheduled)
     {
         // Need to make sure I don't overwrite field with received data
         // since the data might need to be sent to another processor. So
@@ -759,7 +783,13 @@ void Foam::mapDistributeBase::distribute
             {
                 // I am send first, receive next
                 {
-                    OPstream toNbr(Pstream::scheduled, recvProc, 0, tag);
+                    OPstream toNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        recvProc,
+                        0,
+                        tag
+                    );
 
                     const labelList& map = subMap[recvProc];
 
@@ -777,7 +807,13 @@ void Foam::mapDistributeBase::distribute
                     toNbr << subField;
                 }
                 {
-                    IPstream fromNbr(Pstream::scheduled, recvProc, 0, tag);
+                    IPstream fromNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        recvProc,
+                        0,
+                        tag
+                    );
                     List<T> subField(fromNbr);
                     const labelList& map = constructMap[recvProc];
 
@@ -798,7 +834,13 @@ void Foam::mapDistributeBase::distribute
             {
                 // I am receive first, send next
                 {
-                    IPstream fromNbr(Pstream::scheduled, sendProc, 0, tag);
+                    IPstream fromNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        sendProc,
+                        0,
+                        tag
+                    );
                     List<T> subField(fromNbr);
                     const labelList& map = constructMap[sendProc];
 
@@ -815,7 +857,13 @@ void Foam::mapDistributeBase::distribute
                     );
                 }
                 {
-                    OPstream toNbr(Pstream::scheduled, sendProc, 0, tag);
+                    OPstream toNbr
+                    (
+                        Pstream::commsTypes::scheduled,
+                        sendProc,
+                        0,
+                        tag
+                    );
 
                     const labelList& map = subMap[sendProc];
 
@@ -836,13 +884,13 @@ void Foam::mapDistributeBase::distribute
         }
         field.transfer(newField);
     }
-    else if (commsType == Pstream::nonBlocking)
+    else if (commsType == Pstream::commsTypes::nonBlocking)
     {
         label nOutstanding = Pstream::nRequests();
 
         if (!contiguous<T>())
         {
-            PstreamBuffers pBufs(Pstream::nonBlocking, tag);
+            PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking, tag);
 
             // Stream data into buffer
             for (label domain = 0; domain < Pstream::nProcs(); domain++)
@@ -961,7 +1009,7 @@ void Foam::mapDistributeBase::distribute
 
                     OPstream::write
                     (
-                        Pstream::nonBlocking,
+                        Pstream::commsTypes::nonBlocking,
                         domain,
                         reinterpret_cast<const char*>(subField.begin()),
                         subField.size()*sizeof(T),
@@ -983,7 +1031,7 @@ void Foam::mapDistributeBase::distribute
                     recvFields[domain].setSize(map.size());
                     UIPstream::read
                     (
-                        Pstream::nonBlocking,
+                        Pstream::commsTypes::nonBlocking,
                         domain,
                         reinterpret_cast<char*>(recvFields[domain].begin()),
                         recvFields[domain].size()*sizeof(T),
@@ -1067,7 +1115,7 @@ void Foam::mapDistributeBase::distribute
     else
     {
         FatalErrorInFunction
-            << "Unknown communication schedule " << commsType
+            << "Unknown communication schedule " << int(commsType)
             << abort(FatalError);
     }
 }
@@ -1155,11 +1203,11 @@ void Foam::mapDistributeBase::distribute
     const int tag
 ) const
 {
-    if (Pstream::defaultCommsType == Pstream::nonBlocking)
+    if (Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking)
     {
         distribute
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             List<labelPair>(),
             constructSize_,
             subMap_,
@@ -1171,11 +1219,11 @@ void Foam::mapDistributeBase::distribute
             tag
         );
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         distribute
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             schedule(),
             constructSize_,
             subMap_,
@@ -1191,7 +1239,7 @@ void Foam::mapDistributeBase::distribute
     {
         distribute
         (
-            Pstream::blocking,
+            Pstream::commsTypes::blocking,
             List<labelPair>(),
             constructSize_,
             subMap_,
@@ -1245,11 +1293,11 @@ void Foam::mapDistributeBase::reverseDistribute
     const int tag
 ) const
 {
-    if (Pstream::defaultCommsType == Pstream::nonBlocking)
+    if (Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking)
     {
         distribute
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             List<labelPair>(),
             constructSize,
             constructMap_,
@@ -1261,11 +1309,11 @@ void Foam::mapDistributeBase::reverseDistribute
             tag
         );
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         distribute
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             schedule(),
             constructSize,
             constructMap_,
@@ -1281,7 +1329,7 @@ void Foam::mapDistributeBase::reverseDistribute
     {
         distribute
         (
-            Pstream::blocking,
+            Pstream::commsTypes::blocking,
             List<labelPair>(),
             constructSize,
             constructMap_,
@@ -1308,11 +1356,11 @@ void Foam::mapDistributeBase::reverseDistribute
     const int tag
 ) const
 {
-    if (Pstream::defaultCommsType == Pstream::nonBlocking)
+    if (Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking)
     {
         distribute
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             List<labelPair>(),
             constructSize,
             constructMap_,
@@ -1326,11 +1374,11 @@ void Foam::mapDistributeBase::reverseDistribute
             tag
         );
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         distribute
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             schedule(),
             constructSize,
             constructMap_,
@@ -1348,7 +1396,7 @@ void Foam::mapDistributeBase::reverseDistribute
     {
         distribute
         (
-            Pstream::blocking,
+            Pstream::commsTypes::blocking,
             List<labelPair>(),
             constructSize,
             constructMap_,
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
index 94b8e5e0b33..4c59e4f9c05 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -223,8 +223,8 @@ void Foam::polyBoundaryMesh::calcGeometry()
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(*this, patchi)
@@ -239,7 +239,7 @@ void Foam::polyBoundaryMesh::calcGeometry()
             operator[](patchi).calcGeometry(pBufs);
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
 
@@ -1010,8 +1010,8 @@ void Foam::polyBoundaryMesh::movePoints(const pointField& p)
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(*this, patchi)
@@ -1026,7 +1026,7 @@ void Foam::polyBoundaryMesh::movePoints(const pointField& p)
             operator[](patchi).movePoints(pBufs, p);
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
 
@@ -1060,8 +1060,8 @@ void Foam::polyBoundaryMesh::updateMesh()
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         forAll(*this, patchi)
@@ -1076,7 +1076,7 @@ void Foam::polyBoundaryMesh::updateMesh()
             operator[](patchi).updateMesh(pBufs);
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
 
diff --git a/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C b/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C
index 627bbc2fd69..f0193a7de14 100644
--- a/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C
+++ b/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -129,7 +129,7 @@ void Foam::syncTools::syncPointMap
 
     if (Pstream::parRun())
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         // Send
 
@@ -311,7 +311,7 @@ void Foam::syncTools::syncPointMap
                     slave++
                 )
                 {
-                    IPstream fromSlave(Pstream::scheduled, slave);
+                    IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                     Map<T> nbrValues(fromSlave);
 
                     // Merge neighbouring values with my values
@@ -335,7 +335,7 @@ void Foam::syncTools::syncPointMap
                     slave++
                 )
                 {
-                    OPstream toSlave(Pstream::scheduled, slave);
+                    OPstream toSlave(Pstream::commsTypes::scheduled, slave);
                     toSlave << sharedPointValues;
                 }
             }
@@ -343,14 +343,18 @@ void Foam::syncTools::syncPointMap
             {
                 // Slave: send to master
                 {
-                    OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                    OPstream toMaster
+                    (
+                        Pstream::commsTypes::scheduled,
+                        Pstream::masterNo()
+                    );
                     toMaster << sharedPointValues;
                 }
                 // Receive merged values
                 {
                     IPstream fromMaster
                     (
-                        Pstream::scheduled,
+                        Pstream::commsTypes::scheduled,
                         Pstream::masterNo()
                     );
                     fromMaster >> sharedPointValues;
@@ -405,7 +409,7 @@ void Foam::syncTools::syncEdgeMap
 
     if (Pstream::parRun())
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         // Send
 
@@ -687,7 +691,7 @@ void Foam::syncTools::syncEdgeMap
                 slave++
             )
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 EdgeMap<T> nbrValues(fromSlave);
 
                 // Merge neighbouring values with my values
@@ -712,7 +716,7 @@ void Foam::syncTools::syncEdgeMap
             )
             {
 
-                OPstream toSlave(Pstream::scheduled, slave);
+                OPstream toSlave(Pstream::commsTypes::scheduled, slave);
                 toSlave << sharedEdgeValues;
             }
         }
@@ -720,12 +724,20 @@ void Foam::syncTools::syncEdgeMap
         {
             // Send to master
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 toMaster << sharedEdgeValues;
             }
             // Receive merged values
             {
-                IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+                IPstream fromMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 fromMaster >> sharedEdgeValues;
             }
         }
@@ -799,7 +811,7 @@ void Foam::syncTools::syncEdgeMap
 //
 //    if (Pstream::parRun())
 //    {
-//        PstreamBuffers pBufs(Pstream::nonBlocking);
+//        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 //
 //        // Send
 //
@@ -1302,7 +1314,7 @@ void Foam::syncTools::syncBoundaryFaceList
 
     if (parRun)
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         // Send
 
@@ -1422,7 +1434,7 @@ void Foam::syncTools::syncFaceList
 
     if (parRun)
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         // Send
 
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C
index 85dbb2cdc82..d100ad3fe81 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -182,7 +182,7 @@ void Foam::PatchTools::gatherAndMerge
             // Receive slave ones
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
 
                 pointField slavePoints(fromSlave);
                 List<FaceType> slaveFaces(fromSlave);
@@ -210,7 +210,7 @@ void Foam::PatchTools::gatherAndMerge
             // be improved.
             OPstream toMaster
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 Pstream::masterNo(),
                 myPoints.byteSize() + 4*sizeof(label)*myFaces.size()
             );
diff --git a/src/Pstream/mpi/UIPread.C b/src/Pstream/mpi/UIPread.C
index 524f09dcea5..48ee5b3a3e8 100644
--- a/src/Pstream/mpi/UIPread.C
+++ b/src/Pstream/mpi/UIPread.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,7 +60,7 @@ Foam::UIPstream::UIPstream
     setOpened();
     setGood();
 
-    if (commsType == UPstream::nonBlocking)
+    if (commsType == commsTypes::nonBlocking)
     {
         // Message is already received into externalBuf
     }
@@ -135,7 +135,11 @@ Foam::UIPstream::UIPstream(const int fromProcNo, PstreamBuffers& buffers)
     clearAtEnd_(true),
     messageSize_(0)
 {
-    if (commsType() != UPstream::scheduled && !buffers.finishedSendsCalled_)
+    if
+    (
+        commsType() != UPstream::commsTypes::scheduled
+     && !buffers.finishedSendsCalled_
+    )
     {
         FatalErrorInFunction
             << "PstreamBuffers::finishedSends() never called." << endl
@@ -147,7 +151,7 @@ Foam::UIPstream::UIPstream(const int fromProcNo, PstreamBuffers& buffers)
     setOpened();
     setGood();
 
-    if (commsType() == UPstream::nonBlocking)
+    if (commsType() == commsTypes::nonBlocking)
     {
         // Message is already received into externalBuf
         messageSize_ = buffers.recvBuf_[fromProcNo].size();
@@ -251,7 +255,7 @@ Foam::label Foam::UIPstream::read
         error::printStack(Pout);
     }
 
-    if (commsType == blocking || commsType == scheduled)
+    if (commsType == commsTypes::blocking || commsType == commsTypes::scheduled)
     {
         MPI_Status status;
 
@@ -301,7 +305,7 @@ Foam::label Foam::UIPstream::read
 
         return messageSize;
     }
-    else if (commsType == nonBlocking)
+    else if (commsType == commsTypes::nonBlocking)
     {
         MPI_Request request;
 
@@ -344,7 +348,7 @@ Foam::label Foam::UIPstream::read
     {
         FatalErrorInFunction
             << "Unsupported communications type "
-            << commsType
+            << int(commsType)
             << Foam::abort(FatalError);
 
         return 0;
diff --git a/src/Pstream/mpi/UOPwrite.C b/src/Pstream/mpi/UOPwrite.C
index b3188f0009a..563163966c3 100644
--- a/src/Pstream/mpi/UOPwrite.C
+++ b/src/Pstream/mpi/UOPwrite.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,7 +68,7 @@ bool Foam::UOPstream::write
 
     bool transferFailed = true;
 
-    if (commsType == blocking)
+    if (commsType == commsTypes::blocking)
     {
         transferFailed = MPI_Bsend
         (
@@ -88,7 +88,7 @@ bool Foam::UOPstream::write
                 << Foam::endl;
         }
     }
-    else if (commsType == scheduled)
+    else if (commsType == commsTypes::scheduled)
     {
         transferFailed = MPI_Send
         (
@@ -108,7 +108,7 @@ bool Foam::UOPstream::write
                 << Foam::endl;
         }
     }
-    else if (commsType == nonBlocking)
+    else if (commsType == commsTypes::nonBlocking)
     {
         MPI_Request request;
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H
index 0fd335ea88f..42e3efa01f1 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -221,17 +221,14 @@ public:
 
     // Member functions
 
-        // Evaluation functions
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
-
-            //- Transfer data for external source
-            virtual void transferData(OFstream& os) const;
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 
+        //- Transfer data for external source
+        virtual void transferData(OFstream& os) const;
 
         //- Write
         virtual void write(Ostream&) const;
diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
index 006f06b170c..c4061a22da5 100644
--- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
+++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -148,19 +148,14 @@ public:
 
     // Member functions
 
-        // Evaluation functions
-
-            //- Evaluate the patchField
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::Pstream::blocking
-            );
-
-
-        // I-O
+        //- Evaluate the patchField
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType = Pstream::commsTypes::blocking
+        );
 
-            //- Write
-            virtual void write(Ostream&) const;
+        //- Write
+        virtual void write(Ostream&) const;
 };
 
 
diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
index 2fdf0b3c160..c4886d721b8 100644
--- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
+++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -1763,7 +1763,7 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
 
 
     // Allocate buffers
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
 
     // What to send to neighbouring domains
@@ -1792,7 +1792,7 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
             }
 
             // Pstream for sending mesh and fields
-            //OPstream str(Pstream::blocking, recvProc);
+            //OPstream str(Pstream::commsTypes::blocking, recvProc);
             UOPstream str(recvProc, pBufs);
 
             // Mesh subsetting engine
diff --git a/src/dynamicMesh/fvMeshSubset/fvMeshSubset.C b/src/dynamicMesh/fvMeshSubset/fvMeshSubset.C
index 8b8c616293a..6f35a3fff6d 100644
--- a/src/dynamicMesh/fvMeshSubset/fvMeshSubset.C
+++ b/src/dynamicMesh/fvMeshSubset/fvMeshSubset.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -105,7 +105,7 @@ void Foam::fvMeshSubset::doCoupledPatches
 
     if (syncPar && Pstream::parRun())
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         // Send face usage across processor patches
         forAll(oldPatches, oldPatchi)
diff --git a/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C b/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C
index 819894dbb9d..926f4fa985a 100644
--- a/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C
+++ b/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -459,12 +459,12 @@ void Foam::motionSmootherAlgo::setDisplacementPatchFields
             if (patchSchedule[patchEvalI].init)
             {
                 displacementBf[patchi]
-                    .initEvaluate(Pstream::scheduled);
+                    .initEvaluate(Pstream::commsTypes::scheduled);
             }
             else
             {
                 displacementBf[patchi]
-                    .evaluate(Pstream::scheduled);
+                    .evaluate(Pstream::commsTypes::scheduled);
             }
         }
     }
@@ -597,12 +597,12 @@ void Foam::motionSmootherAlgo::correctBoundaryConditions
             if (patchSchedule[patchEvalI].init)
             {
                 displacementBf[patchi]
-                    .initEvaluate(Pstream::blocking);
+                    .initEvaluate(Pstream::commsTypes::blocking);
             }
             else
             {
                 displacementBf[patchi]
-                    .evaluate(Pstream::blocking);
+                    .evaluate(Pstream::commsTypes::blocking);
             }
         }
     }
@@ -618,12 +618,12 @@ void Foam::motionSmootherAlgo::correctBoundaryConditions
             if (patchSchedule[patchEvalI].init)
             {
                 displacementBf[patchi]
-                    .initEvaluate(Pstream::blocking);
+                    .initEvaluate(Pstream::commsTypes::blocking);
             }
             else
             {
                 displacementBf[patchi]
-                    .evaluate(Pstream::blocking);
+                    .evaluate(Pstream::commsTypes::blocking);
             }
         }
     }
diff --git a/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C b/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C
index 92f9d60fefb..a8eb33fd5cb 100644
--- a/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C
+++ b/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,12 +64,12 @@ void Foam::motionSmootherAlgo::checkConstraints
 
     forAllReverse(bFld, patchi)
     {
-        bFld[patchi].initEvaluate(Pstream::blocking);   // buffered
+        bFld[patchi].initEvaluate(Pstream::commsTypes::blocking);   // buffered
     }
 
     forAllReverse(bFld, patchi)
     {
-        bFld[patchi].evaluate(Pstream::blocking);
+        bFld[patchi].evaluate(Pstream::commsTypes::blocking);
     }
 
 
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
index 28511092c67..9b9459f8b1a 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
@@ -1429,7 +1429,7 @@ void Foam::refinementHistory::distribute(const mapDistributePolyMesh& map)
 
 
         // Send to neighbours
-        OPstream toNbr(Pstream::blocking, proci);
+        OPstream toNbr(Pstream::commsTypes::blocking, proci);
         toNbr << newSplitCells << newVisibleCells;
     }
 
@@ -1447,7 +1447,7 @@ void Foam::refinementHistory::distribute(const mapDistributePolyMesh& map)
 
     for (label proci = 0; proci < Pstream::nProcs(); proci++)
     {
-        IPstream fromNbr(Pstream::blocking, proci);
+        IPstream fromNbr(Pstream::commsTypes::blocking, proci);
         List<splitCell8> newSplitCells(fromNbr);
         labelList newVisibleCells(fromNbr);
 
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
index e6e9ab2a721..3d92f787150 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -1931,7 +1931,7 @@ void Foam::polyTopoChange::reorderCoupledFaces
     // Rotation on new faces.
     labelList rotation(faces_.size(), 0);
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     // Send ordering
     forAll(boundary, patchi)
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H
index 01af21c5fe0..236f4666f60 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,19 +122,17 @@ public:
 
     // Member functions
 
-        // Evaluation functions
+        //- Return gradient at boundary
+        virtual tmp<Field<Type>> snGrad() const;
 
-            //- Return gradient at boundary
-            virtual tmp<Field<Type>> snGrad() const;
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 
-            //- Return face-gradient transform diagonal
-            virtual tmp<Field<Type>> snGradTransformDiag() const;
+        //- Return face-gradient transform diagonal
+        virtual tmp<Field<Type>> snGradTransformDiag() const;
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H
index d40a605f74d..cdda48792bf 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -204,7 +204,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
             //- Return face-gradient transform diagonal
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H
index f9eb61e2856..42c57a2a7fa 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -136,13 +136,11 @@ public:
 
     // Member functions
 
-        // Evaluation functions
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H
index 622a52fcdea..698a14312fd 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -198,7 +198,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
             //- Return the matrix diagonal coefficients corresponding to the
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H
index 1da39dc1989..b237174ab8c 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -242,7 +242,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
             //- Return the matrix diagonal coefficients corresponding to the
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H
index 75fe5871972..847a0b4ebc7 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -176,14 +176,16 @@ public:
             //- Initialise the evaluation of the patch field
             virtual void initEvaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
             //- Evaluate the patch field, sets Updated to false
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H
index c8c1ec4b507..fa612fc0882 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -149,7 +149,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
             //- Return the matrix diagonal coefficients corresponding to the
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C
index b4241bb2710..db36178e73e 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ Foam::cyclicFvPatchField<Type>::cyclicFvPatchField
             << exit(FatalIOError);
     }
 
-    this->evaluate(Pstream::blocking);
+    this->evaluate(Pstream::commsTypes::blocking);
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C
index 0b9335fb8f8..124c42fb87e 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,7 +68,7 @@ Foam::cyclicACMIFvPatchField<Type>::cyclicACMIFvPatchField
 
     if (!dict.found("value") && this->coupled())
     {
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C
index 7d8fec72c12..50f0b559383 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ Foam::cyclicAMIFvPatchField<Type>::cyclicAMIFvPatchField
 
     if (!dict.found("value") && this->coupled())
     {
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C
index 801d446627e..36705e2111c 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,7 +62,7 @@ Foam::jumpCyclicFvPatchField<Type>::jumpCyclicFvPatchField
     cyclicFvPatchField<Type>(p, iF, dict)
 {
     // Call this evaluation in derived classes
-    //this->evaluate(Pstream::blocking);
+    //this->evaluate(Pstream::commsTypes::blocking);
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.C
index 2947bb5656f..e22390f84a2 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,7 +63,7 @@ Foam::jumpCyclicAMIFvPatchField<Type>::jumpCyclicAMIFvPatchField
     cyclicAMIFvPatchField<Type>(p, iF, dict)
 {
     // Call this evaluation in derived classes
-    //this->evaluate(Pstream::blocking);
+    //this->evaluate(Pstream::commsTypes::blocking);
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C
index 0a7c8e7bea5..39b92ea77cd 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -225,14 +225,18 @@ void Foam::processorFvPatchField<Type>::initEvaluate
     {
         this->patchInternalField(sendBuf_);
 
-        if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+        if
+        (
+            commsType == Pstream::commsTypes::nonBlocking
+         && !Pstream::floatTransfer
+        )
         {
             // Fast path. Receive into *this
             this->setSize(sendBuf_.size());
             outstandingRecvRequest_ = UPstream::nRequests();
             UIPstream::read
             (
-                Pstream::nonBlocking,
+                Pstream::commsTypes::nonBlocking,
                 procPatch_.neighbProcNo(),
                 reinterpret_cast<char*>(this->begin()),
                 this->byteSize(),
@@ -243,7 +247,7 @@ void Foam::processorFvPatchField<Type>::initEvaluate
             outstandingSendRequest_ = UPstream::nRequests();
             UOPstream::write
             (
-                Pstream::nonBlocking,
+                Pstream::commsTypes::nonBlocking,
                 procPatch_.neighbProcNo(),
                 reinterpret_cast<const char*>(sendBuf_.begin()),
                 this->byteSize(),
@@ -267,7 +271,11 @@ void Foam::processorFvPatchField<Type>::evaluate
 {
     if (Pstream::parRun())
     {
-        if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+        if
+        (
+            commsType == Pstream::commsTypes::nonBlocking
+         && !Pstream::floatTransfer
+        )
         {
             // Fast path. Received into *this
 
@@ -318,7 +326,11 @@ void Foam::processorFvPatchField<Type>::initInterfaceMatrixUpdate
 {
     this->patch().patchInternalField(psiInternal, scalarSendBuf_);
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         if (debug && !this->ready())
@@ -334,7 +346,7 @@ void Foam::processorFvPatchField<Type>::initInterfaceMatrixUpdate
         outstandingRecvRequest_ = UPstream::nRequests();
         UIPstream::read
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procPatch_.neighbProcNo(),
             reinterpret_cast<char*>(scalarReceiveBuf_.begin()),
             scalarReceiveBuf_.byteSize(),
@@ -345,7 +357,7 @@ void Foam::processorFvPatchField<Type>::initInterfaceMatrixUpdate
         outstandingSendRequest_ = UPstream::nRequests();
         UOPstream::write
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procPatch_.neighbProcNo(),
             reinterpret_cast<const char*>(scalarSendBuf_.begin()),
             scalarSendBuf_.byteSize(),
@@ -379,7 +391,11 @@ void Foam::processorFvPatchField<Type>::updateInterfaceMatrix
 
     const labelUList& faceCells = this->patch().faceCells();
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         if
@@ -437,7 +453,11 @@ void Foam::processorFvPatchField<Type>::initInterfaceMatrixUpdate
 {
     this->patch().patchInternalField(psiInternal, sendBuf_);
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         if (debug && !this->ready())
@@ -453,7 +473,7 @@ void Foam::processorFvPatchField<Type>::initInterfaceMatrixUpdate
         outstandingRecvRequest_ = UPstream::nRequests();
         IPstream::read
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procPatch_.neighbProcNo(),
             reinterpret_cast<char*>(receiveBuf_.begin()),
             receiveBuf_.byteSize(),
@@ -464,7 +484,7 @@ void Foam::processorFvPatchField<Type>::initInterfaceMatrixUpdate
         outstandingSendRequest_ = UPstream::nRequests();
         OPstream::write
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procPatch_.neighbProcNo(),
             reinterpret_cast<const char*>(sendBuf_.begin()),
             sendBuf_.byteSize(),
@@ -497,7 +517,11 @@ void Foam::processorFvPatchField<Type>::updateInterfaceMatrix
 
     const labelUList& faceCells = this->patch().faceCells();
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         if
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchScalarField.C
index 40ba0865fce..53ebbb18e2e 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,11 @@ void processorFvPatchField<scalar>::initInterfaceMatrixUpdate
 {
     this->patch().patchInternalField(psiInternal, scalarSendBuf_);
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         if (debug && !this->ready())
@@ -60,7 +64,7 @@ void processorFvPatchField<scalar>::initInterfaceMatrixUpdate
         outstandingRecvRequest_ = UPstream::nRequests();
         UIPstream::read
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procPatch_.neighbProcNo(),
             reinterpret_cast<char*>(scalarReceiveBuf_.begin()),
             scalarReceiveBuf_.byteSize(),
@@ -71,7 +75,7 @@ void processorFvPatchField<scalar>::initInterfaceMatrixUpdate
         outstandingSendRequest_ = UPstream::nRequests();
         UOPstream::write
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             procPatch_.neighbProcNo(),
             reinterpret_cast<const char*>(scalarSendBuf_.begin()),
             scalarSendBuf_.byteSize(),
@@ -105,7 +109,11 @@ void processorFvPatchField<scalar>::updateInterfaceMatrix
 
     const labelUList& faceCells = this->patch().faceCells();
 
-    if (commsType == Pstream::nonBlocking && !Pstream::floatTransfer)
+    if
+    (
+        commsType == Pstream::commsTypes::nonBlocking
+     && !Pstream::floatTransfer
+    )
     {
         // Fast path.
         if
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C
index a2e322b35f7..4cc2a4d53c5 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -66,7 +66,7 @@ Foam::processorCyclicFvPatchField<Type>::processorCyclicFvPatchField
             << exit(FatalIOError);
     }
 
-    if (Pstream::defaultCommsType == Pstream::scheduled)
+    if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         WarningInFunction
             << "Scheduled communication with split cyclics not supported."
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/symmetryPlane/symmetryPlaneFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/symmetryPlane/symmetryPlaneFvPatchField.H
index ab6057d9dee..8ecb4c36273 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/symmetryPlane/symmetryPlaneFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/symmetryPlane/symmetryPlaneFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -143,19 +143,17 @@ public:
 
     // Member functions
 
-        // Evaluation functions
+        //- Return gradient at boundary
+        virtual tmp<Field<Type>> snGrad() const;
 
-            //- Return gradient at boundary
-            virtual tmp<Field<Type>> snGrad() const;
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 
-            //- Return face-gradient transform diagonal
-            virtual tmp<Field<Type>> snGradTransformDiag() const;
+        //- Return face-gradient transform diagonal
+        virtual tmp<Field<Type>> snGradTransformDiag() const;
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H
index eab75d121a2..fec234b9195 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -138,19 +138,17 @@ public:
 
     // Member functions
 
-        // Evaluation functions
+        //- Return gradient at boundary
+        virtual tmp<Field<Type>> snGrad() const;
 
-            //- Return gradient at boundary
-            virtual tmp<Field<Type>> snGrad() const;
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 
-            //- Return face-gradient transform diagonal
-            virtual tmp<Field<Type>> snGradTransformDiag() const;
+        //- Return face-gradient transform diagonal
+        virtual tmp<Field<Type>> snGradTransformDiag() const;
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H
index e8f7453d4dc..df891131d46 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -227,7 +227,7 @@ public:
         //- Evaluate the patch field, sets Updated to false
         virtual void evaluate
         (
-            const Pstream::commsTypes commsType=Pstream::blocking
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
         );
 
         //- Write
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H
index 37b20c9c457..94caaee3316 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -239,7 +239,7 @@ public:
         //  to false.
         virtual void evaluate
         (
-            const Pstream::commsTypes commsType=Pstream::blocking
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
         );
 
         //- Write
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.H
index 190ff28e5c9..690e74df425 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.H
@@ -1,8 +1,8 @@
-/*---------------------------------------------------------------------------*\
+/*---------------------------------------------------------------------------* \
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -308,38 +308,32 @@ public:
 
     // Member functions
 
-        // Access
-
-            //- Return the log flag
-            bool log() const
-            {
-                return log_;
-            }
-
-            //- Return the master flag
-            bool master() const
-            {
-                return master_;
-            }
-
-            //- Return the master flag
-            bool& master()
-            {
-                return master_;
-            }
-
+        //- Return the log flag
+        bool log() const
+        {
+            return log_;
+        }
 
-        // Evaluation functions
+        //- Return the master flag
+        bool master() const
+        {
+            return master_;
+        }
 
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
+        //- Return the master flag
+        bool& master()
+        {
+            return master_;
+        }
 
-            //- Transfer data for external source
-            virtual void transferData(OFstream& os) const;
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 
+        //- Transfer data for external source
+        virtual void transferData(OFstream& os) const;
 
         //- Write the geometry to the comms dir
         void writeGeometry() const;
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
index 29b446df30d..dc9a1aa8550 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -117,7 +117,7 @@ Foam::fanFvPatchField<Foam::scalar>::fanFvPatchField
     }
     else
     {
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C
index 13eba7efa00..52764fc6a3d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,7 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField
     }
     else
     {
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedJumpAMI/fixedJumpAMIFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedJumpAMI/fixedJumpAMIFvPatchField.C
index 354a84bb2d5..2229069a14d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedJumpAMI/fixedJumpAMIFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedJumpAMI/fixedJumpAMIFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,7 @@ Foam::fixedJumpAMIFvPatchField<Type>::fixedJumpAMIFvPatchField
     }
     else
     {
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H
index 93c11806223..5b477184437 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -194,7 +194,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
             //- Return face-gradient transform diagonal
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
index 1e507a5dfd5..be8e625a968 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,7 +92,7 @@ flowRateInletVelocityFvPatchVectorField
     }
     else
     {
-        evaluate(Pstream::blocking);
+        evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H
index b4369b12bce..0800656d5ff 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -169,14 +169,11 @@ public:
 
     // Member functions
 
-        // Evaluation functions
-
-            //- Evaluate the patch field
-            virtual void evaluate
-            (
-                const Pstream::commsTypes commsType=Pstream::blocking
-            );
-
+        //- Evaluate the patch field
+        virtual void evaluate
+        (
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
+        );
 
         //- Write
         virtual void write(Ostream&) const;
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H
index 52170caa29a..fb8d75056f3 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -195,7 +195,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
             //- Return face-gradient transform diagonal
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C
index cb0dbd17922..8a2602f70c8 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -115,7 +115,7 @@ timeVaryingMappedFixedValueFvPatchField
         //       by re-setting of fvatchfield::updated_ flag. This is
         //       so if first use is in the next time step it retriggers
         //       a new update.
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C
index 00f30731de9..265bbf3ec48 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,7 @@ Foam::uniformJumpFvPatchField<Type>::uniformJumpFvPatchField
     }
     else
     {
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformJumpAMI/uniformJumpAMIFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformJumpAMI/uniformJumpAMIFvPatchField.C
index 61339e232ea..12857efacb7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformJumpAMI/uniformJumpAMIFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformJumpAMI/uniformJumpAMIFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -75,7 +75,7 @@ Foam::uniformJumpAMIFvPatchField<Type>::uniformJumpAMIFvPatchField
     }
     else
     {
-        this->evaluate(Pstream::blocking);
+        this->evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
index 3fe1d2b0f60..748cb9dd06b 100644
--- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -439,14 +439,16 @@ public:
             //- Initialise the evaluation of the patch field
             virtual void initEvaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
             //- Evaluate the patch field, sets Updated to false
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             );
 
 
diff --git a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C
index 4bd21004f68..535e31ed7ce 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C
+++ b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -99,7 +99,7 @@ void Foam::volPointInterpolation::addSeparated
             refCast<coupledPointPatchField<Type>>
                 (pfbf[patchi]).initSwapAddSeparated
                 (
-                    Pstream::nonBlocking,
+                    Pstream::commsTypes::nonBlocking,
                     pfi
                 );
         }
@@ -115,7 +115,7 @@ void Foam::volPointInterpolation::addSeparated
             refCast<coupledPointPatchField<Type>>
                 (pfbf[patchi]).swapAddSeparated
                 (
-                    Pstream::nonBlocking,
+                    Pstream::commsTypes::nonBlocking,
                     pfi
                 );
         }
diff --git a/src/functionObjects/field/streamLine/streamLine.C b/src/functionObjects/field/streamLine/streamLine.C
index 2947d0d8014..a05a0ad94fb 100644
--- a/src/functionObjects/field/streamLine/streamLine.C
+++ b/src/functionObjects/field/streamLine/streamLine.C
@@ -456,7 +456,7 @@ bool Foam::functionObjects::streamLine::write()
         // to prevent buffering.
         mapDistributeBase::distribute
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             distMap.schedule(),
             distMap.constructSize(),
             distMap.subMap(),
@@ -473,7 +473,7 @@ bool Foam::functionObjects::streamLine::write()
             allScalars_[scalarI].shrink();
             mapDistributeBase::distribute
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 distMap.schedule(),
                 distMap.constructSize(),
                 distMap.subMap(),
@@ -491,7 +491,7 @@ bool Foam::functionObjects::streamLine::write()
             allVectors_[vectorI].shrink();
             mapDistributeBase::distribute
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 distMap.schedule(),
                 distMap.constructSize(),
                 distMap.subMap(),
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
index 7fd47295f1f..23892ba7769 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
@@ -616,7 +616,7 @@ bool Foam::functionObjects::wallBoundedStreamLine::write()
         allTracks_.shrink();
         mapDistributeBase::distribute
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             distMap.schedule(),
             distMap.constructSize(),
             distMap.subMap(),
@@ -633,7 +633,7 @@ bool Foam::functionObjects::wallBoundedStreamLine::write()
             allScalars_[scalarI].shrink();
             mapDistributeBase::distribute
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 distMap.schedule(),
                 distMap.constructSize(),
                 distMap.subMap(),
@@ -651,7 +651,7 @@ bool Foam::functionObjects::wallBoundedStreamLine::write()
             allVectors_[vectorI].shrink();
             mapDistributeBase::distribute
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 distMap.schedule(),
                 distMap.constructSize(),
                 distMap.subMap(),
diff --git a/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C b/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C
index 644a585366d..637e65a6e83 100644
--- a/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C
+++ b/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,7 +59,7 @@ void Foam::MGridGenGAMGAgglomeration::swap
         {
             interfaces[inti].initInternalFieldTransfer
             (
-                Pstream::nonBlocking,
+                Pstream::commsTypes::nonBlocking,
                 cellValues
             );
         }
@@ -83,7 +83,7 @@ void Foam::MGridGenGAMGAgglomeration::swap
                 (
                     interfaces[inti].internalFieldTransfer
                     (
-                        Pstream::nonBlocking,
+                        Pstream::commsTypes::nonBlocking,
                         cellValues
                     )
                 )
diff --git a/src/fvMotionSolver/pointPatchFields/derived/surfaceSlipDisplacement/surfaceSlipDisplacementPointPatchVectorField.H b/src/fvMotionSolver/pointPatchFields/derived/surfaceSlipDisplacement/surfaceSlipDisplacementPointPatchVectorField.H
index 7adb6d3d83b..1e1cc4838e7 100644
--- a/src/fvMotionSolver/pointPatchFields/derived/surfaceSlipDisplacement/surfaceSlipDisplacementPointPatchVectorField.H
+++ b/src/fvMotionSolver/pointPatchFields/derived/surfaceSlipDisplacement/surfaceSlipDisplacementPointPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -197,7 +197,7 @@ public:
         //- Update the patch field
         virtual void evaluate
         (
-            const Pstream::commsTypes commsType=Pstream::blocking
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
         );
 
         //- Write
diff --git a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C
index 4978b2aa471..5c91a843a1d 100644
--- a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C
+++ b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,7 +118,7 @@ timeVaryingMappedFixedValuePointPatchField
         //       of the pointPatchField::updated_ flag. This is
         //       so if first use is in the next time step it retriggers
         //       a new update.
-        pointPatchField<Type>::evaluate(Pstream::blocking);
+        pointPatchField<Type>::evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/lagrangian/basic/Cloud/Cloud.C b/src/lagrangian/basic/Cloud/Cloud.C
index 4dd3558af7b..9b66f53706a 100644
--- a/src/lagrangian/basic/Cloud/Cloud.C
+++ b/src/lagrangian/basic/Cloud/Cloud.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -232,7 +232,7 @@ void Foam::Cloud<ParticleType>::move(TrackData& td, const scalar trackTime)
     );
 
     // Allocate transfer buffers
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
 
     // While there are particles to transfer
diff --git a/src/lagrangian/basic/InteractionLists/InteractionLists.H b/src/lagrangian/basic/InteractionLists/InteractionLists.H
index 613c5fd31fb..f44a17ead53 100644
--- a/src/lagrangian/basic/InteractionLists/InteractionLists.H
+++ b/src/lagrangian/basic/InteractionLists/InteractionLists.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,7 +37,7 @@ Description
     Simultaneous communication and computation is possible using:
 
     \verbatim
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
     label startOfRequests = Pstream::nRequests();
     il_.sendReferredData(cellOccupancy_, pBufs);
     // Do other things
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C
index 5c0087e52f5..24090749f2f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ void Foam::PairCollision<CloudType>::preInteraction()
 template<class CloudType>
 void Foam::PairCollision<CloudType>::parcelInteraction()
 {
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     label startOfRequests = Pstream::nRequests();
 
diff --git a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
index 761dfc8d945..ffcb2601185 100644
--- a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
+++ b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -127,7 +127,7 @@ void Foam::moleculeCloud::buildCellOccupancy()
 
 void Foam::moleculeCloud::calculatePairForce()
 {
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     // Start sending referred data
     label startOfRequests = Pstream::nRequests();
@@ -359,7 +359,7 @@ void Foam::moleculeCloud::removeHighEnergyOverlaps()
 
     buildCellOccupancy();
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     // Start sending referred data
     label startOfRequests = Pstream::nRequests();
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
index 41c28a9bda2..aeb4cf5561b 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
@@ -1099,7 +1099,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitFaces
 //    {
 //        if (proci != Pstream::myProcNo())
 //        {
-//            OPstream str(Pstream::blocking, proci);
+//            OPstream str(Pstream::commsTypes::blocking, proci);
 //            str << regionConnectivity[proci];
 //        }
 //    }
@@ -1108,7 +1108,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitFaces
 //    {
 //        if (proci != Pstream::myProcNo())
 //        {
-//            IPstream str(Pstream::blocking, proci);
+//            IPstream str(Pstream::commsTypes::blocking, proci);
 //            str >> regionConnectivity[proci];
 //        }
 //    }
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementTemplates.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementTemplates.C
index a55ea51dea4..df9e9fbcf01 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementTemplates.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -171,7 +171,7 @@ void Foam::meshRefinement::collectAndPrint
         points,
         allPoints,
         UPstream::msgType(),
-        Pstream::blocking
+        Pstream::commsTypes::blocking
     );
 
     List<T> allData;
@@ -182,7 +182,7 @@ void Foam::meshRefinement::collectAndPrint
         data,
         allData,
         UPstream::msgType(),
-        Pstream::blocking
+        Pstream::commsTypes::blocking
     );
 
 
diff --git a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
index 7225237a161..292eb6aebe9 100644
--- a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
+++ b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -964,7 +964,7 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::update
 
         mapDistributeBase::distribute
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             List<labelPair>(),
             tgtPatch.size(),
             map.constructMap(),
@@ -979,7 +979,7 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::update
 
         mapDistributeBase::distribute
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             List<labelPair>(),
             tgtPatch.size(),
             map.constructMap(),
diff --git a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolationParallelOps.C b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolationParallelOps.C
index 0708b334bbd..cbb050a385d 100644
--- a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolationParallelOps.C
+++ b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolationParallelOps.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -124,7 +124,7 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::distributePatches
     List<labelList>& faceIDs
 ) const
 {
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     for (label domain = 0; domain < Pstream::nProcs(); domain++)
     {
diff --git a/src/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPointPatchField/cyclicACMIPointPatchField.H b/src/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPointPatchField/cyclicACMIPointPatchField.H
index 78b70675da8..2c108b2451a 100644
--- a/src/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPointPatchField/cyclicACMIPointPatchField.H
+++ b/src/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMIPointPatchField/cyclicACMIPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -211,7 +211,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
diff --git a/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPointPatchField/cyclicAMIPointPatchField.H b/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPointPatchField/cyclicAMIPointPatchField.H
index 5a02c944799..64765e52f74 100644
--- a/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPointPatchField/cyclicAMIPointPatchField.H
+++ b/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPointPatchField/cyclicAMIPointPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -211,7 +211,8 @@ public:
             //- Evaluate the patch field
             virtual void evaluate
             (
-                const Pstream::commsTypes commsType=Pstream::blocking
+                const Pstream::commsTypes commsType =
+                    Pstream::commsTypes::blocking
             )
             {}
 
diff --git a/src/meshTools/algorithms/MeshWave/FaceCellWave.C b/src/meshTools/algorithms/MeshWave/FaceCellWave.C
index f76d7165745..a4394ae6e7e 100644
--- a/src/meshTools/algorithms/MeshWave/FaceCellWave.C
+++ b/src/meshTools/algorithms/MeshWave/FaceCellWave.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -514,7 +514,7 @@ void Foam::FaceCellWave<Type, TrackingData>::handleProcPatches()
 
     // Send all
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     forAll(procPatches, i)
     {
diff --git a/src/meshTools/algorithms/PointEdgeWave/PointEdgeWave.C b/src/meshTools/algorithms/PointEdgeWave/PointEdgeWave.C
index b0d01a81b36..668f1f9b671 100644
--- a/src/meshTools/algorithms/PointEdgeWave/PointEdgeWave.C
+++ b/src/meshTools/algorithms/PointEdgeWave/PointEdgeWave.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -311,7 +311,7 @@ void Foam::PointEdgeWave<Type, TrackingData>::handleProcPatches()
 {
     // 1. Send all point info on processor patches.
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     DynamicList<Type> patchInfo;
     DynamicList<label> thisPoints;
diff --git a/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C b/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C
index e0e27a51663..a91b743a18e 100644
--- a/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -331,7 +331,7 @@ Foam::labelList Foam::simpleGeomDecomp::decompose
             // Add slaves
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 pointField nbrPoints(fromSlave);
                 SubField<point>
                 (
@@ -348,7 +348,7 @@ Foam::labelList Foam::simpleGeomDecomp::decompose
             // Send back
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                OPstream toSlave(Pstream::scheduled, slave);
+                OPstream toSlave(Pstream::commsTypes::scheduled, slave);
                 toSlave << SubField<label>
                 (
                     finalDecomp,
@@ -365,12 +365,20 @@ Foam::labelList Foam::simpleGeomDecomp::decompose
         {
             // Send my points
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 toMaster<< points;
             }
 
             // Receive back decomposition
-            IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             labelList finalDecomp(fromMaster);
 
             return finalDecomp;
@@ -408,7 +416,7 @@ Foam::labelList Foam::simpleGeomDecomp::decompose
             // Add slaves
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 pointField nbrPoints(fromSlave);
                 scalarField nbrWeights(fromSlave);
                 SubField<point>
@@ -432,7 +440,7 @@ Foam::labelList Foam::simpleGeomDecomp::decompose
             // Send back
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                OPstream toSlave(Pstream::scheduled, slave);
+                OPstream toSlave(Pstream::commsTypes::scheduled, slave);
                 toSlave << SubField<label>
                 (
                     finalDecomp,
@@ -449,12 +457,20 @@ Foam::labelList Foam::simpleGeomDecomp::decompose
         {
             // Send my points
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 toMaster<< points << weights;
             }
 
             // Receive back decomposition
-            IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             labelList finalDecomp(fromMaster);
 
             return finalDecomp;
diff --git a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C
index dcd2596d6b8..10a1a93ec82 100644
--- a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C
+++ b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -141,7 +141,8 @@ void Foam::ptscotchDecomp::check(const int retVal, const char* str)
 //    if (Pstream::myProcNo() >= 1 && nSendCells[Pstream::myProcNo()-1] > 0)
 //    {
 //        // Receive cells from previous processor
-//        IPstream fromPrevProc(Pstream::blocking, Pstream::myProcNo()-1);
+//        IPstream fromPrevProc(Pstream::commsTypes::blocking,
+//            Pstream::myProcNo()-1);
 //
 //        Field<int> prevXadj(fromPrevProc);
 //        Field<int> prevAdjncy(fromPrevProc);
@@ -171,7 +172,8 @@ void Foam::ptscotchDecomp::check(const int retVal, const char* str)
 //    if (nSendCells[Pstream::myProcNo()] > 0)
 //    {
 //        // Send cells to next processor
-//        OPstream toNextProc(Pstream::blocking, Pstream::myProcNo()+1);
+//        OPstream toNextProc(Pstream::commsTypes::blocking,
+//            Pstream::myProcNo()+1);
 //
 //        label nCells = nSendCells[Pstream::myProcNo()];
 //        label startCell = xadj.size()-1 - nCells;
@@ -220,7 +222,8 @@ void Foam::ptscotchDecomp::check(const int retVal, const char* str)
 //    // Receive back from next processor if I sent something
 //    if (nSendCells[Pstream::myProcNo()] > 0)
 //    {
-//        IPstream fromNextProc(Pstream::blocking, Pstream::myProcNo()+1);
+//        IPstream fromNextProc(Pstream::commsTypes::blocking,
+//            Pstream::myProcNo()+1);
 //
 //        List<label> nextFinalDecomp(fromNextProc);
 //
@@ -239,7 +242,8 @@ void Foam::ptscotchDecomp::check(const int retVal, const char* str)
 //    // Send back to previous processor.
 //    if (Pstream::myProcNo() >= 1 && nSendCells[Pstream::myProcNo()-1] > 0)
 //    {
-//        OPstream toPrevProc(Pstream::blocking, Pstream::myProcNo()-1);
+//        OPstream toPrevProc(Pstream::commsTypes::blocking,
+//            Pstream::myProcNo()-1);
 //
 //        label nToPrevious = nSendCells[Pstream::myProcNo()-1];
 //
diff --git a/src/parallel/decompose/scotchDecomp/scotchDecomp.C b/src/parallel/decompose/scotchDecomp/scotchDecomp.C
index 987ef18a1e6..4b3265ed797 100644
--- a/src/parallel/decompose/scotchDecomp/scotchDecomp.C
+++ b/src/parallel/decompose/scotchDecomp/scotchDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -127,7 +127,7 @@ Foam::label Foam::scotchDecomp::decompose
 
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 Field<label> nbrAdjncy(fromSlave);
                 Field<label> nbrXadj(fromSlave);
                 scalarField nbrWeights(fromSlave);
@@ -162,7 +162,7 @@ Foam::label Foam::scotchDecomp::decompose
             // Send allFinalDecomp back
             for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                OPstream toSlave(Pstream::scheduled, slave);
+                OPstream toSlave(Pstream::commsTypes::scheduled, slave);
                 toSlave << SubField<label>
                 (
                     allFinalDecomp,
@@ -181,13 +181,21 @@ Foam::label Foam::scotchDecomp::decompose
         {
             // Send my part of the graph (already in global numbering)
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
                 toMaster<< adjncy << SubField<label>(xadj, xadj.size()-1)
                     << cWeights;
             }
 
             // Receive back decomposition
-            IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+            IPstream fromMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
             fromMaster >> finalDecomp;
         }
     }
diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
index 63ffb1e451d..2887e057a79 100644
--- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
+++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -2241,7 +2241,7 @@ void Foam::distributedTriSurfaceMesh::distribute
         {
             if (faceSendSizes[Pstream::myProcNo()][proci] > 0)
             {
-                OPstream str(Pstream::blocking, proci);
+                OPstream str(Pstream::commsTypes::blocking, proci);
 
                 labelList pointMap;
                 triSurface subSurface
@@ -2277,7 +2277,7 @@ void Foam::distributedTriSurfaceMesh::distribute
         {
             if (faceSendSizes[proci][Pstream::myProcNo()] > 0)
             {
-                IPstream str(Pstream::blocking, proci);
+                IPstream str(Pstream::commsTypes::blocking, proci);
 
                 // Receive
                 triSurface subSurface(str);
diff --git a/src/sampling/meshToMesh/meshToMesh.C b/src/sampling/meshToMesh/meshToMesh.C
index 73d7514d1ca..e3948df1224 100644
--- a/src/sampling/meshToMesh/meshToMesh.C
+++ b/src/sampling/meshToMesh/meshToMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -377,7 +377,7 @@ void Foam::meshToMesh::calculate(const word& methodName)
         // set up as a reverse distribute
         mapDistributeBase::distribute
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             List<labelPair>(),
             tgtRegion_.nCells(),
             map.constructMap(),
@@ -393,7 +393,7 @@ void Foam::meshToMesh::calculate(const word& methodName)
         // set up as a reverse distribute
         mapDistributeBase::distribute
         (
-            Pstream::nonBlocking,
+            Pstream::commsTypes::nonBlocking,
             List<labelPair>(),
             tgtRegion_.nCells(),
             map.constructMap(),
diff --git a/src/sampling/meshToMesh/meshToMeshParallelOps.C b/src/sampling/meshToMesh/meshToMeshParallelOps.C
index 4580e126d0f..4a911775152 100644
--- a/src/sampling/meshToMesh/meshToMeshParallelOps.C
+++ b/src/sampling/meshToMesh/meshToMeshParallelOps.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -271,7 +271,7 @@ void Foam::meshToMesh::distributeCells
     List<labelList>& procLocalFaceIDs
 ) const
 {
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     points.setSize(Pstream::nProcs());
     nInternalFaces.setSize(Pstream::nProcs(), 0);
diff --git a/src/sampling/sampledSurface/isoSurface/isoSurface.C b/src/sampling/sampledSurface/isoSurface/isoSurface.C
index a15f625ed94..20d8b7e2542 100644
--- a/src/sampling/sampledSurface/isoSurface/isoSurface.C
+++ b/src/sampling/sampledSurface/isoSurface/isoSurface.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -139,7 +139,11 @@ void Foam::isoSurface::syncUnseparatedPoints
                     patchInfo[nbrPointi] = pointValues[meshPts[pointi]];
                 }
 
-                OPstream toNbr(Pstream::blocking, pp.neighbProcNo());
+                OPstream toNbr
+                (
+                    Pstream::commsTypes::blocking,
+                    pp.neighbProcNo()
+                );
                 toNbr << patchInfo;
             }
         }
@@ -162,7 +166,11 @@ void Foam::isoSurface::syncUnseparatedPoints
                 {
                     // We do not know the number of points on the other side
                     // so cannot use Pstream::read.
-                    IPstream fromNbr(Pstream::blocking, pp.neighbProcNo());
+                    IPstream fromNbr
+                    (
+                        Pstream::commsTypes::blocking,
+                        pp.neighbProcNo()
+                    );
                     fromNbr >> nbrPatchInfo;
                 }
 
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C
index 9851f44b6ff..a2ce75984ed 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,7 +70,7 @@ Foam::energyJumpFvPatchScalarField::energyJumpFvPatchScalarField
     }
     else
     {
-        evaluate(Pstream::blocking);
+        evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpAMI/energyJumpAMIFvPatchScalarField.C b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpAMI/energyJumpAMIFvPatchScalarField.C
index cc8675dad9b..7ee32ed7e43 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpAMI/energyJumpAMIFvPatchScalarField.C
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpAMI/energyJumpAMIFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,7 +70,7 @@ Foam::energyJumpAMIFvPatchScalarField::energyJumpAMIFvPatchScalarField
     }
     else
     {
-        evaluate(Pstream::blocking);
+        evaluate(Pstream::commsTypes::blocking);
     }
 }
 
diff --git a/src/transportModels/twoPhaseProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/src/transportModels/twoPhaseProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
index e52eab3eb4b..fdc46b9e0f4 100644
--- a/src/transportModels/twoPhaseProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
+++ b/src/transportModels/twoPhaseProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -148,7 +148,7 @@ public:
         //- Evaluate the patch field
         virtual void evaluate
         (
-            const Pstream::commsTypes commsType=Pstream::blocking
+            const Pstream::commsTypes commsType=Pstream::commsTypes::blocking
         );
 
         //- Write
-- 
GitLab


From d40363079c1ba0cffcad63bf6c1d8151d77ae077 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 13 Mar 2017 08:50:17 +0000
Subject: [PATCH 122/277] laplacianFoam: added fvOptions library

Resolves bug-report https://bugs.openfoam.org/view.php?id=2492
---
 applications/solvers/basic/laplacianFoam/Make/options | 1 +
 1 file changed, 1 insertion(+)

diff --git a/applications/solvers/basic/laplacianFoam/Make/options b/applications/solvers/basic/laplacianFoam/Make/options
index d27c95d033d..04ef6c148d7 100644
--- a/applications/solvers/basic/laplacianFoam/Make/options
+++ b/applications/solvers/basic/laplacianFoam/Make/options
@@ -4,4 +4,5 @@ EXE_INC = \
 
 EXE_LIBS = \
     -lfiniteVolume \
+    -lfvOptions \
     -lmeshTools
-- 
GitLab


From 47d72404125770b8c21efb5993cc75592b79132c Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 13 Mar 2017 18:01:39 +0000
Subject: [PATCH 123/277] turbulenceModels::RAS: Corrected sign of "C3"
 dilatation term

Set default value of C3 to 0
Set C3 to -0.33 in the engineFoam/kivaTest tutorial.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2496
---
 .../turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C  | 6 +++---
 .../turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C          | 6 +++---
 .../turbulenceModels/RAS/kEpsilon/kEpsilon.C                | 6 +++---
 .../engineFoam/kivaTest/constant/turbulenceProperties       | 5 +++++
 4 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C
index d5093fd1570..5c5b870d746 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -153,7 +153,7 @@ LaunderSharmaKE<BasicTurbulenceModel>::LaunderSharmaKE
         (
             "C3",
             this->coeffDict_,
-            -0.33
+            0
         )
     ),
     sigmak_
@@ -273,7 +273,7 @@ void LaunderSharmaKE<BasicTurbulenceModel>::correct()
       - fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_)
      ==
         C1_*alpha*rho*G*epsilon_/k_
-      - fvm::SuSp(((2.0/3.0)*C1_ + C3_)*alpha*rho*divU, epsilon_)
+      - fvm::SuSp(((2.0/3.0)*C1_ - C3_)*alpha*rho*divU, epsilon_)
       - fvm::Sp(C2_*f2()*alpha*rho*epsilon_/k_, epsilon_)
       + alpha*rho*E
       + epsilonSource()
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C b/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C
index fbe18212c1d..5356ad4e965 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -137,7 +137,7 @@ RNGkEpsilon<BasicTurbulenceModel>::RNGkEpsilon
         (
             "C3",
             this->coeffDict_,
-            -0.33
+            0
         )
     ),
     sigmak_
@@ -282,7 +282,7 @@ void RNGkEpsilon<BasicTurbulenceModel>::correct()
       - fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_)
      ==
         (C1_ - R)*alpha*rho*G*epsilon_/k_
-      - fvm::SuSp(((2.0/3.0)*C1_ + C3_)*alpha*rho*divU, epsilon_)
+      - fvm::SuSp(((2.0/3.0)*C1_ - C3_)*alpha*rho*divU, epsilon_)
       - fvm::Sp(C2_*alpha*rho*epsilon_/k_, epsilon_)
       + epsilonSource()
       + fvOptions(alpha, rho, epsilon_)
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C b/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C
index 54a0db76ce8..a660faa979c 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -137,7 +137,7 @@ kEpsilon<BasicTurbulenceModel>::kEpsilon
         (
             "C3",
             this->coeffDict_,
-            -0.33
+            0
         )
     ),
     sigmak_
@@ -259,7 +259,7 @@ void kEpsilon<BasicTurbulenceModel>::correct()
       - fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_)
      ==
         C1_*alpha()*rho()*G*epsilon_()/k_()
-      - fvm::SuSp(((2.0/3.0)*C1_ + C3_)*alpha()*rho()*divU, epsilon_)
+      - fvm::SuSp(((2.0/3.0)*C1_ - C3_)*alpha()*rho()*divU, epsilon_)
       - fvm::Sp(C2_*alpha()*rho()*epsilon_()/k_(), epsilon_)
       + epsilonSource()
       + fvOptions(alpha, rho, epsilon_)
diff --git a/tutorials/combustion/engineFoam/kivaTest/constant/turbulenceProperties b/tutorials/combustion/engineFoam/kivaTest/constant/turbulenceProperties
index cd2daf8229b..68e1d58bc5b 100644
--- a/tutorials/combustion/engineFoam/kivaTest/constant/turbulenceProperties
+++ b/tutorials/combustion/engineFoam/kivaTest/constant/turbulenceProperties
@@ -24,6 +24,11 @@ RAS
     turbulence      on;
 
     printCoeffs     on;
+
+    kEpsilonCoeffs
+    {
+        C3          -0.33;
+    }
 }
 
 
-- 
GitLab


From 502c9ceb71df8482d7affc466a096ae17b6feee0 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 13 Mar 2017 19:41:38 +0000
Subject: [PATCH 124/277] etc/bashrc: Updated to better support zsh

Resolves patch request https://bugs.openfoam.org/view.php?id=2490
---
 etc/bashrc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/etc/bashrc b/etc/bashrc
index 0e88166e7c8..6ab6418c926 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -2,7 +2,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -42,8 +42,8 @@ export WM_PROJECT_VERSION=dev
 #
 # Please set to the appropriate path if the default is not correct.
 #
-[ $BASH_SOURCE ] && \
-export FOAM_INST_DIR=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P) || \
+[ ${BASH_SOURCE:-$0} ] && \
+export FOAM_INST_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../.. && pwd -P) || \
 export FOAM_INST_DIR=$HOME/$WM_PROJECT
 # export FOAM_INST_DIR=~$WM_PROJECT
 # export FOAM_INST_DIR=/opt/$WM_PROJECT
-- 
GitLab


From dc328945b1059ace8ab1d5f4861e3e5c3e953778 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 14 Mar 2017 11:56:01 +0000
Subject: [PATCH 125/277] reactingEulerFoam: Added fvOption support for
 incompressible phases

---
 .../reactingMultiphaseEulerFoam/pU/pEqn.H     |  41 +++---
 .../reactingTwoPhaseEulerFoam/pU/pEqn.H       |  47 ++++---
 .../reactingTwoPhaseEulerFoam/pUf/pEqn.H      | 118 ++++++++++--------
 3 files changed, 117 insertions(+), 89 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
index 5e916dce2fd..3445c81fb94 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
@@ -294,12 +294,11 @@ while (pimple.correct())
     forAll(phases, phasei)
     {
         phaseModel& phase = phases[phasei];
+        const volScalarField& alpha = phase;
+        volScalarField& rho = phase.thermo().rho();
 
         if (phase.compressible())
         {
-            const volScalarField& alpha = phase;
-            const volScalarField& rho = phase.rho();
-
             if (pimple.transonic())
             {
                 surfaceScalarField phid
@@ -357,21 +356,29 @@ while (pimple.correct())
                     ).ptr()
                 );
             }
+        }
+        else
+        {
+            pEqnComps.set
+            (
+                phasei,
+                fvm::Su(-(fvOptions(alpha, rho)&rho)/rho, p_rgh).ptr()
+            );
+        }
 
-            if (fluid.transfersMass(phase))
+        if (fluid.transfersMass(phase))
+        {
+            if (pEqnComps.set(phasei))
             {
-                if (pEqnComps.set(phasei))
-                {
-                    pEqnComps[phasei] -= fluid.dmdt(phase)/rho;
-                }
-                else
-                {
-                    pEqnComps.set
-                    (
-                        phasei,
-                        fvm::Su(-fluid.dmdt(phase)/rho, p_rgh)
-                    );
-                }
+                pEqnComps[phasei] -= fluid.dmdt(phase)/rho;
+            }
+            else
+            {
+                pEqnComps.set
+                (
+                    phasei,
+                    fvm::Su(-fluid.dmdt(phase)/rho, p_rgh)
+                );
             }
         }
     }
@@ -421,7 +428,7 @@ while (pimple.correct())
                 phase.phi() = phiHbyAs[phasei] + alpharAUfs[phasei]*mSfGradp;
 
                 // Set the phase dilatation rates
-                if (phase.compressible())
+                if (pEqnComps.set(phasei))
                 {
                     phase.divU(-pEqnComps[phasei] & p_rgh);
                 }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H
index f268beae620..3365febdf6d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H
@@ -230,9 +230,10 @@ while (pimple.correct())
     tmp<fvScalarMatrix> pEqnComp2;
 
     // Construct the compressibility parts of the pressure equation
-    if (pimple.transonic())
+
+    if (phase1.compressible())
     {
-        if (phase1.compressible())
+        if (pimple.transonic())
         {
             surfaceScalarField phid1
             (
@@ -257,8 +258,24 @@ while (pimple.correct())
             deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr());
             pEqnComp1.ref().relax();
         }
+        else
+        {
+            pEqnComp1 =
+                (
+                    phase1.continuityError()
+                  - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
+                )/rho1
+              + (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh));
+        }
+    }
+    else
+    {
+        pEqnComp1 = fvm::Su(-(fvOptions(alpha1, rho1)&rho1)/rho1, p_rgh);
+    }
 
-        if (phase2.compressible())
+    if (phase2.compressible())
+    {
+        if (pimple.transonic())
         {
             surfaceScalarField phid2
             (
@@ -279,23 +296,11 @@ while (pimple.correct())
                       + fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
                     )
                 );
+
             deleteDemandDrivenData(pEqnComp2.ref().faceFluxCorrectionPtr());
             pEqnComp2.ref().relax();
         }
-    }
-    else
-    {
-        if (phase1.compressible())
-        {
-            pEqnComp1 =
-                (
-                    phase1.continuityError()
-                  - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
-                )/rho1
-              + (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh));
-        }
-
-        if (phase2.compressible())
+        else
         {
             pEqnComp2 =
                 (
@@ -305,6 +310,10 @@ while (pimple.correct())
               + (alpha2*psi2/rho2)*correction(fvm::ddt(p_rgh));
         }
     }
+    else
+    {
+        pEqnComp2 = fvm::Su(-(fvOptions(alpha2, rho2)&rho2)/rho2, p_rgh);
+    }
 
     if (fluid.transfersMass())
     {
@@ -390,11 +399,11 @@ while (pimple.correct())
             }
 
             // Set the phase dilatation rates
-            if (phase1.compressible())
+            if (pEqnComp1.valid())
             {
                 phase1.divU(-pEqnComp1 & p_rgh);
             }
-            if (phase2.compressible())
+            if (pEqnComp2.valid())
             {
                 phase2.divU(-pEqnComp2 & p_rgh);
             }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H
index 05bca24c45c..d2202eb890d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H
@@ -215,79 +215,91 @@ while (pimple.correct())
     tmp<fvScalarMatrix> pEqnComp1;
     tmp<fvScalarMatrix> pEqnComp2;
 
-    if (pimple.transonic())
-    {
-        surfaceScalarField phid1
-        (
-            IOobject::groupName("phid", phase1.name()),
-            fvc::interpolate(psi1)*phi1
-        );
-        surfaceScalarField phid2
-        (
-            IOobject::groupName("phid", phase2.name()),
-            fvc::interpolate(psi2)*phi2
-        );
+    // Construct the compressibility parts of the pressure equation
 
-        if (phase1.compressible())
+    if (phase1.compressible())
+    {
+        if (pimple.transonic())
         {
-            pEqnComp1 =
-            (
-                phase1.continuityError()
-              - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
-            )/rho1
-          + correction
+            surfaceScalarField phid1
             (
-                (alpha1/rho1)*
-                (
-                    psi1*fvm::ddt(p_rgh)
-                  + fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
-                )
+                IOobject::groupName("phid", phase1.name()),
+                fvc::interpolate(psi1)*phi1
             );
+
+            pEqnComp1 =
+                (
+                    phase1.continuityError()
+                  - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
+                )/rho1
+              + correction
+                (
+                    (alpha1/rho1)*
+                    (
+                        psi1*fvm::ddt(p_rgh)
+                      + fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh)
+                    )
+                );
+
             deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr());
             pEqnComp1.ref().relax();
         }
-
-        if (phase2.compressible())
+        else
         {
-            pEqnComp2 =
-            (
-                phase2.continuityError()
-              - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2)
-            )/rho2
-          + correction
-            (
-                (alpha2/rho2)*
+            pEqnComp1 =
                 (
-                    psi2*fvm::ddt(p_rgh)
-                  + fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
-                )
-            );
-            deleteDemandDrivenData(pEqnComp2.ref().faceFluxCorrectionPtr());
-            pEqnComp2.ref().relax();
+                    phase1.continuityError()
+                  - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
+                )/rho1
+              + (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh));
         }
     }
     else
     {
-        if (phase1.compressible())
+        pEqnComp1 = fvm::Su(-(fvOptions(alpha1, rho1)&rho1)/rho1, p_rgh);
+    }
+
+    if (phase2.compressible())
+    {
+        if (pimple.transonic())
         {
-            pEqnComp1 =
+            surfaceScalarField phid2
             (
-                phase1.continuityError()
-              - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
-            )/rho1
-          + (alpha1*psi1/rho1)*correction(fvm::ddt(p_rgh));
-        }
+                IOobject::groupName("phid", phase2.name()),
+                fvc::interpolate(psi2)*phi2
+            );
 
-        if (phase2.compressible())
+            pEqnComp2 =
+                (
+                    phase2.continuityError()
+                  - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2)
+                )/rho2
+              + correction
+                (
+                    (alpha2/rho2)*
+                    (
+                        psi2*fvm::ddt(p_rgh)
+                      + fvm::div(phid2, p_rgh) - fvm::Sp(fvc::div(phid2), p_rgh)
+                    )
+                );
+
+            deleteDemandDrivenData(pEqnComp2.ref().faceFluxCorrectionPtr());
+            pEqnComp2.ref().relax();
+        }
+        else
         {
             pEqnComp2 =
-            (
-                phase2.continuityError()
-              - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2)
-            )/rho2
-          + (alpha2*psi2/rho2)*correction(fvm::ddt(p_rgh));
+                (
+                    phase2.continuityError()
+                  - fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2)
+                )/rho2
+              + (alpha2*psi2/rho2)*correction(fvm::ddt(p_rgh));
         }
     }
+    else
+    {
+        pEqnComp2 = fvm::Su(-(fvOptions(alpha2, rho2)&rho2)/rho2, p_rgh);
+    }
 
     if (fluid.transfersMass())
     {
-- 
GitLab


From 1fea6fee98575488e6b3f26fb5507a9a4d0e3ac3 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 14 Mar 2017 15:22:59 +0000
Subject: [PATCH 126/277] postProcess: Added support for dsmcFields

e.g. postProcess -time 0.001 -func dsmcFields

Resolves bug-report https://bugs.openfoam.org/view.php?id=2499
---
 .../postProcessing/lagrangian/dsmcFields      | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 etc/caseDicts/postProcessing/lagrangian/dsmcFields

diff --git a/etc/caseDicts/postProcessing/lagrangian/dsmcFields b/etc/caseDicts/postProcessing/lagrangian/dsmcFields
new file mode 100644
index 00000000000..258e543f470
--- /dev/null
+++ b/etc/caseDicts/postProcessing/lagrangian/dsmcFields
@@ -0,0 +1,27 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Web:      www.OpenFOAM.org
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+Description
+    Calculate intensive fields:
+    - UMean
+    - translationalT
+    - internalT
+    - overallT
+    from averaged extensive fields from a DSMC calculation.
+
+\*---------------------------------------------------------------------------*/
+
+type            dsmcFields;
+libs            ("liblagrangianFunctionObjects.so");
+
+fields          (rhoNMean rhoMMean momentumMean linearKEMean internalEMean
+                 iDofMean fDMean);
+
+executeControl  writeTime;
+writeControl    writeTime;
+
+// ************************************************************************* //
-- 
GitLab


From 7276dbd38d0ca1373f14c692d940e1e20f2d202f Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Wed, 15 Mar 2017 19:10:10 +0000
Subject: [PATCH 127/277] foamCreateVideo: avoid dropping frames for some color
 depths

---
 bin/foamCreateVideo | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/foamCreateVideo b/bin/foamCreateVideo
index a204d7cdbc8..d86f2257637 100755
--- a/bin/foamCreateVideo
+++ b/bin/foamCreateVideo
@@ -122,7 +122,7 @@ if [ "$FMT" = "webm" ] ; then
     if command -v avconv >/dev/null 2>&1 ; then
         echo "Creating image with avconv..."
         avconv \
-            -r $FPS \
+            -framerate $FPS \
             $START_NUMBER \
             -i ${DIR}/${IMAGE}.%04d.png \
             -c:v libvpx -crf 15 -b:v 1M \
@@ -134,7 +134,7 @@ else
     if command -v avconv >/dev/null 2>&1 ; then
         echo "Creating image with avconv..."
         avconv \
-            -r $FPS \
+            -framerate $FPS \
             $START_NUMBER \
             -i ${DIR}/${IMAGE}.%04d.png \
             -c:v libx264 -pix_fmt yuv420p \
-- 
GitLab


From 78eba84ee37cd18665936ae26789496ac191e25a Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Wed, 15 Mar 2017 19:18:37 +0000
Subject: [PATCH 128/277] BernardCells: tutorial demonstrating Bernard cells

2D buoyancy-driven flow between flat plates with small temperature difference
---
 .../BernardCells/0/T                          | 41 +++++++++
 .../BernardCells/0/U                          | 31 +++++++
 .../BernardCells/0/alphat                     | 34 ++++++++
 .../BernardCells/0/epsilon                    | 33 +++++++
 .../BernardCells/0/k                          | 33 +++++++
 .../BernardCells/0/nut                        | 33 +++++++
 .../BernardCells/0/p                          | 32 +++++++
 .../BernardCells/0/p_rgh                      | 33 +++++++
 .../BernardCells/constant/g                   | 22 +++++
 .../BernardCells/constant/transportProperties | 35 ++++++++
 .../constant/turbulenceProperties             | 30 +++++++
 .../BernardCells/system/blockMeshDict         | 86 +++++++++++++++++++
 .../BernardCells/system/controlDict           | 54 ++++++++++++
 .../BernardCells/system/fvSchemes             | 58 +++++++++++++
 .../BernardCells/system/fvSolution            | 68 +++++++++++++++
 .../BernardCells/system/residuals             | 19 ++++
 .../BernardCells/system/streamlines           | 20 +++++
 17 files changed, 662 insertions(+)
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals
 create mode 100644 tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines

diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T
new file mode 100644
index 00000000000..c244999b75f
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T
@@ -0,0 +1,41 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      T;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 300;
+
+boundaryField
+{
+    floor
+    {
+        type            fixedValue;
+        value           uniform 301;
+    }
+    ceiling
+    {
+        type            fixedValue;
+        value           uniform 300;
+    }
+    sideWalls
+    {
+        type            zeroGradient;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U
new file mode 100644
index 00000000000..f177adb0457
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U
@@ -0,0 +1,31 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (1e-4 0 0);
+
+boundaryField
+{
+    wall
+    {
+        type            noSlip;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat
new file mode 100644
index 00000000000..7a7fc6662b0
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alphat;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wall
+    {
+        type            alphatJayatillekeWallFunction;
+        Prt             0.85;
+        value           $internalField;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon
new file mode 100644
index 00000000000..481c77b05d6
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon
@@ -0,0 +1,33 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 1e-5;
+
+boundaryField
+{
+    wall
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k
new file mode 100644
index 00000000000..467458896ce
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k
@@ -0,0 +1,33 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 1e-5;
+
+boundaryField
+{
+    wall
+    {
+        type            kqRWallFunction;
+        value           $internalField;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut
new file mode 100644
index 00000000000..61af514807d
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut
@@ -0,0 +1,33 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wall
+    {
+        type            nutkWallFunction;
+        value           $internalField;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p
new file mode 100644
index 00000000000..17c75e0686b
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wall
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh
new file mode 100644
index 00000000000..e32c495ce7a
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh
@@ -0,0 +1,33 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wall
+    {
+        type            fixedFluxPressure;
+        rho             rhok;
+        value           $internalField;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g
new file mode 100644
index 00000000000..0cc222ca345
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g
@@ -0,0 +1,22 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 -9.81 0);
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
new file mode 100644
index 00000000000..952c9ece6ea
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
@@ -0,0 +1,35 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      transportProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+transportModel Newtonian;
+
+// Laminar viscosity
+nu              [0 2 -1 0 0 0 0] 1e-03;
+
+// Thermal expansion coefficient
+beta            [0 0 0 -1 0 0 0] 1e-03;
+
+// Reference temperature
+TRef            [0 0 0 1 0 0 0] 300;
+
+// Laminar Prandtl number
+Pr              [0 0 0 0 0 0 0] 1.0;
+
+// Turbulent Prandtl number
+Prt             [0 0 0 0 0 0 0] 1.0;
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties
new file mode 100644
index 00000000000..e5f0e48b92d
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties
@@ -0,0 +1,30 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType laminar;
+
+RAS
+{
+    RASModel        kEpsilon;
+
+    turbulence      on;
+
+    printCoeffs     on;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict
new file mode 100644
index 00000000000..e318281fa8e
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict
@@ -0,0 +1,86 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 1;
+
+vertices
+(
+    (0 0 -1)
+    (9 0 -1)
+    (9 1 -1)
+    (0 1 -1)
+    (0 0 1)
+    (9 0 1)
+    (9 1 1)
+    (0 1 1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (90 10 1) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    floor
+    {
+        type wall;
+        faces
+        (
+            (1 5 4 0)
+        );
+    }
+
+    ceiling
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+
+    sideWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+        );
+    }
+
+    frontAndBack
+    {
+        type empty;
+        faces
+        (
+	    (0 3 2 1)
+	    (4 5 6 7)
+        );
+    }
+
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict
new file mode 100644
index 00000000000..319b6f02329
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     buoyantBoussinesqPimpleFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         1000;
+
+deltaT          1;
+
+writeControl    runTime;
+
+writeInterval   50;
+
+purgeWrite      0;
+
+writeFormat     binary;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+functions
+{
+    #includeFunc residuals
+    #includeFunc streamlines
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes
new file mode 100644
index 00000000000..3cdd7f274c9
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes
@@ -0,0 +1,58 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+
+    div(phi,U)      Gauss linearUpwind grad(U);
+    div(phi,T)      Gauss limitedLinear 1;
+
+    turbulence      Gauss limitedLinear 1;
+    div(phi,k)      $turbulence;
+    div(phi,epsilon) $turbulence;
+
+    div((nuEff*dev2(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution
new file mode 100644
index 00000000000..c717012f7af
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p_rgh
+    {
+        solver          GAMG;
+        smoother        DIC;
+        tolerance       1e-8;
+        relTol          0.01;
+    }
+
+    p_rghFinal
+    {
+        $p_rgh;
+        relTol          0;
+    }
+
+    "(U|T|k|epsilon)"
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-8;
+        relTol          0.01;
+    }
+
+    "(U|T|k|epsilon)Final"
+    {
+        $T;
+        relTol          0;
+    }
+
+}
+
+PIMPLE
+{
+    momentumPredictor no;
+    nNonOrthogonalCorrectors 0;
+    nCorrectors       2;
+    pRefCell          0;
+    pRefValue         0;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        ".*"   1.0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals
new file mode 100644
index 00000000000..9c70f3ea5de
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals
@@ -0,0 +1,19 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Web:      www.OpenFOAM.org
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+Description
+    For specified fields, writes out the initial residuals for the first
+    solution of each time step; for non-scalar fields (e.g. vectors), writes
+    the largest of the residuals for each component (e.g. x, y, z).
+
+\*---------------------------------------------------------------------------*/
+
+#includeEtc "caseDicts/postProcessing/numerical/residuals.cfg"
+
+fields (p_rgh);
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines
new file mode 100644
index 00000000000..60ee32e788e
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Web:      www.OpenFOAM.org
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+Description
+    Writes out files of streamlines with interpolated field data in VTK format.
+
+\*---------------------------------------------------------------------------*/
+
+nLines  24;
+start   (0 0.5 0);
+end     (9 0.5 0);
+fields  (U);
+
+#includeEtc "caseDicts/postProcessing/visualization/streamlines.cfg"
+
+// ************************************************************************* //
-- 
GitLab


From 9d2ba2971010836518943b66f3d94d3675add094 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 20:48:26 +0000
Subject: [PATCH 129/277] Function1: Added zero and one constant functions for
 convenience

---
 .../functions/Function1/One/OneConstant.C     |  84 ++++++++++++
 .../functions/Function1/One/OneConstant.H     | 120 ++++++++++++++++++
 .../functions/Function1/Zero/ZeroConstant.C   |  77 +++++++++++
 .../functions/Function1/Zero/ZeroConstant.H   | 117 +++++++++++++++++
 4 files changed, 398 insertions(+)
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/One/OneConstant.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H

diff --git a/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.C b/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.C
new file mode 100644
index 00000000000..42779f7953e
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.C
@@ -0,0 +1,84 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "OneConstant.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::Function1Types::OneConstant<Type>::OneConstant(const word& entryName)
+:
+    Function1<Type>(entryName)
+{}
+
+
+template<class Type>
+Foam::Function1Types::OneConstant<Type>::OneConstant
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    Function1<Type>(entryName)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::Function1Types::OneConstant<Type>::~OneConstant()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Type>
+Type Foam::Function1Types::OneConstant<Type>::value(const scalar x) const
+{
+    return pTraits<Type>::one;
+}
+
+
+template<class Type>
+Type Foam::Function1Types::OneConstant<Type>::integrate
+(
+    const scalar x1,
+    const scalar x2
+) const
+{
+    return (x2 - x1)*pTraits<Type>::one;
+}
+
+
+template<class Type>
+void Foam::Function1Types::OneConstant<Type>::writeData(Ostream& os) const
+{
+    Function1<Type>::writeData(os);
+
+    os  << token::END_STATEMENT << nl;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H b/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H
new file mode 100644
index 00000000000..ba2f796dc32
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H
@@ -0,0 +1,120 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-2016 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::Function1Types::OneConstant
+
+Description
+    Templated function that returns the corresponding 1 (one).
+
+    Usage:
+    \verbatim
+        <entryName> one;
+    \endverbatim
+
+SourceFiles
+    OneConstant.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef OneConstant_H
+#define OneConstant_H
+
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class OneConstant Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Type>
+class OneConstant
+:
+    public Function1<Type>
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const OneConstant<Type>&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("one");
+
+
+    // Constructors
+
+        //- Construct from entry name
+        OneConstant(const word& entryName);
+
+        //- Construct from entry name and dictionary
+        OneConstant(const word& entryName, const dictionary& dict);
+
+        //- Construct and return a clone
+        virtual tmp<Function1<Type>> clone() const
+        {
+            return tmp<Function1<Type>>(new OneConstant<Type>(*this));
+        }
+
+
+    //- Destructor
+    virtual ~OneConstant();
+
+
+    // Member Functions
+
+        //- Return constant value
+        Type value(const scalar) const;
+
+        //- Integrate between two values
+        Type integrate(const scalar x1, const scalar x2) const;
+
+        //- Write in dictionary format
+        virtual void writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "OneConstant.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.C b/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.C
new file mode 100644
index 00000000000..fd89eff02dc
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.C
@@ -0,0 +1,77 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "ZeroConstant.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::Function1Types::ZeroConstant<Type>::ZeroConstant
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    Function1<Type>(entryName)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::Function1Types::ZeroConstant<Type>::~ZeroConstant()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Type>
+Type Foam::Function1Types::ZeroConstant<Type>::value(const scalar x) const
+{
+    return pTraits<Type>::zero;
+}
+
+
+template<class Type>
+Type Foam::Function1Types::ZeroConstant<Type>::integrate
+(
+    const scalar x1,
+    const scalar x2
+) const
+{
+    return pTraits<Type>::zero;
+}
+
+
+template<class Type>
+void Foam::Function1Types::ZeroConstant<Type>::writeData(Ostream& os) const
+{
+    Function1<Type>::writeData(os);
+
+    os  << token::END_STATEMENT << nl;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H b/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H
new file mode 100644
index 00000000000..804bd2f00ff
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H
@@ -0,0 +1,117 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-2016 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::Function1Types::ZeroConstant
+
+Description
+    Templated function that returns the corresponding 0 (zero).
+
+    Usage:
+    \verbatim
+        <entryName> zero;
+    \endverbatim
+
+SourceFiles
+    ZeroConstant.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef ZeroConstant_H
+#define ZeroConstant_H
+
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class ZeroConstant Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Type>
+class ZeroConstant
+:
+    public Function1<Type>
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const ZeroConstant<Type>&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("zero");
+
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        ZeroConstant(const word& entryName, const dictionary& dict);
+
+        //- Construct and return a clzero
+        virtual tmp<Function1<Type>> clzero() const
+        {
+            return tmp<Function1<Type>>(new ZeroConstant<Type>(*this));
+        }
+
+
+    //- Destructor
+    virtual ~ZeroConstant();
+
+
+    // Member Functions
+
+        //- Return constant value
+        Type value(const scalar) const;
+
+        //- Integrate between two values
+        Type integrate(const scalar x1, const scalar x2) const;
+
+        //- Write in dictionary format
+        virtual void writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "ZeroConstant.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
-- 
GitLab


From 2c31e665ba028dfb4a6bdb8aea9f5d8bc938ef6e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 20:49:21 +0000
Subject: [PATCH 130/277] autoPtr: Added assignment to pointer

---
 src/OpenFOAM/memory/autoPtr/autoPtr.H  | 5 ++++-
 src/OpenFOAM/memory/autoPtr/autoPtrI.H | 9 ++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/OpenFOAM/memory/autoPtr/autoPtr.H b/src/OpenFOAM/memory/autoPtr/autoPtr.H
index 77dd1966cf9..76afd531c02 100644
--- a/src/OpenFOAM/memory/autoPtr/autoPtr.H
+++ b/src/OpenFOAM/memory/autoPtr/autoPtr.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -125,6 +125,9 @@ public:
             //- Return const object pointer
             inline const T* operator->() const;
 
+            //- Take over the object pointer from parameter
+            inline void operator=(T*);
+
             //- Take over the object pointer from parameter
             inline void operator=(const autoPtr<T>&);
 };
diff --git a/src/OpenFOAM/memory/autoPtr/autoPtrI.H b/src/OpenFOAM/memory/autoPtr/autoPtrI.H
index 7c35448f7df..7eaa605a8fd 100644
--- a/src/OpenFOAM/memory/autoPtr/autoPtrI.H
+++ b/src/OpenFOAM/memory/autoPtr/autoPtrI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -190,6 +190,13 @@ inline const T* Foam::autoPtr<T>::operator->() const
 }
 
 
+template<class T>
+inline void Foam::autoPtr<T>::operator=(T* p)
+{
+    reset(p);
+}
+
+
 template<class T>
 inline void Foam::autoPtr<T>::operator=(const autoPtr<T>& ap)
 {
-- 
GitLab


From 19e602b0650b290891b4c43e7b76b6045184702d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 20:50:11 +0000
Subject: [PATCH 131/277] dictionary: Added lookupType function for convenient
 lookup and setting of value

of the specified type
---
 src/OpenFOAM/db/dictionary/dictionary.H       | 16 +++++++++++--
 .../db/dictionary/dictionaryTemplates.C       | 24 +++++++++++++++++++
 2 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H
index d42a934ad2d..95339b4835c 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.H
+++ b/src/OpenFOAM/db/dictionary/dictionary.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -334,7 +334,19 @@ public:
             ) const;
 
             //- Find and return a T,
-            //  if not found return the given default value
+            //  if not found throw a fatal error.
+            //  If recursive, search parent dictionaries.
+            //  If patternMatch, use regular expressions.
+            template<class T>
+            T lookupType
+            (
+                const word&,
+                bool recursive=false,
+                bool patternMatch=true
+            ) const;
+
+            //- Find and return a T,
+            //  if not found return the given default value.
             //  If recursive, search parent dictionaries.
             //  If patternMatch, use regular expressions.
             template<class T>
diff --git a/src/OpenFOAM/db/dictionary/dictionaryTemplates.C b/src/OpenFOAM/db/dictionary/dictionaryTemplates.C
index 5d2164e52be..232633dc7aa 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryTemplates.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryTemplates.C
@@ -28,6 +28,30 @@ License
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class T>
+T Foam::dictionary::lookupType
+(
+    const word& keyword,
+    bool recursive,
+    bool patternMatch
+) const
+{
+    const entry* entryPtr = lookupEntryPtr(keyword, recursive, patternMatch);
+
+    if (entryPtr == nullptr)
+    {
+        FatalIOErrorInFunction
+        (
+            *this
+        )   << "keyword " << keyword << " is undefined in dictionary "
+            << name()
+            << exit(FatalIOError);
+    }
+
+    return pTraits<T>(entryPtr->stream());
+}
+
+
 template<class T>
 T Foam::dictionary::lookupOrDefault
 (
-- 
GitLab


From b1199f65599660ffbb64bf513b2fd66d0151024f Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 20:51:14 +0000
Subject: [PATCH 132/277] Updated header

---
 src/OpenFOAM/db/dictionary/dictionaryTemplates.C | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/OpenFOAM/db/dictionary/dictionaryTemplates.C b/src/OpenFOAM/db/dictionary/dictionaryTemplates.C
index 232633dc7aa..b247dfe8122 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryTemplates.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
-- 
GitLab


From 2e2bfd237aeefd4f8e807d2c7154d96c7b7e2298 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 20:53:08 +0000
Subject: [PATCH 133/277] Function1: Rationalized construction to support the
 simpler sub-dictionary format

e.g.
    ramp
    {
        type     quadratic;
        start    200;
        duration 1.6;
    }

but the old format is supported for backward compatibility:

    ramp linear;
    rampCoeffs
    {
        start    200;
        duration 1.6;
    }
---
 .../utilities/postProcessing/noise/noise.C    |  2 +-
 .../primitives/functions/Function1/CSV/CSV.C  | 18 ++--
 .../primitives/functions/Function1/CSV/CSV.H  | 14 ++--
 .../functions/Function1/Constant/Constant.H   |  6 +-
 .../functions/Function1/Function1/Function1.H | 10 ++-
 .../Function1/Function1/Function1New.C        | 83 +++++++++++++------
 .../functions/Function1/One/OneConstant.H     |  2 +-
 .../functions/Function1/Sine/Sine.C           |  7 +-
 .../functions/Function1/Sine/Sine.H           |  5 +-
 .../functions/Function1/Square/Square.C       |  7 +-
 .../functions/Function1/Square/Square.H       |  5 +-
 .../functions/Function1/Table/Table.H         | 10 ++-
 .../functions/Function1/TableFile/TableFile.C |  5 +-
 .../functions/Function1/TableFile/TableFile.H |  8 +-
 .../functions/Function1/Zero/ZeroConstant.H   |  2 +-
 .../functions/Function1/makeDataEntries.C     |  6 +-
 16 files changed, 113 insertions(+), 77 deletions(-)

diff --git a/applications/utilities/postProcessing/noise/noise.C b/applications/utilities/postProcessing/noise/noise.C
index 7230e0cd047..700cb5b2496 100644
--- a/applications/utilities/postProcessing/noise/noise.C
+++ b/applications/utilities/postProcessing/noise/noise.C
@@ -133,7 +133,7 @@ int main(int argc, char *argv[])
     #include "createFields.H"
 
     Info<< "Reading data file" << endl;
-    Function1Types::CSV<scalar> pData("pressure", dict, "Data");
+    Function1Types::CSV<scalar> pData("pressure", dict.subDict("pressureData"));
 
     // time history data
     const scalarField t(pData.x());
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
index 258d4aca773..d494090b3cc 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
@@ -203,18 +203,16 @@ template<class Type>
 Foam::Function1Types::CSV<Type>::CSV
 (
     const word& entryName,
-    const dictionary& dict,
-    const word& ext
+    const dictionary& dict
 )
 :
-    TableBase<Type>(entryName, dict.subDict(entryName + ext)),
-    coeffs_(dict.subDict(entryName + ext)),
-    nHeaderLine_(readLabel(coeffs_.lookup("nHeaderLine"))),
-    refColumn_(readLabel(coeffs_.lookup("refColumn"))),
-    componentColumns_(coeffs_.lookup("componentColumns")),
-    separator_(coeffs_.lookupOrDefault<string>("separator", string(","))[0]),
-    mergeSeparators_(readBool(coeffs_.lookup("mergeSeparators"))),
-    fName_(coeffs_.lookup("file"))
+    TableBase<Type>(entryName, dict),
+    nHeaderLine_(readLabel(dict.lookup("nHeaderLine"))),
+    refColumn_(readLabel(dict.lookup("refColumn"))),
+    componentColumns_(dict.lookup("componentColumns")),
+    separator_(dict.lookupOrDefault<string>("separator", string(","))[0]),
+    mergeSeparators_(readBool(dict.lookup("mergeSeparators"))),
+    fName_(dict.lookup("file"))
 {
     if (componentColumns_.size() != pTraits<Type>::nComponents)
     {
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
index 97e0047a2b7..4790b0be19a 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,9 +25,11 @@ Class
     Foam::Function1Types::CSV
 
 Description
-    Templated CSV container data entry.  Reference column is always a scalar,
-    e.g. time
+    Templated CSV function.
 
+    Reference column is always a scalar, e.g. time.
+
+    Usage:
     \verbatim
         <entryName> csvFile;
         <entryName>Coeffs
@@ -75,9 +77,6 @@ class CSV
 {
     // Private data
 
-        //- Coefficients dictionary (for convenience on reading)
-        dictionary coeffs_;
-
         //- Number header lines
         label nHeaderLine_;
 
@@ -121,8 +120,7 @@ public:
         CSV
         (
             const word& entryName,
-            const dictionary& dict,
-            const word& ext = "Coeffs"
+            const dictionary& dict
         );
 
         //- Copy constructor
diff --git a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
index ddfbcdf84b6..3ccbc5224bc 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,9 +25,9 @@ Class
     Foam::Function1Types::Constant
 
 Description
-    Templated basic entry that holds a constant value.
+    Templated function that returns a constant value.
 
-    Usage - for entry \<entryName\> having the value <value>:
+    Usage - for entry \<entryName\> returning the value <value>:
     \verbatim
         <entryName>    constant  <value>
     \endverbatim
diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
index fb71134add0..c75f128cec6 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -195,6 +195,14 @@ public:
         add##SS##Type##ConstructorToTable_;
 
 
+#define makeScalarFunction1(SS)                                                \
+                                                                               \
+    defineTypeNameAndDebug(SS, 0);                                             \
+                                                                               \
+    Function1<scalar>::adddictionaryConstructorToTable<SS>                     \
+        add##SS##ConstructorToTable_;
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1New.C b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1New.C
index 81d45654011..604370ff3d4 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1New.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1New.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,39 +34,70 @@ Foam::autoPtr<Foam::Function1<Type>> Foam::Function1<Type>::New
     const dictionary& dict
 )
 {
-    Istream& is(dict.lookup(entryName, false));
+    if (dict.isDict(entryName))
+    {
+        const dictionary& coeffsDict(dict.subDict(entryName));
 
-    token firstToken(is);
-    word Function1Type;
+        const word Function1Type(coeffsDict.lookup("type"));
 
-    if (!firstToken.isWord())
-    {
-        is.putBack(firstToken);
-        return autoPtr<Function1<Type>>
-        (
-            new Function1Types::Constant<Type>(entryName, is)
-        );
+        typename dictionaryConstructorTable::iterator cstrIter =
+            dictionaryConstructorTablePtr_->find(Function1Type);
+
+        if (cstrIter == dictionaryConstructorTablePtr_->end())
+        {
+            FatalErrorInFunction
+                << "Unknown Function1 type "
+                << Function1Type << " for Function1 "
+                << entryName << nl << nl
+                << "Valid Function1 types are:" << nl
+                << dictionaryConstructorTablePtr_->sortedToc() << nl
+                << exit(FatalError);
+        }
+
+        return cstrIter()(entryName, coeffsDict);
     }
     else
     {
-        Function1Type = firstToken.wordToken();
-    }
+        Istream& is(dict.lookup(entryName, false));
 
-    typename dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(Function1Type);
+        token firstToken(is);
+        word Function1Type;
 
-    if (cstrIter == dictionaryConstructorTablePtr_->end())
-    {
-        FatalErrorInFunction
-            << "Unknown Function1 type "
-            << Function1Type << " for Function1 "
-            << entryName << nl << nl
-            << "Valid Function1 types are:" << nl
-            << dictionaryConstructorTablePtr_->sortedToc() << nl
-            << exit(FatalError);
-    }
+        if (!firstToken.isWord())
+        {
+            is.putBack(firstToken);
+            return autoPtr<Function1<Type>>
+            (
+                new Function1Types::Constant<Type>(entryName, is)
+            );
+        }
+        else
+        {
+            Function1Type = firstToken.wordToken();
+        }
+
+        typename dictionaryConstructorTable::iterator cstrIter =
+            dictionaryConstructorTablePtr_->find(Function1Type);
+
+        if (cstrIter == dictionaryConstructorTablePtr_->end())
+        {
+            FatalErrorInFunction
+                << "Unknown Function1 type "
+                << Function1Type << " for Function1 "
+                << entryName << nl << nl
+                << "Valid Function1 types are:" << nl
+                << dictionaryConstructorTablePtr_->sortedToc() << nl
+                << exit(FatalError);
+        }
 
-    return cstrIter()(entryName, dict);
+        return cstrIter()
+        (
+            entryName,
+            dict.found(entryName + "Coeffs")
+          ? dict.subDict(entryName + "Coeffs")
+          : dict
+        );
+    }
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H b/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H
index ba2f796dc32..60ec52c3e4e 100644
--- a/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H
+++ b/src/OpenFOAM/primitives/functions/Function1/One/OneConstant.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
index 60310966438..762492b03bf 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,13 +43,12 @@ template<class Type>
 Foam::Function1Types::Sine<Type>::Sine
 (
     const word& entryName,
-    const dictionary& dict,
-    const word& ext
+    const dictionary& dict
 )
 :
     Function1<Type>(entryName)
 {
-    read(dict.subDict(entryName + ext));
+    read(dict);
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.H b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.H
index 66c9f11058c..d18291862f2 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -132,8 +132,7 @@ public:
         Sine
         (
             const word& entryName,
-            const dictionary& dict,
-            const word& ext = "Coeffs"
+            const dictionary& dict
         );
 
         //- Copy constructor
diff --git a/src/OpenFOAM/primitives/functions/Function1/Square/Square.C b/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
index 213e7683213..2a397260d29 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,13 +43,12 @@ template<class Type>
 Foam::Function1Types::Square<Type>::Square
 (
     const word& entryName,
-    const dictionary& dict,
-    const word& ext
+    const dictionary& dict
 )
 :
     Function1<Type>(entryName)
 {
-    read(dict.subDict(entryName + ext));
+    read(dict);
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Square/Square.H b/src/OpenFOAM/primitives/functions/Function1/Square/Square.H
index 9ca2079c00b..df6ec25deb4 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Square/Square.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Square/Square.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -139,8 +139,7 @@ public:
         Square
         (
             const word& entryName,
-            const dictionary& dict,
-            const word& ext = "Coeffs"
+            const dictionary& dict
         );
 
         //- Copy constructor
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
index c11eb621db8..5d50acca48c 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,10 +25,12 @@ Class
     Foam::Function1Types::Table
 
 Description
-    Templated table container data entry. Items are stored in a list of
-    Tuple2's. First column is always stored as scalar entries. Data is read
-    in Tuple2 form, e.g. for an entry \<entryName\> that is (scalar, vector):
+    Templated table container function.
 
+    Items are stored in a list of Tuple2's. First column is always stored as
+    scalar entries. Data is read in Tuple2 form.
+
+    Usage:
     \verbatim
         <entryName>   table
         (
diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
index 3e2645b9c20..aa86056cb3b 100644
--- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
+++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
@@ -34,11 +34,10 @@ Foam::Function1Types::TableFile<Type>::TableFile
     const dictionary& dict
 )
 :
-    TableBase<Type>(entryName, dict.subDict(entryName + "Coeffs")),
+    TableBase<Type>(entryName, dict),
     fName_("none")
 {
-    const dictionary coeffs(dict.subDict(entryName + "Coeffs"));
-    coeffs.lookup("file") >> fName_;
+    dict.lookup("file") >> fName_;
 
     fileName expandedFile(fName_);
     IFstream is(expandedFile.expand());
diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
index a44ba48d7f8..d4973639bf4 100644
--- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
+++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,9 @@ Class
     Foam::Function1Types::TableFile
 
 Description
-    Templated table container data entry where data is read from file.
+    Templated table container function where data is read from file.
 
+    Usage:
     \verbatim
         <entryName> tableFile;
         <entryName>Coeffs
@@ -37,7 +38,7 @@ Description
         }
     \endverbatim
 
-    Items are stored in a list of Tuple2's. First column is always stored as
+    Data is stored as a list of Tuple2's. First column is always stored as
     scalar entries.  Data is read in the form, e.g. for an entry \<entryName\>
     that is (scalar, vector):
     \verbatim
@@ -47,7 +48,6 @@ Description
         );
     \endverbatim
 
-
 SourceFiles
     TableFile.C
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H b/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H
index 804bd2f00ff..7d486150bc0 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Zero/ZeroConstant.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C b/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C
index babb5bad63b..6c8db2ed8a0 100644
--- a/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C
+++ b/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,8 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "Constant.H"
+#include "ZeroConstant.H"
+#include "OneConstant.H"
 #include "PolynomialEntry.H"
 #include "Sine.H"
 #include "Square.H"
@@ -38,6 +40,8 @@ License
 #define makeFunction1s(Type)                                                   \
     makeFunction1(Type);                                                       \
     makeFunction1Type(Constant, Type);                                         \
+    makeFunction1Type(ZeroConstant, Type);                                     \
+    makeFunction1Type(OneConstant, Type);                                      \
     makeFunction1Type(Polynomial, Type);                                       \
     makeFunction1Type(Sine, Type);                                             \
     makeFunction1Type(Square, Type);                                           \
-- 
GitLab


From 32052dce23e45689adae479560aef4c2323864dd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 20:56:09 +0000
Subject: [PATCH 134/277] postProcessing/noise: Updated for changes to
 Function1

---
 applications/utilities/postProcessing/noise/noise.C | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/applications/utilities/postProcessing/noise/noise.C b/applications/utilities/postProcessing/noise/noise.C
index 700cb5b2496..c63da510d34 100644
--- a/applications/utilities/postProcessing/noise/noise.C
+++ b/applications/utilities/postProcessing/noise/noise.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
-- 
GitLab


From 1e592a128a7d17bc079274bd845cee22a579b8f7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 20:56:57 +0000
Subject: [PATCH 135/277] Function1::ramp: New set of scalar ramp functions

Description
    Ramp function base class for the set of scalar functions starting from 0 and
    increasing monotonically to 1 from \c start over the \c duration and
    remaining at 1 thereafter.

    Usage:
    \verbatim
        <entryName> <rampFunction>;
        <entryName>Coeffs
        {
            start     10;
            duration  20;
        }
    \endverbatim
    or
    \verbatim
        <entryName>
        {
            type      <rampFunction>;
            start     10;
            duration  20;
        }
    \endverbatim

    Where:
    \table
        Property | Description  | Required | Default value
        start    | Start time   | no       | 0
        duration | Duration     | yes      |
    \endtable

The following common ramp functions are provided: linear, quadratic, halfCosine,
quarterCosine and quaterSine, others can easily be added and registered to the run-time
selection system.
---
 src/OpenFOAM/Make/files                       |   8 +-
 .../Function1/halfCosine/halfCosine.C         |  66 ++++++++
 .../Function1/halfCosine/halfCosine.H         | 101 ++++++++++++
 .../functions/Function1/linear/linear.C       |  65 ++++++++
 .../functions/Function1/linear/linear.H       | 101 ++++++++++++
 .../functions/Function1/quadratic/quadratic.C |  65 ++++++++
 .../functions/Function1/quadratic/quadratic.H | 101 ++++++++++++
 .../Function1/quarterCosine/quarterCosine.C   |  66 ++++++++
 .../Function1/quarterCosine/quarterCosine.H   | 101 ++++++++++++
 .../Function1/quarterSine/quarterSine.C       |  66 ++++++++
 .../Function1/quarterSine/quarterSine.H       | 101 ++++++++++++
 .../functions/Function1/ramp/ramp.C           |  69 ++++++++
 .../functions/Function1/ramp/ramp.H           | 150 ++++++++++++++++++
 13 files changed, 1059 insertions(+), 1 deletion(-)
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.H
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/linear/linear.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/linear/linear.H
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.H
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.H
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.H
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/ramp/ramp.H

diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index 377b958ded8..32cdbee9caa 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -76,8 +76,14 @@ primitives/quaternion/quaternion.C
 primitives/septernion/septernion.C
 primitives/triad/triad.C
 
-/* functions, data entries */
+/* Run-time selectable functions */
 primitives/functions/Function1/makeDataEntries.C
+primitives/functions/Function1/ramp/ramp.C
+primitives/functions/Function1/linear/linear.C
+primitives/functions/Function1/quadratic/quadratic.C
+primitives/functions/Function1/quarterSine/quarterSine.C
+primitives/functions/Function1/quarterCosine/quarterCosine.C
+primitives/functions/Function1/halfCosine/halfCosine.C
 primitives/functions/Polynomial/polynomialFunction.C
 
 primitives/subModelBase/subModelBase.C
diff --git a/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.C b/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.C
new file mode 100644
index 00000000000..5abf42d10fb
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.C
@@ -0,0 +1,66 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "halfCosine.H"
+#include "mathematicalConstants.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+    makeScalarFunction1(halfCosine);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::Function1Types::halfCosine::halfCosine
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    ramp(entryName, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::Function1Types::halfCosine::~halfCosine()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::scalar Foam::Function1Types::halfCosine::value(const scalar t) const
+{
+    return 0.5*(1 - cos(constant::mathematical::pi*linearRamp(t)));
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.H b/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.H
new file mode 100644
index 00000000000..774402adf34
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Function1Types::halfCosine
+
+Description
+    Half-cosine ramp function starting from 0 and increasing to 1 from \c start
+    over the \c duration and remaining at 1 thereafter.
+
+See also
+    Foam::Function1Types::ramp
+
+SourceFiles
+    halfCosine.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef halfCosine_H
+#define halfCosine_H
+
+#include "ramp.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class halfCosine Declaration
+\*---------------------------------------------------------------------------*/
+
+class halfCosine
+:
+    public ramp
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const halfCosine&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("halfCosine");
+
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        halfCosine
+        (
+            const word& entryName,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~halfCosine();
+
+
+    // Member Functions
+
+        //- Return value for time t
+        scalar value(const scalar t) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/linear/linear.C b/src/OpenFOAM/primitives/functions/Function1/linear/linear.C
new file mode 100644
index 00000000000..658a64bf387
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/linear/linear.C
@@ -0,0 +1,65 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "linear.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+    makeScalarFunction1(linear);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::Function1Types::linear::linear
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    ramp(entryName, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::Function1Types::linear::~linear()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::scalar Foam::Function1Types::linear::value(const scalar t) const
+{
+    return linearRamp(t);
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/linear/linear.H b/src/OpenFOAM/primitives/functions/Function1/linear/linear.H
new file mode 100644
index 00000000000..4d415193479
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/linear/linear.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Function1Types::linear
+
+Description
+    Linear ramp function starting from 0 and increasing linearly to 1 from \c
+    start over the \c duration and remaining at 1 thereafter.
+
+See also
+    Foam::Function1Types::ramp
+
+SourceFiles
+    linear.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef linear_H
+#define linear_H
+
+#include "ramp.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class linear Declaration
+\*---------------------------------------------------------------------------*/
+
+class linear
+:
+    public ramp
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const linear&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("linear");
+
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        linear
+        (
+            const word& entryName,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~linear();
+
+
+    // Member Functions
+
+        //- Return value for time t
+        scalar value(const scalar t) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.C b/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.C
new file mode 100644
index 00000000000..a35f82e79fd
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.C
@@ -0,0 +1,65 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "quadratic.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+    makeScalarFunction1(quadratic);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::Function1Types::quadratic::quadratic
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    ramp(entryName, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::Function1Types::quadratic::~quadratic()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::scalar Foam::Function1Types::quadratic::value(const scalar t) const
+{
+    return sqr(linearRamp(t));
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.H b/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.H
new file mode 100644
index 00000000000..39575bc5a74
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Function1Types::quadratic
+
+Description
+    Quadratic ramp function starting from 0 and increasing quadratically to 1
+    from \c t_0 over the \c duration and remaining at 1 thereafter.
+
+See also
+    Foam::Function1Types::ramp
+
+SourceFiles
+    quadratic.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef quadratic_H
+#define quadratic_H
+
+#include "ramp.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class quadratic Declaration
+\*---------------------------------------------------------------------------*/
+
+class quadratic
+:
+    public ramp
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const quadratic&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("quadratic");
+
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        quadratic
+        (
+            const word& entryName,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~quadratic();
+
+
+    // Member Functions
+
+        //- Return value for time t
+        scalar value(const scalar t) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.C b/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.C
new file mode 100644
index 00000000000..025df283f66
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.C
@@ -0,0 +1,66 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "quarterCosine.H"
+#include "mathematicalConstants.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+    makeScalarFunction1(quarterCosine);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::Function1Types::quarterCosine::quarterCosine
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    ramp(entryName, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::Function1Types::quarterCosine::~quarterCosine()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::scalar Foam::Function1Types::quarterCosine::value(const scalar t) const
+{
+    return 1 - cos(0.5*constant::mathematical::pi*linearRamp(t));
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.H b/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.H
new file mode 100644
index 00000000000..a96db22bf16
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Function1Types::quarterCosine
+
+Description
+    Quarter-cosine ramp function starting from 0 and increasing to 1 from \c
+    start over the \c duration and remaining at 1 thereafter.
+
+See also
+    Foam::Function1Types::ramp
+
+SourceFiles
+    quarterCosine.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef quarterCosine_H
+#define quarterCosine_H
+
+#include "ramp.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class quarterCosine Declaration
+\*---------------------------------------------------------------------------*/
+
+class quarterCosine
+:
+    public ramp
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const quarterCosine&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("quarterCosine");
+
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        quarterCosine
+        (
+            const word& entryName,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~quarterCosine();
+
+
+    // Member Functions
+
+        //- Return value for time t
+        scalar value(const scalar t) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.C b/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.C
new file mode 100644
index 00000000000..ad144a40578
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.C
@@ -0,0 +1,66 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "quarterSine.H"
+#include "mathematicalConstants.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+    makeScalarFunction1(quarterSine);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::Function1Types::quarterSine::quarterSine
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    ramp(entryName, dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::Function1Types::quarterSine::~quarterSine()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::scalar Foam::Function1Types::quarterSine::value(const scalar t) const
+{
+    return sin(0.5*constant::mathematical::pi*linearRamp(t));
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.H b/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.H
new file mode 100644
index 00000000000..3e2d41368cc
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Function1Types::quarterSine
+
+Description
+    Quarter-sine ramp function starting from 0 and increasing to 1 from \c start
+    over the \c duration and remaining at 1 thereafter.
+
+See also
+    Foam::Function1Types::ramp
+
+SourceFiles
+    quarterSine.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef quarterSine_H
+#define quarterSine_H
+
+#include "ramp.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class quarterSine Declaration
+\*---------------------------------------------------------------------------*/
+
+class quarterSine
+:
+    public ramp
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const quarterSine&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("quarterSine");
+
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        quarterSine
+        (
+            const word& entryName,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~quarterSine();
+
+
+    // Member Functions
+
+        //- Return value for time t
+        scalar value(const scalar t) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C
new file mode 100644
index 00000000000..40645aa1910
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C
@@ -0,0 +1,69 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "ramp.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+void Foam::Function1Types::ramp::read(const dictionary& coeffs)
+{
+    start_ = coeffs.lookupOrDefault<scalar>("start", 0);
+    duration_ = coeffs.lookupType<scalar>("duration");
+}
+
+
+Foam::Function1Types::ramp::ramp
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    Function1<scalar>(entryName)
+{
+    read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::Function1Types::ramp::~ramp()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::Function1Types::ramp::writeData(Ostream& os) const
+{
+    Function1<scalar>::writeData(os);
+    os  << token::END_STATEMENT << nl;
+    os  << indent << word(this->name() + "Coeffs") << nl;
+    os  << indent << token::BEGIN_BLOCK << incrIndent << nl;
+    os.writeKeyword("start") << start_ << token::END_STATEMENT << nl;
+    os.writeKeyword("duration") << duration_ << token::END_STATEMENT << nl;
+    os  << decrIndent << indent << token::END_BLOCK << endl;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.H b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.H
new file mode 100644
index 00000000000..08a5d4c64e8
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.H
@@ -0,0 +1,150 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Function1Types::ramp
+
+Description
+    Ramp function base class for the set of scalar functions starting from 0 and
+    increasing monotonically to 1 from \c start over the \c duration and
+    remaining at 1 thereafter.
+
+    Usage:
+    \verbatim
+        <entryName> <rampFunction>;
+        <entryName>Coeffs
+        {
+            start     10;
+            duration  20;
+        }
+    \endverbatim
+    or
+    \verbatim
+        <entryName>
+        {
+            type      <rampFunction>;
+            start     10;
+            duration  20;
+        }
+    \endverbatim
+
+    Where:
+    \table
+        Property | Description  | Required | Default value
+        start    | Start time   | no       | 0
+        duration | Duration     | yes      |
+    \endtable
+
+See also
+    Foam::Function1
+
+SourceFiles
+    ramp.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef ramp_H
+#define ramp_H
+
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class ramp Declaration
+\*---------------------------------------------------------------------------*/
+
+class ramp
+:
+    public Function1<scalar>
+{
+protected:
+
+    // Protected data
+
+        //- Start-time of the ramp function
+        scalar start_;
+
+        //- Duration of the ramp function
+        scalar duration_;
+
+        //- Simple linear ramp function
+        //  which form the basis of many more complex ramp functions
+        inline scalar linearRamp(const scalar t) const
+        {
+            return max(min((t - start_)/duration_, 1), 0);
+        }
+
+
+private:
+
+    // Private Member Functions
+
+        //- Read the coefficients from the given dictionary
+        void read(const dictionary& coeffs);
+
+        //- Disallow default bitwise assignment
+        void operator=(const ramp&);
+
+
+public:
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        ramp
+        (
+            const word& entryName,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~ramp();
+
+
+    // Member Functions
+
+        //- Return value for time t
+        scalar value(const scalar t) const = 0;
+
+        //- Write in dictionary format
+        virtual void writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
-- 
GitLab


From ab65533e8ec81b30ae0f507b574b8997509fb502 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 16 Mar 2017 21:01:45 +0000
Subject: [PATCH 136/277] rigidBodyMeshMotion: Added optional force damping
 ramp function

to provide smoother behavior on start-up when an acceleration impulse is
applied, e.g. if the body is suddenly released.  e.g.

dynamicFvMesh       dynamicMotionSolverFvMesh;

motionSolverLibs   ("librigidBodyMeshMotion.so");

solver             rigidBodyMotion;

rigidBodyMotionCoeffs
{
    report          on;

    solver
    {
        type    Newmark;
    }

    ramp
    {
        type     quadratic;
        start    0;
        duration 10;
    }
.
.
.

will quadratically ramp the forces from 0 to their full values over the first
10s of the run starting from 0.  If the 'ramp' entry is omitted no force ramping
is applied.
---
 .../rigidBodyMeshMotion/rigidBodyMeshMotion.C | 19 ++++++++++++++++---
 .../rigidBodyMeshMotion/rigidBodyMeshMotion.H |  6 +++++-
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
index 490f9887381..7854762a8bb 100644
--- a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,6 +30,7 @@ License
 #include "pointConstraints.H"
 #include "uniformDimensionedFields.H"
 #include "forces.H"
+#include "OneConstant.H"
 #include "mathematicalConstants.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -115,6 +116,7 @@ Foam::rigidBodyMeshMotion::rigidBodyMeshMotion
     test_(coeffDict().lookupOrDefault<Switch>("test", false)),
     rhoInf_(1.0),
     rhoName_(coeffDict().lookupOrDefault<word>("rho", "rho")),
+    ramp_(nullptr),
     curTimeIndex_(-1)
 {
     if (rhoName_ == "rhoInf")
@@ -122,6 +124,15 @@ Foam::rigidBodyMeshMotion::rigidBodyMeshMotion
         rhoInf_ = readScalar(coeffDict().lookup("rhoInf"));
     }
 
+    if (coeffDict().found("ramp"))
+    {
+        ramp_ = Function1<scalar>::New("ramp", coeffDict());
+    }
+    else
+    {
+        ramp_ = new Function1Types::OneConstant<scalar>("ramp");
+    }
+
     const dictionary& bodiesDict = coeffDict().subDict("bodies");
 
     forAllConstIter(IDLList<entry>, bodiesDict, iter)
@@ -232,10 +243,12 @@ void Foam::rigidBodyMeshMotion::solve()
         curTimeIndex_ = this->db().time().timeIndex();
     }
 
+    const scalar ramp = ramp_->value(t.value());
+
     if (db().foundObject<uniformDimensionedVectorField>("g"))
     {
         model_.g() =
-            db().lookupObject<uniformDimensionedVectorField>("g").value();
+            ramp*db().lookupObject<uniformDimensionedVectorField>("g").value();
     }
 
     if (test_)
@@ -270,7 +283,7 @@ void Foam::rigidBodyMeshMotion::solve()
             functionObjects::forces f("forces", db(), forcesDict);
             f.calcForcesMoment();
 
-            fx[bodyID] = spatialVector(f.momentEff(), f.forceEff());
+            fx[bodyID] = ramp*spatialVector(f.momentEff(), f.forceEff());
         }
 
         model_.solve
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
index c60bdc9a3d7..d2c85bb7389 100644
--- a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,6 +40,7 @@ SourceFiles
 
 #include "displacementMotionSolver.H"
 #include "rigidBodyMotion.H"
+#include "ramp.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -116,6 +117,9 @@ class rigidBodyMeshMotion
         //  as rhoInf
         word rhoName_;
 
+        //- Ramp the forces according to the specified function and period
+        autoPtr<Function1<scalar>> ramp_;
+
         //- Current time index (used for updating)
         label curTimeIndex_;
 
-- 
GitLab


From a384d76745fa3f1c9e34603d72603153dc686868 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Mar 2017 09:02:59 +0000
Subject: [PATCH 137/277] functionObjects::systemCall: Removed redundant Make
 directory

---
 src/functionObjects/utilities/systemCall/Make/files   | 4 ----
 src/functionObjects/utilities/systemCall/Make/options | 0
 2 files changed, 4 deletions(-)
 delete mode 100644 src/functionObjects/utilities/systemCall/Make/files
 delete mode 100644 src/functionObjects/utilities/systemCall/Make/options

diff --git a/src/functionObjects/utilities/systemCall/Make/files b/src/functionObjects/utilities/systemCall/Make/files
deleted file mode 100644
index 20bafa8dfa0..00000000000
--- a/src/functionObjects/utilities/systemCall/Make/files
+++ /dev/null
@@ -1,4 +0,0 @@
-systemCall.C
-systemCallFunctionObject.C
-
-LIB = $(FOAM_LIBBIN)/libsystemCall
diff --git a/src/functionObjects/utilities/systemCall/Make/options b/src/functionObjects/utilities/systemCall/Make/options
deleted file mode 100644
index e69de29bb2d..00000000000
-- 
GitLab


From dd154781580860c87781936d6d7ca0d5882d150e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Mar 2017 09:44:15 +0000
Subject: [PATCH 138/277] combustionModels::EDC: New Eddy Dissipation Concept
 (EDC) turbulent combustion model

including support for TDAC and ISAT for efficient chemistry calculation.

Description
    Eddy Dissipation Concept (EDC) turbulent combustion model.

    This model considers that the reaction occurs in the regions of the flow
    where the dissipation of turbulence kinetic energy takes place (fine
    structures). The mass fraction of the fine structures and the mean residence
    time are provided by an energy cascade model.

    There are many versions and developments of the EDC model, 4 of which are
    currently supported in this implementation: v1981, v1996, v2005 and
    v2016.  The model variant is selected using the optional \c version entry in
    the \c EDCCoeffs dictionary, \eg

    \verbatim
        EDCCoeffs
        {
            version v2016;
        }
    \endverbatim

    The default version is \c v2015 if the \c version entry is not specified.

    Model versions and references:
    \verbatim
        Version v2005:

            Cgamma = 2.1377
            Ctau = 0.4083
            kappa = gammaL^exp1 / (1 - gammaL^exp2),

            where exp1 = 2, and exp2 = 2.

            Magnussen, B. F. (2005, June).
            The Eddy Dissipation Concept -
            A Bridge Between Science and Technology.
            In ECCOMAS thematic conference on computational combustion
            (pp. 21-24).

        Version v1981:

            Changes coefficients exp1 = 3 and exp2 = 3

            Magnussen, B. (1981, January).
            On the structure of turbulence and a generalized
            eddy dissipation concept for chemical reaction in turbulent flow.
            In 19th Aerospace Sciences Meeting (p. 42).

        Version v1996:

            Changes coefficients exp1 = 2 and exp2 = 3

            Gran, I. R., & Magnussen, B. F. (1996).
            A numerical study of a bluff-body stabilized diffusion flame.
            Part 2. Influence of combustion modeling and finite-rate chemistry.
            Combustion Science and Technology, 119(1-6), 191-217.

        Version v2016:

            Use local constants computed from the turbulent Da and Re numbers.

            Parente, A., Malik, M. R., Contino, F., Cuoci, A., & Dally, B. B.
            (2016).
            Extension of the Eddy Dissipation Concept for
            turbulence/chemistry interactions to MILD combustion.
            Fuel, 163, 98-111.
    \endverbatim

Tutorials cases provided: reactingFoam/RAS/DLR_A_LTS, reactingFoam/RAS/SandiaD_LTS.

This codes was developed and contributed by

    Zhiyi Li
    Alessandro Parente
    Francesco Contino
    from BURN Research Group

and updated and tested for release by

    Henry G. Weller
    CFD Direct Ltd.
---
 src/combustionModels/EDC/EDC.C                |  248 ++
 src/combustionModels/EDC/EDC.H                |  214 +
 src/combustionModels/EDC/EDCs.C               |   61 +
 src/combustionModels/Make/files               |    1 +
 .../TDACChemistryModel/TDACChemistryModel.C   |    2 +
 .../TDACChemistryModel/TDACChemistryModel.H   |    2 +
 .../TDACChemistryModel/TDACChemistryModelI.H  |   10 +
 .../reactingFoam/RAS/DLR_A_LTS/0/CH4          |   67 +
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/G |   42 +
 .../reactingFoam/RAS/DLR_A_LTS/0/H2           |   67 +
 .../reactingFoam/RAS/DLR_A_LTS/0/H2O          |   67 +
 .../reactingFoam/RAS/DLR_A_LTS/0/N2           |   67 +
 .../reactingFoam/RAS/DLR_A_LTS/0/O2           |   67 +
 .../reactingFoam/RAS/DLR_A_LTS/0/T.orig       |   67 +
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/U |   69 +
 .../reactingFoam/RAS/DLR_A_LTS/0/Ydefault     |   67 +
 .../reactingFoam/RAS/DLR_A_LTS/0/alphat       |   72 +
 .../reactingFoam/RAS/DLR_A_LTS/0/epsilon      |   85 +
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/k |   72 +
 .../reactingFoam/RAS/DLR_A_LTS/0/nut          |   78 +
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/p |   64 +
 .../reactingFoam/RAS/DLR_A_LTS/Allclean       |   11 +
 .../reactingFoam/RAS/DLR_A_LTS/Allrun         |   23 +
 .../RAS/DLR_A_LTS/chemkin/grimech30.dat       |  328 ++
 .../RAS/DLR_A_LTS/chemkin/thermo30.dat        |  218 +
 .../RAS/DLR_A_LTS/chemkin/transportProperties |   45 +
 .../DLR_A_LTS/constant/chemistryProperties    |  146 +
 .../constant/chemistryProperties.test         |  143 +
 .../DLR_A_LTS/constant/combustionProperties   |   27 +
 .../reactingFoam/RAS/DLR_A_LTS/constant/g     |   21 +
 .../RAS/DLR_A_LTS/constant/reactionsGRI       | 3610 +++++++++++++++++
 .../constant/thermo.compressibleGasGRI        | 1390 +++++++
 .../constant/thermophysicalProperties         |   36 +
 .../DLR_A_LTS/constant/turbulenceProperties   |   33 +
 .../RAS/DLR_A_LTS/system/blockMeshDict        |  209 +
 .../RAS/DLR_A_LTS/system/controlDict          |   48 +
 .../RAS/DLR_A_LTS/system/decomposeParDict     |   45 +
 .../RAS/DLR_A_LTS/system/fvSchemes            |   59 +
 .../RAS/DLR_A_LTS/system/fvSolution           |   89 +
 .../RAS/DLR_A_LTS/system/setFieldsDict        |   36 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/CH4   |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/CO    |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/CO2   |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/H     |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/H2    |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/H2O   |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/N2    |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/O     |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/O2    |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/OH    |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/T     |   69 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/U     |   70 +
 .../RAS/SandiaD_LTS/0.orig/Ydefault           |   69 +
 .../RAS/SandiaD_LTS/0.orig/alphat             |   74 +
 .../RAS/SandiaD_LTS/0.orig/epsilon            |   84 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/k     |   74 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/nut   |   78 +
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/p     |   67 +
 .../reactingFoam/RAS/SandiaD_LTS/Allclean     |   11 +
 .../reactingFoam/RAS/SandiaD_LTS/Allrun       |   36 +
 .../RAS/SandiaD_LTS/chemkin/grimech30.dat     |  328 ++
 .../RAS/SandiaD_LTS/chemkin/thermo30.dat      |  218 +
 .../SandiaD_LTS/chemkin/transportProperties   |   45 +
 .../SandiaD_LTS/constant/chemistryProperties  |   90 +
 .../SandiaD_LTS/constant/combustionProperties |   27 +
 .../reactingFoam/RAS/SandiaD_LTS/constant/g   |   21 +
 .../SandiaD_LTS/constant/radiationProperties  |  210 +
 .../RAS/SandiaD_LTS/constant/reactionsGRI     | 3610 +++++++++++++++++
 .../constant/thermo.compressibleGasGRI        | 1390 +++++++
 .../constant/thermophysicalProperties         |   35 +
 .../SandiaD_LTS/constant/turbulenceProperties |   28 +
 .../RAS/SandiaD_LTS/system/blockMeshDict      |  176 +
 .../RAS/SandiaD_LTS/system/controlDict        |   48 +
 .../RAS/SandiaD_LTS/system/decomposeParDict   |   45 +
 .../RAS/SandiaD_LTS/system/fvSchemes          |   59 +
 .../RAS/SandiaD_LTS/system/fvSolution         |   89 +
 .../RAS/SandiaD_LTS/system/sampleDict         |  162 +
 .../RAS/SandiaD_LTS/system/setFieldsDict      |   41 +
 78 files changed, 15950 insertions(+)
 create mode 100644 src/combustionModels/EDC/EDC.C
 create mode 100644 src/combustionModels/EDC/EDC.H
 create mode 100644 src/combustionModels/EDC/EDCs.C
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p
 create mode 100755 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allclean
 create mode 100755 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allrun
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/grimech30.dat
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/thermo30.dat
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/reactionsGRI
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermo.compressibleGasGRI
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution
 create mode 100644 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p
 create mode 100755 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allclean
 create mode 100755 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allrun
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/grimech30.dat
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/thermo30.dat
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/reactionsGRI
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermo.compressibleGasGRI
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict

diff --git a/src/combustionModels/EDC/EDC.C b/src/combustionModels/EDC/EDC.C
new file mode 100644
index 00000000000..64d822ee522
--- /dev/null
+++ b/src/combustionModels/EDC/EDC.C
@@ -0,0 +1,248 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "EDC.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::combustionModels::EDC<Type>::EDC
+(
+    const word& modelType,
+    const fvMesh& mesh,
+    const word& combustionProperties,
+    const word& phaseName
+)
+:
+    laminar<Type>(modelType, mesh, combustionProperties, phaseName),
+    version_
+    (
+        EDCversionNames
+        [
+            this->coeffs().lookupOrDefault
+            (
+                "version",
+                word(EDCversionNames[EDCdefaultVersion])
+            )
+        ]
+    ),
+    C1_(this->coeffs().lookupOrDefault("C1", 0.05774)),
+    C2_(this->coeffs().lookupOrDefault("C2", 0.5)),
+    Cgamma_(this->coeffs().lookupOrDefault("Cgamma", 2.1377)),
+    Ctau_(this->coeffs().lookupOrDefault("Ctau", 0.4083)),
+    exp1_(this->coeffs().lookupOrDefault("exp1", EDCexp1[int(version_)])),
+    exp2_(this->coeffs().lookupOrDefault("exp2", EDCexp2[int(version_)])),
+    kappa_
+    (
+        IOobject
+        (
+            IOobject::groupName(typeName + ":kappa", phaseName),
+            mesh.time().timeName(),
+            mesh,
+            IOobject::NO_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh,
+        dimensionedScalar("kappa", dimless, 0)
+    )
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::combustionModels::EDC<Type>::~EDC()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+template<class Type>
+void Foam::combustionModels::EDC<Type>::correct()
+{
+    if (this->active())
+    {
+        tmp<volScalarField> tepsilon(this->turbulence().epsilon());
+        const volScalarField& epsilon = tepsilon();
+
+        tmp<volScalarField> tmu(this->turbulence().mu());
+        const volScalarField& mu = tmu();
+
+        tmp<volScalarField> tk(this->turbulence().k());
+        const volScalarField& k = tk();
+
+        tmp<volScalarField> trho(this->rho());
+        const volScalarField& rho = trho();
+
+        scalarField tauStar(epsilon.size(), 0);
+
+        if (version_ == EDCversions::v2016)
+        {
+            tmp<volScalarField> ttc(this->chemistryPtr_->tc());
+            const volScalarField& tc = ttc();
+
+            forAll(tauStar, i)
+            {
+                const scalar nu = mu[i]/(rho[i] + SMALL);
+
+                const scalar Da =
+                    max(min(sqrt(nu/(epsilon[i] + SMALL))/tc[i], 10), 1e-10);
+
+                const scalar ReT = sqr(k[i])/(nu*epsilon[i] + SMALL);
+                const scalar CtauI = min(C1_/(Da*sqrt(ReT + 1)), 2.1377);
+
+                const scalar CgammaI =
+                    max(min(C2_*sqrt(Da*(ReT + 1)), 5), 0.4082);
+
+                const scalar gammaL =
+                    CgammaI*pow025(nu*epsilon[i]/(sqr(k[i]) + SMALL));
+
+                tauStar[i] = CtauI*sqrt(nu/(epsilon[i] + SMALL));
+
+                if (gammaL >= 1)
+                {
+                    kappa_[i] = 1;
+                }
+                else
+                {
+                    kappa_[i] =
+                        max
+                        (
+                            min
+                            (
+                                pow(gammaL, exp1_)/(1 - pow(gammaL, exp2_)),
+                                1
+                            ),
+                            0
+                        );
+                }
+            }
+        }
+        else
+        {
+            forAll(tauStar, i)
+            {
+                const scalar nu = mu[i]/(rho[i] + SMALL);
+                const scalar gammaL =
+                    Cgamma_*pow025(nu*epsilon[i]/(sqr(k[i]) + SMALL));
+
+                tauStar[i] = Ctau_*sqrt(nu/(epsilon[i] + SMALL));
+                if (gammaL >= 1)
+                {
+                    kappa_[i] = 1;
+                }
+                else
+                {
+                    kappa_[i] =
+                        max
+                        (
+                            min
+                            (
+                                pow(gammaL, exp1_)/(1 - pow(gammaL, exp2_)),
+                                1
+                            ),
+                            0
+                        );
+                }
+            }
+        }
+
+        this->chemistryPtr_->solve(tauStar);
+    }
+}
+
+
+template<class Type>
+Foam::tmp<Foam::fvScalarMatrix>
+Foam::combustionModels::EDC<Type>::R(volScalarField& Y) const
+{
+    return kappa_*laminar<Type>::R(Y);
+}
+
+
+template<class Type>
+Foam::tmp<Foam::volScalarField>
+Foam::combustionModels::EDC<Type>::Qdot() const
+{
+    tmp<volScalarField> tQdot
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                IOobject::groupName(typeName + ":Qdot", this->phaseName_),
+                this->mesh().time().timeName(),
+                this->mesh(),
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            this->mesh(),
+            dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0)
+        )
+    );
+
+    if (this->active())
+    {
+        tQdot.ref() = kappa_*this->chemistryPtr_->Qdot();
+    }
+
+    return tQdot;
+}
+
+
+template<class Type>
+bool Foam::combustionModels::EDC<Type>::read()
+{
+    if (Type::read())
+    {
+        version_ =
+        (
+            EDCversionNames
+            [
+                this->coeffs().lookupOrDefault
+                (
+                    "version",
+                    word(EDCversionNames[EDCdefaultVersion])
+                )
+            ]
+        );
+        C1_ = this->coeffs().lookupOrDefault("C1", 0.05774);
+        C2_ = this->coeffs().lookupOrDefault("C2", 0.5);
+        Cgamma_ = this->coeffs().lookupOrDefault("Cgamma", 2.1377);
+        Ctau_ = this->coeffs().lookupOrDefault("Ctau", 0.4083);
+        exp1_ = this->coeffs().lookupOrDefault("exp1", EDCexp1[int(version_)]);
+        exp2_ = this->coeffs().lookupOrDefault("exp2", EDCexp2[int(version_)]);
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/combustionModels/EDC/EDC.H b/src/combustionModels/EDC/EDC.H
new file mode 100644
index 00000000000..d9ed191f999
--- /dev/null
+++ b/src/combustionModels/EDC/EDC.H
@@ -0,0 +1,214 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::combustionModels::EDC
+
+Description
+    Eddy Dissipation Concept (EDC) turbulent combustion model.
+
+    This model considers that the reaction occurs in the regions of the flow
+    where the dissipation of turbulence kinetic energy takes place (fine
+    structures). The mass fraction of the fine structures and the mean residence
+    time are provided by an energy cascade model.
+
+    There are many versions and developments of the EDC model, 4 of which are
+    currently supported in this implementation: v1981, v1996, v2005 and
+    v2016.  The model variant is selected using the optional \c version entry in
+    the \c EDCCoeffs dictionary, \eg
+
+    \verbatim
+        EDCCoeffs
+        {
+            version v2016;
+        }
+    \endverbatim
+
+    The default version is \c v2015 if the \c version entry is not specified.
+
+    Model versions and references:
+    \verbatim
+        Version v2005:
+
+            Cgamma = 2.1377
+            Ctau = 0.4083
+            kappa = gammaL^exp1 / (1 - gammaL^exp2),
+
+            where exp1 = 2, and exp2 = 2.
+
+            Magnussen, B. F. (2005, June).
+            The Eddy Dissipation Concept -
+            A Bridge Between Science and Technology.
+            In ECCOMAS thematic conference on computational combustion
+            (pp. 21-24).
+
+        Version v1981:
+
+            Changes coefficients exp1 = 3 and exp2 = 3
+
+            Magnussen, B. (1981, January).
+            On the structure of turbulence and a generalized
+            eddy dissipation concept for chemical reaction in turbulent flow.
+            In 19th Aerospace Sciences Meeting (p. 42).
+
+        Version v1996:
+
+            Changes coefficients exp1 = 2 and exp2 = 3
+
+            Gran, I. R., & Magnussen, B. F. (1996).
+            A numerical study of a bluff-body stabilized diffusion flame.
+            Part 2. Influence of combustion modeling and finite-rate chemistry.
+            Combustion Science and Technology, 119(1-6), 191-217.
+
+        Version v2016:
+
+            Use local constants computed from the turbulent Da and Re numbers.
+
+            Parente, A., Malik, M. R., Contino, F., Cuoci, A., & Dally, B. B.
+            (2016).
+            Extension of the Eddy Dissipation Concept for
+            turbulence/chemistry interactions to MILD combustion.
+            Fuel, 163, 98-111.
+    \endverbatim
+
+SourceFiles
+    EDC.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef EDC_H
+#define EDC_H
+
+#include "../laminar/laminar.H"
+#include "NamedEnum.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace combustionModels
+{
+
+//- EDC model versions
+enum class EDCversions
+{
+    v1981,
+    v1996,
+    v2005,
+    v2016
+};
+
+extern const NamedEnum<EDCversions, 4> EDCversionNames;
+extern const EDCversions EDCdefaultVersion;
+
+const scalar EDCexp1[] = {3, 2, 2, 2};
+const scalar EDCexp2[] = {3, 3, 2, 2};
+
+/*---------------------------------------------------------------------------*\
+                            Class EDC Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Type>
+class EDC
+:
+    public laminar<Type>
+{
+    // Private data
+
+        //- The selected model version
+        EDCversions version_;
+
+        scalar C1_;
+        scalar C2_;
+        scalar Cgamma_;
+        scalar Ctau_;
+        scalar exp1_;
+        scalar exp2_;
+
+        //- Mixing parameter
+        volScalarField kappa_;
+
+
+    // Private Member Functions
+
+        //- Disallow copy construct
+        EDC(const EDC&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const EDC&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("EDC");
+
+
+    // Constructors
+
+        //- Construct from components
+        EDC
+        (
+            const word& modelType,
+            const fvMesh& mesh,
+            const word& combustionProperties,
+            const word& phaseName
+        );
+
+
+    //- Destructor
+    virtual ~EDC();
+
+
+    // Member Functions
+
+        //- Correct combustion rate
+        virtual void correct();
+
+        //- Fuel consumption rate matrix.
+        virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
+
+        //- Heat release rate [kg/m/s3]
+        virtual tmp<volScalarField> Qdot() const;
+
+        //- Update properties from given dictionary
+        virtual bool read();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace combustionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "EDC.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/combustionModels/EDC/EDCs.C b/src/combustionModels/EDC/EDCs.C
new file mode 100644
index 00000000000..280d6c3db31
--- /dev/null
+++ b/src/combustionModels/EDC/EDCs.C
@@ -0,0 +1,61 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "makeCombustionTypes.H"
+
+#include "psiChemistryCombustion.H"
+#include "rhoChemistryCombustion.H"
+#include "EDC.H"
+
+// * * * * * * * * * * * * * Static Member Data  * * * * * * * * * * * * * * //
+
+template<>
+const char* Foam::NamedEnum
+<
+    Foam::combustionModels::EDCversions,
+    4
+>::names[] =
+{
+    "v1981",
+    "v1996",
+    "v2005",
+    "v2016"
+};
+
+const Foam::NamedEnum<Foam::combustionModels::EDCversions, 4>
+    Foam::combustionModels::EDCversionNames;
+
+const Foam::combustionModels::EDCversions
+Foam::combustionModels::EDCdefaultVersion
+(
+    Foam::combustionModels::EDCversions::v2005
+);
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+makeCombustionTypes(EDC, psiChemistryCombustion, psiCombustionModel);
+makeCombustionTypes(EDC, rhoChemistryCombustion, rhoCombustionModel);
+
+// ************************************************************************* //
diff --git a/src/combustionModels/Make/files b/src/combustionModels/Make/files
index 16af07aed12..783bb68fa69 100644
--- a/src/combustionModels/Make/files
+++ b/src/combustionModels/Make/files
@@ -14,6 +14,7 @@ diffusion/diffusions.C
 infinitelyFastChemistry/infinitelyFastChemistrys.C
 
 PaSR/PaSRs.C
+EDC/EDCs.C
 
 laminar/laminars.C
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
index 5fef7144907..33a6d6a131c 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
@@ -616,6 +616,8 @@ Foam::scalar Foam::TDACChemistryModel<CompType, ThermoType>::solve
     scalar solveChemistryCpuTime_ = 0;
     scalar searchISATCpuTime_ = 0;
 
+    this->resetTabulationResults();
+
     // Average number of active species
     scalar nActiveSpecies = 0;
     scalar nAvg = 0;
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
index bf07574a3a8..1e65270dbf2 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.H
@@ -283,6 +283,8 @@ public:
             void setTabulationResultsGrow(const label celli);
 
             void setTabulationResultsRetrieve(const label celli);
+
+            inline void resetTabulationResults();
 };
 
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H
index 362820308d0..011e47aa2c0 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModelI.H
@@ -165,4 +165,14 @@ Foam::TDACChemistryModel<CompType, ThermoType>::specieComp()
 }
 
 
+template<class CompType, class ThermoType>
+void Foam::TDACChemistryModel<CompType, ThermoType>::resetTabulationResults()
+{
+    forAll(tabulationResults_, tabi)
+    {
+        tabulationResults_[tabi] = 2;
+    }
+}
+
+
 // ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4
new file mode 100644
index 00000000000..ee337c9d88d
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      CH4;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform 0.245642;
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0;
+        value           uniform 0;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G
new file mode 100644
index 00000000000..f54721ebf50
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G
@@ -0,0 +1,42 @@
+/*--------------------------------*- C++ -*----------------------------------* \
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      G;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 0 -3 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    ".*"
+    {
+        type            MarshakRadiation;
+        T               T;
+        emissivityMode  lookup;
+        emissivity      uniform 1.0;
+        value           uniform 0;
+    }
+
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2
new file mode 100644
index 00000000000..8e6b4ef3eed
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      H2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform 0.046496;
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0;
+        value           uniform 0;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O
new file mode 100644
index 00000000000..2c942fc2bb3
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      H2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0.005008;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform 0.005008;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0.005008;
+        value           uniform 0.005008;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2
new file mode 100644
index 00000000000..80bf599c3a4
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      N2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0.763149;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform 0.707861;
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform 0.763149;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0.763149;
+        value           uniform 0.763149;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2
new file mode 100644
index 00000000000..c4352714e5d
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      O2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField  uniform 0.231843;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform 0.231843;
+    }
+        outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0.231843;
+        value           uniform 0.231843;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig
new file mode 100644
index 00000000000..d9b0ad75dc0
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      T;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 292;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform 292;
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform 292;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 292;
+        value           uniform 292;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U
new file mode 100644
index 00000000000..4252d320cd6
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    location    "0";
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0.3);
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform (0 0 42.2);
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform (0 0 0.3);
+    }
+    outlet
+    {
+        type            pressureInletOutletVelocity;
+        value           uniform (0 0 0.3);
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            fixedValue;
+        value           uniform (0 0 0.3);
+    }
+    burnerwall
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+    burnertip
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault
new file mode 100644
index 00000000000..e01bc03ae8a
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      Ydefault;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    inletair
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 0;
+        value           uniform 0;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat
new file mode 100644
index 00000000000..7650e961ced
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat
@@ -0,0 +1,72 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alphat;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    inletair
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           uniform 0;
+    }
+    burnerwall
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           uniform 0;
+    }
+    burnertip
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           uniform 0;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon
new file mode 100644
index 00000000000..a0517c2b7bf
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon
@@ -0,0 +1,85 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 200;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.005;
+        phi             phi;
+        k               k;
+        value           uniform 200;
+    }
+    inletair
+    {
+        type            turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.005;
+        phi             phi;
+        k               k;
+        value           uniform 200;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 200;
+        value           uniform 200;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            epsilonWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 200;
+    }
+    burnerwall
+    {
+        type            epsilonWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 200;
+    }
+    burnertip
+    {
+        type            epsilonWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 200;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k
new file mode 100644
index 00000000000..a22014ff6d4
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k
@@ -0,0 +1,72 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 1;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            turbulentIntensityKineticEnergyInlet;
+        intensity       0.08;
+        value           uniform 1;
+    }
+    inletair
+    {
+        type            turbulentIntensityKineticEnergyInlet;
+        intensity       0.02;
+        value           uniform 1;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 1;
+        value           uniform 1;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            kqRWallFunction;
+        value           uniform 1;
+    }
+    burnerwall
+    {
+        type            kqRWallFunction;
+        value           uniform 1;
+    }
+    burnertip
+    {
+        type            kqRWallFunction;
+        value           uniform 1;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut
new file mode 100644
index 00000000000..07ee7a1334d
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut
@@ -0,0 +1,78 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    inletair
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            nutkWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 0;
+    }
+    burnerwall
+    {
+        type            nutkWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 0;
+    }
+    burnertip
+    {
+        type            nutkWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 0;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p
new file mode 100644
index 00000000000..cc091b2b5b4
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p
@@ -0,0 +1,64 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 101325;
+
+boundaryField
+{
+    inletfuel
+    {
+        type            zeroGradient;
+    }
+    inletair
+    {
+        type            zeroGradient;
+    }
+    outlet
+    {
+        type            totalPressure;
+        p0              $internalField;
+    }
+    axis
+    {
+        type            empty;
+    }
+    leftside
+    {
+        type            zeroGradient;
+    }
+    burnerwall
+    {
+        type            zeroGradient;
+    }
+    burnertip
+    {
+        type            zeroGradient;
+    }
+    front
+    {
+        type            wedge;
+    }
+    back
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allclean b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allclean
new file mode 100755
index 00000000000..79defe511db
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allclean
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+cleanCase
+
+rm -f 0/T
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allrun b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allrun
new file mode 100755
index 00000000000..40a38f4eca5
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/Allrun
@@ -0,0 +1,23 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+# Set application name
+application=`getApplication`
+
+rm -f 0/T
+cp 0/T.orig 0/T
+
+runApplication chemkinToFoam \
+               chemkin/grimech30.dat chemkin/thermo30.dat chemkin/transportProperties \
+               constant/reactionsGRI constant/thermo.compressibleGasGRI
+
+runApplication blockMesh
+runApplication setFields
+runApplication decomposePar -force
+runParallel $application
+runApplication reconstructPar
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/grimech30.dat b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/grimech30.dat
new file mode 100644
index 00000000000..021f9958791
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/grimech30.dat
@@ -0,0 +1,328 @@
+! GRI-Mech Version 3.0 7/30/99  CHEMKIN-II format
+! See README30 file at anonymous FTP site unix.sri.com, directory gri;
+! WorldWideWeb home page http://www.me.berkeley.edu/gri_mech/ or
+! through http://www.gri.org , under 'Basic  Research',
+! for additional information, contacts, and disclaimer
+ELEMENTS
+O  H  C  N  AR
+END
+SPECIES
+H2      H       O       O2      OH      H2O     HO2     H2O2
+C       CH      CH2     CH2(S)  CH3     CH4     CO      CO2
+HCO     CH2O    CH2OH   CH3O    CH3OH   C2H     C2H2    C2H3
+C2H4    C2H5    C2H6    HCCO    CH2CO   HCCOH   N2      AR
+C3H7    C3H8    CH2CHO  CH3CHO
+END
+!THERMO
+! Insert GRI-Mech thermodynamics here or use in default file
+!END
+REACTIONS
+2O+M<=>O2+M                              1.200E+17   -1.000        .00
+H2/ 2.40/ H2O/15.40/ CH4/ 2.00/ CO/ 1.75/ CO2/ 3.60/ C2H6/ 3.00/ AR/  .83/
+O+H+M<=>OH+M                             5.000E+17   -1.000        .00
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+H2<=>H+OH                              3.870E+04    2.700    6260.00
+O+HO2<=>OH+O2                            2.000E+13     .000        .00
+O+H2O2<=>OH+HO2                          9.630E+06    2.000    4000.00
+O+CH<=>H+CO                              5.700E+13     .000        .00
+O+CH2<=>H+HCO                            8.000E+13     .000        .00
+O+CH2(S)<=>H2+CO                         1.500E+13     .000        .00
+O+CH2(S)<=>H+HCO                         1.500E+13     .000        .00
+O+CH3<=>H+CH2O                           5.060E+13     .000        .00
+O+CH4<=>OH+CH3                           1.020E+09    1.500    8600.00
+O+CO(+M)<=>CO2(+M)                       1.800E+10     .000    2385.00
+   LOW/ 6.020E+14     .000    3000.00/
+H2/2.00/ O2/6.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/3.50/ C2H6/3.00/ AR/ .50/
+O+HCO<=>OH+CO                            3.000E+13     .000        .00
+O+HCO<=>H+CO2                            3.000E+13     .000        .00
+O+CH2O<=>OH+HCO                          3.900E+13     .000    3540.00
+O+CH2OH<=>OH+CH2O                        1.000E+13     .000        .00
+O+CH3O<=>OH+CH2O                         1.000E+13     .000        .00
+O+CH3OH<=>OH+CH2OH                       3.880E+05    2.500    3100.00
+O+CH3OH<=>OH+CH3O                        1.300E+05    2.500    5000.00
+O+C2H<=>CH+CO                            5.000E+13     .000        .00
+O+C2H2<=>H+HCCO                          1.350E+07    2.000    1900.00
+O+C2H2<=>OH+C2H                          4.600E+19   -1.410   28950.00
+O+C2H2<=>CO+CH2                          6.940E+06    2.000    1900.00
+O+C2H3<=>H+CH2CO                         3.000E+13     .000        .00
+O+C2H4<=>CH3+HCO                         1.250E+07    1.830     220.00
+O+C2H5<=>CH3+CH2O                        2.240E+13     .000        .00
+O+C2H6<=>OH+C2H5                         8.980E+07    1.920    5690.00
+O+HCCO<=>H+2CO                           1.000E+14     .000        .00
+O+CH2CO<=>OH+HCCO                        1.000E+13     .000    8000.00
+O+CH2CO<=>CH2+CO2                        1.750E+12     .000    1350.00
+O2+CO<=>O+CO2                            2.500E+12     .000   47800.00
+O2+CH2O<=>HO2+HCO                        1.000E+14     .000   40000.00
+H+O2+M<=>HO2+M                           2.800E+18    -.860        .00
+O2/ .00/ H2O/ .00/ CO/ .75/ CO2/1.50/ C2H6/1.50/ N2/ .00/ AR/ .00/
+H+2O2<=>HO2+O2                           2.080E+19   -1.240        .00
+H+O2+H2O<=>HO2+H2O                       11.26E+18    -.760        .00
+H+O2+N2<=>HO2+N2                         2.600E+19   -1.240        .00
+H+O2+AR<=>HO2+AR                         7.000E+17    -.800        .00
+H+O2<=>O+OH                              2.650E+16    -.6707  17041.00
+2H+M<=>H2+M                              1.000E+18   -1.000        .00
+H2/ .00/ H2O/ .00/ CH4/2.00/ CO2/ .00/ C2H6/3.00/ AR/ .63/
+2H+H2<=>2H2                              9.000E+16    -.600        .00
+2H+H2O<=>H2+H2O                          6.000E+19   -1.250        .00
+2H+CO2<=>H2+CO2                          5.500E+20   -2.000        .00
+H+OH+M<=>H2O+M                           2.200E+22   -2.000        .00
+H2/ .73/ H2O/3.65/ CH4/2.00/ C2H6/3.00/ AR/ .38/
+H+HO2<=>O+H2O                            3.970E+12     .000     671.00
+H+HO2<=>O2+H2                            4.480E+13     .000    1068.00
+H+HO2<=>2OH                              0.840E+14     .000     635.00
+H+H2O2<=>HO2+H2                          1.210E+07    2.000    5200.00
+H+H2O2<=>OH+H2O                          1.000E+13     .000    3600.00
+H+CH<=>C+H2                              1.650E+14     .000        .00
+H+CH2(+M)<=>CH3(+M)                      6.000E+14     .000        .00
+     LOW  /  1.040E+26   -2.760   1600.00/
+     TROE/   .5620  91.00  5836.00  8552.00/
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+CH2(S)<=>CH+H2                         3.000E+13     .000        .00
+H+CH3(+M)<=>CH4(+M)                      13.90E+15    -.534     536.00
+     LOW  /  2.620E+33   -4.760   2440.00/
+     TROE/   .7830   74.00  2941.00  6964.00 /
+H2/2.00/ H2O/6.00/ CH4/3.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+CH4<=>CH3+H2                           6.600E+08    1.620   10840.00
+H+HCO(+M)<=>CH2O(+M)                     1.090E+12     .480    -260.00
+     LOW  /  2.470E+24   -2.570    425.00/
+     TROE/   .7824  271.00  2755.00  6570.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+HCO<=>H2+CO                            7.340E+13     .000        .00
+H+CH2O(+M)<=>CH2OH(+M)                   5.400E+11     .454    3600.00
+     LOW  /  1.270E+32   -4.820   6530.00/
+     TROE/   .7187  103.00  1291.00  4160.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH2O(+M)<=>CH3O(+M)                    5.400E+11     .454    2600.00
+     LOW  /  2.200E+30   -4.800   5560.00/
+     TROE/   .7580   94.00  1555.00  4200.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH2O<=>HCO+H2                          5.740E+07    1.900    2742.00
+H+CH2OH(+M)<=>CH3OH(+M)                  1.055E+12     .500      86.00
+     LOW  /  4.360E+31   -4.650   5080.00/
+     TROE/   .600  100.00  90000.0  10000.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH2OH<=>H2+CH2O                        2.000E+13     .000        .00
+H+CH2OH<=>OH+CH3                         1.650E+11     .650    -284.00
+H+CH2OH<=>CH2(S)+H2O                     3.280E+13    -.090     610.00
+H+CH3O(+M)<=>CH3OH(+M)                   2.430E+12     .515      50.00
+     LOW  /  4.660E+41   -7.440   14080.0/
+     TROE/   .700  100.00  90000.0 10000.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH3O<=>H+CH2OH                         4.150E+07    1.630    1924.00
+H+CH3O<=>H2+CH2O                         2.000E+13     .000        .00
+H+CH3O<=>OH+CH3                          1.500E+12     .500    -110.00
+H+CH3O<=>CH2(S)+H2O                      2.620E+14    -.230    1070.00
+H+CH3OH<=>CH2OH+H2                       1.700E+07    2.100    4870.00
+H+CH3OH<=>CH3O+H2                        4.200E+06    2.100    4870.00
+H+C2H(+M)<=>C2H2(+M)                     1.000E+17   -1.000        .00
+     LOW  /  3.750E+33   -4.800   1900.00/
+     TROE/   .6464  132.00  1315.00  5566.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H2(+M)<=>C2H3(+M)                    5.600E+12     .000    2400.00
+     LOW  /  3.800E+40   -7.270   7220.00/
+     TROE/   .7507   98.50  1302.00  4167.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H3(+M)<=>C2H4(+M)                    6.080E+12     .270     280.00
+     LOW  /  1.400E+30   -3.860   3320.00/
+     TROE/   .7820  207.50  2663.00  6095.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H3<=>H2+C2H2                         3.000E+13     .000        .00
+H+C2H4(+M)<=>C2H5(+M)                    0.540E+12     .454    1820.00
+     LOW  /  0.600E+42   -7.620   6970.00/
+     TROE/   .9753  210.00   984.00  4374.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H4<=>C2H3+H2                         1.325E+06    2.530   12240.00
+H+C2H5(+M)<=>C2H6(+M)                    5.210E+17    -.990    1580.00
+     LOW  /  1.990E+41   -7.080   6685.00/
+     TROE/   .8422  125.00  2219.00  6882.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H5<=>H2+C2H4                         2.000E+12     .000        .00
+H+C2H6<=>C2H5+H2                         1.150E+08    1.900    7530.00
+H+HCCO<=>CH2(S)+CO                       1.000E+14     .000        .00
+H+CH2CO<=>HCCO+H2                        5.000E+13     .000    8000.00
+H+CH2CO<=>CH3+CO                         1.130E+13     .000    3428.00
+H+HCCOH<=>H+CH2CO                        1.000E+13     .000        .00
+H2+CO(+M)<=>CH2O(+M)                     4.300E+07    1.500   79600.00
+     LOW  /  5.070E+27   -3.420  84350.00/
+     TROE/   .9320  197.00  1540.00 10300.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+OH+H2<=>H+H2O                            2.160E+08    1.510    3430.00
+2OH(+M)<=>H2O2(+M)                       7.400E+13    -.370        .00
+     LOW  /  2.300E+18    -.900  -1700.00/
+     TROE/   .7346   94.00  1756.00  5182.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+2OH<=>O+H2O                              3.570E+04    2.400   -2110.00
+OH+HO2<=>O2+H2O                          1.450E+13     .000    -500.00
+ DUPLICATE
+OH+H2O2<=>HO2+H2O                        2.000E+12     .000     427.00
+ DUPLICATE
+OH+H2O2<=>HO2+H2O                        1.700E+18     .000   29410.00
+ DUPLICATE
+OH+C<=>H+CO                              5.000E+13     .000        .00
+OH+CH<=>H+HCO                            3.000E+13     .000        .00
+OH+CH2<=>H+CH2O                          2.000E+13     .000        .00
+OH+CH2<=>CH+H2O                          1.130E+07    2.000    3000.00
+OH+CH2(S)<=>H+CH2O                       3.000E+13     .000        .00
+OH+CH3(+M)<=>CH3OH(+M)                   2.790E+18   -1.430    1330.00
+     LOW  /  4.000E+36   -5.920   3140.00/
+     TROE/   .4120  195.0  5900.00  6394.00/
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+OH+CH3<=>CH2+H2O                         5.600E+07    1.600    5420.00
+OH+CH3<=>CH2(S)+H2O                      6.440E+17   -1.340    1417.00
+OH+CH4<=>CH3+H2O                         1.000E+08    1.600    3120.00
+OH+CO<=>H+CO2                            4.760E+07    1.228      70.00
+OH+HCO<=>H2O+CO                          5.000E+13     .000        .00
+OH+CH2O<=>HCO+H2O                        3.430E+09    1.180    -447.00
+OH+CH2OH<=>H2O+CH2O                      5.000E+12     .000        .00
+OH+CH3O<=>H2O+CH2O                       5.000E+12     .000        .00
+OH+CH3OH<=>CH2OH+H2O                     1.440E+06    2.000    -840.00
+OH+CH3OH<=>CH3O+H2O                      6.300E+06    2.000    1500.00
+OH+C2H<=>H+HCCO                          2.000E+13     .000        .00
+OH+C2H2<=>H+CH2CO                        2.180E-04    4.500   -1000.00
+OH+C2H2<=>H+HCCOH                        5.040E+05    2.300   13500.00
+OH+C2H2<=>C2H+H2O                        3.370E+07    2.000   14000.00
+OH+C2H2<=>CH3+CO                         4.830E-04    4.000   -2000.00
+OH+C2H3<=>H2O+C2H2                       5.000E+12     .000        .00
+OH+C2H4<=>C2H3+H2O                       3.600E+06    2.000    2500.00
+OH+C2H6<=>C2H5+H2O                       3.540E+06    2.120     870.00
+OH+CH2CO<=>HCCO+H2O                      7.500E+12     .000    2000.00
+2HO2<=>O2+H2O2                           1.300E+11     .000   -1630.00
+ DUPLICATE
+2HO2<=>O2+H2O2                           4.200E+14     .000   12000.00
+ DUPLICATE
+HO2+CH2<=>OH+CH2O                        2.000E+13     .000        .00
+HO2+CH3<=>O2+CH4                         1.000E+12     .000        .00
+HO2+CH3<=>OH+CH3O                        3.780E+13     .000        .00
+HO2+CO<=>OH+CO2                          1.500E+14     .000   23600.00
+HO2+CH2O<=>HCO+H2O2                      5.600E+06    2.000   12000.00
+C+O2<=>O+CO                              5.800E+13     .000     576.00
+C+CH2<=>H+C2H                            5.000E+13     .000        .00
+C+CH3<=>H+C2H2                           5.000E+13     .000        .00
+CH+O2<=>O+HCO                            6.710E+13     .000        .00
+CH+H2<=>H+CH2                            1.080E+14     .000    3110.00
+CH+H2O<=>H+CH2O                          5.710E+12     .000    -755.00
+CH+CH2<=>H+C2H2                          4.000E+13     .000        .00
+CH+CH3<=>H+C2H3                          3.000E+13     .000        .00
+CH+CH4<=>H+C2H4                          6.000E+13     .000        .00
+CH+CO(+M)<=>HCCO(+M)                     5.000E+13     .000        .00
+     LOW  /  2.690E+28   -3.740   1936.00/
+     TROE/   .5757  237.00  1652.00  5069.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+CH+CO2<=>HCO+CO                          1.900E+14     .000   15792.00
+CH+CH2O<=>H+CH2CO                        9.460E+13     .000    -515.00
+CH+HCCO<=>CO+C2H2                        5.000E+13     .000        .00
+CH2+O2=>OH+H+CO                          5.000E+12     .000    1500.00
+CH2+H2<=>H+CH3                           5.000E+05    2.000    7230.00
+2CH2<=>H2+C2H2                           1.600E+15     .000   11944.00
+CH2+CH3<=>H+C2H4                         4.000E+13     .000        .00
+CH2+CH4<=>2CH3                           2.460E+06    2.000    8270.00
+CH2+CO(+M)<=>CH2CO(+M)                   8.100E+11     .500    4510.00
+     LOW  /  2.690E+33   -5.110   7095.00/
+     TROE/   .5907  275.00  1226.00  5185.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+CH2+HCCO<=>C2H3+CO                       3.000E+13     .000        .00
+CH2(S)+N2<=>CH2+N2                       1.500E+13     .000     600.00
+CH2(S)+AR<=>CH2+AR                       9.000E+12     .000     600.00
+CH2(S)+O2<=>H+OH+CO                      2.800E+13     .000        .00
+CH2(S)+O2<=>CO+H2O                       1.200E+13     .000        .00
+CH2(S)+H2<=>CH3+H                        7.000E+13     .000        .00
+CH2(S)+H2O(+M)<=>CH3OH(+M)               4.820E+17   -1.160    1145.00
+     LOW  /  1.880E+38   -6.360   5040.00/
+     TROE/   .6027  208.00  3922.00  10180.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+CH2(S)+H2O<=>CH2+H2O                     3.000E+13     .000        .00
+CH2(S)+CH3<=>H+C2H4                      1.200E+13     .000    -570.00
+CH2(S)+CH4<=>2CH3                        1.600E+13     .000    -570.00
+CH2(S)+CO<=>CH2+CO                       9.000E+12     .000        .00
+CH2(S)+CO2<=>CH2+CO2                     7.000E+12     .000        .00
+CH2(S)+CO2<=>CO+CH2O                     1.400E+13     .000        .00
+CH2(S)+C2H6<=>CH3+C2H5                   4.000E+13     .000    -550.00
+CH3+O2<=>O+CH3O                          3.560E+13     .000   30480.00
+CH3+O2<=>OH+CH2O                         2.310E+12     .000   20315.00
+CH3+H2O2<=>HO2+CH4                       2.450E+04    2.470    5180.00
+2CH3(+M)<=>C2H6(+M)                      6.770E+16   -1.180     654.00
+     LOW  /  3.400E+41   -7.030   2762.00/
+     TROE/   .6190  73.20  1180.00  9999.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+2CH3<=>H+C2H5                            6.840E+12     .100   10600.00
+CH3+HCO<=>CH4+CO                         2.648E+13     .000        .00
+CH3+CH2O<=>HCO+CH4                       3.320E+03    2.810    5860.00
+CH3+CH3OH<=>CH2OH+CH4                    3.000E+07    1.500    9940.00
+CH3+CH3OH<=>CH3O+CH4                     1.000E+07    1.500    9940.00
+CH3+C2H4<=>C2H3+CH4                      2.270E+05    2.000    9200.00
+CH3+C2H6<=>C2H5+CH4                      6.140E+06    1.740   10450.00
+HCO+H2O<=>H+CO+H2O                       1.500E+18   -1.000   17000.00
+HCO+M<=>H+CO+M                           1.870E+17   -1.000   17000.00
+H2/2.00/ H2O/ .00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+HCO+O2<=>HO2+CO                          13.45E+12     .000     400.00
+CH2OH+O2<=>HO2+CH2O                      1.800E+13     .000     900.00
+CH3O+O2<=>HO2+CH2O                       4.280E-13    7.600   -3530.00
+C2H+O2<=>HCO+CO                          1.000E+13     .000    -755.00
+C2H+H2<=>H+C2H2                          5.680E+10    0.900    1993.00
+C2H3+O2<=>HCO+CH2O                       4.580E+16   -1.390    1015.00
+C2H4(+M)<=>H2+C2H2(+M)                   8.000E+12     .440   86770.00
+     LOW  /  1.580E+51   -9.300  97800.00/
+     TROE/   .7345  180.00  1035.00  5417.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+C2H5+O2<=>HO2+C2H4                       8.400E+11     .000    3875.00
+HCCO+O2<=>OH+2CO                         3.200E+12     .000     854.00
+2HCCO<=>2CO+C2H2                         1.000E+13     .000        .00
+O+CH3=>H+H2+CO                           3.370E+13     .000        .00
+O+C2H4<=>H+CH2CHO                        6.700E+06    1.830     220.00
+O+C2H5<=>H+CH3CHO                        1.096E+14     .000        .00
+OH+HO2<=>O2+H2O                          0.500E+16     .000   17330.00
+  DUPLICATE
+OH+CH3=>H2+CH2O                          8.000E+09     .500   -1755.00
+CH+H2(+M)<=>CH3(+M)                      1.970E+12     .430    -370.00
+   LOW/ 4.820E+25  -2.80  590.0 /
+   TROE/ .578  122.0  2535.0  9365.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+CH2+O2=>2H+CO2                           5.800E+12     .000    1500.00
+CH2+O2<=>O+CH2O                          2.400E+12     .000    1500.00
+CH2+CH2=>2H+C2H2                         2.000E+14     .000   10989.00
+CH2(S)+H2O=>H2+CH2O                      6.820E+10     .250    -935.00
+C2H3+O2<=>O+CH2CHO                       3.030E+11     .290      11.00
+C2H3+O2<=>HO2+C2H2                       1.337E+06    1.610    -384.00
+O+CH3CHO<=>OH+CH2CHO                     2.920E+12     .000    1808.00
+O+CH3CHO=>OH+CH3+CO                      2.920E+12     .000    1808.00
+O2+CH3CHO=>HO2+CH3+CO                    3.010E+13     .000   39150.00
+H+CH3CHO<=>CH2CHO+H2                     2.050E+09    1.160    2405.00
+H+CH3CHO=>CH3+H2+CO                      2.050E+09    1.160    2405.00
+OH+CH3CHO=>CH3+H2O+CO                    2.343E+10    0.730   -1113.00
+HO2+CH3CHO=>CH3+H2O2+CO                  3.010E+12     .000   11923.00
+CH3+CH3CHO=>CH3+CH4+CO                   2.720E+06    1.770    5920.00
+H+CH2CO(+M)<=>CH2CHO(+M)                 4.865E+11    0.422   -1755.00
+    LOW/ 1.012E+42  -7.63  3854.0/
+    TROE/ 0.465  201.0  1773.0  5333.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+CH2CHO=>H+CH2+CO2                      1.500E+14     .000       .00
+O2+CH2CHO=>OH+CO+CH2O                    1.810E+10     .000       .00
+O2+CH2CHO=>OH+2HCO                       2.350E+10     .000       .00
+H+CH2CHO<=>CH3+HCO                       2.200E+13     .000       .00
+H+CH2CHO<=>CH2CO+H2                      1.100E+13     .000       .00
+OH+CH2CHO<=>H2O+CH2CO                    1.200E+13     .000       .00
+OH+CH2CHO<=>HCO+CH2OH                    3.010E+13     .000       .00
+CH3+C2H5(+M)<=>C3H8(+M)                  .9430E+13     .000       .00
+     LOW/ 2.710E+74  -16.82  13065.0 /
+     TROE/ .1527  291.0  2742.0  7748.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+C3H8<=>OH+C3H7                         1.930E+05    2.680   3716.00
+H+C3H8<=>C3H7+H2                         1.320E+06    2.540   6756.00
+OH+C3H8<=>C3H7+H2O                       3.160E+07    1.800    934.00
+C3H7+H2O2<=>HO2+C3H8                     3.780E+02    2.720   1500.00
+CH3+C3H8<=>C3H7+CH4                      0.903E+00    3.650   7154.00
+CH3+C2H4(+M)<=>C3H7(+M)                  2.550E+06    1.600   5700.00
+      LOW/ 3.00E+63  -14.6  18170./
+      TROE/ .1894  277.0  8748.0  7891.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+C3H7<=>C2H5+CH2O                       9.640E+13     .000       .00
+H+C3H7(+M)<=>C3H8(+M)                    3.613E+13     .000       .00
+      LOW/ 4.420E+61  -13.545  11357.0/
+      TROE/ .315  369.0  3285.0  6667.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C3H7<=>CH3+C2H5                        4.060E+06    2.190    890.00
+OH+C3H7<=>C2H5+CH2OH                     2.410E+13     .000       .00
+HO2+C3H7<=>O2+C3H8                       2.550E+10    0.255   -943.00
+HO2+C3H7=>OH+C2H5+CH2O                   2.410E+13     .000       .00
+CH3+C3H7<=>2C2H5                         1.927E+13   -0.320       .00
+END
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/thermo30.dat b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/thermo30.dat
new file mode 100644
index 00000000000..89e7122c35f
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/thermo30.dat
@@ -0,0 +1,218 @@
+THERMO ALL
+   250.000  1000.000  5000.000
+! GRI-Mech Version 3.0 Thermodynamics released 7/30/99
+! NASA Polynomial format for CHEMKIN-II
+! see README file for disclaimer
+O                 L 1/90O   1               G   200.000  3500.000  1000.000    1
+ 2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15    2
+ 2.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-06    3
+-6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00                   4
+O2                TPIS89O   2               G   200.000  3500.000  1000.000    1
+ 3.28253784E+00 1.48308754E-03-7.57966669E-07 2.09470555E-10-2.16717794E-14    2
+-1.08845772E+03 5.45323129E+00 3.78245636E+00-2.99673416E-03 9.84730201E-06    3
+-9.68129509E-09 3.24372837E-12-1.06394356E+03 3.65767573E+00                   4
+H                 L 7/88H   1               G   200.000  3500.000  1000.000    1
+ 2.50000001E+00-2.30842973E-11 1.61561948E-14-4.73515235E-18 4.98197357E-22    2
+ 2.54736599E+04-4.46682914E-01 2.50000000E+00 7.05332819E-13-1.99591964E-15    3
+ 2.30081632E-18-9.27732332E-22 2.54736599E+04-4.46682853E-01                   4
+H2                TPIS78H   2               G   200.000  3500.000  1000.000    1
+ 3.33727920E+00-4.94024731E-05 4.99456778E-07-1.79566394E-10 2.00255376E-14    2
+-9.50158922E+02-3.20502331E+00 2.34433112E+00 7.98052075E-03-1.94781510E-05    3
+ 2.01572094E-08-7.37611761E-12-9.17935173E+02 6.83010238E-01                   4
+OH                RUS 78O   1H   1          G   200.000  3500.000  1000.000    1
+ 3.09288767E+00 5.48429716E-04 1.26505228E-07-8.79461556E-11 1.17412376E-14    2
+ 3.85865700E+03 4.47669610E+00 3.99201543E+00-2.40131752E-03 4.61793841E-06    3
+-3.88113333E-09 1.36411470E-12 3.61508056E+03-1.03925458E-01                   4
+H2O               L 8/89H   2O   1          G   200.000  3500.000  1000.000    1
+ 3.03399249E+00 2.17691804E-03-1.64072518E-07-9.70419870E-11 1.68200992E-14    2
+-3.00042971E+04 4.96677010E+00 4.19864056E+00-2.03643410E-03 6.52040211E-06    3
+-5.48797062E-09 1.77197817E-12-3.02937267E+04-8.49032208E-01                   4
+HO2               L 5/89H   1O   2          G   200.000  3500.000  1000.000    1
+ 4.01721090E+00 2.23982013E-03-6.33658150E-07 1.14246370E-10-1.07908535E-14    2
+ 1.11856713E+02 3.78510215E+00 4.30179801E+00-4.74912051E-03 2.11582891E-05    3
+-2.42763894E-08 9.29225124E-12 2.94808040E+02 3.71666245E+00                   4
+H2O2              L 7/88H   2O   2          G   200.000  3500.000  1000.000    1
+ 4.16500285E+00 4.90831694E-03-1.90139225E-06 3.71185986E-10-2.87908305E-14    2
+-1.78617877E+04 2.91615662E+00 4.27611269E+00-5.42822417E-04 1.67335701E-05    3
+-2.15770813E-08 8.62454363E-12-1.77025821E+04 3.43505074E+00                   4
+C                 L11/88C   1               G   200.000  3500.000  1000.000    1
+ 2.49266888E+00 4.79889284E-05-7.24335020E-08 3.74291029E-11-4.87277893E-15    2
+ 8.54512953E+04 4.80150373E+00 2.55423955E+00-3.21537724E-04 7.33792245E-07    3
+-7.32234889E-10 2.66521446E-13 8.54438832E+04 4.53130848E+00                   4
+CH                TPIS79C   1H   1          G   200.000  3500.000  1000.000    1
+ 2.87846473E+00 9.70913681E-04 1.44445655E-07-1.30687849E-10 1.76079383E-14    2
+ 7.10124364E+04 5.48497999E+00 3.48981665E+00 3.23835541E-04-1.68899065E-06    3
+ 3.16217327E-09-1.40609067E-12 7.07972934E+04 2.08401108E+00                   4
+CH2               L S/93C   1H   2          G   200.000  3500.000  1000.000    1
+ 2.87410113E+00 3.65639292E-03-1.40894597E-06 2.60179549E-10-1.87727567E-14    2
+ 4.62636040E+04 6.17119324E+00 3.76267867E+00 9.68872143E-04 2.79489841E-06    3
+-3.85091153E-09 1.68741719E-12 4.60040401E+04 1.56253185E+00                   4
+CH2(S)            L S/93C   1H   2          G   200.000  3500.000  1000.000    1
+ 2.29203842E+00 4.65588637E-03-2.01191947E-06 4.17906000E-10-3.39716365E-14    2
+ 5.09259997E+04 8.62650169E+00 4.19860411E+00-2.36661419E-03 8.23296220E-06    3
+-6.68815981E-09 1.94314737E-12 5.04968163E+04-7.69118967E-01                   4
+CH3               L11/89C   1H   3          G   200.000  3500.000  1000.000    1
+ 2.28571772E+00 7.23990037E-03-2.98714348E-06 5.95684644E-10-4.67154394E-14    2
+ 1.67755843E+04 8.48007179E+00 3.67359040E+00 2.01095175E-03 5.73021856E-06    3
+-6.87117425E-09 2.54385734E-12 1.64449988E+04 1.60456433E+00                   4
+CH4               L 8/88C   1H   4          G   200.000  3500.000  1000.000    1
+ 7.48514950E-02 1.33909467E-02-5.73285809E-06 1.22292535E-09-1.01815230E-13    2
+-9.46834459E+03 1.84373180E+01 5.14987613E+00-1.36709788E-02 4.91800599E-05    3
+-4.84743026E-08 1.66693956E-11-1.02466476E+04-4.64130376E+00                   4
+CO                TPIS79C   1O   1          G   200.000  3500.000  1000.000    1
+ 2.71518561E+00 2.06252743E-03-9.98825771E-07 2.30053008E-10-2.03647716E-14    2
+-1.41518724E+04 7.81868772E+00 3.57953347E+00-6.10353680E-04 1.01681433E-06    3
+ 9.07005884E-10-9.04424499E-13-1.43440860E+04 3.50840928E+00                   4
+CO2               L 7/88C   1O   2          G   200.000  3500.000  1000.000    1
+ 3.85746029E+00 4.41437026E-03-2.21481404E-06 5.23490188E-10-4.72084164E-14    2
+-4.87591660E+04 2.27163806E+00 2.35677352E+00 8.98459677E-03-7.12356269E-06    3
+ 2.45919022E-09-1.43699548E-13-4.83719697E+04 9.90105222E+00                   4
+HCO               L12/89H   1C   1O   1     G   200.000  3500.000  1000.000    1
+ 2.77217438E+00 4.95695526E-03-2.48445613E-06 5.89161778E-10-5.33508711E-14    2
+ 4.01191815E+03 9.79834492E+00 4.22118584E+00-3.24392532E-03 1.37799446E-05    3
+-1.33144093E-08 4.33768865E-12 3.83956496E+03 3.39437243E+00                   4
+CH2O              L 8/88H   2C   1O   1     G   200.000  3500.000  1000.000    1
+ 1.76069008E+00 9.20000082E-03-4.42258813E-06 1.00641212E-09-8.83855640E-14    2
+-1.39958323E+04 1.36563230E+01 4.79372315E+00-9.90833369E-03 3.73220008E-05    3
+-3.79285261E-08 1.31772652E-11-1.43089567E+04 6.02812900E-01                   4
+CH2OH             GUNL93C   1H   3O   1     G   200.000  3500.000  1000.000    1
+ 3.69266569E+00 8.64576797E-03-3.75101120E-06 7.87234636E-10-6.48554201E-14    2
+-3.24250627E+03 5.81043215E+00 3.86388918E+00 5.59672304E-03 5.93271791E-06    3
+-1.04532012E-08 4.36967278E-12-3.19391367E+03 5.47302243E+00                   4
+CH3O              121686C   1H   3O   1     G   250.00   3000.00   1000.000    1
+ 0.03770799E+02 0.07871497E-01-0.02656384E-04 0.03944431E-08-0.02112616E-12    2
+ 0.12783252E+03 0.02929575E+02 0.02106204E+02 0.07216595E-01 0.05338472E-04    3
+-0.07377636E-07 0.02075610E-10 0.09786011E+04 0.13152177E+02                   4
+CH3OH             L 8/88C   1H   4O   1     G   200.000  3500.000  1000.000    1
+ 1.78970791E+00 1.40938292E-02-6.36500835E-06 1.38171085E-09-1.17060220E-13    2
+-2.53748747E+04 1.45023623E+01 5.71539582E+00-1.52309129E-02 6.52441155E-05    3
+-7.10806889E-08 2.61352698E-11-2.56427656E+04-1.50409823E+00                   4
+C2H               L 1/91C   2H   1          G   200.000  3500.000  1000.000    1
+ 3.16780652E+00 4.75221902E-03-1.83787077E-06 3.04190252E-10-1.77232770E-14    2
+ 6.71210650E+04 6.63589475E+00 2.88965733E+00 1.34099611E-02-2.84769501E-05    3
+ 2.94791045E-08-1.09331511E-11 6.68393932E+04 6.22296438E+00                   4
+C2H2              L 1/91C   2H   2          G   200.000  3500.000  1000.000    1
+ 4.14756964E+00 5.96166664E-03-2.37294852E-06 4.67412171E-10-3.61235213E-14    2
+ 2.59359992E+04-1.23028121E+00 8.08681094E-01 2.33615629E-02-3.55171815E-05    3
+ 2.80152437E-08-8.50072974E-12 2.64289807E+04 1.39397051E+01                   4
+C2H3              L 2/92C   2H   3          G   200.000  3500.000  1000.000    1
+ 3.01672400E+00 1.03302292E-02-4.68082349E-06 1.01763288E-09-8.62607041E-14    2
+ 3.46128739E+04 7.78732378E+00 3.21246645E+00 1.51479162E-03 2.59209412E-05    3
+-3.57657847E-08 1.47150873E-11 3.48598468E+04 8.51054025E+00                   4
+C2H4              L 1/91C   2H   4          G   200.000  3500.000  1000.000    1
+ 2.03611116E+00 1.46454151E-02-6.71077915E-06 1.47222923E-09-1.25706061E-13    2
+ 4.93988614E+03 1.03053693E+01 3.95920148E+00-7.57052247E-03 5.70990292E-05    3
+-6.91588753E-08 2.69884373E-11 5.08977593E+03 4.09733096E+00                   4
+C2H5              L12/92C   2H   5          G   200.000  3500.000  1000.000    1
+ 1.95465642E+00 1.73972722E-02-7.98206668E-06 1.75217689E-09-1.49641576E-13    2
+ 1.28575200E+04 1.34624343E+01 4.30646568E+00-4.18658892E-03 4.97142807E-05    3
+-5.99126606E-08 2.30509004E-11 1.28416265E+04 4.70720924E+00                   4
+C2H6              L 8/88C   2H   6          G   200.000  3500.000  1000.000    1
+ 1.07188150E+00 2.16852677E-02-1.00256067E-05 2.21412001E-09-1.90002890E-13    2
+-1.14263932E+04 1.51156107E+01 4.29142492E+00-5.50154270E-03 5.99438288E-05    3
+-7.08466285E-08 2.68685771E-11-1.15222055E+04 2.66682316E+00                   4
+CH2CO             L 5/90C   2H   2O   1     G   200.000  3500.000  1000.000    1
+ 4.51129732E+00 9.00359745E-03-4.16939635E-06 9.23345882E-10-7.94838201E-14    2
+-7.55105311E+03 6.32247205E-01 2.13583630E+00 1.81188721E-02-1.73947474E-05    3
+ 9.34397568E-09-2.01457615E-12-7.04291804E+03 1.22156480E+01                   4
+HCCO              SRIC91H   1C   2O   1     G   250.00   4000.00   1000.000    1
+ 0.56282058E+01 0.40853401E-02-0.15934547E-05 0.28626052E-09-0.19407832E-13    2
+ 0.19327215E+05-0.39302595E+01 0.22517214E+01 0.17655021E-01-0.23729101E-04    3
+ 0.17275759E-07-0.50664811E-11 0.20059449E+05 0.12490417E+02                   4
+HCCOH              SRI91C   2O   1H   2     G   250.000  5000.000  1000.000    1
+ 0.59238291E+01 0.67923600E-02-0.25658564E-05 0.44987841E-09-0.29940101E-13    2
+ 0.72646260E+04-0.76017742E+01 0.12423733E+01 0.31072201E-01-0.50866864E-04    3
+ 0.43137131E-07-0.14014594E-10 0.80316143E+04 0.13874319E+02                   4
+H2CN               41687H   2C   1N   1     G   250.00   4000.000  1000.000    1
+ 0.52097030E+01 0.29692911E-02-0.28555891E-06-0.16355500E-09 0.30432589E-13    2
+ 0.27677109E+05-0.44444780E+01 0.28516610E+01 0.56952331E-02 0.10711400E-05    3
+-0.16226120E-08-0.23511081E-12 0.28637820E+05 0.89927511E+01                   4
+HCN               GRI/98H   1C   1N   1     G   200.000  6000.000  1000.000    1
+ 0.38022392E+01 0.31464228E-02-0.10632185E-05 0.16619757E-09-0.97997570E-14    2
+ 0.14407292E+05 0.15754601E+01 0.22589886E+01 0.10051170E-01-0.13351763E-04    3
+ 0.10092349E-07-0.30089028E-11 0.14712633E+05 0.89164419E+01                   4
+HNO               And93 H   1N   1O   1     G   200.000  6000.000  1000.000    1
+ 0.29792509E+01 0.34944059E-02-0.78549778E-06 0.57479594E-10-0.19335916E-15    2
+ 0.11750582E+05 0.86063728E+01 0.45334916E+01-0.56696171E-02 0.18473207E-04    3
+-0.17137094E-07 0.55454573E-11 0.11548297E+05 0.17498417E+01                   4
+N                 L 6/88N   1               G   200.000  6000.000  1000.000    1
+ 0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226245E-10-0.20360982E-14    2
+ 0.56133773E+05 0.46496096E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00    3
+ 0.00000000E+00 0.00000000E+00 0.56104637E+05 0.41939087E+01                   4
+NNH               T07/93N   2H   1          G   200.000  6000.000  1000.000    1
+ 0.37667544E+01 0.28915082E-02-0.10416620E-05 0.16842594E-09-0.10091896E-13    2
+ 0.28650697E+05 0.44705067E+01 0.43446927E+01-0.48497072E-02 0.20059459E-04    3
+-0.21726464E-07 0.79469539E-11 0.28791973E+05 0.29779410E+01                   4
+N2O               L 7/88N   2O   1          G   200.000  6000.000  1000.000    1
+ 0.48230729E+01 0.26270251E-02-0.95850874E-06 0.16000712E-09-0.97752303E-14    2
+ 0.80734048E+04-0.22017207E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04    3
+ 0.96819806E-08-0.29307182E-11 0.87417744E+04 0.10757992E+02                   4
+NH                And94 N   1H   1          G   200.000  6000.000  1000.000    1
+ 0.27836928E+01 0.13298430E-02-0.42478047E-06 0.78348501E-10-0.55044470E-14    2
+ 0.42120848E+05 0.57407799E+01 0.34929085E+01 0.31179198E-03-0.14890484E-05    3
+ 0.24816442E-08-0.10356967E-11 0.41880629E+05 0.18483278E+01                   4
+NH2               And89 N   1H   2          G   200.000  6000.000  1000.000    1
+ 0.28347421E+01 0.32073082E-02-0.93390804E-06 0.13702953E-09-0.79206144E-14    2
+ 0.22171957E+05 0.65204163E+01 0.42040029E+01-0.21061385E-02 0.71068348E-05    3
+-0.56115197E-08 0.16440717E-11 0.21885910E+05-0.14184248E+00                   4
+NH3               J 6/77N   1H   3          G   200.000  6000.000  1000.000    1
+ 0.26344521E+01 0.56662560E-02-0.17278676E-05 0.23867161E-09-0.12578786E-13    2
+-0.65446958E+04 0.65662928E+01 0.42860274E+01-0.46605230E-02 0.21718513E-04    3
+-0.22808887E-07 0.82638046E-11-0.67417285E+04-0.62537277E+00                   4
+NO                RUS 78N   1O   1          G   200.000  6000.000  1000.000    1
+ 0.32606056E+01 0.11911043E-02-0.42917048E-06 0.69457669E-10-0.40336099E-14    2
+ 0.99209746E+04 0.63693027E+01 0.42184763E+01-0.46389760E-02 0.11041022E-04    3
+-0.93361354E-08 0.28035770E-11 0.98446230E+04 0.22808464E+01                   4
+NO2               L 7/88N   1O   2          G   200.000  6000.000  1000.000    1
+ 0.48847542E+01 0.21723956E-02-0.82806906E-06 0.15747510E-09-0.10510895E-13    2
+ 0.23164983E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04    3
+-0.20475426E-07 0.78350564E-11 0.28966179E+04 0.63119917E+01                   4
+HCNO              BDEA94H   1N   1C   1O   1G   250.000  5000.000  1382.000    1
+ 6.59860456E+00 3.02778626E-03-1.07704346E-06 1.71666528E-10-1.01439391E-14    2
+ 1.79661339E+04-1.03306599E+01 2.64727989E+00 1.27505342E-02-1.04794236E-05    3
+ 4.41432836E-09-7.57521466E-13 1.92990252E+04 1.07332972E+01                   4
+HOCN              BDEA94H   1N   1C   1O   1G   250.000  5000.000  1368.000    1
+ 5.89784885E+00 3.16789393E-03-1.11801064E-06 1.77243144E-10-1.04339177E-14    2
+-3.70653331E+03-6.18167825E+00 3.78604952E+00 6.88667922E-03-3.21487864E-06    3
+ 5.17195767E-10 1.19360788E-14-2.82698400E+03 5.63292162E+00                   4
+HNCO              BDEA94H   1N   1C   1O   1G   250.000  5000.000  1478.000    1
+ 6.22395134E+00 3.17864004E-03-1.09378755E-06 1.70735163E-10-9.95021955E-15    2
+-1.66599344E+04-8.38224741E+00 3.63096317E+00 7.30282357E-03-2.28050003E-06    3
+-6.61271298E-10 3.62235752E-13-1.55873636E+04 6.19457727E+00                   4
+NCO               EA 93 N   1C   1O   1     G   200.000  6000.000  1000.000    1
+ 0.51521845E+01 0.23051761E-02-0.88033153E-06 0.14789098E-09-0.90977996E-14    2
+ 0.14004123E+05-0.25442660E+01 0.28269308E+01 0.88051688E-02-0.83866134E-05    3
+ 0.48016964E-08-0.13313595E-11 0.14682477E+05 0.95504646E+01                   4
+CN                HBH92 C   1N   1          G   200.000  6000.000  1000.000    1
+ 0.37459805E+01 0.43450775E-04 0.29705984E-06-0.68651806E-10 0.44134173E-14    2
+ 0.51536188E+05 0.27867601E+01 0.36129351E+01-0.95551327E-03 0.21442977E-05    3
+-0.31516323E-09-0.46430356E-12 0.51708340E+05 0.39804995E+01                   4
+HCNN              SRI/94C   1N   2H   1     G   250.000  5000.000  1000.000    1
+ 0.58946362E+01 0.39895959E-02-0.15982380E-05 0.29249395E-09-0.20094686E-13    2
+ 0.53452941E+05-0.51030502E+01 0.25243194E+01 0.15960619E-01-0.18816354E-04    3
+ 0.12125540E-07-0.32357378E-11 0.54261984E+05 0.11675870E+02                   4
+N2                121286N   2               G   250.000  5000.000  1000.000    1
+ 0.02926640E+02 0.14879768E-02-0.05684760E-05 0.10097038E-09-0.06753351E-13    2
+-0.09227977E+04 0.05980528E+02 0.03298677E+02 0.14082404E-02-0.03963222E-04    3
+ 0.05641515E-07-0.02444854E-10-0.10208999E+04 0.03950372E+02                   4
+AR                120186AR  1               G   250.000  5000.000  1000.000    1
+ 0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00    2
+-0.07453750E+04 0.04366000E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00    3
+ 0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366000E+02                   4
+C3H8              L 4/85C   3H   8          G   250.000  5000.000  1000.000    1
+ 0.75341368E+01 0.18872239E-01-0.62718491E-05 0.91475649E-09-0.47838069E-13    2
+-0.16467516E+05-0.17892349E+02 0.93355381E+00 0.26424579E-01 0.61059727E-05    3
+-0.21977499E-07 0.95149253E-11-0.13958520E+05 0.19201691E+02                   4
+C3H7              L 9/84C   3H   7          G   250.000  5000.000  1000.000    1
+ 0.77026987E+01 0.16044203E-01-0.52833220E-05 0.76298590E-09-0.39392284E-13    2
+ 0.82984336E+04-0.15480180E+02 0.10515518E+01 0.25991980E-01 0.23800540E-05    3
+-0.19609569E-07 0.93732470E-11 0.10631863E+05 0.21122559E+02                   4
+CH3CHO            L 8/88C   2H   4O   1     G   200.000  6000.000  1000.000    1
+ 0.54041108E+01 0.11723059E-01-0.42263137E-05 0.68372451E-09-0.40984863E-13    2
+-0.22593122E+05-0.34807917E+01 0.47294595E+01-0.31932858E-02 0.47534921E-04    3
+-0.57458611E-07 0.21931112E-10-0.21572878E+05 0.41030159E+01                   4
+CH2CHO            SAND86O   1H   3C   2     G   250.000  5000.000  1000.000    1
+ 0.05975670E+02 0.08130591E-01-0.02743624E-04 0.04070304E-08-0.02176017E-12    2
+ 0.04903218E+04-0.05045251E+02 0.03409062E+02 0.10738574E-01 0.01891492E-04    3
+-0.07158583E-07 0.02867385E-10 0.15214766E+04 0.09558290E+02                   4
+END
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties
new file mode 100644
index 00000000000..72efcb29c16
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "chemkin";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+".*"
+{
+    transport
+    {
+        As 1.512e-06;
+        Ts 120.;
+    }
+}
+
+"H2"
+{
+    transport
+    {
+        As 6.362e-07;
+        Ts 72.;
+    }
+}
+
+"CO2"
+{
+    transport
+    {
+        As 1.572e-06;
+        Ts 240.;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties
new file mode 100644
index 00000000000..4ba701b3175
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties
@@ -0,0 +1,146 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      chemistryProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+chemistryType
+{
+    chemistrySolver   ode;
+    chemistryThermo   psi;
+    TDAC              on;
+}
+
+importantSpecies
+{
+    CH4;
+    H2O;
+    O2;
+    CO2;
+}
+
+chemistry           on;
+
+initialChemicalTimeStep 1e-07;
+
+odeCoeffs
+{
+    solver          Rosenbrock34;  // Rosenbrock34, seulex or rodas23
+    absTol          1e-12;
+    relTol          1e-7;
+}
+
+reduction
+{
+    // Activate reduction
+    active  on;
+
+    // Switch logging of the reduction statistics and performance
+    log         on;
+
+    // Tolerance depends on the reduction method, see details for each method
+    tolerance   1e-4;
+
+    // Available methods: DRG, DAC, DRGEP, PFA, EFA
+    method DAC;
+
+    // Search initiating set (SIS) of species, needed for most methods
+    initialSet
+    {
+        CO;
+        CH4;
+        HO2;
+    }
+
+    // For DAC, option to automatically change the SIS switch from HO2 to H2O
+    // and CO to CO2, + disable fuel
+    automaticSIS    off;
+
+    // When automaticSIS, the method needs to know the fuel
+    fuelSpecies
+    {
+        CH4 1;
+    }
+}
+
+tabulation
+{
+    // Activate tabulation
+    active      on;
+
+    // Switch logging of the tabulation statistics and performance
+    log         on;
+
+    printProportion    off;
+
+    printNumRetrieve   off;
+
+    // Tolerance used for retrieve and grow
+    tolerance   1e-4;
+
+    // ISAT is the only method currently available
+    method    ISAT;
+
+    // Scale factors used in the definition of the ellipsoid of accuracy
+    scaleFactor
+    {
+        otherSpecies 1;
+        Temperature  1000;
+        Pressure     1e15;
+        deltaT       0.5;
+    }
+
+    // Maximum number of leafs stored in the binary tree
+    maxNLeafs  2000;
+
+    // Maximum life time of the leafs (in time steps) used in unsteady
+    // simulations to force renewal of the stored chemPoints and keep the tree
+    // small
+    chPMaxLifeTime 100;
+
+    // Maximum number of growth allowed on a chemPoint to avoid distorted
+    // chemPoints
+    maxGrowth  10;
+
+    // Number of time steps between analysis of the tree to remove old
+    // chemPoints or try to balance it
+    checkEntireTreeInterval  5;
+
+    // Parameters used to decide whether to balance or not if the tree's depth
+    // is larger than maxDepthFactor*log2(nLeafs) then balance the tree
+    maxDepthFactor   2;
+
+    // Try to balance the tree only if the size of the tree is greater
+    minBalanceThreshold 30;
+
+
+    // Activate the use of a MRU (most recently used) list
+    MRURetrieve false;
+
+    // Maximum size of the MRU list
+    maxMRUSize 0;
+
+    // Allow to grow points
+    growPoints  true;
+
+    // When mechanism reduction is used, new dimensions might be added
+    // maxNumNewDim set the maximum number of new dimensions added during a
+    // growth
+    maxNumNewDim 10;
+
+    variableTimeStep true;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test
new file mode 100644
index 00000000000..7a9f48c52fb
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test
@@ -0,0 +1,143 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      chemistryProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+chemistryType
+{
+    chemistrySolver   ode;
+    chemistryThermo   psi;
+    TDAC              on;
+}
+
+chemistry           on;
+
+importantSpecies
+{
+    CH4;
+    H2O;
+    O2;
+    CO2;
+}
+
+initialChemicalTimeStep 1e-07;
+
+odeCoeffs
+{
+    solver          Rosenbrock34;  // Rosenbrock34, seulex or rodas23
+    absTol          1e-12;
+    relTol          1e-7;
+}
+
+reduction
+{
+    // Activate reduction
+    active  on;
+
+    // Switch logging of the reduction statistics and performance
+    log         on;
+
+    // Tolerance depends on the reduction method, see details for each method
+    tolerance   1e-4;
+
+    // Available methods: DRG, DAC, DRGEP, PFA, EFA
+    method DAC;
+
+    // Search initiating set (SIS) of species, needed for most methods
+    initialSet
+    {
+        CO;
+        CH4;
+        HO2;
+    }
+
+    // For DAC, option to automatically change the SIS switch from HO2 to H2O
+    // and CO to CO2, + disable fuel
+    automaticSIS    off;
+
+    // When automaticSIS, the method needs to know the fuel
+    fuelSpecies
+    {
+        CH4 1;
+    }
+}
+
+tabulation
+{
+    // Activate tabulation
+    active      on;
+
+    // Switch logging of the tabulation statistics and performance
+    log         on;
+
+    printProportion    off;
+
+    printNumRetrieve   off;
+
+    // Tolerance used for retrieve and grow
+    tolerance   0.003;
+
+    // ISAT is the only method currently available
+    method    ISAT;
+
+    // Scale factors used in the definition of the ellipsoid of accuracy
+    scaleFactor
+    {
+        otherSpecies 1;
+        Temperature  10000;
+        Pressure     1e15;
+        deltaT       1;
+    }
+
+    // Maximum number of leafs stored in the binary tree
+    maxNLeafs  5000;
+
+    // Maximum life time of the leafs (in time steps) used in unsteady
+    // simulations to force renewal of the stored chemPoints and keep the tree
+    // small
+    chPMaxLifeTime 1000;
+
+    // Maximum number of growth allowed on a chemPoint to avoid distorted
+    // chemPoints
+    maxGrowth  100;
+
+    // Number of time steps between analysis of the tree to remove old
+    // chemPoints or try to balance it
+    checkEntireTreeInterval  500;
+
+    // Parameters used to decide whether to balance or not if the tree's depth
+    // is larger than maxDepthFactor*log2(nLeafs) then balance the tree
+    maxDepthFactor   2;
+
+    // Try to balance the tree only if the size of the tree is greater
+    minBalanceThreshold 30;
+
+    // Activate the use of a MRU (most recently used) list
+    MRURetrieve false;
+
+    // Maximum size of the MRU list
+    maxMRUSize 0;
+
+    // Allow to grow points
+    growPoints  true;
+
+    // When mechanism reduction is used, new dimensions might be added
+    // maxNumNewDim set the maximum number of new dimensions added during a
+    // growth
+    maxNumNewDim 10;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties
new file mode 100644
index 00000000000..10c2685eae1
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties
@@ -0,0 +1,27 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      combustionProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+combustionModel  EDC<psiChemistryCombustion>;
+
+active  true;
+
+EDCCoeffs
+{
+    version v2005;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g
new file mode 100644
index 00000000000..a0d7102656f
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 0 -9.81);
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/reactionsGRI b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/reactionsGRI
new file mode 100644
index 00000000000..8bd6be3583c
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/reactionsGRI
@@ -0,0 +1,3610 @@
+elements
+5
+(
+O
+H
+C
+N
+Ar
+)
+;
+
+species
+36
+(
+H2
+H
+O
+O2
+OH
+H2O
+HO2
+H2O2
+C
+CH
+CH2
+CH2(S)
+CH3
+CH4
+CO
+CO2
+HCO
+CH2O
+CH2OH
+CH3O
+CH3OH
+C2H
+C2H2
+C2H3
+C2H4
+C2H5
+C2H6
+HCCO
+CH2CO
+HCCOH
+N2
+AR
+C3H7
+C3H8
+CH2CHO
+CH3CHO
+)
+;
+
+reactions
+{
+    un-named-reaction-0
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "2O = O2";
+        A               1.2e+11;
+        beta            -1;
+        Ta              0;
+        coeffs
+36
+(
+(H2 2.4)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 15.4)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.75)
+(CO2 3.6)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.83)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-1
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "O + H = OH";
+        A               5e+11;
+        beta            -1;
+        Ta              0;
+        coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-2
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + H2 = H + OH";
+        A               38.7;
+        beta            2.7;
+        Ta              3149.977155;
+    }
+    un-named-reaction-3
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HO2 = OH + O2";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-4
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + H2O2 = OH + HO2";
+        A               9630;
+        beta            2;
+        Ta              2012.764955;
+    }
+    un-named-reaction-5
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH = H + CO";
+        A               5.7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-6
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2 = H + HCO";
+        A               8e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-7
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2(S) = H2 + CO";
+        A               1.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-8
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2(S) = H + HCO";
+        A               1.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-9
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3 = H + CH2O";
+        A               5.06e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-10
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH4 = OH + CH3";
+        A               1020000;
+        beta            1.5;
+        Ta              4327.444654;
+    }
+    un-named-reaction-11
+    {
+        type            reversibleArrheniusLindemannFallOffReaction;
+        reaction        "O + CO = CO2";
+        k0
+        {
+            A               602000000;
+            beta            0;
+            Ta              1509.573717;
+        }
+        kInf
+        {
+            A               18000000;
+            beta            0;
+            Ta              1200.111105;
+        }
+        F
+        {
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 6)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 3.5)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.5)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-12
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCO = OH + CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-13
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCO = H + CO2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-14
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2O = OH + HCO";
+        A               3.9e+10;
+        beta            0;
+        Ta              1781.296985;
+    }
+    un-named-reaction-15
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2OH = OH + CH2O";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-16
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3O = OH + CH2O";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-17
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3OH = OH + CH2OH";
+        A               388;
+        beta            2.5;
+        Ta              1559.89284;
+    }
+    un-named-reaction-18
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3OH = OH + CH3O";
+        A               130;
+        beta            2.5;
+        Ta              2515.956194;
+    }
+    un-named-reaction-19
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H = CH + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-20
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = H + HCCO";
+        A               13500;
+        beta            2;
+        Ta              956.0633538;
+    }
+    un-named-reaction-21
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = OH + C2H";
+        A               4.6e+16;
+        beta            -1.41;
+        Ta              14567.38636;
+    }
+    un-named-reaction-22
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = CO + CH2";
+        A               6940;
+        beta            2;
+        Ta              956.0633538;
+    }
+    un-named-reaction-23
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H3 = H + CH2CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-24
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H4 = CH3 + HCO";
+        A               12500;
+        beta            1.83;
+        Ta              110.7020725;
+    }
+    un-named-reaction-25
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H5 = CH3 + CH2O";
+        A               2.24e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-26
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H6 = OH + C2H5";
+        A               89800;
+        beta            1.92;
+        Ta              2863.158149;
+    }
+    un-named-reaction-27
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCCO = H + 2CO";
+        A               1e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-28
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2CO = OH + HCCO";
+        A               1e+10;
+        beta            0;
+        Ta              4025.529911;
+    }
+    un-named-reaction-29
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2CO = CH2 + CO2";
+        A               1750000000;
+        beta            0;
+        Ta              679.3081724;
+    }
+    un-named-reaction-30
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O2 + CO = O + CO2";
+        A               2500000000;
+        beta            0;
+        Ta              24052.54122;
+    }
+    un-named-reaction-31
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O2 + CH2O = HO2 + HCO";
+        A               1e+11;
+        beta            0;
+        Ta              20127.64955;
+    }
+    un-named-reaction-32
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "H + O2 = HO2";
+        A               2.8e+12;
+        beta            -0.86;
+        Ta              0;
+        coeffs
+36
+(
+(H2 1)
+(H 1)
+(O 1)
+(O2 0)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 1)
+(CO 0.75)
+(CO2 1.5)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 1.5)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 0)
+(AR 0)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-33
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + 2O2 = HO2 + O2";
+        A               2.08e+13;
+        beta            -1.24;
+        Ta              0;
+    }
+    un-named-reaction-34
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + H2O = HO2 + H2O";
+        A               1.126e+13;
+        beta            -0.76;
+        Ta              0;
+    }
+    un-named-reaction-35
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + N2 = HO2 + N2";
+        A               2.6e+13;
+        beta            -1.24;
+        Ta              0;
+    }
+    un-named-reaction-36
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + AR = HO2 + AR";
+        A               7e+11;
+        beta            -0.8;
+        Ta              0;
+    }
+    un-named-reaction-37
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 = O + OH";
+        A               2.65e+13;
+        beta            -0.6707;
+        Ta              8574.881901;
+    }
+    un-named-reaction-38
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "2H = H2";
+        A               1e+12;
+        beta            -1;
+        Ta              0;
+        coeffs
+36
+(
+(H2 0)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1)
+(CO2 0)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.63)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-39
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + H2 = 2H2";
+        A               9e+10;
+        beta            -0.6;
+        Ta              0;
+    }
+    un-named-reaction-40
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + H2O = H2 + H2O";
+        A               6e+13;
+        beta            -1.25;
+        Ta              0;
+    }
+    un-named-reaction-41
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + CO2 = H2 + CO2";
+        A               5.5e+14;
+        beta            -2;
+        Ta              0;
+    }
+    un-named-reaction-42
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "H + OH = H2O";
+        A               2.2e+16;
+        beta            -2;
+        Ta              0;
+        coeffs
+36
+(
+(H2 0.73)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 3.65)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1)
+(CO2 1)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.38)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-43
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = O + H2O";
+        A               3970000000;
+        beta            0;
+        Ta              337.6413213;
+    }
+    un-named-reaction-44
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = O2 + H2";
+        A               4.48e+10;
+        beta            0;
+        Ta              537.4082431;
+    }
+    un-named-reaction-45
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = 2OH";
+        A               8.4e+10;
+        beta            0;
+        Ta              319.5264367;
+    }
+    un-named-reaction-46
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + H2O2 = HO2 + H2";
+        A               12100;
+        beta            2;
+        Ta              2616.594442;
+    }
+    un-named-reaction-47
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + H2O2 = OH + H2O";
+        A               1e+10;
+        beta            0;
+        Ta              1811.48846;
+    }
+    un-named-reaction-48
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH = C + H2";
+        A               1.65e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-49
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2 = CH3";
+        k0
+        {
+            A               1.04e+20;
+            beta            -2.76;
+            Ta              805.1059821;
+        }
+        kInf
+        {
+            A               6e+11;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.562;
+            Tsss            91;
+            Ts              5836;
+            Tss             8552;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-50
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2(S) = CH + H2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-51
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH3 = CH4";
+        k0
+        {
+            A               2.62e+27;
+            beta            -4.76;
+            Ta              1227.786623;
+        }
+        kInf
+        {
+            A               1.39e+13;
+            beta            -0.534;
+            Ta              269.710504;
+        }
+        F
+        {
+            alpha           0.783;
+            Tsss            74;
+            Ts              2941;
+            Tss             6964;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 3)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-52
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH4 = CH3 + H2";
+        A               660000;
+        beta            1.62;
+        Ta              5454.593029;
+    }
+    un-named-reaction-53
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + HCO = CH2O";
+        k0
+        {
+            A               2.47e+18;
+            beta            -2.57;
+            Ta              213.8562765;
+        }
+        kInf
+        {
+            A               1090000000;
+            beta            0.48;
+            Ta              -130.8297221;
+        }
+        F
+        {
+            alpha           0.7824;
+            Tsss            271;
+            Ts              2755;
+            Tss             6570;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-54
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCO = H2 + CO";
+        A               7.34e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-55
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2O = CH2OH";
+        k0
+        {
+            A               1.27e+26;
+            beta            -4.82;
+            Ta              3285.83879;
+        }
+        kInf
+        {
+            A               540000000;
+            beta            0.454;
+            Ta              1811.48846;
+        }
+        F
+        {
+            alpha           0.7187;
+            Tsss            103;
+            Ts              1291;
+            Tss             4160;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-56
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2O = CH3O";
+        k0
+        {
+            A               2.2e+24;
+            beta            -4.8;
+            Ta              2797.743288;
+        }
+        kInf
+        {
+            A               540000000;
+            beta            0.454;
+            Ta              1308.297221;
+        }
+        F
+        {
+            alpha           0.758;
+            Tsss            94;
+            Ts              1555;
+            Tss             4200;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-57
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2O = HCO + H2";
+        A               57400;
+        beta            1.9;
+        Ta              1379.750377;
+    }
+    un-named-reaction-58
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2OH = CH3OH";
+        k0
+        {
+            A               4.36e+25;
+            beta            -4.65;
+            Ta              2556.211493;
+        }
+        kInf
+        {
+            A               1055000000;
+            beta            0.5;
+            Ta              43.27444654;
+        }
+        F
+        {
+            alpha           0.6;
+            Tsss            100;
+            Ts              90000;
+            Tss             10000;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-59
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = H2 + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-60
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = OH + CH3";
+        A               165000000;
+        beta            0.65;
+        Ta              -142.9063118;
+    }
+    un-named-reaction-61
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = CH2(S) + H2O";
+        A               3.28e+10;
+        beta            -0.09;
+        Ta              306.9466557;
+    }
+    un-named-reaction-62
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH3O = CH3OH";
+        k0
+        {
+            A               4.66e+35;
+            beta            -7.44;
+            Ta              7084.932643;
+        }
+        kInf
+        {
+            A               2430000000;
+            beta            0.515;
+            Ta              25.15956194;
+        }
+        F
+        {
+            alpha           0.7;
+            Tsss            100;
+            Ts              90000;
+            Tss             10000;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-63
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = H + CH2OH";
+        A               41500;
+        beta            1.63;
+        Ta              968.1399435;
+    }
+    un-named-reaction-64
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = H2 + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-65
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = OH + CH3";
+        A               1500000000;
+        beta            0.5;
+        Ta              -55.35103627;
+    }
+    un-named-reaction-66
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = CH2(S) + H2O";
+        A               2.62e+11;
+        beta            -0.23;
+        Ta              538.4146256;
+    }
+    un-named-reaction-67
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3OH = CH2OH + H2";
+        A               17000;
+        beta            2.1;
+        Ta              2450.541333;
+    }
+    un-named-reaction-68
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3OH = CH3O + H2";
+        A               4200;
+        beta            2.1;
+        Ta              2450.541333;
+    }
+    un-named-reaction-69
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H = C2H2";
+        k0
+        {
+            A               3.75e+27;
+            beta            -4.8;
+            Ta              956.0633538;
+        }
+        kInf
+        {
+            A               1e+14;
+            beta            -1;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.6464;
+            Tsss            132;
+            Ts              1315;
+            Tss             5566;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-70
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H2 = C2H3";
+        k0
+        {
+            A               3.8e+34;
+            beta            -7.27;
+            Ta              3633.040744;
+        }
+        kInf
+        {
+            A               5600000000;
+            beta            0;
+            Ta              1207.658973;
+        }
+        F
+        {
+            alpha           0.7507;
+            Tsss            98.5;
+            Ts              1302;
+            Tss             4167;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-71
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H3 = C2H4";
+        k0
+        {
+            A               1.4e+24;
+            beta            -3.86;
+            Ta              1670.594913;
+        }
+        kInf
+        {
+            A               6080000000;
+            beta            0.27;
+            Ta              140.8935469;
+        }
+        F
+        {
+            alpha           0.782;
+            Tsss            207.5;
+            Ts              2663;
+            Tss             6095;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-72
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H3 = H2 + C2H2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-73
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H4 = C2H5";
+        k0
+        {
+            A               6e+35;
+            beta            -7.62;
+            Ta              3507.242935;
+        }
+        kInf
+        {
+            A               540000000;
+            beta            0.454;
+            Ta              915.8080547;
+        }
+        F
+        {
+            alpha           0.9753;
+            Tsss            210;
+            Ts              984;
+            Tss             4374;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-74
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H4 = C2H3 + H2";
+        A               1325;
+        beta            2.53;
+        Ta              6159.060763;
+    }
+    un-named-reaction-75
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H5 = C2H6";
+        k0
+        {
+            A               1.99e+35;
+            beta            -7.08;
+            Ta              3363.833432;
+        }
+        kInf
+        {
+            A               5.21e+14;
+            beta            -0.99;
+            Ta              795.0421574;
+        }
+        F
+        {
+            alpha           0.8422;
+            Tsss            125;
+            Ts              2219;
+            Tss             6882;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-76
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H5 = H2 + C2H4";
+        A               2000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-77
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H6 = C2H5 + H2";
+        A               115000;
+        beta            1.9;
+        Ta              3789.030028;
+    }
+    un-named-reaction-78
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCCO = CH2(S) + CO";
+        A               1e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-79
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CO = HCCO + H2";
+        A               5e+10;
+        beta            0;
+        Ta              4025.529911;
+    }
+    un-named-reaction-80
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CO = CH3 + CO";
+        A               1.13e+10;
+        beta            0;
+        Ta              1724.939567;
+    }
+    un-named-reaction-81
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCCOH = H + CH2CO";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-82
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H2 + CO = CH2O";
+        k0
+        {
+            A               5.07e+21;
+            beta            -3.42;
+            Ta              42444.181;
+        }
+        kInf
+        {
+            A               43000;
+            beta            1.5;
+            Ta              40054.02261;
+        }
+        F
+        {
+            alpha           0.932;
+            Tsss            197;
+            Ts              1540;
+            Tss             10300;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-83
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2 = H + H2O";
+        A               216000;
+        beta            1.51;
+        Ta              1725.945949;
+    }
+    un-named-reaction-84
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "2OH = H2O2";
+        k0
+        {
+            A               2.3e+12;
+            beta            -0.9;
+            Ta              -855.425106;
+        }
+        kInf
+        {
+            A               7.4e+10;
+            beta            -0.37;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.7346;
+            Tsss            94;
+            Ts              1756;
+            Tss             5182;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-85
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2OH = O + H2O";
+        A               35.7;
+        beta            2.4;
+        Ta              -1061.733514;
+    }
+    un-named-reaction-86
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HO2 = O2 + H2O";
+        A               1.45e+10;
+        beta            0;
+        Ta              -251.5956194;
+    }
+    un-named-reaction-87
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2O2 = HO2 + H2O";
+        A               2000000000;
+        beta            0;
+        Ta              214.862659;
+    }
+    un-named-reaction-88
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2O2 = HO2 + H2O";
+        A               1.7e+15;
+        beta            0;
+        Ta              14798.85433;
+    }
+    un-named-reaction-89
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C = H + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-90
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH = H + HCO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-91
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2 = H + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-92
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2 = CH + H2O";
+        A               11300;
+        beta            2;
+        Ta              1509.573717;
+    }
+    un-named-reaction-93
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2(S) = H + CH2O";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-94
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "OH + CH3 = CH3OH";
+        k0
+        {
+            A               4e+30;
+            beta            -5.92;
+            Ta              1580.02049;
+        }
+        kInf
+        {
+            A               2.79e+15;
+            beta            -1.43;
+            Ta              669.2443477;
+        }
+        F
+        {
+            alpha           0.412;
+            Tsss            195;
+            Ts              5900;
+            Tss             6394;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-95
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3 = CH2 + H2O";
+        A               56000;
+        beta            1.6;
+        Ta              2727.296514;
+    }
+    un-named-reaction-96
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3 = CH2(S) + H2O";
+        A               6.44e+14;
+        beta            -1.34;
+        Ta              713.0219854;
+    }
+    un-named-reaction-97
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH4 = CH3 + H2O";
+        A               100000;
+        beta            1.6;
+        Ta              1569.956665;
+    }
+    un-named-reaction-98
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CO = H + CO2";
+        A               47600;
+        beta            1.228;
+        Ta              35.22338672;
+    }
+    un-named-reaction-99
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HCO = H2O + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-100
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2O = HCO + H2O";
+        A               3430000;
+        beta            1.18;
+        Ta              -224.9264838;
+    }
+    un-named-reaction-101
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2OH = H2O + CH2O";
+        A               5000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-102
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3O = H2O + CH2O";
+        A               5000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-103
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3OH = CH2OH + H2O";
+        A               1440;
+        beta            2;
+        Ta              -422.6806406;
+    }
+    un-named-reaction-104
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3OH = CH3O + H2O";
+        A               6300;
+        beta            2;
+        Ta              754.7868583;
+    }
+    un-named-reaction-105
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H = H + HCCO";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-106
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = H + CH2CO";
+        A               2.18e-07;
+        beta            4.5;
+        Ta              -503.1912388;
+    }
+    un-named-reaction-107
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = H + HCCOH";
+        A               504;
+        beta            2.3;
+        Ta              6793.081724;
+    }
+    un-named-reaction-108
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = C2H + H2O";
+        A               33700;
+        beta            2;
+        Ta              7044.677344;
+    }
+    un-named-reaction-109
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = CH3 + CO";
+        A               4.83e-07;
+        beta            4;
+        Ta              -1006.382478;
+    }
+    un-named-reaction-110
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H3 = H2O + C2H2";
+        A               5000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-111
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H4 = C2H3 + H2O";
+        A               3600;
+        beta            2;
+        Ta              1257.978097;
+    }
+    un-named-reaction-112
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H6 = C2H5 + H2O";
+        A               3540;
+        beta            2.12;
+        Ta              437.7763778;
+    }
+    un-named-reaction-113
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CO = HCCO + H2O";
+        A               7500000000;
+        beta            0;
+        Ta              1006.382478;
+    }
+    un-named-reaction-114
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HO2 = O2 + H2O2";
+        A               130000000;
+        beta            0;
+        Ta              -820.2017193;
+    }
+    un-named-reaction-115
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HO2 = O2 + H2O2";
+        A               4.2e+11;
+        beta            0;
+        Ta              6038.294866;
+    }
+    un-named-reaction-116
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH2 = OH + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-117
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH3 = O2 + CH4";
+        A               1000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-118
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH3 = OH + CH3O";
+        A               3.78e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-119
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CO = OH + CO2";
+        A               1.5e+11;
+        beta            0;
+        Ta              11875.31324;
+    }
+    un-named-reaction-120
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH2O = HCO + H2O2";
+        A               5600;
+        beta            2;
+        Ta              6038.294866;
+    }
+    un-named-reaction-121
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + O2 = O + CO";
+        A               5.8e+10;
+        beta            0;
+        Ta              289.8381536;
+    }
+    un-named-reaction-122
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + CH2 = H + C2H";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-123
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + CH3 = H + C2H2";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-124
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + O2 = O + HCO";
+        A               6.71e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-125
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + H2 = H + CH2";
+        A               1.08e+11;
+        beta            0;
+        Ta              1564.924753;
+    }
+    un-named-reaction-126
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + H2O = H + CH2O";
+        A               5710000000;
+        beta            0;
+        Ta              -379.9093853;
+    }
+    un-named-reaction-127
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH2 = H + C2H2";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-128
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH3 = H + C2H3";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-129
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH4 = H + C2H4";
+        A               6e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-130
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH + CO = HCCO";
+        k0
+        {
+            A               2.69e+22;
+            beta            -3.74;
+            Ta              974.1782384;
+        }
+        kInf
+        {
+            A               5e+10;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.5757;
+            Tsss            237;
+            Ts              1652;
+            Tss             5069;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-131
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CO2 = HCO + CO";
+        A               1.9e+11;
+        beta            0;
+        Ta              7946.396044;
+    }
+    un-named-reaction-132
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH2O = H + CH2CO";
+        A               9.46e+10;
+        beta            0;
+        Ta              -259.143488;
+    }
+    un-named-reaction-133
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + HCCO = CO + C2H2";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-134
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + O2 = OH + H + CO";
+        A               5000000000;
+        beta            0;
+        Ta              754.7868583;
+    }
+    un-named-reaction-135
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + H2 = H + CH3";
+        A               500;
+        beta            2;
+        Ta              3638.072657;
+    }
+    un-named-reaction-136
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2CH2 = H2 + C2H2";
+        A               1.6e+12;
+        beta            0;
+        Ta              6010.116157;
+    }
+    un-named-reaction-137
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + CH3 = H + C2H4";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-138
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + CH4 = 2CH3";
+        A               2460;
+        beta            2;
+        Ta              4161.391545;
+    }
+    un-named-reaction-139
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH2 + CO = CH2CO";
+        k0
+        {
+            A               2.69e+27;
+            beta            -5.11;
+            Ta              3570.14184;
+        }
+        kInf
+        {
+            A               810000000;
+            beta            0.5;
+            Ta              2269.392487;
+        }
+        F
+        {
+            alpha           0.5907;
+            Tsss            275;
+            Ts              1226;
+            Tss             5185;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-140
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + HCCO = C2H3 + CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-141
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + N2 = CH2 + N2";
+        A               1.5e+10;
+        beta            0;
+        Ta              301.9147433;
+    }
+    un-named-reaction-142
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + AR = CH2 + AR";
+        A               9000000000;
+        beta            0;
+        Ta              301.9147433;
+    }
+    un-named-reaction-143
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + O2 = H + OH + CO";
+        A               2.8e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-144
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + O2 = CO + H2O";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-145
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + H2 = CH3 + H";
+        A               7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-146
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH2(S) + H2O = CH3OH";
+        k0
+        {
+            A               1.88e+32;
+            beta            -6.36;
+            Ta              2536.083844;
+        }
+        kInf
+        {
+            A               4.82e+14;
+            beta            -1.16;
+            Ta              576.1539685;
+        }
+        F
+        {
+            alpha           0.6027;
+            Tsss            208;
+            Ts              3922;
+            Tss             10180;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-147
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + H2O = CH2 + H2O";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-148
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CH3 = H + C2H4";
+        A               1.2e+10;
+        beta            0;
+        Ta              -286.8190061;
+    }
+    un-named-reaction-149
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CH4 = 2CH3";
+        A               1.6e+10;
+        beta            0;
+        Ta              -286.8190061;
+    }
+    un-named-reaction-150
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO = CH2 + CO";
+        A               9000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-151
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO2 = CH2 + CO2";
+        A               7000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-152
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO2 = CO + CH2O";
+        A               1.4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-153
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + C2H6 = CH3 + C2H5";
+        A               4e+10;
+        beta            0;
+        Ta              -276.7551814;
+    }
+    un-named-reaction-154
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + O2 = O + CH3O";
+        A               3.56e+10;
+        beta            0;
+        Ta              15337.26896;
+    }
+    un-named-reaction-155
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + O2 = OH + CH2O";
+        A               2310000000;
+        beta            0;
+        Ta              10222.33002;
+    }
+    un-named-reaction-156
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + H2O2 = HO2 + CH4";
+        A               24.5;
+        beta            2.47;
+        Ta              2606.530617;
+    }
+    un-named-reaction-157
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "2CH3 = C2H6";
+        k0
+        {
+            A               3.4e+35;
+            beta            -7.03;
+            Ta              1389.814202;
+        }
+        kInf
+        {
+            A               6.77e+13;
+            beta            -1.18;
+            Ta              329.0870702;
+        }
+        F
+        {
+            alpha           0.619;
+            Tsss            73.2;
+            Ts              1180;
+            Tss             9999;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-158
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2CH3 = H + C2H5";
+        A               6840000000;
+        beta            0.1;
+        Ta              5333.827132;
+    }
+    un-named-reaction-159
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + HCO = CH4 + CO";
+        A               2.648e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-160
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH2O = HCO + CH4";
+        A               3.32;
+        beta            2.81;
+        Ta              2948.70066;
+    }
+    un-named-reaction-161
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH3OH = CH2OH + CH4";
+        A               30000;
+        beta            1.5;
+        Ta              5001.720914;
+    }
+    un-named-reaction-162
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH3OH = CH3O + CH4";
+        A               10000;
+        beta            1.5;
+        Ta              5001.720914;
+    }
+    un-named-reaction-163
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C2H4 = C2H3 + CH4";
+        A               227;
+        beta            2;
+        Ta              4629.359397;
+    }
+    un-named-reaction-164
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C2H6 = C2H5 + CH4";
+        A               6140;
+        beta            1.74;
+        Ta              5258.348446;
+    }
+    un-named-reaction-165
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCO + H2O = H + CO + H2O";
+        A               1.5e+15;
+        beta            -1;
+        Ta              8554.25106;
+    }
+    un-named-reaction-166
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "HCO = H + CO";
+        A               1.87e+14;
+        beta            -1;
+        Ta              8554.25106;
+        coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-167
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCO + O2 = HO2 + CO";
+        A               1.345e+10;
+        beta            0;
+        Ta              201.2764955;
+    }
+    un-named-reaction-168
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2OH + O2 = HO2 + CH2O";
+        A               1.8e+10;
+        beta            0;
+        Ta              452.872115;
+    }
+    un-named-reaction-169
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3O + O2 = HO2 + CH2O";
+        A               4.28e-16;
+        beta            7.6;
+        Ta              -1776.265073;
+    }
+    un-named-reaction-170
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H + O2 = HCO + CO";
+        A               1e+10;
+        beta            0;
+        Ta              -379.9093853;
+    }
+    un-named-reaction-171
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H + H2 = H + C2H2";
+        A               56800000;
+        beta            0.9;
+        Ta              1002.860139;
+    }
+    un-named-reaction-172
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = HCO + CH2O";
+        A               4.58e+13;
+        beta            -1.39;
+        Ta              510.7391074;
+    }
+    un-named-reaction-173
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "C2H4 = H2 + C2H2";
+        k0
+        {
+            A               1.58e+48;
+            beta            -9.3;
+            Ta              49212.10316;
+        }
+        kInf
+        {
+            A               8e+12;
+            beta            0.44;
+            Ta              43661.90379;
+        }
+        F
+        {
+            alpha           0.7345;
+            Tsss            180;
+            Ts              1035;
+            Tss             5417;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-174
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H5 + O2 = HO2 + C2H4";
+        A               840000000;
+        beta            0;
+        Ta              1949.86605;
+    }
+    un-named-reaction-175
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCCO + O2 = OH + 2CO";
+        A               3200000000;
+        beta            0;
+        Ta              429.725318;
+    }
+    un-named-reaction-176
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HCCO = 2CO + C2H2";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-177
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH3 = H + H2 + CO";
+        A               3.37e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-178
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H4 = H + CH2CHO";
+        A               6700;
+        beta            1.83;
+        Ta              110.7020725;
+    }
+    un-named-reaction-179
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H5 = H + CH3CHO";
+        A               1.096e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-180
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HO2 = O2 + H2O";
+        A               5e+12;
+        beta            0;
+        Ta              8720.304169;
+    }
+    un-named-reaction-181
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "OH + CH3 = H2 + CH2O";
+        A               8000000;
+        beta            0.5;
+        Ta              -883.1006242;
+    }
+    un-named-reaction-182
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH + H2 = CH3";
+        k0
+        {
+            A               4.82e+19;
+            beta            -2.8;
+            Ta              296.8828309;
+        }
+        kInf
+        {
+            A               1970000000;
+            beta            0.43;
+            Ta              -186.1807584;
+        }
+        F
+        {
+            alpha           0.578;
+            Tsss            122;
+            Ts              2535;
+            Tss             9365;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-183
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + O2 = 2H + CO2";
+        A               5800000000;
+        beta            0;
+        Ta              754.7868583;
+    }
+    un-named-reaction-184
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + O2 = O + CH2O";
+        A               2400000000;
+        beta            0;
+        Ta              754.7868583;
+    }
+    un-named-reaction-185
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + CH2 = 2H + C2H2";
+        A               2e+11;
+        beta            0;
+        Ta              5529.568524;
+    }
+    un-named-reaction-186
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2(S) + H2O = H2 + CH2O";
+        A               68200000;
+        beta            0.25;
+        Ta              -470.4838083;
+    }
+    un-named-reaction-187
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = O + CH2CHO";
+        A               303000000;
+        beta            0.29;
+        Ta              5.535103627;
+    }
+    un-named-reaction-188
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = HO2 + C2H2";
+        A               1337;
+        beta            1.61;
+        Ta              -193.2254357;
+    }
+    un-named-reaction-189
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3CHO = OH + CH2CHO";
+        A               2920000000;
+        beta            0;
+        Ta              909.7697598;
+    }
+    un-named-reaction-190
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH3CHO = OH + CH3 + CO";
+        A               2920000000;
+        beta            0;
+        Ta              909.7697598;
+    }
+    un-named-reaction-191
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH3CHO = HO2 + CH3 + CO";
+        A               3.01e+10;
+        beta            0;
+        Ta              19699.937;
+    }
+    un-named-reaction-192
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3CHO = CH2CHO + H2";
+        A               2050000;
+        beta            1.16;
+        Ta              1210.174929;
+    }
+    un-named-reaction-193
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "H + CH3CHO = CH3 + H2 + CO";
+        A               2050000;
+        beta            1.16;
+        Ta              1210.174929;
+    }
+    un-named-reaction-194
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "OH + CH3CHO = CH3 + H2O + CO";
+        A               23430000;
+        beta            0.73;
+        Ta              -560.0518488;
+    }
+    un-named-reaction-195
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "HO2 + CH3CHO = CH3 + H2O2 + CO";
+        A               3010000000;
+        beta            0;
+        Ta              5999.549141;
+    }
+    un-named-reaction-196
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH3 + CH3CHO = CH3 + CH4 + CO";
+        A               2720;
+        beta            1.77;
+        Ta              2978.892134;
+    }
+    un-named-reaction-197
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2CO = CH2CHO";
+        k0
+        {
+            A               1.012e+36;
+            beta            -7.63;
+            Ta              1939.299034;
+        }
+        kInf
+        {
+            A               486500000;
+            beta            0.422;
+            Ta              -883.1006242;
+        }
+        F
+        {
+            alpha           0.465;
+            Tsss            201;
+            Ts              1773;
+            Tss             5333;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-198
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH2CHO = H + CH2 + CO2";
+        A               1.5e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-199
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH2CHO = OH + CO + CH2O";
+        A               18100000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-200
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH2CHO = OH + 2HCO";
+        A               23500000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-201
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CHO = CH3 + HCO";
+        A               2.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-202
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CHO = CH2CO + H2";
+        A               1.1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-203
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CHO = H2O + CH2CO";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-204
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CHO = HCO + CH2OH";
+        A               3.01e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-205
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH3 + C2H5 = C3H8";
+        k0
+        {
+            A               2.71e+68;
+            beta            -16.82;
+            Ta              6574.193535;
+        }
+        kInf
+        {
+            A               9430000000;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.1527;
+            Tsss            291;
+            Ts              2742;
+            Tss             7748;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-206
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C3H8 = OH + C3H7";
+        A               193;
+        beta            2.68;
+        Ta              1869.858644;
+    }
+    un-named-reaction-207
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C3H8 = C3H7 + H2";
+        A               1320;
+        beta            2.54;
+        Ta              3399.56001;
+    }
+    un-named-reaction-208
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C3H8 = C3H7 + H2O";
+        A               31600;
+        beta            1.8;
+        Ta              469.9806171;
+    }
+    un-named-reaction-209
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C3H7 + H2O2 = HO2 + C3H8";
+        A               0.378;
+        beta            2.72;
+        Ta              754.7868583;
+    }
+    un-named-reaction-210
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C3H8 = C3H7 + CH4";
+        A               0.000903;
+        beta            3.65;
+        Ta              3599.830123;
+    }
+    un-named-reaction-211
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH3 + C2H4 = C3H7";
+        k0
+        {
+            A               3e+57;
+            beta            -14.6;
+            Ta              9142.98481;
+        }
+        kInf
+        {
+            A               2550;
+            beta            1.6;
+            Ta              2868.190061;
+        }
+        F
+        {
+            alpha           0.1894;
+            Tsss            277;
+            Ts              8748;
+            Tss             7891;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-212
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C3H7 = C2H5 + CH2O";
+        A               9.64e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-213
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C3H7 = C3H8";
+        k0
+        {
+            A               4.42e+55;
+            beta            -13.545;
+            Ta              5714.742899;
+        }
+        kInf
+        {
+            A               3.613e+10;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.315;
+            Tsss            369;
+            Ts              3285;
+            Tss             6667;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-214
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C3H7 = CH3 + C2H5";
+        A               4060;
+        beta            2.19;
+        Ta              447.8402026;
+    }
+    un-named-reaction-215
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C3H7 = C2H5 + CH2OH";
+        A               2.41e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-216
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + C3H7 = O2 + C3H8";
+        A               25500000;
+        beta            0.255;
+        Ta              -474.5093382;
+    }
+    un-named-reaction-217
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "HO2 + C3H7 = OH + C2H5 + CH2O";
+        A               2.41e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-218
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C3H7 = 2C2H5";
+        A               1.927e+10;
+        beta            -0.32;
+        Ta              0;
+    }
+}
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermo.compressibleGasGRI b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermo.compressibleGasGRI
new file mode 100644
index 00000000000..392233e95da
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermo.compressibleGasGRI
@@ -0,0 +1,1390 @@
+OH
+{
+    specie
+    {
+        molWeight       17.00737;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.09288767 0.000548429716 1.26505228e-07 -8.79461556e-11 1.17412376e-14 3858.657 4.4766961 );
+        lowCpCoeffs     ( 3.99201543 -0.00240131752 4.61793841e-06 -3.88113333e-09 1.3641147e-12 3615.08056 -0.103925458 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               1;
+        H               1;
+    }
+}
+
+CN
+{
+    specie
+    {
+        molWeight       26.01785;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.7459805 4.3450775e-05 2.9705984e-07 -6.8651806e-11 4.4134173e-15 51536.188 2.7867601 );
+        lowCpCoeffs     ( 3.6129351 -0.00095551327 2.1442977e-06 -3.1516323e-10 -4.6430356e-13 51708.34 3.9804995 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        N               1;
+    }
+}
+
+C2H3
+{
+    specie
+    {
+        molWeight       27.04621;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.016724 0.0103302292 -4.68082349e-06 1.01763288e-09 -8.62607041e-14 34612.8739 7.78732378 );
+        lowCpCoeffs     ( 3.21246645 0.00151479162 2.59209412e-05 -3.57657847e-08 1.47150873e-11 34859.8468 8.51054025 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               3;
+    }
+}
+
+N2
+{
+    specie
+    {
+        molWeight       28.0134;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.92664 0.0014879768 -5.68476e-07 1.0097038e-10 -6.753351e-15 -922.7977 5.980528 );
+        lowCpCoeffs     ( 3.298677 0.0014082404 -3.963222e-06 5.641515e-09 -2.444854e-12 -1020.8999 3.950372 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               2;
+    }
+}
+
+HOCN
+{
+    specie
+    {
+        molWeight       43.02522;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1368;
+        highCpCoeffs    ( 5.89784885 0.00316789393 -1.11801064e-06 1.77243144e-10 -1.04339177e-14 -3706.53331 -6.18167825 );
+        lowCpCoeffs     ( 3.78604952 0.00688667922 -3.21487864e-06 5.17195767e-10 1.19360788e-14 -2826.984 5.63292162 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+N
+{
+    specie
+    {
+        molWeight       14.0067;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.4159429 0.00017489065 -1.1902369e-07 3.0226245e-11 -2.0360982e-15 56133.773 4.6496096 );
+        lowCpCoeffs     ( 2.5 0 0 0 0 56104.637 4.1939087 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+    }
+}
+
+C2H
+{
+    specie
+    {
+        molWeight       25.03027;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.16780652 0.00475221902 -1.83787077e-06 3.04190252e-10 -1.7723277e-14 67121.065 6.63589475 );
+        lowCpCoeffs     ( 2.88965733 0.0134099611 -2.84769501e-05 2.94791045e-08 -1.09331511e-11 66839.3932 6.22296438 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               1;
+    }
+}
+
+HNO
+{
+    specie
+    {
+        molWeight       31.01407;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.9792509 0.0034944059 -7.8549778e-07 5.7479594e-11 -1.9335916e-16 11750.582 8.6063728 );
+        lowCpCoeffs     ( 4.5334916 -0.0056696171 1.8473207e-05 -1.7137094e-08 5.5454573e-12 11548.297 1.7498417 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        O               1;
+    }
+}
+
+CH2CO
+{
+    specie
+    {
+        molWeight       42.03764;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.51129732 0.00900359745 -4.16939635e-06 9.23345882e-10 -7.94838201e-14 -7551.05311 0.632247205 );
+        lowCpCoeffs     ( 2.1358363 0.0181188721 -1.73947474e-05 9.34397568e-09 -2.01457615e-12 -7042.91804 12.215648 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               2;
+        O               1;
+    }
+}
+
+CH3
+{
+    specie
+    {
+        molWeight       15.03506;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.28571772 0.00723990037 -2.98714348e-06 5.95684644e-10 -4.67154394e-14 16775.5843 8.48007179 );
+        lowCpCoeffs     ( 3.6735904 0.00201095175 5.73021856e-06 -6.87117425e-09 2.54385734e-12 16444.9988 1.60456433 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+    }
+}
+
+C2H5
+{
+    specie
+    {
+        molWeight       29.06215;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.95465642 0.0173972722 -7.98206668e-06 1.75217689e-09 -1.49641576e-13 12857.52 13.4624343 );
+        lowCpCoeffs     ( 4.30646568 -0.00418658892 4.97142807e-05 -5.99126606e-08 2.30509004e-11 12841.6265 4.70720924 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               5;
+    }
+}
+
+C2H4
+{
+    specie
+    {
+        molWeight       28.05418;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.03611116 0.0146454151 -6.71077915e-06 1.47222923e-09 -1.25706061e-13 4939.88614 10.3053693 );
+        lowCpCoeffs     ( 3.95920148 -0.00757052247 5.70990292e-05 -6.91588753e-08 2.69884373e-11 5089.77593 4.09733096 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               4;
+    }
+}
+
+C3H8
+{
+    specie
+    {
+        molWeight       44.09721;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 7.5341368 0.018872239 -6.2718491e-06 9.1475649e-10 -4.7838069e-14 -16467.516 -17.892349 );
+        lowCpCoeffs     ( 0.93355381 0.026424579 6.1059727e-06 -2.1977499e-08 9.5149253e-12 -13958.52 19.201691 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               3;
+        H               8;
+    }
+}
+
+HCN
+{
+    specie
+    {
+        molWeight       27.02582;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.8022392 0.0031464228 -1.0632185e-06 1.6619757e-10 -9.799757e-15 14407.292 1.5754601 );
+        lowCpCoeffs     ( 2.2589886 0.01005117 -1.3351763e-05 1.0092349e-08 -3.0089028e-12 14712.633 8.9164419 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        C               1;
+        N               1;
+    }
+}
+
+C2H6
+{
+    specie
+    {
+        molWeight       30.07012;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.0718815 0.0216852677 -1.00256067e-05 2.21412001e-09 -1.9000289e-13 -11426.3932 15.1156107 );
+        lowCpCoeffs     ( 4.29142492 -0.0055015427 5.99438288e-05 -7.08466285e-08 2.68685771e-11 -11522.2055 2.66682316 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               6;
+    }
+}
+
+NH3
+{
+    specie
+    {
+        molWeight       17.03061;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.6344521 0.005666256 -1.7278676e-06 2.3867161e-10 -1.2578786e-14 -6544.6958 6.5662928 );
+        lowCpCoeffs     ( 4.2860274 -0.004660523 2.1718513e-05 -2.2808887e-08 8.2638046e-12 -6741.7285 -0.62537277 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        H               3;
+    }
+}
+
+CO2
+{
+    specie
+    {
+        molWeight       44.00995;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.85746029 0.00441437026 -2.21481404e-06 5.23490188e-10 -4.72084164e-14 -48759.166 2.27163806 );
+        lowCpCoeffs     ( 2.35677352 0.00898459677 -7.12356269e-06 2.45919022e-09 -1.43699548e-13 -48371.9697 9.90105222 );
+    }
+    transport
+    {
+        As              1.572e-06;
+        Ts              240;
+    }
+    elements
+    {
+        C               1;
+        O               2;
+    }
+}
+
+C2H2
+{
+    specie
+    {
+        molWeight       26.03824;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.14756964 0.00596166664 -2.37294852e-06 4.67412171e-10 -3.61235213e-14 25935.9992 -1.23028121 );
+        lowCpCoeffs     ( 0.808681094 0.0233615629 -3.55171815e-05 2.80152437e-08 -8.50072974e-12 26428.9807 13.9397051 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               2;
+    }
+}
+
+CH2OH
+{
+    specie
+    {
+        molWeight       31.03446;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.69266569 0.00864576797 -3.7510112e-06 7.87234636e-10 -6.48554201e-14 -3242.50627 5.81043215 );
+        lowCpCoeffs     ( 3.86388918 0.00559672304 5.93271791e-06 -1.04532012e-08 4.36967278e-12 -3193.91367 5.47302243 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+        O               1;
+    }
+}
+
+H2CN
+{
+    specie
+    {
+        molWeight       28.03379;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           4000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.209703 0.0029692911 -2.8555891e-07 -1.63555e-10 3.0432589e-14 27677.109 -4.444478 );
+        lowCpCoeffs     ( 2.851661 0.0056952331 1.07114e-06 -1.622612e-09 -2.3511081e-13 28637.82 8.9927511 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        C               1;
+        N               1;
+    }
+}
+
+HCCOH
+{
+    specie
+    {
+        molWeight       42.03764;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.9238291 0.00679236 -2.5658564e-06 4.4987841e-10 -2.9940101e-14 7264.626 -7.6017742 );
+        lowCpCoeffs     ( 1.2423733 0.031072201 -5.0866864e-05 4.3137131e-08 -1.4014594e-11 8031.6143 13.874319 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        O               1;
+        H               2;
+    }
+}
+
+H2O2
+{
+    specie
+    {
+        molWeight       34.01474;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.16500285 0.00490831694 -1.90139225e-06 3.71185986e-10 -2.87908305e-14 -17861.7877 2.91615662 );
+        lowCpCoeffs     ( 4.27611269 -0.000542822417 1.67335701e-05 -2.15770813e-08 8.62454363e-12 -17702.5821 3.43505074 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        O               2;
+    }
+}
+
+HCO
+{
+    specie
+    {
+        molWeight       29.01852;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.77217438 0.00495695526 -2.48445613e-06 5.89161778e-10 -5.33508711e-14 4011.91815 9.79834492 );
+        lowCpCoeffs     ( 4.22118584 -0.00324392532 1.37799446e-05 -1.33144093e-08 4.33768865e-12 3839.56496 3.39437243 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        C               1;
+        O               1;
+    }
+}
+
+NNH
+{
+    specie
+    {
+        molWeight       29.02137;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.7667544 0.0028915082 -1.041662e-06 1.6842594e-10 -1.0091896e-14 28650.697 4.4705067 );
+        lowCpCoeffs     ( 4.3446927 -0.0048497072 2.0059459e-05 -2.1726464e-08 7.9469539e-12 28791.973 2.977941 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               2;
+        H               1;
+    }
+}
+
+N2O
+{
+    specie
+    {
+        molWeight       44.0128;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.8230729 0.0026270251 -9.5850874e-07 1.6000712e-10 -9.7752303e-15 8073.4048 -2.2017207 );
+        lowCpCoeffs     ( 2.2571502 0.011304728 -1.3671319e-05 9.6819806e-09 -2.9307182e-12 8741.7744 10.757992 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               2;
+        O               1;
+    }
+}
+
+CH2(S)
+{
+    specie
+    {
+        molWeight       14.02709;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.29203842 0.00465588637 -2.01191947e-06 4.17906e-10 -3.39716365e-14 50925.9997 8.62650169 );
+        lowCpCoeffs     ( 4.19860411 -0.00236661419 8.2329622e-06 -6.68815981e-09 1.94314737e-12 50496.8163 -0.769118967 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               2;
+    }
+}
+
+O2
+{
+    specie
+    {
+        molWeight       31.9988;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.28253784 0.00148308754 -7.57966669e-07 2.09470555e-10 -2.16717794e-14 -1088.45772 5.45323129 );
+        lowCpCoeffs     ( 3.78245636 -0.00299673416 9.84730201e-06 -9.68129509e-09 3.24372837e-12 -1063.94356 3.65767573 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               2;
+    }
+}
+
+CH2CHO
+{
+    specie
+    {
+        molWeight       43.04561;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.97567 0.008130591 -2.743624e-06 4.070304e-10 -2.176017e-14 490.3218 -5.045251 );
+        lowCpCoeffs     ( 3.409062 0.010738574 1.891492e-06 -7.158583e-09 2.867385e-12 1521.4766 9.55829 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               1;
+        H               3;
+        C               2;
+    }
+}
+
+HNCO
+{
+    specie
+    {
+        molWeight       43.02522;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1478;
+        highCpCoeffs    ( 6.22395134 0.00317864004 -1.09378755e-06 1.70735163e-10 -9.95021955e-15 -16659.9344 -8.38224741 );
+        lowCpCoeffs     ( 3.63096317 0.00730282357 -2.28050003e-06 -6.61271298e-10 3.62235752e-13 -15587.3636 6.19457727 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+HCCO
+{
+    specie
+    {
+        molWeight       41.02967;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           4000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.6282058 0.0040853401 -1.5934547e-06 2.8626052e-10 -1.9407832e-14 19327.215 -3.9302595 );
+        lowCpCoeffs     ( 2.2517214 0.017655021 -2.3729101e-05 1.7275759e-08 -5.0664811e-12 20059.449 12.490417 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        C               2;
+        O               1;
+    }
+}
+
+H2
+{
+    specie
+    {
+        molWeight       2.01594;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.3372792 -4.94024731e-05 4.99456778e-07 -1.79566394e-10 2.00255376e-14 -950.158922 -3.20502331 );
+        lowCpCoeffs     ( 2.34433112 0.00798052075 -1.9478151e-05 2.01572094e-08 -7.37611761e-12 -917.935173 0.683010238 );
+    }
+    transport
+    {
+        As              6.362e-07;
+        Ts              72;
+    }
+    elements
+    {
+        H               2;
+    }
+}
+
+NO2
+{
+    specie
+    {
+        molWeight       46.0055;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.8847542 0.0021723956 -8.2806906e-07 1.574751e-10 -1.0510895e-14 2316.4983 -0.11741695 );
+        lowCpCoeffs     ( 3.9440312 -0.001585429 1.6657812e-05 -2.0475426e-08 7.8350564e-12 2896.6179 6.3119917 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        O               2;
+    }
+}
+
+CH4
+{
+    specie
+    {
+        molWeight       16.04303;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 0.074851495 0.0133909467 -5.73285809e-06 1.22292535e-09 -1.0181523e-13 -9468.34459 18.437318 );
+        lowCpCoeffs     ( 5.14987613 -0.0136709788 4.91800599e-05 -4.84743026e-08 1.66693956e-11 -10246.6476 -4.64130376 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               4;
+    }
+}
+
+C
+{
+    specie
+    {
+        molWeight       12.01115;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.49266888 4.79889284e-05 -7.2433502e-08 3.74291029e-11 -4.87277893e-15 85451.2953 4.80150373 );
+        lowCpCoeffs     ( 2.55423955 -0.000321537724 7.33792245e-07 -7.32234889e-10 2.66521446e-13 85443.8832 4.53130848 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+    }
+}
+
+HO2
+{
+    specie
+    {
+        molWeight       33.00677;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.0172109 0.00223982013 -6.3365815e-07 1.1424637e-10 -1.07908535e-14 111.856713 3.78510215 );
+        lowCpCoeffs     ( 4.30179801 -0.00474912051 2.11582891e-05 -2.42763894e-08 9.29225124e-12 294.80804 3.71666245 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        O               2;
+    }
+}
+
+CH3CHO
+{
+    specie
+    {
+        molWeight       44.05358;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.4041108 0.011723059 -4.2263137e-06 6.8372451e-10 -4.0984863e-14 -22593.122 -3.4807917 );
+        lowCpCoeffs     ( 4.7294595 -0.0031932858 4.7534921e-05 -5.7458611e-08 2.1931112e-11 -21572.878 4.1030159 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               4;
+        O               1;
+    }
+}
+
+C3H7
+{
+    specie
+    {
+        molWeight       43.08924;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 7.7026987 0.016044203 -5.283322e-06 7.629859e-10 -3.9392284e-14 8298.4336 -15.48018 );
+        lowCpCoeffs     ( 1.0515518 0.02599198 2.380054e-06 -1.9609569e-08 9.373247e-12 10631.863 21.122559 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               3;
+        H               7;
+    }
+}
+
+CH3OH
+{
+    specie
+    {
+        molWeight       32.04243;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.78970791 0.0140938292 -6.36500835e-06 1.38171085e-09 -1.1706022e-13 -25374.8747 14.5023623 );
+        lowCpCoeffs     ( 5.71539582 -0.0152309129 6.52441155e-05 -7.10806889e-08 2.61352698e-11 -25642.7656 -1.50409823 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               4;
+        O               1;
+    }
+}
+
+CH2O
+{
+    specie
+    {
+        molWeight       30.02649;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.76069008 0.00920000082 -4.42258813e-06 1.00641212e-09 -8.8385564e-14 -13995.8323 13.656323 );
+        lowCpCoeffs     ( 4.79372315 -0.00990833369 3.73220008e-05 -3.79285261e-08 1.31772652e-11 -14308.9567 0.6028129 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        C               1;
+        O               1;
+    }
+}
+
+CO
+{
+    specie
+    {
+        molWeight       28.01055;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.71518561 0.00206252743 -9.98825771e-07 2.30053008e-10 -2.03647716e-14 -14151.8724 7.81868772 );
+        lowCpCoeffs     ( 3.57953347 -0.00061035368 1.01681433e-06 9.07005884e-10 -9.04424499e-13 -14344.086 3.50840928 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        O               1;
+    }
+}
+
+CH3O
+{
+    specie
+    {
+        molWeight       31.03446;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           3000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.770799 0.007871497 -2.656384e-06 3.944431e-10 -2.112616e-14 127.83252 2.929575 );
+        lowCpCoeffs     ( 2.106204 0.007216595 5.338472e-06 -7.377636e-09 2.07561e-12 978.6011 13.152177 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+        O               1;
+    }
+}
+
+O
+{
+    specie
+    {
+        molWeight       15.9994;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.56942078 -8.59741137e-05 4.19484589e-08 -1.00177799e-11 1.22833691e-15 29217.5791 4.78433864 );
+        lowCpCoeffs     ( 3.1682671 -0.00327931884 6.64306396e-06 -6.12806624e-09 2.11265971e-12 29122.2592 2.05193346 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               1;
+    }
+}
+
+HCNN
+{
+    specie
+    {
+        molWeight       41.03252;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.8946362 0.0039895959 -1.598238e-06 2.9249395e-10 -2.0094686e-14 53452.941 -5.1030502 );
+        lowCpCoeffs     ( 2.5243194 0.015960619 -1.8816354e-05 1.212554e-08 -3.2357378e-12 54261.984 11.67587 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        N               2;
+        H               1;
+    }
+}
+
+NCO
+{
+    specie
+    {
+        molWeight       42.01725;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.1521845 0.0023051761 -8.8033153e-07 1.4789098e-10 -9.0977996e-15 14004.123 -2.544266 );
+        lowCpCoeffs     ( 2.8269308 0.0088051688 -8.3866134e-06 4.8016964e-09 -1.3313595e-12 14682.477 9.5504646 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+CH2
+{
+    specie
+    {
+        molWeight       14.02709;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.87410113 0.00365639292 -1.40894597e-06 2.60179549e-10 -1.87727567e-14 46263.604 6.17119324 );
+        lowCpCoeffs     ( 3.76267867 0.000968872143 2.79489841e-06 -3.85091153e-09 1.68741719e-12 46004.0401 1.56253185 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               2;
+    }
+}
+
+HCNO
+{
+    specie
+    {
+        molWeight       43.02522;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1382;
+        highCpCoeffs    ( 6.59860456 0.00302778626 -1.07704346e-06 1.71666528e-10 -1.01439391e-14 17966.1339 -10.3306599 );
+        lowCpCoeffs     ( 2.64727989 0.0127505342 -1.04794236e-05 4.41432836e-09 -7.57521466e-13 19299.0252 10.7332972 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+NH2
+{
+    specie
+    {
+        molWeight       16.02264;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.8347421 0.0032073082 -9.3390804e-07 1.3702953e-10 -7.9206144e-15 22171.957 6.5204163 );
+        lowCpCoeffs     ( 4.2040029 -0.0021061385 7.1068348e-06 -5.6115197e-09 1.6440717e-12 21885.91 -0.14184248 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        H               2;
+    }
+}
+
+H2O
+{
+    specie
+    {
+        molWeight       18.01534;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.03399249 0.00217691804 -1.64072518e-07 -9.7041987e-11 1.68200992e-14 -30004.2971 4.9667701 );
+        lowCpCoeffs     ( 4.19864056 -0.0020364341 6.52040211e-06 -5.48797062e-09 1.77197817e-12 -30293.7267 -0.849032208 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        O               1;
+    }
+}
+
+NH
+{
+    specie
+    {
+        molWeight       15.01467;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.7836928 0.001329843 -4.2478047e-07 7.8348501e-11 -5.504447e-15 42120.848 5.7407799 );
+        lowCpCoeffs     ( 3.4929085 0.00031179198 -1.4890484e-06 2.4816442e-09 -1.0356967e-12 41880.629 1.8483278 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        H               1;
+    }
+}
+
+H
+{
+    specie
+    {
+        molWeight       1.00797;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.50000001 -2.30842973e-11 1.61561948e-14 -4.73515235e-18 4.98197357e-22 25473.6599 -0.446682914 );
+        lowCpCoeffs     ( 2.5 7.05332819e-13 -1.99591964e-15 2.30081632e-18 -9.27732332e-22 25473.6599 -0.446682853 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+    }
+}
+
+AR
+{
+    specie
+    {
+        molWeight       39.948;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.5 0 0 0 0 -745.375 4.366 );
+        lowCpCoeffs     ( 2.5 0 0 0 0 -745.375 4.366 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        Ar              1;
+    }
+}
+
+NO
+{
+    specie
+    {
+        molWeight       30.0061;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.2606056 0.0011911043 -4.2917048e-07 6.9457669e-11 -4.0336099e-15 9920.9746 6.3693027 );
+        lowCpCoeffs     ( 4.2184763 -0.004638976 1.1041022e-05 -9.3361354e-09 2.803577e-12 9844.623 2.2808464 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        O               1;
+    }
+}
+
+CH
+{
+    specie
+    {
+        molWeight       13.01912;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.87846473 0.000970913681 1.44445655e-07 -1.30687849e-10 1.76079383e-14 71012.4364 5.48497999 );
+        lowCpCoeffs     ( 3.48981665 0.000323835541 -1.68899065e-06 3.16217327e-09 -1.40609067e-12 70797.2934 2.08401108 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               1;
+    }
+}
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties
new file mode 100644
index 00000000000..5f586655ac6
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+
+    type            hePsiThermo;
+    mixture         reactingMixture;
+    transport       sutherland;
+    thermo          janaf;
+    energy          sensibleEnthalpy;
+    equationOfState perfectGas;
+    specie          specie;
+}
+
+inertSpecie N2;
+
+chemistryReader foamChemistryReader;
+foamChemistryFile "$FOAM_CASE/constant/reactionsGRI";
+foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGasGRI";
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties
new file mode 100644
index 00000000000..918a286700e
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties
@@ -0,0 +1,33 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType   RAS;
+
+RAS
+{
+    RASModel        kEpsilon;
+
+    kEpsilonCoeffs
+    {
+        Prt 0.85;
+    }
+
+    turbulence      on;
+    printCoeffs     on;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict
new file mode 100644
index 00000000000..dad229860f1
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict
@@ -0,0 +1,209 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 0.001;
+
+R1X 3.99619288633;
+R2X 4.49571699712;
+R3X 179.82867988473;
+R4X 189.81916210055;
+
+R1Y 0.17447754946;
+R2Y 0.19628724314;
+R3Y 7.85148972576;
+R4Y 8.28768359941;
+
+R1Ym -0.17447754946;
+R2Ym -0.19628724314;
+R3Ym -7.85148972576;
+R4Ym -8.28768359941;
+
+L  1000;
+Lm -20;
+
+vertices
+(
+    (0       0        0)    // 0
+    ($R1X    $R1Y     0)    // 1
+    ($R1X    $R1Y     $L)   // 2
+
+    (0       0        $L)   // 3
+    ($R1X    $R1Ym    0)    // 4
+    ($R1X    $R1Ym    $L)   // 5
+
+    (0       0        $Lm)  // 6
+    ($R1X    $R1Y     $Lm)  // 7
+    ($R1X    $R1Ym    $Lm)  // 8
+
+    ($R2X    $R2Y     0)    // 9
+    ($R2X    $R2Ym    0)    // 10
+    ($R2X    $R2Y     $L)   // 11
+    ($R2X    $R2Ym    $L)   // 12
+
+    ($R3X    $R3Y     0)    // 13
+    ($R3X    $R3Ym    0)    // 14
+    ($R3X    $R3Y     $L)   // 15
+    ($R3X    $R3Ym    $L)   // 16
+
+    ($R2X    $R2Y     $Lm)  // 17
+    ($R3X    $R3Y     $Lm)  // 18
+    ($R3X    $R3Ym    $Lm)  // 19
+    ($R2X    $R2Ym    $Lm)  // 20
+
+    ($R4X    $R4Y     0)    // 21
+    ($R4X    $R4Ym    0)    // 22
+    ($R4X    $R4Y     $L)   // 23
+    ($R4X    $R4Ym    $L)   // 24
+);
+
+nFuel          4;
+nBurner        1;
+nCoflow        30;
+nExternal      2;
+nLength        90;
+nLengthReverse 4;
+
+gradingFuel          1;
+gradingCoflow        6;
+gradingLength        12.;
+gradingLengthInverse 0.5;
+
+blocks
+(
+    // Fuel
+    hex (6 8 7 6 0 4 1 0) ($nFuel 1 $nLengthReverse)
+    simpleGrading ($gradingFuel  1 $gradingLengthInverse )
+
+    hex (0 4 1 0 3 5 2 3) ($nFuel  1 $nLength)
+    simpleGrading ($gradingFuel 1 $gradingLength)
+
+    // Wall
+    hex (4 10 9 1 5 12 11 2) ($nBurner 1 $nLength)
+    simpleGrading (1 1 $gradingLength)
+
+    // Coflow
+    hex (20 19 18 17 10 14 13 9) ($nCoflow 1 $nLengthReverse)
+    simpleGrading ($gradingCoflow  1 $gradingLengthInverse)
+    hex (10 14 13 9 12 16 15 11) ($nCoflow 1 $nLength)
+    simpleGrading ($gradingCoflow  1 $gradingLength)
+
+    // External wall
+    hex (14 22 21 13 16 24 23 15) ($nExternal 1 $nLength)
+    simpleGrading (1  1 $gradingLength)
+);
+
+boundary
+(
+    inletfuel
+    {
+        type patch;
+        faces
+        (
+            (6 8 7 6)
+        );
+    }
+
+    inletair
+    {
+        type patch;
+        faces
+        (
+            (19 20 17 18)
+        );
+    }
+
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (5 3 3 2)
+            (12 11 2 5)
+            (16 15 11 12)
+            (15 16 24 23)
+        );
+    }
+
+    axis
+    {
+        type empty;
+        faces
+        (
+            (3 0 0 3)
+            (0 6 6 0)
+        );
+    }
+
+    leftside
+    {
+        type wall;
+        faces
+        (
+            (14 13 21 22)
+            (19 18 13 14)
+            (23 24 22 21)
+        );
+    }
+
+    burnerwall
+    {
+        type wall;
+        faces
+        (
+            (8 7 1 4)
+            (10 9 17 20)
+        );
+    }
+
+    burnertip
+    {
+        type wall;
+        faces
+        (
+            (4 1 9 10)
+        );
+    }
+
+    front
+    {
+        type wedge;
+        faces
+        (
+            (1 0 3 2)
+            (7 6 0 1)
+            (9 1 2 11)
+            (13 9 11 15)
+            (18 17 9 13)
+            (15 23 21 13)
+        );
+    }
+
+    back
+    {
+        type wedge;
+        faces
+        (
+            (5 3 0 4)
+            (4 0 6 8)
+            (12 5 4 10)
+            (16 12 10 14)
+            (19 14 10 20)
+            (16 14 22 24)
+        );
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
new file mode 100644
index 00000000000..b84dd7ab135
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     reactingFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         70000;
+
+deltaT          1;
+
+writeControl    runTime;
+
+writeInterval   1000;
+
+purgeWrite      0;
+
+writeFormat     binary;
+
+writePrecision  10;
+
+writeCompression no;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict
new file mode 100644
index 00000000000..d53fb5c47b7
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 6;
+
+method          simple;
+
+simpleCoeffs
+{
+    n               (1 1 6);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               ( 1 1 1 );
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "";
+}
+
+distributed     no;
+
+roots           ( );
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes
new file mode 100644
index 00000000000..6919893ebbb
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes
@@ -0,0 +1,59 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         localEuler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default             none;
+
+    div(phi,U)          Gauss limitedLinearV 1;
+    div(phi,Yi)         Gauss limitedLinear01 1;
+    div(phi,h)          Gauss limitedLinear 1;
+    div(phi,K)          Gauss limitedLinear 1;
+    div(phid,p)         Gauss limitedLinear 1;
+    div(phi,epsilon)    Gauss limitedLinear 1;
+    div(phi,Yi_h)       Gauss limitedLinear01 1;
+    div(phi,k)          Gauss limitedLinear 1;
+    div(((rho*nuEff)*dev2(T(grad(U)))))     Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution
new file mode 100644
index 00000000000..3bfa1ed389e
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution
@@ -0,0 +1,89 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    "rho.*"
+    {
+        solver          diagonal;
+    }
+
+    p
+    {
+        solver           PCG;
+        preconditioner   DIC;
+        tolerance        1e-6;
+        relTol           0.01;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol           0;
+    }
+
+    "(U|h|k|epsilon)"
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0.1;
+    }
+
+    "(U|h|k|epsilon)Final"
+    {
+        $U;
+    }
+
+    Yi
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-8;
+        relTol          0.1;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor   yes;
+    nOuterCorrectors    1;
+    nCorrectors         2;
+    nNonOrthogonalCorrectors 0;
+
+    maxDeltaT           1e-4;
+    maxCo               0.25;
+    alphaTemp           0.05;
+    alphaY              0.05;
+    Yref
+    {
+        O2                  0.1;
+        CH4                 0.1;
+    }
+    rDeltaTSmoothingCoeff   0.05;
+    rDeltaTDampingCoeff     1;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        ".*"    1;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict
new file mode 100644
index 00000000000..3aadbc9a282
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+    volScalarFieldValue T 292
+);
+
+regions
+(
+    boxToCell
+    {
+        box (0.002 -0.01 0.005) (0.02 0.01 0.055);
+        fieldValues
+        (
+            volScalarFieldValue T 2200
+        );
+    }
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4
new file mode 100644
index 00000000000..266a6fb66b0
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      CH4;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0.1561;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO
new file mode 100644
index 00000000000..d8dc5e27020
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      CO;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 4.07e-3;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2
new file mode 100644
index 00000000000..ffb827a6002
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      CO2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 0.1098;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H
new file mode 100644
index 00000000000..5628da4739a
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      H;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 2.48e-5;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2
new file mode 100644
index 00000000000..91ce9d6ce36
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      H2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 1.29e-4;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O
new file mode 100644
index 00000000000..f073fdf2251
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      H2O;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 0.0942;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2
new file mode 100644
index 00000000000..e0cff0b716c
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      N2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0.77;
+
+boundaryField
+{
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0.6473;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 0.7342;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0.77;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O
new file mode 100644
index 00000000000..0cd957a9844
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      O;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 7.47e-4;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2
new file mode 100644
index 00000000000..945a07ed0c3
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      O2;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0.23;
+
+boundaryField
+{
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0.1966;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 0.054;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0.23;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH
new file mode 100644
index 00000000000..a679d630675
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      OH;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 0.0028;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T
new file mode 100644
index 00000000000..535b4924d63
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      T;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 300;
+
+boundaryField
+{
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 294;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 1880;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 291;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U
new file mode 100644
index 00000000000..9c65306f61e
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U
@@ -0,0 +1,70 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    location    "0";
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0.9);
+
+boundaryField
+{
+    wallTube
+    {
+        type            noSlip;
+    }
+
+    outlet
+    {
+        type            pressureInletOutletVelocity;
+        value           $internalField;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform (0 0 11.4);
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform (0 0 0.9);
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform (0 0 49.6);
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault
new file mode 100644
index 00000000000..56151abf82a
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      Ydefault;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    inletAir
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat
new file mode 100644
index 00000000000..7978195cbcd
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat
@@ -0,0 +1,74 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alphat;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    inletPilot
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    inletAir
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    wallOutside
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           $internalField;
+    }
+
+    inletCH4
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon
new file mode 100644
index 00000000000..3fd83330798
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon
@@ -0,0 +1,84 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 30000;
+
+boundaryField
+{
+    wallTube
+    {
+        type            epsilonWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 30000;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.000735;
+        phi             phi;
+        k               k;
+        value           uniform 1;
+    }
+
+    inletAir
+    {
+        type            turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.019677;
+        value           uniform 1;
+    }
+
+    wallOutside
+    {
+        type            epsilonWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 30000;
+    }
+
+    inletCH4
+    {
+        type            turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.000504;
+        phi             phi;
+        k               k;
+        value           uniform 1;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k
new file mode 100644
index 00000000000..666f8d3ca05
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k
@@ -0,0 +1,74 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 30;
+
+boundaryField
+{
+    wallTube
+    {
+        type            kqRWallFunction;
+        value           uniform 30;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    inletPilot
+    {
+        type            turbulentIntensityKineticEnergyInlet;
+        intensity       0.0628;
+        value           uniform 1;
+    }
+
+    inletAir
+    {
+        type            turbulentIntensityKineticEnergyInlet;
+        intensity       0.0471;
+        value           uniform 1;
+    }
+
+    wallOutside
+    {
+        type            kqRWallFunction;
+        value           uniform 30;
+    }
+
+    inletCH4
+    {
+        type            turbulentIntensityKineticEnergyInlet;
+        intensity       0.0458;
+        value           uniform 1;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut
new file mode 100644
index 00000000000..9b0ff1ec4ca
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut
@@ -0,0 +1,78 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wallTube
+    {
+        type            nutkWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    inletPilot
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    inletAir
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    wallOutside
+    {
+        type            nutkWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           $internalField;
+    }
+
+    inletCH4
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p
new file mode 100644
index 00000000000..40693ddb5f7
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 100000;
+
+boundaryField
+{
+    wallTube
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            totalPressure;
+        p0              $internalField;
+    }
+
+    inletPilot
+    {
+        type            zeroGradient;
+    }
+
+    inletAir
+    {
+        type            zeroGradient;
+    }
+
+    wallOutside
+    {
+        type            zeroGradient;
+    }
+
+    inletCH4
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allclean b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allclean
new file mode 100755
index 00000000000..9f691c93851
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allclean
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+cleanCase
+
+rm -rf 0
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allrun b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allrun
new file mode 100755
index 00000000000..ae405888c0b
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/Allrun
@@ -0,0 +1,36 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+# Set application name
+application=`getApplication`
+
+rm -f 0
+cp -r 0.orig 0
+
+runApplication chemkinToFoam \
+               chemkin/grimech30.dat chemkin/thermo30.dat chemkin/transportProperties \
+               constant/reactionsGRI constant/thermo.compressibleGasGRI
+
+runApplication blockMesh
+runApplication setFields
+
+
+# Run the application without chemistry until 1500 to let the flow field develop
+foamDictionary -entry "writeInterval" -set "1500" system/controlDict
+foamDictionary -entry "endTime" -set "1500" system/controlDict
+foamDictionary -entry "chemistry" -set "off" constant/chemistryProperties
+
+runApplication $application
+
+
+# Run with chemistry until flame reach its full size
+foamDictionary -entry "writeInterval" -set "100" system/controlDict
+foamDictionary -entry "endTime" -set "5000" system/controlDict
+foamDictionary -entry "chemistry" -set "on" constant/chemistryProperties
+
+runApplication -o $application
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/grimech30.dat b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/grimech30.dat
new file mode 100644
index 00000000000..021f9958791
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/grimech30.dat
@@ -0,0 +1,328 @@
+! GRI-Mech Version 3.0 7/30/99  CHEMKIN-II format
+! See README30 file at anonymous FTP site unix.sri.com, directory gri;
+! WorldWideWeb home page http://www.me.berkeley.edu/gri_mech/ or
+! through http://www.gri.org , under 'Basic  Research',
+! for additional information, contacts, and disclaimer
+ELEMENTS
+O  H  C  N  AR
+END
+SPECIES
+H2      H       O       O2      OH      H2O     HO2     H2O2
+C       CH      CH2     CH2(S)  CH3     CH4     CO      CO2
+HCO     CH2O    CH2OH   CH3O    CH3OH   C2H     C2H2    C2H3
+C2H4    C2H5    C2H6    HCCO    CH2CO   HCCOH   N2      AR
+C3H7    C3H8    CH2CHO  CH3CHO
+END
+!THERMO
+! Insert GRI-Mech thermodynamics here or use in default file
+!END
+REACTIONS
+2O+M<=>O2+M                              1.200E+17   -1.000        .00
+H2/ 2.40/ H2O/15.40/ CH4/ 2.00/ CO/ 1.75/ CO2/ 3.60/ C2H6/ 3.00/ AR/  .83/
+O+H+M<=>OH+M                             5.000E+17   -1.000        .00
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+H2<=>H+OH                              3.870E+04    2.700    6260.00
+O+HO2<=>OH+O2                            2.000E+13     .000        .00
+O+H2O2<=>OH+HO2                          9.630E+06    2.000    4000.00
+O+CH<=>H+CO                              5.700E+13     .000        .00
+O+CH2<=>H+HCO                            8.000E+13     .000        .00
+O+CH2(S)<=>H2+CO                         1.500E+13     .000        .00
+O+CH2(S)<=>H+HCO                         1.500E+13     .000        .00
+O+CH3<=>H+CH2O                           5.060E+13     .000        .00
+O+CH4<=>OH+CH3                           1.020E+09    1.500    8600.00
+O+CO(+M)<=>CO2(+M)                       1.800E+10     .000    2385.00
+   LOW/ 6.020E+14     .000    3000.00/
+H2/2.00/ O2/6.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/3.50/ C2H6/3.00/ AR/ .50/
+O+HCO<=>OH+CO                            3.000E+13     .000        .00
+O+HCO<=>H+CO2                            3.000E+13     .000        .00
+O+CH2O<=>OH+HCO                          3.900E+13     .000    3540.00
+O+CH2OH<=>OH+CH2O                        1.000E+13     .000        .00
+O+CH3O<=>OH+CH2O                         1.000E+13     .000        .00
+O+CH3OH<=>OH+CH2OH                       3.880E+05    2.500    3100.00
+O+CH3OH<=>OH+CH3O                        1.300E+05    2.500    5000.00
+O+C2H<=>CH+CO                            5.000E+13     .000        .00
+O+C2H2<=>H+HCCO                          1.350E+07    2.000    1900.00
+O+C2H2<=>OH+C2H                          4.600E+19   -1.410   28950.00
+O+C2H2<=>CO+CH2                          6.940E+06    2.000    1900.00
+O+C2H3<=>H+CH2CO                         3.000E+13     .000        .00
+O+C2H4<=>CH3+HCO                         1.250E+07    1.830     220.00
+O+C2H5<=>CH3+CH2O                        2.240E+13     .000        .00
+O+C2H6<=>OH+C2H5                         8.980E+07    1.920    5690.00
+O+HCCO<=>H+2CO                           1.000E+14     .000        .00
+O+CH2CO<=>OH+HCCO                        1.000E+13     .000    8000.00
+O+CH2CO<=>CH2+CO2                        1.750E+12     .000    1350.00
+O2+CO<=>O+CO2                            2.500E+12     .000   47800.00
+O2+CH2O<=>HO2+HCO                        1.000E+14     .000   40000.00
+H+O2+M<=>HO2+M                           2.800E+18    -.860        .00
+O2/ .00/ H2O/ .00/ CO/ .75/ CO2/1.50/ C2H6/1.50/ N2/ .00/ AR/ .00/
+H+2O2<=>HO2+O2                           2.080E+19   -1.240        .00
+H+O2+H2O<=>HO2+H2O                       11.26E+18    -.760        .00
+H+O2+N2<=>HO2+N2                         2.600E+19   -1.240        .00
+H+O2+AR<=>HO2+AR                         7.000E+17    -.800        .00
+H+O2<=>O+OH                              2.650E+16    -.6707  17041.00
+2H+M<=>H2+M                              1.000E+18   -1.000        .00
+H2/ .00/ H2O/ .00/ CH4/2.00/ CO2/ .00/ C2H6/3.00/ AR/ .63/
+2H+H2<=>2H2                              9.000E+16    -.600        .00
+2H+H2O<=>H2+H2O                          6.000E+19   -1.250        .00
+2H+CO2<=>H2+CO2                          5.500E+20   -2.000        .00
+H+OH+M<=>H2O+M                           2.200E+22   -2.000        .00
+H2/ .73/ H2O/3.65/ CH4/2.00/ C2H6/3.00/ AR/ .38/
+H+HO2<=>O+H2O                            3.970E+12     .000     671.00
+H+HO2<=>O2+H2                            4.480E+13     .000    1068.00
+H+HO2<=>2OH                              0.840E+14     .000     635.00
+H+H2O2<=>HO2+H2                          1.210E+07    2.000    5200.00
+H+H2O2<=>OH+H2O                          1.000E+13     .000    3600.00
+H+CH<=>C+H2                              1.650E+14     .000        .00
+H+CH2(+M)<=>CH3(+M)                      6.000E+14     .000        .00
+     LOW  /  1.040E+26   -2.760   1600.00/
+     TROE/   .5620  91.00  5836.00  8552.00/
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+CH2(S)<=>CH+H2                         3.000E+13     .000        .00
+H+CH3(+M)<=>CH4(+M)                      13.90E+15    -.534     536.00
+     LOW  /  2.620E+33   -4.760   2440.00/
+     TROE/   .7830   74.00  2941.00  6964.00 /
+H2/2.00/ H2O/6.00/ CH4/3.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+CH4<=>CH3+H2                           6.600E+08    1.620   10840.00
+H+HCO(+M)<=>CH2O(+M)                     1.090E+12     .480    -260.00
+     LOW  /  2.470E+24   -2.570    425.00/
+     TROE/   .7824  271.00  2755.00  6570.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+HCO<=>H2+CO                            7.340E+13     .000        .00
+H+CH2O(+M)<=>CH2OH(+M)                   5.400E+11     .454    3600.00
+     LOW  /  1.270E+32   -4.820   6530.00/
+     TROE/   .7187  103.00  1291.00  4160.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH2O(+M)<=>CH3O(+M)                    5.400E+11     .454    2600.00
+     LOW  /  2.200E+30   -4.800   5560.00/
+     TROE/   .7580   94.00  1555.00  4200.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH2O<=>HCO+H2                          5.740E+07    1.900    2742.00
+H+CH2OH(+M)<=>CH3OH(+M)                  1.055E+12     .500      86.00
+     LOW  /  4.360E+31   -4.650   5080.00/
+     TROE/   .600  100.00  90000.0  10000.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH2OH<=>H2+CH2O                        2.000E+13     .000        .00
+H+CH2OH<=>OH+CH3                         1.650E+11     .650    -284.00
+H+CH2OH<=>CH2(S)+H2O                     3.280E+13    -.090     610.00
+H+CH3O(+M)<=>CH3OH(+M)                   2.430E+12     .515      50.00
+     LOW  /  4.660E+41   -7.440   14080.0/
+     TROE/   .700  100.00  90000.0 10000.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+H+CH3O<=>H+CH2OH                         4.150E+07    1.630    1924.00
+H+CH3O<=>H2+CH2O                         2.000E+13     .000        .00
+H+CH3O<=>OH+CH3                          1.500E+12     .500    -110.00
+H+CH3O<=>CH2(S)+H2O                      2.620E+14    -.230    1070.00
+H+CH3OH<=>CH2OH+H2                       1.700E+07    2.100    4870.00
+H+CH3OH<=>CH3O+H2                        4.200E+06    2.100    4870.00
+H+C2H(+M)<=>C2H2(+M)                     1.000E+17   -1.000        .00
+     LOW  /  3.750E+33   -4.800   1900.00/
+     TROE/   .6464  132.00  1315.00  5566.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H2(+M)<=>C2H3(+M)                    5.600E+12     .000    2400.00
+     LOW  /  3.800E+40   -7.270   7220.00/
+     TROE/   .7507   98.50  1302.00  4167.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H3(+M)<=>C2H4(+M)                    6.080E+12     .270     280.00
+     LOW  /  1.400E+30   -3.860   3320.00/
+     TROE/   .7820  207.50  2663.00  6095.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H3<=>H2+C2H2                         3.000E+13     .000        .00
+H+C2H4(+M)<=>C2H5(+M)                    0.540E+12     .454    1820.00
+     LOW  /  0.600E+42   -7.620   6970.00/
+     TROE/   .9753  210.00   984.00  4374.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H4<=>C2H3+H2                         1.325E+06    2.530   12240.00
+H+C2H5(+M)<=>C2H6(+M)                    5.210E+17    -.990    1580.00
+     LOW  /  1.990E+41   -7.080   6685.00/
+     TROE/   .8422  125.00  2219.00  6882.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C2H5<=>H2+C2H4                         2.000E+12     .000        .00
+H+C2H6<=>C2H5+H2                         1.150E+08    1.900    7530.00
+H+HCCO<=>CH2(S)+CO                       1.000E+14     .000        .00
+H+CH2CO<=>HCCO+H2                        5.000E+13     .000    8000.00
+H+CH2CO<=>CH3+CO                         1.130E+13     .000    3428.00
+H+HCCOH<=>H+CH2CO                        1.000E+13     .000        .00
+H2+CO(+M)<=>CH2O(+M)                     4.300E+07    1.500   79600.00
+     LOW  /  5.070E+27   -3.420  84350.00/
+     TROE/   .9320  197.00  1540.00 10300.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+OH+H2<=>H+H2O                            2.160E+08    1.510    3430.00
+2OH(+M)<=>H2O2(+M)                       7.400E+13    -.370        .00
+     LOW  /  2.300E+18    -.900  -1700.00/
+     TROE/   .7346   94.00  1756.00  5182.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+2OH<=>O+H2O                              3.570E+04    2.400   -2110.00
+OH+HO2<=>O2+H2O                          1.450E+13     .000    -500.00
+ DUPLICATE
+OH+H2O2<=>HO2+H2O                        2.000E+12     .000     427.00
+ DUPLICATE
+OH+H2O2<=>HO2+H2O                        1.700E+18     .000   29410.00
+ DUPLICATE
+OH+C<=>H+CO                              5.000E+13     .000        .00
+OH+CH<=>H+HCO                            3.000E+13     .000        .00
+OH+CH2<=>H+CH2O                          2.000E+13     .000        .00
+OH+CH2<=>CH+H2O                          1.130E+07    2.000    3000.00
+OH+CH2(S)<=>H+CH2O                       3.000E+13     .000        .00
+OH+CH3(+M)<=>CH3OH(+M)                   2.790E+18   -1.430    1330.00
+     LOW  /  4.000E+36   -5.920   3140.00/
+     TROE/   .4120  195.0  5900.00  6394.00/
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+OH+CH3<=>CH2+H2O                         5.600E+07    1.600    5420.00
+OH+CH3<=>CH2(S)+H2O                      6.440E+17   -1.340    1417.00
+OH+CH4<=>CH3+H2O                         1.000E+08    1.600    3120.00
+OH+CO<=>H+CO2                            4.760E+07    1.228      70.00
+OH+HCO<=>H2O+CO                          5.000E+13     .000        .00
+OH+CH2O<=>HCO+H2O                        3.430E+09    1.180    -447.00
+OH+CH2OH<=>H2O+CH2O                      5.000E+12     .000        .00
+OH+CH3O<=>H2O+CH2O                       5.000E+12     .000        .00
+OH+CH3OH<=>CH2OH+H2O                     1.440E+06    2.000    -840.00
+OH+CH3OH<=>CH3O+H2O                      6.300E+06    2.000    1500.00
+OH+C2H<=>H+HCCO                          2.000E+13     .000        .00
+OH+C2H2<=>H+CH2CO                        2.180E-04    4.500   -1000.00
+OH+C2H2<=>H+HCCOH                        5.040E+05    2.300   13500.00
+OH+C2H2<=>C2H+H2O                        3.370E+07    2.000   14000.00
+OH+C2H2<=>CH3+CO                         4.830E-04    4.000   -2000.00
+OH+C2H3<=>H2O+C2H2                       5.000E+12     .000        .00
+OH+C2H4<=>C2H3+H2O                       3.600E+06    2.000    2500.00
+OH+C2H6<=>C2H5+H2O                       3.540E+06    2.120     870.00
+OH+CH2CO<=>HCCO+H2O                      7.500E+12     .000    2000.00
+2HO2<=>O2+H2O2                           1.300E+11     .000   -1630.00
+ DUPLICATE
+2HO2<=>O2+H2O2                           4.200E+14     .000   12000.00
+ DUPLICATE
+HO2+CH2<=>OH+CH2O                        2.000E+13     .000        .00
+HO2+CH3<=>O2+CH4                         1.000E+12     .000        .00
+HO2+CH3<=>OH+CH3O                        3.780E+13     .000        .00
+HO2+CO<=>OH+CO2                          1.500E+14     .000   23600.00
+HO2+CH2O<=>HCO+H2O2                      5.600E+06    2.000   12000.00
+C+O2<=>O+CO                              5.800E+13     .000     576.00
+C+CH2<=>H+C2H                            5.000E+13     .000        .00
+C+CH3<=>H+C2H2                           5.000E+13     .000        .00
+CH+O2<=>O+HCO                            6.710E+13     .000        .00
+CH+H2<=>H+CH2                            1.080E+14     .000    3110.00
+CH+H2O<=>H+CH2O                          5.710E+12     .000    -755.00
+CH+CH2<=>H+C2H2                          4.000E+13     .000        .00
+CH+CH3<=>H+C2H3                          3.000E+13     .000        .00
+CH+CH4<=>H+C2H4                          6.000E+13     .000        .00
+CH+CO(+M)<=>HCCO(+M)                     5.000E+13     .000        .00
+     LOW  /  2.690E+28   -3.740   1936.00/
+     TROE/   .5757  237.00  1652.00  5069.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+CH+CO2<=>HCO+CO                          1.900E+14     .000   15792.00
+CH+CH2O<=>H+CH2CO                        9.460E+13     .000    -515.00
+CH+HCCO<=>CO+C2H2                        5.000E+13     .000        .00
+CH2+O2=>OH+H+CO                          5.000E+12     .000    1500.00
+CH2+H2<=>H+CH3                           5.000E+05    2.000    7230.00
+2CH2<=>H2+C2H2                           1.600E+15     .000   11944.00
+CH2+CH3<=>H+C2H4                         4.000E+13     .000        .00
+CH2+CH4<=>2CH3                           2.460E+06    2.000    8270.00
+CH2+CO(+M)<=>CH2CO(+M)                   8.100E+11     .500    4510.00
+     LOW  /  2.690E+33   -5.110   7095.00/
+     TROE/   .5907  275.00  1226.00  5185.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+CH2+HCCO<=>C2H3+CO                       3.000E+13     .000        .00
+CH2(S)+N2<=>CH2+N2                       1.500E+13     .000     600.00
+CH2(S)+AR<=>CH2+AR                       9.000E+12     .000     600.00
+CH2(S)+O2<=>H+OH+CO                      2.800E+13     .000        .00
+CH2(S)+O2<=>CO+H2O                       1.200E+13     .000        .00
+CH2(S)+H2<=>CH3+H                        7.000E+13     .000        .00
+CH2(S)+H2O(+M)<=>CH3OH(+M)               4.820E+17   -1.160    1145.00
+     LOW  /  1.880E+38   -6.360   5040.00/
+     TROE/   .6027  208.00  3922.00  10180.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+CH2(S)+H2O<=>CH2+H2O                     3.000E+13     .000        .00
+CH2(S)+CH3<=>H+C2H4                      1.200E+13     .000    -570.00
+CH2(S)+CH4<=>2CH3                        1.600E+13     .000    -570.00
+CH2(S)+CO<=>CH2+CO                       9.000E+12     .000        .00
+CH2(S)+CO2<=>CH2+CO2                     7.000E+12     .000        .00
+CH2(S)+CO2<=>CO+CH2O                     1.400E+13     .000        .00
+CH2(S)+C2H6<=>CH3+C2H5                   4.000E+13     .000    -550.00
+CH3+O2<=>O+CH3O                          3.560E+13     .000   30480.00
+CH3+O2<=>OH+CH2O                         2.310E+12     .000   20315.00
+CH3+H2O2<=>HO2+CH4                       2.450E+04    2.470    5180.00
+2CH3(+M)<=>C2H6(+M)                      6.770E+16   -1.180     654.00
+     LOW  /  3.400E+41   -7.030   2762.00/
+     TROE/   .6190  73.20  1180.00  9999.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+2CH3<=>H+C2H5                            6.840E+12     .100   10600.00
+CH3+HCO<=>CH4+CO                         2.648E+13     .000        .00
+CH3+CH2O<=>HCO+CH4                       3.320E+03    2.810    5860.00
+CH3+CH3OH<=>CH2OH+CH4                    3.000E+07    1.500    9940.00
+CH3+CH3OH<=>CH3O+CH4                     1.000E+07    1.500    9940.00
+CH3+C2H4<=>C2H3+CH4                      2.270E+05    2.000    9200.00
+CH3+C2H6<=>C2H5+CH4                      6.140E+06    1.740   10450.00
+HCO+H2O<=>H+CO+H2O                       1.500E+18   -1.000   17000.00
+HCO+M<=>H+CO+M                           1.870E+17   -1.000   17000.00
+H2/2.00/ H2O/ .00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
+HCO+O2<=>HO2+CO                          13.45E+12     .000     400.00
+CH2OH+O2<=>HO2+CH2O                      1.800E+13     .000     900.00
+CH3O+O2<=>HO2+CH2O                       4.280E-13    7.600   -3530.00
+C2H+O2<=>HCO+CO                          1.000E+13     .000    -755.00
+C2H+H2<=>H+C2H2                          5.680E+10    0.900    1993.00
+C2H3+O2<=>HCO+CH2O                       4.580E+16   -1.390    1015.00
+C2H4(+M)<=>H2+C2H2(+M)                   8.000E+12     .440   86770.00
+     LOW  /  1.580E+51   -9.300  97800.00/
+     TROE/   .7345  180.00  1035.00  5417.00 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+C2H5+O2<=>HO2+C2H4                       8.400E+11     .000    3875.00
+HCCO+O2<=>OH+2CO                         3.200E+12     .000     854.00
+2HCCO<=>2CO+C2H2                         1.000E+13     .000        .00
+O+CH3=>H+H2+CO                           3.370E+13     .000        .00
+O+C2H4<=>H+CH2CHO                        6.700E+06    1.830     220.00
+O+C2H5<=>H+CH3CHO                        1.096E+14     .000        .00
+OH+HO2<=>O2+H2O                          0.500E+16     .000   17330.00
+  DUPLICATE
+OH+CH3=>H2+CH2O                          8.000E+09     .500   -1755.00
+CH+H2(+M)<=>CH3(+M)                      1.970E+12     .430    -370.00
+   LOW/ 4.820E+25  -2.80  590.0 /
+   TROE/ .578  122.0  2535.0  9365.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+CH2+O2=>2H+CO2                           5.800E+12     .000    1500.00
+CH2+O2<=>O+CH2O                          2.400E+12     .000    1500.00
+CH2+CH2=>2H+C2H2                         2.000E+14     .000   10989.00
+CH2(S)+H2O=>H2+CH2O                      6.820E+10     .250    -935.00
+C2H3+O2<=>O+CH2CHO                       3.030E+11     .290      11.00
+C2H3+O2<=>HO2+C2H2                       1.337E+06    1.610    -384.00
+O+CH3CHO<=>OH+CH2CHO                     2.920E+12     .000    1808.00
+O+CH3CHO=>OH+CH3+CO                      2.920E+12     .000    1808.00
+O2+CH3CHO=>HO2+CH3+CO                    3.010E+13     .000   39150.00
+H+CH3CHO<=>CH2CHO+H2                     2.050E+09    1.160    2405.00
+H+CH3CHO=>CH3+H2+CO                      2.050E+09    1.160    2405.00
+OH+CH3CHO=>CH3+H2O+CO                    2.343E+10    0.730   -1113.00
+HO2+CH3CHO=>CH3+H2O2+CO                  3.010E+12     .000   11923.00
+CH3+CH3CHO=>CH3+CH4+CO                   2.720E+06    1.770    5920.00
+H+CH2CO(+M)<=>CH2CHO(+M)                 4.865E+11    0.422   -1755.00
+    LOW/ 1.012E+42  -7.63  3854.0/
+    TROE/ 0.465  201.0  1773.0  5333.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+CH2CHO=>H+CH2+CO2                      1.500E+14     .000       .00
+O2+CH2CHO=>OH+CO+CH2O                    1.810E+10     .000       .00
+O2+CH2CHO=>OH+2HCO                       2.350E+10     .000       .00
+H+CH2CHO<=>CH3+HCO                       2.200E+13     .000       .00
+H+CH2CHO<=>CH2CO+H2                      1.100E+13     .000       .00
+OH+CH2CHO<=>H2O+CH2CO                    1.200E+13     .000       .00
+OH+CH2CHO<=>HCO+CH2OH                    3.010E+13     .000       .00
+CH3+C2H5(+M)<=>C3H8(+M)                  .9430E+13     .000       .00
+     LOW/ 2.710E+74  -16.82  13065.0 /
+     TROE/ .1527  291.0  2742.0  7748.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+C3H8<=>OH+C3H7                         1.930E+05    2.680   3716.00
+H+C3H8<=>C3H7+H2                         1.320E+06    2.540   6756.00
+OH+C3H8<=>C3H7+H2O                       3.160E+07    1.800    934.00
+C3H7+H2O2<=>HO2+C3H8                     3.780E+02    2.720   1500.00
+CH3+C3H8<=>C3H7+CH4                      0.903E+00    3.650   7154.00
+CH3+C2H4(+M)<=>C3H7(+M)                  2.550E+06    1.600   5700.00
+      LOW/ 3.00E+63  -14.6  18170./
+      TROE/ .1894  277.0  8748.0  7891.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+O+C3H7<=>C2H5+CH2O                       9.640E+13     .000       .00
+H+C3H7(+M)<=>C3H8(+M)                    3.613E+13     .000       .00
+      LOW/ 4.420E+61  -13.545  11357.0/
+      TROE/ .315  369.0  3285.0  6667.0 /
+H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
+H+C3H7<=>CH3+C2H5                        4.060E+06    2.190    890.00
+OH+C3H7<=>C2H5+CH2OH                     2.410E+13     .000       .00
+HO2+C3H7<=>O2+C3H8                       2.550E+10    0.255   -943.00
+HO2+C3H7=>OH+C2H5+CH2O                   2.410E+13     .000       .00
+CH3+C3H7<=>2C2H5                         1.927E+13   -0.320       .00
+END
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/thermo30.dat b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/thermo30.dat
new file mode 100644
index 00000000000..89e7122c35f
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/thermo30.dat
@@ -0,0 +1,218 @@
+THERMO ALL
+   250.000  1000.000  5000.000
+! GRI-Mech Version 3.0 Thermodynamics released 7/30/99
+! NASA Polynomial format for CHEMKIN-II
+! see README file for disclaimer
+O                 L 1/90O   1               G   200.000  3500.000  1000.000    1
+ 2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15    2
+ 2.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-06    3
+-6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00                   4
+O2                TPIS89O   2               G   200.000  3500.000  1000.000    1
+ 3.28253784E+00 1.48308754E-03-7.57966669E-07 2.09470555E-10-2.16717794E-14    2
+-1.08845772E+03 5.45323129E+00 3.78245636E+00-2.99673416E-03 9.84730201E-06    3
+-9.68129509E-09 3.24372837E-12-1.06394356E+03 3.65767573E+00                   4
+H                 L 7/88H   1               G   200.000  3500.000  1000.000    1
+ 2.50000001E+00-2.30842973E-11 1.61561948E-14-4.73515235E-18 4.98197357E-22    2
+ 2.54736599E+04-4.46682914E-01 2.50000000E+00 7.05332819E-13-1.99591964E-15    3
+ 2.30081632E-18-9.27732332E-22 2.54736599E+04-4.46682853E-01                   4
+H2                TPIS78H   2               G   200.000  3500.000  1000.000    1
+ 3.33727920E+00-4.94024731E-05 4.99456778E-07-1.79566394E-10 2.00255376E-14    2
+-9.50158922E+02-3.20502331E+00 2.34433112E+00 7.98052075E-03-1.94781510E-05    3
+ 2.01572094E-08-7.37611761E-12-9.17935173E+02 6.83010238E-01                   4
+OH                RUS 78O   1H   1          G   200.000  3500.000  1000.000    1
+ 3.09288767E+00 5.48429716E-04 1.26505228E-07-8.79461556E-11 1.17412376E-14    2
+ 3.85865700E+03 4.47669610E+00 3.99201543E+00-2.40131752E-03 4.61793841E-06    3
+-3.88113333E-09 1.36411470E-12 3.61508056E+03-1.03925458E-01                   4
+H2O               L 8/89H   2O   1          G   200.000  3500.000  1000.000    1
+ 3.03399249E+00 2.17691804E-03-1.64072518E-07-9.70419870E-11 1.68200992E-14    2
+-3.00042971E+04 4.96677010E+00 4.19864056E+00-2.03643410E-03 6.52040211E-06    3
+-5.48797062E-09 1.77197817E-12-3.02937267E+04-8.49032208E-01                   4
+HO2               L 5/89H   1O   2          G   200.000  3500.000  1000.000    1
+ 4.01721090E+00 2.23982013E-03-6.33658150E-07 1.14246370E-10-1.07908535E-14    2
+ 1.11856713E+02 3.78510215E+00 4.30179801E+00-4.74912051E-03 2.11582891E-05    3
+-2.42763894E-08 9.29225124E-12 2.94808040E+02 3.71666245E+00                   4
+H2O2              L 7/88H   2O   2          G   200.000  3500.000  1000.000    1
+ 4.16500285E+00 4.90831694E-03-1.90139225E-06 3.71185986E-10-2.87908305E-14    2
+-1.78617877E+04 2.91615662E+00 4.27611269E+00-5.42822417E-04 1.67335701E-05    3
+-2.15770813E-08 8.62454363E-12-1.77025821E+04 3.43505074E+00                   4
+C                 L11/88C   1               G   200.000  3500.000  1000.000    1
+ 2.49266888E+00 4.79889284E-05-7.24335020E-08 3.74291029E-11-4.87277893E-15    2
+ 8.54512953E+04 4.80150373E+00 2.55423955E+00-3.21537724E-04 7.33792245E-07    3
+-7.32234889E-10 2.66521446E-13 8.54438832E+04 4.53130848E+00                   4
+CH                TPIS79C   1H   1          G   200.000  3500.000  1000.000    1
+ 2.87846473E+00 9.70913681E-04 1.44445655E-07-1.30687849E-10 1.76079383E-14    2
+ 7.10124364E+04 5.48497999E+00 3.48981665E+00 3.23835541E-04-1.68899065E-06    3
+ 3.16217327E-09-1.40609067E-12 7.07972934E+04 2.08401108E+00                   4
+CH2               L S/93C   1H   2          G   200.000  3500.000  1000.000    1
+ 2.87410113E+00 3.65639292E-03-1.40894597E-06 2.60179549E-10-1.87727567E-14    2
+ 4.62636040E+04 6.17119324E+00 3.76267867E+00 9.68872143E-04 2.79489841E-06    3
+-3.85091153E-09 1.68741719E-12 4.60040401E+04 1.56253185E+00                   4
+CH2(S)            L S/93C   1H   2          G   200.000  3500.000  1000.000    1
+ 2.29203842E+00 4.65588637E-03-2.01191947E-06 4.17906000E-10-3.39716365E-14    2
+ 5.09259997E+04 8.62650169E+00 4.19860411E+00-2.36661419E-03 8.23296220E-06    3
+-6.68815981E-09 1.94314737E-12 5.04968163E+04-7.69118967E-01                   4
+CH3               L11/89C   1H   3          G   200.000  3500.000  1000.000    1
+ 2.28571772E+00 7.23990037E-03-2.98714348E-06 5.95684644E-10-4.67154394E-14    2
+ 1.67755843E+04 8.48007179E+00 3.67359040E+00 2.01095175E-03 5.73021856E-06    3
+-6.87117425E-09 2.54385734E-12 1.64449988E+04 1.60456433E+00                   4
+CH4               L 8/88C   1H   4          G   200.000  3500.000  1000.000    1
+ 7.48514950E-02 1.33909467E-02-5.73285809E-06 1.22292535E-09-1.01815230E-13    2
+-9.46834459E+03 1.84373180E+01 5.14987613E+00-1.36709788E-02 4.91800599E-05    3
+-4.84743026E-08 1.66693956E-11-1.02466476E+04-4.64130376E+00                   4
+CO                TPIS79C   1O   1          G   200.000  3500.000  1000.000    1
+ 2.71518561E+00 2.06252743E-03-9.98825771E-07 2.30053008E-10-2.03647716E-14    2
+-1.41518724E+04 7.81868772E+00 3.57953347E+00-6.10353680E-04 1.01681433E-06    3
+ 9.07005884E-10-9.04424499E-13-1.43440860E+04 3.50840928E+00                   4
+CO2               L 7/88C   1O   2          G   200.000  3500.000  1000.000    1
+ 3.85746029E+00 4.41437026E-03-2.21481404E-06 5.23490188E-10-4.72084164E-14    2
+-4.87591660E+04 2.27163806E+00 2.35677352E+00 8.98459677E-03-7.12356269E-06    3
+ 2.45919022E-09-1.43699548E-13-4.83719697E+04 9.90105222E+00                   4
+HCO               L12/89H   1C   1O   1     G   200.000  3500.000  1000.000    1
+ 2.77217438E+00 4.95695526E-03-2.48445613E-06 5.89161778E-10-5.33508711E-14    2
+ 4.01191815E+03 9.79834492E+00 4.22118584E+00-3.24392532E-03 1.37799446E-05    3
+-1.33144093E-08 4.33768865E-12 3.83956496E+03 3.39437243E+00                   4
+CH2O              L 8/88H   2C   1O   1     G   200.000  3500.000  1000.000    1
+ 1.76069008E+00 9.20000082E-03-4.42258813E-06 1.00641212E-09-8.83855640E-14    2
+-1.39958323E+04 1.36563230E+01 4.79372315E+00-9.90833369E-03 3.73220008E-05    3
+-3.79285261E-08 1.31772652E-11-1.43089567E+04 6.02812900E-01                   4
+CH2OH             GUNL93C   1H   3O   1     G   200.000  3500.000  1000.000    1
+ 3.69266569E+00 8.64576797E-03-3.75101120E-06 7.87234636E-10-6.48554201E-14    2
+-3.24250627E+03 5.81043215E+00 3.86388918E+00 5.59672304E-03 5.93271791E-06    3
+-1.04532012E-08 4.36967278E-12-3.19391367E+03 5.47302243E+00                   4
+CH3O              121686C   1H   3O   1     G   250.00   3000.00   1000.000    1
+ 0.03770799E+02 0.07871497E-01-0.02656384E-04 0.03944431E-08-0.02112616E-12    2
+ 0.12783252E+03 0.02929575E+02 0.02106204E+02 0.07216595E-01 0.05338472E-04    3
+-0.07377636E-07 0.02075610E-10 0.09786011E+04 0.13152177E+02                   4
+CH3OH             L 8/88C   1H   4O   1     G   200.000  3500.000  1000.000    1
+ 1.78970791E+00 1.40938292E-02-6.36500835E-06 1.38171085E-09-1.17060220E-13    2
+-2.53748747E+04 1.45023623E+01 5.71539582E+00-1.52309129E-02 6.52441155E-05    3
+-7.10806889E-08 2.61352698E-11-2.56427656E+04-1.50409823E+00                   4
+C2H               L 1/91C   2H   1          G   200.000  3500.000  1000.000    1
+ 3.16780652E+00 4.75221902E-03-1.83787077E-06 3.04190252E-10-1.77232770E-14    2
+ 6.71210650E+04 6.63589475E+00 2.88965733E+00 1.34099611E-02-2.84769501E-05    3
+ 2.94791045E-08-1.09331511E-11 6.68393932E+04 6.22296438E+00                   4
+C2H2              L 1/91C   2H   2          G   200.000  3500.000  1000.000    1
+ 4.14756964E+00 5.96166664E-03-2.37294852E-06 4.67412171E-10-3.61235213E-14    2
+ 2.59359992E+04-1.23028121E+00 8.08681094E-01 2.33615629E-02-3.55171815E-05    3
+ 2.80152437E-08-8.50072974E-12 2.64289807E+04 1.39397051E+01                   4
+C2H3              L 2/92C   2H   3          G   200.000  3500.000  1000.000    1
+ 3.01672400E+00 1.03302292E-02-4.68082349E-06 1.01763288E-09-8.62607041E-14    2
+ 3.46128739E+04 7.78732378E+00 3.21246645E+00 1.51479162E-03 2.59209412E-05    3
+-3.57657847E-08 1.47150873E-11 3.48598468E+04 8.51054025E+00                   4
+C2H4              L 1/91C   2H   4          G   200.000  3500.000  1000.000    1
+ 2.03611116E+00 1.46454151E-02-6.71077915E-06 1.47222923E-09-1.25706061E-13    2
+ 4.93988614E+03 1.03053693E+01 3.95920148E+00-7.57052247E-03 5.70990292E-05    3
+-6.91588753E-08 2.69884373E-11 5.08977593E+03 4.09733096E+00                   4
+C2H5              L12/92C   2H   5          G   200.000  3500.000  1000.000    1
+ 1.95465642E+00 1.73972722E-02-7.98206668E-06 1.75217689E-09-1.49641576E-13    2
+ 1.28575200E+04 1.34624343E+01 4.30646568E+00-4.18658892E-03 4.97142807E-05    3
+-5.99126606E-08 2.30509004E-11 1.28416265E+04 4.70720924E+00                   4
+C2H6              L 8/88C   2H   6          G   200.000  3500.000  1000.000    1
+ 1.07188150E+00 2.16852677E-02-1.00256067E-05 2.21412001E-09-1.90002890E-13    2
+-1.14263932E+04 1.51156107E+01 4.29142492E+00-5.50154270E-03 5.99438288E-05    3
+-7.08466285E-08 2.68685771E-11-1.15222055E+04 2.66682316E+00                   4
+CH2CO             L 5/90C   2H   2O   1     G   200.000  3500.000  1000.000    1
+ 4.51129732E+00 9.00359745E-03-4.16939635E-06 9.23345882E-10-7.94838201E-14    2
+-7.55105311E+03 6.32247205E-01 2.13583630E+00 1.81188721E-02-1.73947474E-05    3
+ 9.34397568E-09-2.01457615E-12-7.04291804E+03 1.22156480E+01                   4
+HCCO              SRIC91H   1C   2O   1     G   250.00   4000.00   1000.000    1
+ 0.56282058E+01 0.40853401E-02-0.15934547E-05 0.28626052E-09-0.19407832E-13    2
+ 0.19327215E+05-0.39302595E+01 0.22517214E+01 0.17655021E-01-0.23729101E-04    3
+ 0.17275759E-07-0.50664811E-11 0.20059449E+05 0.12490417E+02                   4
+HCCOH              SRI91C   2O   1H   2     G   250.000  5000.000  1000.000    1
+ 0.59238291E+01 0.67923600E-02-0.25658564E-05 0.44987841E-09-0.29940101E-13    2
+ 0.72646260E+04-0.76017742E+01 0.12423733E+01 0.31072201E-01-0.50866864E-04    3
+ 0.43137131E-07-0.14014594E-10 0.80316143E+04 0.13874319E+02                   4
+H2CN               41687H   2C   1N   1     G   250.00   4000.000  1000.000    1
+ 0.52097030E+01 0.29692911E-02-0.28555891E-06-0.16355500E-09 0.30432589E-13    2
+ 0.27677109E+05-0.44444780E+01 0.28516610E+01 0.56952331E-02 0.10711400E-05    3
+-0.16226120E-08-0.23511081E-12 0.28637820E+05 0.89927511E+01                   4
+HCN               GRI/98H   1C   1N   1     G   200.000  6000.000  1000.000    1
+ 0.38022392E+01 0.31464228E-02-0.10632185E-05 0.16619757E-09-0.97997570E-14    2
+ 0.14407292E+05 0.15754601E+01 0.22589886E+01 0.10051170E-01-0.13351763E-04    3
+ 0.10092349E-07-0.30089028E-11 0.14712633E+05 0.89164419E+01                   4
+HNO               And93 H   1N   1O   1     G   200.000  6000.000  1000.000    1
+ 0.29792509E+01 0.34944059E-02-0.78549778E-06 0.57479594E-10-0.19335916E-15    2
+ 0.11750582E+05 0.86063728E+01 0.45334916E+01-0.56696171E-02 0.18473207E-04    3
+-0.17137094E-07 0.55454573E-11 0.11548297E+05 0.17498417E+01                   4
+N                 L 6/88N   1               G   200.000  6000.000  1000.000    1
+ 0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226245E-10-0.20360982E-14    2
+ 0.56133773E+05 0.46496096E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00    3
+ 0.00000000E+00 0.00000000E+00 0.56104637E+05 0.41939087E+01                   4
+NNH               T07/93N   2H   1          G   200.000  6000.000  1000.000    1
+ 0.37667544E+01 0.28915082E-02-0.10416620E-05 0.16842594E-09-0.10091896E-13    2
+ 0.28650697E+05 0.44705067E+01 0.43446927E+01-0.48497072E-02 0.20059459E-04    3
+-0.21726464E-07 0.79469539E-11 0.28791973E+05 0.29779410E+01                   4
+N2O               L 7/88N   2O   1          G   200.000  6000.000  1000.000    1
+ 0.48230729E+01 0.26270251E-02-0.95850874E-06 0.16000712E-09-0.97752303E-14    2
+ 0.80734048E+04-0.22017207E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04    3
+ 0.96819806E-08-0.29307182E-11 0.87417744E+04 0.10757992E+02                   4
+NH                And94 N   1H   1          G   200.000  6000.000  1000.000    1
+ 0.27836928E+01 0.13298430E-02-0.42478047E-06 0.78348501E-10-0.55044470E-14    2
+ 0.42120848E+05 0.57407799E+01 0.34929085E+01 0.31179198E-03-0.14890484E-05    3
+ 0.24816442E-08-0.10356967E-11 0.41880629E+05 0.18483278E+01                   4
+NH2               And89 N   1H   2          G   200.000  6000.000  1000.000    1
+ 0.28347421E+01 0.32073082E-02-0.93390804E-06 0.13702953E-09-0.79206144E-14    2
+ 0.22171957E+05 0.65204163E+01 0.42040029E+01-0.21061385E-02 0.71068348E-05    3
+-0.56115197E-08 0.16440717E-11 0.21885910E+05-0.14184248E+00                   4
+NH3               J 6/77N   1H   3          G   200.000  6000.000  1000.000    1
+ 0.26344521E+01 0.56662560E-02-0.17278676E-05 0.23867161E-09-0.12578786E-13    2
+-0.65446958E+04 0.65662928E+01 0.42860274E+01-0.46605230E-02 0.21718513E-04    3
+-0.22808887E-07 0.82638046E-11-0.67417285E+04-0.62537277E+00                   4
+NO                RUS 78N   1O   1          G   200.000  6000.000  1000.000    1
+ 0.32606056E+01 0.11911043E-02-0.42917048E-06 0.69457669E-10-0.40336099E-14    2
+ 0.99209746E+04 0.63693027E+01 0.42184763E+01-0.46389760E-02 0.11041022E-04    3
+-0.93361354E-08 0.28035770E-11 0.98446230E+04 0.22808464E+01                   4
+NO2               L 7/88N   1O   2          G   200.000  6000.000  1000.000    1
+ 0.48847542E+01 0.21723956E-02-0.82806906E-06 0.15747510E-09-0.10510895E-13    2
+ 0.23164983E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04    3
+-0.20475426E-07 0.78350564E-11 0.28966179E+04 0.63119917E+01                   4
+HCNO              BDEA94H   1N   1C   1O   1G   250.000  5000.000  1382.000    1
+ 6.59860456E+00 3.02778626E-03-1.07704346E-06 1.71666528E-10-1.01439391E-14    2
+ 1.79661339E+04-1.03306599E+01 2.64727989E+00 1.27505342E-02-1.04794236E-05    3
+ 4.41432836E-09-7.57521466E-13 1.92990252E+04 1.07332972E+01                   4
+HOCN              BDEA94H   1N   1C   1O   1G   250.000  5000.000  1368.000    1
+ 5.89784885E+00 3.16789393E-03-1.11801064E-06 1.77243144E-10-1.04339177E-14    2
+-3.70653331E+03-6.18167825E+00 3.78604952E+00 6.88667922E-03-3.21487864E-06    3
+ 5.17195767E-10 1.19360788E-14-2.82698400E+03 5.63292162E+00                   4
+HNCO              BDEA94H   1N   1C   1O   1G   250.000  5000.000  1478.000    1
+ 6.22395134E+00 3.17864004E-03-1.09378755E-06 1.70735163E-10-9.95021955E-15    2
+-1.66599344E+04-8.38224741E+00 3.63096317E+00 7.30282357E-03-2.28050003E-06    3
+-6.61271298E-10 3.62235752E-13-1.55873636E+04 6.19457727E+00                   4
+NCO               EA 93 N   1C   1O   1     G   200.000  6000.000  1000.000    1
+ 0.51521845E+01 0.23051761E-02-0.88033153E-06 0.14789098E-09-0.90977996E-14    2
+ 0.14004123E+05-0.25442660E+01 0.28269308E+01 0.88051688E-02-0.83866134E-05    3
+ 0.48016964E-08-0.13313595E-11 0.14682477E+05 0.95504646E+01                   4
+CN                HBH92 C   1N   1          G   200.000  6000.000  1000.000    1
+ 0.37459805E+01 0.43450775E-04 0.29705984E-06-0.68651806E-10 0.44134173E-14    2
+ 0.51536188E+05 0.27867601E+01 0.36129351E+01-0.95551327E-03 0.21442977E-05    3
+-0.31516323E-09-0.46430356E-12 0.51708340E+05 0.39804995E+01                   4
+HCNN              SRI/94C   1N   2H   1     G   250.000  5000.000  1000.000    1
+ 0.58946362E+01 0.39895959E-02-0.15982380E-05 0.29249395E-09-0.20094686E-13    2
+ 0.53452941E+05-0.51030502E+01 0.25243194E+01 0.15960619E-01-0.18816354E-04    3
+ 0.12125540E-07-0.32357378E-11 0.54261984E+05 0.11675870E+02                   4
+N2                121286N   2               G   250.000  5000.000  1000.000    1
+ 0.02926640E+02 0.14879768E-02-0.05684760E-05 0.10097038E-09-0.06753351E-13    2
+-0.09227977E+04 0.05980528E+02 0.03298677E+02 0.14082404E-02-0.03963222E-04    3
+ 0.05641515E-07-0.02444854E-10-0.10208999E+04 0.03950372E+02                   4
+AR                120186AR  1               G   250.000  5000.000  1000.000    1
+ 0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00    2
+-0.07453750E+04 0.04366000E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00    3
+ 0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366000E+02                   4
+C3H8              L 4/85C   3H   8          G   250.000  5000.000  1000.000    1
+ 0.75341368E+01 0.18872239E-01-0.62718491E-05 0.91475649E-09-0.47838069E-13    2
+-0.16467516E+05-0.17892349E+02 0.93355381E+00 0.26424579E-01 0.61059727E-05    3
+-0.21977499E-07 0.95149253E-11-0.13958520E+05 0.19201691E+02                   4
+C3H7              L 9/84C   3H   7          G   250.000  5000.000  1000.000    1
+ 0.77026987E+01 0.16044203E-01-0.52833220E-05 0.76298590E-09-0.39392284E-13    2
+ 0.82984336E+04-0.15480180E+02 0.10515518E+01 0.25991980E-01 0.23800540E-05    3
+-0.19609569E-07 0.93732470E-11 0.10631863E+05 0.21122559E+02                   4
+CH3CHO            L 8/88C   2H   4O   1     G   200.000  6000.000  1000.000    1
+ 0.54041108E+01 0.11723059E-01-0.42263137E-05 0.68372451E-09-0.40984863E-13    2
+-0.22593122E+05-0.34807917E+01 0.47294595E+01-0.31932858E-02 0.47534921E-04    3
+-0.57458611E-07 0.21931112E-10-0.21572878E+05 0.41030159E+01                   4
+CH2CHO            SAND86O   1H   3C   2     G   250.000  5000.000  1000.000    1
+ 0.05975670E+02 0.08130591E-01-0.02743624E-04 0.04070304E-08-0.02176017E-12    2
+ 0.04903218E+04-0.05045251E+02 0.03409062E+02 0.10738574E-01 0.01891492E-04    3
+-0.07158583E-07 0.02867385E-10 0.15214766E+04 0.09558290E+02                   4
+END
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties
new file mode 100644
index 00000000000..72efcb29c16
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "chemkin";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+".*"
+{
+    transport
+    {
+        As 1.512e-06;
+        Ts 120.;
+    }
+}
+
+"H2"
+{
+    transport
+    {
+        As 6.362e-07;
+        Ts 72.;
+    }
+}
+
+"CO2"
+{
+    transport
+    {
+        As 1.572e-06;
+        Ts 240.;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties
new file mode 100644
index 00000000000..85b1026eb5d
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties
@@ -0,0 +1,90 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version         2;
+    format          ascii;
+    class           dictionary;
+    location        "constant";
+    object          chemistryProperties;
+}
+
+chemistryType
+{
+    chemistrySolver ode;
+    chemistryThermo psi;
+    TDAC            on;
+}
+
+chemistry       on;
+
+importantSpecies
+{
+    CO2             ;
+    H2O             ;
+    CH4             ;
+    O2              ;
+}
+
+initialChemicalTimeStep 1e-07;
+
+odeCoeffs
+{
+    solver          seulex;
+    absTol          1e-12;
+    relTol          1e-07;
+}
+
+reduction
+{
+    active          on;
+    log             on;
+    tolerance       0.0001;
+    method          DAC;
+    initialSet
+    {
+        CO              ;
+        CH4             ;
+        HO2             ;
+    }
+    automaticSIS    off;
+    fuelSpecies
+    {
+        CH4             1;
+    }
+}
+
+tabulation
+{
+    active          on;
+    log             on;
+    printProportion off;
+    printNumRetrieve off;
+    tolerance       0.003;
+    method          ISAT;
+    scaleFactor
+    {
+        otherSpecies    1;
+        Temperature     10000;
+        Pressure        1e+15;
+        deltaT          1;
+    }
+    maxNLeafs       5000;
+    chPMaxLifeTime  1000;
+    maxGrowth       100;
+    checkEntireTreeInterval 500;
+    maxDepthFactor  2;
+    minBalanceThreshold 30;
+    MRURetrieve     false;
+    maxMRUSize      0;
+    growPoints      true;
+    maxNumNewDim    10;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties
new file mode 100644
index 00000000000..10c2685eae1
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties
@@ -0,0 +1,27 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      combustionProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+combustionModel  EDC<psiChemistryCombustion>;
+
+active  true;
+
+EDCCoeffs
+{
+    version v2005;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g
new file mode 100644
index 00000000000..a0d7102656f
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 0 -9.81);
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
new file mode 100644
index 00000000000..c1ca1d2d7bf
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
@@ -0,0 +1,210 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      radiationProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Radiation model on/off
+radiation       on;
+
+// Radiation model
+radiationModel  P1;
+
+// Absorption coefficients model
+absorptionEmissionModel greyMeanAbsorptionEmission;
+
+// Number of flow iterations per radiation iteration
+solverFreq 1;
+
+//
+noRadiation
+{
+}
+
+// P1 Model
+P1Coeffs
+{
+
+}
+
+
+fvDOMCoeffs
+{
+    nPhi        2;          // azimuthal angles in PI/2 on X-Y.(from Y to X)
+    nTheta      2;          // polar angles in PI (from Z to X-Y plane)
+    convergence 1e-1;       // convergence criteria for radiation iteration
+    maxIter     1;          // maximum number of iterations
+    cacheDiv    true;       // cache the div of the RTE equation.
+
+//  NOTE: Caching div is "only" accurate if the upwind scheme is used in
+//  div(Ji,Ii_h)
+}
+
+constantAbsorptionEmissionCoeffs
+{
+    absorptivity    absorptivity    [ m^-1 ]       0.01;
+    emissivity      emissivity      [ m^-1 ]       0.01;
+    E               E               [ kg m^-1 s^-3 ]  0;
+}
+
+greyMeanAbsorptionEmissionCoeffs
+{
+    lookUpTableFileName      none;
+
+    EhrrCoeff                0.0;
+
+    CO2
+    {
+        Tcommon         200;   //Common Temp
+        invTemp         true;   //Is the polynomio using inverse temperature.
+        Tlow            200;   //Low Temp
+        Thigh           2500;  //High Temp
+
+        loTcoeffs       //coefss for T < Tcommon
+        (
+            0           //  a0            +
+            0           //  a1*T          +
+            0           //  a2*T^(+/-)2   +
+            0           //  a3*T^(+/-)3   +
+            0           //  a4*T^(+/-)4   +
+            0           //  a5*T^(+/-)5   +
+        );
+        hiTcoeffs        //coefss for T > Tcommon
+        (
+            18.741
+            -121.31e3
+            273.5e6
+            -194.05e9
+            56.31e12
+            -5.8169e15
+        );
+
+    }
+
+    H2O
+    {
+        Tcommon         200;
+        invTemp         true;
+        Tlow            200;
+        Thigh           2500;
+
+        loTcoeffs
+        (
+            0
+            0
+            0
+            0
+            0
+            0
+        );
+        hiTcoeffs
+        (
+            -0.23093
+            -1.12390e3
+             9.4153e6
+            -2.99885e9
+             0.51382e12
+            -1.868e10
+        );
+    }
+
+    CH4
+    {
+        Tcommon         200;
+        Tlow            200;
+        Thigh           2500;
+        invTemp         false;
+
+        loTcoeffs
+        (
+            0
+            0
+            0
+            0
+            0
+            0
+        );
+        hiTcoeffs
+        (
+            6.6334
+            -0.0035686
+            1.6682e-8
+            2.5611e-10
+            -2.6558e-14
+            0
+        );
+    }
+
+    O2
+    {
+        Tcommon         200;
+        invTemp         true;
+        Tlow            200;
+        Thigh           2500;
+
+        loTcoeffs
+        (
+            0
+            0
+            0
+            0
+            0
+            0
+        );
+        hiTcoeffs
+        (
+            0.1
+            0
+            0
+            0
+            0
+            0
+        );
+    }
+
+
+    N2
+    {
+        Tcommon         200;
+        invTemp         true;
+        Tlow            200;
+        Thigh           2500;
+
+        loTcoeffs
+        (
+            0
+            0
+            0
+            0
+            0
+            0
+        );
+        hiTcoeffs
+        (
+            0.1
+            0
+            0
+            0
+            0
+            0
+        );
+    }
+}
+
+scatterModel    none;
+
+sootModel       none;
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/reactionsGRI b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/reactionsGRI
new file mode 100644
index 00000000000..8bd6be3583c
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/reactionsGRI
@@ -0,0 +1,3610 @@
+elements
+5
+(
+O
+H
+C
+N
+Ar
+)
+;
+
+species
+36
+(
+H2
+H
+O
+O2
+OH
+H2O
+HO2
+H2O2
+C
+CH
+CH2
+CH2(S)
+CH3
+CH4
+CO
+CO2
+HCO
+CH2O
+CH2OH
+CH3O
+CH3OH
+C2H
+C2H2
+C2H3
+C2H4
+C2H5
+C2H6
+HCCO
+CH2CO
+HCCOH
+N2
+AR
+C3H7
+C3H8
+CH2CHO
+CH3CHO
+)
+;
+
+reactions
+{
+    un-named-reaction-0
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "2O = O2";
+        A               1.2e+11;
+        beta            -1;
+        Ta              0;
+        coeffs
+36
+(
+(H2 2.4)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 15.4)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.75)
+(CO2 3.6)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.83)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-1
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "O + H = OH";
+        A               5e+11;
+        beta            -1;
+        Ta              0;
+        coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-2
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + H2 = H + OH";
+        A               38.7;
+        beta            2.7;
+        Ta              3149.977155;
+    }
+    un-named-reaction-3
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HO2 = OH + O2";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-4
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + H2O2 = OH + HO2";
+        A               9630;
+        beta            2;
+        Ta              2012.764955;
+    }
+    un-named-reaction-5
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH = H + CO";
+        A               5.7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-6
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2 = H + HCO";
+        A               8e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-7
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2(S) = H2 + CO";
+        A               1.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-8
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2(S) = H + HCO";
+        A               1.5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-9
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3 = H + CH2O";
+        A               5.06e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-10
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH4 = OH + CH3";
+        A               1020000;
+        beta            1.5;
+        Ta              4327.444654;
+    }
+    un-named-reaction-11
+    {
+        type            reversibleArrheniusLindemannFallOffReaction;
+        reaction        "O + CO = CO2";
+        k0
+        {
+            A               602000000;
+            beta            0;
+            Ta              1509.573717;
+        }
+        kInf
+        {
+            A               18000000;
+            beta            0;
+            Ta              1200.111105;
+        }
+        F
+        {
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 6)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 3.5)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.5)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-12
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCO = OH + CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-13
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCO = H + CO2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-14
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2O = OH + HCO";
+        A               3.9e+10;
+        beta            0;
+        Ta              1781.296985;
+    }
+    un-named-reaction-15
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2OH = OH + CH2O";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-16
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3O = OH + CH2O";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-17
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3OH = OH + CH2OH";
+        A               388;
+        beta            2.5;
+        Ta              1559.89284;
+    }
+    un-named-reaction-18
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3OH = OH + CH3O";
+        A               130;
+        beta            2.5;
+        Ta              2515.956194;
+    }
+    un-named-reaction-19
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H = CH + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-20
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = H + HCCO";
+        A               13500;
+        beta            2;
+        Ta              956.0633538;
+    }
+    un-named-reaction-21
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = OH + C2H";
+        A               4.6e+16;
+        beta            -1.41;
+        Ta              14567.38636;
+    }
+    un-named-reaction-22
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H2 = CO + CH2";
+        A               6940;
+        beta            2;
+        Ta              956.0633538;
+    }
+    un-named-reaction-23
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H3 = H + CH2CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-24
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H4 = CH3 + HCO";
+        A               12500;
+        beta            1.83;
+        Ta              110.7020725;
+    }
+    un-named-reaction-25
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H5 = CH3 + CH2O";
+        A               2.24e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-26
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H6 = OH + C2H5";
+        A               89800;
+        beta            1.92;
+        Ta              2863.158149;
+    }
+    un-named-reaction-27
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + HCCO = H + 2CO";
+        A               1e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-28
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2CO = OH + HCCO";
+        A               1e+10;
+        beta            0;
+        Ta              4025.529911;
+    }
+    un-named-reaction-29
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH2CO = CH2 + CO2";
+        A               1750000000;
+        beta            0;
+        Ta              679.3081724;
+    }
+    un-named-reaction-30
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O2 + CO = O + CO2";
+        A               2500000000;
+        beta            0;
+        Ta              24052.54122;
+    }
+    un-named-reaction-31
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O2 + CH2O = HO2 + HCO";
+        A               1e+11;
+        beta            0;
+        Ta              20127.64955;
+    }
+    un-named-reaction-32
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "H + O2 = HO2";
+        A               2.8e+12;
+        beta            -0.86;
+        Ta              0;
+        coeffs
+36
+(
+(H2 1)
+(H 1)
+(O 1)
+(O2 0)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 1)
+(CO 0.75)
+(CO2 1.5)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 1.5)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 0)
+(AR 0)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-33
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + 2O2 = HO2 + O2";
+        A               2.08e+13;
+        beta            -1.24;
+        Ta              0;
+    }
+    un-named-reaction-34
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + H2O = HO2 + H2O";
+        A               1.126e+13;
+        beta            -0.76;
+        Ta              0;
+    }
+    un-named-reaction-35
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + N2 = HO2 + N2";
+        A               2.6e+13;
+        beta            -1.24;
+        Ta              0;
+    }
+    un-named-reaction-36
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 + AR = HO2 + AR";
+        A               7e+11;
+        beta            -0.8;
+        Ta              0;
+    }
+    un-named-reaction-37
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + O2 = O + OH";
+        A               2.65e+13;
+        beta            -0.6707;
+        Ta              8574.881901;
+    }
+    un-named-reaction-38
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "2H = H2";
+        A               1e+12;
+        beta            -1;
+        Ta              0;
+        coeffs
+36
+(
+(H2 0)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1)
+(CO2 0)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.63)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-39
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + H2 = 2H2";
+        A               9e+10;
+        beta            -0.6;
+        Ta              0;
+    }
+    un-named-reaction-40
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + H2O = H2 + H2O";
+        A               6e+13;
+        beta            -1.25;
+        Ta              0;
+    }
+    un-named-reaction-41
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2H + CO2 = H2 + CO2";
+        A               5.5e+14;
+        beta            -2;
+        Ta              0;
+    }
+    un-named-reaction-42
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "H + OH = H2O";
+        A               2.2e+16;
+        beta            -2;
+        Ta              0;
+        coeffs
+36
+(
+(H2 0.73)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 3.65)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1)
+(CO2 1)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.38)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-43
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = O + H2O";
+        A               3970000000;
+        beta            0;
+        Ta              337.6413213;
+    }
+    un-named-reaction-44
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = O2 + H2";
+        A               4.48e+10;
+        beta            0;
+        Ta              537.4082431;
+    }
+    un-named-reaction-45
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HO2 = 2OH";
+        A               8.4e+10;
+        beta            0;
+        Ta              319.5264367;
+    }
+    un-named-reaction-46
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + H2O2 = HO2 + H2";
+        A               12100;
+        beta            2;
+        Ta              2616.594442;
+    }
+    un-named-reaction-47
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + H2O2 = OH + H2O";
+        A               1e+10;
+        beta            0;
+        Ta              1811.48846;
+    }
+    un-named-reaction-48
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH = C + H2";
+        A               1.65e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-49
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2 = CH3";
+        k0
+        {
+            A               1.04e+20;
+            beta            -2.76;
+            Ta              805.1059821;
+        }
+        kInf
+        {
+            A               6e+11;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.562;
+            Tsss            91;
+            Ts              5836;
+            Tss             8552;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-50
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2(S) = CH + H2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-51
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH3 = CH4";
+        k0
+        {
+            A               2.62e+27;
+            beta            -4.76;
+            Ta              1227.786623;
+        }
+        kInf
+        {
+            A               1.39e+13;
+            beta            -0.534;
+            Ta              269.710504;
+        }
+        F
+        {
+            alpha           0.783;
+            Tsss            74;
+            Ts              2941;
+            Tss             6964;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 3)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-52
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH4 = CH3 + H2";
+        A               660000;
+        beta            1.62;
+        Ta              5454.593029;
+    }
+    un-named-reaction-53
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + HCO = CH2O";
+        k0
+        {
+            A               2.47e+18;
+            beta            -2.57;
+            Ta              213.8562765;
+        }
+        kInf
+        {
+            A               1090000000;
+            beta            0.48;
+            Ta              -130.8297221;
+        }
+        F
+        {
+            alpha           0.7824;
+            Tsss            271;
+            Ts              2755;
+            Tss             6570;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-54
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCO = H2 + CO";
+        A               7.34e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-55
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2O = CH2OH";
+        k0
+        {
+            A               1.27e+26;
+            beta            -4.82;
+            Ta              3285.83879;
+        }
+        kInf
+        {
+            A               540000000;
+            beta            0.454;
+            Ta              1811.48846;
+        }
+        F
+        {
+            alpha           0.7187;
+            Tsss            103;
+            Ts              1291;
+            Tss             4160;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-56
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2O = CH3O";
+        k0
+        {
+            A               2.2e+24;
+            beta            -4.8;
+            Ta              2797.743288;
+        }
+        kInf
+        {
+            A               540000000;
+            beta            0.454;
+            Ta              1308.297221;
+        }
+        F
+        {
+            alpha           0.758;
+            Tsss            94;
+            Ts              1555;
+            Tss             4200;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-57
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2O = HCO + H2";
+        A               57400;
+        beta            1.9;
+        Ta              1379.750377;
+    }
+    un-named-reaction-58
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2OH = CH3OH";
+        k0
+        {
+            A               4.36e+25;
+            beta            -4.65;
+            Ta              2556.211493;
+        }
+        kInf
+        {
+            A               1055000000;
+            beta            0.5;
+            Ta              43.27444654;
+        }
+        F
+        {
+            alpha           0.6;
+            Tsss            100;
+            Ts              90000;
+            Tss             10000;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-59
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = H2 + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-60
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = OH + CH3";
+        A               165000000;
+        beta            0.65;
+        Ta              -142.9063118;
+    }
+    un-named-reaction-61
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2OH = CH2(S) + H2O";
+        A               3.28e+10;
+        beta            -0.09;
+        Ta              306.9466557;
+    }
+    un-named-reaction-62
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH3O = CH3OH";
+        k0
+        {
+            A               4.66e+35;
+            beta            -7.44;
+            Ta              7084.932643;
+        }
+        kInf
+        {
+            A               2430000000;
+            beta            0.515;
+            Ta              25.15956194;
+        }
+        F
+        {
+            alpha           0.7;
+            Tsss            100;
+            Ts              90000;
+            Tss             10000;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-63
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = H + CH2OH";
+        A               41500;
+        beta            1.63;
+        Ta              968.1399435;
+    }
+    un-named-reaction-64
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = H2 + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-65
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = OH + CH3";
+        A               1500000000;
+        beta            0.5;
+        Ta              -55.35103627;
+    }
+    un-named-reaction-66
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3O = CH2(S) + H2O";
+        A               2.62e+11;
+        beta            -0.23;
+        Ta              538.4146256;
+    }
+    un-named-reaction-67
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3OH = CH2OH + H2";
+        A               17000;
+        beta            2.1;
+        Ta              2450.541333;
+    }
+    un-named-reaction-68
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3OH = CH3O + H2";
+        A               4200;
+        beta            2.1;
+        Ta              2450.541333;
+    }
+    un-named-reaction-69
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H = C2H2";
+        k0
+        {
+            A               3.75e+27;
+            beta            -4.8;
+            Ta              956.0633538;
+        }
+        kInf
+        {
+            A               1e+14;
+            beta            -1;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.6464;
+            Tsss            132;
+            Ts              1315;
+            Tss             5566;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-70
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H2 = C2H3";
+        k0
+        {
+            A               3.8e+34;
+            beta            -7.27;
+            Ta              3633.040744;
+        }
+        kInf
+        {
+            A               5600000000;
+            beta            0;
+            Ta              1207.658973;
+        }
+        F
+        {
+            alpha           0.7507;
+            Tsss            98.5;
+            Ts              1302;
+            Tss             4167;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-71
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H3 = C2H4";
+        k0
+        {
+            A               1.4e+24;
+            beta            -3.86;
+            Ta              1670.594913;
+        }
+        kInf
+        {
+            A               6080000000;
+            beta            0.27;
+            Ta              140.8935469;
+        }
+        F
+        {
+            alpha           0.782;
+            Tsss            207.5;
+            Ts              2663;
+            Tss             6095;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-72
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H3 = H2 + C2H2";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-73
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H4 = C2H5";
+        k0
+        {
+            A               6e+35;
+            beta            -7.62;
+            Ta              3507.242935;
+        }
+        kInf
+        {
+            A               540000000;
+            beta            0.454;
+            Ta              915.8080547;
+        }
+        F
+        {
+            alpha           0.9753;
+            Tsss            210;
+            Ts              984;
+            Tss             4374;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-74
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H4 = C2H3 + H2";
+        A               1325;
+        beta            2.53;
+        Ta              6159.060763;
+    }
+    un-named-reaction-75
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C2H5 = C2H6";
+        k0
+        {
+            A               1.99e+35;
+            beta            -7.08;
+            Ta              3363.833432;
+        }
+        kInf
+        {
+            A               5.21e+14;
+            beta            -0.99;
+            Ta              795.0421574;
+        }
+        F
+        {
+            alpha           0.8422;
+            Tsss            125;
+            Ts              2219;
+            Tss             6882;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-76
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H5 = H2 + C2H4";
+        A               2000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-77
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C2H6 = C2H5 + H2";
+        A               115000;
+        beta            1.9;
+        Ta              3789.030028;
+    }
+    un-named-reaction-78
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCCO = CH2(S) + CO";
+        A               1e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-79
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CO = HCCO + H2";
+        A               5e+10;
+        beta            0;
+        Ta              4025.529911;
+    }
+    un-named-reaction-80
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CO = CH3 + CO";
+        A               1.13e+10;
+        beta            0;
+        Ta              1724.939567;
+    }
+    un-named-reaction-81
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + HCCOH = H + CH2CO";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-82
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H2 + CO = CH2O";
+        k0
+        {
+            A               5.07e+21;
+            beta            -3.42;
+            Ta              42444.181;
+        }
+        kInf
+        {
+            A               43000;
+            beta            1.5;
+            Ta              40054.02261;
+        }
+        F
+        {
+            alpha           0.932;
+            Tsss            197;
+            Ts              1540;
+            Tss             10300;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-83
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2 = H + H2O";
+        A               216000;
+        beta            1.51;
+        Ta              1725.945949;
+    }
+    un-named-reaction-84
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "2OH = H2O2";
+        k0
+        {
+            A               2.3e+12;
+            beta            -0.9;
+            Ta              -855.425106;
+        }
+        kInf
+        {
+            A               7.4e+10;
+            beta            -0.37;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.7346;
+            Tsss            94;
+            Ts              1756;
+            Tss             5182;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-85
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2OH = O + H2O";
+        A               35.7;
+        beta            2.4;
+        Ta              -1061.733514;
+    }
+    un-named-reaction-86
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HO2 = O2 + H2O";
+        A               1.45e+10;
+        beta            0;
+        Ta              -251.5956194;
+    }
+    un-named-reaction-87
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2O2 = HO2 + H2O";
+        A               2000000000;
+        beta            0;
+        Ta              214.862659;
+    }
+    un-named-reaction-88
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + H2O2 = HO2 + H2O";
+        A               1.7e+15;
+        beta            0;
+        Ta              14798.85433;
+    }
+    un-named-reaction-89
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C = H + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-90
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH = H + HCO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-91
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2 = H + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-92
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2 = CH + H2O";
+        A               11300;
+        beta            2;
+        Ta              1509.573717;
+    }
+    un-named-reaction-93
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2(S) = H + CH2O";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-94
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "OH + CH3 = CH3OH";
+        k0
+        {
+            A               4e+30;
+            beta            -5.92;
+            Ta              1580.02049;
+        }
+        kInf
+        {
+            A               2.79e+15;
+            beta            -1.43;
+            Ta              669.2443477;
+        }
+        F
+        {
+            alpha           0.412;
+            Tsss            195;
+            Ts              5900;
+            Tss             6394;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-95
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3 = CH2 + H2O";
+        A               56000;
+        beta            1.6;
+        Ta              2727.296514;
+    }
+    un-named-reaction-96
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3 = CH2(S) + H2O";
+        A               6.44e+14;
+        beta            -1.34;
+        Ta              713.0219854;
+    }
+    un-named-reaction-97
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH4 = CH3 + H2O";
+        A               100000;
+        beta            1.6;
+        Ta              1569.956665;
+    }
+    un-named-reaction-98
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CO = H + CO2";
+        A               47600;
+        beta            1.228;
+        Ta              35.22338672;
+    }
+    un-named-reaction-99
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HCO = H2O + CO";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-100
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2O = HCO + H2O";
+        A               3430000;
+        beta            1.18;
+        Ta              -224.9264838;
+    }
+    un-named-reaction-101
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2OH = H2O + CH2O";
+        A               5000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-102
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3O = H2O + CH2O";
+        A               5000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-103
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3OH = CH2OH + H2O";
+        A               1440;
+        beta            2;
+        Ta              -422.6806406;
+    }
+    un-named-reaction-104
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH3OH = CH3O + H2O";
+        A               6300;
+        beta            2;
+        Ta              754.7868583;
+    }
+    un-named-reaction-105
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H = H + HCCO";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-106
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = H + CH2CO";
+        A               2.18e-07;
+        beta            4.5;
+        Ta              -503.1912388;
+    }
+    un-named-reaction-107
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = H + HCCOH";
+        A               504;
+        beta            2.3;
+        Ta              6793.081724;
+    }
+    un-named-reaction-108
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = C2H + H2O";
+        A               33700;
+        beta            2;
+        Ta              7044.677344;
+    }
+    un-named-reaction-109
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H2 = CH3 + CO";
+        A               4.83e-07;
+        beta            4;
+        Ta              -1006.382478;
+    }
+    un-named-reaction-110
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H3 = H2O + C2H2";
+        A               5000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-111
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H4 = C2H3 + H2O";
+        A               3600;
+        beta            2;
+        Ta              1257.978097;
+    }
+    un-named-reaction-112
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C2H6 = C2H5 + H2O";
+        A               3540;
+        beta            2.12;
+        Ta              437.7763778;
+    }
+    un-named-reaction-113
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CO = HCCO + H2O";
+        A               7500000000;
+        beta            0;
+        Ta              1006.382478;
+    }
+    un-named-reaction-114
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HO2 = O2 + H2O2";
+        A               130000000;
+        beta            0;
+        Ta              -820.2017193;
+    }
+    un-named-reaction-115
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HO2 = O2 + H2O2";
+        A               4.2e+11;
+        beta            0;
+        Ta              6038.294866;
+    }
+    un-named-reaction-116
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH2 = OH + CH2O";
+        A               2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-117
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH3 = O2 + CH4";
+        A               1000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-118
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH3 = OH + CH3O";
+        A               3.78e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-119
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CO = OH + CO2";
+        A               1.5e+11;
+        beta            0;
+        Ta              11875.31324;
+    }
+    un-named-reaction-120
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + CH2O = HCO + H2O2";
+        A               5600;
+        beta            2;
+        Ta              6038.294866;
+    }
+    un-named-reaction-121
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + O2 = O + CO";
+        A               5.8e+10;
+        beta            0;
+        Ta              289.8381536;
+    }
+    un-named-reaction-122
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + CH2 = H + C2H";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-123
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C + CH3 = H + C2H2";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-124
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + O2 = O + HCO";
+        A               6.71e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-125
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + H2 = H + CH2";
+        A               1.08e+11;
+        beta            0;
+        Ta              1564.924753;
+    }
+    un-named-reaction-126
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + H2O = H + CH2O";
+        A               5710000000;
+        beta            0;
+        Ta              -379.9093853;
+    }
+    un-named-reaction-127
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH2 = H + C2H2";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-128
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH3 = H + C2H3";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-129
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH4 = H + C2H4";
+        A               6e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-130
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH + CO = HCCO";
+        k0
+        {
+            A               2.69e+22;
+            beta            -3.74;
+            Ta              974.1782384;
+        }
+        kInf
+        {
+            A               5e+10;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.5757;
+            Tsss            237;
+            Ts              1652;
+            Tss             5069;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-131
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CO2 = HCO + CO";
+        A               1.9e+11;
+        beta            0;
+        Ta              7946.396044;
+    }
+    un-named-reaction-132
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + CH2O = H + CH2CO";
+        A               9.46e+10;
+        beta            0;
+        Ta              -259.143488;
+    }
+    un-named-reaction-133
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH + HCCO = CO + C2H2";
+        A               5e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-134
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + O2 = OH + H + CO";
+        A               5000000000;
+        beta            0;
+        Ta              754.7868583;
+    }
+    un-named-reaction-135
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + H2 = H + CH3";
+        A               500;
+        beta            2;
+        Ta              3638.072657;
+    }
+    un-named-reaction-136
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2CH2 = H2 + C2H2";
+        A               1.6e+12;
+        beta            0;
+        Ta              6010.116157;
+    }
+    un-named-reaction-137
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + CH3 = H + C2H4";
+        A               4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-138
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + CH4 = 2CH3";
+        A               2460;
+        beta            2;
+        Ta              4161.391545;
+    }
+    un-named-reaction-139
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH2 + CO = CH2CO";
+        k0
+        {
+            A               2.69e+27;
+            beta            -5.11;
+            Ta              3570.14184;
+        }
+        kInf
+        {
+            A               810000000;
+            beta            0.5;
+            Ta              2269.392487;
+        }
+        F
+        {
+            alpha           0.5907;
+            Tsss            275;
+            Ts              1226;
+            Tss             5185;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-140
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + HCCO = C2H3 + CO";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-141
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + N2 = CH2 + N2";
+        A               1.5e+10;
+        beta            0;
+        Ta              301.9147433;
+    }
+    un-named-reaction-142
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + AR = CH2 + AR";
+        A               9000000000;
+        beta            0;
+        Ta              301.9147433;
+    }
+    un-named-reaction-143
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + O2 = H + OH + CO";
+        A               2.8e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-144
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + O2 = CO + H2O";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-145
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + H2 = CH3 + H";
+        A               7e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-146
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH2(S) + H2O = CH3OH";
+        k0
+        {
+            A               1.88e+32;
+            beta            -6.36;
+            Ta              2536.083844;
+        }
+        kInf
+        {
+            A               4.82e+14;
+            beta            -1.16;
+            Ta              576.1539685;
+        }
+        F
+        {
+            alpha           0.6027;
+            Tsss            208;
+            Ts              3922;
+            Tss             10180;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-147
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + H2O = CH2 + H2O";
+        A               3e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-148
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CH3 = H + C2H4";
+        A               1.2e+10;
+        beta            0;
+        Ta              -286.8190061;
+    }
+    un-named-reaction-149
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CH4 = 2CH3";
+        A               1.6e+10;
+        beta            0;
+        Ta              -286.8190061;
+    }
+    un-named-reaction-150
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO = CH2 + CO";
+        A               9000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-151
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO2 = CH2 + CO2";
+        A               7000000000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-152
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + CO2 = CO + CH2O";
+        A               1.4e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-153
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2(S) + C2H6 = CH3 + C2H5";
+        A               4e+10;
+        beta            0;
+        Ta              -276.7551814;
+    }
+    un-named-reaction-154
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + O2 = O + CH3O";
+        A               3.56e+10;
+        beta            0;
+        Ta              15337.26896;
+    }
+    un-named-reaction-155
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + O2 = OH + CH2O";
+        A               2310000000;
+        beta            0;
+        Ta              10222.33002;
+    }
+    un-named-reaction-156
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + H2O2 = HO2 + CH4";
+        A               24.5;
+        beta            2.47;
+        Ta              2606.530617;
+    }
+    un-named-reaction-157
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "2CH3 = C2H6";
+        k0
+        {
+            A               3.4e+35;
+            beta            -7.03;
+            Ta              1389.814202;
+        }
+        kInf
+        {
+            A               6.77e+13;
+            beta            -1.18;
+            Ta              329.0870702;
+        }
+        F
+        {
+            alpha           0.619;
+            Tsss            73.2;
+            Ts              1180;
+            Tss             9999;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-158
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2CH3 = H + C2H5";
+        A               6840000000;
+        beta            0.1;
+        Ta              5333.827132;
+    }
+    un-named-reaction-159
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + HCO = CH4 + CO";
+        A               2.648e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-160
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH2O = HCO + CH4";
+        A               3.32;
+        beta            2.81;
+        Ta              2948.70066;
+    }
+    un-named-reaction-161
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH3OH = CH2OH + CH4";
+        A               30000;
+        beta            1.5;
+        Ta              5001.720914;
+    }
+    un-named-reaction-162
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + CH3OH = CH3O + CH4";
+        A               10000;
+        beta            1.5;
+        Ta              5001.720914;
+    }
+    un-named-reaction-163
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C2H4 = C2H3 + CH4";
+        A               227;
+        beta            2;
+        Ta              4629.359397;
+    }
+    un-named-reaction-164
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C2H6 = C2H5 + CH4";
+        A               6140;
+        beta            1.74;
+        Ta              5258.348446;
+    }
+    un-named-reaction-165
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCO + H2O = H + CO + H2O";
+        A               1.5e+15;
+        beta            -1;
+        Ta              8554.25106;
+    }
+    un-named-reaction-166
+    {
+        type            reversiblethirdBodyArrheniusReaction;
+        reaction        "HCO = H + CO";
+        A               1.87e+14;
+        beta            -1;
+        Ta              8554.25106;
+        coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 0)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 1)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+    }
+    un-named-reaction-167
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCO + O2 = HO2 + CO";
+        A               1.345e+10;
+        beta            0;
+        Ta              201.2764955;
+    }
+    un-named-reaction-168
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2OH + O2 = HO2 + CH2O";
+        A               1.8e+10;
+        beta            0;
+        Ta              452.872115;
+    }
+    un-named-reaction-169
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3O + O2 = HO2 + CH2O";
+        A               4.28e-16;
+        beta            7.6;
+        Ta              -1776.265073;
+    }
+    un-named-reaction-170
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H + O2 = HCO + CO";
+        A               1e+10;
+        beta            0;
+        Ta              -379.9093853;
+    }
+    un-named-reaction-171
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H + H2 = H + C2H2";
+        A               56800000;
+        beta            0.9;
+        Ta              1002.860139;
+    }
+    un-named-reaction-172
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = HCO + CH2O";
+        A               4.58e+13;
+        beta            -1.39;
+        Ta              510.7391074;
+    }
+    un-named-reaction-173
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "C2H4 = H2 + C2H2";
+        k0
+        {
+            A               1.58e+48;
+            beta            -9.3;
+            Ta              49212.10316;
+        }
+        kInf
+        {
+            A               8e+12;
+            beta            0.44;
+            Ta              43661.90379;
+        }
+        F
+        {
+            alpha           0.7345;
+            Tsss            180;
+            Ts              1035;
+            Tss             5417;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-174
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H5 + O2 = HO2 + C2H4";
+        A               840000000;
+        beta            0;
+        Ta              1949.86605;
+    }
+    un-named-reaction-175
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HCCO + O2 = OH + 2CO";
+        A               3200000000;
+        beta            0;
+        Ta              429.725318;
+    }
+    un-named-reaction-176
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "2HCCO = 2CO + C2H2";
+        A               1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-177
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH3 = H + H2 + CO";
+        A               3.37e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-178
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H4 = H + CH2CHO";
+        A               6700;
+        beta            1.83;
+        Ta              110.7020725;
+    }
+    un-named-reaction-179
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C2H5 = H + CH3CHO";
+        A               1.096e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-180
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + HO2 = O2 + H2O";
+        A               5e+12;
+        beta            0;
+        Ta              8720.304169;
+    }
+    un-named-reaction-181
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "OH + CH3 = H2 + CH2O";
+        A               8000000;
+        beta            0.5;
+        Ta              -883.1006242;
+    }
+    un-named-reaction-182
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH + H2 = CH3";
+        k0
+        {
+            A               4.82e+19;
+            beta            -2.8;
+            Ta              296.8828309;
+        }
+        kInf
+        {
+            A               1970000000;
+            beta            0.43;
+            Ta              -186.1807584;
+        }
+        F
+        {
+            alpha           0.578;
+            Tsss            122;
+            Ts              2535;
+            Tss             9365;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-183
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + O2 = 2H + CO2";
+        A               5800000000;
+        beta            0;
+        Ta              754.7868583;
+    }
+    un-named-reaction-184
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH2 + O2 = O + CH2O";
+        A               2400000000;
+        beta            0;
+        Ta              754.7868583;
+    }
+    un-named-reaction-185
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2 + CH2 = 2H + C2H2";
+        A               2e+11;
+        beta            0;
+        Ta              5529.568524;
+    }
+    un-named-reaction-186
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH2(S) + H2O = H2 + CH2O";
+        A               68200000;
+        beta            0.25;
+        Ta              -470.4838083;
+    }
+    un-named-reaction-187
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = O + CH2CHO";
+        A               303000000;
+        beta            0.29;
+        Ta              5.535103627;
+    }
+    un-named-reaction-188
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C2H3 + O2 = HO2 + C2H2";
+        A               1337;
+        beta            1.61;
+        Ta              -193.2254357;
+    }
+    un-named-reaction-189
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + CH3CHO = OH + CH2CHO";
+        A               2920000000;
+        beta            0;
+        Ta              909.7697598;
+    }
+    un-named-reaction-190
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH3CHO = OH + CH3 + CO";
+        A               2920000000;
+        beta            0;
+        Ta              909.7697598;
+    }
+    un-named-reaction-191
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH3CHO = HO2 + CH3 + CO";
+        A               3.01e+10;
+        beta            0;
+        Ta              19699.937;
+    }
+    un-named-reaction-192
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH3CHO = CH2CHO + H2";
+        A               2050000;
+        beta            1.16;
+        Ta              1210.174929;
+    }
+    un-named-reaction-193
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "H + CH3CHO = CH3 + H2 + CO";
+        A               2050000;
+        beta            1.16;
+        Ta              1210.174929;
+    }
+    un-named-reaction-194
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "OH + CH3CHO = CH3 + H2O + CO";
+        A               23430000;
+        beta            0.73;
+        Ta              -560.0518488;
+    }
+    un-named-reaction-195
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "HO2 + CH3CHO = CH3 + H2O2 + CO";
+        A               3010000000;
+        beta            0;
+        Ta              5999.549141;
+    }
+    un-named-reaction-196
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "CH3 + CH3CHO = CH3 + CH4 + CO";
+        A               2720;
+        beta            1.77;
+        Ta              2978.892134;
+    }
+    un-named-reaction-197
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + CH2CO = CH2CHO";
+        k0
+        {
+            A               1.012e+36;
+            beta            -7.63;
+            Ta              1939.299034;
+        }
+        kInf
+        {
+            A               486500000;
+            beta            0.422;
+            Ta              -883.1006242;
+        }
+        F
+        {
+            alpha           0.465;
+            Tsss            201;
+            Ts              1773;
+            Tss             5333;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-198
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O + CH2CHO = H + CH2 + CO2";
+        A               1.5e+11;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-199
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH2CHO = OH + CO + CH2O";
+        A               18100000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-200
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "O2 + CH2CHO = OH + 2HCO";
+        A               23500000;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-201
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CHO = CH3 + HCO";
+        A               2.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-202
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + CH2CHO = CH2CO + H2";
+        A               1.1e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-203
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CHO = H2O + CH2CO";
+        A               1.2e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-204
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + CH2CHO = HCO + CH2OH";
+        A               3.01e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-205
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH3 + C2H5 = C3H8";
+        k0
+        {
+            A               2.71e+68;
+            beta            -16.82;
+            Ta              6574.193535;
+        }
+        kInf
+        {
+            A               9430000000;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.1527;
+            Tsss            291;
+            Ts              2742;
+            Tss             7748;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-206
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C3H8 = OH + C3H7";
+        A               193;
+        beta            2.68;
+        Ta              1869.858644;
+    }
+    un-named-reaction-207
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C3H8 = C3H7 + H2";
+        A               1320;
+        beta            2.54;
+        Ta              3399.56001;
+    }
+    un-named-reaction-208
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C3H8 = C3H7 + H2O";
+        A               31600;
+        beta            1.8;
+        Ta              469.9806171;
+    }
+    un-named-reaction-209
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "C3H7 + H2O2 = HO2 + C3H8";
+        A               0.378;
+        beta            2.72;
+        Ta              754.7868583;
+    }
+    un-named-reaction-210
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C3H8 = C3H7 + CH4";
+        A               0.000903;
+        beta            3.65;
+        Ta              3599.830123;
+    }
+    un-named-reaction-211
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "CH3 + C2H4 = C3H7";
+        k0
+        {
+            A               3e+57;
+            beta            -14.6;
+            Ta              9142.98481;
+        }
+        kInf
+        {
+            A               2550;
+            beta            1.6;
+            Ta              2868.190061;
+        }
+        F
+        {
+            alpha           0.1894;
+            Tsss            277;
+            Ts              8748;
+            Tss             7891;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-212
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "O + C3H7 = C2H5 + CH2O";
+        A               9.64e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-213
+    {
+        type            reversibleArrheniusTroeFallOffReaction;
+        reaction        "H + C3H7 = C3H8";
+        k0
+        {
+            A               4.42e+55;
+            beta            -13.545;
+            Ta              5714.742899;
+        }
+        kInf
+        {
+            A               3.613e+10;
+            beta            0;
+            Ta              0;
+        }
+        F
+        {
+            alpha           0.315;
+            Tsss            369;
+            Ts              3285;
+            Tss             6667;
+        }
+        thirdBodyEfficiencies
+        {
+            coeffs
+36
+(
+(H2 2)
+(H 1)
+(O 1)
+(O2 1)
+(OH 1)
+(H2O 6)
+(HO2 1)
+(H2O2 1)
+(C 1)
+(CH 1)
+(CH2 1)
+(CH2(S) 1)
+(CH3 1)
+(CH4 2)
+(CO 1.5)
+(CO2 2)
+(HCO 1)
+(CH2O 1)
+(CH2OH 1)
+(CH3O 1)
+(CH3OH 1)
+(C2H 1)
+(C2H2 1)
+(C2H3 1)
+(C2H4 1)
+(C2H5 1)
+(C2H6 3)
+(HCCO 1)
+(CH2CO 1)
+(HCCOH 1)
+(N2 1)
+(AR 0.7)
+(C3H7 1)
+(C3H8 1)
+(CH2CHO 1)
+(CH3CHO 1)
+)
+;
+        }
+    }
+    un-named-reaction-214
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "H + C3H7 = CH3 + C2H5";
+        A               4060;
+        beta            2.19;
+        Ta              447.8402026;
+    }
+    un-named-reaction-215
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "OH + C3H7 = C2H5 + CH2OH";
+        A               2.41e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-216
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "HO2 + C3H7 = O2 + C3H8";
+        A               25500000;
+        beta            0.255;
+        Ta              -474.5093382;
+    }
+    un-named-reaction-217
+    {
+        type            irreversibleArrheniusReaction;
+        reaction        "HO2 + C3H7 = OH + C2H5 + CH2O";
+        A               2.41e+10;
+        beta            0;
+        Ta              0;
+    }
+    un-named-reaction-218
+    {
+        type            reversibleArrheniusReaction;
+        reaction        "CH3 + C3H7 = 2C2H5";
+        A               1.927e+10;
+        beta            -0.32;
+        Ta              0;
+    }
+}
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermo.compressibleGasGRI b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermo.compressibleGasGRI
new file mode 100644
index 00000000000..392233e95da
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermo.compressibleGasGRI
@@ -0,0 +1,1390 @@
+OH
+{
+    specie
+    {
+        molWeight       17.00737;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.09288767 0.000548429716 1.26505228e-07 -8.79461556e-11 1.17412376e-14 3858.657 4.4766961 );
+        lowCpCoeffs     ( 3.99201543 -0.00240131752 4.61793841e-06 -3.88113333e-09 1.3641147e-12 3615.08056 -0.103925458 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               1;
+        H               1;
+    }
+}
+
+CN
+{
+    specie
+    {
+        molWeight       26.01785;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.7459805 4.3450775e-05 2.9705984e-07 -6.8651806e-11 4.4134173e-15 51536.188 2.7867601 );
+        lowCpCoeffs     ( 3.6129351 -0.00095551327 2.1442977e-06 -3.1516323e-10 -4.6430356e-13 51708.34 3.9804995 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        N               1;
+    }
+}
+
+C2H3
+{
+    specie
+    {
+        molWeight       27.04621;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.016724 0.0103302292 -4.68082349e-06 1.01763288e-09 -8.62607041e-14 34612.8739 7.78732378 );
+        lowCpCoeffs     ( 3.21246645 0.00151479162 2.59209412e-05 -3.57657847e-08 1.47150873e-11 34859.8468 8.51054025 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               3;
+    }
+}
+
+N2
+{
+    specie
+    {
+        molWeight       28.0134;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.92664 0.0014879768 -5.68476e-07 1.0097038e-10 -6.753351e-15 -922.7977 5.980528 );
+        lowCpCoeffs     ( 3.298677 0.0014082404 -3.963222e-06 5.641515e-09 -2.444854e-12 -1020.8999 3.950372 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               2;
+    }
+}
+
+HOCN
+{
+    specie
+    {
+        molWeight       43.02522;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1368;
+        highCpCoeffs    ( 5.89784885 0.00316789393 -1.11801064e-06 1.77243144e-10 -1.04339177e-14 -3706.53331 -6.18167825 );
+        lowCpCoeffs     ( 3.78604952 0.00688667922 -3.21487864e-06 5.17195767e-10 1.19360788e-14 -2826.984 5.63292162 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+N
+{
+    specie
+    {
+        molWeight       14.0067;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.4159429 0.00017489065 -1.1902369e-07 3.0226245e-11 -2.0360982e-15 56133.773 4.6496096 );
+        lowCpCoeffs     ( 2.5 0 0 0 0 56104.637 4.1939087 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+    }
+}
+
+C2H
+{
+    specie
+    {
+        molWeight       25.03027;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.16780652 0.00475221902 -1.83787077e-06 3.04190252e-10 -1.7723277e-14 67121.065 6.63589475 );
+        lowCpCoeffs     ( 2.88965733 0.0134099611 -2.84769501e-05 2.94791045e-08 -1.09331511e-11 66839.3932 6.22296438 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               1;
+    }
+}
+
+HNO
+{
+    specie
+    {
+        molWeight       31.01407;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.9792509 0.0034944059 -7.8549778e-07 5.7479594e-11 -1.9335916e-16 11750.582 8.6063728 );
+        lowCpCoeffs     ( 4.5334916 -0.0056696171 1.8473207e-05 -1.7137094e-08 5.5454573e-12 11548.297 1.7498417 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        O               1;
+    }
+}
+
+CH2CO
+{
+    specie
+    {
+        molWeight       42.03764;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.51129732 0.00900359745 -4.16939635e-06 9.23345882e-10 -7.94838201e-14 -7551.05311 0.632247205 );
+        lowCpCoeffs     ( 2.1358363 0.0181188721 -1.73947474e-05 9.34397568e-09 -2.01457615e-12 -7042.91804 12.215648 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               2;
+        O               1;
+    }
+}
+
+CH3
+{
+    specie
+    {
+        molWeight       15.03506;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.28571772 0.00723990037 -2.98714348e-06 5.95684644e-10 -4.67154394e-14 16775.5843 8.48007179 );
+        lowCpCoeffs     ( 3.6735904 0.00201095175 5.73021856e-06 -6.87117425e-09 2.54385734e-12 16444.9988 1.60456433 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+    }
+}
+
+C2H5
+{
+    specie
+    {
+        molWeight       29.06215;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.95465642 0.0173972722 -7.98206668e-06 1.75217689e-09 -1.49641576e-13 12857.52 13.4624343 );
+        lowCpCoeffs     ( 4.30646568 -0.00418658892 4.97142807e-05 -5.99126606e-08 2.30509004e-11 12841.6265 4.70720924 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               5;
+    }
+}
+
+C2H4
+{
+    specie
+    {
+        molWeight       28.05418;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.03611116 0.0146454151 -6.71077915e-06 1.47222923e-09 -1.25706061e-13 4939.88614 10.3053693 );
+        lowCpCoeffs     ( 3.95920148 -0.00757052247 5.70990292e-05 -6.91588753e-08 2.69884373e-11 5089.77593 4.09733096 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               4;
+    }
+}
+
+C3H8
+{
+    specie
+    {
+        molWeight       44.09721;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 7.5341368 0.018872239 -6.2718491e-06 9.1475649e-10 -4.7838069e-14 -16467.516 -17.892349 );
+        lowCpCoeffs     ( 0.93355381 0.026424579 6.1059727e-06 -2.1977499e-08 9.5149253e-12 -13958.52 19.201691 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               3;
+        H               8;
+    }
+}
+
+HCN
+{
+    specie
+    {
+        molWeight       27.02582;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.8022392 0.0031464228 -1.0632185e-06 1.6619757e-10 -9.799757e-15 14407.292 1.5754601 );
+        lowCpCoeffs     ( 2.2589886 0.01005117 -1.3351763e-05 1.0092349e-08 -3.0089028e-12 14712.633 8.9164419 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        C               1;
+        N               1;
+    }
+}
+
+C2H6
+{
+    specie
+    {
+        molWeight       30.07012;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.0718815 0.0216852677 -1.00256067e-05 2.21412001e-09 -1.9000289e-13 -11426.3932 15.1156107 );
+        lowCpCoeffs     ( 4.29142492 -0.0055015427 5.99438288e-05 -7.08466285e-08 2.68685771e-11 -11522.2055 2.66682316 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               6;
+    }
+}
+
+NH3
+{
+    specie
+    {
+        molWeight       17.03061;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.6344521 0.005666256 -1.7278676e-06 2.3867161e-10 -1.2578786e-14 -6544.6958 6.5662928 );
+        lowCpCoeffs     ( 4.2860274 -0.004660523 2.1718513e-05 -2.2808887e-08 8.2638046e-12 -6741.7285 -0.62537277 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        H               3;
+    }
+}
+
+CO2
+{
+    specie
+    {
+        molWeight       44.00995;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.85746029 0.00441437026 -2.21481404e-06 5.23490188e-10 -4.72084164e-14 -48759.166 2.27163806 );
+        lowCpCoeffs     ( 2.35677352 0.00898459677 -7.12356269e-06 2.45919022e-09 -1.43699548e-13 -48371.9697 9.90105222 );
+    }
+    transport
+    {
+        As              1.572e-06;
+        Ts              240;
+    }
+    elements
+    {
+        C               1;
+        O               2;
+    }
+}
+
+C2H2
+{
+    specie
+    {
+        molWeight       26.03824;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.14756964 0.00596166664 -2.37294852e-06 4.67412171e-10 -3.61235213e-14 25935.9992 -1.23028121 );
+        lowCpCoeffs     ( 0.808681094 0.0233615629 -3.55171815e-05 2.80152437e-08 -8.50072974e-12 26428.9807 13.9397051 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               2;
+    }
+}
+
+CH2OH
+{
+    specie
+    {
+        molWeight       31.03446;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.69266569 0.00864576797 -3.7510112e-06 7.87234636e-10 -6.48554201e-14 -3242.50627 5.81043215 );
+        lowCpCoeffs     ( 3.86388918 0.00559672304 5.93271791e-06 -1.04532012e-08 4.36967278e-12 -3193.91367 5.47302243 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+        O               1;
+    }
+}
+
+H2CN
+{
+    specie
+    {
+        molWeight       28.03379;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           4000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.209703 0.0029692911 -2.8555891e-07 -1.63555e-10 3.0432589e-14 27677.109 -4.444478 );
+        lowCpCoeffs     ( 2.851661 0.0056952331 1.07114e-06 -1.622612e-09 -2.3511081e-13 28637.82 8.9927511 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        C               1;
+        N               1;
+    }
+}
+
+HCCOH
+{
+    specie
+    {
+        molWeight       42.03764;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.9238291 0.00679236 -2.5658564e-06 4.4987841e-10 -2.9940101e-14 7264.626 -7.6017742 );
+        lowCpCoeffs     ( 1.2423733 0.031072201 -5.0866864e-05 4.3137131e-08 -1.4014594e-11 8031.6143 13.874319 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        O               1;
+        H               2;
+    }
+}
+
+H2O2
+{
+    specie
+    {
+        molWeight       34.01474;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.16500285 0.00490831694 -1.90139225e-06 3.71185986e-10 -2.87908305e-14 -17861.7877 2.91615662 );
+        lowCpCoeffs     ( 4.27611269 -0.000542822417 1.67335701e-05 -2.15770813e-08 8.62454363e-12 -17702.5821 3.43505074 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        O               2;
+    }
+}
+
+HCO
+{
+    specie
+    {
+        molWeight       29.01852;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.77217438 0.00495695526 -2.48445613e-06 5.89161778e-10 -5.33508711e-14 4011.91815 9.79834492 );
+        lowCpCoeffs     ( 4.22118584 -0.00324392532 1.37799446e-05 -1.33144093e-08 4.33768865e-12 3839.56496 3.39437243 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        C               1;
+        O               1;
+    }
+}
+
+NNH
+{
+    specie
+    {
+        molWeight       29.02137;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.7667544 0.0028915082 -1.041662e-06 1.6842594e-10 -1.0091896e-14 28650.697 4.4705067 );
+        lowCpCoeffs     ( 4.3446927 -0.0048497072 2.0059459e-05 -2.1726464e-08 7.9469539e-12 28791.973 2.977941 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               2;
+        H               1;
+    }
+}
+
+N2O
+{
+    specie
+    {
+        molWeight       44.0128;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.8230729 0.0026270251 -9.5850874e-07 1.6000712e-10 -9.7752303e-15 8073.4048 -2.2017207 );
+        lowCpCoeffs     ( 2.2571502 0.011304728 -1.3671319e-05 9.6819806e-09 -2.9307182e-12 8741.7744 10.757992 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               2;
+        O               1;
+    }
+}
+
+CH2(S)
+{
+    specie
+    {
+        molWeight       14.02709;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.29203842 0.00465588637 -2.01191947e-06 4.17906e-10 -3.39716365e-14 50925.9997 8.62650169 );
+        lowCpCoeffs     ( 4.19860411 -0.00236661419 8.2329622e-06 -6.68815981e-09 1.94314737e-12 50496.8163 -0.769118967 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               2;
+    }
+}
+
+O2
+{
+    specie
+    {
+        molWeight       31.9988;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.28253784 0.00148308754 -7.57966669e-07 2.09470555e-10 -2.16717794e-14 -1088.45772 5.45323129 );
+        lowCpCoeffs     ( 3.78245636 -0.00299673416 9.84730201e-06 -9.68129509e-09 3.24372837e-12 -1063.94356 3.65767573 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               2;
+    }
+}
+
+CH2CHO
+{
+    specie
+    {
+        molWeight       43.04561;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.97567 0.008130591 -2.743624e-06 4.070304e-10 -2.176017e-14 490.3218 -5.045251 );
+        lowCpCoeffs     ( 3.409062 0.010738574 1.891492e-06 -7.158583e-09 2.867385e-12 1521.4766 9.55829 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               1;
+        H               3;
+        C               2;
+    }
+}
+
+HNCO
+{
+    specie
+    {
+        molWeight       43.02522;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1478;
+        highCpCoeffs    ( 6.22395134 0.00317864004 -1.09378755e-06 1.70735163e-10 -9.95021955e-15 -16659.9344 -8.38224741 );
+        lowCpCoeffs     ( 3.63096317 0.00730282357 -2.28050003e-06 -6.61271298e-10 3.62235752e-13 -15587.3636 6.19457727 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+HCCO
+{
+    specie
+    {
+        molWeight       41.02967;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           4000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.6282058 0.0040853401 -1.5934547e-06 2.8626052e-10 -1.9407832e-14 19327.215 -3.9302595 );
+        lowCpCoeffs     ( 2.2517214 0.017655021 -2.3729101e-05 1.7275759e-08 -5.0664811e-12 20059.449 12.490417 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        C               2;
+        O               1;
+    }
+}
+
+H2
+{
+    specie
+    {
+        molWeight       2.01594;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.3372792 -4.94024731e-05 4.99456778e-07 -1.79566394e-10 2.00255376e-14 -950.158922 -3.20502331 );
+        lowCpCoeffs     ( 2.34433112 0.00798052075 -1.9478151e-05 2.01572094e-08 -7.37611761e-12 -917.935173 0.683010238 );
+    }
+    transport
+    {
+        As              6.362e-07;
+        Ts              72;
+    }
+    elements
+    {
+        H               2;
+    }
+}
+
+NO2
+{
+    specie
+    {
+        molWeight       46.0055;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.8847542 0.0021723956 -8.2806906e-07 1.574751e-10 -1.0510895e-14 2316.4983 -0.11741695 );
+        lowCpCoeffs     ( 3.9440312 -0.001585429 1.6657812e-05 -2.0475426e-08 7.8350564e-12 2896.6179 6.3119917 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        O               2;
+    }
+}
+
+CH4
+{
+    specie
+    {
+        molWeight       16.04303;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 0.074851495 0.0133909467 -5.73285809e-06 1.22292535e-09 -1.0181523e-13 -9468.34459 18.437318 );
+        lowCpCoeffs     ( 5.14987613 -0.0136709788 4.91800599e-05 -4.84743026e-08 1.66693956e-11 -10246.6476 -4.64130376 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               4;
+    }
+}
+
+C
+{
+    specie
+    {
+        molWeight       12.01115;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.49266888 4.79889284e-05 -7.2433502e-08 3.74291029e-11 -4.87277893e-15 85451.2953 4.80150373 );
+        lowCpCoeffs     ( 2.55423955 -0.000321537724 7.33792245e-07 -7.32234889e-10 2.66521446e-13 85443.8832 4.53130848 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+    }
+}
+
+HO2
+{
+    specie
+    {
+        molWeight       33.00677;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 4.0172109 0.00223982013 -6.3365815e-07 1.1424637e-10 -1.07908535e-14 111.856713 3.78510215 );
+        lowCpCoeffs     ( 4.30179801 -0.00474912051 2.11582891e-05 -2.42763894e-08 9.29225124e-12 294.80804 3.71666245 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        O               2;
+    }
+}
+
+CH3CHO
+{
+    specie
+    {
+        molWeight       44.05358;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.4041108 0.011723059 -4.2263137e-06 6.8372451e-10 -4.0984863e-14 -22593.122 -3.4807917 );
+        lowCpCoeffs     ( 4.7294595 -0.0031932858 4.7534921e-05 -5.7458611e-08 2.1931112e-11 -21572.878 4.1030159 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               2;
+        H               4;
+        O               1;
+    }
+}
+
+C3H7
+{
+    specie
+    {
+        molWeight       43.08924;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 7.7026987 0.016044203 -5.283322e-06 7.629859e-10 -3.9392284e-14 8298.4336 -15.48018 );
+        lowCpCoeffs     ( 1.0515518 0.02599198 2.380054e-06 -1.9609569e-08 9.373247e-12 10631.863 21.122559 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               3;
+        H               7;
+    }
+}
+
+CH3OH
+{
+    specie
+    {
+        molWeight       32.04243;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.78970791 0.0140938292 -6.36500835e-06 1.38171085e-09 -1.1706022e-13 -25374.8747 14.5023623 );
+        lowCpCoeffs     ( 5.71539582 -0.0152309129 6.52441155e-05 -7.10806889e-08 2.61352698e-11 -25642.7656 -1.50409823 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               4;
+        O               1;
+    }
+}
+
+CH2O
+{
+    specie
+    {
+        molWeight       30.02649;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 1.76069008 0.00920000082 -4.42258813e-06 1.00641212e-09 -8.8385564e-14 -13995.8323 13.656323 );
+        lowCpCoeffs     ( 4.79372315 -0.00990833369 3.73220008e-05 -3.79285261e-08 1.31772652e-11 -14308.9567 0.6028129 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        C               1;
+        O               1;
+    }
+}
+
+CO
+{
+    specie
+    {
+        molWeight       28.01055;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.71518561 0.00206252743 -9.98825771e-07 2.30053008e-10 -2.03647716e-14 -14151.8724 7.81868772 );
+        lowCpCoeffs     ( 3.57953347 -0.00061035368 1.01681433e-06 9.07005884e-10 -9.04424499e-13 -14344.086 3.50840928 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        O               1;
+    }
+}
+
+CH3O
+{
+    specie
+    {
+        molWeight       31.03446;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           3000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.770799 0.007871497 -2.656384e-06 3.944431e-10 -2.112616e-14 127.83252 2.929575 );
+        lowCpCoeffs     ( 2.106204 0.007216595 5.338472e-06 -7.377636e-09 2.07561e-12 978.6011 13.152177 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               3;
+        O               1;
+    }
+}
+
+O
+{
+    specie
+    {
+        molWeight       15.9994;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.56942078 -8.59741137e-05 4.19484589e-08 -1.00177799e-11 1.22833691e-15 29217.5791 4.78433864 );
+        lowCpCoeffs     ( 3.1682671 -0.00327931884 6.64306396e-06 -6.12806624e-09 2.11265971e-12 29122.2592 2.05193346 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        O               1;
+    }
+}
+
+HCNN
+{
+    specie
+    {
+        molWeight       41.03252;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.8946362 0.0039895959 -1.598238e-06 2.9249395e-10 -2.0094686e-14 53452.941 -5.1030502 );
+        lowCpCoeffs     ( 2.5243194 0.015960619 -1.8816354e-05 1.212554e-08 -3.2357378e-12 54261.984 11.67587 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        N               2;
+        H               1;
+    }
+}
+
+NCO
+{
+    specie
+    {
+        molWeight       42.01725;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 5.1521845 0.0023051761 -8.8033153e-07 1.4789098e-10 -9.0977996e-15 14004.123 -2.544266 );
+        lowCpCoeffs     ( 2.8269308 0.0088051688 -8.3866134e-06 4.8016964e-09 -1.3313595e-12 14682.477 9.5504646 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+CH2
+{
+    specie
+    {
+        molWeight       14.02709;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.87410113 0.00365639292 -1.40894597e-06 2.60179549e-10 -1.87727567e-14 46263.604 6.17119324 );
+        lowCpCoeffs     ( 3.76267867 0.000968872143 2.79489841e-06 -3.85091153e-09 1.68741719e-12 46004.0401 1.56253185 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               2;
+    }
+}
+
+HCNO
+{
+    specie
+    {
+        molWeight       43.02522;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1382;
+        highCpCoeffs    ( 6.59860456 0.00302778626 -1.07704346e-06 1.71666528e-10 -1.01439391e-14 17966.1339 -10.3306599 );
+        lowCpCoeffs     ( 2.64727989 0.0127505342 -1.04794236e-05 4.41432836e-09 -7.57521466e-13 19299.0252 10.7332972 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+        N               1;
+        C               1;
+        O               1;
+    }
+}
+
+NH2
+{
+    specie
+    {
+        molWeight       16.02264;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.8347421 0.0032073082 -9.3390804e-07 1.3702953e-10 -7.9206144e-15 22171.957 6.5204163 );
+        lowCpCoeffs     ( 4.2040029 -0.0021061385 7.1068348e-06 -5.6115197e-09 1.6440717e-12 21885.91 -0.14184248 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        H               2;
+    }
+}
+
+H2O
+{
+    specie
+    {
+        molWeight       18.01534;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.03399249 0.00217691804 -1.64072518e-07 -9.7041987e-11 1.68200992e-14 -30004.2971 4.9667701 );
+        lowCpCoeffs     ( 4.19864056 -0.0020364341 6.52040211e-06 -5.48797062e-09 1.77197817e-12 -30293.7267 -0.849032208 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               2;
+        O               1;
+    }
+}
+
+NH
+{
+    specie
+    {
+        molWeight       15.01467;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.7836928 0.001329843 -4.2478047e-07 7.8348501e-11 -5.504447e-15 42120.848 5.7407799 );
+        lowCpCoeffs     ( 3.4929085 0.00031179198 -1.4890484e-06 2.4816442e-09 -1.0356967e-12 41880.629 1.8483278 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        H               1;
+    }
+}
+
+H
+{
+    specie
+    {
+        molWeight       1.00797;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.50000001 -2.30842973e-11 1.61561948e-14 -4.73515235e-18 4.98197357e-22 25473.6599 -0.446682914 );
+        lowCpCoeffs     ( 2.5 7.05332819e-13 -1.99591964e-15 2.30081632e-18 -9.27732332e-22 25473.6599 -0.446682853 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        H               1;
+    }
+}
+
+AR
+{
+    specie
+    {
+        molWeight       39.948;
+    }
+    thermodynamics
+    {
+        Tlow            250;
+        Thigh           5000;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.5 0 0 0 0 -745.375 4.366 );
+        lowCpCoeffs     ( 2.5 0 0 0 0 -745.375 4.366 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        Ar              1;
+    }
+}
+
+NO
+{
+    specie
+    {
+        molWeight       30.0061;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           6000;
+        Tcommon         1000;
+        highCpCoeffs    ( 3.2606056 0.0011911043 -4.2917048e-07 6.9457669e-11 -4.0336099e-15 9920.9746 6.3693027 );
+        lowCpCoeffs     ( 4.2184763 -0.004638976 1.1041022e-05 -9.3361354e-09 2.803577e-12 9844.623 2.2808464 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        N               1;
+        O               1;
+    }
+}
+
+CH
+{
+    specie
+    {
+        molWeight       13.01912;
+    }
+    thermodynamics
+    {
+        Tlow            200;
+        Thigh           3500;
+        Tcommon         1000;
+        highCpCoeffs    ( 2.87846473 0.000970913681 1.44445655e-07 -1.30687849e-10 1.76079383e-14 71012.4364 5.48497999 );
+        lowCpCoeffs     ( 3.48981665 0.000323835541 -1.68899065e-06 3.16217327e-09 -1.40609067e-12 70797.2934 2.08401108 );
+    }
+    transport
+    {
+        As              1.512e-06;
+        Ts              120;
+    }
+    elements
+    {
+        C               1;
+        H               1;
+    }
+}
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties
new file mode 100644
index 00000000000..01e2675ba52
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties
@@ -0,0 +1,35 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            hePsiThermo;
+    mixture         reactingMixture;
+    transport       sutherland;
+    thermo          janaf;
+    energy          sensibleEnthalpy;
+    equationOfState perfectGas;
+    specie          specie;
+}
+
+inertSpecie N2;
+
+chemistryReader foamChemistryReader;
+foamChemistryFile "$FOAM_CASE/constant/reactionsGRI";
+foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGasGRI";
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties
new file mode 100644
index 00000000000..7478c13d60f
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties
@@ -0,0 +1,28 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType   RAS;
+
+RAS
+{
+    RASModel        kEpsilon;
+
+    turbulence      on;
+    printCoeffs     on;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict
new file mode 100644
index 00000000000..decc462c91d
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict
@@ -0,0 +1,176 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 0.001;
+
+vertices
+(
+   (0     0                    -100)   // 0
+
+   (3.6  -0.15717942211764708  -100)   // 1
+   (3.6   0.15717942211764708  -100)   // 2
+
+   (3.85 -0.168094659764705905 -100)   // 3
+   (3.85  0.168094659764705905 -100)   // 4
+
+   (9.1  -0.39731465035294123  -100)   // 5
+   (9.1   0.39731465035294123  -100)   // 6
+
+   (0     0                     0)     // 7
+
+   (3.6  -0.15717942211764708   0)     // 8
+   (3.6   0.15717942211764708   0)     // 9
+
+   (3.85 -0.168094659764705905  0)     // 10
+   (3.85  0.168094659764705905  0)     // 11
+
+   (9.1  -0.39731465035294123   0)     // 12
+   (9.1   0.39731465035294123   0)     // 13
+
+
+   (150  -6.549142588235295     0)     // 14
+   (150   6.549142588235295     0)     // 15
+
+   (0     0                     500)   // 16
+
+   (3.6  -0.15717942211764708   500)   // 17
+   (3.6   0.15717942211764708   500)   // 18
+
+   (3.85 -0.168094659764705905  500)   // 19
+   (3.85  0.168094659764705905  500)   // 20
+
+   (9.1  -0.39731465035294123   500)   // 21
+   (9.1   0.39731465035294123   500)   // 22
+
+   (150  -6.549142588235295     500)   // 23
+   (150   6.549142588235295     500)   // 24
+);
+
+blocks
+(
+    hex ( 0  1  2  0  7  8  9  7)   (5  1 20)   simpleGrading (1 1 1)
+    hex ( 3  5  6  4 10 12 13 11)   (5  1 20)   simpleGrading (1 1 1)
+
+    hex ( 7  8  9  7 16 17 18 16)   (5  1 70)   simpleGrading (1 1 2)
+    hex ( 8 10 11  9 17 19 20 18)   (1  1 70)   simpleGrading (1 1 2)
+    hex (10 12 13 11 19 21 22 20)   (5  1 70)   simpleGrading (1 1 2)
+    hex (12 14 15 13 21 23 24 22)   (60 1 70)   simpleGrading (3 1 2)
+);
+
+boundary
+(
+    inletCH4
+    {
+        type patch;
+        faces
+        (
+            (1 0 0 2)
+        );
+    }
+
+    wallOutside
+    {
+        type wall;
+        faces
+        (
+            (14 15 24 23)
+        );
+    }
+
+    wallTube
+    {
+        type wall;
+        faces
+        (
+            (1 2 9 8)
+            (10 11 9 8)
+            (4 3 10 11)
+            (5 6 13 12)
+        );
+    }
+
+    inletPilot
+    {
+        type patch;
+        faces
+        (
+            (5 3 4 6)
+        );
+    }
+
+    inletAir
+    {
+        type patch;
+        faces
+        (
+            (14 12 13 15)
+        );
+    }
+
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (16 17 18 16)
+            (17 19 20 18)
+            (19 21 22 20)
+            (21 22 24 23)
+        );
+    }
+
+    axis
+    {
+        type empty;
+        faces
+        (
+            (0 7 7 0)
+            (7 16 16 7)
+        );
+    }
+
+    frontAndBack_pos
+    {
+        type wedge;
+        faces
+        (
+            (2 0 7 9)
+            (6 4 11 13)
+
+            (9 7 16 18)
+            (11 9 18 20)
+            (13 11 20 22)
+            (15 13 22 24)
+        );
+    }
+
+    frontAndBack_neg
+    {
+        type wedge;
+        faces
+        (
+            (0 1 8 7)
+            (3 5 12 10)
+
+            (7 8 17 16)
+            (8 10 19 17)
+            (10 12 21 19)
+            (12 14 23 21)
+        );
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
new file mode 100644
index 00000000000..eb014fbe9c9
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version         2;
+    format          ascii;
+    class           dictionary;
+    location        "system";
+    object          controlDict;
+}
+
+application     reactingFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         5000;
+
+deltaT          1;
+
+writeControl    runTime;
+
+writeInterval   100;
+
+purgeWrite      0;
+
+writeFormat     binary;
+
+writePrecision  10;
+
+writeCompression no;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict
new file mode 100644
index 00000000000..d53fb5c47b7
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 6;
+
+method          simple;
+
+simpleCoeffs
+{
+    n               (1 1 6);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               ( 1 1 1 );
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "";
+}
+
+distributed     no;
+
+roots           ( );
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes
new file mode 100644
index 00000000000..6919893ebbb
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes
@@ -0,0 +1,59 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         localEuler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default             none;
+
+    div(phi,U)          Gauss limitedLinearV 1;
+    div(phi,Yi)         Gauss limitedLinear01 1;
+    div(phi,h)          Gauss limitedLinear 1;
+    div(phi,K)          Gauss limitedLinear 1;
+    div(phid,p)         Gauss limitedLinear 1;
+    div(phi,epsilon)    Gauss limitedLinear 1;
+    div(phi,Yi_h)       Gauss limitedLinear01 1;
+    div(phi,k)          Gauss limitedLinear 1;
+    div(((rho*nuEff)*dev2(T(grad(U)))))     Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
new file mode 100644
index 00000000000..6e2e7422f83
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
@@ -0,0 +1,89 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    "rho.*"
+    {
+        solver          diagonal;
+    }
+
+    p
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-6;
+        relTol          0.01;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    "(U|h|k|epsilon)"
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0.1;
+    }
+
+    "(U|h|k|epsilon)Final"
+    {
+        $U;
+    }
+
+    Yi
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-8;
+        relTol          0.1;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor   yes;
+    nOuterCorrectors    1;
+    nCorrectors         2;
+    nNonOrthogonalCorrectors 0;
+
+    maxDeltaT           1e-4;
+    maxCo               0.25;
+    alphaTemp           0.05;
+    alphaY              0.05;
+    Yref
+    {
+        O2                  0.1;
+        CH4                 0.1;
+    }
+    rDeltaTSmoothingCoeff   0.025;
+    rDeltaTDampingCoeff     1;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        ".*"            1;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict
new file mode 100644
index 00000000000..1e46d4ea609
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict
@@ -0,0 +1,162 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+    class           dictionary;
+    location        system;
+    object          sampleDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Set output format : choice of
+//      xmgr
+//      jplot
+//      gnuplot
+//      raw
+setFormat raw;
+
+// Surface output format. Choice of
+//      null        : suppress output
+//      foamFile    : separate points, faces and values file
+//      dx          : DX scalar or vector format
+//      vtk         : VTK ascii format
+//      raw         : x y z value format for use with e.g. gnuplot 'splot'.
+//
+// Note:
+// other formats such as obj, stl, etc can also be written (by proxy)
+// but without any values!
+surfaceFormat vtk;
+
+// interpolationScheme. choice of
+//      cell          : use cell-centre value only; constant over cells (default)
+//      cellPoint     : use cell-centre and vertex values
+//      cellPointFace : use cell-centre, vertex and face values.
+// 1] vertex values determined from neighbouring cell-centre values
+// 2] face values determined using the current face interpolation scheme
+//    for the field (linear, gamma, etc.)
+interpolationScheme cellPoint;
+
+// Fields to sample.
+fields
+(
+    T
+    CO
+    CO2
+    H2
+    H2O
+    N2
+    O2
+    OH
+    CH4
+);
+
+
+// Set sampling definition: choice of
+//      uniform             evenly distributed points on line
+//      face                one point per face intersection
+//      midPoint            one point per cell, inbetween two face intersections
+//      midPointAndFace     combination of face and midPoint
+//
+//      curve               specified points, not nessecary on line, uses
+//                          tracking
+//      cloud               specified points, uses findCell
+//
+// axis: how to write point coordinate. Choice of
+// - x/y/z: x/y/z coordinate only
+// - xyz: three columns
+//  (probably does not make sense for anything but raw)
+// - distance: distance from start of sampling line (if uses line) or
+//             distance from first specified sampling point
+//
+// type specific:
+//      uniform, face, midPoint, midPointAndFace : start and end coordinate
+//      uniform: extra number of sampling points
+//      curve, cloud: list of coordinates
+sets
+(
+    Centerline
+    {
+        type        uniform;
+        axis        distance;
+
+        start       (0.00001 0. 0. );
+        end         (0.00001 0. 0.500);
+        nPoints     500;
+    }
+
+    Radial_075
+    {
+        type        uniform;
+        axis        distance;
+
+        start       (0 0 0.054);
+        end         (0.020 0 0.054);
+        nPoints     100;
+    }
+    Radial_15
+       {
+        type        uniform;
+        axis        distance;
+
+        start       (0 0 0.108);
+        end         (0.024 0.108);
+        nPoints     100;
+    }
+    Radial_30
+     {
+        type        uniform;
+        axis        distance;
+
+        start       (0 0 0.216);
+        end         (0.042 0 0.216);
+        nPoints     100;
+    }
+    Radial_45
+      {
+        type        uniform;
+        axis        distance;
+
+        start       (0 0 0.324);
+        end         (0.056 0 0.324);
+        nPoints     100;
+    }
+    Radial_60
+        {
+        type        uniform;
+        axis        distance;
+
+        start       (0 0 0.432);
+        end         (0.070 0 0.432);
+        nPoints     100;
+    }
+    Radial_75
+        {
+        type        uniform;
+        axis        distance;
+
+        start       (0 0 0.54);
+        end         (0.080 0 0.54);
+        nPoints     100;
+    }
+);
+
+
+// Surface sampling definition: choice of
+//      plane : values on plane defined by point, normal.
+//      patch : values on patch.
+//
+// 1] patches are not triangulated by default
+// 2] planes are always triangulated
+// 3] iso-surfaces are always triangulated
+surfaces ();
+
+// *********************************************************************** //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict
new file mode 100644
index 00000000000..9cd02d03626
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict
@@ -0,0 +1,41 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+    volScalarFieldValue T 300
+    volScalarFieldValue N2 0.77
+    volScalarFieldValue O2 0.23
+    volScalarFieldValue CH4 0
+);
+
+regions
+(
+    boxToCell
+    {
+        box (0 -10 -100) (0.0036 10 0);
+        fieldValues
+        (
+            volScalarFieldValue CH4 0.1561
+            volScalarFieldValue O2 0.1966
+            volScalarFieldValue N2 0.6473
+        );
+    }
+);
+
+
+// ************************************************************************* //
-- 
GitLab


From d401f1cfb42bfe7395ac743c5989875df3616005 Mon Sep 17 00:00:00 2001
From: Will Bainbridge <http://cfd.direct>
Date: Fri, 17 Mar 2017 11:26:24 +0000
Subject: [PATCH 139/277] reactingMultiphaseEulerFoam: Ensure that an unordered
 phase pair gets generated whenever a BlendedInterfacialModel is created.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2472
---
 .../phaseSystem/phaseSystemTemplates.C           | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.C
index 01f36c881c0..ffa5af34c36 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystemTemplates.C
@@ -131,6 +131,22 @@ void Foam::phaseSystem::generatePairsAndSubModels
                 )
             )
         );
+
+        if (!phasePairs_.found(key))
+        {
+            phasePairs_.insert
+            (
+                key,
+                autoPtr<phasePair>
+                (
+                    new phasePair
+                    (
+                        phaseModels_[key.first()],
+                        phaseModels_[key.second()]
+                    )
+                )
+            );
+        }
     }
 }
 
-- 
GitLab


From 6f5caf28d5eca18d236edd38f792bb6fd17e0a30 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Fri, 17 Mar 2017 12:42:13 +0000
Subject: [PATCH 140/277] pitzDaily tutorials: updated blockMeshDict files to
 use multi-grading

The pitzDaily case uses a lot of mesh grading close to walls and the shear layer.
Prior to v2.4, blockMesh only permitted grading in one direction within a single block,
so the pitzDaily mesh comprised of 13 blocks to accommodate the complex grading pattern.

blockMesh has multi-grading that allows users to divide a block in a given direction and
apply different grading within each division.  The mesh generated with blockMesh using
13 blocks has been replaced with a mesh of 5 blocks that use multi-grading.  The new
blockMeshDict configuration produces a mesh very similar to the original 13-block mesh.
---
 .../pitzDaily/system/blockMeshDict            |   141 +-
 .../basic/scalarTransportFoam/pitzDaily/0/U   | 24458 ++++++++--------
 .../pitzDaily/system/blockMeshDict            |   141 +-
 .../LES/pitzDaily/system/blockMeshDict        |   141 +-
 .../pitzDaily/system/blockMeshDict            |   141 +-
 .../RAS/pitzDaily/system/blockMeshDict        |   141 +-
 .../RAS/pitzDaily/system/controlDict          |     4 +-
 .../LES/pitzDaily/system/blockMeshDict        |   141 +-
 .../LES/pitzDailyMapped/system/blockMeshDict  |   144 +-
 .../simpleFoam/pitzDaily/system/blockMeshDict |   141 +-
 .../pitzDailyExptInlet/system/blockMeshDict   |   141 +-
 11 files changed, 12771 insertions(+), 12963 deletions(-)

diff --git a/tutorials/basic/potentialFoam/pitzDaily/system/blockMeshDict b/tutorials/basic/potentialFoam/pitzDaily/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/basic/potentialFoam/pitzDaily/system/blockMeshDict
+++ b/tutorials/basic/potentialFoam/pitzDaily/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
diff --git a/tutorials/basic/scalarTransportFoam/pitzDaily/0/U b/tutorials/basic/scalarTransportFoam/pitzDaily/0/U
index 5eb5ebff6b8..a00c83eda9a 100644
--- a/tutorials/basic/scalarTransportFoam/pitzDaily/0/U
+++ b/tutorials/basic/scalarTransportFoam/pitzDaily/0/U
@@ -10,12240 +10,12241 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volVectorField;
+    location    "288";
     object      U;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 dimensions      [0 1 -1 0 0 0 0];
 
-internalField   nonuniform List<vector>
+internalField   nonuniform List<vector> 
 12225
 (
-(9.88226 -1.12989 2.24499e-47)
-(9.78836 -0.592567 3.02929e-46)
-(9.59718 -0.336074 3.48522e-45)
-(9.396 -0.194502 4.22672e-44)
-(9.21095 -0.112442 5.32415e-43)
-(9.04186 -0.0634575 6.67702e-42)
-(8.88702 -0.0334686 7.99392e-41)
-(8.74567 -0.0148062 8.70783e-40)
-(8.61702 -0.00311275 7.94784e-39)
-(8.50007 0.00420044 4.70736e-38)
-(8.3938 0.00871992 -1.77421e-37)
-(8.29724 0.0114374 -1.29939e-35)
-(8.20952 0.0129808 -4.734e-34)
-(8.12985 0.0137506 -2.77861e-32)
-(8.05754 0.0140039 -2.09542e-30)
-(7.99203 0.0139462 -1.511e-28)
-(7.93162 0.014069 -6.80121e-27)
-(7.88238 0.000283792 9.02892e-25)
-(9.99935 0.384935 1.50431e-46)
-(9.99152 0.3332 2.20189e-45)
-(9.96125 0.24222 2.86906e-44)
-(9.92088 0.180093 3.86658e-43)
-(9.88025 0.137918 5.26991e-42)
-(9.83856 0.108702 7.00644e-41)
-(9.79519 0.0884285 8.76363e-40)
-(9.75078 0.0741815 9.86228e-39)
-(9.7061 0.06393 9.19529e-38)
-(9.66166 0.0563443 5.41116e-37)
-(9.61788 0.0505626 -2.56256e-36)
-(9.57509 0.0460174 -1.62837e-34)
-(9.53361 0.0423248 -5.51408e-33)
-(9.49368 0.0392162 -3.10493e-31)
-(9.45559 0.036494 -2.40412e-29)
-(9.41965 0.0340461 -1.96607e-27)
-(9.38694 0.0319015 -1.59739e-25)
-(9.35848 0.0325041 -1.26659e-23)
-(9.99313 0.0247292 5.15962e-46)
-(10.0012 0.0084775 8.58466e-45)
-(10.0117 0.00275237 1.28306e-43)
-(10.0115 0.0120212 1.94481e-42)
-(10.007 0.0221732 2.92201e-41)
-(9.99951 0.0297579 4.21912e-40)
-(9.98912 0.0351281 5.67445e-39)
-(9.97659 0.038803 6.82918e-38)
-(9.96259 0.0411671 6.81555e-37)
-(9.94757 0.0425449 4.41819e-36)
-(9.93187 0.0431972 -1.42206e-35)
-(9.91577 0.0433138 -1.0613e-33)
-(9.89951 0.0430201 -2.23819e-32)
-(9.88333 0.0423854 -4.52049e-31)
-(9.86749 0.041424 -1.09808e-29)
-(9.8523 0.0400799 9.26645e-29)
-(9.8384 0.0380437 5.94193e-26)
-(9.82469 0.0333857 6.87505e-24)
-(9.99922 0.0243575 1.33002e-45)
-(10.0098 0.0455555 2.46311e-44)
-(10.0251 0.0525143 4.14072e-43)
-(10.0324 0.0573837 6.99737e-42)
-(10.0364 0.0595698 1.16185e-40)
-(10.0389 0.0595986 1.84227e-39)
-(10.0397 0.0587145 2.71245e-38)
-(10.0391 0.0575308 3.57866e-37)
-(10.0375 0.0562444 3.95936e-36)
-(10.0351 0.054923 3.0142e-35)
-(10.0321 0.0535898 -2.52399e-35)
-(10.0286 0.0522389 -6.14414e-33)
-(10.0249 0.050842 -1.31404e-31)
-(10.0211 0.0493464 -2.35866e-30)
-(10.0173 0.0476631 -1.01323e-28)
-(10.0137 0.0456269 -7.09232e-27)
-(10.0106 0.0428683 -4.36972e-25)
-(10.0069 0.0383616 -2.31637e-23)
-(10.0015 0.0163882 2.80522e-45)
-(10.0125 0.0373897 5.5758e-44)
-(10.0272 0.043781 1.02468e-42)
-(10.0364 0.0472985 1.9026e-41)
-(10.0433 0.0497054 3.47846e-40)
-(10.0493 0.0509147 6.08073e-39)
-(10.0542 0.051436 9.90055e-38)
-(10.058 0.0515944 1.4572e-36)
-(10.0611 0.0514916 1.84242e-35)
-(10.0636 0.0511682 1.75123e-34)
-(10.0656 0.0506511 5.29575e-34)
-(10.0673 0.0499513 -2.38068e-32)
-(10.0687 0.0490585 -5.69417e-31)
-(10.07 0.0479358 -2.26735e-31)
-(10.0712 0.0465062 4.97345e-28)
-(10.0724 0.0446197 2.61127e-26)
-(10.0736 0.0420058 9.90726e-25)
-(10.074 0.0381184 3.29763e-23)
-(10.0023 0.0180937 5.04712e-45)
-(10.0121 0.0360928 1.01959e-43)
-(10.0253 0.0426075 1.95933e-42)
-(10.0351 0.0461282 3.91385e-41)
-(10.0431 0.0486815 7.85745e-40)
-(10.0503 0.0501222 1.52729e-38)
-(10.0568 0.0507871 2.79408e-37)
-(10.0624 0.0509973 4.69567e-36)
-(10.0674 0.0508939 7.01783e-35)
-(10.0719 0.0505421 8.6906e-34)
-(10.0761 0.0499796 6.8354e-33)
-(10.0799 0.0492212 -4.70661e-32)
-(10.0836 0.0482572 -3.72031e-30)
-(10.087 0.0470509 -1.08299e-28)
-(10.0903 0.0455319 -2.40115e-27)
-(10.0935 0.0435814 -4.48613e-26)
-(10.0964 0.0410404 -7.15521e-25)
-(10.0987 0.0377135 -9.37111e-24)
-(10.002 0.0160959 8.20139e-45)
-(10.0105 0.0309993 1.5277e-43)
-(10.0222 0.0379777 2.75798e-42)
-(10.0319 0.0419979 5.56114e-41)
-(10.0403 0.044865 1.21085e-39)
-(10.048 0.0466224 2.66434e-38)
-(10.055 0.0475569 5.64377e-37)
-(10.0614 0.0479746 1.12095e-35)
-(10.0673 0.0480335 2.05551e-34)
-(10.0727 0.0478093 3.42418e-33)
-(10.0778 0.0473439 5.02175e-32)
-(10.0826 0.0466547 5.93712e-31)
-(10.0872 0.0457359 3.61892e-30)
-(10.0916 0.0445584 -8.01998e-29)
-(10.0958 0.0430694 -4.23425e-27)
-(10.0998 0.0411917 -1.27126e-25)
-(10.1034 0.0388509 -3.17581e-24)
-(10.1065 0.0360158 -7.1865e-23)
-(10.0018 0.014314 1.34802e-44)
-(10.0091 0.0275025 2.09801e-43)
-(10.0194 0.0347369 2.74137e-42)
-(10.0287 0.0390158 3.93583e-41)
-(10.037 0.0419774 7.68734e-40)
-(10.0447 0.0438486 1.95559e-38)
-(10.0519 0.0448979 5.23985e-37)
-(10.0585 0.0454053 1.32296e-35)
-(10.0647 0.0455297 3.07208e-34)
-(10.0705 0.0453513 6.59394e-33)
-(10.076 0.0449148 1.32504e-31)
-(10.0812 0.0442408 2.53177e-30)
-(10.0861 0.0433283 4.68148e-29)
-(10.0908 0.0421576 8.53964e-28)
-(10.0954 0.0406934 1.56501e-26)
-(10.0996 0.0388912 2.91816e-25)
-(10.1034 0.0367258 5.55215e-24)
-(10.1069 0.0342337 1.07015e-22)
-(10.0016 0.0127832 2.48006e-44)
-(10.0079 0.0246144 3.63874e-43)
-(10.0171 0.0317467 3.56421e-42)
-(10.0259 0.036117 1.31395e-41)
-(10.0339 0.0391227 -4.23452e-40)
-(10.0415 0.0410697 -1.23117e-38)
-(10.0486 0.042209 -1.58868e-37)
-(10.0553 0.0427927 6.51923e-37)
-(10.0616 0.0429751 1.03811e-34)
-(10.0675 0.042839 3.69578e-33)
-(10.0731 0.0424321 9.60072e-32)
-(10.0785 0.0417782 2.10414e-30)
-(10.0836 0.040882 4.08796e-29)
-(10.0885 0.0397329 7.18336e-28)
-(10.0931 0.0383108 1.14652e-26)
-(10.0974 0.036595 1.64252e-25)
-(10.1014 0.0345879 2.0237e-24)
-(10.1049 0.0323548 1.84776e-23)
-(10.0014 0.0112914 5.63086e-44)
-(10.0068 0.0217657 9.24915e-43)
-(10.0148 0.0285881 1.09597e-41)
-(10.0229 0.0329426 7.10839e-41)
-(10.0305 0.0359424 -1.07804e-39)
-(10.0378 0.037926 -5.73499e-38)
-(10.0448 0.0391263 -1.53985e-36)
-(10.0514 0.0397662 -3.26256e-35)
-(10.0577 0.0399924 -5.95814e-34)
-(10.0636 0.0398891 -9.65338e-33)
-(10.0693 0.0395062 -1.3986e-31)
-(10.0747 0.0388716 -1.80376e-30)
-(10.0798 0.037996 -2.03516e-29)
-(10.0847 0.0368788 -1.93169e-28)
-(10.0894 0.0355145 -1.40143e-27)
-(10.0937 0.0339018 -5.33762e-27)
-(10.0976 0.0320608 3.29048e-26)
-(10.1013 0.0300677 6.86781e-25)
-(10.0012 0.00980661 1.339e-43)
-(10.0057 0.0189198 2.59209e-42)
-(10.0127 0.0252691 4.1485e-41)
-(10.02 0.0294939 5.78993e-40)
-(10.0271 0.0324229 6.36069e-39)
-(10.0341 0.0343928 3.02363e-38)
-(10.0408 0.0356168 -9.95179e-37)
-(10.0472 0.0362877 -4.26536e-35)
-(10.0533 0.0365413 -1.10753e-33)
-(10.0591 0.036461 -2.35529e-32)
-(10.0647 0.0360983 -4.41247e-31)
-(10.0701 0.0354847 -7.48247e-30)
-(10.0752 0.0346374 -1.16059e-28)
-(10.08 0.0335653 -1.64864e-27)
-(10.0845 0.0322754 -2.12964e-26)
-(10.0888 0.0307806 -2.45251e-25)
-(10.0927 0.0291104 -2.39594e-24)
-(10.0963 0.0273395 -1.68898e-23)
-(10.001 0.00833817 2.71605e-43)
-(10.0048 0.0161157 5.97071e-42)
-(10.0107 0.0218481 1.15046e-40)
-(10.0173 0.0258193 2.10189e-39)
-(10.0239 0.0286011 3.63369e-38)
-(10.0303 0.0304978 5.89303e-37)
-(10.0367 0.0316998 8.83444e-36)
-(10.0428 0.0323702 1.19039e-34)
-(10.0487 0.0326305 1.35015e-33)
-(10.0544 0.0325608 1.01843e-32)
-(10.0598 0.0322131 -4.35052e-32)
-(10.065 0.031622 -4.03337e-30)
-(10.0699 0.0308104 -1.12698e-28)
-(10.0746 0.0297954 -2.41057e-27)
-(10.079 0.0285932 -4.48325e-26)
-(10.0831 0.0272255 -7.57566e-25)
-(10.0869 0.025725 -1.18707e-23)
-(10.0905 0.0241578 -1.74423e-22)
-(10.0009 0.00690098 3.52496e-43)
-(10.004 0.0133738 8.37717e-42)
-(10.009 0.018362 1.78886e-40)
-(10.0148 0.0219484 3.70362e-39)
-(10.0208 0.0244954 7.45377e-38)
-(10.0268 0.026251 1.45748e-36)
-(10.0327 0.0273784 2.76656e-35)
-(10.0385 0.0280116 5.0928e-34)
-(10.0441 0.0282552 9.08195e-33)
-(10.0496 0.0281826 1.5672e-31)
-(10.0547 0.027845 2.61406e-30)
-(10.0597 0.0272784 4.21025e-29)
-(10.0645 0.0265102 6.54174e-28)
-(10.0689 0.0255627 9.79745e-27)
-(10.0732 0.0244582 1.41338e-25)
-(10.0771 0.0232221 1.96279e-24)
-(10.0808 0.0218859 2.62276e-23)
-(10.0843 0.0205052 3.37093e-22)
-(10.0007 0.00550351 5.35065e-44)
-(10.0034 0.0106986 8.30157e-43)
-(10.0076 0.0148394 7.18584e-42)
-(10.0126 0.017913 -6.92232e-41)
-(10.018 0.0201281 -5.66052e-39)
-(10.0235 0.0216667 -1.90318e-37)
-(10.0291 0.0226594 -5.02859e-36)
-(10.0345 0.0232124 -1.16538e-34)
-(10.0398 0.0234112 -2.46423e-33)
-(10.0449 0.0233199 -4.84328e-32)
-(10.0499 0.022986 -8.93806e-31)
-(10.0546 0.0224452 -1.55824e-29)
-(10.0591 0.0217263 -2.57642e-28)
-(10.0634 0.0208544 -4.05087e-27)
-(10.0674 0.0198537 -6.0682e-26)
-(10.0712 0.0187498 -8.67298e-25)
-(10.0747 0.0175707 -1.184e-23)
-(10.078 0.0163617 -1.54525e-22)
-(10.0006 0.00414351 -1.39248e-43)
-(10.0028 0.00807813 -3.48506e-42)
-(10.0064 0.0112901 -7.66942e-41)
-(10.0108 0.0137331 -1.59188e-39)
-(10.0157 0.0155142 -3.13055e-38)
-(10.0207 0.0167528 -5.84202e-37)
-(10.0258 0.0175442 -1.03534e-35)
-(10.0309 0.0179672 -1.74299e-34)
-(10.0358 0.0180873 -2.78666e-33)
-(10.0407 0.0179569 -4.22791e-32)
-(10.0453 0.0176165 -6.07891e-31)
-(10.0498 0.0170987 -8.26508e-30)
-(10.0541 0.016431 -1.05911e-28)
-(10.0581 0.0156378 -1.27251e-27)
-(10.062 0.0147422 -1.42144e-26)
-(10.0656 0.0137672 -1.45451e-25)
-(10.0689 0.0127365 -1.32399e-24)
-(10.0722 0.0116859 -9.9793e-24)
-(10.0005 0.00280602 5.26981e-44)
-(10.0024 0.00548078 1.14377e-42)
-(10.0055 0.00769455 2.23848e-41)
-(10.0094 0.00940051 4.31161e-40)
-(10.0138 0.0106458 8.18048e-39)
-(10.0183 0.011498 1.5215e-37)
-(10.023 0.0120175 2.75855e-36)
-(10.0278 0.0122562 4.84966e-35)
-(10.0324 0.0122592 8.23041e-34)
-(10.037 0.0120643 1.34366e-32)
-(10.0414 0.0117025 2.1047e-31)
-(10.0456 0.0112002 3.15729e-30)
-(10.0496 0.0105803 4.53005e-29)
-(10.0535 0.00986382 6.21111e-28)
-(10.0571 0.00907019 8.13284e-27)
-(10.0606 0.00821827 1.01653e-25)
-(10.0638 0.00732666 1.21236e-24)
-(10.0669 0.00642341 1.37918e-23)
-(10.0005 0.00146136 2.3874e-43)
-(10.0021 0.00285103 5.16069e-42)
-(10.0049 0.00399721 9.78233e-41)
-(10.0084 0.00486887 1.76889e-39)
-(10.0124 0.0054809 3.06242e-38)
-(10.0166 0.0058614 5.0757e-37)
-(10.021 0.00603806 8.05092e-36)
-(10.0254 0.00603657 1.2216e-34)
-(10.0298 0.00588059 1.77223e-33)
-(10.0341 0.00559142 2.45663e-32)
-(10.0382 0.00518802 3.25113e-31)
-(10.0423 0.00468747 4.10349e-30)
-(10.0461 0.00410552 4.93295e-29)
-(10.0498 0.00345699 5.63769e-28)
-(10.0532 0.00275579 6.10999e-27)
-(10.0565 0.00201534 6.25623e-26)
-(10.0596 0.00124892 6.01878e-25)
-(10.0626 0.000477787 5.39244e-24)
-(10.0004 0.000142433 2.4396e-43)
-(10.002 0.000260758 5.68335e-42)
-(10.0046 0.000325312 1.17219e-40)
-(10.0079 0.000328953 2.3109e-39)
-(10.0117 0.00026911 4.36936e-38)
-(10.0157 0.000142025 7.92683e-37)
-(10.0199 -5.50022e-05 1.38022e-35)
-(10.0242 -0.000321927 2.30714e-34)
-(10.0284 -0.000656395 3.70316e-33)
-(10.0325 -0.00105445 5.70865e-32)
-(10.0365 -0.00151086 8.45359e-31)
-(10.0403 -0.00201939 1.20275e-29)
-(10.044 -0.00257304 1.64444e-28)
-(10.0475 -0.00316429 2.16092e-27)
-(10.0509 -0.00378526 2.72972e-26)
-(10.0541 -0.00442809 3.31541e-25)
-(10.0571 -0.00508462 3.87236e-24)
-(10.06 -0.00573967 4.35023e-23)
-(10.0004 -0.00107569 -4.45349e-43)
-(10.002 -0.00214019 -1.00113e-41)
-(10.0046 -0.00308817 -1.99027e-40)
-(10.008 -0.00389404 -3.7928e-39)
-(10.0118 -0.0045749 -6.95213e-38)
-(10.0158 -0.00516747 -1.22585e-36)
-(10.0199 -0.00570488 -2.07926e-35)
-(10.0241 -0.00621177 -3.39247e-34)
-(10.0283 -0.00670629 -5.32422e-33)
-(10.0323 -0.00720132 -8.03761e-32)
-(10.0362 -0.00770496 -1.16717e-30)
-(10.04 -0.00822143 -1.63038e-29)
-(10.0436 -0.00875209 -2.19083e-28)
-(10.0471 -0.00929632 -2.8322e-27)
-(10.0503 -0.00985208 -3.52259e-26)
-(10.0534 -0.0104164 -4.21563e-25)
-(10.0564 -0.0109852 -4.85481e-24)
-(10.0592 -0.0115482 -5.38069e-23)
-(10.0005 -0.00219673 -4.05711e-43)
-(10.0021 -0.00436466 -8.86921e-42)
-(10.0049 -0.00624643 -1.7095e-40)
-(10.0085 -0.0077683 -3.15957e-39)
-(10.0124 -0.00897475 -5.62206e-38)
-(10.0166 -0.00994789 -9.63458e-37)
-(10.0208 -0.0107538 -1.59044e-35)
-(10.025 -0.0114412 -2.52939e-34)
-(10.0292 -0.0120486 -3.87613e-33)
-(10.0333 -0.0126048 -5.72431e-32)
-(10.0372 -0.01313 -8.14794e-31)
-(10.0409 -0.0136377 -1.11795e-29)
-(10.0445 -0.0141363 -1.47875e-28)
-(10.0479 -0.0146308 -1.88582e-27)
-(10.0511 -0.0151239 -2.31885e-26)
-(10.0542 -0.0156164 -2.7494e-25)
-(10.0571 -0.0161075 -3.14356e-24)
-(10.0599 -0.0165903 -3.46608e-23)
-(10.0005 -0.00326392 -9.23808e-44)
-(10.0023 -0.00652899 -1.59606e-42)
-(10.0054 -0.00931442 -2.11873e-41)
-(10.0093 -0.0114734 -2.04434e-40)
-(10.0136 -0.0131179 -1.61186e-40)
-(10.018 -0.0143974 5.91804e-38)
-(10.0224 -0.0154113 2.03589e-36)
-(10.0267 -0.0162313 4.97423e-35)
-(10.031 -0.0169155 1.03524e-33)
-(10.035 -0.0175078 1.94011e-32)
-(10.039 -0.0180385 3.3552e-31)
-(10.0427 -0.0185283 5.42432e-30)
-(10.0463 -0.0189912 8.26152e-29)
-(10.0497 -0.0194368 1.19129e-27)
-(10.0529 -0.0198715 1.63189e-26)
-(10.0559 -0.0202998 2.12879e-25)
-(10.0588 -0.0207238 2.64929e-24)
-(10.0616 -0.0211407 3.14974e-23)
-(10.0005 -0.0042742 -2.2118e-44)
-(10.0025 -0.00869411 -3.47356e-43)
-(10.0061 -0.0123672 -4.0449e-42)
-(10.0105 -0.0150519 -3.18133e-41)
-(10.0151 -0.0170139 7.93226e-41)
-(10.0198 -0.0184954 1.04409e-38)
-(10.0244 -0.019626 2.91774e-37)
-(10.0289 -0.0205019 6.1072e-36)
-(10.0333 -0.0212025 1.10552e-34)
-(10.0374 -0.0217848 1.82291e-33)
-(10.0414 -0.0222867 2.81717e-32)
-(10.0452 -0.022734 4.16544e-31)
-(10.0487 -0.0231443 5.9939e-30)
-(10.0521 -0.0235301 8.50836e-29)
-(10.0553 -0.0239003 1.20141e-27)
-(10.0583 -0.0242614 1.69046e-26)
-(10.0611 -0.024618 2.36011e-25)
-(10.0639 -0.0249695 3.24382e-24)
-(10.0004 -0.00521602 -1.60645e-44)
-(10.0026 -0.0109915 -4.14251e-43)
-(10.0068 -0.0155902 -9.94846e-42)
-(10.0119 -0.0187297 -2.34199e-40)
-(10.017 -0.0209636 -5.33181e-39)
-(10.022 -0.0226153 -1.16371e-37)
-(10.0268 -0.0238291 -2.42537e-36)
-(10.0315 -0.0247317 -4.82093e-35)
-(10.0359 -0.0254268 -9.14002e-34)
-(10.0401 -0.0259824 -1.65407e-32)
-(10.0441 -0.0264415 -2.86013e-31)
-(10.0478 -0.0268335 -4.73041e-30)
-(10.0514 -0.0271788 -7.49081e-29)
-(10.0547 -0.027492 -1.13678e-27)
-(10.0578 -0.0277841 -1.65459e-26)
-(10.0608 -0.0280645 -2.31145e-25)
-(10.0635 -0.0283419 -3.1012e-24)
-(10.0662 -0.0286225 -3.99812e-23)
-(10.0002 -0.00593101 1.89415e-44)
-(10.0025 -0.0133252 4.60863e-43)
-(10.0076 -0.0185872 1.00943e-41)
-(10.0134 -0.0218232 2.15189e-40)
-(10.019 -0.0241143 4.48867e-39)
-(10.0242 -0.0257853 9.16409e-38)
-(10.0292 -0.0269611 1.82822e-36)
-(10.034 -0.0278035 3.55445e-35)
-(10.0384 -0.028439 6.71436e-34)
-(10.0426 -0.0289396 1.2288e-32)
-(10.0465 -0.0293478 2.17344e-31)
-(10.0502 -0.0296913 3.70844e-30)
-(10.0536 -0.0299888 6.0957e-29)
-(10.0568 -0.0302529 9.64385e-28)
-(10.0598 -0.0304931 1.46769e-26)
-(10.0626 -0.0307181 2.14809e-25)
-(10.0652 -0.0309375 3.02327e-24)
-(10.0676 -0.03116 4.09186e-23)
-(9.99977 -0.00649473 3.06029e-44)
-(10.0021 -0.0170845 7.1981e-43)
-(10.0084 -0.0233021 1.51123e-41)
-(10.0149 -0.0266116 3.05849e-40)
-(10.0207 -0.0289922 5.98265e-39)
-(10.026 -0.030692 1.1302e-37)
-(10.0311 -0.0318061 2.0593e-36)
-(10.0357 -0.032537 3.61311e-35)
-(10.04 -0.0330319 6.09267e-34)
-(10.044 -0.0333718 9.8527e-33)
-(10.0477 -0.0336071 1.52411e-31)
-(10.0511 -0.0337726 2.24818e-30)
-(10.0543 -0.033891 3.14926e-29)
-(10.0572 -0.033977 4.16504e-28)
-(10.0599 -0.0340403 5.15423e-27)
-(10.0623 -0.0340894 5.87746e-26)
-(10.0646 -0.0341378 5.99356e-25)
-(10.0667 -0.0342053 5.08024e-24)
-(9.99798 -0.00293555 2.23507e-44)
-(9.99991 -0.0168829 4.93651e-43)
-(10.008 -0.0232939 9.63464e-42)
-(10.0152 -0.0260207 1.80776e-40)
-(10.021 -0.0279684 3.27276e-39)
-(10.0263 -0.0293743 5.71387e-38)
-(10.0312 -0.0303876 9.60734e-37)
-(10.0356 -0.0311965 1.55275e-35)
-(10.0395 -0.0318768 2.40659e-34)
-(10.043 -0.0324489 3.56668e-33)
-(10.0461 -0.0329259 5.03713e-32)
-(10.0489 -0.0333211 6.74956e-31)
-(10.0515 -0.0336451 8.53301e-30)
-(10.0537 -0.0339057 1.01017e-28)
-(10.0558 -0.0341082 1.10822e-27)
-(10.0575 -0.0342567 1.11039e-26)
-(10.0591 -0.034361 9.96728e-26)
-(10.0604 -0.0344323 7.88899e-25)
-(9.99459 -0.00611883 1.11825e-44)
-(9.99512 -0.0273443 2.2674e-43)
-(10.0058 -0.0377523 4.02408e-42)
-(10.0137 -0.0433277 6.89291e-41)
-(10.019 -0.0460087 1.1447e-39)
-(10.0236 -0.0465264 1.84082e-38)
-(10.0274 -0.0459576 2.85981e-37)
-(10.0305 -0.0450054 4.27981e-36)
-(10.033 -0.043966 6.14964e-35)
-(10.035 -0.0429563 8.45256e-34)
-(10.0367 -0.0420264 1.1064e-32)
-(10.0379 -0.0411932 1.37162e-31)
-(10.0389 -0.0404543 1.59888e-30)
-(10.0395 -0.0397968 1.7347e-29)
-(10.0399 -0.0392018 1.72348e-28)
-(10.04 -0.0386458 1.52008e-27)
-(10.0399 -0.0381107 1.09666e-26)
-(10.0395 -0.0375714 4.24817e-26)
-(9.98548 0.00834022 4.11509e-45)
-(9.98405 0.0194657 7.46464e-44)
-(9.99643 0.0243368 1.17758e-42)
-(10.0046 0.0168887 1.81449e-41)
-(10.0094 0.00675372 2.74038e-40)
-(10.0122 -0.00200611 4.04222e-39)
-(10.0133 -0.00907208 5.79764e-38)
-(10.0128 -0.0146954 8.04915e-37)
-(10.0113 -0.0190958 1.07684e-35)
-(10.009 -0.0224907 1.38157e-34)
-(10.0061 -0.0250881 1.69079e-33)
-(10.0028 -0.0270638 1.96112e-32)
-(9.9991 -0.0285554 2.138e-31)
-(9.9951 -0.0296668 2.16501e-30)
-(9.99088 -0.0304712 1.9981e-29)
-(9.98647 -0.0310108 1.62162e-28)
-(9.9819 -0.0313004 1.06354e-27)
-(9.97686 -0.0312699 4.10207e-27)
-(9.99924 -0.295135 1.03445e-45)
-(9.99748 -0.289148 1.64636e-44)
-(9.98879 -0.227729 2.25799e-43)
-(9.97492 -0.179068 3.08393e-42)
-(9.96209 -0.143032 4.2049e-41)
-(9.9495 -0.115955 5.67884e-40)
-(9.93598 -0.0958118 7.53549e-39)
-(9.9215 -0.0808756 9.75522e-38)
-(9.90637 -0.0697032 1.22425e-36)
-(9.8908 -0.0612368 1.48024e-35)
-(9.87495 -0.0547338 1.71325e-34)
-(9.85897 -0.0496697 1.88441e-33)
-(9.84296 -0.0456689 1.95273e-32)
-(9.82704 -0.0424582 1.88956e-31)
-(9.81129 -0.0398325 1.72359e-30)
-(9.79579 -0.0376225 1.76068e-29)
-(9.78065 -0.0356635 3.83169e-28)
-(9.76533 -0.0335315 1.82914e-26)
-(9.97279 0.878007 1.20758e-46)
-(9.97287 0.508408 1.70193e-45)
-(9.88791 0.320158 2.02826e-44)
-(9.78171 0.207505 2.46197e-43)
-(9.68012 0.136331 3.05293e-42)
-(9.58517 0.0900468 3.81299e-41)
-(9.49606 0.0590601 4.73465e-40)
-(9.41266 0.037814 5.78535e-39)
-(9.33487 0.0229984 6.8979e-38)
-(9.26238 0.0125402 7.96429e-37)
-(9.1948 0.00509114 8.83854e-36)
-(9.13177 -0.000247654 9.35324e-35)
-(9.07294 -0.0040863 9.35384e-34)
-(9.01801 -0.00684535 8.76576e-33)
-(8.96671 -0.0088168 7.79706e-32)
-(8.91878 -0.0101987 7.81781e-31)
-(8.87418 -0.0111027 1.3211e-29)
-(8.83147 -0.0114117 -3.40894e-28)
-(0.00579529 -0.0142991 -3.03595e-23)
-(0.0162142 -0.0169105 -9.24003e-23)
-(0.0244395 -0.0130013 -1.89965e-22)
-(0.0287075 -0.00693185 -3.74491e-22)
-(0.0276408 -0.000296282 -7.60472e-23)
-(0.0218531 0.00607392 2.99532e-22)
-(0.0123233 0.0116805 1.66368e-22)
-(-0.000814699 0.0163801 5.26071e-23)
-(-0.0166465 0.0197673 -4.29377e-23)
-(-0.0343143 0.0221278 -1.27405e-22)
-(-0.0538123 0.0239855 -2.14208e-22)
-(-0.0748553 0.0255513 2.3154e-23)
-(-0.0972685 0.0268895 9.17285e-23)
-(-0.120902 0.0280228 9.32367e-23)
-(-0.145618 0.0289664 8.86991e-23)
-(-0.171287 0.0297361 8.96211e-23)
-(-0.19779 0.03035 1.00207e-22)
-(-0.225017 0.0308265 1.22251e-22)
-(-0.25287 0.0311842 1.38235e-22)
-(-0.281262 0.0314401 1.5322e-22)
-(-0.310116 0.0316101 1.70784e-22)
-(-0.339368 0.0317081 9.45709e-23)
-(-0.36896 0.0317465 8.88077e-23)
-(-0.398843 0.0317363 5.91193e-24)
-(-0.428979 0.0316866 -1.94854e-23)
-(-0.459333 0.0316053 3.90222e-23)
-(-0.489877 0.0314993 1.14718e-22)
-(-0.520591 0.031374 1.25256e-22)
-(-0.551455 0.0312341 1.25703e-22)
-(-0.582457 0.0310833 1.28788e-22)
-(-0.613585 0.0309244 1.39585e-22)
-(-0.644833 0.0307598 9.85398e-23)
-(-0.676193 0.030591 4.7414e-23)
-(-0.707663 0.0304192 4.52982e-23)
-(-0.739238 0.0302447 4.83158e-23)
-(-0.770918 0.0300678 5.29269e-23)
-(-0.802701 0.0298882 5.4017e-23)
-(-0.834584 0.0297053 3.4132e-24)
-(-0.866567 0.0295182 -1.91488e-23)
-(-0.898648 0.0293258 -4.80659e-23)
-(-0.930824 0.0291271 3.81187e-24)
-(-0.963092 0.0289211 1.47694e-24)
-(-0.995448 0.0287071 6.45018e-23)
-(-1.02789 0.0284851 6.55264e-23)
-(-1.0604 0.0282563 6.21821e-23)
-(-1.093 0.028025 1.28004e-22)
-(-1.12568 0.0278015 1.39023e-22)
-(-1.15841 0.0276021 1.4776e-22)
-(-1.19124 0.027441 1.56561e-22)
-(-1.22421 0.0273205 1.09439e-22)
-(-1.25731 0.0272095 1.14642e-22)
-(-1.29055 0.0270862 1.242e-22)
-(-1.32392 0.026959 7.60745e-23)
-(-1.35741 0.0268261 1.54062e-23)
-(-1.39102 0.0266857 5.72682e-23)
-(-1.42472 0.0265363 5.36201e-23)
-(-1.45851 0.0263765 4.53433e-23)
-(-1.49238 0.0262053 -1.27399e-23)
-(-1.5263 0.0260218 2.61003e-23)
-(-1.56025 0.0258253 2.42395e-23)
-(-1.59422 0.0256148 -2.5978e-23)
-(-1.62818 0.0253898 -3.64124e-23)
-(-1.66212 0.0251498 2.53335e-24)
-(-1.696 0.024894 2.30707e-24)
-(-1.72981 0.0246221 6.15287e-25)
-(-1.76351 0.0243336 -1.36551e-24)
-(-1.79707 0.024028 -3.20721e-24)
-(-1.83048 0.0237048 -5.06526e-23)
-(-1.8637 0.0233637 -6.45524e-23)
-(-1.89669 0.0230043 -7.39129e-23)
-(-1.92943 0.0226262 -8.43085e-23)
-(-1.96188 0.0222289 -5.34686e-23)
-(-1.99401 0.021812 -6.05421e-23)
-(-2.02578 0.0213751 -2.95177e-23)
-(-2.05715 0.0209177 -3.05542e-23)
-(-2.08809 0.0204394 -2.91932e-23)
-(-2.11855 0.0199396 -2.99053e-23)
-(-2.14849 0.0194178 -2.96513e-23)
-(-2.17787 0.0188735 -5.99444e-23)
-(-2.20665 0.0183061 -5.99144e-23)
-(-2.23476 0.0177153 -2.79599e-23)
-(-2.26218 0.0171004 -2.98234e-23)
-(-2.28884 0.016461 -7.41793e-23)
-(-2.31469 0.0157967 -9.5508e-23)
-(-2.33968 0.0151074 -5.0717e-23)
-(-2.36376 0.0143927 2.59268e-24)
-(-2.38686 0.0136526 -1.1566e-23)
-(-2.40894 0.0128875 -2.34659e-23)
-(-2.42993 0.0120975 -4.00695e-23)
-(-2.44977 0.0112833 -5.09531e-23)
-(-2.4684 0.0104458 1.02375e-23)
-(-2.48577 0.00958601 1.08883e-23)
-(-2.50182 0.00870541 7.83439e-23)
-(-2.5165 0.00780559 8.72207e-23)
-(-2.52975 0.0068884 2.11524e-23)
-(-2.54152 0.00595585 6.25002e-23)
-(-2.55177 0.00501001 6.31683e-23)
-(-2.56044 0.00405297 5.60989e-23)
-(-2.56752 0.00308656 5.55916e-23)
-(-2.57295 0.0021116 5.64501e-23)
-(-2.5767 0.0011289 5.6501e-23)
-(-2.57872 0.000151591 5.69765e-23)
-(-2.57903 -0.000810939 6.03029e-23)
-(-2.57762 -0.00176206 1.0451e-22)
-(-2.57449 -0.00270289 1.13554e-22)
-(-2.56963 -0.00363331 1.27409e-22)
-(-2.56304 -0.00455304 8.97373e-23)
-(-2.55473 -0.00546175 9.66833e-23)
-(-2.54469 -0.00635906 1.08576e-22)
-(-2.53292 -0.00724458 7.91337e-23)
-(-2.51943 -0.00811789 8.20594e-23)
-(-2.50423 -0.00897852 9.47315e-23)
-(-2.48732 -0.00982601 1.12867e-22)
-(-2.4687 -0.0106598 9.75326e-23)
-(-2.4484 -0.0114795 1.09508e-22)
-(-2.42641 -0.0122844 9.03344e-23)
-(-2.40276 -0.013074 9.56337e-23)
-(-2.37745 -0.0138476 1.0191e-22)
-(-2.35051 -0.0146045 9.93209e-23)
-(-2.32195 -0.015344 1.14597e-22)
-(-2.2918 -0.0160656 1.11176e-22)
-(-2.26008 -0.0167687 9.28373e-23)
-(-2.22682 -0.0174528 9.30505e-23)
-(-2.19203 -0.0181177 9.51783e-23)
-(-2.15577 -0.018763 9.71686e-23)
-(-2.11804 -0.0193883 9.18334e-23)
-(-2.0789 -0.0199933 9.09219e-23)
-(-2.03836 -0.0205775 9.53574e-23)
-(-1.99648 -0.0211404 9.44477e-23)
-(-1.95328 -0.0216814 9.06487e-23)
-(-1.90881 -0.0222004 9.51623e-23)
-(-1.86312 -0.0226972 9.70117e-23)
-(-1.81624 -0.023172 1.04104e-22)
-(-1.76822 -0.0236252 1.1861e-22)
-(-1.71911 -0.0240567 1.45228e-22)
-(-1.66896 -0.0244661 1.39377e-22)
-(-1.61781 -0.0248528 1.08523e-22)
-(-1.56571 -0.0252172 3.03484e-23)
-(-1.51272 -0.0255599 -2.43504e-23)
-(-1.45889 -0.025882 -4.94636e-24)
-(-1.40427 -0.0261839 4.4064e-23)
-(-1.34891 -0.0264647 8.85973e-24)
-(-1.29286 -0.0267244 -3.51815e-23)
-(-1.23619 -0.0269646 -8.52234e-23)
-(-1.17893 -0.0271886 2.64254e-23)
-(-1.12114 -0.0273954 -3.84965e-25)
-(-1.06287 -0.0275823 -1.75779e-22)
-(-1.00417 -0.0277523 -9.93954e-23)
-(-0.945099 -0.0279116 1.3261e-22)
-(-0.885687 -0.0280577 1.8518e-22)
-(-0.825997 -0.0281842 2.98514e-22)
-(-0.766069 -0.0283074 4.86546e-22)
-(-0.705927 -0.0284246 2.71872e-22)
-(-0.645635 -0.0285185 2.62719e-22)
-(-0.585224 -0.0286233 2.01713e-22)
-(-0.524709 -0.0287244 3.39878e-23)
-(-0.464132 -0.0288156 2.58345e-22)
-(-0.40351 -0.0289275 4.19453e-22)
-(-0.34289 -0.0290169 1.07821e-22)
-(-0.282215 -0.0291569 -1.09868e-22)
-(-0.221683 -0.0292824 -1.65027e-22)
-(-0.160897 -0.029419 3.78695e-22)
-(-0.100331 -0.0296729 2.97579e-22)
-(-0.0401663 -0.029953 3.47571e-22)
-(0.0216799 -0.0296448 5.22576e-22)
-(0.0814305 -0.0286717 2.39976e-22)
-(0.140936 -0.0277367 -3.56376e-23)
-(0.199984 -0.0269273 -4.26548e-22)
-(0.25864 -0.0261967 6.00369e-23)
-(0.316969 -0.0255197 -4.63434e-23)
-(0.375 -0.0248786 -7.68041e-23)
-(0.432726 -0.0242557 -1.30709e-23)
-(0.490105 -0.0236301 6.81649e-22)
-(0.547008 -0.0229617 2.49584e-22)
-(0.60325 -0.0222003 -4.58934e-22)
-(0.658168 -0.0211672 -1.08228e-22)
-(0.711339 -0.0197367 1.81757e-22)
-(0.75855 -0.0167349 1.98742e-22)
-(0.802412 -0.0120827 2.9295e-22)
-(0.79459 0.00565451 -6.7699e-22)
-(0.00264398 -0.0312631 -3.80671e-24)
-(0.00470438 -0.0263754 -8.28119e-23)
-(0.00125717 -0.0122901 -2.01556e-22)
-(-0.00618108 0.00310432 1.40918e-22)
-(-0.0163215 0.0170507 1.36221e-22)
-(-0.0287984 0.0288458 8.17246e-23)
-(-0.0433081 0.0384975 1.03525e-22)
-(-0.0596153 0.0462274 5.36127e-23)
-(-0.0775258 0.0523377 1.21466e-23)
-(-0.0968857 0.0572617 -1.91887e-23)
-(-0.11756 0.0613651 -3.61302e-23)
-(-0.139386 0.0648495 8.97531e-23)
-(-0.16222 0.0678261 2.14033e-22)
-(-0.185937 0.0703579 1.4757e-22)
-(-0.210429 0.0724878 1.00585e-22)
-(-0.235602 0.0742524 4.41711e-23)
-(-0.261372 0.0756872 -1.41774e-23)
-(-0.287661 0.0768274 6.17303e-23)
-(-0.314401 0.0777076 7.37151e-23)
-(-0.341531 0.0783611 6.4222e-23)
-(-0.368998 0.078819 4.40195e-23)
-(-0.396754 0.0791101 7.41514e-23)
-(-0.42476 0.0792607 8.17303e-23)
-(-0.452981 0.0792942 1.42758e-22)
-(-0.481389 0.0792313 9.98185e-23)
-(-0.50996 0.0790902 6.13455e-23)
-(-0.538676 0.0788867 1.1109e-22)
-(-0.567523 0.0786342 1.50368e-22)
-(-0.596488 0.0783442 1.13853e-22)
-(-0.625564 0.0780263 4.46518e-23)
-(-0.654747 0.0776882 2.8815e-23)
-(-0.684031 0.0773363 5.45122e-23)
-(-0.713417 0.0769756 2.88371e-23)
-(-0.742905 0.07661 1.78044e-23)
-(-0.772496 0.0762421 1.02185e-23)
-(-0.802193 0.0758738 5.48128e-23)
-(-0.831998 0.0755063 1.30338e-22)
-(-0.861915 0.0751399 1.97553e-22)
-(-0.891949 0.0747746 2.55701e-22)
-(-0.922104 0.0744099 2.14502e-22)
-(-0.952384 0.074045 6.71858e-23)
-(-0.982793 0.0736791 1.29195e-22)
-(-1.01334 0.0733113 1.06615e-22)
-(-1.04402 0.0729412 1.02818e-22)
-(-1.07485 0.072569 1.06789e-22)
-(-1.10582 0.0721965 7.21116e-23)
-(-1.13696 0.0718308 6.897e-23)
-(-1.16824 0.0714864 7.81197e-23)
-(-1.19968 0.0711688 8.18618e-24)
-(-1.23124 0.070867 3.47778e-23)
-(-1.26292 0.0705679 3.5312e-23)
-(-1.29471 0.0702613 2.85165e-23)
-(-1.3266 0.0699409 6.94397e-23)
-(-1.35859 0.069602 1.33551e-22)
-(-1.39067 0.0692404 1.23931e-22)
-(-1.42282 0.0688528 1.39242e-22)
-(-1.45502 0.0684363 7.75246e-23)
-(-1.48726 0.0679885 9.2717e-23)
-(-1.51953 0.067507 7.04178e-23)
-(-1.5518 0.0669901 1.20086e-23)
-(-1.58406 0.066436 3.78108e-23)
-(-1.61628 0.065843 5.73377e-23)
-(-1.64844 0.0652099 2.52137e-23)
-(-1.68052 0.0645353 1.70306e-23)
-(-1.7125 0.0638181 1.71345e-23)
-(-1.74435 0.0630572 1.7791e-23)
-(-1.77604 0.0622517 5.51983e-24)
-(-1.80754 0.0614006 4.30215e-23)
-(-1.83883 0.060503 6.06125e-24)
-(-1.86987 0.0595581 1.7154e-24)
-(-1.90064 0.058565 1.53839e-23)
-(-1.93111 0.0575228 1.27143e-23)
-(-1.96123 0.0564307 2.91626e-23)
-(-1.99098 0.0552875 -9.27791e-24)
-(-2.02031 0.0540924 -4.40236e-23)
-(-2.0492 0.0528444 -2.61273e-23)
-(-2.0776 0.0515422 -3.28506e-23)
-(-2.10547 0.0501848 -1.09074e-22)
-(-2.13277 0.0487709 -8.20792e-23)
-(-2.15946 0.0472995 -1.04474e-23)
-(-2.18549 0.0457692 9.43661e-25)
-(-2.21081 0.044179 1.4431e-23)
-(-2.23537 0.0425279 5.47415e-23)
-(-2.25913 0.040815 1.00329e-22)
-(-2.28203 0.0390397 1.10473e-22)
-(-2.30401 0.0372017 1.2416e-22)
-(-2.32503 0.0353012 6.77956e-23)
-(-2.34501 0.0333386 8.54641e-23)
-(-2.36392 0.0313151 1.9824e-23)
-(-2.38168 0.0292323 -6.07193e-24)
-(-2.39824 0.0270929 2.12361e-23)
-(-2.41354 0.0248998 8.29214e-24)
-(-2.42753 0.022657 5.6316e-23)
-(-2.44015 0.0203693 9.63026e-23)
-(-2.45135 0.018042 1.40563e-22)
-(-2.46107 0.015681 7.8594e-23)
-(-2.46927 0.0132924 1.10045e-22)
-(-2.47591 0.0108826 6.18224e-23)
-(-2.48095 0.00845697 5.46361e-23)
-(-2.48435 0.00601821 6.04986e-23)
-(-2.48606 0.00356951 5.80039e-23)
-(-2.48608 0.00113535 3.72181e-23)
-(-2.48441 -0.00126081 1.22999e-22)
-(-2.48104 -0.00361944 7.86065e-23)
-(-2.47596 -0.00594141 5.81458e-23)
-(-2.46918 -0.0082264 7.28206e-23)
-(-2.4607 -0.0104736 5.08666e-23)
-(-2.45051 -0.0126821 5.32048e-23)
-(-2.43861 -0.0148507 3.78627e-23)
-(-2.42501 -0.0169783 6.20788e-23)
-(-2.4097 -0.0190638 3.13805e-23)
-(-2.39271 -0.021106 2.85813e-23)
-(-2.37402 -0.0231035 1.7756e-23)
-(-2.35365 -0.025055 5.30453e-23)
-(-2.33161 -0.0269592 4.94755e-23)
-(-2.30791 -0.0288146 6.93983e-23)
-(-2.28256 -0.0306198 7.78908e-23)
-(-2.25557 -0.0323732 1.15718e-22)
-(-2.22697 -0.034073 1.54065e-22)
-(-2.19678 -0.0357175 1.44972e-22)
-(-2.165 -0.0373051 1.00637e-22)
-(-2.13168 -0.0388346 9.30076e-23)
-(-2.09682 -0.0403049 9.27295e-23)
-(-2.06047 -0.041715 1.00553e-22)
-(-2.02265 -0.0430642 8.43348e-23)
-(-1.98339 -0.0443521 6.68611e-23)
-(-1.94272 -0.0455778 8.36693e-23)
-(-1.90068 -0.0467405 1.08549e-22)
-(-1.8573 -0.047839 1.11537e-22)
-(-1.81263 -0.048872 1.00419e-22)
-(-1.7667 -0.049839 8.87763e-23)
-(-1.71956 -0.0507401 8.69396e-23)
-(-1.67125 -0.0515757 7.87717e-23)
-(-1.62181 -0.0523467 6.58983e-23)
-(-1.5713 -0.0530539 5.76646e-23)
-(-1.51975 -0.0536965 8.53752e-23)
-(-1.46722 -0.0542735 1.21854e-22)
-(-1.41375 -0.0547853 1.29107e-22)
-(-1.3594 -0.0552336 1.11412e-22)
-(-1.30423 -0.0556213 9.93901e-23)
-(-1.24827 -0.05595 1.00635e-22)
-(-1.19158 -0.0562183 7.0106e-23)
-(-1.13422 -0.0564259 3.42425e-23)
-(-1.07623 -0.0565759 2.99604e-24)
-(-1.01768 -0.0566761 6.34768e-23)
-(-0.958599 -0.0567261 -5.96377e-23)
-(-0.899046 -0.0567201 4.47709e-24)
-(-0.839076 -0.056663 -4.87615e-23)
-(-0.778736 -0.056568 1.0241e-22)
-(-0.718062 -0.0564322 9.71834e-23)
-(-0.657111 -0.056243 1.625e-22)
-(-0.595929 -0.056029 3.49836e-22)
-(-0.534537 -0.0557894 2.87353e-22)
-(-0.472993 -0.0554933 3.2065e-22)
-(-0.411324 -0.0551949 3.14733e-22)
-(-0.349564 -0.054878 2.98836e-22)
-(-0.287726 -0.0545278 2.09011e-22)
-(-0.225851 -0.05419 1.71092e-22)
-(-0.163968 -0.0538131 1.75867e-22)
-(-0.101981 -0.0534695 -1.09107e-22)
-(-0.0402356 -0.0531522 1.36992e-22)
-(0.0220633 -0.0527401 4.43645e-22)
-(0.0836995 -0.0523017 3.06773e-22)
-(0.144965 -0.0519782 3.62562e-22)
-(0.206229 -0.0513064 1.00288e-22)
-(0.266983 -0.0502153 2.41321e-22)
-(0.327571 -0.0492078 -6.17092e-23)
-(0.387842 -0.0482989 -5.43458e-23)
-(0.447814 -0.0474618 1.93673e-22)
-(0.507507 -0.0466707 -8.13858e-23)
-(0.566928 -0.0459014 -9.60528e-23)
-(0.626059 -0.0451259 -1.71098e-23)
-(0.684849 -0.0443051 -1.11676e-23)
-(0.743166 -0.0433679 6.96758e-23)
-(0.800822 -0.0421995 2.01367e-22)
-(0.857257 -0.0405186 9.01331e-23)
-(0.912108 -0.0379205 3.82053e-22)
-(0.96242 -0.0329362 2.20299e-22)
-(1.01112 -0.0238004 4.21779e-22)
-(1.03437 -0.00237988 1.03107e-21)
-(-0.00272624 -0.029314 1.70456e-22)
-(-0.00986795 -0.0117083 1.46647e-22)
-(-0.0210465 0.00975143 5.55532e-22)
-(-0.0338491 0.0286216 5.01115e-22)
-(-0.0479217 0.0450083 4.61825e-22)
-(-0.0629897 0.0591329 4.76599e-22)
-(-0.0790742 0.0711558 3.39408e-22)
-(-0.0962153 0.0812694 8.92055e-23)
-(-0.114422 0.0897163 7.87681e-23)
-(-0.133658 0.0967824 5.77716e-23)
-(-0.153842 0.102734 3.48162e-23)
-(-0.174868 0.10777 -1.55992e-22)
-(-0.196635 0.112031 -9.55527e-23)
-(-0.219051 0.115617 2.70544e-22)
-(-0.242038 0.118603 3.08577e-22)
-(-0.265526 0.121051 2.01866e-22)
-(-0.289458 0.12302 1.97968e-22)
-(-0.313782 0.124563 1.36381e-22)
-(-0.338451 0.125731 1.12574e-22)
-(-0.363427 0.126572 9.77929e-23)
-(-0.388673 0.127132 8.57375e-23)
-(-0.41416 0.127453 8.11681e-23)
-(-0.439861 0.127571 5.22244e-23)
-(-0.465752 0.127521 7.42254e-24)
-(-0.491817 0.127333 1.13219e-23)
-(-0.51804 0.127034 -2.92333e-23)
-(-0.544407 0.126647 -2.54608e-23)
-(-0.570911 0.126192 -5.71101e-23)
-(-0.597543 0.125686 -6.17515e-23)
-(-0.6243 0.125142 -5.81527e-23)
-(-0.651178 0.124573 1.16279e-23)
-(-0.678177 0.123989 9.60563e-24)
-(-0.705295 0.123396 3.20993e-23)
-(-0.732536 0.122801 2.13094e-23)
-(-0.7599 0.122207 1.06247e-22)
-(-0.787391 0.121619 8.3633e-23)
-(-0.815011 0.121037 1.04414e-22)
-(-0.842766 0.120463 9.80702e-23)
-(-0.870658 0.119896 5.9475e-23)
-(-0.898692 0.119337 7.39825e-23)
-(-0.926871 0.118785 1.52661e-22)
-(-0.9552 0.118238 1.19647e-22)
-(-0.983681 0.117697 1.05192e-22)
-(-1.01232 0.117159 1.00263e-22)
-(-1.04111 0.116625 3.0778e-23)
-(-1.07007 0.116095 -4.18426e-24)
-(-1.09918 0.11557 -8.09703e-24)
-(-1.12844 0.115053 -1.17975e-22)
-(-1.15784 0.114541 -6.57953e-23)
-(-1.18737 0.114028 3.74907e-23)
-(-1.21702 0.113503 2.0368e-23)
-(-1.24677 0.112957 -9.19904e-24)
-(-1.27662 0.112384 4.40114e-23)
-(-1.30655 0.111778 9.99442e-23)
-(-1.33656 0.111133 7.51014e-23)
-(-1.36663 0.110445 6.20438e-23)
-(-1.39674 0.109709 1.40538e-22)
-(-1.42689 0.108923 8.9657e-23)
-(-1.45705 0.108082 -7.38013e-23)
-(-1.4872 0.107184 -1.13061e-23)
-(-1.51733 0.106226 2.50602e-23)
-(-1.54742 0.105206 8.21903e-23)
-(-1.57744 0.104121 2.65836e-23)
-(-1.60737 0.102971 1.34239e-23)
-(-1.63719 0.101752 2.10688e-23)
-(-1.66688 0.100463 6.71325e-23)
-(-1.69641 0.099104 1.72752e-23)
-(-1.72575 0.0976722 -2.61933e-23)
-(-1.75488 0.0961666 -2.18605e-24)
-(-1.78376 0.0945859 -1.6768e-23)
-(-1.81237 0.0929288 -6.37115e-23)
-(-1.84068 0.0911939 -2.60848e-23)
-(-1.86866 0.0893799 9.60708e-23)
-(-1.89628 0.0874853 7.30211e-23)
-(-1.92349 0.0855084 1.14715e-22)
-(-1.95026 0.0834477 5.71353e-23)
-(-1.97657 0.0813013 -3.3143e-23)
-(-2.00236 0.0790673 1.92888e-23)
-(-2.02761 0.0767437 -5.06641e-23)
-(-2.05226 0.0743286 -6.92926e-23)
-(-2.07628 0.0718201 -4.65684e-23)
-(-2.09962 0.0692161 1.13302e-23)
-(-2.12223 0.066515 9.92687e-24)
-(-2.14407 0.0637152 -1.25062e-23)
-(-2.16507 0.0608158 -5.01419e-23)
-(-2.1852 0.057816 -5.03276e-23)
-(-2.2044 0.0547159 -1.07806e-25)
-(-2.22261 0.0515163 -2.43878e-23)
-(-2.23977 0.0482189 2.31215e-23)
-(-2.25583 0.0448263 8.67311e-23)
-(-2.27072 0.0413426 8.34902e-23)
-(-2.28441 0.0377726 2.10344e-23)
-(-2.29681 0.0341229 -5.46962e-24)
-(-2.30789 0.0304008 -1.06664e-22)
-(-2.31759 0.0266152 -8.36935e-23)
-(-2.32585 0.0227755 -6.26456e-23)
-(-2.33263 0.0188919 -5.25209e-24)
-(-2.33789 0.0149747 1.88793e-23)
-(-2.34159 0.0110331 3.38753e-23)
-(-2.34368 0.00707292 7.18876e-23)
-(-2.34413 0.00311536 7.73861e-23)
-(-2.34296 -0.00080142 8.77365e-23)
-(-2.34014 -0.00465786 -4.1459e-24)
-(-2.33568 -0.00845352 4.54169e-23)
-(-2.32957 -0.012188 4.59151e-24)
-(-2.3218 -0.0158604 1.1029e-23)
-(-2.31237 -0.0194693 3.65182e-24)
-(-2.30129 -0.0230129 5.65232e-23)
-(-2.28856 -0.0264895 3.3001e-23)
-(-2.27417 -0.0298971 1.21322e-22)
-(-2.25813 -0.0332339 1.27148e-22)
-(-2.24044 -0.0364978 1.54721e-22)
-(-2.22111 -0.0396865 1.31314e-22)
-(-2.20015 -0.042798 8.44244e-23)
-(-2.17756 -0.0458301 4.16902e-23)
-(-2.15336 -0.0487804 4.12223e-23)
-(-2.12755 -0.0516465 1.05284e-22)
-(-2.10016 -0.0544259 1.26178e-22)
-(-2.0712 -0.0571157 1.06868e-22)
-(-2.04068 -0.059713 1.13159e-22)
-(-2.00863 -0.0622154 1.01517e-22)
-(-1.97507 -0.0646206 1.01035e-22)
-(-1.94002 -0.0669268 9.89604e-23)
-(-1.90352 -0.0691325 7.9715e-23)
-(-1.86558 -0.0712365 6.91925e-23)
-(-1.82625 -0.073238 8.90119e-23)
-(-1.78554 -0.075136 9.35902e-23)
-(-1.7435 -0.0769292 5.36847e-23)
-(-1.70017 -0.0786156 6.6684e-23)
-(-1.65556 -0.0801932 9.35207e-23)
-(-1.60974 -0.081661 1.03627e-22)
-(-1.56274 -0.0830188 1.14052e-22)
-(-1.51459 -0.0842676 8.09224e-23)
-(-1.46536 -0.0854089 6.38081e-23)
-(-1.41507 -0.0864442 5.42241e-23)
-(-1.36378 -0.0873727 6.63193e-23)
-(-1.31153 -0.0881922 5.09439e-23)
-(-1.25838 -0.0889033 6.49912e-23)
-(-1.20436 -0.0895088 1.07612e-22)
-(-1.14954 -0.0900135 5.34501e-23)
-(-1.09396 -0.0904204 -1.22125e-23)
-(-1.03767 -0.0907275 -3.2499e-23)
-(-0.980727 -0.0909338 8.78649e-23)
-(-0.923178 -0.091044 6.31794e-23)
-(-0.865075 -0.0910707 -2.29479e-23)
-(-0.806462 -0.0910145 -3.89018e-23)
-(-0.747388 -0.090866 2.03169e-24)
-(-0.687911 -0.0906319 -2.24377e-24)
-(-0.628075 -0.0903334 1.33416e-22)
-(-0.567914 -0.0899672 2.85173e-22)
-(-0.507483 -0.0895136 2.87361e-22)
-(-0.446826 -0.0890146 2.37885e-22)
-(-0.385969 -0.0884721 5.33615e-22)
-(-0.324961 -0.0878431 3.45811e-22)
-(-0.263818 -0.087197 3.57415e-22)
-(-0.202608 -0.086521 2.67921e-22)
-(-0.141289 -0.0857908 1.88384e-22)
-(-0.0799544 -0.0850686 2.32553e-22)
-(-0.0186135 -0.0843128 2.68218e-22)
-(0.0429189 -0.0835151 1.20408e-22)
-(0.103979 -0.0827294 7.14622e-23)
-(0.165033 -0.0818338 2.05311e-22)
-(0.225806 -0.0808431 2.7217e-22)
-(0.28631 -0.0799356 4.18842e-22)
-(0.346584 -0.0788574 5.2128e-23)
-(0.406654 -0.0775632 3.22616e-22)
-(0.46662 -0.0763217 -1.47655e-22)
-(0.526362 -0.075158 -1.46444e-22)
-(0.585868 -0.0740579 -3.26119e-23)
-(0.645133 -0.0729979 -1.85779e-22)
-(0.704151 -0.0719493 -1.20233e-22)
-(0.762897 -0.0708737 4.22988e-24)
-(0.821317 -0.0697126 1.36163e-22)
-(0.879288 -0.068363 2.71498e-23)
-(0.936644 -0.0666539 8.72474e-23)
-(0.992921 -0.0642186 8.30245e-23)
-(1.04793 -0.0605025 -2.4785e-22)
-(1.09952 -0.0539431 1.12066e-22)
-(1.15135 -0.0428227 4.91217e-22)
-(1.18915 -0.0208701 1.10019e-21)
-(-0.0077507 -0.0104564 7.20807e-22)
-(-0.0205681 0.0170722 1.00827e-21)
-(-0.0351016 0.0402864 8.07682e-22)
-(-0.0508125 0.0600958 8.20357e-22)
-(-0.0670827 0.0774835 5.68255e-22)
-(-0.083685 0.0927669 4.73578e-22)
-(-0.100714 0.106085 2.87597e-22)
-(-0.118281 0.117562 3.07597e-22)
-(-0.136453 0.127364 2.27653e-22)
-(-0.155249 0.135695 1.97614e-22)
-(-0.174647 0.14276 1.94102e-22)
-(-0.194603 0.148739 2.10963e-22)
-(-0.215063 0.15378 5.16124e-23)
-(-0.235976 0.157998 -7.80036e-23)
-(-0.257293 0.161491 -1.15408e-22)
-(-0.278972 0.164339 7.63638e-23)
-(-0.300978 0.166617 1.49453e-22)
-(-0.32328 0.16839 1.67207e-22)
-(-0.345848 0.16972 1.68473e-22)
-(-0.368661 0.170665 1.58707e-22)
-(-0.391697 0.171279 1.25388e-22)
-(-0.414938 0.171608 2.3126e-22)
-(-0.438368 0.1717 1.84383e-22)
-(-0.461974 0.171592 1.67846e-22)
-(-0.485745 0.171322 1.53773e-22)
-(-0.509672 0.170921 1.52769e-22)
-(-0.533748 0.170415 2.60939e-23)
-(-0.557967 0.16983 4.96017e-23)
-(-0.582326 0.169186 8.39927e-23)
-(-0.606822 0.168499 1.65451e-22)
-(-0.631455 0.167784 1.72493e-22)
-(-0.656224 0.167053 1.55622e-22)
-(-0.681129 0.166315 1.30584e-22)
-(-0.706174 0.165576 1.5677e-22)
-(-0.731359 0.164843 2.15519e-22)
-(-0.756687 0.164118 2.1202e-22)
-(-0.782162 0.163405 1.6588e-22)
-(-0.807785 0.162703 1.66115e-22)
-(-0.833561 0.162014 2.0003e-22)
-(-0.859491 0.161336 1.2027e-22)
-(-0.885579 0.160667 1.00954e-22)
-(-0.911825 0.160007 9.3561e-23)
-(-0.938231 0.159353 1.13671e-22)
-(-0.964798 0.158702 -3.49326e-24)
-(-0.991525 0.158052 -2.3089e-23)
-(-1.01841 0.157401 -8.35578e-23)
-(-1.04545 0.156746 -1.90492e-23)
-(-1.07263 0.156085 -1.19051e-23)
-(-1.09995 0.155413 -5.46919e-23)
-(-1.12739 0.154722 -3.24629e-23)
-(-1.15495 0.154005 5.17725e-23)
-(-1.18261 0.153253 1.31719e-23)
-(-1.21036 0.152458 -6.82873e-23)
-(-1.2382 0.151614 -4.23078e-23)
-(-1.2661 0.150715 1.6559e-24)
-(-1.29406 0.149755 1.19205e-23)
-(-1.32206 0.148728 1.07123e-23)
-(-1.35008 0.147631 -2.62414e-23)
-(-1.37811 0.146458 8.88837e-23)
-(-1.40613 0.145207 -5.02428e-24)
-(-1.43413 0.143874 -9.07249e-23)
-(-1.46208 0.142455 -1.08276e-22)
-(-1.48995 0.140948 -4.94163e-23)
-(-1.51774 0.139351 -3.50887e-23)
-(-1.54542 0.137661 -7.34653e-23)
-(-1.57296 0.135876 -1.02275e-22)
-(-1.60034 0.133994 3.03996e-23)
-(-1.62753 0.132014 4.73561e-24)
-(-1.65452 0.129934 8.97889e-23)
-(-1.68127 0.127752 5.50094e-23)
-(-1.70775 0.125466 4.38087e-23)
-(-1.73394 0.123075 7.75571e-23)
-(-1.75981 0.120576 3.15851e-23)
-(-1.78532 0.117969 3.96526e-24)
-(-1.81045 0.11525 -3.36731e-23)
-(-1.83515 0.112417 -1.17812e-22)
-(-1.85941 0.109468 -8.97224e-23)
-(-1.88317 0.1064 -1.15363e-22)
-(-1.90641 0.103211 -1.22448e-23)
-(-1.92908 0.0998967 8.62626e-23)
-(-1.95114 0.096455 1.28038e-22)
-(-1.97256 0.0928829 1.13609e-22)
-(-1.99328 0.0891778 3.79619e-23)
-(-2.01326 0.0853372 -5.37719e-23)
-(-2.03244 0.0813593 2.33157e-23)
-(-2.05079 0.0772429 1.20192e-23)
-(-2.06824 0.0729875 5.4843e-23)
-(-2.08475 0.0685939 1.09629e-23)
-(-2.10025 0.064064 8.61572e-24)
-(-2.11469 0.0594012 2.28865e-23)
-(-2.12802 0.0546104 -4.04198e-25)
-(-2.14017 0.0496984 -4.32211e-24)
-(-2.1511 0.0446737 6.48499e-23)
-(-2.16073 0.0395466 -6.68515e-24)
-(-2.16904 0.0343291 -1.50026e-23)
-(-2.17595 0.0290345 -2.6683e-23)
-(-2.18142 0.0236773 -4.48998e-23)
-(-2.18542 0.0182721 -1.89476e-23)
-(-2.1879 0.0128327 -4.78483e-24)
-(-2.18882 0.00736973 -2.97801e-23)
-(-2.18816 0.00192468 -8.2657e-23)
-(-2.18593 -0.00345535 -5.38238e-24)
-(-2.18212 -0.00875754 1.57918e-22)
-(-2.17672 -0.0139777 1.7143e-22)
-(-2.16973 -0.0191142 1.60602e-22)
-(-2.16114 -0.0241653 1.15197e-22)
-(-2.15095 -0.0291287 1.58108e-22)
-(-2.13916 -0.0340023 1.30836e-22)
-(-2.12578 -0.0387835 1.55389e-22)
-(-2.11079 -0.0434696 9.35027e-23)
-(-2.09421 -0.048058 8.42541e-23)
-(-2.07604 -0.0525456 8.65221e-24)
-(-2.05629 -0.0569296 8.60119e-23)
-(-2.03495 -0.061207 4.8379e-23)
-(-2.01204 -0.0653746 1.08448e-22)
-(-1.98758 -0.0694293 1.53162e-22)
-(-1.96156 -0.0733678 1.16197e-22)
-(-1.93401 -0.0771867 1.13819e-22)
-(-1.90494 -0.080882 1.31723e-22)
-(-1.87436 -0.0844495 8.66189e-23)
-(-1.84231 -0.0878858 7.57223e-23)
-(-1.80879 -0.0911877 1.12603e-22)
-(-1.77384 -0.0943525 1.00903e-22)
-(-1.73747 -0.0973783 9.82366e-23)
-(-1.69972 -0.100263 7.21483e-23)
-(-1.66062 -0.103006 7.26199e-23)
-(-1.6202 -0.105606 9.18938e-23)
-(-1.57848 -0.108062 8.94385e-23)
-(-1.5355 -0.110369 5.43804e-23)
-(-1.49131 -0.112526 6.28511e-23)
-(-1.44593 -0.114531 9.36889e-23)
-(-1.39941 -0.116384 1.09306e-22)
-(-1.35179 -0.118085 1.12011e-22)
-(-1.30311 -0.119637 8.84438e-23)
-(-1.25342 -0.121043 8.4851e-23)
-(-1.20275 -0.122301 7.09296e-23)
-(-1.15116 -0.123408 7.41099e-23)
-(-1.09869 -0.124365 6.45924e-23)
-(-1.04539 -0.125175 1.2262e-22)
-(-0.991318 -0.125845 6.94086e-23)
-(-0.936511 -0.12638 4.3893e-23)
-(-0.881016 -0.126778 1.05724e-23)
-(-0.824885 -0.127036 1.61703e-23)
-(-0.768174 -0.127158 4.7285e-23)
-(-0.710931 -0.127166 3.95205e-23)
-(-0.653196 -0.12706 -5.64956e-23)
-(-0.595014 -0.126826 2.18199e-23)
-(-0.536445 -0.126473 9.6783e-23)
-(-0.47753 -0.12603 1.09228e-22)
-(-0.418304 -0.125496 2.63668e-22)
-(-0.358817 -0.12484 2.34487e-22)
-(-0.299105 -0.124119 2.10906e-22)
-(-0.239212 -0.123339 2.94804e-22)
-(-0.179174 -0.122448 3.22653e-22)
-(-0.118967 -0.121522 4.04927e-22)
-(-0.058759 -0.120568 2.50208e-22)
-(0.00162849 -0.119532 1.52973e-22)
-(0.0619751 -0.118455 2.62452e-22)
-(0.12214 -0.117345 3.63857e-22)
-(0.182271 -0.116151 4.30519e-22)
-(0.242163 -0.114916 4.10886e-22)
-(0.301924 -0.113611 3.04226e-22)
-(0.361506 -0.112223 2.46264e-22)
-(0.420873 -0.110877 1.18613e-22)
-(0.480003 -0.109407 3.15879e-22)
-(0.539003 -0.107782 8.61453e-23)
-(0.597922 -0.106185 1.14861e-22)
-(0.656676 -0.104649 -2.04345e-22)
-(0.715241 -0.103171 -3.39371e-22)
-(0.773603 -0.101731 -3.13704e-22)
-(0.831746 -0.100296 -1.36281e-22)
-(0.889644 -0.0988196 4.66517e-23)
-(0.947246 -0.0972238 -2.17151e-22)
-(1.00445 -0.0953777 -6.62583e-23)
-(1.06111 -0.0930648 4.15029e-23)
-(1.11688 -0.0898655 9.5475e-23)
-(1.17175 -0.085143 2.54098e-22)
-(1.22415 -0.0774273 1.64969e-22)
-(1.27815 -0.0652367 6.11346e-22)
-(1.323 -0.0443085 8.33207e-22)
-(-0.0104971 0.0207214 1.72452e-21)
-(-0.0257611 0.0529842 1.13583e-21)
-(-0.0422267 0.0763487 3.67507e-22)
-(-0.059659 0.095825 2.11206e-22)
-(-0.0772602 0.113006 2.5844e-22)
-(-0.0947707 0.128321 1.69927e-22)
-(-0.112294 0.141905 2.6908e-22)
-(-0.129962 0.153828 2.94936e-22)
-(-0.147871 0.164185 2.92517e-22)
-(-0.166073 0.173101 2.96273e-22)
-(-0.184592 0.180725 3.13244e-22)
-(-0.203426 0.1872 3.41773e-22)
-(-0.222563 0.192661 3.76525e-22)
-(-0.241983 0.197225 3.3331e-22)
-(-0.261665 0.200993 3.22866e-22)
-(-0.281591 0.204057 1.60135e-22)
-(-0.301742 0.206498 2.22072e-22)
-(-0.322105 0.208389 2.52784e-22)
-(-0.342667 0.209798 2.91316e-22)
-(-0.363416 0.210788 3.56803e-22)
-(-0.384343 0.211418 3.22753e-22)
-(-0.40544 0.211739 2.2516e-22)
-(-0.426699 0.2118 2.7648e-22)
-(-0.448116 0.211645 3.66921e-22)
-(-0.469685 0.211313 2.99259e-22)
-(-0.491402 0.210837 3.30765e-22)
-(-0.513266 0.210249 2.09102e-22)
-(-0.535274 0.209574 7.73135e-23)
-(-0.557425 0.208835 -3.17241e-23)
-(-0.57972 0.208051 5.9312e-23)
-(-0.602158 0.207238 -6.03951e-23)
-(-0.624741 0.206408 -1.08222e-22)
-(-0.64747 0.205572 3.53744e-23)
-(-0.670348 0.204737 1.06141e-22)
-(-0.693377 0.20391 6.82168e-23)
-(-0.716558 0.203095 9.81003e-23)
-(-0.739894 0.202292 1.02304e-22)
-(-0.763388 0.201505 1.20704e-22)
-(-0.78704 0.200731 2.05376e-24)
-(-0.810854 0.199969 3.5193e-23)
-(-0.834828 0.199218 4.07985e-23)
-(-0.858965 0.198475 1.32439e-23)
-(-0.883263 0.197735 -4.2342e-23)
-(-0.907721 0.196995 2.16828e-23)
-(-0.932336 0.196251 9.53219e-23)
-(-0.957104 0.195498 8.37726e-23)
-(-0.98202 0.19473 -1.44987e-22)
-(-1.00707 0.193944 -6.64193e-23)
-(-1.03226 0.193131 1.30437e-23)
-(-1.05757 0.192284 -3.27622e-23)
-(-1.08298 0.191395 -9.42871e-23)
-(-1.1085 0.190455 -8.03412e-23)
-(-1.1341 0.189456 3.15248e-23)
-(-1.15978 0.188392 2.85024e-24)
-(-1.18552 0.187255 -3.71271e-24)
-(-1.21131 0.186039 -1.68814e-23)
-(-1.23713 0.184738 -3.3894e-23)
-(-1.26298 0.183345 -3.84788e-23)
-(-1.28882 0.181858 -5.95068e-23)
-(-1.31465 0.18027 -1.29602e-23)
-(-1.34044 0.178578 6.32215e-23)
-(-1.36618 0.176778 -4.80829e-23)
-(-1.39185 0.174867 -2.50137e-23)
-(-1.41742 0.172843 9.54088e-24)
-(-1.44288 0.170702 1.16268e-22)
-(-1.4682 0.168442 1.01687e-22)
-(-1.49336 0.16606 1.43971e-23)
-(-1.51833 0.163556 7.44108e-23)
-(-1.5431 0.160926 1.02263e-22)
-(-1.56762 0.158169 5.69229e-23)
-(-1.59189 0.155283 7.41696e-23)
-(-1.61587 0.152266 2.89943e-23)
-(-1.63954 0.149115 -5.12805e-23)
-(-1.66286 0.145828 1.85324e-24)
-(-1.6858 0.142403 -4.04718e-23)
-(-1.70834 0.138836 -1.5618e-22)
-(-1.73045 0.135125 -9.29134e-23)
-(-1.75208 0.131265 -6.65137e-24)
-(-1.77321 0.127253 3.97424e-23)
-(-1.79379 0.123086 3.03049e-23)
-(-1.8138 0.118759 1.07652e-22)
-(-1.83318 0.114268 7.73979e-23)
-(-1.8519 0.10961 4.83701e-23)
-(-1.86991 0.104781 1.18956e-22)
-(-1.88717 0.099778 6.79811e-23)
-(-1.90363 0.0945993 2.54483e-24)
-(-1.91923 0.0892437 -1.49966e-22)
-(-1.93392 0.0837114 -8.88066e-23)
-(-1.94766 0.0780043 -3.49493e-23)
-(-1.96038 0.0721262 -1.60534e-23)
-(-1.97203 0.0660828 4.91931e-23)
-(-1.98256 0.0598823 1.35002e-22)
-(-1.9919 0.0535353 -7.74254e-24)
-(-2 0.0470547 9.49233e-23)
-(-2.00681 0.0404557 5.29648e-23)
-(-2.01228 0.0337555 1.25631e-22)
-(-2.01637 0.026973 4.41832e-23)
-(-2.01902 0.0201273 -8.84411e-24)
-(-2.0202 0.0132367 -2.37594e-23)
-(-2.01986 0.00632729 -3.19595e-23)
-(-2.01804 -0.000544305 3.66695e-23)
-(-2.0147 -0.00733128 -1.08567e-23)
-(-2.00984 -0.014022 3.12959e-24)
-(-2.00346 -0.0206108 4.26088e-24)
-(-1.99556 -0.0270949 6.47273e-23)
-(-1.98612 -0.0334715 9.9577e-23)
-(-1.97515 -0.0397379 1.61423e-22)
-(-1.96265 -0.0458911 1.33711e-22)
-(-1.94861 -0.051928 1.1437e-22)
-(-1.93303 -0.0578451 1.36489e-22)
-(-1.91593 -0.0636388 8.21108e-23)
-(-1.8973 -0.0693054 8.83762e-23)
-(-1.87714 -0.074841 7.51856e-23)
-(-1.85548 -0.0802419 4.64794e-23)
-(-1.8323 -0.0855041 8.89588e-23)
-(-1.80762 -0.0906236 2.10738e-22)
-(-1.78146 -0.0955965 2.01545e-22)
-(-1.75382 -0.100418 1.33765e-22)
-(-1.72473 -0.105084 1.67724e-22)
-(-1.69419 -0.109588 1.23698e-22)
-(-1.66222 -0.113926 1.06404e-22)
-(-1.62886 -0.118094 9.15014e-23)
-(-1.59411 -0.122088 9.67507e-23)
-(-1.55801 -0.125906 4.1488e-23)
-(-1.52058 -0.129545 5.91503e-23)
-(-1.48185 -0.133004 8.0332e-23)
-(-1.44185 -0.136282 1.14138e-22)
-(-1.40061 -0.139377 9.76842e-23)
-(-1.35816 -0.142286 5.5149e-23)
-(-1.31454 -0.145004 6.06294e-23)
-(-1.26979 -0.147528 9.5857e-23)
-(-1.22393 -0.149859 1.3153e-22)
-(-1.17703 -0.151998 1.09918e-22)
-(-1.1291 -0.153947 7.29142e-23)
-(-1.08021 -0.155711 7.4479e-23)
-(-1.03038 -0.157289 5.20139e-23)
-(-0.979665 -0.158676 5.77328e-23)
-(-0.928106 -0.159871 1.30892e-22)
-(-0.875755 -0.160878 4.69446e-23)
-(-0.82266 -0.161709 1.11279e-22)
-(-0.768862 -0.16237 1.03848e-22)
-(-0.714407 -0.162857 1.07792e-22)
-(-0.65934 -0.163165 2.64779e-23)
-(-0.603721 -0.163301 1.4594e-23)
-(-0.547592 -0.163291 -3.58973e-23)
-(-0.490995 -0.163141 7.58853e-23)
-(-0.433969 -0.162827 -8.74857e-24)
-(-0.376575 -0.162359 -3.68845e-23)
-(-0.318846 -0.161779 4.36996e-23)
-(-0.26083 -0.161086 7.73102e-23)
-(-0.202566 -0.160242 2.06957e-22)
-(-0.144057 -0.159309 1.58989e-22)
-(-0.0854167 -0.158303 1.50192e-22)
-(-0.0266469 -0.157184 2.71874e-22)
-(0.0323905 -0.155976 2.34599e-22)
-(0.0912557 -0.154708 2.31061e-22)
-(0.15015 -0.153358 3.6457e-22)
-(0.208985 -0.151919 1.36269e-23)
-(0.267705 -0.150425 4.24476e-22)
-(0.326332 -0.148852 3.64524e-22)
-(0.384798 -0.147224 3.48471e-22)
-(0.443117 -0.145528 3.54665e-22)
-(0.501289 -0.143759 2.31742e-22)
-(0.559283 -0.141997 1.7173e-22)
-(0.617073 -0.140143 2.65916e-22)
-(0.674756 -0.138177 1.96195e-22)
-(0.732366 -0.136225 3.23918e-23)
-(0.789848 -0.134318 -3.31937e-22)
-(0.847182 -0.132463 -2.58898e-22)
-(0.904347 -0.130642 -5.15337e-23)
-(0.96133 -0.128822 -8.63067e-23)
-(1.0181 -0.126945 -2.05017e-22)
-(1.07462 -0.124921 -2.25147e-22)
-(1.13081 -0.122598 -8.4203e-23)
-(1.18656 -0.119731 3.60994e-23)
-(1.24163 -0.115879 1.15994e-22)
-(1.29616 -0.110393 2.86464e-22)
-(1.34898 -0.101985 8.11667e-23)
-(1.40435 -0.0895247 7.99285e-22)
-(1.45276 -0.0701408 9.12955e-22)
-(-0.0111874 0.054898 -4.99037e-22)
-(-0.0274722 0.0922094 1.86481e-22)
-(-0.0448706 0.115259 8.7416e-22)
-(-0.0630759 0.133795 5.89093e-22)
-(-0.0812473 0.150102 4.63138e-22)
-(-0.099085 0.16476 4.22409e-22)
-(-0.11667 0.177922 4.78125e-22)
-(-0.134126 0.189633 3.85245e-22)
-(-0.151555 0.199936 3.57062e-22)
-(-0.169028 0.2089 3.64522e-22)
-(-0.186593 0.216621 3.98203e-22)
-(-0.204277 0.223208 4.50715e-22)
-(-0.222095 0.228772 2.04921e-22)
-(-0.240052 0.23342 -8.34453e-23)
-(-0.258148 0.237252 -5.38258e-23)
-(-0.276384 0.240359 2.49393e-22)
-(-0.294756 0.242823 3.64307e-22)
-(-0.313264 0.244721 2.7386e-22)
-(-0.331906 0.246123 2.64374e-22)
-(-0.350682 0.247095 3.03437e-22)
-(-0.36959 0.247695 2.64696e-22)
-(-0.388631 0.247979 2.85593e-22)
-(-0.407805 0.247995 1.56183e-22)
-(-0.427112 0.247789 6.04368e-23)
-(-0.446554 0.247402 1.43807e-22)
-(-0.46613 0.246867 1.6549e-22)
-(-0.485843 0.246217 1.62189e-22)
-(-0.505694 0.24548 1.85958e-22)
-(-0.525685 0.244678 8.9505e-23)
-(-0.545818 0.243831 -1.53762e-22)
-(-0.566094 0.242955 -7.7092e-23)
-(-0.586517 0.242064 9.71711e-23)
-(-0.607089 0.241169 5.57791e-23)
-(-0.627812 0.240277 -1.16137e-23)
-(-0.648688 0.239395 4.0966e-23)
-(-0.66972 0.238525 4.62856e-23)
-(-0.690909 0.237669 7.94165e-24)
-(-0.712258 0.236829 -1.02711e-22)
-(-0.733766 0.236003 -1.97374e-24)
-(-0.755436 0.235188 3.53229e-23)
-(-0.777265 0.234382 8.50774e-23)
-(-0.799254 0.23358 3.41286e-23)
-(-0.821401 0.232777 3.93321e-24)
-(-0.843703 0.231968 -6.99179e-24)
-(-0.866156 0.231147 -2.85464e-23)
-(-0.888754 0.230307 -9.99582e-23)
-(-0.911492 0.229442 -9.26761e-23)
-(-0.934361 0.228544 -1.02847e-22)
-(-0.957353 0.227606 -7.16429e-23)
-(-0.980457 0.226618 -6.56833e-24)
-(-1.00366 0.225572 -2.51141e-24)
-(-1.02696 0.224459 7.78318e-24)
-(-1.05034 0.223271 3.87483e-23)
-(-1.07378 0.222 -2.28854e-23)
-(-1.09727 0.220639 1.31677e-23)
-(-1.12081 0.219179 -1.8235e-23)
-(-1.14436 0.217615 -8.5065e-23)
-(-1.16793 0.21594 -4.56554e-23)
-(-1.19149 0.214149 -1.87883e-23)
-(-1.21502 0.212238 -2.41274e-23)
-(-1.23851 0.2102 -5.9701e-23)
-(-1.26193 0.208033 -7.25469e-24)
-(-1.28527 0.205732 -1.91725e-23)
-(-1.30851 0.203295 -8.07044e-23)
-(-1.33163 0.200719 -5.43102e-23)
-(-1.3546 0.198 4.98352e-23)
-(-1.3774 0.195137 5.97187e-24)
-(-1.40001 0.192128 -3.60252e-23)
-(-1.42241 0.18897 -4.98174e-23)
-(-1.44458 0.185661 -3.74486e-23)
-(-1.46648 0.182199 -1.95179e-23)
-(-1.48809 0.178582 1.17025e-23)
-(-1.50939 0.174807 -2.97628e-23)
-(-1.53036 0.170872 -2.03376e-22)
-(-1.55095 0.166773 -2.3767e-22)
-(-1.57115 0.162507 -8.20379e-23)
-(-1.59093 0.158071 -7.41238e-23)
-(-1.61025 0.153459 -7.69262e-23)
-(-1.62908 0.148668 -9.61728e-23)
-(-1.6474 0.143693 -1.44386e-22)
-(-1.66515 0.138528 -1.10777e-22)
-(-1.68231 0.133168 -1.94123e-22)
-(-1.69884 0.127609 -6.21415e-23)
-(-1.71469 0.121846 7.73175e-23)
-(-1.72982 0.115874 8.4319e-23)
-(-1.74419 0.109691 3.29444e-23)
-(-1.75775 0.103294 5.77501e-23)
-(-1.77044 0.0966827 -3.86094e-23)
-(-1.78221 0.0898591 -5.59518e-23)
-(-1.79302 0.0828266 -6.52895e-23)
-(-1.8028 0.0755916 -1.16999e-22)
-(-1.81151 0.0681636 -1.57593e-22)
-(-1.81907 0.0605548 -9.65154e-23)
-(-1.82545 0.0527809 -1.05154e-22)
-(-1.83059 0.0448604 -4.54112e-23)
-(-1.83444 0.0368148 -5.19661e-23)
-(-1.83695 0.0286674 -2.6634e-23)
-(-1.83809 0.0204417 -2.10332e-23)
-(-1.83781 0.0121577 -3.95415e-23)
-(-1.83606 0.00387012 -6.39066e-23)
-(-1.83291 -0.00434969 -1.9404e-23)
-(-1.82832 -0.0124694 -2.83227e-23)
-(-1.8223 -0.0204753 6.96643e-23)
-(-1.81482 -0.0283609 3.84e-23)
-(-1.80589 -0.036122 5.34265e-23)
-(-1.79551 -0.0437552 9.39139e-23)
-(-1.78367 -0.0512568 8.03757e-23)
-(-1.77037 -0.0586232 7.8705e-23)
-(-1.75561 -0.0658504 9.78887e-23)
-(-1.73939 -0.0729342 5.68214e-23)
-(-1.72171 -0.0798703 1.16282e-22)
-(-1.70258 -0.086654 1.77248e-22)
-(-1.682 -0.0932807 1.46772e-22)
-(-1.65998 -0.0997457 1.45682e-22)
-(-1.63652 -0.106044 1.66882e-22)
-(-1.61164 -0.112172 1.14911e-22)
-(-1.58534 -0.118124 1.05223e-22)
-(-1.55763 -0.123894 1.15222e-22)
-(-1.52854 -0.129478 1.23134e-22)
-(-1.49807 -0.134868 4.91451e-23)
-(-1.46625 -0.140058 1.03318e-22)
-(-1.43309 -0.145044 1.05953e-22)
-(-1.39862 -0.14982 7.30728e-23)
-(-1.36286 -0.154385 1.03083e-22)
-(-1.32584 -0.158735 1.27793e-22)
-(-1.28757 -0.162868 8.15109e-23)
-(-1.24811 -0.166784 7.12361e-23)
-(-1.20746 -0.170481 8.25173e-23)
-(-1.16566 -0.173954 8.03056e-23)
-(-1.12274 -0.177197 8.54817e-23)
-(-1.07874 -0.180208 1.08042e-22)
-(-1.03371 -0.182985 7.96216e-23)
-(-0.987663 -0.185531 8.05637e-23)
-(-0.940659 -0.187847 8.92055e-23)
-(-0.892731 -0.189944 8.31121e-23)
-(-0.843915 -0.191818 1.01965e-22)
-(-0.794254 -0.19346 1.28595e-22)
-(-0.743793 -0.194871 1.33338e-22)
-(-0.692581 -0.196056 1.48161e-22)
-(-0.640663 -0.197028 1.06854e-22)
-(-0.58808 -0.197798 1.18289e-22)
-(-0.534873 -0.19836 8.81333e-23)
-(-0.481087 -0.198706 3.74566e-23)
-(-0.426777 -0.198841 2.83064e-23)
-(-0.371981 -0.198804 -1.38146e-23)
-(-0.31675 -0.198599 5.69392e-23)
-(-0.261114 -0.198198 -3.07248e-23)
-(-0.205128 -0.197612 -1.52769e-22)
-(-0.148807 -0.196889 1.5035e-23)
-(-0.0922488 -0.196032 1.00769e-22)
-(-0.0354668 -0.195016 2.04105e-22)
-(0.0216416 -0.193862 1.10392e-22)
-(0.078754 -0.192592 1.96567e-22)
-(0.135934 -0.191222 5.43027e-23)
-(0.193206 -0.189721 2.99904e-22)
-(0.250435 -0.188111 4.1099e-22)
-(0.307647 -0.186422 3.99201e-22)
-(0.364798 -0.184633 3.6919e-22)
-(0.421856 -0.182774 1.29501e-22)
-(0.478812 -0.180832 2.82348e-22)
-(0.535636 -0.178824 2.95356e-22)
-(0.592323 -0.176752 4.06562e-22)
-(0.648879 -0.174613 1.95787e-22)
-(0.705285 -0.172463 1.69215e-22)
-(0.761524 -0.170243 2.75937e-22)
-(0.817669 -0.167948 2.77047e-22)
-(0.873745 -0.165659 -4.30624e-23)
-(0.929723 -0.163407 2.45889e-23)
-(0.985586 -0.1612 -1.58754e-22)
-(1.04132 -0.159024 -8.23051e-23)
-(1.0969 -0.156841 -7.2849e-23)
-(1.15233 -0.154591 -1.17956e-22)
-(1.20755 -0.152174 -2.33193e-22)
-(1.26252 -0.149424 -7.30788e-23)
-(1.31718 -0.146084 5.8712e-23)
-(1.37135 -0.141716 1.43504e-22)
-(1.42534 -0.135706 3.58975e-22)
-(1.47821 -0.126968 5.38221e-22)
-(1.53428 -0.114704 5.56373e-22)
-(1.58433 -0.0969396 1.02938e-21)
-(-0.0110738 0.090648 -1.4926e-22)
-(-0.0274371 0.132469 -2.08057e-22)
-(-0.0448915 0.154997 6.73726e-22)
-(-0.0630742 0.172346 8.18031e-22)
-(-0.0811423 0.187453 5.18817e-22)
-(-0.0987658 0.201063 3.72083e-22)
-(-0.11599 0.213376 2.58539e-22)
-(-0.132918 0.224436 3.11831e-22)
-(-0.149639 0.234258 3.13175e-22)
-(-0.166226 0.242875 3.25923e-22)
-(-0.182738 0.250343 3.90523e-22)
-(-0.199218 0.256738 2.24697e-22)
-(-0.215696 0.26215 4.65412e-22)
-(-0.232195 0.266669 5.56259e-22)
-(-0.24873 0.270386 3.6267e-22)
-(-0.265313 0.273387 1.4115e-22)
-(-0.281955 0.275753 -1.60186e-23)
-(-0.298663 0.277559 3.70473e-23)
-(-0.315446 0.278875 2.46222e-23)
-(-0.332311 0.279765 -5.60096e-23)
-(-0.349264 0.280289 -1.16238e-23)
-(-0.366312 0.280501 -6.97429e-23)
-(-0.383461 0.28045 -1.02013e-23)
-(-0.400716 0.280181 1.74252e-23)
-(-0.418083 0.279733 1.00766e-22)
-(-0.435567 0.279143 3.52274e-23)
-(-0.453172 0.278442 2.65527e-23)
-(-0.470904 0.277656 -7.91541e-24)
-(-0.488765 0.276809 8.10312e-23)
-(-0.506761 0.27592 1.30838e-22)
-(-0.524895 0.275006 2.30013e-22)
-(-0.543171 0.27408 2.44193e-22)
-(-0.561592 0.273151 1.75584e-22)
-(-0.58016 0.272229 1.53647e-22)
-(-0.598879 0.271317 1.47662e-22)
-(-0.61775 0.270418 1.46384e-22)
-(-0.636776 0.269535 1.49487e-22)
-(-0.655956 0.268666 1.77503e-22)
-(-0.675292 0.26781 1.45561e-22)
-(-0.694784 0.266962 -1.15587e-23)
-(-0.714429 0.266119 -8.48424e-23)
-(-0.734227 0.265276 1.48577e-23)
-(-0.754174 0.264425 2.29544e-23)
-(-0.774266 0.263561 9.63645e-24)
-(-0.794499 0.262675 -5.61991e-24)
-(-0.814866 0.26176 1.66597e-25)
-(-0.83536 0.260807 1.13254e-23)
-(-0.855974 0.259808 1.09336e-22)
-(-0.876697 0.258754 1.39995e-22)
-(-0.89752 0.257634 1.54605e-22)
-(-0.918432 0.256441 6.90043e-23)
-(-0.93942 0.255164 5.49428e-23)
-(-0.960474 0.253795 -9.7368e-23)
-(-0.981579 0.252325 6.79871e-23)
-(-1.00272 0.250745 -9.65682e-23)
-(-1.02389 0.249049 1.28191e-23)
-(-1.04506 0.247229 -3.43662e-23)
-(-1.06623 0.245278 -1.81081e-23)
-(-1.08737 0.243191 6.14906e-23)
-(-1.10848 0.240961 4.44546e-24)
-(-1.12952 0.238585 -2.95388e-23)
-(-1.15048 0.236058 -8.44173e-23)
-(-1.17135 0.233375 -8.91968e-24)
-(-1.19209 0.230535 1.37126e-22)
-(-1.2127 0.227532 1.42815e-24)
-(-1.23316 0.224366 -1.82088e-22)
-(-1.25343 0.221034 -6.62923e-23)
-(-1.2735 0.217533 -1.631e-22)
-(-1.29335 0.213862 -2.33309e-22)
-(-1.31296 0.210018 -1.48639e-22)
-(-1.33229 0.205999 -7.85402e-23)
-(-1.35134 0.201803 -2.12871e-22)
-(-1.37007 0.197427 -2.83445e-22)
-(-1.38846 0.192869 -2.94504e-22)
-(-1.40649 0.188125 -2.04844e-22)
-(-1.42412 0.183191 -1.48347e-22)
-(-1.44134 0.178063 -1.34205e-22)
-(-1.45812 0.172736 -1.14522e-22)
-(-1.47442 0.167205 -2.26645e-22)
-(-1.49022 0.161464 -9.80448e-23)
-(-1.50548 0.155506 -2.00266e-22)
-(-1.52017 0.149326 -1.12701e-22)
-(-1.53426 0.142916 -3.52411e-23)
-(-1.5477 0.136272 -6.06301e-23)
-(-1.56045 0.129387 -1.12729e-22)
-(-1.57248 0.122257 -2.40348e-22)
-(-1.58374 0.114878 -2.31622e-22)
-(-1.59417 0.107249 -2.22547e-22)
-(-1.60373 0.0993704 -8.17577e-23)
-(-1.61238 0.0912461 -1.15874e-22)
-(-1.62004 0.0828826 -1.46067e-22)
-(-1.62668 0.0742902 3.05214e-23)
-(-1.63223 0.0654829 -3.33226e-23)
-(-1.63664 0.0564788 -1.39522e-22)
-(-1.63987 0.0472999 -7.18916e-23)
-(-1.64186 0.0379719 -2.87317e-23)
-(-1.64257 0.0285228 2.30455e-24)
-(-1.64196 0.0189804 -1.25789e-25)
-(-1.63997 0.00937638 -1.04368e-22)
-(-1.63665 -0.00020553 2.20691e-23)
-(-1.63199 -0.00968997 -1.6003e-23)
-(-1.62598 -0.0190581 1.3252e-22)
-(-1.61861 -0.0282963 -4.96397e-23)
-(-1.60989 -0.0373973 -1.03726e-22)
-(-1.5998 -0.0463559 3.59042e-24)
-(-1.58834 -0.0551673 6.89284e-23)
-(-1.57551 -0.0638272 1.49233e-22)
-(-1.56131 -0.0723312 6.29233e-23)
-(-1.54573 -0.0806746 8.25508e-23)
-(-1.52878 -0.0888523 6.21685e-23)
-(-1.51045 -0.0968591 1.23084e-22)
-(-1.49076 -0.10469 1.61961e-22)
-(-1.4697 -0.112339 1.49623e-22)
-(-1.44728 -0.1198 2.23882e-22)
-(-1.42351 -0.127069 1.85624e-22)
-(-1.3984 -0.134139 1.74117e-22)
-(-1.37195 -0.141006 8.97788e-23)
-(-1.34418 -0.147665 8.61321e-23)
-(-1.31511 -0.154106 7.14541e-23)
-(-1.28474 -0.160323 1.04459e-22)
-(-1.25309 -0.166308 1.05118e-22)
-(-1.22018 -0.172056 7.85577e-23)
-(-1.18604 -0.177562 8.5793e-23)
-(-1.15068 -0.182822 1.0189e-22)
-(-1.11413 -0.187832 9.93582e-23)
-(-1.07642 -0.192591 9.55721e-23)
-(-1.03758 -0.197097 6.43545e-23)
-(-0.997618 -0.201351 6.0221e-23)
-(-0.956578 -0.205346 1.08263e-22)
-(-0.914486 -0.209074 1.33826e-22)
-(-0.871378 -0.212532 1.0635e-22)
-(-0.82729 -0.215719 3.96203e-23)
-(-0.782257 -0.218635 7.53107e-23)
-(-0.736321 -0.221286 1.01755e-22)
-(-0.689517 -0.223683 9.35046e-23)
-(-0.641879 -0.225823 1.01623e-22)
-(-0.593447 -0.227694 7.96863e-23)
-(-0.544265 -0.229296 5.02891e-23)
-(-0.494377 -0.230634 9.78199e-23)
-(-0.443826 -0.231724 1.34979e-22)
-(-0.392652 -0.232583 1.48773e-22)
-(-0.340898 -0.233201 9.04366e-23)
-(-0.288601 -0.233569 3.20785e-23)
-(-0.235815 -0.233692 5.39564e-23)
-(-0.18255 -0.233612 -4.55616e-23)
-(-0.128908 -0.233338 7.50337e-23)
-(-0.074895 -0.232845 -2.65783e-23)
-(-0.0205495 -0.232148 -1.91576e-23)
-(0.0341773 -0.231263 8.66508e-24)
-(0.0890155 -0.230207 8.18685e-23)
-(0.144035 -0.228997 -8.03112e-23)
-(0.199232 -0.227612 2.08789e-23)
-(0.254506 -0.226064 -7.30687e-23)
-(0.30984 -0.224403 4.55213e-26)
-(0.36521 -0.222601 5.44726e-24)
-(0.420569 -0.220673 3.34663e-22)
-(0.4759 -0.218648 4.24132e-22)
-(0.531169 -0.216516 2.58414e-22)
-(0.586356 -0.214301 2.24078e-22)
-(0.641444 -0.212 2.78113e-22)
-(0.696417 -0.209629 2.618e-22)
-(0.751267 -0.207194 6.97948e-23)
-(0.806 -0.204699 6.60719e-23)
-(0.860607 -0.202183 1.31897e-22)
-(0.915079 -0.199617 3.42214e-22)
-(0.969468 -0.197002 -8.56891e-23)
-(1.0238 -0.194395 -2.35537e-22)
-(1.07805 -0.19182 -1.63864e-22)
-(1.13223 -0.189286 -1.95028e-22)
-(1.18631 -0.18678 -7.95627e-23)
-(1.24029 -0.184264 -4.89594e-23)
-(1.29415 -0.181673 -9.70023e-23)
-(1.34788 -0.178903 2.25498e-22)
-(1.40144 -0.175783 2.26219e-23)
-(1.45483 -0.172053 4.74596e-23)
-(1.50792 -0.167298 7.14492e-22)
-(1.56114 -0.160959 5.81348e-22)
-(1.61369 -0.152148 3.83272e-22)
-(1.66989 -0.140323 2.32753e-22)
-(1.72043 -0.124113 6.07518e-22)
-(-0.0104948 0.125641 1.80115e-21)
-(-0.0263121 0.171865 9.58861e-22)
-(-0.0432348 0.193945 6.08661e-23)
-(-0.0608278 0.210107 6.23726e-24)
-(-0.0782857 0.223921 2.32939e-22)
-(-0.0952646 0.236313 2.99329e-22)
-(-0.111776 0.247549 3.11905e-22)
-(-0.127894 0.257694 3.80508e-22)
-(-0.143693 0.266759 1.86178e-22)
-(-0.159238 0.274756 1.10905e-23)
-(-0.174587 0.281717 -2.83491e-22)
-(-0.18979 0.287693 -2.44534e-22)
-(-0.204885 0.292751 -2.01545e-22)
-(-0.219904 0.296968 -1.46992e-22)
-(-0.234873 0.300422 -5.27961e-23)
-(-0.249814 0.303192 -6.2688e-23)
-(-0.264744 0.305354 -7.89007e-23)
-(-0.279679 0.306979 -5.92155e-23)
-(-0.294635 0.308136 -1.99672e-23)
-(-0.309625 0.308885 5.94599e-23)
-(-0.32466 0.309285 -6.56033e-24)
-(-0.339753 0.309389 -1.13268e-23)
-(-0.354914 0.309244 -1.53171e-22)
-(-0.370153 0.308893 -2.82897e-22)
-(-0.385479 0.308375 -3.0027e-22)
-(-0.400901 0.307725 -2.91108e-22)
-(-0.416425 0.306973 -6.49151e-23)
-(-0.43206 0.306144 6.25578e-23)
-(-0.447811 0.305261 1.50662e-22)
-(-0.463684 0.304343 2.38235e-22)
-(-0.479684 0.303405 1.5741e-22)
-(-0.495817 0.30246 6.37971e-23)
-(-0.512085 0.301515 2.01162e-22)
-(-0.528493 0.300579 3.03157e-22)
-(-0.545043 0.299655 2.63877e-22)
-(-0.561737 0.298746 2.5149e-22)
-(-0.578576 0.297851 2.50543e-22)
-(-0.595561 0.296969 1.73468e-22)
-(-0.612691 0.296097 1.92923e-22)
-(-0.629966 0.29523 2.10071e-22)
-(-0.647383 0.294362 2.15616e-22)
-(-0.664939 0.293487 2.36598e-22)
-(-0.682631 0.292598 1.07044e-22)
-(-0.700454 0.291685 4.6295e-23)
-(-0.718402 0.290741 -2.11939e-23)
-(-0.736468 0.289755 5.00868e-23)
-(-0.754643 0.288719 2.4871e-22)
-(-0.77292 0.287622 1.25743e-22)
-(-0.791287 0.286454 4.29761e-23)
-(-0.809736 0.285206 -1.24029e-22)
-(-0.828253 0.283867 -6.58212e-24)
-(-0.846827 0.282428 4.99654e-23)
-(-0.865445 0.280878 8.6371e-23)
-(-0.884093 0.279208 -5.25655e-23)
-(-0.902757 0.277411 8.01627e-23)
-(-0.921423 0.275478 -1.19132e-22)
-(-0.940074 0.2734 -1.71622e-22)
-(-0.958694 0.271173 -9.20736e-23)
-(-0.977267 0.268788 -1.29763e-22)
-(-0.995775 0.266241 -5.09269e-23)
-(-1.0142 0.263525 -1.86264e-24)
-(-1.03252 0.260638 7.72395e-23)
-(-1.05073 0.257575 1.20349e-23)
-(-1.0688 0.254333 -8.3905e-23)
-(-1.0867 0.250908 -5.33446e-23)
-(-1.10443 0.247299 5.12704e-23)
-(-1.12196 0.243503 -1.14637e-22)
-(-1.13927 0.239518 -1.72449e-23)
-(-1.15635 0.235342 -1.74951e-22)
-(-1.17316 0.230974 -1.42238e-22)
-(-1.18969 0.226411 -2.48719e-22)
-(-1.20592 0.221652 -2.22243e-22)
-(-1.22183 0.216694 -1.97586e-22)
-(-1.2374 0.211533 -1.29849e-22)
-(-1.25259 0.206168 -1.12605e-22)
-(-1.2674 0.200593 -1.64815e-22)
-(-1.28179 0.194803 -1.45163e-22)
-(-1.29574 0.188795 -3.21049e-22)
-(-1.30924 0.18256 -3.02309e-22)
-(-1.32224 0.176094 -3.75623e-22)
-(-1.33472 0.169387 -3.18106e-22)
-(-1.34665 0.162433 -2.3961e-22)
-(-1.35801 0.155224 -2.70789e-22)
-(-1.36874 0.147752 -2.17747e-22)
-(-1.37883 0.140009 -2.80785e-22)
-(-1.38822 0.131991 -1.64137e-22)
-(-1.39688 0.123691 -1.51811e-22)
-(-1.40477 0.115108 -1.92021e-22)
-(-1.41182 0.106239 -1.67773e-22)
-(-1.41801 0.0970891 -4.39833e-23)
-(-1.42327 0.0876637 5.38724e-23)
-(-1.42755 0.0779741 -1.6358e-22)
-(-1.4308 0.0680358 -2.21198e-22)
-(-1.43297 0.0578694 6.85867e-23)
-(-1.43401 0.0475004 3.59396e-23)
-(-1.43387 0.0369587 -1.34983e-23)
-(-1.43252 0.0262769 5.85218e-23)
-(-1.42991 0.0154843 3.31346e-23)
-(-1.42598 0.00465118 2.74264e-23)
-(-1.42085 -0.00611806 7.53581e-23)
-(-1.41447 -0.0167717 1.8541e-22)
-(-1.40684 -0.0272929 1.63e-22)
-(-1.39797 -0.0376695 1.66543e-22)
-(-1.38783 -0.0478938 1.42421e-22)
-(-1.37642 -0.0579592 6.52488e-23)
-(-1.36375 -0.0678601 1.06562e-22)
-(-1.3498 -0.0775912 -1.42717e-23)
-(-1.33457 -0.0871471 1.26137e-22)
-(-1.31807 -0.0965223 9.69906e-23)
-(-1.30029 -0.105711 2.37899e-22)
-(-1.28124 -0.114708 2.19707e-22)
-(-1.26091 -0.123506 1.82937e-22)
-(-1.23932 -0.132099 1.68503e-22)
-(-1.21646 -0.14048 2.15282e-22)
-(-1.19234 -0.148644 1.72301e-22)
-(-1.16698 -0.156584 6.56269e-23)
-(-1.14037 -0.164295 1.05819e-22)
-(-1.11254 -0.17177 1.29906e-22)
-(-1.08349 -0.179002 5.12497e-23)
-(-1.05324 -0.18598 7.8303e-23)
-(-1.0218 -0.192696 1.18972e-23)
-(-0.98919 -0.199144 6.19181e-23)
-(-0.955431 -0.205319 8.86109e-23)
-(-0.920543 -0.211215 1.18575e-22)
-(-0.884549 -0.216829 6.95919e-23)
-(-0.847473 -0.222159 1.15807e-22)
-(-0.809341 -0.227203 1.12828e-22)
-(-0.770178 -0.231964 9.74208e-23)
-(-0.730009 -0.236433 9.264e-23)
-(-0.688864 -0.2406 1.12601e-22)
-(-0.646777 -0.244462 8.46075e-23)
-(-0.603778 -0.248017 7.02246e-23)
-(-0.559902 -0.251267 1.05516e-22)
-(-0.515187 -0.254213 1.14956e-22)
-(-0.469665 -0.256875 1.28288e-22)
-(-0.423375 -0.259249 9.18906e-23)
-(-0.376349 -0.261317 7.859e-23)
-(-0.32863 -0.263083 9.11253e-23)
-(-0.280256 -0.26455 1.36291e-22)
-(-0.231258 -0.265735 1.44487e-22)
-(-0.181685 -0.266658 1.70029e-22)
-(-0.131593 -0.267309 9.4919e-23)
-(-0.0810015 -0.267685 3.22015e-23)
-(-0.0299626 -0.267797 8.77158e-23)
-(0.0215951 -0.267658 -1.20398e-22)
-(0.0734156 -0.267277 -1.08405e-22)
-(0.125553 -0.266667 -7.20583e-23)
-(0.177961 -0.265842 3.72122e-23)
-(0.230634 -0.264784 -1.89164e-23)
-(0.283481 -0.263513 -1.58503e-22)
-(0.336484 -0.262075 -6.61419e-23)
-(0.389609 -0.260446 -1.66623e-24)
-(0.442818 -0.258635 -4.20653e-24)
-(0.496079 -0.256686 2.74884e-22)
-(0.549357 -0.254585 1.14402e-22)
-(0.602627 -0.252345 4.50192e-23)
-(0.655864 -0.249992 7.88322e-23)
-(0.709043 -0.247526 4.56198e-22)
-(0.762145 -0.244967 3.00245e-22)
-(0.815156 -0.242319 2.97689e-22)
-(0.868066 -0.239599 2.41242e-22)
-(0.920867 -0.236816 1.77913e-22)
-(0.973565 -0.23398 -3.78478e-24)
-(1.02616 -0.23112 1.21149e-22)
-(1.07865 -0.228225 5.70301e-23)
-(1.13106 -0.225303 -7.08456e-23)
-(1.18344 -0.222392 -4.05557e-22)
-(1.23576 -0.219515 -2.61089e-22)
-(1.28803 -0.216678 -2.64434e-22)
-(1.34025 -0.213868 -4.32825e-23)
-(1.39242 -0.211048 -7.10953e-24)
-(1.44452 -0.208152 -4.47113e-23)
-(1.49656 -0.205072 -2.5775e-22)
-(1.54853 -0.201639 -9.1537e-23)
-(1.60045 -0.1976 3.96354e-23)
-(1.65228 -0.192573 3.72784e-22)
-(1.70448 -0.186063 6.03344e-22)
-(1.75636 -0.177355 1.47638e-22)
-(1.8122 -0.166092 3.77969e-22)
-(1.86245 -0.151334 9.24627e-22)
-(-0.00962548 0.158665 -5.41248e-22)
-(-0.024497 0.209272 3.3153e-22)
-(-0.0404893 0.231065 4.60172e-22)
-(-0.0571023 0.246137 2.01166e-22)
-(-0.0735872 0.25868 2.37614e-22)
-(-0.0895994 0.269806 3.50478e-22)
-(-0.105121 0.279861 1.20304e-22)
-(-0.120201 0.288947 -1.59032e-22)
-(-0.134893 0.297084 8.05631e-23)
-(-0.149251 0.304281 2.30508e-22)
-(-0.163329 0.310556 4.68858e-22)
-(-0.177174 0.315943 4.05838e-22)
-(-0.190829 0.320495 5.8422e-23)
-(-0.204331 0.324272 -1.21158e-22)
-(-0.217711 0.327343 -2.90172e-22)
-(-0.230996 0.329777 -3.23754e-22)
-(-0.244211 0.331646 -3.1347e-22)
-(-0.257378 0.333014 -2.99736e-22)
-(-0.270516 0.333946 -2.73532e-22)
-(-0.283643 0.334501 -2.37295e-22)
-(-0.296777 0.334733 -1.82856e-22)
-(-0.309933 0.334693 -2.58395e-22)
-(-0.323125 0.334426 -2.73809e-22)
-(-0.336366 0.333973 -1.96246e-22)
-(-0.349669 0.33337 -1.49642e-22)
-(-0.363044 0.332651 -4.77119e-23)
-(-0.376502 0.331843 1.21008e-24)
-(-0.390051 0.330971 1.45485e-22)
-(-0.4037 0.330056 1.78113e-22)
-(-0.417456 0.329113 2.4579e-22)
-(-0.431324 0.328158 1.43283e-22)
-(-0.445311 0.327201 3.09076e-22)
-(-0.45942 0.32625 3.06702e-22)
-(-0.473656 0.32531 3.15911e-22)
-(-0.48802 0.324384 3.21457e-22)
-(-0.502514 0.323472 3.61215e-22)
-(-0.51714 0.322574 1.32814e-22)
-(-0.531896 0.321687 -5.03948e-23)
-(-0.546782 0.320805 -1.58947e-22)
-(-0.561796 0.319923 2.53103e-23)
-(-0.576935 0.319034 7.84893e-23)
-(-0.592195 0.31813 4.5607e-23)
-(-0.60757 0.317202 4.93692e-23)
-(-0.623055 0.31624 1.07469e-22)
-(-0.638642 0.315235 -1.62809e-25)
-(-0.654325 0.314175 -1.4044e-22)
-(-0.670092 0.313051 -1.80326e-22)
-(-0.685936 0.311851 5.2409e-24)
-(-0.701844 0.310565 1.07655e-22)
-(-0.717806 0.309181 2.55459e-22)
-(-0.73381 0.307688 1.18013e-22)
-(-0.749841 0.306078 1.17427e-22)
-(-0.765888 0.304338 1.96973e-24)
-(-0.781934 0.302461 -8.23435e-23)
-(-0.797967 0.300436 -1.66574e-22)
-(-0.813969 0.298255 -1.03584e-22)
-(-0.829926 0.295911 1.01013e-23)
-(-0.845821 0.293396 2.82213e-23)
-(-0.861637 0.290704 -4.56807e-23)
-(-0.877356 0.287829 -2.29562e-23)
-(-0.892962 0.284766 -1.22823e-24)
-(-0.908436 0.281511 2.17988e-23)
-(-0.923759 0.27806 -6.19585e-24)
-(-0.938913 0.274409 -4.32836e-23)
-(-0.95388 0.270557 -6.63863e-23)
-(-0.968641 0.266501 -1.64402e-22)
-(-0.983177 0.26224 -1.69606e-22)
-(-0.99747 0.257771 -2.27872e-22)
-(-1.0115 0.253094 -1.07735e-22)
-(-1.02525 0.248207 -2.70867e-22)
-(-1.0387 0.243108 -2.93299e-22)
-(-1.05183 0.237796 -1.90605e-22)
-(-1.06463 0.232268 -1.51191e-22)
-(-1.07706 0.226522 -2.0882e-22)
-(-1.08913 0.220555 -3.20695e-22)
-(-1.1008 0.214362 -2.83743e-22)
-(-1.11205 0.207939 -2.85709e-22)
-(-1.12287 0.201279 -1.79315e-22)
-(-1.13323 0.194376 -2.2435e-22)
-(-1.14311 0.187223 -2.18361e-22)
-(-1.15249 0.17981 -3.50364e-22)
-(-1.16134 0.17213 -2.95254e-22)
-(-1.16963 0.164171 -2.74269e-22)
-(-1.17734 0.155925 -4.66541e-22)
-(-1.18443 0.147383 -3.97355e-22)
-(-1.19086 0.138538 -1.89738e-22)
-(-1.1966 0.129381 -1.30882e-22)
-(-1.2016 0.119909 -6.41623e-23)
-(-1.20583 0.110119 -3.71224e-23)
-(-1.20924 0.100013 -8.84729e-23)
-(-1.21177 0.0895969 8.11652e-23)
-(-1.21338 0.0788824 2.33065e-22)
-(-1.21403 0.0678863 9.06392e-23)
-(-1.21365 0.0566314 -1.46197e-22)
-(-1.2122 0.0451467 -7.38848e-23)
-(-1.20963 0.033466 -2.60216e-23)
-(-1.20593 0.0216267 -1.76748e-22)
-(-1.20101 0.0096741 -4.31245e-23)
-(-1.19493 -0.00227363 8.67707e-23)
-(-1.18776 -0.0141127 1.341e-22)
-(-1.17945 -0.0258226 1.61942e-22)
-(-1.17002 -0.0373868 1.65612e-22)
-(-1.15945 -0.0487944 1.10944e-22)
-(-1.14773 -0.060037 2.44475e-22)
-(-1.13486 -0.0711064 2.88209e-22)
-(-1.12083 -0.0819957 2.00387e-22)
-(-1.10563 -0.0926985 2.08769e-22)
-(-1.08928 -0.103209 1.84577e-22)
-(-1.07175 -0.11352 2.73834e-22)
-(-1.05306 -0.123627 1.60655e-22)
-(-1.03321 -0.133521 1.73768e-22)
-(-1.01219 -0.143196 2.03691e-22)
-(-0.990005 -0.152645 2.15946e-22)
-(-0.966669 -0.16186 7.30357e-23)
-(-0.942183 -0.170834 8.14468e-23)
-(-0.916555 -0.179561 7.46291e-23)
-(-0.889795 -0.188034 6.28234e-23)
-(-0.86191 -0.196249 1.0581e-22)
-(-0.832909 -0.204194 5.79989e-23)
-(-0.802808 -0.211858 6.46633e-23)
-(-0.77162 -0.219232 9.0616e-23)
-(-0.739364 -0.22631 7.00877e-23)
-(-0.706056 -0.233085 8.03312e-23)
-(-0.671715 -0.239553 7.02215e-23)
-(-0.63636 -0.245709 9.43813e-23)
-(-0.600015 -0.251549 1.09029e-22)
-(-0.562703 -0.257072 9.34284e-23)
-(-0.524447 -0.262284 7.54042e-23)
-(-0.485273 -0.267173 1.05341e-22)
-(-0.445208 -0.271726 1.13158e-22)
-(-0.404283 -0.275942 5.98136e-23)
-(-0.362526 -0.279821 8.49274e-23)
-(-0.319964 -0.283361 9.11078e-23)
-(-0.276635 -0.286564 9.92588e-23)
-(-0.232553 -0.289452 1.21773e-22)
-(-0.187788 -0.29202 9.85587e-23)
-(-0.142358 -0.294249 1.23006e-22)
-(-0.0962981 -0.296149 2.05369e-22)
-(-0.049641 -0.297726 1.56008e-22)
-(-0.00238335 -0.298989 1.40552e-22)
-(0.0454006 -0.299941 7.7211e-23)
-(0.0936086 -0.300588 9.72549e-23)
-(0.142255 -0.300942 1.75072e-22)
-(0.191292 -0.30102 1.05855e-23)
-(0.240714 -0.300802 -9.33689e-24)
-(0.290435 -0.300297 -2.08391e-22)
-(0.34044 -0.299546 -1.46424e-22)
-(0.390679 -0.298558 -1.18159e-22)
-(0.441127 -0.297318 -2.95896e-22)
-(0.491745 -0.295842 -1.43127e-22)
-(0.542499 -0.294172 -5.0949e-23)
-(0.593347 -0.292295 1.95645e-24)
-(0.64427 -0.290223 1.17523e-23)
-(0.695232 -0.287989 -2.44621e-23)
-(0.746202 -0.285593 6.23499e-23)
-(0.797162 -0.283047 1.12464e-22)
-(0.848087 -0.280376 1.90958e-22)
-(0.898956 -0.277585 7.54017e-23)
-(0.949755 -0.274695 1.99853e-22)
-(1.00047 -0.271714 3.29235e-22)
-(1.0511 -0.268659 2.18883e-22)
-(1.10163 -0.265544 2.23548e-22)
-(1.15208 -0.262382 2.66964e-22)
-(1.20244 -0.259198 2.38485e-22)
-(1.25273 -0.255993 -1.44806e-22)
-(1.30296 -0.252777 -1.12657e-22)
-(1.35316 -0.249581 -2.94484e-22)
-(1.40335 -0.246422 1.55199e-22)
-(1.45351 -0.243307 -2.63891e-22)
-(1.50367 -0.240221 6.14472e-23)
-(1.55381 -0.237128 5.15033e-23)
-(1.60396 -0.233963 -2.93415e-23)
-(1.65412 -0.230619 -2.84666e-22)
-(1.7043 -0.226932 -9.75394e-23)
-(1.75457 -0.222662 9.4119e-23)
-(1.80491 -0.217465 -1.41864e-22)
-(1.85586 -0.21091 -2.56792e-22)
-(1.90675 -0.202431 -3.88254e-22)
-(1.9618 -0.191791 4.4431e-22)
-(2.01122 -0.178377 6.46505e-22)
-(-0.00858973 0.188967 -3.83674e-22)
-(-0.0222583 0.243966 -4.06422e-22)
-(-0.0370553 0.265659 -8.75771e-22)
-(-0.0524276 0.279785 -5.50206e-22)
-(-0.0676904 0.291135 -1.89407e-22)
-(-0.0825068 0.301017 -1.05948e-22)
-(-0.0968353 0.309863 2.14298e-22)
-(-0.110699 0.31782 2.25323e-22)
-(-0.124135 0.324932 1.08682e-22)
-(-0.137184 0.331213 6.05068e-23)
-(-0.149892 0.336678 -2.31858e-23)
-(-0.162302 0.341354 3.38931e-23)
-(-0.174456 0.345281 2.64245e-23)
-(-0.186393 0.348511 2.91417e-23)
-(-0.198148 0.351101 7.91758e-23)
-(-0.209753 0.353114 2.30359e-22)
-(-0.221234 0.354613 3.55475e-22)
-(-0.23262 0.355659 2.89743e-22)
-(-0.243933 0.356311 2.51151e-22)
-(-0.255196 0.356623 1.73036e-22)
-(-0.266429 0.356648 4.38085e-23)
-(-0.277651 0.356432 5.45771e-23)
-(-0.288878 0.356016 3.45933e-23)
-(-0.300127 0.355441 -2.8833e-23)
-(-0.311413 0.354738 -1.87416e-22)
-(-0.322748 0.353939 -3.30255e-22)
-(-0.334143 0.353068 -2.9328e-22)
-(-0.345611 0.352148 -1.26457e-22)
-(-0.357159 0.351197 5.41104e-23)
-(-0.368795 0.35023 1.56047e-22)
-(-0.380527 0.349259 4.388e-22)
-(-0.392359 0.348292 4.93183e-22)
-(-0.404297 0.347336 3.78543e-22)
-(-0.416342 0.346394 3.46201e-22)
-(-0.428499 0.345467 3.27049e-22)
-(-0.440766 0.344554 3.15552e-22)
-(-0.453145 0.343653 4.02655e-22)
-(-0.465634 0.342758 4.23465e-22)
-(-0.478231 0.341864 4.17747e-22)
-(-0.490933 0.340963 1.85564e-22)
-(-0.503734 0.340047 1.15409e-22)
-(-0.516631 0.339106 -2.06271e-22)
-(-0.529615 0.33813 -1.23528e-22)
-(-0.54268 0.337108 -1.39128e-22)
-(-0.555817 0.336029 5.69871e-23)
-(-0.569017 0.334882 6.74994e-23)
-(-0.582269 0.333655 1.90961e-22)
-(-0.595563 0.332335 7.7946e-23)
-(-0.608886 0.330912 8.77725e-23)
-(-0.622226 0.329374 6.48432e-24)
-(-0.63557 0.32771 -6.77052e-23)
-(-0.648903 0.325908 -1.26063e-22)
-(-0.662212 0.323959 -1.36873e-22)
-(-0.675481 0.321852 -1.44178e-22)
-(-0.688694 0.319578 -1.53477e-22)
-(-0.701837 0.317129 -1.30917e-22)
-(-0.714893 0.314497 -1.27297e-22)
-(-0.727844 0.311674 -2.11095e-22)
-(-0.740676 0.308654 -1.9118e-22)
-(-0.753369 0.305432 -2.47528e-23)
-(-0.765908 0.302002 -1.86878e-23)
-(-0.778274 0.298361 5.68145e-23)
-(-0.790451 0.294505 1.14553e-23)
-(-0.802419 0.290431 -1.98571e-23)
-(-0.814163 0.286139 5.79138e-24)
-(-0.825665 0.281625 -7.74381e-23)
-(-0.836908 0.276889 -1.29228e-22)
-(-0.847876 0.27193 -2.13739e-22)
-(-0.858551 0.266748 -3.3417e-22)
-(-0.868917 0.261341 -3.24972e-22)
-(-0.878959 0.255708 -4.23084e-22)
-(-0.88866 0.249848 -3.89679e-22)
-(-0.898005 0.24376 -3.51541e-22)
-(-0.906978 0.237441 -2.82353e-22)
-(-0.915564 0.230889 -3.73262e-22)
-(-0.923746 0.224099 -3.36857e-22)
-(-0.931509 0.217067 -2.16278e-22)
-(-0.938838 0.209786 -1.42145e-22)
-(-0.945714 0.202249 6.47545e-23)
-(-0.95212 0.194448 -1.97077e-22)
-(-0.958037 0.186372 -1.22505e-22)
-(-0.963444 0.178012 -2.07227e-22)
-(-0.968318 0.169356 -2.0498e-22)
-(-0.972633 0.160393 -6.88293e-23)
-(-0.976362 0.151113 -2.40269e-24)
-(-0.979475 0.141504 2.31286e-23)
-(-0.981939 0.131558 -1.14336e-22)
-(-0.983716 0.121268 7.7647e-23)
-(-0.984768 0.11063 6.33897e-23)
-(-0.98505 0.0996432 1.42964e-22)
-(-0.984519 0.0883137 -4.55734e-23)
-(-0.983126 0.0766529 -6.87257e-24)
-(-0.980825 0.0646788 1.26845e-22)
-(-0.977567 0.0524168 1.37229e-22)
-(-0.97331 0.0398991 3.81983e-23)
-(-0.968016 0.0271636 -1.24413e-23)
-(-0.961653 0.0142472 4.55508e-23)
-(-0.954146 0.00125926 6.43674e-23)
-(-0.945712 -0.0116494 2.02055e-22)
-(-0.93628 -0.0244288 1.79201e-22)
-(-0.925857 -0.0370669 1.56603e-22)
-(-0.914435 -0.0495495 1.51053e-22)
-(-0.902005 -0.0618665 2.6376e-22)
-(-0.888555 -0.0740087 2.87613e-22)
-(-0.874078 -0.0859656 2.65844e-22)
-(-0.85857 -0.0977288 2.11736e-22)
-(-0.842025 -0.109291 2.27489e-22)
-(-0.824441 -0.120646 1.91995e-22)
-(-0.805816 -0.131786 7.43302e-23)
-(-0.786147 -0.142704 1.0646e-22)
-(-0.765436 -0.153393 2.53944e-23)
-(-0.743683 -0.163844 3.10161e-23)
-(-0.720891 -0.174049 2.59649e-23)
-(-0.697063 -0.184001 1.15208e-22)
-(-0.672204 -0.193692 1.25329e-22)
-(-0.646321 -0.203113 2.0621e-23)
-(-0.619422 -0.212257 1.15275e-22)
-(-0.591513 -0.221123 1.83242e-22)
-(-0.562605 -0.229697 2.02984e-22)
-(-0.532709 -0.237963 1.26075e-22)
-(-0.501841 -0.245913 4.83441e-23)
-(-0.470014 -0.253542 7.13667e-23)
-(-0.437245 -0.260842 8.89789e-23)
-(-0.403547 -0.267809 8.39538e-23)
-(-0.368939 -0.274437 5.43643e-23)
-(-0.333439 -0.280721 4.62527e-23)
-(-0.297069 -0.286659 3.41771e-23)
-(-0.259844 -0.292258 1.01469e-22)
-(-0.221806 -0.297505 1.40255e-22)
-(-0.182973 -0.302386 1.21586e-22)
-(-0.143371 -0.306902 1.05013e-22)
-(-0.103025 -0.311054 8.53492e-23)
-(-0.0619546 -0.314842 6.20293e-23)
-(-0.0201926 -0.318271 9.45969e-23)
-(0.0222976 -0.321343 1.07297e-22)
-(0.0653385 -0.324048 1.28143e-22)
-(0.108968 -0.326394 2.00056e-22)
-(0.153151 -0.328388 1.50032e-22)
-(0.197857 -0.33004 1.34579e-22)
-(0.243062 -0.331345 1.18193e-22)
-(0.288723 -0.332297 1.30126e-22)
-(0.334795 -0.332913 1.16739e-22)
-(0.381251 -0.333216 1.49831e-22)
-(0.428047 -0.333216 7.56104e-23)
-(0.475158 -0.332898 7.63275e-23)
-(0.522544 -0.33227 -1.313e-22)
-(0.57018 -0.331369 -1.86172e-22)
-(0.618016 -0.330206 -1.83356e-22)
-(0.666026 -0.328774 -3.14896e-22)
-(0.714183 -0.32709 -1.05166e-22)
-(0.762453 -0.325185 -1.89283e-23)
-(0.8108 -0.323059 2.22237e-23)
-(0.859205 -0.320726 4.12659e-23)
-(0.90764 -0.318213 5.07322e-23)
-(0.956075 -0.315527 6.95323e-23)
-(1.0045 -0.312683 1.45596e-22)
-(1.05288 -0.309703 2.51338e-22)
-(1.10121 -0.306598 1.31499e-22)
-(1.14948 -0.303389 -1.79233e-22)
-(1.19768 -0.300089 3.11164e-22)
-(1.2458 -0.296715 1.55626e-22)
-(1.29385 -0.293286 1.81922e-22)
-(1.34182 -0.289815 4.82766e-22)
-(1.38973 -0.286328 3.79996e-22)
-(1.43759 -0.282831 -5.63845e-23)
-(1.48542 -0.279339 -1.17166e-22)
-(1.53324 -0.275877 2.00716e-22)
-(1.58107 -0.272459 -4.98793e-22)
-(1.62892 -0.269091 1.31329e-22)
-(1.67681 -0.265759 3.75741e-22)
-(1.72473 -0.262428 1.1886e-22)
-(1.77273 -0.259033 8.98206e-24)
-(1.82081 -0.255473 -4.11625e-22)
-(1.86901 -0.251591 -7.30579e-23)
-(1.91743 -0.247165 1.15826e-22)
-(1.96608 -0.241889 1.44437e-22)
-(2.01553 -0.235392 -8.55116e-23)
-(2.06512 -0.227232 1.9442e-22)
-(2.119 -0.217243 1.11233e-23)
-(2.16718 -0.205073 4.33672e-22)
-(-0.00747647 0.2161 -1.30656e-22)
-(-0.019789 0.275499 5.52098e-23)
-(-0.0332276 0.297288 4.32018e-22)
-(-0.0471986 0.310623 1.39542e-23)
-(-0.0610807 0.320886 -9.80858e-23)
-(-0.0745492 0.329579 -1.65513e-22)
-(-0.0875427 0.337228 -2.44128e-22)
-(-0.100063 0.344032 -1.95609e-22)
-(-0.11213 0.350063 -6.80101e-23)
-(-0.123773 0.355352 -3.87046e-23)
-(-0.135026 0.359921 -3.23047e-23)
-(-0.14593 0.363793 -2.88226e-22)
-(-0.156524 0.367005 -7.28723e-23)
-(-0.166848 0.369601 5.98822e-23)
-(-0.176936 0.371631 1.77629e-22)
-(-0.186825 0.373152 4.54317e-23)
-(-0.196546 0.374218 4.68765e-23)
-(-0.206128 0.374887 1.33822e-22)
-(-0.215599 0.375211 2.66292e-22)
-(-0.224983 0.375241 1.24621e-22)
-(-0.234305 0.375025 -6.78622e-23)
-(-0.243585 0.374604 -1.75842e-22)
-(-0.252843 0.374018 -1.30517e-22)
-(-0.262098 0.3733 -1.46865e-22)
-(-0.271364 0.372483 -2.00415e-22)
-(-0.280656 0.371591 6.35357e-23)
-(-0.289987 0.370648 1.28628e-22)
-(-0.299369 0.369673 1.81264e-23)
-(-0.308811 0.368681 2.03701e-23)
-(-0.31832 0.367684 3.3136e-24)
-(-0.327904 0.366693 2.59699e-22)
-(-0.337568 0.365712 1.39968e-22)
-(-0.347315 0.364746 2.35909e-22)
-(-0.357147 0.363797 3.37725e-22)
-(-0.367066 0.362862 2.90489e-22)
-(-0.377071 0.36194 3.88936e-23)
-(-0.387162 0.361025 1.64447e-23)
-(-0.397334 0.360112 1.82187e-22)
-(-0.407584 0.359192 -5.29591e-25)
-(-0.417907 0.358256 5.6911e-24)
-(-0.428296 0.357295 2.24083e-23)
-(-0.438745 0.356297 5.8682e-23)
-(-0.449245 0.355252 -5.89375e-23)
-(-0.459786 0.354146 -1.80781e-22)
-(-0.470359 0.352968 -1.36332e-22)
-(-0.480951 0.351706 1.58579e-23)
-(-0.491552 0.350346 -1.92674e-22)
-(-0.502148 0.348877 -1.49026e-22)
-(-0.512725 0.347286 -3.23431e-22)
-(-0.523271 0.345561 -2.71236e-22)
-(-0.533771 0.34369 -2.81838e-22)
-(-0.544209 0.341663 -4.37152e-22)
-(-0.55457 0.339469 -2.95693e-22)
-(-0.564839 0.337097 -2.08678e-22)
-(-0.575 0.33454 -2.07589e-22)
-(-0.585036 0.331787 -1.30177e-22)
-(-0.594931 0.328832 -1.27864e-22)
-(-0.604669 0.325667 -1.7743e-22)
-(-0.614233 0.322287 -1.00646e-22)
-(-0.623607 0.318686 -1.81615e-22)
-(-0.632774 0.314859 -1.76322e-22)
-(-0.641719 0.310804 -1.34331e-22)
-(-0.650424 0.306516 -2.87289e-23)
-(-0.658873 0.301995 -4.34543e-23)
-(-0.667052 0.29724 -1.20315e-22)
-(-0.674944 0.29225 -7.03286e-23)
-(-0.682537 0.287024 -2.47156e-23)
-(-0.689815 0.281562 -1.60544e-22)
-(-0.696765 0.275865 -3.24662e-22)
-(-0.703373 0.269932 -2.41643e-22)
-(-0.709627 0.263764 -1.07187e-22)
-(-0.715514 0.257359 -2.11985e-22)
-(-0.721022 0.250717 -2.1221e-22)
-(-0.726141 0.243837 -1.49657e-22)
-(-0.730857 0.236715 -4.92229e-23)
-(-0.735161 0.229349 1.59421e-22)
-(-0.739041 0.221732 -2.4935e-23)
-(-0.742486 0.213861 -1.23507e-22)
-(-0.745484 0.205725 -2.62684e-22)
-(-0.748021 0.197317 -1.18686e-22)
-(-0.750085 0.188625 -1.66592e-22)
-(-0.75166 0.179637 -3.16415e-22)
-(-0.752728 0.170339 -2.2473e-22)
-(-0.753269 0.16072 -7.31598e-23)
-(-0.75326 0.150765 -1.18784e-22)
-(-0.752678 0.140463 -2.31697e-22)
-(-0.751492 0.129802 -9.49041e-24)
-(-0.749673 0.118771 4.58085e-23)
-(-0.747183 0.107364 4.10885e-23)
-(-0.743984 0.0955795 1.31251e-22)
-(-0.740033 0.0834206 -7.86665e-23)
-(-0.735287 0.0708996 -1.59949e-22)
-(-0.729701 0.0580354 -1.98875e-23)
-(-0.723232 0.0448546 3.69309e-23)
-(-0.715839 0.0313928 2.13105e-23)
-(-0.707493 0.0176885 -2.03888e-23)
-(-0.698108 0.00382713 -7.79321e-23)
-(-0.687914 -0.0100099 2.68379e-23)
-(-0.676891 -0.0237188 1.1797e-22)
-(-0.665028 -0.037292 1.4129e-22)
-(-0.652321 -0.0507157 1.38686e-22)
-(-0.638761 -0.0639773 8.80649e-23)
-(-0.624335 -0.0770676 1.91398e-22)
-(-0.609034 -0.0899762 2.86546e-22)
-(-0.592848 -0.10269 2.74011e-22)
-(-0.575772 -0.115198 2.17886e-22)
-(-0.557801 -0.127494 8.83141e-24)
-(-0.53893 -0.13957 1.18994e-22)
-(-0.519156 -0.151418 1.98368e-22)
-(-0.498477 -0.16303 1.62211e-22)
-(-0.476891 -0.174398 1.55357e-22)
-(-0.454399 -0.185512 8.92348e-23)
-(-0.431001 -0.196365 5.43201e-24)
-(-0.406699 -0.206947 1.23204e-22)
-(-0.381497 -0.217249 1.39519e-22)
-(-0.355399 -0.227263 1.50303e-22)
-(-0.328413 -0.236979 1.73681e-22)
-(-0.300538 -0.246398 2.29889e-23)
-(-0.271794 -0.255504 -2.28957e-23)
-(-0.242189 -0.264279 6.46936e-23)
-(-0.211735 -0.272716 1.41553e-22)
-(-0.180445 -0.280809 1.27439e-22)
-(-0.14833 -0.288551 1.09507e-22)
-(-0.115402 -0.295938 6.03472e-23)
-(-0.0816757 -0.302964 1.01639e-22)
-(-0.0471646 -0.309624 8.12702e-23)
-(-0.011882 -0.315916 1.32232e-22)
-(0.0241773 -0.321837 1.10541e-22)
-(0.0609102 -0.327367 1.33409e-22)
-(0.0983361 -0.332509 1.22618e-22)
-(0.13643 -0.337262 1.62179e-22)
-(0.175172 -0.341629 1.43438e-22)
-(0.214541 -0.345611 1.03698e-22)
-(0.254507 -0.349211 9.6343e-23)
-(0.295058 -0.352412 3.26467e-23)
-(0.336135 -0.355211 1.28856e-22)
-(0.377726 -0.357632 1.63133e-22)
-(0.419798 -0.359678 5.9681e-23)
-(0.462319 -0.361356 2.0353e-23)
-(0.505261 -0.362662 -2.28522e-23)
-(0.548593 -0.363591 -3.90353e-23)
-(0.592288 -0.36416 1.82157e-22)
-(0.636313 -0.364388 2.3112e-22)
-(0.680629 -0.364288 -2.79265e-23)
-(0.725206 -0.363851 -4.01511e-23)
-(0.770021 -0.363086 -1.41346e-22)
-(0.815045 -0.362024 -2.02592e-22)
-(0.860238 -0.360675 -2.08445e-22)
-(0.905573 -0.359044 -2.13194e-22)
-(0.951029 -0.357145 -2.26987e-24)
-(0.996575 -0.355005 3.22903e-23)
-(1.04218 -0.352631 -1.05815e-23)
-(1.08783 -0.350039 2.67159e-22)
-(1.1335 -0.347252 1.50593e-22)
-(1.17916 -0.344282 6.11977e-23)
-(1.22481 -0.341148 2.44237e-22)
-(1.27042 -0.337869 7.07783e-23)
-(1.31598 -0.334463 6.82254e-23)
-(1.36149 -0.33095 -1.73349e-22)
-(1.40694 -0.327346 -1.54689e-22)
-(1.45232 -0.32367 3.63194e-23)
-(1.49765 -0.319944 -4.9709e-22)
-(1.54293 -0.316184 2.12577e-22)
-(1.58816 -0.312413 4.47269e-22)
-(1.63337 -0.308646 -9.14807e-23)
-(1.67857 -0.304899 -7.8001e-23)
-(1.7238 -0.301192 -1.65676e-22)
-(1.76907 -0.297541 1.85025e-22)
-(1.81439 -0.293948 2.61122e-22)
-(1.8598 -0.290402 -1.39715e-22)
-(1.9053 -0.286868 -6.21841e-23)
-(1.95094 -0.283286 -8.14165e-23)
-(1.99675 -0.279558 1.27753e-22)
-(2.04277 -0.27554 2.11969e-22)
-(2.08913 -0.271027 2.01845e-22)
-(2.13588 -0.265754 4.29538e-22)
-(2.18358 -0.2594 -7.11226e-23)
-(2.23159 -0.251627 6.28619e-22)
-(2.28396 -0.242303 4.38006e-22)
-(2.3306 -0.231289 7.10863e-22)
-(-0.00635512 0.23985 -1.23316e-22)
-(-0.0172447 0.303641 -1.64834e-22)
-(-0.0292463 0.325709 -3.70046e-22)
-(-0.0417373 0.338404 3.50964e-22)
-(-0.0541555 0.347689 1.70619e-23)
-(-0.0661891 0.35526 -1.6278e-22)
-(-0.0777606 0.361739 1.1281e-22)
-(-0.0888531 0.367382 2.34224e-22)
-(-0.099471 0.372299 -2.62038e-23)
-(-0.109632 0.376543 -1.2215e-22)
-(-0.119363 0.380148 -2.33963e-22)
-(-0.128699 0.383144 -1.94976e-22)
-(-0.137677 0.385567 -2.66348e-23)
-(-0.146337 0.387457 8.5533e-23)
-(-0.154716 0.388861 2.11576e-22)
-(-0.16285 0.389829 2.95997e-22)
-(-0.170776 0.39041 2.04047e-22)
-(-0.178526 0.390656 -2.70753e-22)
-(-0.18613 0.390613 -4.65076e-22)
-(-0.193615 0.390328 -5.01065e-22)
-(-0.201009 0.389843 -4.30906e-22)
-(-0.208334 0.389194 -2.24648e-22)
-(-0.215612 0.388418 -1.41788e-22)
-(-0.222861 0.387543 -1.61683e-22)
-(-0.230099 0.386597 6.94483e-23)
-(-0.237341 0.385602 -1.19596e-22)
-(-0.2446 0.384576 -6.62791e-23)
-(-0.251886 0.383536 -1.24838e-22)
-(-0.25921 0.382494 1.74352e-24)
-(-0.266578 0.381458 6.94715e-23)
-(-0.273995 0.380436 2.82036e-23)
-(-0.281467 0.379429 1.05263e-22)
-(-0.288994 0.378441 4.55463e-23)
-(-0.296578 0.377469 -1.87773e-22)
-(-0.304217 0.37651 -1.28937e-22)
-(-0.31191 0.375559 -1.34015e-23)
-(-0.319652 0.374609 -1.48513e-23)
-(-0.327438 0.373652 -4.915e-23)
-(-0.335262 0.372679 -1.16511e-22)
-(-0.343117 0.371678 -1.97033e-22)
-(-0.350993 0.370639 -9.48446e-23)
-(-0.35888 0.369549 -2.24163e-23)
-(-0.366769 0.368396 1.06427e-23)
-(-0.374646 0.367166 5.30755e-23)
-(-0.3825 0.365846 1.25878e-22)
-(-0.390317 0.364423 8.70635e-23)
-(-0.398083 0.362885 1.30477e-22)
-(-0.405783 0.361217 9.52066e-23)
-(-0.413402 0.359408 -1.53307e-23)
-(-0.420925 0.357445 -3.3441e-22)
-(-0.428336 0.355317 -2.62451e-22)
-(-0.435619 0.353012 -2.54796e-22)
-(-0.442758 0.35052 -3.09797e-22)
-(-0.449737 0.347832 -1.71992e-22)
-(-0.456539 0.344938 6.20892e-23)
-(-0.463149 0.341831 2.97394e-23)
-(-0.46955 0.338503 -5.72998e-23)
-(-0.475726 0.334948 9.61429e-23)
-(-0.481663 0.331161 -1.74978e-22)
-(-0.487345 0.327136 -1.03178e-22)
-(-0.492758 0.322871 1.80968e-23)
-(-0.497886 0.318361 1.86456e-23)
-(-0.502715 0.313606 1.4369e-22)
-(-0.507233 0.308604 8.18521e-24)
-(-0.511426 0.303357 -3.61262e-23)
-(-0.515282 0.297865 3.18828e-23)
-(-0.518792 0.292127 -3.35572e-22)
-(-0.521943 0.286146 -1.63944e-22)
-(-0.524727 0.279922 2.9269e-23)
-(-0.527135 0.273457 -8.68069e-23)
-(-0.529156 0.26675 -1.51734e-22)
-(-0.530785 0.259803 -2.50695e-22)
-(-0.532013 0.252615 -1.82636e-22)
-(-0.532834 0.245186 -7.13782e-23)
-(-0.533241 0.237513 1.94432e-22)
-(-0.533228 0.229594 -6.74019e-23)
-(-0.532789 0.221424 -6.99777e-23)
-(-0.531919 0.212996 -1.04434e-22)
-(-0.530611 0.204303 -2.39474e-22)
-(-0.528858 0.195335 -2.87316e-22)
-(-0.526652 0.186079 -1.95582e-22)
-(-0.523983 0.17652 -1.77827e-22)
-(-0.52084 0.166644 -2.19638e-22)
-(-0.517207 0.156435 -3.47632e-22)
-(-0.513067 0.14588 -2.78194e-22)
-(-0.508402 0.134963 -3.02544e-22)
-(-0.503189 0.123668 -1.56565e-22)
-(-0.4974 0.111982 -8.39922e-24)
-(-0.491003 0.0998947 -4.29646e-23)
-(-0.483963 0.0874023 -2.94853e-23)
-(-0.476242 0.074507 6.49055e-23)
-(-0.467797 0.0612212 -7.42288e-23)
-(-0.458591 0.0475633 -1.48434e-23)
-(-0.448582 0.0335602 1.21007e-23)
-(-0.437742 0.0192482 3.63534e-23)
-(-0.426002 0.00470458 -5.09777e-23)
-(-0.413521 -0.00988033 4.49138e-25)
-(-0.40043 -0.0243557 3.21859e-23)
-(-0.386671 -0.0386993 8.86501e-23)
-(-0.372243 -0.0529028 1.26152e-22)
-(-0.357135 -0.0669533 1.29907e-22)
-(-0.341335 -0.0808384 1.91738e-22)
-(-0.324828 -0.0945491 1.27379e-22)
-(-0.307603 -0.108075 3.90634e-22)
-(-0.289652 -0.121399 3.22887e-22)
-(-0.270969 -0.134509 2.56525e-22)
-(-0.251546 -0.147399 2.75283e-22)
-(-0.231378 -0.16006 2.13168e-22)
-(-0.210458 -0.172483 2.10468e-22)
-(-0.188784 -0.184659 1.92244e-22)
-(-0.166352 -0.196579 1.5985e-22)
-(-0.14316 -0.208234 6.56649e-23)
-(-0.11921 -0.219613 2.24011e-22)
-(-0.0944992 -0.230708 2.15769e-22)
-(-0.0690302 -0.241509 1.52979e-22)
-(-0.0428031 -0.252007 3.69608e-22)
-(-0.0158249 -0.262195 2.23157e-22)
-(0.0119289 -0.272071 2.5102e-22)
-(0.0403911 -0.2816 1.52466e-22)
-(0.069578 -0.290781 6.58595e-23)
-(0.09948 -0.299606 1.50306e-22)
-(0.13009 -0.308069 1.43467e-22)
-(0.161398 -0.316163 1.50118e-22)
-(0.193393 -0.323882 1.62973e-22)
-(0.226064 -0.331222 1.54155e-22)
-(0.259398 -0.338177 1.396e-22)
-(0.293376 -0.344743 1.39086e-22)
-(0.327985 -0.350901 1.38171e-22)
-(0.363193 -0.356643 1.26679e-22)
-(0.398992 -0.36198 1.09761e-22)
-(0.435357 -0.366908 1.77453e-22)
-(0.472271 -0.371427 1.93298e-22)
-(0.509712 -0.375539 1.63756e-22)
-(0.547653 -0.379244 1.08902e-22)
-(0.586075 -0.382527 7.48598e-23)
-(0.624951 -0.385387 -2.13576e-23)
-(0.664263 -0.387843 3.01862e-23)
-(0.703979 -0.389901 9.23923e-23)
-(0.744072 -0.391565 8.98936e-23)
-(0.784513 -0.392837 7.19777e-23)
-(0.825279 -0.393713 4.26484e-23)
-(0.866348 -0.394208 5.59754e-23)
-(0.907691 -0.394339 3.56494e-23)
-(0.949275 -0.394117 1.16564e-22)
-(0.991073 -0.393543 -4.55411e-23)
-(1.03306 -0.392626 -5.44454e-23)
-(1.07522 -0.39139 -4.95414e-23)
-(1.11752 -0.389849 2.53328e-23)
-(1.15993 -0.388012 -4.33041e-23)
-(1.20243 -0.385894 -4.3356e-23)
-(1.24501 -0.383518 3.67705e-23)
-(1.28762 -0.380897 6.95166e-23)
-(1.33027 -0.378048 -2.34908e-22)
-(1.37292 -0.374993 -7.53138e-23)
-(1.41557 -0.371748 -3.91288e-23)
-(1.45819 -0.368333 3.13748e-22)
-(1.50078 -0.364769 2.0322e-22)
-(1.54334 -0.361075 5.10574e-23)
-(1.58584 -0.357272 3.57126e-22)
-(1.6283 -0.353381 -3.25858e-22)
-(1.67071 -0.349423 -2.04704e-22)
-(1.71309 -0.345419 1.37844e-22)
-(1.75543 -0.34139 3.08196e-23)
-(1.79776 -0.33736 -2.56435e-22)
-(1.84009 -0.333346 1.9597e-22)
-(1.88245 -0.329365 -1.945e-23)
-(1.92486 -0.325439 3.35628e-22)
-(1.96735 -0.321581 2.04775e-22)
-(2.00993 -0.317794 2.18939e-22)
-(2.05265 -0.314067 9.20878e-23)
-(2.09553 -0.31037 -2.72762e-23)
-(2.13861 -0.306643 -1.7914e-22)
-(2.18194 -0.302798 5.89505e-22)
-(2.22559 -0.298701 5.28066e-22)
-(2.26969 -0.294169 2.84487e-22)
-(2.31432 -0.28897 6.37496e-22)
-(2.36003 -0.282832 6.23487e-22)
-(2.4062 -0.275499 6.3875e-22)
-(2.45676 -0.266845 4.97941e-22)
-(2.50158 -0.256919 3.60415e-22)
-(-0.00528699 0.26021 -2.72896e-23)
-(-0.0147689 0.328348 1.53883e-22)
-(-0.0253332 0.35085 5.08881e-22)
-(-0.0363397 0.363037 -7.05823e-23)
-(-0.047277 0.371436 -1.23124e-22)
-(-0.0578462 0.377939 -2.30137e-22)
-(-0.0679552 0.383269 -4.02278e-22)
-(-0.0775715 0.387743 -4.51448e-22)
-(-0.0866872 0.391515 -4.9311e-22)
-(-0.0953104 0.394666 -1.51817e-22)
-(-0.103463 0.397248 1.14445e-22)
-(-0.111175 0.399303 5.2206e-22)
-(-0.118485 0.40087 1.97499e-22)
-(-0.12543 0.401993 2.80475e-23)
-(-0.132052 0.402713 3.48226e-22)
-(-0.138391 0.403077 3.45778e-22)
-(-0.144484 0.40313 9.42041e-23)
-(-0.150368 0.402915 4.22349e-23)
-(-0.156076 0.402475 -2.86484e-22)
-(-0.161638 0.401849 -1.53927e-22)
-(-0.167082 0.401074 7.07112e-23)
-(-0.172433 0.40018 5.10059e-23)
-(-0.177714 0.399198 1.43209e-22)
-(-0.182944 0.398153 3.5702e-22)
-(-0.188141 0.397066 3.98053e-22)
-(-0.193317 0.395955 2.0745e-22)
-(-0.198487 0.394835 7.05788e-23)
-(-0.20366 0.393718 2.82189e-22)
-(-0.208844 0.39261 1.68648e-22)
-(-0.214043 0.391519 3.96026e-22)
-(-0.219262 0.390447 4.54907e-22)
-(-0.224502 0.389394 4.44991e-22)
-(-0.229762 0.388358 3.07457e-22)
-(-0.23504 0.387336 2.97098e-22)
-(-0.240333 0.386321 1.77639e-22)
-(-0.245634 0.385306 2.00206e-22)
-(-0.250937 0.384283 1.5234e-23)
-(-0.256234 0.383241 -1.85349e-22)
-(-0.261513 0.382168 -2.22043e-22)
-(-0.266766 0.381053 -1.11805e-22)
-(-0.271978 0.379883 -1.5522e-22)
-(-0.277138 0.378645 -2.32974e-23)
-(-0.282231 0.377323 6.28093e-23)
-(-0.287243 0.375906 2.09514e-22)
-(-0.292157 0.374379 -1.48872e-23)
-(-0.296958 0.372727 1.09731e-23)
-(-0.301629 0.370939 1.50455e-23)
-(-0.306154 0.369001 -4.29307e-23)
-(-0.310516 0.366901 1.01013e-22)
-(-0.314697 0.364626 1.44532e-24)
-(-0.318683 0.362166 -2.71316e-23)
-(-0.322454 0.359509 1.7329e-23)
-(-0.325995 0.356646 -1.493e-22)
-(-0.32929 0.353567 -2.49884e-22)
-(-0.332323 0.350266 -1.90193e-22)
-(-0.335077 0.346734 -2.46206e-22)
-(-0.33754 0.342966 -3.47693e-22)
-(-0.339697 0.338956 -3.32693e-22)
-(-0.341535 0.3347 -5.44561e-24)
-(-0.34304 0.330194 -5.00001e-23)
-(-0.344203 0.325436 -5.18858e-23)
-(-0.345011 0.320423 -4.95012e-23)
-(-0.345453 0.315155 -1.02524e-22)
-(-0.345521 0.309633 -1.28412e-22)
-(-0.345206 0.30386 -9.45087e-23)
-(-0.344501 0.297837 -5.76176e-23)
-(-0.343401 0.291566 3.56415e-23)
-(-0.3419 0.285049 -3.40369e-23)
-(-0.339993 0.278288 6.86579e-23)
-(-0.337678 0.271285 -4.70746e-23)
-(-0.33495 0.264043 -1.26922e-22)
-(-0.331808 0.256561 1.34972e-22)
-(-0.32825 0.248842 -1.57694e-22)
-(-0.324274 0.240886 -1.31748e-22)
-(-0.319882 0.232689 -1.86471e-22)
-(-0.315072 0.224251 -7.3566e-23)
-(-0.309844 0.215567 4.28839e-24)
-(-0.304198 0.206629 2.44949e-23)
-(-0.298134 0.197431 1.98832e-22)
-(-0.291651 0.18796 1.02207e-23)
-(-0.284746 0.178204 -6.94113e-23)
-(-0.277416 0.168146 1.65667e-23)
-(-0.269653 0.157766 -1.79854e-22)
-(-0.261449 0.14705 -3.1993e-22)
-(-0.252793 0.135981 -3.11252e-22)
-(-0.243672 0.124538 -1.14959e-22)
-(-0.234066 0.112703 -2.49515e-22)
-(-0.223951 0.100459 -3.40974e-22)
-(-0.213302 0.0877916 -2.46498e-22)
-(-0.202085 0.0746943 -2.22455e-22)
-(-0.190263 0.0611667 8.71743e-24)
-(-0.177802 0.0472211 1.71826e-22)
-(-0.164665 0.0328759 4.99086e-23)
-(-0.150821 0.0181523 1.31916e-23)
-(-0.136214 0.00312696 -2.2553e-22)
-(-0.12099 -0.0120019 -1.93527e-22)
-(-0.105373 -0.0270459 -2.80788e-22)
-(-0.0892904 -0.0419627 -3.88364e-23)
-(-0.0727328 -0.0567538 7.18212e-23)
-(-0.0556877 -0.071408 1.39404e-22)
-(-0.0381398 -0.085912 1.06275e-22)
-(-0.020074 -0.100254 6.36725e-23)
-(-0.00147048 -0.114426 3.57992e-22)
-(0.017679 -0.128411 2.13123e-22)
-(0.0373725 -0.142183 3.75774e-22)
-(0.0576286 -0.155739 3.13509e-22)
-(0.078456 -0.169071 1.26119e-22)
-(0.0998633 -0.182168 2.04438e-22)
-(0.121858 -0.195021 2.21961e-22)
-(0.144444 -0.20762 2.31769e-22)
-(0.167629 -0.219955 1.6299e-22)
-(0.191413 -0.232015 2.94283e-22)
-(0.215801 -0.24379 1.97597e-22)
-(0.240794 -0.255271 3.56218e-22)
-(0.266391 -0.266447 3.23702e-22)
-(0.292594 -0.27731 2.60948e-22)
-(0.319398 -0.287851 1.51352e-22)
-(0.346801 -0.298052 1.32095e-22)
-(0.374789 -0.307893 2.53589e-22)
-(0.403366 -0.317374 2.29964e-22)
-(0.432522 -0.326486 1.48372e-22)
-(0.462251 -0.335221 1.50448e-22)
-(0.492545 -0.343572 1.7969e-22)
-(0.523396 -0.351532 2.54709e-22)
-(0.554793 -0.359094 1.59848e-22)
-(0.586724 -0.366254 1.34443e-22)
-(0.619175 -0.373004 5.60081e-23)
-(0.652131 -0.379328 1.14104e-22)
-(0.685581 -0.38522 1.39242e-22)
-(0.719511 -0.390685 8.056e-23)
-(0.753902 -0.395721 8.72524e-23)
-(0.788738 -0.40033 1.75819e-22)
-(0.824 -0.404511 2.03488e-22)
-(0.859665 -0.408262 1.6537e-22)
-(0.895716 -0.411575 1.21842e-22)
-(0.932135 -0.414449 -1.62278e-23)
-(0.968907 -0.416896 -9.29471e-23)
-(1.006 -0.418924 1.11651e-22)
-(1.0434 -0.420539 1.13046e-22)
-(1.08108 -0.421741 1.73018e-22)
-(1.11902 -0.422533 7.52007e-23)
-(1.1572 -0.422927 1.37005e-22)
-(1.19559 -0.422937 2.15704e-23)
-(1.23417 -0.422575 4.00019e-23)
-(1.27293 -0.421846 -2.13847e-23)
-(1.31183 -0.420762 -8.59014e-23)
-(1.35086 -0.419342 -1.10611e-22)
-(1.38999 -0.417601 -1.62075e-22)
-(1.42921 -0.415552 1.0811e-22)
-(1.4685 -0.413211 2.13577e-22)
-(1.50783 -0.4106 1.37935e-22)
-(1.54719 -0.407735 1.00918e-22)
-(1.58657 -0.404634 1.04499e-23)
-(1.62595 -0.401318 -5.14087e-22)
-(1.66532 -0.397808 -2.14593e-22)
-(1.70467 -0.394124 -8.28604e-23)
-(1.74399 -0.390288 -9.68938e-23)
-(1.78328 -0.386322 5.68736e-22)
-(1.82254 -0.382248 4.30308e-22)
-(1.86176 -0.378089 -1.91613e-22)
-(1.90096 -0.373868 -1.2267e-22)
-(1.94014 -0.369609 -5.75441e-23)
-(1.97932 -0.365334 7.28588e-23)
-(2.01851 -0.361068 6.45195e-22)
-(2.05773 -0.356832 3.25633e-22)
-(2.09701 -0.352645 -6.94731e-23)
-(2.13638 -0.348527 1.34403e-22)
-(2.17587 -0.344491 1.01483e-22)
-(2.2155 -0.340543 2.13703e-22)
-(2.25532 -0.336672 2.31431e-22)
-(2.29537 -0.33285 -1.55573e-22)
-(2.33568 -0.329025 4.03428e-22)
-(2.37634 -0.325112 7.07724e-22)
-(2.41741 -0.320994 4.51583e-22)
-(2.45904 -0.316506 1.13906e-21)
-(2.50132 -0.31145 5.69952e-22)
-(2.54481 -0.305589 2.00739e-22)
-(2.58889 -0.29874 5.29818e-22)
-(2.63736 -0.290762 5.23688e-22)
-(2.68014 -0.281869 2.89599e-22)
-(-0.00433614 0.277376 -1.12869e-21)
-(-0.0125164 0.34976 -2.75361e-22)
-(-0.0217256 0.372805 -3.20568e-22)
-(-0.0313169 0.384574 -1.69089e-22)
-(-0.0408197 0.392141 -1.19642e-22)
-(-0.0499457 0.397599 1.09679e-24)
-(-0.0585913 0.401773 -1.59948e-22)
-(-0.0667119 0.405048 -2.07268e-22)
-(-0.0742909 0.407627 -1.81843e-22)
-(-0.0813318 0.409626 -8.19433e-23)
-(-0.0878537 0.411121 -1.56755e-23)
-(-0.0938877 0.412169 -1.05482e-22)
-(-0.099472 0.41282 6.76444e-23)
-(-0.104649 0.413117 1.55508e-22)
-(-0.109464 0.413105 -2.82015e-22)
-(-0.113959 0.412823 -5.23939e-22)
-(-0.118177 0.412312 -6.51065e-22)
-(-0.122158 0.411609 -2.1993e-22)
-(-0.125936 0.410748 4.70241e-23)
-(-0.129545 0.409763 -1.14411e-23)
-(-0.133014 0.408682 1.14813e-23)
-(-0.136369 0.40753 4.59252e-23)
-(-0.139631 0.406331 1.12355e-22)
-(-0.142819 0.405103 2.07322e-22)
-(-0.14595 0.403862 3.07753e-22)
-(-0.149036 0.402621 4.88779e-22)
-(-0.152087 0.401389 4.54455e-22)
-(-0.155111 0.400174 5.66146e-22)
-(-0.158111 0.398979 5.07221e-22)
-(-0.161092 0.397805 2.26194e-22)
-(-0.164051 0.396651 1.22933e-22)
-(-0.166988 0.395515 2.15422e-22)
-(-0.169896 0.394391 3.11556e-22)
-(-0.17277 0.393272 2.3043e-22)
-(-0.175601 0.39215 1.88183e-22)
-(-0.178379 0.391015 1.41522e-22)
-(-0.181093 0.389855 1.21294e-22)
-(-0.183729 0.38866 1.19598e-22)
-(-0.186273 0.387415 1.52491e-22)
-(-0.188709 0.386109 3.02103e-22)
-(-0.191021 0.384725 1.25426e-22)
-(-0.193192 0.383251 8.39657e-23)
-(-0.195203 0.381672 -1.07758e-24)
-(-0.197038 0.379973 -1.81889e-22)
-(-0.198675 0.37814 -5.29851e-23)
-(-0.200097 0.376161 -8.74781e-24)
-(-0.201285 0.374022 8.63959e-24)
-(-0.20222 0.371711 3.75526e-23)
-(-0.202884 0.369216 1.58353e-22)
-(-0.20326 0.366526 1.96633e-22)
-(-0.203331 0.363631 1.34084e-22)
-(-0.203079 0.36052 1.94634e-22)
-(-0.202489 0.357185 4.15462e-22)
-(-0.201546 0.35362 4.53152e-22)
-(-0.200236 0.349816 3.30429e-22)
-(-0.198546 0.34577 1.04116e-22)
-(-0.196465 0.341475 1.07755e-22)
-(-0.193982 0.33693 -2.23195e-22)
-(-0.191089 0.332131 -1.5472e-22)
-(-0.187779 0.327076 -1.24907e-22)
-(-0.184044 0.321765 -1.2494e-22)
-(-0.179879 0.316194 -8.35987e-23)
-(-0.175279 0.310366 -3.6161e-22)
-(-0.170243 0.304286 -3.41575e-22)
-(-0.164769 0.297956 -2.05922e-22)
-(-0.158859 0.29138 -1.78287e-22)
-(-0.152511 0.28456 -1.68223e-22)
-(-0.145728 0.2775 -1.91782e-22)
-(-0.138513 0.270203 -2.94684e-22)
-(-0.130869 0.262673 -1.07459e-22)
-(-0.122801 0.254911 1.68946e-22)
-(-0.114312 0.24692 -1.03806e-22)
-(-0.105409 0.238702 5.27335e-23)
-(-0.096097 0.230257 -1.03868e-22)
-(-0.0863823 0.221584 -1.04987e-22)
-(-0.0762711 0.21268 -2.24882e-23)
-(-0.0657693 0.203541 1.37474e-22)
-(-0.0548826 0.194159 1.42305e-23)
-(-0.0436165 0.184527 -8.04479e-23)
-(-0.0319751 0.174631 1.06271e-22)
-(-0.0199608 0.164456 -1.09888e-22)
-(-0.00757565 0.153984 -1.1763e-23)
-(0.00518982 0.143186 -2.29821e-22)
-(0.0183221 0.13206 -4.65154e-22)
-(0.031835 0.120578 -5.16632e-22)
-(0.0457394 0.108715 -5.76903e-22)
-(0.0600524 0.0964476 -4.64545e-22)
-(0.0747936 0.083756 -3.92451e-22)
-(0.0899879 0.070621 -3.81217e-22)
-(0.105663 0.0570316 -1.85442e-22)
-(0.121856 0.0429833 7.74305e-23)
-(0.13859 0.0284922 2.68838e-22)
-(0.155904 0.0135625 6.05162e-24)
-(0.173858 -0.00172883 -2.17029e-22)
-(0.192213 -0.0171571 -3.53032e-22)
-(0.21074 -0.0325313 -1.88292e-22)
-(0.229509 -0.0477949 -1.31919e-22)
-(0.248538 -0.0629503 -7.02262e-24)
-(0.267843 -0.0779898 9.01635e-23)
-(0.287442 -0.0929006 2.55965e-22)
-(0.307352 -0.107669 9.65143e-23)
-(0.32759 -0.122281 2.78706e-22)
-(0.34817 -0.136723 3.3156e-22)
-(0.369105 -0.150976 3.00407e-22)
-(0.390408 -0.165024 3.8702e-23)
-(0.412096 -0.178859 -2.76141e-23)
-(0.434178 -0.19247 2.956e-22)
-(0.456665 -0.205846 2.05577e-22)
-(0.479565 -0.218975 2.3759e-22)
-(0.502887 -0.231847 4.05529e-22)
-(0.526636 -0.244451 4.76203e-22)
-(0.55082 -0.256775 3.92391e-22)
-(0.575442 -0.268808 2.92701e-22)
-(0.600506 -0.280539 2.06135e-22)
-(0.626015 -0.291959 3.04827e-22)
-(0.651969 -0.303057 8.07989e-23)
-(0.678367 -0.313821 8.49896e-23)
-(0.705207 -0.324235 -2.79082e-23)
-(0.732488 -0.334282 3.83179e-23)
-(0.760212 -0.343957 1.04815e-22)
-(0.788372 -0.35325 1.34205e-22)
-(0.816967 -0.362155 1.42445e-22)
-(0.845989 -0.370663 6.07898e-23)
-(0.875432 -0.378766 1.85495e-22)
-(0.90529 -0.386459 2.44267e-22)
-(0.935552 -0.393734 1.89167e-22)
-(0.966208 -0.400583 1.82911e-22)
-(0.997248 -0.406993 7.75353e-23)
-(1.02866 -0.412959 3.16166e-23)
-(1.06045 -0.418481 5.19318e-23)
-(1.09258 -0.423559 6.58081e-23)
-(1.12506 -0.428193 1.16256e-22)
-(1.15786 -0.432382 1.21378e-22)
-(1.19096 -0.436124 7.05957e-23)
-(1.22436 -0.439414 9.56158e-23)
-(1.25804 -0.442251 1.2681e-22)
-(1.29198 -0.444646 1.01109e-22)
-(1.32617 -0.446605 6.12419e-23)
-(1.36059 -0.448132 1.20243e-22)
-(1.39522 -0.449233 3.79176e-23)
-(1.43004 -0.449911 6.23209e-23)
-(1.46503 -0.450176 -8.75639e-23)
-(1.50019 -0.450042 -6.18886e-23)
-(1.53549 -0.449521 -8.50458e-23)
-(1.57091 -0.448622 1.10567e-22)
-(1.60643 -0.447356 2.46177e-22)
-(1.64205 -0.445742 4.58778e-22)
-(1.67774 -0.443795 7.11712e-23)
-(1.71348 -0.441531 2.45958e-24)
-(1.74927 -0.438966 -1.25795e-22)
-(1.78509 -0.436122 -5.36784e-24)
-(1.82093 -0.433017 1.39421e-22)
-(1.85677 -0.429671 -3.59337e-23)
-(1.8926 -0.426105 3.45558e-23)
-(1.92843 -0.422341 1.58625e-22)
-(1.96424 -0.418401 -2.21553e-22)
-(2.00003 -0.414309 -1.85969e-22)
-(2.0358 -0.410088 -1.96696e-23)
-(2.07155 -0.405763 3.61071e-23)
-(2.10728 -0.401357 1.80441e-22)
-(2.14301 -0.396897 -3.58451e-23)
-(2.17875 -0.392406 6.16125e-22)
-(2.21452 -0.387911 2.49496e-23)
-(2.25033 -0.383436 -1.77483e-22)
-(2.2862 -0.379005 4.99098e-22)
-(2.32218 -0.37464 6.54345e-22)
-(2.35828 -0.37036 1.70604e-22)
-(2.39455 -0.36618 6.84942e-22)
-(2.43101 -0.362106 4.77789e-22)
-(2.46772 -0.358129 2.29714e-22)
-(2.50471 -0.354226 6.16101e-22)
-(2.54206 -0.350347 -2.25377e-22)
-(2.57983 -0.34642 5.62573e-22)
-(2.61811 -0.342337 5.59261e-22)
-(2.65706 -0.337954 4.05464e-22)
-(2.69678 -0.333102 5.26233e-22)
-(2.73782 -0.327577 6.3061e-22)
-(2.77957 -0.32125 8.42985e-22)
-(2.82568 -0.313958 6.42793e-22)
-(2.86624 -0.306059 5.70126e-22)
-(-0.00357984 0.291778 5.28594e-22)
-(-0.0106802 0.368222 1.0105e-22)
-(-0.0187147 0.391842 -7.62728e-24)
-(-0.0270429 0.403212 -1.47453e-22)
-(-0.0352216 0.409936 -4.77884e-22)
-(-0.0429717 0.414308 -1.77611e-22)
-(-0.0501823 0.417265 -9.0831e-23)
-(-0.0568032 0.419268 -3.53351e-23)
-(-0.0628165 0.420573 4.50934e-23)
-(-0.0682275 0.421338 1.43142e-22)
-(-0.0730598 0.421668 3.362e-22)
-(-0.0773499 0.421639 1.46285e-22)
-(-0.0811425 0.421311 1.33223e-22)
-(-0.0844868 0.420732 2.49835e-22)
-(-0.0874326 0.419944 9.3031e-23)
-(-0.0900291 0.418984 -3.11867e-22)
-(-0.0923222 0.417884 -2.28955e-22)
-(-0.0943542 0.416673 -1.32984e-22)
-(-0.0961633 0.415378 -7.24496e-23)
-(-0.0977828 0.414021 -7.96403e-23)
-(-0.0992417 0.412624 -1.02151e-22)
-(-0.100564 0.411203 -9.43825e-23)
-(-0.101771 0.409774 -6.44703e-23)
-(-0.102878 0.408347 -5.52162e-23)
-(-0.103898 0.406934 -7.11204e-23)
-(-0.104841 0.405539 2.30044e-22)
-(-0.105711 0.404168 4.82635e-22)
-(-0.106513 0.402821 3.27626e-22)
-(-0.107244 0.401497 4.62834e-22)
-(-0.107904 0.400192 6.20385e-22)
-(-0.108484 0.398903 2.53184e-22)
-(-0.108977 0.397622 -5.73808e-23)
-(-0.109373 0.39634 -1.9284e-22)
-(-0.109657 0.395047 5.08413e-23)
-(-0.109816 0.393733 1.92241e-22)
-(-0.109833 0.392386 4.99332e-23)
-(-0.10969 0.390991 2.2262e-22)
-(-0.109368 0.389536 3.96828e-22)
-(-0.108845 0.388007 3.2849e-22)
-(-0.108101 0.386389 -9.20662e-24)
-(-0.107113 0.384667 1.25188e-22)
-(-0.105861 0.382828 3.09006e-22)
-(-0.104321 0.380857 1.48049e-22)
-(-0.102471 0.37874 1.73623e-22)
-(-0.100289 0.376463 8.88468e-23)
-(-0.0977538 0.374014 2.09958e-23)
-(-0.0948459 0.371382 -3.2625e-23)
-(-0.0915461 0.368557 -1.04722e-22)
-(-0.0878366 0.365527 -2.13617e-22)
-(-0.0837003 0.362284 -2.04985e-23)
-(-0.079122 0.358818 5.17016e-23)
-(-0.0740874 0.355123 1.21931e-22)
-(-0.0685841 0.35119 2.38036e-22)
-(-0.0626015 0.347017 3.33504e-22)
-(-0.0561305 0.342597 -8.23887e-24)
-(-0.0491642 0.337929 1.14097e-22)
-(-0.0416975 0.333009 1.39113e-22)
-(-0.0337273 0.327838 1.87776e-22)
-(-0.0252523 0.322415 -1.74104e-22)
-(-0.0162729 0.316739 -1.65721e-22)
-(-0.00679248 0.31081 -2.7726e-22)
-(0.00319176 0.304627 -5.42474e-22)
-(0.0136615 0.298201 -2.10382e-22)
-(0.0246126 0.291536 1.42961e-22)
-(0.0360377 0.284635 -1.84564e-22)
-(0.0479277 0.277501 -2.94688e-22)
-(0.0602726 0.270138 -2.94131e-22)
-(0.0730613 0.262552 -2.81545e-22)
-(0.0862817 0.254746 -2.8817e-22)
-(0.0999215 0.246725 -2.72655e-22)
-(0.113968 0.23849 -3.31948e-22)
-(0.128409 0.230044 -1.58405e-22)
-(0.143232 0.22139 -5.10947e-23)
-(0.158423 0.212528 -2.93785e-22)
-(0.17397 0.203456 -1.58465e-22)
-(0.189859 0.194171 -8.51297e-23)
-(0.20608 0.184668 -3.11578e-23)
-(0.222622 0.17494 -4.2535e-23)
-(0.239474 0.164975 -3.38838e-23)
-(0.256627 0.154761 9.49493e-23)
-(0.274075 0.144278 3.56175e-23)
-(0.291813 0.133506 -2.4965e-22)
-(0.309836 0.122426 -2.29103e-22)
-(0.328142 0.111016 -2.44255e-22)
-(0.346742 0.0992466 -1.86349e-22)
-(0.365644 0.0870889 -1.62949e-22)
-(0.384865 0.0745138 -1.40121e-22)
-(0.40442 0.0615014 -3.75343e-22)
-(0.424335 0.0480254 -1.96991e-22)
-(0.44463 0.0340738 2.27163e-22)
-(0.465355 0.0196332 1.45063e-22)
-(0.486472 0.00469331 -6.06654e-23)
-(0.508153 -0.0106268 -3.14248e-23)
-(0.529873 -0.0260731 -5.65018e-23)
-(0.551558 -0.0414948 4.24259e-23)
-(0.573245 -0.0568417 -7.63366e-23)
-(0.594959 -0.072109 -3.80676e-23)
-(0.616725 -0.0872873 -2.41758e-26)
-(0.638563 -0.102364 -2.33745e-23)
-(0.660492 -0.117325 5.31676e-23)
-(0.682531 -0.132156 6.0056e-22)
-(0.7047 -0.146841 6.01103e-22)
-(0.727014 -0.161364 2.21669e-22)
-(0.749491 -0.175707 3.73977e-24)
-(0.772147 -0.189854 2.48954e-22)
-(0.795001 -0.203794 2.87546e-22)
-(0.818064 -0.217514 2.2346e-22)
-(0.841351 -0.231002 1.46986e-22)
-(0.864873 -0.244247 2.79621e-23)
-(0.88864 -0.257235 7.08062e-23)
-(0.912662 -0.269955 1.13868e-22)
-(0.936946 -0.282394 1.41134e-22)
-(0.961501 -0.294541 2.12535e-22)
-(0.986331 -0.306385 1.5849e-22)
-(1.01144 -0.317912 1.79632e-22)
-(1.03684 -0.329112 1.07856e-22)
-(1.06252 -0.339973 1.41827e-22)
-(1.08849 -0.350478 8.09448e-23)
-(1.11475 -0.360612 -8.11198e-23)
-(1.1413 -0.370367 1.05962e-22)
-(1.16815 -0.379734 2.85788e-22)
-(1.19529 -0.388704 2.4301e-22)
-(1.22271 -0.397268 1.89039e-22)
-(1.25042 -0.405419 1.69566e-22)
-(1.27842 -0.413149 1.25104e-22)
-(1.30669 -0.42045 6.90759e-23)
-(1.33523 -0.427313 1.62874e-22)
-(1.36403 -0.43373 1.47975e-22)
-(1.39309 -0.439693 1.71128e-22)
-(1.4224 -0.445201 6.53732e-23)
-(1.45196 -0.450254 5.16191e-23)
-(1.48175 -0.454849 3.95051e-23)
-(1.51176 -0.458986 1.04898e-22)
-(1.54198 -0.462663 2.1226e-23)
-(1.5724 -0.465879 -5.16632e-23)
-(1.60302 -0.468632 2.90045e-22)
-(1.63381 -0.470931 2.84796e-22)
-(1.66477 -0.472779 1.91195e-22)
-(1.69589 -0.474185 1.89047e-22)
-(1.72715 -0.475152 1.06078e-22)
-(1.75854 -0.475686 1.74768e-23)
-(1.79004 -0.475798 6.35446e-23)
-(1.82165 -0.475499 3.34581e-23)
-(1.85335 -0.474802 -7.79639e-23)
-(1.88513 -0.473718 -2.38042e-23)
-(1.91697 -0.472259 1.51156e-23)
-(1.94887 -0.470443 2.09648e-22)
-(1.98082 -0.468286 3.9282e-22)
-(2.01279 -0.465805 1.34299e-22)
-(2.04479 -0.463018 7.5347e-23)
-(2.0768 -0.459945 8.89435e-23)
-(2.10882 -0.456607 4.98885e-23)
-(2.14084 -0.453024 2.66835e-22)
-(2.17285 -0.44922 5.34357e-22)
-(2.20485 -0.445216 4.0256e-22)
-(2.23685 -0.441038 9.1821e-23)
-(2.26883 -0.436708 -4.7113e-23)
-(2.30081 -0.432253 -2.61842e-22)
-(2.33278 -0.427699 -1.51414e-22)
-(2.36477 -0.42307 -1.16077e-22)
-(2.39678 -0.418395 2.32367e-23)
-(2.42883 -0.4137 -1.99506e-22)
-(2.46093 -0.409012 4.32942e-22)
-(2.49311 -0.404358 3.64004e-22)
-(2.5254 -0.399764 3.14398e-22)
-(2.55783 -0.395252 9.06567e-22)
-(2.59043 -0.390843 8.82241e-22)
-(2.62325 -0.386554 9.15719e-22)
-(2.65632 -0.382392 5.35577e-22)
-(2.6897 -0.37835 2.5417e-22)
-(2.72343 -0.374409 3.62806e-22)
-(2.75759 -0.370527 3.37032e-22)
-(2.79226 -0.366637 4.21278e-22)
-(2.82754 -0.362646 4.69247e-22)
-(2.86361 -0.358428 3.54205e-23)
-(2.90055 -0.353839 -1.0406e-22)
-(2.93891 -0.348703 -2.18106e-22)
-(2.97809 -0.342936 1.47283e-21)
-(3.02162 -0.336341 1.71303e-21)
-(3.05976 -0.329411 1.17511e-21)
-(-0.00313462 0.304191 8.87908e-22)
-(-0.00953887 0.384378 1.76445e-21)
-(-0.0167047 0.408468 1.48444e-21)
-(-0.0240167 0.41933 1.08375e-21)
-(-0.0310441 0.425076 4.37258e-22)
-(-0.0375187 0.428213 2.09826e-22)
-(-0.0433331 0.4298 1.39934e-22)
-(-0.0484439 0.430382 1.69872e-22)
-(-0.0528446 0.430277 3.38971e-22)
-(-0.0565543 0.429689 1.29085e-22)
-(-0.0596115 0.428754 2.46584e-23)
-(-0.0620666 0.427568 -9.05176e-23)
-(-0.063977 0.4262 -2.59476e-22)
-(-0.0654022 0.4247 -5.74933e-22)
-(-0.0664004 0.423106 -3.11173e-22)
-(-0.0670261 0.421446 1.90138e-22)
-(-0.0673291 0.419743 3.21681e-22)
-(-0.0673531 0.418016 1.21255e-22)
-(-0.067136 0.416279 8.20881e-25)
-(-0.0667095 0.414543 -1.29245e-22)
-(-0.0660997 0.412819 -3.54212e-22)
-(-0.0653268 0.411113 -3.70784e-22)
-(-0.064406 0.409433 -2.82246e-22)
-(-0.0633482 0.40778 -3.70916e-22)
-(-0.0621597 0.406158 -2.80087e-22)
-(-0.060843 0.404566 -7.01789e-24)
-(-0.0593965 0.403002 4.02662e-22)
-(-0.0578155 0.40146 3.82083e-22)
-(-0.0560917 0.399935 3.60509e-22)
-(-0.054213 0.398417 3.28286e-22)
-(-0.0521648 0.396898 2.89622e-22)
-(-0.04993 0.395366 2.17585e-22)
-(-0.0474888 0.39381 2.42275e-22)
-(-0.0448195 0.392218 7.01526e-23)
-(-0.041898 0.390574 -7.65842e-23)
-(-0.038699 0.388867 7.81395e-23)
-(-0.0351957 0.387079 3.23915e-22)
-(-0.0313608 0.385199 4.29427e-22)
-(-0.0271663 0.38321 3.27467e-22)
-(-0.022584 0.381099 2.6171e-22)
-(-0.0175863 0.378851 9.22871e-24)
-(-0.0121456 0.376454 -2.7437e-22)
-(-0.0062362 0.373893 -9.28098e-23)
-(0.000169271 0.371156 2.22886e-23)
-(0.00709101 0.368233 1.98971e-22)
-(0.0145468 0.365117 4.07913e-23)
-(0.0225567 0.361798 -3.64874e-23)
-(0.0311366 0.358268 -1.93258e-22)
-(0.0403 0.354518 1.1687e-22)
-(0.0500582 0.350543 -1.38943e-23)
-(0.0604197 0.346336 -6.44838e-23)
-(0.0713907 0.341894 -8.21149e-23)
-(0.0829745 0.337214 4.23373e-23)
-(0.0951718 0.332293 -2.28412e-22)
-(0.107981 0.327131 -4.10656e-24)
-(0.121396 0.321728 2.93992e-22)
-(0.135411 0.316085 1.96736e-22)
-(0.150015 0.310205 2.33381e-22)
-(0.165195 0.304089 2.76258e-22)
-(0.180938 0.297741 -7.46281e-24)
-(0.197225 0.291163 -1.61055e-22)
-(0.214037 0.28436 6.59714e-23)
-(0.231354 0.27734 -1.14356e-22)
-(0.249158 0.270105 -2.45787e-22)
-(0.267429 0.26266 -5.12519e-22)
-(0.286145 0.255011 -5.92437e-22)
-(0.305285 0.247161 -4.38055e-22)
-(0.324826 0.239117 -3.62712e-22)
-(0.344746 0.230883 -3.48208e-22)
-(0.365023 0.222462 -3.54039e-22)
-(0.385637 0.213855 -3.45941e-22)
-(0.406567 0.205065 -2.06854e-22)
-(0.427794 0.196092 -3.97864e-22)
-(0.449299 0.186938 -2.3227e-22)
-(0.471063 0.177598 -1.63647e-22)
-(0.493069 0.168069 -1.61258e-22)
-(0.515303 0.158343 -1.07486e-22)
-(0.537751 0.14841 -1.0107e-22)
-(0.560399 0.138261 -1.9278e-22)
-(0.583237 0.127877 -3.12626e-22)
-(0.606258 0.117238 -1.39698e-22)
-(0.629455 0.106321 -2.41314e-22)
-(0.652824 0.0951037 -1.66307e-22)
-(0.676367 0.0835548 -1.35843e-22)
-(0.700092 0.0716433 -4.21383e-22)
-(0.724011 0.0593355 -2.98682e-22)
-(0.748141 0.0465951 8.20138e-23)
-(0.772499 0.0334065 3.32513e-22)
-(0.797134 0.0197264 -5.76926e-24)
-(0.822018 0.00550374 -4.65784e-22)
-(0.847276 -0.00920322 -5.5738e-22)
-(0.872678 -0.0242425 -5.55992e-22)
-(0.897738 -0.0394036 5.78892e-23)
-(0.922579 -0.0545628 -8.72863e-23)
-(0.947186 -0.0696987 -1.80496e-22)
-(0.971588 -0.0847965 4.45533e-24)
-(0.99581 -0.0998421 6.22899e-23)
-(1.01988 -0.114821 6.11134e-24)
-(1.04381 -0.129718 -1.68731e-22)
-(1.06763 -0.144517 -1.20068e-22)
-(1.09137 -0.159202 3.48272e-23)
-(1.11503 -0.173757 1.70529e-22)
-(1.13865 -0.188165 3.65027e-22)
-(1.16223 -0.202407 4.51654e-22)
-(1.18581 -0.216468 4.03811e-22)
-(1.20939 -0.230333 2.21885e-22)
-(1.23301 -0.243988 2.07865e-22)
-(1.25666 -0.257421 2.54614e-22)
-(1.28037 -0.270617 2.61554e-22)
-(1.30415 -0.283563 8.85831e-23)
-(1.32802 -0.296246 1.05988e-22)
-(1.35198 -0.308652 1.08684e-22)
-(1.37604 -0.320769 9.79136e-23)
-(1.40021 -0.332584 4.64173e-23)
-(1.4245 -0.344084 3.26902e-23)
-(1.44892 -0.355256 1.4324e-22)
-(1.47347 -0.366088 1.53689e-22)
-(1.49816 -0.376563 1.99472e-22)
-(1.52299 -0.386668 1.29466e-22)
-(1.54796 -0.396391 1.24666e-22)
-(1.57309 -0.405724 2.26518e-22)
-(1.59837 -0.414655 1.30711e-22)
-(1.6238 -0.423176 2.39698e-22)
-(1.64938 -0.431279 2.2565e-22)
-(1.67512 -0.438954 2.20084e-22)
-(1.701 -0.446195 1.46296e-22)
-(1.72704 -0.452992 1.67908e-22)
-(1.75321 -0.459336 1.18568e-22)
-(1.77954 -0.465222 1.02901e-22)
-(1.806 -0.470646 1.5341e-22)
-(1.8326 -0.475606 8.98751e-23)
-(1.85933 -0.480101 -1.30462e-23)
-(1.88618 -0.484129 -6.91267e-23)
-(1.91315 -0.48769 9.13994e-23)
-(1.94024 -0.490781 2.09482e-23)
-(1.96743 -0.493404 1.77062e-22)
-(1.99472 -0.495564 2.53295e-22)
-(2.0221 -0.497266 8.91748e-23)
-(2.04956 -0.498516 1.70052e-22)
-(2.07711 -0.49932 1.03219e-22)
-(2.10472 -0.499685 -9.47763e-23)
-(2.13239 -0.49962 2.92019e-23)
-(2.16011 -0.499138 1.44671e-22)
-(2.18788 -0.498251 -4.55171e-23)
-(2.21569 -0.49697 -3.25553e-23)
-(2.24352 -0.495309 -4.0521e-23)
-(2.27138 -0.493286 7.66427e-23)
-(2.29926 -0.490918 3.84329e-22)
-(2.32715 -0.488221 5.84371e-22)
-(2.35505 -0.485215 4.24196e-22)
-(2.38295 -0.481921 1.98479e-22)
-(2.41084 -0.47836 3.28315e-23)
-(2.43874 -0.474553 1.56357e-22)
-(2.46663 -0.470525 5.17037e-22)
-(2.49452 -0.4663 -3.22387e-23)
-(2.52241 -0.461901 -1.05998e-22)
-(2.55031 -0.457356 -1.81167e-22)
-(2.57822 -0.45269 -4.87214e-23)
-(2.60615 -0.447931 -2.85875e-23)
-(2.63412 -0.443107 -2.51389e-22)
-(2.66214 -0.438246 -4.36794e-23)
-(2.69023 -0.433376 1.57785e-22)
-(2.71841 -0.428526 -1.32786e-22)
-(2.74672 -0.423726 1.77435e-22)
-(2.77517 -0.419001 2.90358e-22)
-(2.80382 -0.414377 5.69783e-22)
-(2.83268 -0.409876 1.14015e-21)
-(2.86182 -0.405516 9.82961e-22)
-(2.89127 -0.401306 1.19052e-21)
-(2.92109 -0.397244 4.595e-22)
-(2.95134 -0.393312 4.86106e-22)
-(2.9821 -0.389476 -5.30979e-24)
-(3.01347 -0.385677 6.93961e-23)
-(3.04554 -0.381835 2.35304e-22)
-(3.07849 -0.377839 1.06996e-22)
-(3.11244 -0.373571 -1.28865e-22)
-(3.1479 -0.368876 1.19031e-21)
-(3.1843 -0.363705 9.6043e-22)
-(3.225 -0.357827 7.78064e-22)
-(3.26057 -0.351856 2.06876e-21)
-(-0.00316405 0.315746 2.3697e-22)
-(-0.00952797 0.399141 -4.23908e-22)
-(-0.0163087 0.42337 -5.59808e-23)
-(-0.0229673 0.433404 7.05532e-22)
-(-0.0290701 0.437854 1.27133e-21)
-(-0.0343753 0.43945 5.70946e-22)
-(-0.0388038 0.439388 2.42677e-22)
-(-0.042345 0.438309 -2.30417e-23)
-(-0.0450273 0.436598 -3.19617e-22)
-(-0.0469037 0.434505 -2.69654e-22)
-(-0.0480425 0.432195 -4.14793e-22)
-(-0.0485197 0.429776 -2.7107e-22)
-(-0.0484123 0.427321 -3.13375e-22)
-(-0.0477934 0.424873 8.79531e-23)
-(-0.0467297 0.42246 1.07603e-22)
-(-0.0452797 0.420097 3.08003e-22)
-(-0.0434931 0.417789 5.16575e-22)
-(-0.0414109 0.415541 3.09331e-22)
-(-0.0390656 0.413353 1.97443e-22)
-(-0.0364826 0.411222 1.6001e-22)
-(-0.0336797 0.409145 2.28151e-22)
-(-0.0306674 0.407118 4.08263e-22)
-(-0.0274513 0.405135 -6.39597e-24)
-(-0.0240313 0.403192 6.72417e-23)
-(-0.0204027 0.401282 2.2832e-22)
-(-0.0165556 0.399399 5.39823e-22)
-(-0.012476 0.397531 2.39537e-22)
-(-0.00814608 0.39567 4.07656e-22)
-(-0.00354471 0.393801 2.34263e-22)
-(0.00135595 0.391911 4.2666e-24)
-(0.00657891 0.389989 4.21958e-22)
-(0.0121557 0.388021 3.42972e-22)
-(0.0181199 0.385989 2.01939e-22)
-(0.0245064 0.383879 3.42223e-23)
-(0.0313516 0.381676 -1.22219e-22)
-(0.0386921 0.379364 -1.72827e-22)
-(0.046565 0.376929 -2.7698e-22)
-(0.0550062 0.374358 -5.15537e-23)
-(0.0640507 0.371638 2.31745e-22)
-(0.0737315 0.368755 3.97575e-23)
-(0.0840793 0.365698 -9.1435e-23)
-(0.0951217 0.362458 -2.17047e-22)
-(0.106883 0.359026 -2.85986e-22)
-(0.119383 0.355393 -3.41184e-22)
-(0.132638 0.351557 -6.7187e-22)
-(0.14666 0.347513 -1.16366e-22)
-(0.161456 0.343255 1.5697e-22)
-(0.177028 0.338781 3.32425e-22)
-(0.193376 0.334089 -1.79965e-22)
-(0.210493 0.329176 -1.5884e-22)
-(0.228371 0.324043 -2.99631e-22)
-(0.246997 0.318689 -6.67914e-22)
-(0.266355 0.313115 -9.05658e-22)
-(0.286426 0.307325 -4.45485e-22)
-(0.307187 0.301322 -2.29515e-22)
-(0.328613 0.295109 -1.02443e-22)
-(0.350676 0.288692 4.02376e-23)
-(0.373347 0.282076 2.87731e-22)
-(0.396592 0.275266 1.10062e-22)
-(0.420377 0.268268 1.44756e-23)
-(0.444666 0.261085 4.68564e-22)
-(0.469424 0.253723 2.32025e-22)
-(0.494615 0.246188 -1.15924e-22)
-(0.520208 0.238482 -3.66361e-22)
-(0.546169 0.230609 -1.31678e-22)
-(0.572466 0.222575 -3.31654e-22)
-(0.599068 0.214384 -4.61948e-22)
-(0.625943 0.206041 -3.52191e-22)
-(0.653059 0.197548 -3.86575e-22)
-(0.680388 0.188905 -4.74728e-22)
-(0.707904 0.180112 -6.49363e-22)
-(0.735584 0.171168 -6.05279e-22)
-(0.763407 0.162073 -3.42945e-22)
-(0.79135 0.152825 -6.5964e-23)
-(0.819393 0.143421 -1.10804e-22)
-(0.847519 0.13385 -3.49426e-22)
-(0.875716 0.124101 -1.19432e-22)
-(0.903973 0.114166 9.09304e-23)
-(0.932277 0.104034 4.93892e-22)
-(0.96062 0.0936792 1.84454e-22)
-(0.988999 0.0830752 2.80682e-23)
-(1.01742 0.0722012 1.59905e-22)
-(1.04587 0.0610297 -1.69586e-22)
-(1.07436 0.0495217 -7.14329e-23)
-(1.10291 0.0376461 2.55258e-22)
-(1.13154 0.0253636 3.01803e-22)
-(1.16027 0.012607 6.30617e-23)
-(1.18908 -0.000681988 -5.67094e-22)
-(1.21815 -0.0144708 -4.15328e-22)
-(1.24719 -0.0286387 -4.11448e-22)
-(1.27579 -0.0430498 -1.76972e-22)
-(1.30392 -0.0575653 -7.36863e-23)
-(1.33156 -0.0721359 -1.95751e-22)
-(1.35875 -0.0867522 2.18614e-22)
-(1.38551 -0.101383 1.77654e-22)
-(1.41187 -0.116008 1.27377e-22)
-(1.43785 -0.13061 3.01886e-22)
-(1.46348 -0.145171 2.43947e-22)
-(1.48879 -0.159674 4.11631e-22)
-(1.5138 -0.174103 3.22328e-22)
-(1.53853 -0.18844 1.10515e-22)
-(1.563 -0.202669 1.91175e-22)
-(1.58724 -0.21677 3.92102e-22)
-(1.61127 -0.230726 2.80741e-22)
-(1.63511 -0.24452 2.32731e-22)
-(1.65879 -0.258135 1.52512e-22)
-(1.68232 -0.271556 1.02943e-22)
-(1.70572 -0.284769 2.50572e-22)
-(1.72901 -0.297757 2.04855e-22)
-(1.75221 -0.310507 1.0699e-22)
-(1.77532 -0.323004 1.52349e-22)
-(1.79837 -0.335233 1.76006e-22)
-(1.82136 -0.347181 1.30808e-23)
-(1.84431 -0.358833 1.29396e-24)
-(1.86723 -0.370175 1.10049e-22)
-(1.89013 -0.381194 1.23041e-22)
-(1.91301 -0.391876 1.46016e-22)
-(1.93588 -0.402205 1.92254e-22)
-(1.95876 -0.412167 1.5824e-22)
-(1.98164 -0.421751 8.09794e-23)
-(2.00454 -0.430946 1.95637e-22)
-(2.02746 -0.439739 1.73988e-22)
-(2.05041 -0.448123 1.83216e-22)
-(2.07338 -0.456086 1.7543e-22)
-(2.09638 -0.463621 1.3329e-22)
-(2.11941 -0.470719 1.75479e-22)
-(2.14248 -0.477371 2.63364e-22)
-(2.16558 -0.483569 2.02045e-22)
-(2.18871 -0.489307 1.5032e-22)
-(2.21188 -0.494581 2.14075e-22)
-(2.23509 -0.499387 1.47035e-22)
-(2.25833 -0.503724 1.01646e-22)
-(2.28161 -0.50759 -4.00363e-23)
-(2.30491 -0.510985 5.01772e-23)
-(2.32825 -0.513907 9.76028e-23)
-(2.35161 -0.516357 5.88747e-23)
-(2.37499 -0.518341 3.4509e-22)
-(2.3984 -0.519862 7.33413e-23)
-(2.42183 -0.520927 -2.85723e-22)
-(2.44527 -0.521543 -2.18243e-22)
-(2.46873 -0.521716 -2.30826e-23)
-(2.4922 -0.521456 -2.13506e-22)
-(2.51567 -0.520776 -3.03124e-22)
-(2.53915 -0.519686 1.57848e-22)
-(2.56263 -0.518201 7.84652e-23)
-(2.58611 -0.516334 2.0876e-22)
-(2.60959 -0.514103 4.43972e-22)
-(2.63307 -0.511525 2.87684e-22)
-(2.65654 -0.508617 2.65711e-22)
-(2.68 -0.5054 3.33915e-22)
-(2.70346 -0.501896 4.52545e-22)
-(2.72692 -0.498125 -4.89643e-22)
-(2.75038 -0.49411 7.00506e-24)
-(2.77385 -0.489877 -6.74888e-23)
-(2.79732 -0.48545 1.98382e-22)
-(2.82081 -0.480854 2.92136e-22)
-(2.84433 -0.476118 2.46194e-23)
-(2.86788 -0.471268 -4.45291e-22)
-(2.89149 -0.466333 -4.68717e-22)
-(2.91516 -0.461343 5.51039e-23)
-(2.93893 -0.456327 2.58092e-22)
-(2.9628 -0.451315 3.20615e-22)
-(2.9868 -0.446338 2.98052e-22)
-(3.01097 -0.441426 -2.53454e-22)
-(3.03535 -0.436608 1.78539e-22)
-(3.05996 -0.43191 -8.5245e-23)
-(3.08485 -0.427357 8.55797e-22)
-(3.11006 -0.422968 2.1276e-22)
-(3.13566 -0.418754 6.3447e-22)
-(3.1617 -0.414717 7.44389e-22)
-(3.18825 -0.410843 7.25125e-22)
-(3.21539 -0.407105 6.67613e-22)
-(3.24323 -0.403452 -5.17607e-22)
-(3.27188 -0.399816 -1.82959e-22)
-(3.30151 -0.396101 1.01579e-22)
-(3.33225 -0.39221 -7.2771e-23)
-(3.36458 -0.388006 1.31052e-21)
-(3.39799 -0.38347 1.89623e-22)
-(3.43562 -0.378333 6.35688e-22)
-(3.46847 -0.373323 1.86984e-22)
-(-0.004061 0.329329 -2.31697e-21)
-(-0.011347 0.414695 -1.63997e-21)
-(-0.0184171 0.438083 -5.25866e-22)
-(-0.0248712 0.446431 -4.66571e-22)
-(-0.0302745 0.448827 -1.78945e-22)
-(-0.0344552 0.448229 1.96325e-22)
-(-0.0374127 0.445982 3.55667e-22)
-(-0.039216 0.44282 -1.22665e-22)
-(-0.0399659 0.439192 -9.59242e-23)
-(-0.0397772 0.435378 -2.29761e-22)
-(-0.0387672 0.431554 1.17732e-22)
-(-0.0370479 0.427825 1.03548e-22)
-(-0.0347201 0.424248 1.70461e-22)
-(-0.0318697 0.420844 3.59155e-22)
-(-0.0285666 0.417615 1.60492e-22)
-(-0.0248653 0.414553 4.61775e-22)
-(-0.0208066 0.41164 3.81463e-22)
-(-0.0164181 0.408858 3.20215e-22)
-(-0.0117184 0.406188 2.89388e-22)
-(-0.00671633 0.403611 3.19935e-22)
-(-0.00141109 0.401109 7.61608e-22)
-(0.00420725 0.398664 2.57069e-22)
-(0.0101456 0.396264 5.65409e-22)
-(0.0164286 0.393893 5.02408e-22)
-(0.0230819 0.391534 5.42566e-22)
-(0.0301371 0.38917 1.70881e-22)
-(0.0376299 0.386787 1.0808e-22)
-(0.0455998 0.384367 -3.15089e-23)
-(0.0540889 0.381894 1.91915e-22)
-(0.0631429 0.379349 4.78736e-22)
-(0.0728096 0.376717 6.29756e-22)
-(0.08314 0.373977 7.11018e-22)
-(0.0941853 0.371114 2.53705e-22)
-(0.105996 0.36811 -6.2263e-23)
-(0.118622 0.364952 -5.03653e-22)
-(0.132109 0.361626 -4.45361e-22)
-(0.146499 0.358122 -8.16687e-22)
-(0.161829 0.35443 -9.62048e-22)
-(0.178132 0.350542 -1.12929e-21)
-(0.195432 0.346454 -4.76004e-22)
-(0.213746 0.342162 -3.03764e-22)
-(0.233087 0.337663 -3.54525e-22)
-(0.253456 0.332958 -6.13815e-22)
-(0.274848 0.32805 -2.0002e-22)
-(0.297252 0.322943 2.74751e-22)
-(0.320648 0.317643 3.65209e-22)
-(0.345011 0.312153 7.00224e-22)
-(0.370308 0.30648 6.21314e-22)
-(0.396501 0.300629 1.60617e-22)
-(0.423551 0.294603 -3.66835e-23)
-(0.451412 0.288408 -1.29006e-22)
-(0.480039 0.282047 2.91697e-23)
-(0.509385 0.275528 -2.04361e-22)
-(0.539399 0.268855 -2.58555e-22)
-(0.570029 0.262036 -3.36562e-22)
-(0.601225 0.255076 -5.74333e-22)
-(0.632934 0.247982 -3.91532e-22)
-(0.665102 0.240761 -3.01673e-22)
-(0.697678 0.233418 -1.22745e-22)
-(0.73061 0.225959 2.56366e-22)
-(0.763844 0.218387 -3.12918e-22)
-(0.797333 0.210702 -6.03936e-22)
-(0.831031 0.202906 -2.88114e-22)
-(0.864898 0.194997 -2.37165e-22)
-(0.898898 0.186976 -1.61819e-22)
-(0.932995 0.178847 -6.14088e-23)
-(0.967153 0.170612 2.0525e-22)
-(1.00134 0.162272 -1.63586e-22)
-(1.03552 0.153829 -3.48865e-22)
-(1.06968 0.145274 -3.8866e-22)
-(1.10378 0.136602 -3.17769e-22)
-(1.1378 0.127808 -4.66531e-22)
-(1.17175 0.11889 -3.58531e-22)
-(1.20559 0.109848 -3.49545e-22)
-(1.23931 0.100671 -4.77835e-22)
-(1.2729 0.0913411 -3.70145e-22)
-(1.30637 0.0818437 -1.30925e-22)
-(1.3397 0.0721692 -1.74685e-22)
-(1.3729 0.0623084 -1.04472e-22)
-(1.40596 0.0522273 -5.70658e-23)
-(1.4389 0.0418903 -5.18801e-22)
-(1.47171 0.0312836 -9.32249e-22)
-(1.50443 0.0203771 -4.87574e-22)
-(1.53708 0.00910105 -4.19836e-22)
-(1.56964 -0.00261974 -6.26728e-23)
-(1.6022 -0.0148073 -9.28612e-23)
-(1.63472 -0.027401 -1.54512e-22)
-(1.66693 -0.0403554 2.9485e-22)
-(1.69844 -0.053588 3.56884e-22)
-(1.7293 -0.0669967 2.20384e-22)
-(1.75951 -0.0805463 -3.51797e-23)
-(1.78907 -0.0942247 -1.00347e-22)
-(1.81798 -0.108005 -1.59113e-22)
-(1.84628 -0.121866 -2.14804e-22)
-(1.87399 -0.135779 -1.01592e-22)
-(1.90113 -0.149722 1.16987e-23)
-(1.92773 -0.163674 -2.85809e-23)
-(1.95382 -0.177616 2.43552e-22)
-(1.97943 -0.191531 3.28663e-22)
-(2.00457 -0.205401 3.25602e-22)
-(2.02927 -0.219206 8.44556e-23)
-(2.05357 -0.232929 -1.42387e-22)
-(2.07747 -0.24655 8.2191e-23)
-(2.10101 -0.260052 2.26904e-22)
-(2.12421 -0.273414 -8.62836e-25)
-(2.14709 -0.286621 3.67813e-22)
-(2.16967 -0.299654 4.36314e-22)
-(2.19197 -0.312497 1.81071e-22)
-(2.21402 -0.325134 1.74379e-22)
-(2.23582 -0.337548 -5.75164e-23)
-(2.2574 -0.349723 -3.51598e-23)
-(2.27878 -0.361645 -1.06584e-22)
-(2.29996 -0.373296 2.84933e-22)
-(2.32096 -0.384664 2.59259e-22)
-(2.3418 -0.395731 8.18358e-23)
-(2.36248 -0.406484 1.02993e-22)
-(2.38301 -0.416907 1.3271e-22)
-(2.40341 -0.426985 2.48252e-22)
-(2.42369 -0.436704 2.52702e-22)
-(2.44385 -0.446051 -8.73445e-23)
-(2.46391 -0.455014 8.32623e-24)
-(2.48386 -0.463581 4.05549e-22)
-(2.50373 -0.471741 1.43381e-22)
-(2.52351 -0.479485 3.34936e-22)
-(2.54321 -0.486802 2.02879e-22)
-(2.56284 -0.493685 -4.80692e-23)
-(2.5824 -0.500123 -5.35241e-24)
-(2.60188 -0.50611 1.32082e-22)
-(2.62131 -0.511638 1.18292e-22)
-(2.64068 -0.516703 2.39662e-22)
-(2.66 -0.521302 1.06846e-22)
-(2.67927 -0.525431 1.8975e-22)
-(2.69848 -0.529089 2.72362e-22)
-(2.71765 -0.532276 1.75033e-22)
-(2.73677 -0.53499 2.8748e-22)
-(2.75586 -0.537234 3.71554e-23)
-(2.7749 -0.53901 2.07642e-22)
-(2.7939 -0.540324 1.44445e-22)
-(2.81286 -0.541181 -2.35363e-22)
-(2.83179 -0.541588 -1.96333e-22)
-(2.85069 -0.541554 -9.99592e-23)
-(2.86955 -0.541086 -5.53267e-23)
-(2.88838 -0.540198 -2.56952e-22)
-(2.90718 -0.538901 -2.39838e-22)
-(2.92596 -0.53721 2.9861e-22)
-(2.94471 -0.535138 6.5158e-22)
-(2.96345 -0.532702 2.82799e-22)
-(2.98216 -0.529921 -6.52968e-23)
-(3.00086 -0.526813 3.06007e-22)
-(3.01956 -0.523398 1.88646e-22)
-(3.03824 -0.519698 -3.70413e-22)
-(3.05694 -0.515735 -4.47364e-22)
-(3.07564 -0.511534 -4.07462e-22)
-(3.09436 -0.507118 3.53989e-22)
-(3.1131 -0.502514 4.05046e-22)
-(3.13189 -0.497749 1.22209e-22)
-(3.15073 -0.49285 4.48117e-22)
-(3.16963 -0.487847 1.28721e-22)
-(3.18862 -0.482769 -3.22365e-22)
-(3.20772 -0.477647 -2.06615e-22)
-(3.22695 -0.472512 2.42293e-22)
-(3.24632 -0.467395 5.12634e-22)
-(3.26589 -0.462329 4.50266e-22)
-(3.28566 -0.457344 9.3626e-23)
-(3.3057 -0.452473 -3.04492e-22)
-(3.32602 -0.447743 -2.27158e-22)
-(3.34669 -0.44318 4.60258e-22)
-(3.36776 -0.438806 -2.58409e-22)
-(3.38927 -0.434635 8.04524e-22)
-(3.4113 -0.430672 3.48511e-22)
-(3.43392 -0.426908 3.33291e-22)
-(3.45722 -0.423322 9.53895e-22)
-(3.48132 -0.419872 1.65965e-21)
-(3.50632 -0.416499 6.99962e-22)
-(3.53242 -0.413126 2.73129e-22)
-(3.55973 -0.409668 2.10271e-22)
-(3.58872 -0.406006 2.15875e-22)
-(3.61892 -0.402147 -7.02113e-23)
-(3.65328 -0.39778 6.77162e-22)
-(3.68324 -0.393747 1.06453e-21)
-(-0.00561035 0.342804 9.14346e-22)
-(-0.0150774 0.428685 8.28485e-22)
-(-0.0233866 0.45044 7.17583e-22)
-(-0.0302069 0.456458 3.73084e-22)
-(-0.0351739 0.4563 -4.28097e-23)
-(-0.0383006 0.453178 2.73761e-23)
-(-0.0397575 0.448581 -3.29292e-23)
-(-0.0397586 0.443319 6.7137e-22)
-(-0.0385161 0.437862 8.21984e-22)
-(-0.0362266 0.43249 5.50412e-22)
-(-0.0330627 0.427356 -6.13429e-23)
-(-0.0291688 0.422532 4.08777e-22)
-(-0.0246607 0.418037 4.94831e-22)
-(-0.0196233 0.413855 7.33069e-23)
-(-0.0141119 0.409953 5.68642e-22)
-(-0.00815975 0.406287 -1.54797e-23)
-(-0.00178193 0.402817 1.22169e-22)
-(0.00502576 0.399502 2.36746e-22)
-(0.0122637 0.396312 2.7489e-22)
-(0.0199629 0.393209 1.10215e-21)
-(0.0281568 0.39016 8.70628e-22)
-(0.0368891 0.387138 1.18873e-21)
-(0.0462103 0.384119 8.23019e-22)
-(0.0561793 0.381077 9.02556e-22)
-(0.0668592 0.377987 5.34654e-22)
-(0.0783174 0.374829 4.09267e-22)
-(0.0906242 0.371582 6.89884e-23)
-(0.103851 0.368225 -8.40634e-23)
-(0.118067 0.364739 -4.5785e-23)
-(0.133342 0.361103 -6.54298e-23)
-(0.149744 0.357299 -4.29329e-22)
-(0.167338 0.353308 -4.43213e-22)
-(0.18618 0.349117 -1.33211e-22)
-(0.206321 0.344715 5.15212e-23)
-(0.2278 0.340099 5.28969e-22)
-(0.250641 0.335264 2.25334e-22)
-(0.274859 0.330213 5.77388e-22)
-(0.300453 0.324951 5.19081e-22)
-(0.327411 0.319484 4.26334e-22)
-(0.355705 0.313821 1.85315e-23)
-(0.385299 0.307975 -5.17357e-23)
-(0.416144 0.301957 -4.2673e-23)
-(0.448182 0.295781 -1.31277e-22)
-(0.481348 0.289462 -2.83043e-23)
-(0.515571 0.283015 1.90231e-22)
-(0.550774 0.276454 5.35824e-22)
-(0.586877 0.269792 1.40721e-22)
-(0.623797 0.263041 -3.0316e-22)
-(0.66145 0.256207 -1.29539e-22)
-(0.699756 0.249297 -1.93008e-22)
-(0.738637 0.242313 -4.65798e-22)
-(0.778019 0.23526 -1.61711e-22)
-(0.817829 0.228143 1.71451e-22)
-(0.857997 0.220965 -4.29988e-23)
-(0.898457 0.213731 -1.63947e-22)
-(0.939144 0.206443 -3.62953e-22)
-(0.979997 0.199106 -7.30382e-22)
-(1.02096 0.191721 -1.01287e-21)
-(1.06197 0.184291 -7.6762e-22)
-(1.10299 0.176818 -5.12225e-22)
-(1.14396 0.169301 -1.60997e-22)
-(1.18483 0.161733 -6.41801e-23)
-(1.22557 0.154103 -7.62394e-23)
-(1.26615 0.146407 -1.17687e-22)
-(1.30655 0.138641 -1.44228e-22)
-(1.34673 0.130805 -1.93322e-22)
-(1.38667 0.122898 -2.57808e-22)
-(1.42636 0.11492 -6.46022e-23)
-(1.46576 0.106868 5.55174e-22)
-(1.50487 0.0987271 4.45924e-22)
-(1.54367 0.0904796 3.58272e-22)
-(1.58216 0.0821196 1.23418e-22)
-(1.62035 0.0736451 -3.09008e-22)
-(1.65823 0.065055 -3.15007e-22)
-(1.69578 0.0563359 -1.20984e-22)
-(1.73303 0.0474598 -1.06962e-23)
-(1.76998 0.0384073 -6.41047e-22)
-(1.80664 0.0291712 -4.91001e-22)
-(1.84302 0.0197507 -9.33965e-22)
-(1.87917 0.0101 -1.04798e-21)
-(1.91507 0.000161344 -4.75417e-22)
-(1.95072 -0.0101052 -4.42427e-22)
-(1.98622 -0.0207375 -3.22455e-22)
-(2.02159 -0.0317084 2.77935e-22)
-(2.05657 -0.0429978 -5.59133e-23)
-(2.09088 -0.0546016 -1.91892e-22)
-(2.12438 -0.066463 -1.46882e-23)
-(2.15719 -0.0785364 1.11245e-22)
-(2.18923 -0.0908206 2.09913e-22)
-(2.22053 -0.103318 3.07299e-23)
-(2.25108 -0.116 2.19542e-23)
-(2.28088 -0.128839 -1.99613e-22)
-(2.30995 -0.141808 8.27476e-23)
-(2.33831 -0.154885 4.73596e-22)
-(2.36598 -0.168045 3.29285e-22)
-(2.39298 -0.181265 1.12903e-22)
-(2.41934 -0.194524 1.63954e-22)
-(2.44509 -0.207804 2.14005e-22)
-(2.47024 -0.221084 3.46338e-22)
-(2.49483 -0.234346 5.24527e-22)
-(2.51887 -0.24757 2.98061e-22)
-(2.54239 -0.260738 -7.60618e-25)
-(2.56541 -0.273829 -8.6158e-23)
-(2.58796 -0.286824 -1.01533e-22)
-(2.61006 -0.299704 1.21469e-22)
-(2.63172 -0.31245 1.89574e-22)
-(2.65298 -0.325043 -2.22819e-23)
-(2.67385 -0.337465 6.6385e-23)
-(2.69435 -0.3497 9.62695e-23)
-(2.71451 -0.361728 2.98635e-22)
-(2.73432 -0.373534 1.16792e-22)
-(2.75383 -0.3851 8.27209e-23)
-(2.77303 -0.39641 1.2364e-22)
-(2.79194 -0.407447 3.51221e-22)
-(2.81058 -0.418196 9.69028e-23)
-(2.82895 -0.428641 9.02852e-23)
-(2.84708 -0.438767 8.71158e-23)
-(2.86497 -0.448557 1.27088e-22)
-(2.88263 -0.457997 8.23493e-23)
-(2.90008 -0.467073 1.85013e-22)
-(2.91732 -0.475773 5.09181e-23)
-(2.93436 -0.484083 -8.33837e-23)
-(2.95122 -0.491993 3.03487e-22)
-(2.96789 -0.499492 1.82994e-22)
-(2.9844 -0.50657 1.44069e-22)
-(3.00073 -0.513218 3.54221e-23)
-(3.01691 -0.519426 -3.45468e-22)
-(3.03294 -0.525187 -2.05271e-22)
-(3.04882 -0.530494 3.81781e-22)
-(3.06457 -0.535342 3.0955e-22)
-(3.08018 -0.539726 -6.67576e-23)
-(3.09566 -0.543645 -2.34569e-23)
-(3.11103 -0.547095 2.42515e-22)
-(3.12627 -0.550077 1.63399e-22)
-(3.14141 -0.55259 2.35373e-22)
-(3.15645 -0.554635 4.16198e-22)
-(3.17138 -0.556215 9.64017e-23)
-(3.18622 -0.557336 -1.80436e-23)
-(3.20098 -0.558003 -1.44776e-22)
-(3.21565 -0.558222 -1.82977e-22)
-(3.23024 -0.558002 -1.16013e-22)
-(3.24476 -0.557353 7.75374e-23)
-(3.25922 -0.556286 -2.33131e-22)
-(3.27362 -0.554814 2.06938e-23)
-(3.28797 -0.552949 -8.77292e-23)
-(3.30227 -0.550709 2.25203e-22)
-(3.31653 -0.548108 1.63983e-22)
-(3.33077 -0.545166 4.16267e-22)
-(3.34498 -0.541901 2.78546e-22)
-(3.35918 -0.538334 -2.61806e-22)
-(3.37337 -0.534487 -4.67907e-23)
-(3.38757 -0.530383 1.25965e-22)
-(3.40179 -0.526046 -9.77278e-23)
-(3.41604 -0.521501 -1.34345e-22)
-(3.43033 -0.516776 6.38513e-23)
-(3.44468 -0.511898 4.73312e-23)
-(3.45911 -0.506895 -3.14455e-24)
-(3.47363 -0.501798 3.47686e-22)
-(3.48827 -0.496638 4.68898e-22)
-(3.50305 -0.491445 3.24849e-22)
-(3.51799 -0.486253 -1.94307e-22)
-(3.53313 -0.481094 4.06998e-22)
-(3.54849 -0.476002 6.42433e-22)
-(3.56412 -0.47101 -1.67466e-24)
-(3.58006 -0.466151 -1.61249e-22)
-(3.59634 -0.461455 1.38611e-22)
-(3.61302 -0.456951 -5.7521e-22)
-(3.63015 -0.452661 3.07371e-22)
-(3.64781 -0.448604 6.64887e-23)
-(3.66604 -0.444788 5.86155e-22)
-(3.68495 -0.44121 9.42711e-22)
-(3.70463 -0.437853 9.4949e-22)
-(3.72518 -0.434685 2.6167e-22)
-(3.74674 -0.431659 2.02683e-23)
-(3.76948 -0.428708 2.25827e-22)
-(3.79354 -0.425766 4.88393e-22)
-(3.81937 -0.422725 -4.98732e-22)
-(3.84652 -0.419614 -1.48889e-22)
-(3.87776 -0.416083 5.97584e-23)
-(3.90505 -0.413087 -8.93502e-22)
-(-0.0082635 0.359339 -1.2475e-21)
-(-0.0211352 0.443687 1.03432e-21)
-(-0.0310984 0.462214 -7.01253e-22)
-(-0.0382929 0.464805 -1.29105e-21)
-(-0.0425987 0.461449 -6.54047e-22)
-(-0.0443717 0.455501 -3.8419e-23)
-(-0.0440413 0.448502 2.31803e-22)
-(-0.0420079 0.441245 6.43169e-22)
-(-0.0386019 0.434158 9.18605e-22)
-(-0.0340901 0.427465 3.94591e-22)
-(-0.0286803 0.421259 -2.84356e-22)
-(-0.0225259 0.415559 -3.68636e-22)
-(-0.0157359 0.410333 -1.70052e-24)
-(-0.00836763 0.405508 -1.24747e-22)
-(-0.000439262 0.401007 -5.87712e-22)
-(0.00805732 0.396765 -1.84665e-22)
-(0.0171451 0.39272 -2.32694e-22)
-(0.0268886 0.388809 2.3141e-22)
-(0.0373571 0.38498 6.9475e-22)
-(0.0486377 0.381183 5.25983e-22)
-(0.0608242 0.377373 1.44913e-22)
-(0.0740203 0.373512 1.75963e-22)
-(0.0883368 0.369565 4.7791e-22)
-(0.103888 0.365498 4.75214e-22)
-(0.12079 0.361281 7.7157e-23)
-(0.139152 0.356889 -7.08605e-22)
-(0.159077 0.352301 -3.72624e-22)
-(0.180655 0.347501 -5.27028e-22)
-(0.203957 0.342477 -3.52014e-22)
-(0.229036 0.337218 -4.25458e-22)
-(0.255931 0.331713 -1.02649e-21)
-(0.284663 0.325962 -1.05784e-21)
-(0.315229 0.31997 -5.04161e-22)
-(0.347605 0.313749 -1.6847e-22)
-(0.381744 0.307315 1.39172e-22)
-(0.417578 0.300691 2.27749e-22)
-(0.455022 0.293898 2.26193e-22)
-(0.493977 0.286961 -2.53141e-22)
-(0.534331 0.279904 1.67694e-22)
-(0.575967 0.27275 1.40284e-22)
-(0.618762 0.265523 1.70449e-22)
-(0.662592 0.258243 5.28956e-22)
-(0.707332 0.250929 2.08773e-22)
-(0.752862 0.243598 1.06187e-22)
-(0.799063 0.236267 2.67967e-24)
-(0.845822 0.228948 -4.24091e-22)
-(0.893031 0.221653 -5.43051e-22)
-(0.940586 0.214389 -3.03469e-22)
-(0.988391 0.207157 -1.79261e-22)
-(1.03636 0.199951 -7.41459e-23)
-(1.08442 0.192767 1.54408e-22)
-(1.13249 0.185604 -3.52018e-22)
-(1.18053 0.178458 -2.86903e-22)
-(1.22846 0.171329 2.83089e-23)
-(1.27622 0.164213 1.6554e-23)
-(1.32378 0.157109 1.40891e-23)
-(1.37109 0.150012 2.58456e-22)
-(1.4181 0.142922 3.26054e-22)
-(1.46478 0.135836 -3.14096e-23)
-(1.5111 0.128751 -1.21731e-24)
-(1.55701 0.121662 3.95618e-22)
-(1.6025 0.114553 5.97148e-22)
-(1.64756 0.107405 1.24632e-22)
-(1.69216 0.100207 -3.82193e-23)
-(1.73631 0.0929552 -1.24296e-22)
-(1.77998 0.0856454 -2.05806e-22)
-(1.82318 0.078276 2.40696e-22)
-(1.8659 0.0708458 3.50216e-22)
-(1.90813 0.0633499 2.63566e-22)
-(1.94988 0.0557631 3.65525e-22)
-(1.99115 0.0480616 1.58639e-22)
-(2.03196 0.0402406 1.1621e-22)
-(2.0723 0.0322987 2.45345e-22)
-(2.1122 0.0242372 1.88496e-22)
-(2.15168 0.0160417 -6.22226e-23)
-(2.19077 0.00767392 -2.58855e-22)
-(2.22946 -0.000892865 -3.73191e-22)
-(2.26777 -0.00967968 -2.23188e-22)
-(2.30569 -0.0187445 -1.72612e-22)
-(2.3435 -0.0280836 -1.4112e-22)
-(2.38093 -0.0376309 -2.56688e-22)
-(2.41789 -0.0474351 3.27075e-22)
-(2.45417 -0.0575224 4.03764e-22)
-(2.48964 -0.0678536 3.96982e-22)
-(2.52442 -0.0784028 2.85443e-22)
-(2.55845 -0.0891815 5.39576e-22)
-(2.59172 -0.100218 -1.09411e-22)
-(2.62421 -0.111504 2.18387e-23)
-(2.65592 -0.123019 6.99917e-22)
-(2.68685 -0.134752 6.28101e-22)
-(2.717 -0.146682 2.09448e-22)
-(2.74637 -0.158786 5.46448e-22)
-(2.77498 -0.17104 5.5786e-22)
-(2.80285 -0.183422 1.53824e-22)
-(2.82998 -0.19591 2.50535e-22)
-(2.8564 -0.208482 2.83334e-22)
-(2.88213 -0.221117 4.04447e-22)
-(2.9072 -0.233796 1.14189e-22)
-(2.93162 -0.246499 5.57042e-23)
-(2.95541 -0.259205 -1.96227e-23)
-(2.9786 -0.271896 1.50384e-22)
-(3.00121 -0.284551 2.6166e-22)
-(3.02326 -0.29715 -9.2698e-23)
-(3.04476 -0.309673 3.90105e-23)
-(3.06575 -0.3221 -2.13525e-22)
-(3.08624 -0.334412 -4.54568e-23)
-(3.10624 -0.346588 5.91989e-23)
-(3.12579 -0.358611 3.94557e-23)
-(3.14489 -0.37046 1.69357e-23)
-(3.16356 -0.382119 2.48383e-22)
-(3.18183 -0.393569 9.78499e-23)
-(3.1997 -0.404792 1.8294e-22)
-(3.21719 -0.415772 2.5099e-22)
-(3.23431 -0.42649 3.79252e-23)
-(3.25108 -0.43693 1.9592e-22)
-(3.26751 -0.447076 7.63748e-23)
-(3.28361 -0.456912 3.02958e-23)
-(3.29939 -0.466421 3.43646e-23)
-(3.31487 -0.475589 4.28409e-23)
-(3.33005 -0.484402 2.28703e-22)
-(3.34495 -0.492845 1.24693e-22)
-(3.35957 -0.500906 -1.44024e-22)
-(3.37392 -0.508573 2.39141e-22)
-(3.38801 -0.515836 -2.78357e-23)
-(3.40186 -0.522683 -1.82059e-22)
-(3.41547 -0.529105 2.30938e-22)
-(3.42884 -0.535093 2.82394e-23)
-(3.44199 -0.54064 5.97771e-23)
-(3.45492 -0.545737 2.42227e-22)
-(3.46765 -0.550381 1.6082e-22)
-(3.48017 -0.554566 1.4269e-22)
-(3.4925 -0.55829 -9.56304e-23)
-(3.50465 -0.561549 -7.38999e-23)
-(3.51661 -0.564345 7.52654e-23)
-(3.52841 -0.566675 1.79001e-22)
-(3.54005 -0.568543 4.37444e-22)
-(3.55154 -0.569951 2.05092e-22)
-(3.56288 -0.570903 1.25804e-22)
-(3.57408 -0.571405 3.90249e-23)
-(3.58516 -0.571465 -2.14771e-22)
-(3.59611 -0.57109 -1.44681e-22)
-(3.60696 -0.570291 -4.74566e-23)
-(3.6177 -0.569078 2.05768e-22)
-(3.62836 -0.567464 1.0575e-22)
-(3.63893 -0.565464 1.80402e-23)
-(3.64943 -0.563092 2.67979e-23)
-(3.65988 -0.560366 -7.75567e-23)
-(3.67027 -0.557304 7.8061e-23)
-(3.68063 -0.553925 9.70595e-23)
-(3.69096 -0.55025 1.39589e-22)
-(3.70129 -0.546301 -1.41548e-23)
-(3.71161 -0.542103 3.4983e-22)
-(3.72196 -0.537679 -1.66991e-22)
-(3.73233 -0.533055 -1.58542e-23)
-(3.74276 -0.528259 2.44382e-22)
-(3.75326 -0.52332 -1.53512e-23)
-(3.76385 -0.518266 -8.34697e-23)
-(3.77455 -0.513128 3.31171e-22)
-(3.78539 -0.507939 2.74673e-22)
-(3.7964 -0.502731 1.4834e-22)
-(3.80759 -0.497538 1.29495e-22)
-(3.81901 -0.492393 2.32068e-22)
-(3.83069 -0.487333 3.51654e-22)
-(3.84267 -0.482392 3.22314e-22)
-(3.85499 -0.477604 1.07952e-22)
-(3.86771 -0.473002 1.33849e-22)
-(3.88087 -0.468616 7.53202e-23)
-(3.89453 -0.464474 3.78283e-22)
-(3.90876 -0.460595 -5.68188e-22)
-(3.92365 -0.456992 -8.10486e-23)
-(3.93926 -0.453667 -4.09848e-22)
-(3.95571 -0.450612 -9.69004e-23)
-(3.97312 -0.447801 -1.295e-22)
-(3.99162 -0.445198 1.21638e-21)
-(4.01139 -0.442747 9.11716e-22)
-(4.03256 -0.440397 4.66417e-22)
-(4.05557 -0.438052 -5.89529e-23)
-(4.08002 -0.435761 -7.21192e-23)
-(4.10844 -0.433134 2.23587e-22)
-(4.13347 -0.431239 1.39892e-22)
-(-0.0127595 0.380942 1.04757e-21)
-(-0.0306339 0.46094 -1.12601e-21)
-(-0.04241 0.474087 -3.4645e-22)
-(-0.0496243 0.471802 3.13148e-22)
-(-0.0526714 0.46442 9.17436e-22)
-(-0.0524581 0.455237 3.04263e-22)
-(-0.0497401 0.445706 3.97718e-22)
-(-0.0451204 0.436482 7.79703e-22)
-(-0.0390261 0.427863 1.86777e-22)
-(-0.0317582 0.419968 4.36057e-22)
-(-0.0235151 0.412795 5.34431e-22)
-(-0.0144088 0.40629 -2.7309e-22)
-(-0.00450512 0.400348 -1.27829e-22)
-(0.00622627 0.394826 -5.91523e-24)
-(0.0177973 0.389637 3.60409e-22)
-(0.0303612 0.384651 1.72356e-22)
-(0.0440731 0.379768 5.65301e-22)
-(0.0591186 0.3749 2.65898e-22)
-(0.0756914 0.369973 1.6828e-22)
-(0.0939928 0.364917 -3.01905e-22)
-(0.114222 0.359674 3.27023e-22)
-(0.13657 0.354195 1.34533e-22)
-(0.161211 0.348444 2.3749e-22)
-(0.18829 0.342395 1.6065e-22)
-(0.217916 0.336037 -4.52606e-22)
-(0.250153 0.329374 -2.57276e-23)
-(0.285012 0.322419 -4.95026e-22)
-(0.322455 0.3152 3.99313e-22)
-(0.362392 0.307747 -5.68252e-22)
-(0.404694 0.300084 -4.84427e-22)
-(0.449211 0.292233 -1.04674e-21)
-(0.495779 0.284222 -8.91534e-22)
-(0.544215 0.276088 -5.95484e-22)
-(0.594324 0.267869 -3.06473e-22)
-(0.645905 0.259603 -1.45276e-23)
-(0.698756 0.251325 3.83947e-22)
-(0.752678 0.243067 3.02513e-22)
-(0.807482 0.234855 4.99794e-22)
-(0.862988 0.226714 5.80697e-22)
-(0.919028 0.218661 2.41408e-22)
-(0.975448 0.210712 6.01727e-23)
-(1.03211 0.202878 -3.1379e-22)
-(1.08888 0.195167 2.60805e-22)
-(1.14565 0.187583 1.58614e-22)
-(1.20231 0.180131 7.10084e-23)
-(1.25878 0.172811 4.06559e-23)
-(1.31498 0.165625 2.01739e-22)
-(1.37083 0.15857 -8.84673e-23)
-(1.42627 0.151632 -1.0093e-22)
-(1.48124 0.14479 -5.6724e-23)
-(1.53572 0.13803 8.34592e-23)
-(1.58967 0.131343 4.45183e-22)
-(1.64306 0.124721 5.77285e-22)
-(1.69585 0.118156 5.39453e-22)
-(1.74803 0.111641 2.08873e-22)
-(1.79957 0.105168 9.59531e-23)
-(1.85046 0.098729 -4.76547e-23)
-(1.90068 0.0923168 -4.08156e-22)
-(1.95023 0.0859249 3.81182e-22)
-(1.99909 0.0795482 3.52799e-23)
-(2.04726 0.0731799 -5.65405e-23)
-(2.09475 0.0667939 -1.8732e-22)
-(2.14157 0.0603631 -2.1516e-23)
-(2.18772 0.0538788 -1.59344e-22)
-(2.23321 0.0473369 2.04941e-23)
-(2.27803 0.0407331 1.42219e-22)
-(2.32221 0.0340629 3.50723e-23)
-(2.36575 0.0273235 1.8036e-22)
-(2.40867 0.0205124 -2.76434e-22)
-(2.45103 0.0135955 -2.70396e-22)
-(2.49282 0.00654242 -1.3785e-22)
-(2.53404 -0.000647651 -2.14786e-22)
-(2.57471 -0.00798672 2.93841e-23)
-(2.61484 -0.0155127 1.35342e-22)
-(2.65459 -0.0232529 1.38688e-22)
-(2.694 -0.0311681 2.6469e-22)
-(2.7329 -0.0392303 1.44157e-22)
-(2.77124 -0.0474777 -1.91976e-22)
-(2.80898 -0.0559728 -4.18093e-22)
-(2.84577 -0.0646767 -3.44976e-23)
-(2.88186 -0.0735563 6.29899e-23)
-(2.91726 -0.0826309 3.7794e-23)
-(2.95195 -0.0919233 -6.6234e-23)
-(2.98591 -0.101465 -2.53351e-22)
-(3.01914 -0.111262 -5.54488e-23)
-(3.05163 -0.121303 -2.08959e-22)
-(3.08338 -0.131598 5.99267e-23)
-(3.11437 -0.142144 3.14985e-22)
-(3.14459 -0.152925 -1.01117e-22)
-(3.17404 -0.163932 -1.30777e-22)
-(3.20273 -0.175147 9.30265e-23)
-(3.23066 -0.186549 4.52368e-23)
-(3.25784 -0.198117 -1.69382e-22)
-(3.28427 -0.20983 1.28335e-23)
-(3.30997 -0.221669 3.3574e-22)
-(3.33496 -0.233611 8.32244e-23)
-(3.35925 -0.245636 1.93259e-22)
-(3.38286 -0.257725 6.17823e-23)
-(3.40581 -0.269857 4.57674e-23)
-(3.42811 -0.282012 2.74245e-22)
-(3.44978 -0.294171 5.93058e-23)
-(3.47084 -0.306312 2.65306e-22)
-(3.49131 -0.318415 2.459e-23)
-(3.51121 -0.33046 -1.59291e-22)
-(3.53054 -0.342426 3.73569e-22)
-(3.54934 -0.354292 -6.90349e-23)
-(3.56761 -0.36604 -7.20943e-23)
-(3.58537 -0.377649 3.57139e-22)
-(3.60264 -0.389099 3.81434e-22)
-(3.61944 -0.400372 8.44937e-23)
-(3.63577 -0.411449 2.51549e-22)
-(3.65165 -0.422311 3.70656e-22)
-(3.6671 -0.432941 2.66024e-22)
-(3.68212 -0.443321 3.39668e-23)
-(3.69674 -0.453433 1.81767e-22)
-(3.71095 -0.46326 4.22516e-23)
-(3.72477 -0.472786 -1.226e-22)
-(3.73822 -0.481995 2.25568e-22)
-(3.75129 -0.490871 2.39154e-22)
-(3.76401 -0.499399 -8.42987e-24)
-(3.77638 -0.507566 7.85761e-23)
-(3.78841 -0.515358 3.76786e-22)
-(3.80012 -0.522764 1.50917e-22)
-(3.8115 -0.529771 5.47785e-23)
-(3.82257 -0.53637 -1.35135e-22)
-(3.83334 -0.54255 -8.73808e-23)
-(3.84382 -0.548302 2.7114e-22)
-(3.85401 -0.553619 1.37112e-22)
-(3.86393 -0.558493 -2.51975e-22)
-(3.87358 -0.562919 -2.13933e-22)
-(3.88297 -0.566893 2.96999e-22)
-(3.89212 -0.570411 4.01362e-22)
-(3.90103 -0.57347 9.10781e-23)
-(3.9097 -0.576071 6.65971e-23)
-(3.91816 -0.578214 1.21947e-22)
-(3.92641 -0.579899 1.82094e-22)
-(3.93446 -0.58113 2.11569e-22)
-(3.94232 -0.581911 2.31788e-22)
-(3.95 -0.582249 5.40594e-22)
-(3.95752 -0.58215 1.97627e-22)
-(3.96488 -0.581622 -1.51049e-22)
-(3.97209 -0.580677 1.46834e-22)
-(3.97918 -0.579324 3.58539e-22)
-(3.98615 -0.577577 -5.69448e-23)
-(3.99301 -0.575451 -5.54273e-23)
-(3.99978 -0.572959 -3.57812e-22)
-(4.00647 -0.570121 -1.04731e-22)
-(4.0131 -0.566953 4.30482e-22)
-(4.01968 -0.563477 -1.05661e-22)
-(4.02623 -0.559712 3.54663e-22)
-(4.03276 -0.555682 4.88206e-22)
-(4.0393 -0.55141 5.24342e-23)
-(4.04585 -0.546922 2.86005e-23)
-(4.05244 -0.542244 -7.22966e-23)
-(4.05909 -0.537403 1.99858e-22)
-(4.06583 -0.532429 -1.10498e-22)
-(4.07267 -0.527353 -2.95898e-22)
-(4.07963 -0.522205 1.57218e-22)
-(4.08676 -0.517018 6.68719e-22)
-(4.09407 -0.511827 3.23799e-22)
-(4.1016 -0.506666 2.49084e-22)
-(4.10939 -0.50157 1.91511e-22)
-(4.11746 -0.496577 9.6439e-23)
-(4.12588 -0.491723 4.83306e-22)
-(4.13467 -0.487044 2.60314e-22)
-(4.14389 -0.482575 4.5377e-22)
-(4.15361 -0.478349 -2.62713e-22)
-(4.16387 -0.474395 -1.04723e-22)
-(4.17476 -0.470738 -1.98345e-22)
-(4.18636 -0.467394 -2.06349e-22)
-(4.19875 -0.464372 -1.48219e-22)
-(4.21204 -0.461669 -2.21718e-22)
-(4.22637 -0.459267 3.74974e-22)
-(4.24186 -0.457141 -2.12293e-22)
-(4.2587 -0.455245 9.78131e-23)
-(4.27704 -0.453542 3.00931e-22)
-(4.29726 -0.451945 -6.40784e-23)
-(4.31907 -0.450518 4.85656e-22)
-(4.3447 -0.448839 -5.36196e-22)
-(4.36755 -0.448076 -4.54796e-22)
-(-0.0202393 0.410981 8.04822e-22)
-(-0.0451274 0.481317 1.18784e-22)
-(-0.0580875 0.485852 2.13214e-22)
-(-0.064379 0.476963 6.36307e-23)
-(-0.0650673 0.464813 -2.97449e-22)
-(-0.0618141 0.45211 2.40838e-23)
-(-0.0556845 0.440006 2.61276e-22)
-(-0.0474267 0.428871 -2.4179e-22)
-(-0.0374722 0.418794 1.56099e-22)
-(-0.0260373 0.409746 7.35946e-22)
-(-0.0131794 0.401563 8.2527e-22)
-(0.00116344 0.394081 1.46653e-21)
-(0.0170413 0.387167 -3.58542e-22)
-(0.034628 0.380582 -7.9477e-23)
-(0.0542809 0.374085 2.0226e-22)
-(0.0764193 0.36748 2.25478e-22)
-(0.101453 0.360633 1.95351e-22)
-(0.129764 0.353448 1.92314e-23)
-(0.161665 0.345864 -6.84382e-22)
-(0.197382 0.337853 -5.63203e-22)
-(0.237025 0.329414 -1.51038e-21)
-(0.280589 0.320571 -4.90336e-22)
-(0.327961 0.311368 -9.67716e-23)
-(0.378927 0.301862 2.05034e-23)
-(0.433204 0.292122 -8.02763e-23)
-(0.490453 0.282222 -3.5079e-22)
-(0.550302 0.272242 2.88981e-22)
-(0.612368 0.262262 -5.93015e-22)
-(0.676259 0.252349 -2.19579e-22)
-(0.741606 0.242535 1.353e-22)
-(0.808089 0.232833 -8.91077e-24)
-(0.87542 0.223268 -6.35565e-22)
-(0.943339 0.213872 -4.2491e-22)
-(1.0116 0.204672 -2.12691e-22)
-(1.08 0.195688 -8.76964e-23)
-(1.14833 0.186935 -2.56693e-22)
-(1.21643 0.178424 4.30308e-23)
-(1.28416 0.170158 1.72422e-22)
-(1.35138 0.162138 1.66015e-22)
-(1.418 0.15436 -1.00104e-22)
-(1.48393 0.146817 -2.78474e-23)
-(1.54909 0.139502 -4.31616e-23)
-(1.61343 0.132404 2.57061e-22)
-(1.6769 0.125514 1.06878e-22)
-(1.73947 0.118819 -1.64065e-24)
-(1.8011 0.112311 1.61533e-22)
-(1.86178 0.105981 -4.323e-22)
-(1.92148 0.0998192 -2.47804e-22)
-(1.98022 0.0937966 -7.23165e-23)
-(2.03798 0.0878799 -5.44035e-23)
-(2.09479 0.0820534 -1.18188e-22)
-(2.15064 0.0763067 7.61264e-23)
-(2.20553 0.0706303 9.29064e-23)
-(2.25948 0.0650139 -1.35138e-22)
-(2.31247 0.0594473 4.99291e-23)
-(2.36452 0.0539198 6.90512e-23)
-(2.41564 0.0484207 3.94288e-23)
-(2.46584 0.0429391 -1.14692e-22)
-(2.51514 0.0374654 -4.20911e-22)
-(2.56356 0.0319926 -1.81098e-22)
-(2.61113 0.0265168 -3.96611e-22)
-(2.6579 0.0210038 -1.01827e-22)
-(2.70389 0.0154203 2.81258e-22)
-(2.7491 0.0097651 4.4362e-22)
-(2.79354 0.00403731 -1.00505e-23)
-(2.83722 -0.00176974 -3.1131e-22)
-(2.88014 -0.00767089 -5.02752e-22)
-(2.92235 -0.0136964 -1.62479e-22)
-(2.96392 -0.0198909 -2.33198e-22)
-(3.00509 -0.0262383 -2.59165e-22)
-(3.04564 -0.0326812 -1.1538e-22)
-(3.08555 -0.0392325 2.80398e-23)
-(3.12479 -0.0459235 -9.20848e-23)
-(3.16333 -0.0527991 2.56357e-22)
-(3.20104 -0.05987 6.25646e-23)
-(3.23785 -0.0670962 8.59873e-23)
-(3.27393 -0.0744659 1.31808e-22)
-(3.30932 -0.0820012 1.13938e-22)
-(3.34403 -0.0897111 1.61886e-22)
-(3.37802 -0.097625 -5.48315e-23)
-(3.4113 -0.105777 -1.14529e-22)
-(3.4439 -0.114162 -2.77594e-23)
-(3.47581 -0.122779 -1.74489e-22)
-(3.50704 -0.131643 -1.01838e-22)
-(3.53758 -0.140764 -2.6018e-23)
-(3.56743 -0.150135 1.44507e-23)
-(3.59658 -0.159761 1.86413e-22)
-(3.62503 -0.16964 8.61206e-23)
-(3.65276 -0.17976 -1.32376e-22)
-(3.67978 -0.190111 -2.80125e-22)
-(3.70608 -0.200677 -1.17704e-22)
-(3.73167 -0.21144 -2.39304e-23)
-(3.75655 -0.222382 -2.89268e-23)
-(3.78072 -0.233482 -5.021e-23)
-(3.8042 -0.244722 -2.7369e-22)
-(3.827 -0.25608 -3.80605e-23)
-(3.84912 -0.267538 1.21347e-22)
-(3.87057 -0.279074 2.9881e-22)
-(3.89138 -0.290669 1.97688e-22)
-(3.91156 -0.302303 -1.59913e-22)
-(3.93111 -0.313955 1.02819e-22)
-(3.95005 -0.325604 1.8404e-22)
-(3.96839 -0.337231 2.09095e-22)
-(3.98615 -0.348814 2.57816e-22)
-(4.00334 -0.360332 4.82992e-22)
-(4.01998 -0.371764 3.07835e-22)
-(4.03607 -0.383091 1.39316e-22)
-(4.05163 -0.394291 -4.8709e-23)
-(4.06668 -0.405346 3.99524e-23)
-(4.08122 -0.416235 2.93367e-22)
-(4.09527 -0.426939 2.32271e-22)
-(4.10883 -0.437439 -1.93713e-23)
-(4.12193 -0.447716 1.6178e-22)
-(4.13456 -0.457753 1.85304e-22)
-(4.14674 -0.467531 -7.41203e-24)
-(4.15848 -0.477034 -1.39269e-23)
-(4.16979 -0.486243 5.29329e-23)
-(4.18068 -0.495144 4.23894e-24)
-(4.19116 -0.50372 1.78557e-23)
-(4.20123 -0.511956 2.70888e-22)
-(4.21091 -0.519837 3.1737e-22)
-(4.2202 -0.527352 1.82448e-22)
-(4.22912 -0.534487 1.22652e-22)
-(4.23766 -0.541231 5.38828e-23)
-(4.24585 -0.547572 2.00369e-22)
-(4.25369 -0.553501 2.15521e-23)
-(4.26119 -0.55901 -1.2318e-22)
-(4.26835 -0.564089 1.67822e-22)
-(4.27519 -0.568732 -4.38554e-23)
-(4.28172 -0.572934 1.76627e-23)
-(4.28794 -0.576689 1.24888e-22)
-(4.29388 -0.579996 7.42773e-23)
-(4.29953 -0.582851 2.77467e-23)
-(4.3049 -0.585254 2.62244e-23)
-(4.31002 -0.587205 9.33892e-23)
-(4.31489 -0.588706 -6.8554e-23)
-(4.31952 -0.58976 -7.14978e-23)
-(4.32393 -0.590371 1.30565e-22)
-(4.32812 -0.590546 5.0243e-22)
-(4.33212 -0.590291 7.21686e-22)
-(4.33593 -0.589615 5.86574e-22)
-(4.33957 -0.588529 2.43104e-22)
-(4.34306 -0.587044 9.54439e-25)
-(4.3464 -0.585172 -8.0964e-23)
-(4.34962 -0.582929 -3.90567e-23)
-(4.35273 -0.580329 -7.1561e-23)
-(4.35575 -0.57739 -2.26493e-22)
-(4.35869 -0.574132 1.81165e-22)
-(4.36157 -0.570573 2.03252e-22)
-(4.36442 -0.566735 1.77584e-22)
-(4.36725 -0.562641 6.74531e-22)
-(4.37008 -0.558316 6.57798e-22)
-(4.37293 -0.553784 1.57923e-22)
-(4.37583 -0.549074 3.55169e-22)
-(4.37879 -0.544212 3.72497e-22)
-(4.38185 -0.539229 2.92721e-22)
-(4.38503 -0.534155 1.78588e-22)
-(4.38835 -0.529023 3.25104e-22)
-(4.39185 -0.523867 -2.94368e-22)
-(4.39557 -0.518722 -1.15993e-22)
-(4.39952 -0.513623 -2.664e-22)
-(4.40376 -0.508608 -2.84854e-22)
-(4.40832 -0.503714 -1.55168e-23)
-(4.41325 -0.49898 1.53339e-22)
-(4.41859 -0.494444 2.49294e-22)
-(4.42441 -0.490143 -5.02073e-23)
-(4.43075 -0.486113 -4.83638e-22)
-(4.4377 -0.482386 -1.56345e-22)
-(4.44532 -0.478991 -6.11762e-23)
-(4.4537 -0.475949 -3.40941e-22)
-(4.46293 -0.473273 -8.27717e-23)
-(4.47313 -0.470968 -1.22576e-22)
-(4.48443 -0.469025 -2.38607e-22)
-(4.49697 -0.467425 -3.31693e-22)
-(4.51094 -0.466135 9.8204e-23)
-(4.52649 -0.465128 3.27884e-22)
-(4.54397 -0.464326 3.4168e-22)
-(4.56316 -0.463806 -7.80904e-22)
-(4.58602 -0.463116 -7.42573e-22)
-(4.60681 -0.46351 -9.07024e-23)
-(-0.0330746 0.453678 1.60222e-21)
-(-0.0670128 0.504144 1.95581e-22)
-(-0.0788241 0.49594 -3.99289e-22)
-(-0.0823032 0.479046 -1.72879e-22)
-(-0.0785132 0.461774 -4.2859e-22)
-(-0.0700146 0.445477 -6.762e-22)
-(-0.057893 0.430871 -1.00782e-21)
-(-0.0426732 0.417851 -3.60967e-22)
-(-0.0245326 0.40601 -2.97411e-22)
-(-0.00319785 0.39507 1.06896e-22)
-(0.0218616 0.384742 1.04728e-21)
-(0.050841 0.374895 5.46781e-22)
-(0.084425 0.365179 1.05787e-21)
-(0.123158 0.355189 -2.68235e-22)
-(0.167614 0.344665 1.22934e-22)
-(0.218118 0.333535 4.62251e-22)
-(0.274659 0.321834 -7.64587e-22)
-(0.336939 0.309647 -2.36483e-22)
-(0.404447 0.297089 3.71451e-22)
-(0.476535 0.284292 -1.25458e-22)
-(0.552482 0.27139 -2.15253e-22)
-(0.631555 0.258509 -4.89505e-22)
-(0.713041 0.245763 -1.97064e-22)
-(0.796281 0.23325 6.60169e-23)
-(0.880681 0.22105 6.63616e-22)
-(0.96572 0.209227 8.64846e-22)
-(1.05095 0.197835 9.75117e-22)
-(1.13599 0.186917 7.89975e-22)
-(1.22051 0.176497 6.39585e-22)
-(1.30426 0.166532 -3.04283e-22)
-(1.38706 0.156968 -3.05434e-22)
-(1.46878 0.147791 1.03714e-22)
-(1.54929 0.138999 4.3798e-23)
-(1.6285 0.130584 2.86949e-22)
-(1.70632 0.122537 2.93944e-22)
-(1.78268 0.114843 -8.70815e-23)
-(1.85755 0.107486 2.30003e-22)
-(1.93089 0.100447 8.09787e-23)
-(2.00269 0.0937069 2.84395e-23)
-(2.07296 0.0872463 1.2451e-22)
-(2.14169 0.0810452 -4.8181e-23)
-(2.20889 0.0750838 -1.02919e-22)
-(2.2746 0.0693433 -4.30123e-23)
-(2.33883 0.0638052 -2.15191e-23)
-(2.40161 0.0584521 4.39993e-22)
-(2.46298 0.0532683 2.93943e-22)
-(2.52297 0.0482423 5.072e-22)
-(2.58162 0.043367 4.91539e-22)
-(2.63902 0.0386037 2.20179e-22)
-(2.69518 0.033909 1.61753e-22)
-(2.75015 0.0292735 2.13887e-22)
-(2.80394 0.024692 5.53138e-24)
-(2.85657 0.0201571 3.94915e-24)
-(2.90805 0.015659 5.1483e-23)
-(2.95842 0.0111869 6.81559e-23)
-(3.00771 0.00672869 9.77929e-23)
-(3.05593 0.00227202 2.20151e-22)
-(3.10313 -0.00219712 5.21538e-22)
-(3.14933 -0.0066967 4.74895e-22)
-(3.1946 -0.0112559 -3.21658e-23)
-(3.239 -0.0159188 -1.67929e-22)
-(3.28278 -0.0206789 -1.75538e-22)
-(3.32576 -0.0254877 -3.87941e-22)
-(3.36794 -0.0303505 -2.68908e-22)
-(3.40929 -0.0352838 4.60708e-23)
-(3.44983 -0.040306 3.22414e-22)
-(3.48957 -0.0454391 6.35575e-23)
-(3.52851 -0.0507159 -3.28459e-22)
-(3.56661 -0.0561701 -2.6298e-22)
-(3.60368 -0.0617652 -3.85065e-22)
-(3.63993 -0.0674684 -1.59066e-22)
-(3.67542 -0.0732934 7.23237e-24)
-(3.7102 -0.079261 1.62212e-22)
-(3.74429 -0.0853824 2.43189e-25)
-(3.77768 -0.0916687 -7.50387e-23)
-(3.81036 -0.0981453 -8.24132e-23)
-(3.84235 -0.104828 2.06102e-22)
-(3.87367 -0.111715 1.27813e-22)
-(3.90436 -0.1188 2.44057e-22)
-(3.93442 -0.126099 1.19336e-22)
-(3.96386 -0.133637 2.20333e-22)
-(3.99267 -0.141419 1.13955e-22)
-(4.02086 -0.149445 7.79513e-23)
-(4.04844 -0.157723 -1.42932e-22)
-(4.07541 -0.16626 9.94377e-23)
-(4.10175 -0.175054 -2.01806e-24)
-(4.12747 -0.184104 7.23093e-23)
-(4.15256 -0.193409 -7.11379e-24)
-(4.17702 -0.202957 -1.34513e-22)
-(4.20083 -0.21274 8.24096e-23)
-(4.224 -0.222743 7.03179e-23)
-(4.24653 -0.23295 -2.27802e-22)
-(4.26841 -0.243344 -1.25758e-22)
-(4.28965 -0.253905 8.13174e-25)
-(4.31026 -0.264615 2.62e-24)
-(4.33022 -0.275455 2.76152e-22)
-(4.34957 -0.286405 3.3566e-22)
-(4.36829 -0.297445 1.34031e-22)
-(4.3864 -0.308554 1.42507e-22)
-(4.40391 -0.319714 -7.15053e-23)
-(4.42083 -0.330904 -1.6261e-23)
-(4.43715 -0.342102 1.8135e-22)
-(4.4529 -0.353288 3.9442e-22)
-(4.46808 -0.364441 3.51424e-22)
-(4.4827 -0.37554 -1.94174e-22)
-(4.49677 -0.386565 5.47314e-23)
-(4.5103 -0.397494 2.41477e-22)
-(4.52329 -0.408306 8.81813e-23)
-(4.53577 -0.418983 2.46821e-23)
-(4.54773 -0.429503 -8.61714e-24)
-(4.55918 -0.439847 2.19147e-22)
-(4.57014 -0.449996 4.67866e-22)
-(4.5806 -0.45993 1.59472e-22)
-(4.59059 -0.469632 1.29961e-22)
-(4.6001 -0.479083 -1.1646e-23)
-(4.60915 -0.488266 1.39823e-22)
-(4.61774 -0.497163 7.88537e-23)
-(4.62588 -0.505758 -1.7532e-23)
-(4.63357 -0.514035 3.0178e-22)
-(4.64084 -0.521979 2.5799e-22)
-(4.64767 -0.529577 2.99925e-22)
-(4.65409 -0.536813 2.29188e-22)
-(4.66009 -0.543676 3.78276e-23)
-(4.66569 -0.550155 -4.48107e-23)
-(4.6709 -0.556237 4.63157e-24)
-(4.67572 -0.561914 2.28755e-22)
-(4.68016 -0.567177 1.25801e-22)
-(4.68423 -0.572017 -4.31332e-23)
-(4.68795 -0.576428 -3.31352e-23)
-(4.69131 -0.580404 2.4122e-23)
-(4.69434 -0.58394 2.79567e-22)
-(4.69704 -0.587035 9.91762e-23)
-(4.69942 -0.589685 -6.49099e-23)
-(4.7015 -0.59189 -3.0332e-23)
-(4.70329 -0.593651 9.37338e-23)
-(4.70479 -0.594969 1.24667e-22)
-(4.70603 -0.595848 -7.80323e-23)
-(4.70701 -0.596292 1.13859e-22)
-(4.70776 -0.596308 2.45552e-23)
-(4.70828 -0.595902 2.38099e-22)
-(4.7086 -0.595084 5.12093e-22)
-(4.70872 -0.593864 1.52807e-22)
-(4.70866 -0.592253 2.94139e-22)
-(4.70845 -0.590265 3.14875e-22)
-(4.7081 -0.587915 1.23797e-23)
-(4.70762 -0.585217 3.08074e-23)
-(4.70705 -0.582191 9.85466e-23)
-(4.70638 -0.578854 -2.65443e-22)
-(4.70566 -0.575227 2.7228e-22)
-(4.7049 -0.571332 6.71668e-23)
-(4.70411 -0.567191 -4.10303e-23)
-(4.70333 -0.56283 6.40884e-22)
-(4.70257 -0.558274 4.84388e-22)
-(4.70187 -0.55355 1.52997e-22)
-(4.70125 -0.548688 4.47045e-23)
-(4.70072 -0.543718 4.36695e-22)
-(4.70034 -0.53867 5.82936e-22)
-(4.70012 -0.533579 2.45668e-23)
-(4.70009 -0.528479 -5.48716e-23)
-(4.7003 -0.523405 8.27632e-23)
-(4.70077 -0.518395 1.60175e-23)
-(4.70155 -0.513488 6.13861e-23)
-(4.70269 -0.508722 -5.98734e-22)
-(4.70422 -0.504137 -4.25301e-22)
-(4.7062 -0.499775 -4.04739e-23)
-(4.70869 -0.495674 -1.59945e-22)
-(4.71175 -0.491873 4.34662e-22)
-(4.71545 -0.488409 -2.57557e-22)
-(4.71988 -0.485312 -2.3683e-22)
-(4.72511 -0.482609 -2.05189e-22)
-(4.73125 -0.480321 -6.30208e-22)
-(4.73842 -0.478456 -4.13358e-22)
-(4.74675 -0.477015 -7.17686e-22)
-(4.7564 -0.475988 -3.69439e-22)
-(4.76754 -0.475351 -4.97364e-22)
-(4.78034 -0.475085 2.09748e-23)
-(4.79513 -0.475123 2.26692e-22)
-(4.81175 -0.475548 -2.5481e-22)
-(4.83185 -0.475886 -1.22335e-21)
-(4.85068 -0.477452 -2.99619e-22)
-(-0.0556107 0.516579 1.26696e-21)
-(-0.0996133 0.527569 7.87617e-22)
-(-0.104604 0.503415 -3.02378e-22)
-(-0.0996211 0.47766 -3.83011e-22)
-(-0.0840346 0.455003 -9.59183e-22)
-(-0.0610684 0.434169 2.02861e-23)
-(-0.0307047 0.415069 -6.9937e-22)
-(0.00898876 0.396922 -2.07118e-22)
-(0.0578197 0.379507 1.23988e-21)
-(0.116375 0.362369 8.56941e-22)
-(0.185023 0.345286 -4.44793e-22)
-(0.262944 0.328437 -3.26964e-22)
-(0.349104 0.311668 8.45773e-22)
-(0.442366 0.294597 2.89164e-22)
-(0.541668 0.277222 1.79173e-22)
-(0.645792 0.259833 -1.77601e-22)
-(0.753415 0.242705 -5.94891e-22)
-(0.863262 0.226045 -3.24675e-22)
-(0.974205 0.210003 -8.98642e-23)
-(1.08528 0.194684 -2.29077e-22)
-(1.19572 0.180154 3.11615e-22)
-(1.30488 0.166446 2.57038e-22)
-(1.4123 0.153564 1.03615e-22)
-(1.51762 0.141492 2.74694e-22)
-(1.62059 0.130203 4.65185e-22)
-(1.72104 0.11966 5.27802e-22)
-(1.81887 0.10983 1.44294e-22)
-(1.91404 0.100689 1.35339e-22)
-(2.00654 0.0922129 2.93247e-22)
-(2.09647 0.0842804 4.71853e-22)
-(2.18387 0.0767685 5.05179e-22)
-(2.26877 0.0696481 3.28235e-22)
-(2.35121 0.0629094 1.86654e-22)
-(2.43122 0.0565386 -8.57142e-23)
-(2.50883 0.0505162 -1.29874e-22)
-(2.58412 0.0448191 1.61628e-22)
-(2.65714 0.0394227 -5.36915e-23)
-(2.72798 0.0343019 -2.68529e-22)
-(2.7967 0.0294322 -3.62622e-22)
-(2.86339 0.02479 -3.57522e-22)
-(2.92812 0.0203531 -3.74095e-22)
-(2.99097 0.0161004 -3.37149e-22)
-(3.05201 0.0120119 -5.57235e-23)
-(3.11132 0.00806869 2.89286e-22)
-(3.16897 0.00425165 9.77534e-23)
-(3.22503 0.000539526 -7.04999e-23)
-(3.27959 -0.00309776 2.1271e-24)
-(3.33276 -0.00670675 -5.06873e-23)
-(3.3848 -0.0102913 1.58326e-22)
-(3.43559 -0.0138124 8.60691e-23)
-(3.48514 -0.0172771 1.82589e-22)
-(3.53345 -0.0207029 4.58405e-22)
-(3.58055 -0.024107 4.43602e-22)
-(3.62649 -0.0275049 1.7227e-22)
-(3.67131 -0.0309108 1.06835e-22)
-(3.71504 -0.0343379 1.21324e-22)
-(3.75772 -0.0377996 2.38195e-22)
-(3.7994 -0.0413102 1.71983e-22)
-(3.84011 -0.044888 1.28593e-22)
-(3.87988 -0.0485609 2.62958e-22)
-(3.91868 -0.0523622 1.86822e-22)
-(3.95637 -0.0562655 -3.55135e-23)
-(3.99312 -0.0602403 -1.97207e-22)
-(4.02902 -0.0642952 -9.49767e-23)
-(4.06412 -0.0684465 -9.92494e-23)
-(4.09846 -0.0727101 -1.38717e-22)
-(4.13206 -0.0771012 2.20771e-23)
-(4.16496 -0.08163 -7.97644e-23)
-(4.19715 -0.0862982 -5.13539e-23)
-(4.2286 -0.0911237 3.77485e-23)
-(4.25935 -0.0961262 -1.75969e-22)
-(4.28943 -0.101305 -5.41539e-23)
-(4.31887 -0.106661 -9.07302e-23)
-(4.34769 -0.112193 -2.4641e-22)
-(4.37592 -0.117906 8.35817e-24)
-(4.40356 -0.123818 5.19178e-23)
-(4.43062 -0.129945 -2.27157e-22)
-(4.45711 -0.136292 -4.61401e-23)
-(4.48306 -0.142857 -1.21693e-22)
-(4.50846 -0.149647 7.80062e-23)
-(4.53334 -0.156682 1.17963e-22)
-(4.55768 -0.163967 9.88161e-23)
-(4.5815 -0.171506 5.21116e-23)
-(4.60479 -0.179302 -7.35976e-23)
-(4.62756 -0.187359 -2.45232e-22)
-(4.64979 -0.195676 7.62366e-23)
-(4.67149 -0.204251 8.62798e-23)
-(4.69265 -0.213081 8.27937e-23)
-(4.71326 -0.222156 1.25064e-22)
-(4.73332 -0.231467 2.83648e-22)
-(4.75281 -0.241001 1.4097e-22)
-(4.77175 -0.250742 8.14604e-23)
-(4.79012 -0.260674 2.08188e-24)
-(4.80792 -0.270779 -7.94711e-23)
-(4.82515 -0.281039 3.51603e-24)
-(4.84182 -0.291434 2.48767e-23)
-(4.85792 -0.301946 1.88022e-22)
-(4.87347 -0.312556 1.95069e-22)
-(4.88845 -0.323242 1.57727e-22)
-(4.90287 -0.333986 8.94584e-24)
-(4.91675 -0.344767 1.95221e-22)
-(4.93007 -0.355563 9.00395e-23)
-(4.94285 -0.366355 1.67552e-22)
-(4.9551 -0.377122 1.80246e-22)
-(4.9668 -0.387842 1.32318e-23)
-(4.97798 -0.398494 5.1924e-23)
-(4.98863 -0.409059 1.30764e-22)
-(4.99876 -0.419514 8.39867e-23)
-(5.00838 -0.42984 1.40895e-23)
-(5.01749 -0.440016 -3.94959e-23)
-(5.02609 -0.450023 -1.38465e-22)
-(5.0342 -0.459841 -2.58342e-22)
-(5.04181 -0.469451 -1.08414e-22)
-(5.04894 -0.478834 1.35495e-22)
-(5.05558 -0.487973 2.08487e-22)
-(5.06174 -0.496849 1.39721e-22)
-(5.06744 -0.505445 2.29704e-22)
-(5.07267 -0.513745 2.90763e-23)
-(5.07744 -0.521733 -6.86442e-23)
-(5.08175 -0.529394 8.57219e-23)
-(5.08562 -0.536714 2.15969e-23)
-(5.08904 -0.543678 9.86294e-23)
-(5.09203 -0.550275 5.57155e-24)
-(5.0946 -0.556493 7.77912e-23)
-(5.09674 -0.562322 1.92211e-22)
-(5.09848 -0.56775 -7.89268e-23)
-(5.09981 -0.572771 1.87939e-22)
-(5.10074 -0.577375 3.79423e-22)
-(5.10129 -0.581557 3.33618e-23)
-(5.10147 -0.58531 1.38027e-24)
-(5.10128 -0.588631 3.54305e-24)
-(5.10074 -0.591517 -1.30869e-24)
-(5.09985 -0.593966 4.07783e-23)
-(5.09864 -0.595977 1.64604e-22)
-(5.09711 -0.597551 1.58089e-22)
-(5.09527 -0.598691 6.12148e-23)
-(5.09315 -0.599399 -8.51004e-23)
-(5.09075 -0.599681 4.98635e-23)
-(5.08809 -0.599543 1.48808e-22)
-(5.08519 -0.598993 6.54654e-23)
-(5.08207 -0.598039 1.58271e-22)
-(5.07874 -0.596693 3.08484e-22)
-(5.07521 -0.594965 2.03473e-22)
-(5.07152 -0.59287 3.83367e-22)
-(5.06767 -0.590423 4.66811e-22)
-(5.0637 -0.587639 6.55472e-24)
-(5.05961 -0.584536 1.89752e-23)
-(5.05544 -0.581133 -1.16669e-22)
-(5.0512 -0.577452 -4.75346e-23)
-(5.04691 -0.573513 2.37415e-23)
-(5.04261 -0.569341 1.09051e-22)
-(5.03832 -0.56496 2.63165e-22)
-(5.03406 -0.560397 5.6053e-22)
-(5.02986 -0.555679 1.86366e-22)
-(5.02574 -0.550835 1.34552e-23)
-(5.02175 -0.545897 1.25817e-22)
-(5.0179 -0.540896 2.55842e-22)
-(5.01423 -0.535867 6.70841e-23)
-(5.01078 -0.530845 2.94627e-22)
-(5.00758 -0.525866 4.04812e-22)
-(5.00467 -0.520969 2.07879e-22)
-(5.00209 -0.516194 -2.9558e-22)
-(4.99989 -0.511581 -7.15404e-23)
-(4.99812 -0.507173 -3.77051e-23)
-(4.99683 -0.503012 -4.00794e-23)
-(4.99608 -0.499139 -1.34112e-22)
-(4.99594 -0.495597 6.18385e-24)
-(4.99648 -0.492425 4.32984e-22)
-(4.99778 -0.489659 2.85343e-23)
-(4.99993 -0.487331 4.12367e-22)
-(5.00305 -0.485465 1.07054e-23)
-(5.00726 -0.484079 -4.02158e-22)
-(5.01268 -0.483181 -5.36138e-22)
-(5.01948 -0.482768 -2.27821e-22)
-(5.02784 -0.482826 8.14274e-23)
-(5.03794 -0.483344 -4.32116e-22)
-(5.05006 -0.484262 -4.69729e-22)
-(5.06414 -0.485667 4.98815e-23)
-(5.08151 -0.487073 2.0756e-22)
-(5.09847 -0.48982 -3.66824e-22)
-(-0.0921023 0.616247 -2.53832e-22)
-(-0.142321 0.548133 1.76825e-23)
-(-0.110565 0.499848 -7.33982e-22)
-(-0.0644262 0.457464 -7.94309e-22)
-(0.00781436 0.418907 -3.32003e-22)
-(0.101066 0.383377 -3.63126e-23)
-(0.211477 0.351063 -2.86989e-23)
-(0.338012 0.321063 -1.20218e-22)
-(0.476481 0.293164 -3.17653e-22)
-(0.623498 0.26706 -2.32502e-22)
-(0.775871 0.242713 3.26311e-22)
-(0.93049 0.220503 -7.36199e-23)
-(1.08536 0.200173 6.26857e-23)
-(1.23902 0.180813 3.93818e-22)
-(1.39025 0.16216 2.62767e-22)
-(1.53797 0.144481 1.42372e-22)
-(1.68131 0.128011 1.85767e-22)
-(1.81969 0.112851 5.24041e-23)
-(1.95278 0.0990066 4.37885e-23)
-(2.08045 0.0864194 1.492e-22)
-(2.20272 0.0750002 -1.86935e-23)
-(2.31969 0.0646447 1.898e-23)
-(2.43153 0.0552464 -1.22963e-22)
-(2.53845 0.0467031 -1.6488e-22)
-(2.64066 0.0389208 -1.58076e-22)
-(2.73842 0.0318134 -1.1963e-22)
-(2.83197 0.0252979 -2.70409e-23)
-(2.92158 0.0192743 4.77648e-23)
-(3.00767 0.0136186 1.27817e-22)
-(3.09083 0.00830748 1.96549e-22)
-(3.17083 0.00340758 2.41183e-22)
-(3.24772 -0.00110601 2.35492e-22)
-(3.32157 -0.0052805 2.00593e-22)
-(3.39252 -0.0091603 1.27543e-22)
-(3.46072 -0.0127839 9.26356e-23)
-(3.5263 -0.0161845 1.57504e-22)
-(3.58942 -0.0193906 -1.9391e-23)
-(3.65021 -0.0224272 -2.18678e-23)
-(3.70882 -0.0253163 5.58953e-23)
-(3.76536 -0.0280774 2.31266e-22)
-(3.81995 -0.0307284 1.9504e-22)
-(3.87271 -0.0332854 1.20123e-22)
-(3.92373 -0.0357639 4.57556e-24)
-(3.97311 -0.0381783 -1.51422e-22)
-(4.02094 -0.0405441 -1.84526e-22)
-(4.06729 -0.0428793 -8.91005e-23)
-(4.11225 -0.0452102 -2.49329e-22)
-(4.15584 -0.0475717 -1.91903e-22)
-(4.19794 -0.0499454 -2.20592e-22)
-(4.23876 -0.0523053 -4.2852e-23)
-(4.27839 -0.0546594 -7.95941e-23)
-(4.31694 -0.0570238 -1.334e-22)
-(4.35445 -0.0594134 -5.26717e-23)
-(4.391 -0.0618414 -6.06592e-24)
-(4.42661 -0.0643197 -1.60556e-23)
-(4.46134 -0.0668594 -6.16099e-23)
-(4.49523 -0.0694714 -4.41128e-23)
-(4.52831 -0.0721666 3.57904e-23)
-(4.56061 -0.0749562 6.34234e-23)
-(4.59215 -0.077849 2.37435e-23)
-(4.62295 -0.0808454 6.60136e-23)
-(4.653 -0.0839608 1.67e-23)
-(4.68232 -0.0872131 1.08922e-22)
-(4.71095 -0.0906025 1.18384e-22)
-(4.73893 -0.094131 9.01601e-23)
-(4.76629 -0.0978037 2.2293e-22)
-(4.79304 -0.101627 3.71106e-23)
-(4.81923 -0.105606 -5.11438e-23)
-(4.84485 -0.109739 -1.26661e-22)
-(4.86993 -0.11404 1.72025e-23)
-(4.89447 -0.118528 5.70974e-23)
-(4.91849 -0.123207 -3.50957e-23)
-(4.942 -0.128081 -5.46518e-23)
-(4.96501 -0.13315 -9.76344e-23)
-(4.98755 -0.138416 -4.04036e-23)
-(5.00963 -0.143893 8.50353e-23)
-(5.03125 -0.149593 1.47465e-22)
-(5.05243 -0.155522 -2.92501e-23)
-(5.07317 -0.161683 -1.53498e-23)
-(5.09348 -0.16808 8.38061e-23)
-(5.11336 -0.174726 8.04182e-23)
-(5.13282 -0.181626 2.29235e-22)
-(5.15186 -0.188784 3.3762e-22)
-(5.17047 -0.196203 3.07222e-22)
-(5.18865 -0.203884 1.32342e-22)
-(5.2064 -0.211826 7.44955e-23)
-(5.22371 -0.220027 1.14412e-22)
-(5.24057 -0.228481 1.56455e-22)
-(5.25697 -0.23718 1.36247e-22)
-(5.27292 -0.246115 2.72984e-22)
-(5.28839 -0.255272 3.03078e-22)
-(5.30339 -0.264637 3.86956e-22)
-(5.31791 -0.274194 3.00449e-22)
-(5.33194 -0.283926 1.11071e-22)
-(5.34548 -0.293815 1.3199e-22)
-(5.35852 -0.303843 1.18864e-22)
-(5.37107 -0.313991 -7.40177e-23)
-(5.38312 -0.324239 4.11566e-23)
-(5.39467 -0.334567 6.40944e-23)
-(5.40573 -0.344957 2.24669e-22)
-(5.41628 -0.355386 1.04194e-22)
-(5.42632 -0.365837 8.16043e-23)
-(5.43587 -0.376286 1.36743e-23)
-(5.44492 -0.386714 -1.8346e-23)
-(5.45346 -0.397099 8.93474e-23)
-(5.4615 -0.407421 1.20714e-22)
-(5.46905 -0.41766 1.52229e-22)
-(5.4761 -0.427793 5.18108e-23)
-(5.48265 -0.437801 1.73699e-22)
-(5.4887 -0.447664 1.65867e-22)
-(5.49427 -0.457362 -7.19781e-23)
-(5.49934 -0.466875 -7.13251e-23)
-(5.50393 -0.476185 -6.21276e-23)
-(5.50804 -0.485272 -8.4832e-25)
-(5.51166 -0.494118 1.17315e-22)
-(5.5148 -0.502707 8.29141e-23)
-(5.51747 -0.511019 3.47664e-23)
-(5.51966 -0.51904 1.30731e-22)
-(5.52139 -0.526754 -3.81638e-23)
-(5.52265 -0.534144 -1.86841e-23)
-(5.52346 -0.541198 -5.66318e-23)
-(5.52381 -0.547902 -1.55087e-22)
-(5.52371 -0.554244 -8.75293e-24)
-(5.52317 -0.560211 1.09386e-23)
-(5.5222 -0.565794 -1.05641e-22)
-(5.5208 -0.570983 2.02023e-22)
-(5.51898 -0.575769 2.86514e-22)
-(5.51675 -0.580145 3.53365e-23)
-(5.51411 -0.584104 9.96932e-23)
-(5.51109 -0.587642 6.03999e-23)
-(5.50768 -0.590753 4.28334e-24)
-(5.5039 -0.593437 1.25823e-22)
-(5.49976 -0.59569 1.63004e-22)
-(5.49527 -0.597514 9.31239e-23)
-(5.49045 -0.598908 6.04169e-23)
-(5.48531 -0.599876 -5.85459e-23)
-(5.47987 -0.600421 1.41829e-22)
-(5.47414 -0.600548 5.02884e-24)
-(5.46813 -0.600264 5.92468e-23)
-(5.46187 -0.599576 2.04486e-22)
-(5.45537 -0.598495 1.53117e-22)
-(5.44866 -0.597031 2.72814e-23)
-(5.44174 -0.595196 2.39004e-22)
-(5.43465 -0.593003 2.8367e-22)
-(5.4274 -0.590469 3.78477e-22)
-(5.42001 -0.587609 4.59251e-22)
-(5.41251 -0.584441 3.10376e-22)
-(5.40492 -0.580985 1.15329e-22)
-(5.39727 -0.577262 7.74299e-23)
-(5.38957 -0.573293 1.74142e-22)
-(5.38186 -0.569103 3.29744e-23)
-(5.37416 -0.564717 5.07009e-23)
-(5.3665 -0.560162 3.1021e-22)
-(5.35891 -0.555466 1.19905e-22)
-(5.35142 -0.550658 7.3124e-23)
-(5.34405 -0.545769 4.69176e-23)
-(5.33685 -0.540834 7.9503e-23)
-(5.32985 -0.535886 4.47326e-23)
-(5.32308 -0.530961 3.3345e-22)
-(5.31658 -0.526097 3.53752e-22)
-(5.31039 -0.521335 4.83416e-22)
-(5.30456 -0.516714 1.25655e-22)
-(5.29912 -0.512277 -1.70849e-22)
-(5.29415 -0.508068 -1.05663e-22)
-(5.28968 -0.504132 -2.24774e-23)
-(5.28578 -0.500513 3.09251e-23)
-(5.28252 -0.497256 -2.38295e-23)
-(5.27998 -0.494403 -1.87781e-22)
-(5.27824 -0.491997 -2.70093e-22)
-(5.27739 -0.490073 -9.85766e-23)
-(5.27755 -0.488662 2.99093e-22)
-(5.27885 -0.487789 6.41693e-22)
-(5.28142 -0.487469 3.18618e-22)
-(5.28543 -0.487709 -3.36182e-22)
-(5.29105 -0.4885 -8.13035e-22)
-(5.29848 -0.48984 -5.94133e-22)
-(5.30797 -0.491676 -4.51068e-22)
-(5.31955 -0.494091 -3.8464e-23)
-(5.33419 -0.4966 -1.12326e-22)
-(5.34935 -0.500529 -1.86555e-22)
-(-0.0728881 0.717934 8.40006e-23)
-(-0.0594596 0.475917 -6.53468e-22)
-(0.201969 0.408654 -1.91508e-22)
-(0.435618 0.364062 -1.47302e-22)
-(0.682241 0.316835 -5.99831e-23)
-(0.93352 0.271369 -2.59965e-23)
-(1.18287 0.2294 1.59577e-22)
-(1.42557 0.19119 7.6498e-23)
-(1.65795 0.157017 1.21742e-22)
-(1.87796 0.126948 3.44171e-23)
-(2.08479 0.100875 2.48996e-23)
-(2.27828 0.078249 9.90861e-23)
-(2.46194 0.0583538 2.08519e-23)
-(2.63555 0.0412514 6.34877e-23)
-(2.7976 0.0269371 4.20414e-23)
-(2.94819 0.0150229 5.35955e-23)
-(3.08789 0.00506708 6.25604e-23)
-(3.21749 -0.00331917 5.16296e-23)
-(3.33788 -0.0104542 4.49434e-23)
-(3.44991 -0.0165898 5.40696e-23)
-(3.55439 -0.021921 3.80991e-23)
-(3.65205 -0.0265982 4.17502e-23)
-(3.74355 -0.0307371 8.17209e-23)
-(3.82946 -0.034428 3.6769e-23)
-(3.91031 -0.0377427 1.24487e-23)
-(3.98656 -0.0407414 5.28711e-24)
-(4.05862 -0.0434814 3.90537e-23)
-(4.12684 -0.0460352 1.63673e-22)
-(4.19143 -0.0484748 1.70159e-22)
-(4.25231 -0.0507597 1.45492e-22)
-(4.31008 -0.0528403 1.47061e-22)
-(4.36508 -0.0547339 1.47243e-22)
-(4.41761 -0.0564751 1.39438e-22)
-(4.46788 -0.0580938 1.07631e-22)
-(4.51607 -0.0596141 4.60613e-23)
-(4.56235 -0.0610557 3.35949e-23)
-(4.60684 -0.0624346 5.37063e-23)
-(4.64967 -0.0637646 -2.61414e-23)
-(4.69094 -0.0650573 -1.40031e-22)
-(4.73076 -0.0663232 -7.81697e-23)
-(4.7692 -0.0675716 -1.01144e-23)
-(4.80636 -0.0688115 1.25569e-22)
-(4.84231 -0.0700513 3.53279e-23)
-(4.87712 -0.0712996 -1.90859e-23)
-(4.91085 -0.0725652 -8.06087e-23)
-(4.94357 -0.0738576 -1.40818e-22)
-(4.97532 -0.075184 -1.12416e-22)
-(5.00614 -0.0765443 -1.53052e-22)
-(5.03605 -0.0779519 -1.36175e-22)
-(5.0651 -0.0794247 -1.87157e-22)
-(5.09333 -0.0809644 -1.27832e-22)
-(5.12079 -0.0825729 -1.45018e-22)
-(5.14753 -0.0842542 -1.85347e-22)
-(5.17358 -0.0860138 -1.22252e-22)
-(5.199 -0.0878582 -3.81147e-23)
-(5.2238 -0.0897946 1.28673e-23)
-(5.24802 -0.0918308 -1.13784e-22)
-(5.27169 -0.0939747 -8.27448e-23)
-(5.29483 -0.096234 -9.788e-23)
-(5.31745 -0.098614 5.0171e-23)
-(5.33958 -0.101115 6.73298e-23)
-(5.36124 -0.103748 1.07028e-22)
-(5.38242 -0.106528 7.02907e-23)
-(5.40314 -0.109461 -7.00968e-23)
-(5.42342 -0.112551 -6.41658e-24)
-(5.44327 -0.115804 -9.387e-24)
-(5.46271 -0.119223 4.2355e-23)
-(5.48176 -0.122813 8.54763e-24)
-(5.50042 -0.126572 3.24142e-23)
-(5.51872 -0.130511 -7.58235e-23)
-(5.53665 -0.134643 -1.73551e-23)
-(5.55423 -0.138975 -3.34251e-23)
-(5.57147 -0.143512 -4.1071e-23)
-(5.58835 -0.148256 -4.75942e-23)
-(5.60491 -0.15321 -3.00667e-23)
-(5.62115 -0.158383 -1.08215e-23)
-(5.63707 -0.163783 -1.70185e-23)
-(5.65268 -0.169419 -1.49188e-23)
-(5.66797 -0.175292 -8.24884e-23)
-(5.68295 -0.181408 -7.73491e-23)
-(5.69763 -0.187775 -1.61691e-23)
-(5.71199 -0.194398 -6.14437e-23)
-(5.72605 -0.201281 6.28443e-23)
-(5.73978 -0.208424 2.69528e-22)
-(5.75319 -0.215829 2.7339e-22)
-(5.76626 -0.223494 9.2361e-23)
-(5.779 -0.231415 3.02236e-23)
-(5.79138 -0.239587 2.73134e-23)
-(5.80341 -0.248002 7.13208e-23)
-(5.81506 -0.25665 3.02343e-23)
-(5.82634 -0.265517 1.08075e-22)
-(5.83722 -0.274591 2.45543e-22)
-(5.84771 -0.283856 2.03635e-22)
-(5.85779 -0.293294 8.33718e-23)
-(5.86746 -0.302889 1.75439e-22)
-(5.8767 -0.312622 1.31904e-22)
-(5.88552 -0.322475 2.29586e-23)
-(5.89391 -0.332428 3.46872e-23)
-(5.90186 -0.342462 4.1599e-23)
-(5.90937 -0.352557 1.08067e-22)
-(5.91643 -0.362694 9.02968e-23)
-(5.92304 -0.372852 6.64758e-23)
-(5.92919 -0.38301 3.08721e-23)
-(5.93488 -0.393147 1.03677e-23)
-(5.94011 -0.403244 4.82485e-23)
-(5.94487 -0.413279 -3.26718e-23)
-(5.94916 -0.423231 -5.12069e-23)
-(5.95299 -0.43308 1.17065e-22)
-(5.95634 -0.442806 2.88475e-24)
-(5.95921 -0.452389 -1.30534e-23)
-(5.96162 -0.461808 2.00569e-22)
-(5.96354 -0.471045 2.59247e-22)
-(5.965 -0.480081 9.90115e-23)
-(5.96597 -0.488897 -3.2902e-23)
-(5.96647 -0.497474 -6.04751e-23)
-(5.9665 -0.505796 5.8175e-23)
-(5.96605 -0.513846 1.53418e-22)
-(5.96514 -0.521606 7.89097e-23)
-(5.96375 -0.529062 1.18848e-22)
-(5.9619 -0.536199 3.73861e-23)
-(5.95958 -0.543003 -8.67976e-23)
-(5.95681 -0.549461 -3.87597e-23)
-(5.95358 -0.55556 -8.66406e-23)
-(5.94991 -0.561289 -3.81372e-23)
-(5.94579 -0.566638 9.1353e-23)
-(5.94123 -0.571599 3.02061e-23)
-(5.93625 -0.576161 5.14627e-23)
-(5.93084 -0.580319 6.39882e-23)
-(5.92502 -0.584065 1.89951e-22)
-(5.9188 -0.587396 1.28502e-22)
-(5.91219 -0.590308 -1.33266e-23)
-(5.90519 -0.592798 7.21871e-23)
-(5.89783 -0.594865 1.71164e-22)
-(5.8901 -0.596509 1.19681e-22)
-(5.88204 -0.597732 5.01106e-23)
-(5.87364 -0.598536 2.10964e-23)
-(5.86493 -0.598926 3.47324e-23)
-(5.85593 -0.598907 4.82813e-23)
-(5.84664 -0.598485 5.65995e-23)
-(5.8371 -0.59767 1.52579e-22)
-(5.8273 -0.59647 1.35273e-22)
-(5.81729 -0.594897 1.43243e-22)
-(5.80707 -0.592964 7.04081e-23)
-(5.79667 -0.590684 9.3854e-23)
-(5.78611 -0.588073 1.6417e-22)
-(5.77542 -0.585148 2.4728e-22)
-(5.76461 -0.581926 4.49276e-22)
-(5.75371 -0.578428 3.06574e-22)
-(5.74275 -0.574675 1.45036e-22)
-(5.73176 -0.570689 1.46434e-22)
-(5.72075 -0.566495 1.98671e-22)
-(5.70976 -0.562118 1.11539e-22)
-(5.69882 -0.557584 1.0659e-22)
-(5.68796 -0.552924 1.86508e-22)
-(5.67721 -0.548167 8.89772e-23)
-(5.6666 -0.543344 2.6135e-22)
-(5.65617 -0.53849 2.19145e-22)
-(5.64594 -0.53364 1.64701e-22)
-(5.63597 -0.52883 2.39849e-22)
-(5.62629 -0.524099 2.8938e-22)
-(5.61693 -0.519489 2.30489e-22)
-(5.60795 -0.515041 1.64701e-22)
-(5.5994 -0.510799 2.48589e-22)
-(5.59132 -0.50681 1.37735e-22)
-(5.58377 -0.503119 6.60726e-23)
-(5.57682 -0.499774 2.84529e-23)
-(5.57054 -0.496824 -2.83822e-23)
-(5.565 -0.494315 1.25952e-22)
-(5.5603 -0.492293 2.45834e-22)
-(5.55653 -0.490799 2.13417e-22)
-(5.5538 -0.489872 1.90128e-22)
-(5.55225 -0.489542 2.16535e-22)
-(5.55202 -0.489832 3.69626e-22)
-(5.55328 -0.490757 2.77759e-22)
-(5.55621 -0.492317 1.43974e-22)
-(5.561 -0.494513 -4.89329e-23)
-(5.5679 -0.4973 -1.69395e-22)
-(5.57699 -0.500753 -4.08047e-22)
-(5.58893 -0.504398 7.18445e-23)
-(5.60234 -0.509504 -2.63846e-22)
-(0.976419 0.39723 6.71634e-23)
-(1.40105 0.191496 -5.53001e-23)
-(1.97274 0.0953806 -7.5234e-23)
-(2.45146 0.0367837 -6.83282e-23)
-(2.85625 -0.0048125 -5.86165e-25)
-(3.2014 -0.0342926 -3.11179e-24)
-(3.49482 -0.053991 1.41007e-23)
-(3.74389 -0.0662995 1.32536e-23)
-(3.95557 -0.073346 1.32085e-23)
-(4.13625 -0.0769287 1.08444e-24)
-(4.29145 -0.0784902 -3.87806e-23)
-(4.42603 -0.0793115 -2.78422e-23)
-(4.5418 -0.079979 -5.10789e-23)
-(4.64194 -0.0804606 -3.11229e-23)
-(4.73032 -0.0807465 -3.98811e-24)
-(4.80949 -0.0809508 -1.07204e-23)
-(4.88127 -0.08116 -2.17755e-24)
-(4.94694 -0.0814044 8.03385e-24)
-(5.00748 -0.0816832 1.34175e-23)
-(5.06358 -0.0819837 1.83223e-23)
-(5.11582 -0.0822917 1.72215e-23)
-(5.16465 -0.082596 3.26522e-23)
-(5.21044 -0.0828897 8.81411e-23)
-(5.25351 -0.0831704 6.83277e-23)
-(5.29413 -0.0834391 6.85361e-23)
-(5.33254 -0.0837 6.90419e-23)
-(5.36895 -0.0839592 7.37296e-23)
-(5.40354 -0.0842176 8.14351e-23)
-(5.43644 -0.0844641 4.78135e-23)
-(5.46776 -0.0847156 6.88702e-23)
-(5.49762 -0.0849972 6.81983e-23)
-(5.52612 -0.0853044 7.17801e-23)
-(5.5534 -0.0856307 7.0949e-23)
-(5.57957 -0.0859718 6.87295e-23)
-(5.60472 -0.0863263 7.3478e-23)
-(5.62894 -0.0866953 -1.90989e-23)
-(5.65229 -0.0870814 -3.82837e-23)
-(5.67486 -0.0874878 -2.41396e-23)
-(5.69668 -0.0879187 -3.47872e-23)
-(5.71782 -0.0883782 -8.19735e-23)
-(5.73832 -0.0888706 -3.5479e-23)
-(5.75822 -0.0894005 -6.51722e-23)
-(5.77756 -0.0899728 -3.58077e-23)
-(5.79637 -0.0905924 -3.25111e-23)
-(5.81469 -0.0912649 -4.28291e-23)
-(5.83255 -0.0919957 -7.408e-23)
-(5.84996 -0.0927888 -9.85427e-23)
-(5.86696 -0.093644 -6.71057e-23)
-(5.88356 -0.0945687 -1.16805e-22)
-(5.89978 -0.0955759 -1.0475e-22)
-(5.91563 -0.0966706 -9.92073e-23)
-(5.93113 -0.0978565 -9.11933e-23)
-(5.94631 -0.0991376 -7.98158e-23)
-(5.96117 -0.100518 -4.24819e-23)
-(5.97575 -0.102004 -6.35376e-23)
-(5.99004 -0.1036 -7.9739e-23)
-(6.00407 -0.105312 -8.14475e-23)
-(6.01786 -0.107147 -6.05904e-23)
-(6.0314 -0.109109 -2.99169e-23)
-(6.04472 -0.111204 -3.33242e-23)
-(6.05781 -0.113432 -3.79596e-23)
-(6.0707 -0.115801 7.5675e-24)
-(6.08338 -0.118323 1.43991e-23)
-(6.09585 -0.121005 -2.01722e-23)
-(6.10813 -0.123852 -5.29669e-23)
-(6.12021 -0.126869 -1.3176e-22)
-(6.13209 -0.130062 -1.32204e-22)
-(6.14379 -0.133432 -8.91077e-23)
-(6.1553 -0.136981 -6.24373e-23)
-(6.16664 -0.140717 -2.71723e-23)
-(6.17781 -0.14465 -6.25381e-23)
-(6.1888 -0.148785 -6.12475e-23)
-(6.19962 -0.153129 -4.11036e-23)
-(6.21027 -0.157684 -1.81899e-23)
-(6.22074 -0.162455 6.22339e-24)
-(6.23104 -0.167448 5.00732e-24)
-(6.24118 -0.172672 -2.32691e-23)
-(6.25113 -0.17813 4.20276e-23)
-(6.26092 -0.183829 6.00311e-23)
-(6.27052 -0.189772 -1.30758e-24)
-(6.27994 -0.195965 1.20386e-23)
-(6.28917 -0.202414 3.10704e-24)
-(6.2982 -0.209119 3.67348e-24)
-(6.30702 -0.216083 2.53931e-23)
-(6.31562 -0.223305 1.01594e-22)
-(6.324 -0.230783 1.43013e-22)
-(6.33213 -0.238513 1.38037e-22)
-(6.34001 -0.246489 6.53305e-23)
-(6.34762 -0.254703 8.91222e-23)
-(6.35496 -0.263146 9.39667e-23)
-(6.362 -0.271803 9.14878e-23)
-(6.36874 -0.280663 8.98375e-23)
-(6.37515 -0.28971 8.12433e-23)
-(6.38124 -0.298926 7.01792e-23)
-(6.38699 -0.308296 4.10857e-23)
-(6.3924 -0.317801 5.49384e-23)
-(6.39744 -0.327424 6.03953e-23)
-(6.40211 -0.337144 4.18247e-23)
-(6.4064 -0.346942 3.67999e-23)
-(6.41031 -0.3568 6.08361e-23)
-(6.41382 -0.366698 6.09428e-23)
-(6.41692 -0.376614 3.19986e-23)
-(6.41962 -0.386529 8.78313e-24)
-(6.42189 -0.396422 3.14854e-23)
-(6.42375 -0.406274 7.53366e-23)
-(6.42517 -0.416062 9.42464e-23)
-(6.42615 -0.425767 5.61559e-23)
-(6.42669 -0.435369 4.7144e-23)
-(6.42678 -0.444848 6.73535e-23)
-(6.42642 -0.454183 1.98986e-23)
-(6.42561 -0.463355 -6.01527e-24)
-(6.42434 -0.472345 3.55092e-23)
-(6.42261 -0.481134 4.55144e-23)
-(6.42041 -0.489704 3.5703e-23)
-(6.41775 -0.498037 4.19616e-23)
-(6.41462 -0.506115 3.28394e-23)
-(6.41103 -0.513923 7.76925e-23)
-(6.40697 -0.521443 4.08234e-23)
-(6.40244 -0.528661 5.23735e-23)
-(6.39745 -0.535562 8.5132e-23)
-(6.392 -0.542133 5.54256e-23)
-(6.38609 -0.54836 2.15649e-23)
-(6.37973 -0.554232 -1.49535e-23)
-(6.37291 -0.559738 -5.93208e-24)
-(6.36565 -0.564868 6.21656e-23)
-(6.35795 -0.569612 7.09743e-23)
-(6.34981 -0.573964 4.7304e-23)
-(6.34125 -0.577915 4.97074e-23)
-(6.33227 -0.581461 1.15093e-22)
-(6.32289 -0.584597 1.35809e-22)
-(6.31311 -0.58732 7.44001e-23)
-(6.30294 -0.589627 7.78917e-23)
-(6.2924 -0.591518 1.06623e-22)
-(6.28149 -0.592993 1.1951e-22)
-(6.27024 -0.594054 6.60293e-23)
-(6.25866 -0.594705 7.97953e-23)
-(6.24676 -0.594949 1.05031e-22)
-(6.23456 -0.594793 1.13196e-22)
-(6.22208 -0.594244 8.57213e-23)
-(6.20933 -0.59331 1.04316e-22)
-(6.19634 -0.592002 1.02329e-22)
-(6.18313 -0.590331 1.17843e-22)
-(6.16971 -0.588309 1.4594e-22)
-(6.15611 -0.585952 1.12608e-22)
-(6.14236 -0.583275 9.31218e-23)
-(6.12847 -0.580294 2.01288e-22)
-(6.11447 -0.57703 1.83191e-22)
-(6.10039 -0.573501 2.14307e-22)
-(6.08625 -0.569729 2.31543e-22)
-(6.07208 -0.565737 2.61867e-22)
-(6.05791 -0.561551 6.52301e-23)
-(6.04377 -0.557194 9.32979e-23)
-(6.02968 -0.552696 1.90787e-22)
-(6.01568 -0.548084 1.17841e-22)
-(6.0018 -0.543391 1.15361e-22)
-(5.98808 -0.538648 1.66107e-22)
-(5.97454 -0.533889 1.97901e-22)
-(5.96123 -0.52915 4.33625e-23)
-(5.94818 -0.524469 1.16818e-22)
-(5.93544 -0.519887 1.44928e-22)
-(5.92305 -0.515444 3.36011e-22)
-(5.91104 -0.511184 1.39293e-22)
-(5.89948 -0.507154 1.69908e-22)
-(5.88841 -0.5034 2.51866e-22)
-(5.8779 -0.499971 3.12663e-22)
-(5.86801 -0.496919 3.49211e-22)
-(5.8588 -0.494294 2.11229e-22)
-(5.85036 -0.492147 1.77748e-22)
-(5.84278 -0.490529 1.81918e-22)
-(5.83616 -0.489487 2.66647e-23)
-(5.83062 -0.489066 3.33209e-23)
-(5.82629 -0.489303 1.22416e-22)
-(5.82332 -0.49023 2.20497e-22)
-(5.82187 -0.491869 1.55971e-22)
-(5.82215 -0.494227 1.01496e-22)
-(5.82433 -0.49731 1.17213e-24)
-(5.82866 -0.501077 7.50187e-23)
-(5.83528 -0.505592 -1.36306e-23)
-(5.84453 -0.510401 -1.41762e-22)
-(5.85623 -0.516667 -1.58574e-22)
-(7.81915 -0.0730127 2.76839e-23)
-(7.72413 -0.0903797 1.73956e-23)
-(7.61565 -0.100804 1.08527e-23)
-(7.49341 -0.106149 2.96177e-23)
-(7.36644 -0.107979 1.75307e-23)
-(7.24456 -0.107967 6.17615e-24)
-(7.13374 -0.10706 -6.35962e-24)
-(7.03711 -0.10585 -4.41309e-23)
-(6.95577 -0.104666 -6.58021e-23)
-(6.88936 -0.10365 -5.72824e-23)
-(6.83644 -0.102826 -6.06095e-23)
-(6.79508 -0.102088 -4.78348e-23)
-(6.76305 -0.101343 -8.05049e-24)
-(6.73828 -0.100628 -5.46812e-23)
-(6.71899 -0.0999664 -1.10579e-22)
-(6.7038 -0.0993314 -7.91158e-23)
-(6.69171 -0.0987006 -1.43075e-23)
-(6.68196 -0.0980652 2.23666e-23)
-(6.67403 -0.0974298 1.12129e-23)
-(6.66753 -0.0968079 1.18826e-23)
-(6.6622 -0.0962159 -1.39368e-23)
-(6.65786 -0.0956687 1.92365e-23)
-(6.65437 -0.0951778 3.61824e-23)
-(6.65164 -0.0947501 5.87776e-23)
-(6.64959 -0.0943888 1.19206e-22)
-(6.64816 -0.0940942 1.26275e-22)
-(6.64727 -0.093864 1.22099e-22)
-(6.64688 -0.0936912 1.1009e-22)
-(6.64693 -0.0935621 5.87301e-23)
-(6.64737 -0.0934757 3.13471e-23)
-(6.64815 -0.0934398 -7.80705e-24)
-(6.64922 -0.0934497 1.81609e-23)
-(6.65054 -0.0934997 7.19668e-24)
-(6.65209 -0.0935861 -3.25619e-23)
-(6.65385 -0.093707 -1.93051e-23)
-(6.65579 -0.0938618 -6.43548e-23)
-(6.65791 -0.0940509 -3.22366e-23)
-(6.66019 -0.0942756 -7.61728e-23)
-(6.66262 -0.094538 -1.0695e-22)
-(6.6652 -0.0948407 -5.9959e-23)
-(6.66792 -0.095187 -8.75657e-23)
-(6.67077 -0.0955803 -1.07966e-22)
-(6.67376 -0.0960246 -6.07899e-23)
-(6.67686 -0.0965241 -3.12441e-23)
-(6.68008 -0.0970834 -2.91054e-23)
-(6.68342 -0.0977069 -4.53677e-23)
-(6.68686 -0.0983981 -5.22647e-23)
-(6.69041 -0.0991581 -4.33517e-23)
-(6.69405 -0.0999925 -3.52181e-23)
-(6.69779 -0.100911 -4.46484e-23)
-(6.70162 -0.10192 -6.2061e-23)
-(6.70553 -0.103024 -2.38661e-23)
-(6.70951 -0.104227 -1.18382e-23)
-(6.71357 -0.105535 -6.2829e-24)
-(6.7177 -0.106952 -4.08151e-23)
-(6.7219 -0.108483 -7.00213e-23)
-(6.72617 -0.110133 -1.10933e-22)
-(6.7305 -0.111909 -4.56029e-23)
-(6.7349 -0.113814 -1.90749e-23)
-(6.73935 -0.115854 -2.75633e-23)
-(6.74385 -0.118031 -3.6434e-23)
-(6.74842 -0.120351 -2.8178e-23)
-(6.75303 -0.122823 -1.38164e-23)
-(6.75769 -0.125454 -3.75726e-23)
-(6.76239 -0.128249 -5.64139e-23)
-(6.76712 -0.131214 -9.71391e-23)
-(6.77188 -0.134353 -1.75563e-22)
-(6.77666 -0.137671 -1.81925e-22)
-(6.78146 -0.14117 -2.00942e-22)
-(6.78627 -0.144856 -1.0425e-22)
-(6.7911 -0.148737 -9.36178e-23)
-(6.79593 -0.15282 -9.4819e-23)
-(6.80076 -0.157108 -8.31371e-24)
-(6.80558 -0.161608 4.63824e-23)
-(6.81038 -0.166322 8.67071e-23)
-(6.81516 -0.171258 1.05947e-22)
-(6.81992 -0.176421 8.56721e-23)
-(6.82464 -0.181817 5.11521e-23)
-(6.82932 -0.18745 8.05901e-23)
-(6.83395 -0.193324 4.13468e-23)
-(6.83851 -0.199445 6.35805e-23)
-(6.84299 -0.205815 5.54842e-23)
-(6.84739 -0.212438 2.76808e-23)
-(6.85168 -0.219313 2.85295e-23)
-(6.85586 -0.226441 1.19353e-22)
-(6.85991 -0.233818 1.11614e-22)
-(6.86381 -0.24144 1.21634e-22)
-(6.86754 -0.249302 5.53028e-23)
-(6.8711 -0.257394 1.40556e-22)
-(6.87445 -0.265708 1.77078e-22)
-(6.8776 -0.27423 8.94958e-23)
-(6.88051 -0.282948 7.97609e-24)
-(6.88317 -0.291846 6.67072e-23)
-(6.88558 -0.300909 6.14515e-23)
-(6.88771 -0.310119 4.01991e-23)
-(6.88955 -0.31946 3.30025e-23)
-(6.89108 -0.328912 4.15572e-23)
-(6.8923 -0.338457 2.42193e-23)
-(6.8932 -0.348077 1.96256e-23)
-(6.89375 -0.357751 4.87625e-23)
-(6.89395 -0.36746 4.08008e-23)
-(6.89379 -0.377185 -3.13323e-23)
-(6.89325 -0.386904 -6.15361e-23)
-(6.89233 -0.396599 6.85821e-23)
-(6.89102 -0.406248 1.49363e-22)
-(6.8893 -0.415831 1.38985e-22)
-(6.88717 -0.425329 2.83518e-23)
-(6.88463 -0.434721 8.37147e-23)
-(6.88165 -0.443987 6.20552e-23)
-(6.87824 -0.453109 -5.93346e-23)
-(6.8744 -0.462065 -8.64093e-24)
-(6.8701 -0.470839 5.04877e-23)
-(6.86536 -0.479411 4.92589e-23)
-(6.86017 -0.487762 6.14922e-23)
-(6.85451 -0.495877 3.62944e-23)
-(6.8484 -0.503737 4.29477e-23)
-(6.84183 -0.511326 2.92576e-23)
-(6.83479 -0.518629 6.82809e-23)
-(6.8273 -0.525631 5.15577e-23)
-(6.81934 -0.532317 3.02333e-23)
-(6.81092 -0.538675 6.06388e-23)
-(6.80204 -0.544691 4.73107e-23)
-(6.7927 -0.550354 -2.50969e-23)
-(6.78292 -0.555654 2.85283e-23)
-(6.77269 -0.56058 6.52272e-23)
-(6.76201 -0.565125 6.82742e-23)
-(6.7509 -0.569281 1.14342e-22)
-(6.73937 -0.573042 6.2818e-23)
-(6.72741 -0.576401 8.83361e-23)
-(6.71505 -0.579356 1.37348e-22)
-(6.70228 -0.581902 9.465e-23)
-(6.68913 -0.58404 8.04563e-23)
-(6.67561 -0.585767 7.2352e-23)
-(6.66172 -0.587086 1.052e-22)
-(6.64748 -0.587998 1.13587e-22)
-(6.63291 -0.588506 9.1275e-23)
-(6.61803 -0.588616 1.05177e-22)
-(6.60284 -0.588335 1.0227e-22)
-(6.58738 -0.587669 1.28801e-22)
-(6.57165 -0.586627 1.59939e-22)
-(6.55568 -0.585221 8.37209e-23)
-(6.53948 -0.583461 1.03024e-22)
-(6.52309 -0.581362 1.33576e-22)
-(6.50652 -0.578937 1.07032e-22)
-(6.4898 -0.576204 1.52064e-22)
-(6.47295 -0.573178 2.16383e-22)
-(6.45599 -0.56988 2.81475e-22)
-(6.43896 -0.56633 1.47982e-22)
-(6.42187 -0.56255 1.70096e-22)
-(6.40476 -0.558562 3.15483e-22)
-(6.38766 -0.554392 1.45808e-22)
-(6.3706 -0.550066 1.76067e-23)
-(6.3536 -0.545612 8.05946e-23)
-(6.33669 -0.541059 2.13807e-22)
-(6.31992 -0.536439 2.69451e-22)
-(6.30332 -0.531785 1.7289e-22)
-(6.28691 -0.527131 9.9245e-23)
-(6.27074 -0.522514 2.70919e-23)
-(6.25484 -0.517972 1.69536e-22)
-(6.23926 -0.513547 1.29546e-22)
-(6.22404 -0.509281 2.24337e-22)
-(6.20923 -0.50522 1.9946e-22)
-(6.19487 -0.50141 1.56793e-22)
-(6.18101 -0.497901 1.48887e-22)
-(6.16773 -0.494745 2.93895e-22)
-(6.15507 -0.491995 3.08416e-22)
-(6.14312 -0.489705 2.02648e-22)
-(6.13196 -0.487932 2.46437e-22)
-(6.12167 -0.486729 8.25753e-23)
-(6.11236 -0.486151 5.65134e-24)
-(6.10414 -0.486248 -3.54115e-24)
-(6.09716 -0.487068 8.99564e-23)
-(6.09157 -0.488647 2.19678e-22)
-(6.08754 -0.491016 6.59381e-23)
-(6.08526 -0.494191 8.03283e-23)
-(6.08493 -0.498179 6.30804e-23)
-(6.08677 -0.502945 7.94176e-23)
-(6.091 -0.508533 3.48603e-23)
-(6.09762 -0.514522 -7.45111e-23)
-(6.10769 -0.5219 -1.66376e-23)
-(9.33814 0.024759 -7.97839e-23)
-(9.31071 0.030128 -1.05592e-22)
-(9.2803 0.0317549 -9.23194e-23)
-(9.24317 0.0289298 -1.04581e-22)
-(9.1981 0.0236999 -9.77678e-23)
-(9.14582 0.0167612 -1.29557e-22)
-(9.08692 0.00864052 -1.11017e-22)
-(9.02203 -8.76627e-05 -8.27163e-23)
-(8.95212 -0.00892384 -6.31733e-23)
-(8.8784 -0.0174974 -7.70976e-23)
-(8.80223 -0.0255615 -1.15184e-22)
-(8.72495 -0.0329508 -7.35153e-23)
-(8.64782 -0.0395877 -1.73978e-22)
-(8.57196 -0.0455037 -2.17334e-22)
-(8.49824 -0.0507551 -1.37025e-22)
-(8.42736 -0.0553895 -1.36035e-22)
-(8.35981 -0.0594637 -1.48611e-22)
-(8.29592 -0.06304 -6.32834e-23)
-(8.23584 -0.0661784 2.91806e-23)
-(8.17963 -0.0689327 1.0654e-22)
-(8.12721 -0.0713494 1.73151e-22)
-(8.07844 -0.0734685 9.58838e-23)
-(8.03313 -0.0753247 6.48016e-23)
-(7.99105 -0.0769488 6.10814e-23)
-(7.95195 -0.078369 6.13759e-23)
-(7.91559 -0.0796112 -9.75198e-23)
-(7.88173 -0.0806996 -1.50534e-22)
-(7.85015 -0.0816545 -1.14021e-22)
-(7.82064 -0.0824922 -7.00334e-23)
-(7.79302 -0.0832347 -3.35366e-23)
-(7.76713 -0.0839077 1.24817e-23)
-(7.74283 -0.0845299 1.16368e-24)
-(7.71997 -0.0851157 -1.2998e-23)
-(7.69845 -0.0856779 -4.85411e-23)
-(7.67818 -0.086228 -4.63888e-23)
-(7.65906 -0.0867757 -1.26827e-22)
-(7.64103 -0.0873296 -1.92781e-22)
-(7.62402 -0.087897 -1.35871e-22)
-(7.60797 -0.0884842 -1.57163e-22)
-(7.59283 -0.0890968 -1.44814e-22)
-(7.57854 -0.0897401 -9.23897e-23)
-(7.56506 -0.0904188 -3.00753e-23)
-(7.55235 -0.0911375 -7.15023e-24)
-(7.54036 -0.0919008 6.51694e-23)
-(7.52907 -0.0927132 -4.61021e-24)
-(7.51842 -0.0935792 -6.76172e-23)
-(7.50838 -0.0945025 -2.87778e-23)
-(7.49894 -0.095486 2.45039e-24)
-(7.49005 -0.0965349 7.48671e-23)
-(7.4817 -0.0976569 5.32873e-23)
-(7.47385 -0.0988584 7.79378e-23)
-(7.46649 -0.100145 8.70117e-23)
-(7.45958 -0.101522 2.92488e-23)
-(7.45311 -0.102994 -1.04037e-22)
-(7.44706 -0.104568 -4.34295e-23)
-(7.44141 -0.106249 -8.62962e-24)
-(7.43614 -0.108042 2.68087e-23)
-(7.43124 -0.109954 1.29926e-23)
-(7.42669 -0.111989 6.3231e-23)
-(7.42248 -0.114152 -4.02008e-23)
-(7.41859 -0.116447 -5.67896e-23)
-(7.41502 -0.11888 -4.77945e-23)
-(7.41174 -0.121459 4.10288e-24)
-(7.40874 -0.124189 -1.03628e-22)
-(7.40601 -0.127078 -1.95449e-22)
-(7.40354 -0.13013 -3.75888e-22)
-(7.4013 -0.133351 -2.88441e-22)
-(7.39929 -0.136745 -1.80606e-22)
-(7.3975 -0.140316 -1.8211e-22)
-(7.3959 -0.144069 -8.36862e-23)
-(7.3945 -0.148012 -4.6295e-24)
-(7.39328 -0.15215 6.0126e-23)
-(7.39222 -0.156489 8.60683e-23)
-(7.39131 -0.161034 2.13275e-22)
-(7.39054 -0.165788 2.45091e-22)
-(7.3899 -0.170758 1.60497e-22)
-(7.38938 -0.17595 -2.42242e-23)
-(7.38895 -0.181368 -1.13559e-23)
-(7.3886 -0.187017 -2.29845e-23)
-(7.38833 -0.192901 9.49354e-23)
-(7.38811 -0.199025 1.6288e-22)
-(7.38793 -0.205391 9.81051e-23)
-(7.38777 -0.212 8.83635e-23)
-(7.38761 -0.218854 9.28266e-23)
-(7.38743 -0.225952 5.29476e-23)
-(7.38722 -0.23329 6.55188e-23)
-(7.38694 -0.240865 6.40922e-23)
-(7.38659 -0.24867 1.46433e-22)
-(7.38614 -0.256696 1.54809e-22)
-(7.38557 -0.264935 1.26336e-22)
-(7.38486 -0.273373 -5.19966e-24)
-(7.38399 -0.281999 -1.01945e-23)
-(7.38294 -0.290797 7.03826e-23)
-(7.38169 -0.299752 4.97728e-23)
-(7.38022 -0.308847 1.65482e-23)
-(7.37853 -0.318064 -5.75412e-24)
-(7.37658 -0.327387 3.90485e-23)
-(7.37437 -0.336796 -1.55751e-23)
-(7.37187 -0.346274 -2.20821e-23)
-(7.36908 -0.355799 7.78244e-23)
-(7.36598 -0.365354 2.6215e-23)
-(7.36255 -0.374919 -4.15002e-23)
-(7.35878 -0.384474 -4.32644e-23)
-(7.35465 -0.393998 1.17952e-22)
-(7.35017 -0.403473 2.17627e-22)
-(7.3453 -0.412878 6.2083e-23)
-(7.34005 -0.422193 -6.0218e-23)
-(7.3344 -0.431398 6.118e-23)
-(7.32834 -0.440475 -5.13906e-23)
-(7.32186 -0.449404 -2.08667e-22)
-(7.31496 -0.458166 -1.17165e-22)
-(7.30763 -0.466742 3.39235e-23)
-(7.29987 -0.475114 6.68293e-23)
-(7.29166 -0.483266 1.81492e-23)
-(7.283 -0.491178 1.97563e-24)
-(7.27389 -0.498836 -2.87697e-23)
-(7.26432 -0.506223 7.75593e-23)
-(7.2543 -0.513323 5.73487e-23)
-(7.24382 -0.520123 -1.7625e-23)
-(7.23289 -0.526608 6.27738e-23)
-(7.22149 -0.532765 -9.57661e-24)
-(7.20965 -0.538582 -3.50837e-23)
-(7.19734 -0.544049 6.28775e-23)
-(7.1846 -0.549155 1.01334e-22)
-(7.1714 -0.553891 1.03755e-22)
-(7.15777 -0.558248 7.37165e-23)
-(7.1437 -0.56222 1.28584e-22)
-(7.12921 -0.5658 1.51289e-22)
-(7.11431 -0.568985 9.6223e-23)
-(7.099 -0.571769 9.49768e-23)
-(7.08329 -0.574151 7.35867e-23)
-(7.0672 -0.576129 7.01875e-23)
-(7.05073 -0.577704 2.67026e-23)
-(7.03391 -0.578876 9.06547e-23)
-(7.01675 -0.579649 1.6932e-22)
-(6.99925 -0.580027 9.60424e-23)
-(6.98145 -0.580013 1.18993e-22)
-(6.96335 -0.579617 1.74665e-22)
-(6.94498 -0.578844 1.37375e-22)
-(6.92635 -0.577706 7.62443e-23)
-(6.90748 -0.576212 3.29885e-23)
-(6.8884 -0.574375 1.60008e-22)
-(6.86913 -0.572208 1.55325e-22)
-(6.84969 -0.569727 5.22024e-23)
-(6.8301 -0.566947 1.61695e-22)
-(6.8104 -0.563888 2.77483e-22)
-(6.7906 -0.560567 2.59637e-22)
-(6.77073 -0.557006 1.87653e-22)
-(6.75081 -0.553227 1.10798e-22)
-(6.73089 -0.549253 4.66843e-22)
-(6.71098 -0.545111 4.31985e-22)
-(6.69112 -0.540826 6.32684e-23)
-(6.67133 -0.536426 1.09702e-23)
-(6.65165 -0.531942 3.30585e-22)
-(6.63211 -0.527406 4.79764e-22)
-(6.61274 -0.52285 1.57031e-22)
-(6.59359 -0.518311 -4.45732e-23)
-(6.57468 -0.513825 3.99292e-23)
-(6.55606 -0.509432 1.45103e-22)
-(6.53776 -0.505174 1.07186e-22)
-(6.51983 -0.501094 1.82612e-23)
-(6.50231 -0.49724 7.29137e-23)
-(6.48526 -0.493659 1.35236e-22)
-(6.46872 -0.490404 1.81989e-22)
-(6.45276 -0.487529 1.91397e-22)
-(6.43744 -0.485089 1.90507e-22)
-(6.42283 -0.483143 9.5529e-23)
-(6.40901 -0.48175 3.34658e-22)
-(6.39607 -0.480971 -9.6e-23)
-(6.38412 -0.480865 -1.02905e-22)
-(6.37328 -0.481491 -6.23331e-23)
-(6.36369 -0.482901 1.17983e-22)
-(6.3555 -0.485143 2.34923e-22)
-(6.34889 -0.488255 1.5331e-22)
-(6.34405 -0.492259 2.00339e-22)
-(6.3412 -0.497166 1.02557e-22)
-(6.34053 -0.502943 8.61545e-23)
-(6.34233 -0.50961 -1.49713e-23)
-(6.34632 -0.516788 1.34138e-22)
-(6.35469 -0.525208 2.55238e-22)
-(9.81602 0.0260222 2.4489e-23)
-(9.80591 0.0216846 -2.36805e-23)
-(9.79638 0.0172879 -1.34814e-23)
-(9.78697 0.0127352 -1.01203e-23)
-(9.77673 0.00910107 -1.96853e-25)
-(9.76542 0.00647951 2.55484e-23)
-(9.75284 0.00458802 -6.04828e-23)
-(9.73863 0.00317321 -1.03049e-22)
-(9.72243 0.00201869 -8.48613e-23)
-(9.70399 0.000929665 -1.44951e-22)
-(9.6831 -0.000250393 -1.359e-22)
-(9.65962 -0.00161992 -6.95089e-23)
-(9.63346 -0.00323412 -2.60731e-23)
-(9.60462 -0.00513354 3.57735e-23)
-(9.57313 -0.00732792 1.53039e-23)
-(9.53907 -0.00979154 3.17265e-24)
-(9.50258 -0.012482 -2.1731e-23)
-(9.46386 -0.0153511 -1.18142e-22)
-(9.42315 -0.0183494 -1.73445e-22)
-(9.38071 -0.021429 -1.59606e-22)
-(9.33683 -0.0245469 -2.18236e-22)
-(9.29184 -0.0276659 -2.44816e-22)
-(9.24605 -0.0307553 -1.83367e-22)
-(9.19977 -0.0337904 -8.79113e-23)
-(9.1533 -0.0367527 -7.83783e-23)
-(9.10694 -0.0396281 1.64652e-23)
-(9.06093 -0.0424067 1.05974e-22)
-(9.01552 -0.0450808 -1.28386e-23)
-(8.9709 -0.0476448 4.00952e-24)
-(8.92724 -0.050098 4.84685e-23)
-(8.88469 -0.0524448 8.67407e-24)
-(8.84334 -0.0546888 -9.00533e-24)
-(8.80327 -0.056833 -9.61063e-24)
-(8.76452 -0.0588817 2.95137e-23)
-(8.72713 -0.06084 -3.47882e-23)
-(8.69108 -0.062714 -9.50743e-23)
-(8.65639 -0.0645105 -9.70713e-24)
-(8.62302 -0.0662372 -3.1378e-23)
-(8.59094 -0.0679023 1.45225e-23)
-(8.56012 -0.0695147 -2.84475e-23)
-(8.53051 -0.0710836 1.40685e-24)
-(8.50208 -0.0726189 1.16785e-22)
-(8.47477 -0.0741306 4.86593e-23)
-(8.44855 -0.0756288 7.03354e-23)
-(8.42337 -0.0771237 3.37717e-23)
-(8.39919 -0.0786253 5.97246e-23)
-(8.37597 -0.0801428 7e-24)
-(8.35368 -0.0816848 1.37998e-23)
-(8.33228 -0.0832606 9.73916e-23)
-(8.31175 -0.0848808 1.50405e-22)
-(8.29205 -0.0865548 -8.52329e-24)
-(8.27315 -0.0882908 -2.05499e-22)
-(8.25502 -0.0900968 -1.38211e-22)
-(8.23764 -0.0919802 -4.36519e-23)
-(8.22097 -0.0939481 -3.10305e-23)
-(8.205 -0.0960074 5.69357e-23)
-(8.18969 -0.0981645 -2.93529e-23)
-(8.17502 -0.100426 -1.29734e-22)
-(8.16098 -0.102797 -3.0824e-22)
-(8.14753 -0.105284 -1.37569e-22)
-(8.13465 -0.10789 -1.3545e-22)
-(8.12232 -0.110623 -3.11041e-22)
-(8.11053 -0.11349 -3.89757e-22)
-(8.09924 -0.116495 -2.37721e-22)
-(8.08844 -0.119647 -2.2094e-22)
-(8.07811 -0.12295 -1.6951e-22)
-(8.06823 -0.12641 3.21199e-23)
-(8.05877 -0.130031 3.11361e-23)
-(8.04972 -0.133819 7.73594e-23)
-(8.04106 -0.137779 6.55552e-23)
-(8.03277 -0.141917 1.91062e-22)
-(8.02484 -0.14624 1.52e-22)
-(8.01724 -0.150753 1.01362e-22)
-(8.00995 -0.155461 2.30836e-23)
-(8.00296 -0.160369 6.24584e-23)
-(7.99624 -0.165482 -8.7802e-23)
-(7.98979 -0.170807 -1.95247e-22)
-(7.98358 -0.176347 -4.27543e-23)
-(7.97758 -0.182107 9.23626e-24)
-(7.97179 -0.188092 1.34082e-22)
-(7.96617 -0.194305 3.90765e-23)
-(7.96071 -0.200748 2.11136e-22)
-(7.95538 -0.207424 3.99807e-23)
-(7.95017 -0.214332 9.28967e-23)
-(7.94504 -0.221471 1.70251e-22)
-(7.93997 -0.228838 4.45403e-23)
-(7.93494 -0.23643 5.55218e-23)
-(7.92992 -0.244239 1.67421e-22)
-(7.92489 -0.252258 2.01135e-22)
-(7.91983 -0.260477 -3.72987e-23)
-(7.9147 -0.268885 -3.08461e-23)
-(7.90949 -0.277469 8.34803e-25)
-(7.90417 -0.286214 1.62448e-22)
-(7.89872 -0.295105 7.64192e-24)
-(7.89311 -0.304126 1.01598e-22)
-(7.88734 -0.313261 1.87906e-22)
-(7.88137 -0.322492 -3.21107e-23)
-(7.87518 -0.331801 9.4741e-24)
-(7.86877 -0.341169 1.35044e-22)
-(7.8621 -0.350577 1.57698e-22)
-(7.85516 -0.360008 -5.84087e-23)
-(7.84794 -0.36944 -2.87514e-23)
-(7.84042 -0.378856 1.66487e-22)
-(7.83258 -0.388235 -4.81711e-23)
-(7.8244 -0.397558 -4.43714e-23)
-(7.81588 -0.406806 1.64005e-22)
-(7.80701 -0.415958 1.23578e-22)
-(7.79775 -0.424997 -1.806e-22)
-(7.78812 -0.433902 -2.35e-22)
-(7.77809 -0.442656 9.79562e-23)
-(7.76766 -0.451238 5.75721e-24)
-(7.75682 -0.459633 2.41389e-23)
-(7.74555 -0.467821 1.69678e-22)
-(7.73386 -0.475786 -1.03702e-23)
-(7.72174 -0.483511 -4.77704e-23)
-(7.70918 -0.49098 -9.87107e-23)
-(7.69618 -0.498177 -9.39704e-23)
-(7.68273 -0.505087 -1.96293e-23)
-(7.66885 -0.511697 8.5782e-23)
-(7.65451 -0.517993 9.93733e-23)
-(7.63973 -0.523963 1.81384e-22)
-(7.62451 -0.529595 2.03242e-22)
-(7.60884 -0.534878 1.45352e-22)
-(7.59274 -0.539803 7.14774e-23)
-(7.57621 -0.54436 -7.58836e-23)
-(7.55925 -0.548543 -2.71231e-23)
-(7.54186 -0.552345 9.02962e-23)
-(7.52407 -0.555759 1.30262e-22)
-(7.50587 -0.558783 2.76403e-22)
-(7.48728 -0.561411 2.20423e-22)
-(7.46831 -0.563643 2.88766e-23)
-(7.44896 -0.565478 6.46934e-23)
-(7.42926 -0.566916 1.23513e-22)
-(7.40921 -0.567959 1.0755e-22)
-(7.38884 -0.568609 1.2399e-22)
-(7.36815 -0.568873 1.33963e-23)
-(7.34717 -0.568754 8.66475e-23)
-(7.32591 -0.56826 2.21384e-22)
-(7.30439 -0.567399 1.90065e-22)
-(7.28263 -0.566182 1.16622e-22)
-(7.26066 -0.56462 1.49073e-23)
-(7.23848 -0.562724 9.91336e-23)
-(7.21613 -0.56051 6.43943e-23)
-(7.19363 -0.557991 1.68252e-22)
-(7.17101 -0.555186 -7.93443e-25)
-(7.14827 -0.552112 5.05983e-23)
-(7.12546 -0.548789 5.36156e-23)
-(7.1026 -0.545238 2.58419e-22)
-(7.07972 -0.541481 5.85008e-22)
-(7.05684 -0.537543 2.30817e-22)
-(7.03398 -0.533449 8.28455e-23)
-(7.0112 -0.529225 2.85935e-22)
-(6.9885 -0.524901 4.31262e-22)
-(6.96592 -0.520507 2.87768e-22)
-(6.9435 -0.516075 2.54365e-22)
-(6.92127 -0.511639 3.28349e-22)
-(6.89926 -0.507235 -3.6131e-23)
-(6.87751 -0.5029 -7.52553e-23)
-(6.85605 -0.498676 1.70708e-22)
-(6.83493 -0.494604 5.38048e-22)
-(6.81419 -0.490731 3.17932e-22)
-(6.79387 -0.487103 1.37441e-22)
-(6.77402 -0.48377 1.67826e-22)
-(6.7547 -0.480788 1.22032e-22)
-(6.73595 -0.478211 3.23444e-22)
-(6.71785 -0.476099 2.30893e-22)
-(6.70046 -0.474514 1.33492e-22)
-(6.68386 -0.47352 -8.55981e-23)
-(6.66815 -0.473181 -3.20777e-22)
-(6.65343 -0.473565 -3.25861e-23)
-(6.63981 -0.474736 -1.10453e-22)
-(6.62745 -0.476756 2.12366e-22)
-(6.61649 -0.479682 2.42882e-22)
-(6.60713 -0.483557 3.91963e-22)
-(6.59954 -0.488413 5.07456e-22)
-(6.59397 -0.494262 2.93458e-22)
-(6.59059 -0.501075 -6.53625e-22)
-(6.58975 -0.508839 1.93736e-22)
-(6.59094 -0.517226 5.86646e-22)
-(6.59734 -0.526639 -2.05522e-22)
-(10.0045 0.0346854 -4.55448e-23)
-(10.0014 0.0322457 4.70076e-23)
-(9.99829 0.0304463 4.51837e-23)
-(9.9952 0.0285622 9.78373e-23)
-(9.99181 0.02663 8.4674e-23)
-(9.98809 0.0246622 1.67436e-22)
-(9.98413 0.0225815 2.43724e-22)
-(9.97995 0.0203737 2.1143e-22)
-(9.97552 0.0180829 1.70398e-22)
-(9.97081 0.0157695 2.30222e-22)
-(9.96575 0.0134922 2.71281e-22)
-(9.96029 0.0113045 1.10445e-22)
-(9.95438 0.00924499 3.51262e-23)
-(9.94793 0.0073271 3.16904e-23)
-(9.94086 0.00554781 4.27348e-24)
-(9.93309 0.00389794 -6.5072e-23)
-(9.92453 0.00236197 -8.20464e-23)
-(9.91509 0.000917787 -2.00444e-22)
-(9.90469 -0.000460636 -1.67827e-22)
-(9.89324 -0.0018005 -1.8445e-22)
-(9.88068 -0.0031281 -2.33932e-23)
-(9.86694 -0.00446729 1.38012e-23)
-(9.85196 -0.00583855 -1.55376e-23)
-(9.8357 -0.00725842 -8.71983e-23)
-(9.81812 -0.00873934 -1.24845e-22)
-(9.79921 -0.0102897 -1.11245e-22)
-(9.77897 -0.0119138 -1.23394e-22)
-(9.7574 -0.0136124 4.81299e-23)
-(9.73454 -0.0153833 -1.53657e-22)
-(9.71044 -0.0172234 -2.95405e-22)
-(9.68515 -0.0191301 -2.33168e-22)
-(9.65877 -0.0210984 -2.11132e-22)
-(9.63137 -0.0231221 -2.15303e-22)
-(9.60306 -0.0251944 -3.06346e-22)
-(9.57396 -0.0273085 -2.18647e-22)
-(9.54417 -0.0294584 -4.76913e-23)
-(9.51384 -0.0316385 2.27128e-23)
-(9.48308 -0.033844 -1.29669e-22)
-(9.45201 -0.0360709 -9.26186e-23)
-(9.42077 -0.0383159 -8.70942e-23)
-(9.38948 -0.040577 -7.9259e-23)
-(9.35824 -0.0428526 -9.92609e-23)
-(9.32715 -0.0451422 -2.53133e-22)
-(9.29633 -0.0474458 -3.77748e-22)
-(9.26584 -0.0497642 -1.52923e-22)
-(9.23577 -0.0520988 -1.68443e-22)
-(9.20618 -0.0544514 -1.49201e-22)
-(9.17712 -0.056824 -1.50511e-22)
-(9.14865 -0.0592202 -2.52415e-22)
-(9.12079 -0.0616446 -2.03407e-22)
-(9.09358 -0.0641023 -1.70675e-22)
-(9.06703 -0.0665984 -9.06119e-23)
-(9.04115 -0.0691383 -1.23021e-22)
-(9.01596 -0.0717279 -5.08797e-23)
-(8.99146 -0.0743733 -1.54532e-22)
-(8.96763 -0.077081 -2.60392e-22)
-(8.94449 -0.0798576 -2.00282e-22)
-(8.92202 -0.0827101 -1.47937e-22)
-(8.9002 -0.0856453 -2.87392e-23)
-(8.87904 -0.0886697 7.08223e-24)
-(8.85852 -0.0917901 1.46898e-22)
-(8.83863 -0.0950137 -7.8646e-23)
-(8.81934 -0.0983483 -3.89126e-23)
-(8.80066 -0.101801 -2.73386e-22)
-(8.78256 -0.10538 -1.7194e-22)
-(8.76503 -0.109092 -3.04805e-22)
-(8.74805 -0.112942 -4.27054e-22)
-(8.73161 -0.116938 -1.52654e-22)
-(8.71568 -0.121084 1.84758e-22)
-(8.70025 -0.125387 1.20502e-22)
-(8.68531 -0.129854 2.85868e-22)
-(8.67084 -0.134491 3.77364e-22)
-(8.65681 -0.139303 1.85735e-22)
-(8.64321 -0.144297 6.20789e-23)
-(8.63002 -0.149476 2.94883e-23)
-(8.61722 -0.154847 1.97062e-22)
-(8.60478 -0.160415 5.07443e-23)
-(8.59269 -0.166185 -5.43215e-23)
-(8.58092 -0.17216 -2.88454e-22)
-(8.56946 -0.178345 -1.75268e-22)
-(8.55827 -0.184743 3.93629e-23)
-(8.54733 -0.191357 -2.29767e-22)
-(8.53662 -0.198187 -1.01039e-22)
-(8.52611 -0.205235 -2.02972e-22)
-(8.51578 -0.212497 -3.14845e-22)
-(8.50559 -0.219972 9.93198e-23)
-(8.49552 -0.227656 5.39648e-23)
-(8.48554 -0.235541 9.26448e-23)
-(8.47563 -0.243621 -1.72693e-22)
-(8.46575 -0.251886 -8.17395e-23)
-(8.45588 -0.260324 -1.46114e-23)
-(8.44599 -0.268924 3.51115e-23)
-(8.43606 -0.277672 -1.75084e-22)
-(8.42605 -0.286553 -6.34209e-23)
-(8.41596 -0.295552 -1.41486e-22)
-(8.40574 -0.304652 -2.37461e-22)
-(8.39538 -0.313836 -9.79204e-23)
-(8.38486 -0.323086 -6.51605e-23)
-(8.37415 -0.332386 -1.91426e-23)
-(8.36324 -0.341716 1.66659e-24)
-(8.3521 -0.351058 5.47087e-23)
-(8.34071 -0.360394 1.70325e-22)
-(8.32906 -0.369703 1.11412e-22)
-(8.31712 -0.378968 -4.8425e-23)
-(8.30489 -0.38817 -6.01088e-24)
-(8.29234 -0.397289 1.0866e-22)
-(8.27946 -0.406307 -1.59327e-24)
-(8.26624 -0.415204 -1.13988e-22)
-(8.25266 -0.423963 -2.81681e-22)
-(8.23871 -0.432565 -1.29111e-22)
-(8.22438 -0.440993 2.73327e-22)
-(8.20966 -0.449228 3.68017e-22)
-(8.19454 -0.457254 6.7814e-23)
-(8.17902 -0.465054 -4.17938e-23)
-(8.16309 -0.472612 -1.48179e-22)
-(8.14674 -0.479912 -2.88546e-22)
-(8.12997 -0.48694 -7.52503e-23)
-(8.11277 -0.493681 1.2182e-22)
-(8.09515 -0.500121 1.29006e-22)
-(8.0771 -0.506248 1.38427e-22)
-(8.05863 -0.512051 2.49938e-22)
-(8.03973 -0.517517 2.7133e-22)
-(8.02041 -0.522637 1.13793e-22)
-(8.00067 -0.527401 1.45886e-22)
-(7.98051 -0.531802 2.23743e-22)
-(7.95995 -0.535832 3.85463e-23)
-(7.939 -0.539484 -8.99217e-23)
-(7.91765 -0.542755 1.04792e-22)
-(7.89591 -0.545639 -2.12486e-23)
-(7.87381 -0.548135 2.09787e-22)
-(7.85135 -0.550241 2.13228e-22)
-(7.82854 -0.551955 3.76221e-23)
-(7.8054 -0.55328 9.53214e-23)
-(7.78193 -0.554218 1.48685e-22)
-(7.75817 -0.554771 3.26415e-22)
-(7.73412 -0.554945 2.42572e-22)
-(7.70979 -0.554745 -1.78646e-23)
-(7.68522 -0.55418 4.18128e-23)
-(7.66041 -0.553257 1.91678e-22)
-(7.63539 -0.551988 1.35328e-22)
-(7.61018 -0.550383 7.26626e-23)
-(7.58479 -0.548456 -2.83572e-22)
-(7.55926 -0.54622 3.09756e-22)
-(7.5336 -0.543691 2.26741e-22)
-(7.50784 -0.540887 6.15142e-23)
-(7.48201 -0.537826 -7.43698e-23)
-(7.45611 -0.534527 -1.96971e-22)
-(7.4302 -0.531012 -4.45305e-23)
-(7.40428 -0.527304 7.10943e-22)
-(7.37838 -0.523427 2.52839e-22)
-(7.35254 -0.519406 1.15859e-22)
-(7.32678 -0.51527 5.18388e-22)
-(7.30114 -0.511047 2.70294e-22)
-(7.27563 -0.506767 -1.36778e-22)
-(7.2503 -0.502464 -3.86881e-23)
-(7.22517 -0.498171 2.0557e-22)
-(7.20027 -0.493926 3.86643e-22)
-(7.17565 -0.489766 -1.41311e-22)
-(7.15134 -0.485733 -2.52036e-22)
-(7.12737 -0.48187 3.58567e-22)
-(7.10378 -0.478223 1.46722e-22)
-(7.08063 -0.474841 -9.49599e-24)
-(7.05794 -0.471777 2.41843e-22)
-(7.03578 -0.469085 5.67257e-22)
-(7.0142 -0.466825 -4.07078e-22)
-(6.99326 -0.465059 -4.03358e-22)
-(6.97303 -0.463851 -1.71109e-22)
-(6.95358 -0.463271 -2.72407e-22)
-(6.93501 -0.463388 4.98369e-22)
-(6.91742 -0.464277 -4.92693e-22)
-(6.90093 -0.466009 -3.10584e-22)
-(6.88567 -0.468655 -6.07815e-22)
-(6.87182 -0.472279 -1.13068e-22)
-(6.85954 -0.476936 5.25794e-23)
-(6.84905 -0.482664 6.13626e-22)
-(6.84058 -0.489478 -2.59153e-22)
-(6.83431 -0.49735 2.89572e-22)
-(6.83062 -0.506234 -7.56545e-23)
-(6.82885 -0.515853 1.12158e-22)
-(6.833 -0.526233 3.62261e-22)
-(10.0741 0.0351572 6.44914e-23)
-(10.0736 0.0324942 4.36902e-23)
-(10.0729 0.0300214 5.229e-23)
-(10.0722 0.0274735 -3.46906e-23)
-(10.0712 0.0249154 -3.18486e-23)
-(10.0701 0.0224835 -1.54791e-22)
-(10.0688 0.0202239 -2.9418e-22)
-(10.0675 0.018144 -2.60698e-22)
-(10.0661 0.0162458 -1.61203e-22)
-(10.0647 0.0145223 -1.52249e-22)
-(10.0631 0.0129572 -1.75586e-22)
-(10.0615 0.0115301 -1.53864e-22)
-(10.0598 0.010219 -2.15707e-22)
-(10.058 0.00899857 -2.38605e-22)
-(10.0561 0.0078453 -1.18963e-22)
-(10.0541 0.00674195 -7.60986e-23)
-(10.052 0.00567749 -1.24896e-22)
-(10.0498 0.00464481 5.25964e-23)
-(10.0474 0.00363953 5.5884e-23)
-(10.0448 0.00265927 1.11983e-22)
-(10.042 0.0017029 -1.24958e-23)
-(10.039 0.000769722 1.20528e-22)
-(10.0357 -0.000141136 6.46192e-23)
-(10.0321 -0.00103122 7.94177e-23)
-(10.0282 -0.00190306 1.32238e-22)
-(10.024 -0.00276024 -2.50892e-23)
-(10.0193 -0.00360736 -6.15954e-23)
-(10.0143 -0.00444993 -2.30888e-22)
-(10.0088 -0.00529442 -9.16899e-24)
-(10.0027 -0.00614884 3.26743e-23)
-(9.99617 -0.00702252 -1.15084e-22)
-(9.98904 -0.00792486 -7.95707e-23)
-(9.9813 -0.00886472 -5.22473e-23)
-(9.97291 -0.00985053 4.50519e-23)
-(9.96385 -0.0108904 3.71622e-24)
-(9.95408 -0.0119919 -2.50801e-23)
-(9.94358 -0.013162 -1.07672e-22)
-(9.93233 -0.0144071 7.51837e-24)
-(9.92031 -0.0157325 -1.22248e-22)
-(9.9075 -0.0171432 -8.22549e-23)
-(9.89392 -0.018643 -8.9717e-23)
-(9.87955 -0.0202351 -1.29515e-22)
-(9.8644 -0.0219223 1.28486e-22)
-(9.8485 -0.0237064 1.00596e-22)
-(9.83186 -0.0255888 -1.92194e-22)
-(9.81451 -0.0275703 -2.31537e-22)
-(9.7965 -0.0296515 -1.21523e-22)
-(9.77786 -0.0318326 5.01013e-23)
-(9.75864 -0.0341139 -2.90455e-22)
-(9.73891 -0.0364962 -4.99416e-22)
-(9.7187 -0.0389803 -3.88633e-22)
-(9.69809 -0.0415668 -5.12384e-22)
-(9.67714 -0.0442563 -4.38983e-22)
-(9.6559 -0.0470496 -6.45226e-22)
-(9.63445 -0.0499476 -4.28057e-22)
-(9.61284 -0.0529514 -3.34648e-22)
-(9.59114 -0.0560624 -2.52847e-22)
-(9.56939 -0.059282 -1.30257e-22)
-(9.54766 -0.0626119 1.15623e-22)
-(9.526 -0.0660539 9.41569e-24)
-(9.50445 -0.0696101 -1.52253e-22)
-(9.48306 -0.073283 -3.58012e-23)
-(9.46186 -0.0770761 6.82898e-23)
-(9.44089 -0.0809927 2.87266e-22)
-(9.42018 -0.0850364 2.77982e-22)
-(9.39974 -0.0892108 5.41558e-22)
-(9.37961 -0.0935194 7.44832e-22)
-(9.35978 -0.0979661 4.7341e-22)
-(9.34029 -0.102555 3.22823e-22)
-(9.32113 -0.10729 1.55755e-23)
-(9.30232 -0.112176 -1.05165e-22)
-(9.28384 -0.117219 -2.04133e-23)
-(9.26571 -0.122423 -1.10792e-22)
-(9.24792 -0.127792 -2.42499e-22)
-(9.23047 -0.133332 -4.6413e-23)
-(9.21334 -0.139048 -1.83793e-22)
-(9.19653 -0.144944 2.3416e-22)
-(9.18003 -0.151025 4.54324e-24)
-(9.16382 -0.157294 8.07746e-24)
-(9.14788 -0.163757 1.09418e-22)
-(9.13221 -0.170415 -1.00912e-22)
-(9.11678 -0.17727 -2.92771e-22)
-(9.10158 -0.184325 -1.33029e-22)
-(9.08658 -0.191579 1.43149e-23)
-(9.07175 -0.19903 2.11891e-22)
-(9.05709 -0.206675 -1.36481e-22)
-(9.04255 -0.214512 -1.26782e-22)
-(9.02812 -0.222532 -2.99982e-22)
-(9.01377 -0.230729 -2.23105e-22)
-(8.99948 -0.239094 -2.0344e-22)
-(8.98522 -0.247617 -1.71992e-22)
-(8.97096 -0.256284 -1.16721e-22)
-(8.95667 -0.265084 -1.04565e-22)
-(8.94234 -0.274002 -1.28023e-22)
-(8.92794 -0.283023 -2.33963e-22)
-(8.91344 -0.292132 -3.90325e-22)
-(8.89883 -0.301311 -1.07545e-22)
-(8.88407 -0.310544 -5.54618e-23)
-(8.86915 -0.319814 -8.52089e-23)
-(8.85405 -0.329103 -1.63941e-22)
-(8.83874 -0.338393 -3.04682e-23)
-(8.8232 -0.347665 -1.56184e-22)
-(8.80743 -0.356902 -3.61484e-22)
-(8.79139 -0.366085 -1.36298e-22)
-(8.77507 -0.375196 -2.46299e-22)
-(8.75846 -0.384216 -6.52575e-23)
-(8.74154 -0.393128 -6.79593e-23)
-(8.72429 -0.401913 5.23571e-23)
-(8.70671 -0.410553 3.70261e-22)
-(8.68878 -0.41903 3.4981e-22)
-(8.67049 -0.427329 -1.17545e-22)
-(8.65183 -0.43543 -2.67299e-22)
-(8.63279 -0.443319 -1.80075e-22)
-(8.61336 -0.45098 2.01478e-23)
-(8.59354 -0.458395 1.31489e-22)
-(8.57333 -0.465552 2.53462e-22)
-(8.55271 -0.472435 2.47514e-22)
-(8.53169 -0.479031 2.08052e-22)
-(8.51027 -0.485327 1.81033e-22)
-(8.48844 -0.49131 2.24941e-22)
-(8.4662 -0.49697 3.42083e-24)
-(8.44356 -0.502296 8.60614e-23)
-(8.42053 -0.507279 2.439e-22)
-(8.3971 -0.511909 2.12469e-22)
-(8.37328 -0.516179 2.11607e-22)
-(8.34908 -0.520082 2.77873e-22)
-(8.32451 -0.523613 4.10586e-23)
-(8.29958 -0.526768 -3.58408e-23)
-(8.27429 -0.529542 3.5142e-22)
-(8.24866 -0.531933 8.08082e-23)
-(8.22269 -0.533941 -6.57198e-24)
-(8.19641 -0.535566 1.12164e-22)
-(8.16983 -0.536808 1.50505e-22)
-(8.14296 -0.53767 9.38386e-23)
-(8.11582 -0.538156 -5.12124e-23)
-(8.08843 -0.538272 1.13817e-22)
-(8.0608 -0.538023 2.03445e-22)
-(8.03294 -0.537418 3.47287e-22)
-(8.00489 -0.536465 1.38682e-22)
-(7.97666 -0.535175 3.33184e-22)
-(7.94828 -0.53356 2.27932e-22)
-(7.91975 -0.531632 -1.24673e-22)
-(7.89111 -0.529407 1.80305e-22)
-(7.86237 -0.526899 3.47669e-22)
-(7.83356 -0.524128 2.13347e-22)
-(7.80471 -0.52111 1.50031e-22)
-(7.77583 -0.517866 4.73735e-22)
-(7.74695 -0.514418 -1.85042e-22)
-(7.7181 -0.510788 -4.57543e-22)
-(7.6893 -0.507002 1.08527e-22)
-(7.66058 -0.503084 7.33887e-23)
-(7.63196 -0.499064 6.39271e-22)
-(7.60348 -0.494969 2.40971e-22)
-(7.57515 -0.490831 -2.03042e-22)
-(7.54702 -0.486682 3.42108e-22)
-(7.5191 -0.482558 2.04169e-22)
-(7.49143 -0.478496 -1.06962e-22)
-(7.46404 -0.474534 -8.76612e-23)
-(7.43697 -0.470714 -4.26408e-22)
-(7.41024 -0.46708 -1.08747e-21)
-(7.3839 -0.463681 2.35898e-22)
-(7.35799 -0.460565 2.42235e-22)
-(7.33255 -0.457786 4.89575e-22)
-(7.30762 -0.455403 3.79753e-22)
-(7.28326 -0.453475 4.77065e-22)
-(7.25953 -0.452068 1.54055e-22)
-(7.23649 -0.451251 -1.47972e-22)
-(7.21421 -0.451096 -2.08019e-22)
-(7.19278 -0.451681 -2.30218e-22)
-(7.17231 -0.453085 2.15099e-22)
-(7.1529 -0.455388 3.55933e-22)
-(7.1347 -0.458669 3.12545e-22)
-(7.11787 -0.463003 -6.65674e-22)
-(7.1026 -0.468454 -1.18892e-22)
-(7.08908 -0.475069 -4.16346e-22)
-(7.07757 -0.482865 -4.09609e-22)
-(7.06826 -0.491819 1.35517e-22)
-(7.06155 -0.501847 3.96109e-22)
-(7.05672 -0.512723 8.29352e-22)
-(7.05832 -0.524066 1.01085e-22)
-(10.0999 0.0353335 -7.59572e-23)
-(10.1008 0.0330969 -1.62058e-22)
-(10.1014 0.0309609 -9.3643e-23)
-(10.1018 0.0288518 -3.51943e-23)
-(10.1021 0.0267736 -2.71985e-23)
-(10.1022 0.0247668 2.92578e-23)
-(10.1021 0.0228396 8.84652e-23)
-(10.1019 0.0209822 2.63098e-26)
-(10.1017 0.0191897 -9.1682e-24)
-(10.1013 0.0174636 -2.08753e-23)
-(10.1009 0.0158079 -8.4133e-23)
-(10.1004 0.0142276 -8.90435e-23)
-(10.0999 0.0127271 1.85854e-22)
-(10.0994 0.0113081 3.09866e-22)
-(10.0989 0.00996978 2.23129e-22)
-(10.0983 0.00871065 2.31747e-22)
-(10.0978 0.00752867 3.52761e-22)
-(10.0972 0.00642056 2.411e-22)
-(10.0966 0.00538161 2.32588e-22)
-(10.0961 0.00440598 3.79388e-23)
-(10.0955 0.00348705 -2.69079e-23)
-(10.0948 0.00261771 -1.85887e-22)
-(10.0942 0.00179067 -5.65953e-23)
-(10.0935 0.000998701 -9.03528e-23)
-(10.0927 0.000234843 -7.48067e-23)
-(10.092 -0.000507399 1.13164e-22)
-(10.0911 -0.00123395 -3.75641e-23)
-(10.0902 -0.00195012 9.4165e-23)
-(10.0892 -0.00266078 4.08379e-23)
-(10.0881 -0.0033707 4.44274e-23)
-(10.0869 -0.00408468 4.42815e-23)
-(10.0856 -0.00480716 4.00637e-23)
-(10.0841 -0.00554211 2.00544e-24)
-(10.0825 -0.00629322 -7.08834e-23)
-(10.0808 -0.00706419 -8.69455e-24)
-(10.0789 -0.00785883 -1.83025e-23)
-(10.0767 -0.0086812 -2.91013e-23)
-(10.0744 -0.00953567 1.95597e-23)
-(10.0718 -0.010427 1.2625e-22)
-(10.069 -0.0113602 8.64818e-23)
-(10.066 -0.0123408 1.36428e-22)
-(10.0626 -0.0133748 2.09145e-22)
-(10.059 -0.0144683 -1.4492e-22)
-(10.055 -0.0156279 -4.6249e-23)
-(10.0506 -0.0168601 -8.82834e-23)
-(10.0459 -0.0181717 1.14272e-22)
-(10.0408 -0.0195696 2.15653e-22)
-(10.0354 -0.0210604 -3.11506e-24)
-(10.0294 -0.0226512 3.36489e-22)
-(10.0231 -0.0243488 5.96575e-22)
-(10.0163 -0.0261602 4.48162e-22)
-(10.009 -0.0280915 5.63778e-22)
-(10.0012 -0.0301488 4.91438e-22)
-(9.99294 -0.0323377 6.61542e-22)
-(9.98417 -0.0346634 7.13598e-22)
-(9.97491 -0.0371305 5.67799e-22)
-(9.96513 -0.0397434 5.01844e-22)
-(9.95486 -0.0425059 4.03745e-22)
-(9.94409 -0.0454216 1.76949e-22)
-(9.93283 -0.0484935 2.51797e-22)
-(9.9211 -0.0517244 4.31623e-22)
-(9.90891 -0.055117 4.93281e-22)
-(9.89628 -0.058674 4.07535e-22)
-(9.88323 -0.0623977 5.60857e-22)
-(9.86978 -0.0662905 5.50055e-22)
-(9.85596 -0.0703543 2.05644e-22)
-(9.8418 -0.0745908 6.98081e-23)
-(9.82732 -0.0790015 7.90199e-23)
-(9.81256 -0.0835882 -5.92125e-23)
-(9.79754 -0.0883525 1.32627e-22)
-(9.78229 -0.0932964 -1.61025e-22)
-(9.76684 -0.0984218 -3.33473e-22)
-(9.75122 -0.103731 -4.25034e-22)
-(9.73545 -0.109225 -3.41424e-22)
-(9.71956 -0.114906 -4.62519e-22)
-(9.70357 -0.120776 -5.20452e-22)
-(9.6875 -0.126837 -5.25418e-22)
-(9.67136 -0.13309 -3.34587e-22)
-(9.65517 -0.139536 -1.81704e-22)
-(9.63893 -0.146178 -4.32433e-22)
-(9.62267 -0.153014 -4.38106e-22)
-(9.60638 -0.160045 -4.01493e-23)
-(9.59006 -0.16727 2.20282e-22)
-(9.57372 -0.174688 2.6947e-23)
-(9.55735 -0.182294 -1.26588e-22)
-(9.54094 -0.190085 -8.39123e-23)
-(9.52449 -0.198055 -1.98284e-22)
-(9.50799 -0.206197 -4.85875e-22)
-(9.49142 -0.214504 -2.87495e-22)
-(9.47478 -0.222965 -2.38452e-22)
-(9.45804 -0.231569 -1.96003e-22)
-(9.4412 -0.240306 -5.79696e-23)
-(9.42424 -0.249161 9.92503e-23)
-(9.40714 -0.258122 -2.98855e-22)
-(9.38989 -0.267172 8.78769e-23)
-(9.37248 -0.276297 5.47461e-22)
-(9.35487 -0.28548 2.09861e-22)
-(9.33707 -0.294705 1.60979e-22)
-(9.31905 -0.303956 1.16719e-22)
-(9.30081 -0.313215 6.58121e-23)
-(9.28231 -0.322464 6.12526e-23)
-(9.26355 -0.331686 1.63036e-22)
-(9.24452 -0.340863 2.77613e-22)
-(9.2252 -0.349978 2.4787e-22)
-(9.20557 -0.359012 2.84135e-22)
-(9.18563 -0.367948 -4.31908e-22)
-(9.16536 -0.376769 -1.32148e-22)
-(9.14476 -0.385456 -1.15218e-22)
-(9.1238 -0.393993 -1.5436e-22)
-(9.10249 -0.402362 -1.91851e-22)
-(9.08081 -0.410548 -1.36354e-23)
-(9.05876 -0.418534 -1.15467e-22)
-(9.03632 -0.426304 -1.89114e-22)
-(9.01351 -0.433843 4.53713e-23)
-(8.9903 -0.441135 1.02832e-22)
-(8.9667 -0.448168 7.7342e-23)
-(8.9427 -0.454926 5.7813e-23)
-(8.91831 -0.461398 2.90616e-22)
-(8.89353 -0.467571 2.00874e-22)
-(8.86835 -0.473433 6.61684e-23)
-(8.84278 -0.478974 2.6574e-22)
-(8.81682 -0.484183 3.12262e-22)
-(8.79048 -0.489053 2.98432e-22)
-(8.76377 -0.493574 2.48233e-22)
-(8.73669 -0.497739 2.36778e-22)
-(8.70925 -0.501543 1.75294e-22)
-(8.68145 -0.50498 1.57567e-22)
-(8.65332 -0.508047 1.26785e-22)
-(8.62486 -0.510739 1.69268e-22)
-(8.59609 -0.513056 1.81622e-22)
-(8.56701 -0.514997 -1.13876e-22)
-(8.53765 -0.516562 8.20894e-23)
-(8.50801 -0.517752 2.94952e-22)
-(8.47812 -0.518571 2.29818e-22)
-(8.44799 -0.519023 1.38611e-22)
-(8.41764 -0.519113 -2.07145e-23)
-(8.38708 -0.518848 -5.76475e-23)
-(8.35634 -0.518236 -1.40383e-23)
-(8.32543 -0.517286 5.24816e-22)
-(8.29438 -0.516009 4.66432e-22)
-(8.2632 -0.514417 5.18902e-22)
-(8.23191 -0.512522 4.60022e-22)
-(8.20055 -0.51034 -1.02709e-22)
-(8.16912 -0.507887 4.83097e-22)
-(8.13765 -0.505179 5.31388e-22)
-(8.10616 -0.502237 9.82212e-23)
-(8.07468 -0.499079 1.80269e-22)
-(8.04322 -0.495729 8.82771e-22)
-(8.01182 -0.492207 3.53524e-22)
-(7.98048 -0.48854 -3.11092e-22)
-(7.94925 -0.484754 -4.03865e-23)
-(7.91814 -0.480876 -1.12153e-22)
-(7.88718 -0.476935 1.31656e-22)
-(7.85639 -0.472963 2.55527e-22)
-(7.8258 -0.468993 -3.56731e-22)
-(7.79544 -0.46506 7.98284e-24)
-(7.76532 -0.461202 3.3791e-22)
-(7.73549 -0.457458 1.28448e-21)
-(7.70597 -0.45387 6.41763e-22)
-(7.67679 -0.450483 -1.49137e-22)
-(7.64799 -0.447346 -1.45044e-22)
-(7.6196 -0.444509 -1.98115e-22)
-(7.59166 -0.442029 -4.30051e-22)
-(7.56421 -0.439964 -8.68901e-23)
-(7.5373 -0.438377 -3.11688e-22)
-(7.51098 -0.437337 -3.46721e-22)
-(7.48532 -0.436916 -5.53015e-22)
-(7.46037 -0.437192 -2.32504e-22)
-(7.43623 -0.438247 -3.35766e-22)
-(7.41299 -0.440167 -3.88166e-22)
-(7.39077 -0.443041 4.5358e-22)
-(7.36969 -0.446957 5.65877e-23)
-(7.34992 -0.452001 5.92188e-22)
-(7.33165 -0.458249 9.17564e-22)
-(7.31508 -0.465756 1.28056e-23)
-(7.30048 -0.474546 2.26677e-22)
-(7.28806 -0.484596 -8.00451e-22)
-(7.27823 -0.495793 3.02728e-22)
-(7.27028 -0.50795 9.92608e-22)
-(7.26905 -0.520281 2.22477e-21)
-(10.1084 0.0339635 4.89637e-23)
-(10.1099 0.0319588 2.43113e-22)
-(10.1111 0.0299604 9.64753e-23)
-(10.1121 0.0279644 1.23451e-22)
-(10.113 0.0259811 7.11391e-24)
-(10.1138 0.0240375 -6.63885e-23)
-(10.1144 0.0221534 -3.44311e-23)
-(10.1149 0.0203387 1.18415e-22)
-(10.1153 0.0186003 2.2501e-23)
-(10.1157 0.0169446 1.05666e-23)
-(10.1159 0.0153752 6.09399e-23)
-(10.1161 0.0138935 1.15706e-22)
-(10.1163 0.012498 -2.17543e-23)
-(10.1164 0.0111849 -1.26821e-22)
-(10.1165 0.00994858 -1.03744e-22)
-(10.1166 0.00878305 -1.19013e-22)
-(10.1167 0.0076827 -2.02385e-22)
-(10.1168 0.00664218 -3.49371e-23)
-(10.1168 0.00565641 -8.40191e-23)
-(10.1169 0.00472057 -1.83481e-22)
-(10.117 0.0038301 -4.40435e-23)
-(10.1171 0.00298073 1.53096e-22)
-(10.1172 0.00216834 4.08973e-24)
-(10.1173 0.00138899 -2.01718e-23)
-(10.1174 0.000638805 -9.8908e-23)
-(10.1176 -8.60418e-05 -8.53309e-23)
-(10.1177 -0.000789363 8.14445e-23)
-(10.1178 -0.00147502 2.57563e-23)
-(10.118 -0.002147 3.11371e-23)
-(10.1181 -0.00280961 8.46703e-23)
-(10.1183 -0.00346746 1.53824e-22)
-(10.1184 -0.00412525 8.31559e-23)
-(10.1185 -0.00478765 1.10223e-22)
-(10.1186 -0.00545928 2.27434e-22)
-(10.1187 -0.00614475 2.02079e-22)
-(10.1188 -0.00684875 -1.28338e-22)
-(10.1188 -0.00757597 -1.29277e-22)
-(10.1188 -0.00833115 1.00412e-22)
-(10.1188 -0.00911906 2.51004e-22)
-(10.1187 -0.00994448 1.32005e-22)
-(10.1185 -0.0108122 4.37099e-23)
-(10.1183 -0.0117271 -2.46513e-23)
-(10.118 -0.0126939 2.27612e-22)
-(10.1176 -0.0137174 2.01985e-22)
-(10.1171 -0.0148025 3.53749e-22)
-(10.1166 -0.015954 2.40234e-22)
-(10.1159 -0.0171766 1.16594e-22)
-(10.1151 -0.0184753 -6.35363e-23)
-(10.1141 -0.0198552 -1.68232e-23)
-(10.1131 -0.0213214 -1.44453e-22)
-(10.1118 -0.0228794 -2.62346e-23)
-(10.1104 -0.0245346 6.94575e-23)
-(10.1089 -0.0262924 2.81727e-22)
-(10.1071 -0.0281584 3.20534e-22)
-(10.1051 -0.0301379 1.96423e-22)
-(10.1029 -0.0322368 2.07049e-22)
-(10.1005 -0.0344605 3.54758e-22)
-(10.0978 -0.0368147 3.62694e-22)
-(10.0948 -0.0393049 1.91291e-22)
-(10.0916 -0.0419368 4.8507e-23)
-(10.088 -0.0447158 -2.08734e-22)
-(10.0842 -0.0476476 -2.93827e-22)
-(10.08 -0.0507376 -2.91873e-22)
-(10.0755 -0.0539914 -5.91043e-22)
-(10.0707 -0.0574141 -4.69344e-22)
-(10.0655 -0.0610108 -1.23053e-22)
-(10.0599 -0.064786 -1.30618e-22)
-(10.054 -0.0687441 -9.51287e-23)
-(10.0476 -0.0728893 -7.76912e-23)
-(10.0409 -0.0772256 3.53548e-23)
-(10.0338 -0.0817567 2.85273e-22)
-(10.0262 -0.0864862 -7.65203e-23)
-(10.0183 -0.0914172 1.52752e-23)
-(10.0099 -0.0965525 3.82071e-22)
-(10.0011 -0.101895 5.92936e-22)
-(9.99195 -0.107446 6.69904e-22)
-(9.98234 -0.113207 -8.92042e-24)
-(9.97233 -0.119181 -7.06678e-23)
-(9.9619 -0.125368 -3.85634e-22)
-(9.95106 -0.131767 -2.32177e-22)
-(9.93982 -0.138379 -1.29824e-22)
-(9.92817 -0.145202 9.48028e-23)
-(9.91612 -0.152234 -2.61346e-22)
-(9.90368 -0.159471 1.00171e-22)
-(9.89083 -0.16691 -7.11108e-23)
-(9.8776 -0.174543 -1.04858e-22)
-(9.86397 -0.182366 -4.44293e-23)
-(9.84994 -0.190368 1.96862e-22)
-(9.83553 -0.198541 3.62181e-23)
-(9.82073 -0.206875 1.81506e-23)
-(9.80553 -0.215357 -3.14261e-24)
-(9.78995 -0.223974 -6.74052e-23)
-(9.77397 -0.232712 -1.90765e-22)
-(9.75761 -0.241557 2.2032e-22)
-(9.74085 -0.250493 2.76714e-23)
-(9.72369 -0.259504 -9.19455e-23)
-(9.70614 -0.268573 2.5844e-22)
-(9.68818 -0.277684 1.08637e-22)
-(9.66983 -0.286819 8.22819e-23)
-(9.65107 -0.295961 5.4551e-23)
-(9.6319 -0.305091 9.11841e-23)
-(9.61232 -0.314192 2.42241e-22)
-(9.59233 -0.323246 -1.10778e-23)
-(9.57192 -0.332236 -2.98214e-22)
-(9.55109 -0.341142 -2.28881e-22)
-(9.52983 -0.349949 -8.39967e-24)
-(9.50815 -0.358638 -2.60707e-22)
-(9.48603 -0.367193 -1.78522e-22)
-(9.46349 -0.375595 -2.62974e-22)
-(9.44051 -0.383829 -5.61632e-24)
-(9.41709 -0.391879 2.38745e-22)
-(9.39324 -0.399728 3.8153e-22)
-(9.36896 -0.407361 4.06532e-22)
-(9.34423 -0.414764 3.11336e-22)
-(9.31908 -0.421921 2.86953e-22)
-(9.29349 -0.42882 3.27918e-22)
-(9.26747 -0.435447 2.82389e-22)
-(9.24103 -0.44179 -7.78387e-23)
-(9.21416 -0.447837 -5.18078e-23)
-(9.18689 -0.453576 3.17226e-22)
-(9.1592 -0.458998 1.56823e-22)
-(9.13111 -0.464094 -2.31656e-22)
-(9.10264 -0.468855 1.40929e-23)
-(9.07378 -0.473273 -1.20364e-22)
-(9.04455 -0.477342 -5.90987e-23)
-(9.01496 -0.481055 2.56963e-22)
-(8.98502 -0.484409 1.42052e-22)
-(8.95475 -0.487399 1.34317e-22)
-(8.92416 -0.490024 9.93856e-23)
-(8.89327 -0.492281 1.62012e-22)
-(8.86208 -0.49417 4.60463e-22)
-(8.83063 -0.495692 2.46578e-22)
-(8.79891 -0.496848 7.32636e-23)
-(8.76696 -0.497643 1.08501e-22)
-(8.73479 -0.498079 9.75083e-23)
-(8.70242 -0.498164 4.31179e-22)
-(8.66986 -0.497903 4.93448e-24)
-(8.63714 -0.497305 -2.36404e-22)
-(8.60428 -0.496379 -3.60145e-22)
-(8.57129 -0.495136 -3.36484e-22)
-(8.5382 -0.493588 -1.83552e-22)
-(8.50503 -0.491748 1.67193e-22)
-(8.4718 -0.489631 9.09475e-24)
-(8.43852 -0.487253 -3.03539e-22)
-(8.40523 -0.484631 -4.77048e-22)
-(8.37193 -0.481784 -1.3539e-22)
-(8.33866 -0.478733 -4.47083e-22)
-(8.30542 -0.475498 2.26976e-22)
-(8.27226 -0.472103 1.00905e-23)
-(8.23917 -0.468573 5.44387e-23)
-(8.20619 -0.464934 3.75716e-22)
-(8.17334 -0.461213 5.35814e-22)
-(8.14064 -0.457441 9.8199e-22)
-(8.10811 -0.453648 4.37729e-22)
-(8.07577 -0.449868 1.44653e-22)
-(8.04364 -0.446136 9.55384e-23)
-(8.01176 -0.442491 1.08836e-22)
-(7.98013 -0.438971 -3.79643e-22)
-(7.9488 -0.43562 6.0809e-22)
-(7.91778 -0.432484 -1.19602e-22)
-(7.8871 -0.429611 -2.26241e-22)
-(7.85679 -0.427054 -5.72706e-22)
-(7.82689 -0.42487 -8.96279e-22)
-(7.79744 -0.42312 -1.52382e-21)
-(7.76846 -0.421869 -1.7648e-21)
-(7.74002 -0.421188 -8.21292e-22)
-(7.71216 -0.421154 -1.16763e-21)
-(7.68495 -0.421848 1.45445e-22)
-(7.65846 -0.42336 -4.41385e-22)
-(7.63278 -0.425781 1.04857e-22)
-(7.60802 -0.42921 -1.4763e-21)
-(7.58432 -0.433745 -3.70499e-22)
-(7.56181 -0.439484 -1.95877e-21)
-(7.54071 -0.446515 -2.77399e-21)
-(7.52122 -0.454905 -1.71062e-21)
-(7.50361 -0.464688 -1.11802e-21)
-(7.48812 -0.475843 -8.332e-22)
-(7.47518 -0.488233 -5.2079e-22)
-(7.46419 -0.501697 -1.70404e-21)
-(7.45993 -0.515058 -8.50809e-23)
-(10.109 0.0324047 3.99289e-23)
-(10.1108 0.0305963 -1.39842e-22)
-(10.1123 0.0287731 -1.75402e-22)
-(10.1137 0.0269491 -2.70629e-22)
-(10.1149 0.0251379 -9.98074e-23)
-(10.116 0.0233568 -5.94339e-23)
-(10.117 0.0216201 1.19613e-22)
-(10.1179 0.0199361 -8.99629e-25)
-(10.1186 0.0183102 -1.69206e-23)
-(10.1193 0.0167463 -1.01655e-22)
-(10.12 0.0152477 -1.44421e-22)
-(10.1205 0.0138162 1.07144e-23)
-(10.1211 0.0124523 9.43708e-23)
-(10.1216 0.0111553 1.35495e-22)
-(10.122 0.0099233 1.85239e-23)
-(10.1225 0.00875384 1.61162e-22)
-(10.1229 0.00764419 2.44477e-22)
-(10.1233 0.00659139 -6.83594e-23)
-(10.1237 0.00559218 -6.25454e-23)
-(10.1241 0.00464302 1.70055e-22)
-(10.1246 0.00374015 4.27057e-23)
-(10.125 0.00287966 -1.18958e-22)
-(10.1254 0.00205751 -6.86049e-24)
-(10.1259 0.00126959 -1.20891e-22)
-(10.1264 0.000511744 -2.54626e-22)
-(10.1268 -0.000220155 7.21482e-23)
-(10.1273 -0.000930214 2.35672e-22)
-(10.1278 -0.00162251 4.24994e-23)
-(10.1284 -0.00230111 3.74934e-23)
-(10.1289 -0.00297017 2.26918e-23)
-(10.1295 -0.0036339 1.00321e-23)
-(10.1301 -0.00429652 7.20405e-24)
-(10.1307 -0.00496214 -1.23693e-22)
-(10.1313 -0.00563481 -3.59474e-22)
-(10.1319 -0.00631854 -2.69618e-23)
-(10.1325 -0.00701736 5.80723e-22)
-(10.1331 -0.00773533 4.69951e-22)
-(10.1337 -0.00847661 2.74765e-22)
-(10.1344 -0.00924542 -7.58927e-23)
-(10.135 -0.0100461 6.30197e-23)
-(10.1356 -0.0108831 7.47355e-23)
-(10.1362 -0.0117609 6.25206e-23)
-(10.1368 -0.0126842 8.16683e-23)
-(10.1373 -0.0136577 9.79033e-23)
-(10.1379 -0.0146863 2.19994e-22)
-(10.1384 -0.0157749 1.7306e-22)
-(10.1388 -0.0169285 -2.675e-22)
-(10.1393 -0.018152 1.01397e-22)
-(10.1397 -0.0194508 2.13926e-22)
-(10.14 -0.0208301 4.11259e-23)
-(10.1403 -0.0222952 1.13818e-23)
-(10.1405 -0.0238516 -1.0783e-22)
-(10.1406 -0.0255045 -4.38e-22)
-(10.1406 -0.0272592 -6.80507e-22)
-(10.1406 -0.029121 -5.61998e-22)
-(10.1404 -0.0310951 -5.35108e-22)
-(10.1402 -0.0331865 -8.66918e-22)
-(10.1398 -0.0354004 -7.55929e-22)
-(10.1393 -0.0377416 -6.53239e-22)
-(10.1386 -0.0402151 -7.07811e-22)
-(10.1378 -0.0428257 -4.41462e-22)
-(10.1369 -0.0455784 -1.91949e-22)
-(10.1357 -0.0484779 -6.30815e-23)
-(10.1344 -0.0515291 2.82544e-22)
-(10.1329 -0.0547366 1.857e-22)
-(10.1311 -0.0581052 4.75907e-22)
-(10.1292 -0.061639 1.93727e-22)
-(10.127 -0.0653425 1.10749e-22)
-(10.1245 -0.0692199 4.36076e-23)
-(10.1218 -0.0732754 -6.58884e-23)
-(10.1189 -0.0775131 -2.83462e-22)
-(10.1156 -0.0819369 -3.67926e-22)
-(10.112 -0.0865507 -4.21766e-22)
-(10.1081 -0.0913581 -5.33671e-22)
-(10.1039 -0.0963623 -8.97855e-22)
-(10.0994 -0.101566 -1.17559e-21)
-(10.0945 -0.106973 -6.11196e-22)
-(10.0892 -0.112585 -3.30274e-22)
-(10.0835 -0.118403 1.78023e-22)
-(10.0775 -0.12443 3.24658e-22)
-(10.071 -0.130665 1.02371e-23)
-(10.0641 -0.137108 -3.435e-22)
-(10.0568 -0.143757 -3.99483e-22)
-(10.049 -0.150611 -9.0434e-22)
-(10.0407 -0.157665 -4.92204e-22)
-(10.032 -0.164915 -3.80543e-22)
-(10.0228 -0.172355 -3.10102e-22)
-(10.013 -0.179977 -2.62424e-22)
-(10.0028 -0.187772 -1.41409e-22)
-(9.99202 -0.195731 1.19572e-22)
-(9.98072 -0.203842 -1.09017e-24)
-(9.96887 -0.212092 2.76857e-22)
-(9.95647 -0.220469 3.69862e-22)
-(9.94352 -0.228957 3.8949e-22)
-(9.93 -0.237542 1.43238e-22)
-(9.91591 -0.246208 -2.11221e-23)
-(9.90125 -0.254939 -2.9379e-22)
-(9.88602 -0.263717 -1.45065e-22)
-(9.87021 -0.272525 -8.71528e-23)
-(9.85382 -0.281346 -1.20338e-22)
-(9.83685 -0.290162 -4.06154e-22)
-(9.81931 -0.298956 -5.27779e-22)
-(9.80118 -0.307708 -3.80233e-22)
-(9.78248 -0.316402 -4.57497e-23)
-(9.7632 -0.325019 -1.92521e-22)
-(9.74335 -0.333542 2.84161e-22)
-(9.72293 -0.341954 2.92236e-22)
-(9.70195 -0.350237 1.97294e-22)
-(9.6804 -0.358374 4.06978e-22)
-(9.65829 -0.366349 3.17307e-22)
-(9.63563 -0.374145 -2.15344e-22)
-(9.61242 -0.381747 4.83211e-22)
-(9.58868 -0.38914 7.71105e-22)
-(9.5644 -0.396308 7.03317e-22)
-(9.5396 -0.403239 3.01205e-22)
-(9.51428 -0.409917 8.10569e-23)
-(9.48845 -0.416331 2.62097e-22)
-(9.46213 -0.422468 2.7336e-22)
-(9.43532 -0.428317 3.09547e-22)
-(9.40804 -0.433866 7.50593e-23)
-(9.3803 -0.439106 1.13645e-22)
-(9.35211 -0.444029 3.36742e-22)
-(9.32348 -0.448625 -1.58337e-24)
-(9.29443 -0.452887 1.15942e-22)
-(9.26497 -0.45681 4.24505e-22)
-(9.23513 -0.460387 2.21059e-22)
-(9.20491 -0.463614 2.01284e-22)
-(9.17434 -0.466487 1.69524e-22)
-(9.14343 -0.469005 -1.12231e-22)
-(9.1122 -0.471165 -2.45876e-23)
-(9.08066 -0.472968 2.01261e-22)
-(9.04885 -0.474415 2.0527e-22)
-(9.01678 -0.475507 1.83934e-22)
-(8.98446 -0.476248 1.29486e-22)
-(8.95192 -0.476642 -3.10014e-23)
-(8.91918 -0.476695 1.42207e-22)
-(8.88626 -0.476413 5.40779e-22)
-(8.85318 -0.475805 4.52626e-23)
-(8.81996 -0.474879 -2.03522e-22)
-(8.78663 -0.473648 -1.37939e-22)
-(8.7532 -0.472122 -2.12511e-22)
-(8.71969 -0.470314 1.05108e-22)
-(8.68612 -0.46824 1.73849e-22)
-(8.65252 -0.465915 -2.00989e-22)
-(8.6189 -0.463356 1.16579e-22)
-(8.58529 -0.460582 5.94314e-22)
-(8.5517 -0.457614 4.60426e-22)
-(8.51815 -0.454471 8.66525e-23)
-(8.48466 -0.451179 5.00918e-22)
-(8.45126 -0.447761 1.92115e-22)
-(8.41794 -0.444243 -8.88995e-23)
-(8.38475 -0.440653 -4.19957e-22)
-(8.35168 -0.43702 -3.22317e-22)
-(8.31877 -0.433377 3.80057e-22)
-(8.28602 -0.429756 4.58067e-22)
-(8.25345 -0.426194 1.802e-22)
-(8.22109 -0.422727 1.70997e-22)
-(8.18895 -0.419397 -1.31075e-21)
-(8.15705 -0.416247 -1.79264e-21)
-(8.12541 -0.413324 -1.05856e-21)
-(8.09405 -0.410676 -5.34457e-22)
-(8.06299 -0.408359 -2.51065e-22)
-(8.03226 -0.406429 -4.24789e-22)
-(8.00189 -0.404951 -4.52226e-22)
-(7.9719 -0.403991 1.54714e-21)
-(7.94234 -0.403624 7.81324e-22)
-(7.91325 -0.40393 2.66376e-21)
-(7.88469 -0.404997 -8.73963e-22)
-(7.85671 -0.406918 1.12489e-21)
-(7.8294 -0.409795 7.49156e-22)
-(7.80285 -0.413735 2.37724e-21)
-(7.77719 -0.418849 1.65584e-21)
-(7.75257 -0.425248 1.03466e-21)
-(7.72917 -0.433036 -7.17177e-22)
-(7.70722 -0.442298 -3.04647e-22)
-(7.68699 -0.453078 -1.04166e-21)
-(7.66876 -0.465368 -4.91952e-22)
-(7.65298 -0.479014 -1.1809e-21)
-(7.63924 -0.493856 -7.32062e-22)
-(7.63201 -0.508459 -1.5546e-21)
-(10.1073 0.0306904 2.03083e-23)
-(10.1092 0.0290305 1.56234e-23)
-(10.1109 0.0273455 1.75987e-22)
-(10.1124 0.02565 1.5991e-22)
-(10.1138 0.0239588 -3.46366e-23)
-(10.1152 0.0222868 5.42321e-23)
-(10.1164 0.0206469 -9.39958e-23)
-(10.1175 0.0190484 -5.73149e-23)
-(10.1185 0.0174981 -9.69941e-23)
-(10.1194 0.0160011 2.49087e-23)
-(10.1203 0.0145615 4.7537e-23)
-(10.1211 0.0131817 7.16074e-23)
-(10.1219 0.011863 -4.71183e-24)
-(10.1226 0.010605 -5.21483e-23)
-(10.1233 0.00940649 2.39217e-23)
-(10.124 0.00826545 -8.5032e-23)
-(10.1246 0.00717937 -1.34177e-22)
-(10.1253 0.00614545 -3.51012e-23)
-(10.1259 0.00516065 -3.80476e-23)
-(10.1265 0.00422169 -3.04753e-23)
-(10.1272 0.00332518 -4.50499e-23)
-(10.1278 0.00246763 -4.54657e-23)
-(10.1285 0.00164548 1.06235e-22)
-(10.1291 0.000855119 3.3287e-22)
-(10.1298 9.29382e-05 9.0739e-23)
-(10.1305 -0.00064469 -2.08898e-22)
-(10.1312 -0.0013614 2.87448e-24)
-(10.1319 -0.00206083 2.62942e-23)
-(10.1327 -0.00274669 2.01813e-23)
-(10.1334 -0.00342276 -1.0071e-22)
-(10.1342 -0.00409288 -1.94296e-22)
-(10.135 -0.00476098 -6.87333e-25)
-(10.1358 -0.00543096 1.47001e-23)
-(10.1366 -0.00610672 7.55317e-24)
-(10.1375 -0.00679218 5.59326e-24)
-(10.1383 -0.00749129 5.18237e-23)
-(10.1392 -0.00820806 -4.88472e-23)
-(10.1401 -0.00894656 -1.8295e-22)
-(10.141 -0.00971093 -1.23406e-22)
-(10.1419 -0.0105054 -9.11604e-23)
-(10.1428 -0.0113343 1.93548e-22)
-(10.1437 -0.0122019 5.43087e-23)
-(10.1446 -0.0131128 7.33094e-23)
-(10.1455 -0.0140713 7.17454e-23)
-(10.1464 -0.0150822 7.22683e-23)
-(10.1473 -0.01615 1.71662e-22)
-(10.1482 -0.0172794 3.41508e-22)
-(10.149 -0.0184751 8.00971e-23)
-(10.1499 -0.019742 -3.4873e-22)
-(10.1507 -0.0210849 -8.76919e-23)
-(10.1515 -0.0225089 -9.74552e-23)
-(10.1522 -0.0240189 -1.22139e-22)
-(10.153 -0.0256199 -2.80987e-23)
-(10.1536 -0.0273169 -7.99826e-24)
-(10.1542 -0.0291148 -3.15212e-22)
-(10.1547 -0.0310186 -1.09096e-22)
-(10.1552 -0.0330332 -1.89579e-22)
-(10.1556 -0.0351634 -7.40501e-22)
-(10.1559 -0.037414 -5.96436e-22)
-(10.1561 -0.03979 -1.35134e-22)
-(10.1562 -0.0422959 -2.21189e-22)
-(10.1562 -0.0449367 -5.82567e-23)
-(10.1561 -0.047717 2.68497e-22)
-(10.1558 -0.0506415 1.44573e-22)
-(10.1554 -0.053715 -5.47052e-23)
-(10.1549 -0.0569417 -1.61462e-22)
-(10.1542 -0.0603261 -2.39729e-22)
-(10.1533 -0.0638725 -2.64907e-22)
-(10.1522 -0.0675849 -2.71726e-22)
-(10.1509 -0.0714673 -2.48911e-22)
-(10.1494 -0.0755237 -4.97433e-23)
-(10.1477 -0.0797579 4.05723e-22)
-(10.1458 -0.0841734 4.41138e-22)
-(10.1436 -0.0887735 1.55559e-22)
-(10.1411 -0.0935613 1.70777e-22)
-(10.1384 -0.0985397 5.46465e-22)
-(10.1353 -0.103711 7.70524e-22)
-(10.132 -0.109077 2.70801e-22)
-(10.1283 -0.11464 6.36225e-23)
-(10.1243 -0.1204 -2.53437e-22)
-(10.1199 -0.126358 -1.02507e-22)
-(10.1151 -0.132514 -1.30579e-22)
-(10.11 -0.138865 9.37538e-23)
-(10.1044 -0.14541 5.58503e-22)
-(10.0984 -0.152144 1.62121e-22)
-(10.0919 -0.159065 1.11487e-22)
-(10.085 -0.166165 -5.64443e-23)
-(10.0776 -0.173438 -3.52164e-22)
-(10.0697 -0.180876 -2.99654e-22)
-(10.0613 -0.188469 -6.24795e-22)
-(10.0524 -0.196207 -7.82195e-22)
-(10.0429 -0.204079 -8.74044e-22)
-(10.0329 -0.212071 -9.19888e-22)
-(10.0222 -0.220171 -8.53079e-22)
-(10.011 -0.228364 -4.55987e-22)
-(9.99926 -0.236635 -1.08247e-22)
-(9.98686 -0.244969 -2.28268e-22)
-(9.97386 -0.253349 -1.18015e-22)
-(9.96024 -0.26176 1.77629e-22)
-(9.946 -0.270185 3.02331e-22)
-(9.93113 -0.278606 1.42174e-22)
-(9.91563 -0.287007 -1.54527e-22)
-(9.8995 -0.29537 6.45061e-22)
-(9.88274 -0.303679 3.40679e-22)
-(9.86534 -0.311915 5.18113e-22)
-(9.84731 -0.320062 3.32305e-22)
-(9.82865 -0.328103 -1.31316e-22)
-(9.80937 -0.336021 -6.66268e-23)
-(9.78946 -0.343799 -4.52349e-22)
-(9.76894 -0.351422 -4.12005e-23)
-(9.74781 -0.358874 6.91008e-22)
-(9.72607 -0.366139 1.26112e-22)
-(9.70374 -0.373203 -4.84839e-23)
-(9.68083 -0.380051 -6.62179e-23)
-(9.65733 -0.386669 6.32204e-22)
-(9.63328 -0.393045 5.65124e-22)
-(9.60866 -0.399165 -8.5218e-23)
-(9.58351 -0.405018 1.30885e-22)
-(9.55784 -0.410593 3.00584e-22)
-(9.53164 -0.415879 3.91944e-22)
-(9.50496 -0.420866 3.72325e-23)
-(9.47779 -0.425546 1.34515e-22)
-(9.45015 -0.429911 5.26292e-22)
-(9.42207 -0.433954 4.37867e-22)
-(9.39356 -0.437667 1.41209e-22)
-(9.36464 -0.441047 -1.07877e-23)
-(9.33533 -0.444089 1.93123e-22)
-(9.30565 -0.446789 2.10549e-22)
-(9.27561 -0.449146 3.29609e-22)
-(9.24525 -0.451157 1.70977e-22)
-(9.21458 -0.452824 3.8137e-23)
-(9.18362 -0.454146 7.00457e-23)
-(9.1524 -0.455126 1.89526e-22)
-(9.12094 -0.455767 6.83468e-23)
-(9.08925 -0.456073 7.13142e-23)
-(9.05737 -0.45605 -2.1752e-22)
-(9.02531 -0.455705 -2.77784e-22)
-(8.9931 -0.455045 3.39786e-22)
-(8.96075 -0.454079 4.29736e-22)
-(8.9283 -0.452818 2.27018e-22)
-(8.89575 -0.451274 2.048e-22)
-(8.86314 -0.44946 -1.15063e-22)
-(8.83048 -0.447389 -2.86779e-22)
-(8.79779 -0.445078 -8.00108e-23)
-(8.7651 -0.442543 -8.07544e-22)
-(8.73241 -0.439802 -4.43698e-22)
-(8.69975 -0.436876 -6.76516e-23)
-(8.66714 -0.433786 -3.53632e-22)
-(8.63459 -0.430553 -4.40761e-22)
-(8.60211 -0.427203 -6.92458e-23)
-(8.56973 -0.423761 6.76975e-22)
-(8.53745 -0.420256 6.19682e-22)
-(8.50529 -0.416715 3.17677e-22)
-(8.47326 -0.413171 1.9535e-22)
-(8.44138 -0.409657 3.12688e-22)
-(8.40965 -0.406209 -4.19873e-22)
-(8.37808 -0.402864 -1.37855e-21)
-(8.34669 -0.399664 -1.83694e-22)
-(8.31549 -0.396651 -4.35054e-23)
-(8.28449 -0.393874 -8.66264e-22)
-(8.25369 -0.391383 -1.62886e-21)
-(8.22312 -0.389232 -2.23366e-21)
-(8.19278 -0.387481 -7.6153e-22)
-(8.1627 -0.386194 -2.21107e-22)
-(8.13289 -0.385442 -9.24701e-22)
-(8.10337 -0.385303 -2.94973e-22)
-(8.07418 -0.385859 -1.23946e-21)
-(8.04536 -0.387205 -8.4878e-22)
-(8.01695 -0.38944 -4.86909e-22)
-(7.98901 -0.392675 5.08584e-24)
-(7.96164 -0.397027 -8.92009e-22)
-(7.93493 -0.402622 -6.57206e-22)
-(7.90903 -0.409587 6.32916e-22)
-(7.8841 -0.418046 1.57769e-21)
-(7.86039 -0.428107 1.88262e-21)
-(7.83817 -0.439837 2.28415e-21)
-(7.81776 -0.453244 1.252e-21)
-(7.79963 -0.468183 1.6652e-21)
-(7.78365 -0.484483 1.01301e-21)
-(7.77364 -0.500646 7.89695e-22)
-(10.1037 0.0285602 2.53406e-24)
-(10.1057 0.0270483 1.26132e-23)
-(10.1075 0.0255074 -3.5786e-23)
-(10.1092 0.0239505 3.99858e-23)
-(10.1107 0.0223915 2.0765e-22)
-(10.1122 0.0208436 1.67047e-22)
-(10.1136 0.0193178 1.81242e-22)
-(10.1149 0.0178231 1.45855e-22)
-(10.1161 0.016366 1.84371e-22)
-(10.1172 0.0149518 1.77021e-22)
-(10.1183 0.0135847 3.90035e-22)
-(10.1193 0.0122672 3.72578e-22)
-(10.1202 0.0110011 1.40198e-22)
-(10.1212 0.00978671 8.29763e-23)
-(10.122 0.00862376 -1.05925e-22)
-(10.1229 0.00751113 -3.46767e-22)
-(10.1238 0.0064472 -2.37874e-22)
-(10.1246 0.00542999 -2.88291e-23)
-(10.1254 0.00445719 -2.78095e-23)
-(10.1262 0.00352623 -1.69361e-22)
-(10.127 0.00263432 -2.60195e-22)
-(10.1278 0.0017785 -6.80936e-23)
-(10.1287 0.000955653 -1.83427e-22)
-(10.1295 0.000162596 -2.26103e-22)
-(10.1303 -0.000603956 1.10179e-22)
-(10.1312 -0.00134734 5.54634e-23)
-(10.132 -0.00207095 -9.42133e-23)
-(10.1329 -0.00277821 1.98505e-22)
-(10.1338 -0.00347262 4.02807e-23)
-(10.1347 -0.00415774 1.79187e-22)
-(10.1356 -0.00483717 2.82079e-22)
-(10.1365 -0.00551458 1.1882e-22)
-(10.1375 -0.00619365 2.41315e-22)
-(10.1384 -0.00687807 3.26393e-22)
-(10.1394 -0.00757154 1.02965e-23)
-(10.1404 -0.00827783 -1.24401e-22)
-(10.1414 -0.00900071 -8.13241e-23)
-(10.1424 -0.00974405 -1.69202e-22)
-(10.1435 -0.0105118 1.96796e-22)
-(10.1445 -0.0113079 2.59893e-22)
-(10.1456 -0.0121365 -1.46748e-22)
-(10.1466 -0.0130017 1.10393e-22)
-(10.1477 -0.0139077 2.13601e-22)
-(10.1488 -0.0148589 3.6957e-23)
-(10.1499 -0.0158596 -9.7368e-23)
-(10.1509 -0.0169142 -1.96261e-22)
-(10.152 -0.0180273 -9.45763e-23)
-(10.153 -0.0192033 -1.86014e-22)
-(10.1541 -0.020447 -1.61412e-22)
-(10.1551 -0.021763 -2.44046e-22)
-(10.1561 -0.0231561 -2.32666e-22)
-(10.1571 -0.0246311 -3.78659e-22)
-(10.158 -0.0261926 1.29236e-22)
-(10.1589 -0.0278456 3.11278e-22)
-(10.1598 -0.0295948 -7.54923e-23)
-(10.1606 -0.0314448 5.01485e-23)
-(10.1613 -0.0334003 2.33898e-22)
-(10.162 -0.0354661 5.91114e-22)
-(10.1626 -0.0376468 6.66439e-22)
-(10.1631 -0.0399468 5.52805e-22)
-(10.1636 -0.0423708 2.49672e-23)
-(10.1639 -0.0449233 -4.76077e-22)
-(10.1642 -0.0476087 -6.93921e-22)
-(10.1643 -0.0504315 -7.00084e-22)
-(10.1644 -0.053396 -7.82778e-22)
-(10.1642 -0.0565064 -1.37896e-21)
-(10.164 -0.0597668 -1.06179e-21)
-(10.1636 -0.0631812 -6.73378e-22)
-(10.163 -0.0667535 -5.33492e-22)
-(10.1623 -0.0704876 -2.95891e-22)
-(10.1613 -0.074387 1.33152e-22)
-(10.1602 -0.0784552 1.76319e-22)
-(10.1588 -0.0826957 -3.43466e-23)
-(10.1573 -0.0871115 -3.41169e-23)
-(10.1554 -0.0917054 -1.68765e-22)
-(10.1534 -0.09648 -5.9425e-22)
-(10.151 -0.101438 -7.51306e-22)
-(10.1484 -0.10658 -2.85854e-22)
-(10.1455 -0.111908 -2.49279e-22)
-(10.1422 -0.117424 -2.38274e-22)
-(10.1387 -0.123126 -2.10844e-22)
-(10.1347 -0.129014 -1.92184e-22)
-(10.1304 -0.135088 -1.74945e-22)
-(10.1257 -0.141344 -1.29583e-22)
-(10.1206 -0.147779 -2.47847e-24)
-(10.1151 -0.15439 2.0622e-22)
-(10.1092 -0.161169 1.31278e-23)
-(10.1028 -0.168112 -9.67603e-24)
-(10.0959 -0.17521 -3.72285e-23)
-(10.0885 -0.182453 -8.39894e-23)
-(10.0806 -0.189834 -1.21963e-22)
-(10.0721 -0.19734 -1.31685e-22)
-(10.0632 -0.204959 -6.44379e-24)
-(10.0536 -0.21268 -1.64684e-22)
-(10.0436 -0.220488 -1.0318e-22)
-(10.0329 -0.22837 3.6147e-23)
-(10.0216 -0.236311 -1.31342e-22)
-(10.0097 -0.244296 -2.38459e-22)
-(9.99725 -0.252309 -4.67234e-22)
-(9.98415 -0.260334 -3.83053e-22)
-(9.97042 -0.268356 5.33296e-23)
-(9.95606 -0.276357 2.57518e-22)
-(9.94107 -0.284322 -2.14311e-22)
-(9.92544 -0.292234 1.41386e-22)
-(9.90918 -0.300077 -2.59503e-23)
-(9.89227 -0.307833 -1.61653e-22)
-(9.87473 -0.315488 3.79768e-22)
-(9.85655 -0.323025 1.55026e-22)
-(9.83775 -0.330428 3.25891e-22)
-(9.81831 -0.337682 4.87578e-22)
-(9.79825 -0.344772 -7.6086e-23)
-(9.77758 -0.351682 -8.40092e-22)
-(9.7563 -0.358399 -5.77908e-22)
-(9.73443 -0.36491 -5.73055e-23)
-(9.71196 -0.371199 -5.0679e-22)
-(9.68892 -0.377256 -1.5727e-22)
-(9.66532 -0.383068 6.50216e-23)
-(9.64116 -0.388623 -7.68273e-23)
-(9.61646 -0.39391 1.51012e-22)
-(9.59125 -0.398921 2.21004e-23)
-(9.56553 -0.403645 4.67236e-22)
-(9.53932 -0.408073 1.52271e-22)
-(9.51264 -0.412199 7.33166e-23)
-(9.4855 -0.416015 6.25932e-23)
-(9.45794 -0.419516 -1.71592e-22)
-(9.42996 -0.422696 1.85496e-22)
-(9.40159 -0.425551 1.79859e-22)
-(9.37284 -0.428079 1.71423e-22)
-(9.34375 -0.430276 2.84259e-22)
-(9.31433 -0.432142 7.66827e-23)
-(9.28461 -0.433676 1.14693e-22)
-(9.25461 -0.43488 1.88191e-22)
-(9.22435 -0.435756 -9.29701e-23)
-(9.19385 -0.436305 8.62283e-23)
-(9.16314 -0.436534 2.11254e-22)
-(9.13225 -0.436446 1.41297e-22)
-(9.10119 -0.436049 2.15052e-22)
-(9.06999 -0.43535 -6.77215e-23)
-(9.03867 -0.434358 -2.82437e-22)
-(9.00726 -0.433082 -2.8312e-22)
-(8.97577 -0.431535 -2.65177e-22)
-(8.94423 -0.429728 9.41709e-23)
-(8.91267 -0.427676 -3.45357e-22)
-(8.88109 -0.425393 -5.19327e-22)
-(8.84951 -0.422895 3.61958e-23)
-(8.81797 -0.420202 -1.00444e-22)
-(8.78647 -0.417331 -4.05487e-22)
-(8.75503 -0.414303 7.47564e-23)
-(8.72366 -0.411141 1.78093e-23)
-(8.69239 -0.407868 1.18085e-22)
-(8.66121 -0.404509 -1.003e-21)
-(8.63015 -0.401091 -4.05178e-22)
-(8.59922 -0.397643 -2.4023e-22)
-(8.56841 -0.394197 -2.50301e-22)
-(8.53775 -0.390784 -5.43621e-22)
-(8.50723 -0.38744 2.79364e-22)
-(8.47686 -0.384203 1.45733e-21)
-(8.44665 -0.381114 5.49379e-22)
-(8.4166 -0.378216 -6.6338e-22)
-(8.3867 -0.375556 6.9324e-22)
-(8.35697 -0.373186 6.56925e-22)
-(8.3274 -0.371161 1.89987e-21)
-(8.298 -0.36954 -4.76003e-22)
-(8.26877 -0.368391 -5.57667e-22)
-(8.23971 -0.367785 8.30244e-22)
-(8.21084 -0.367802 9.7675e-22)
-(8.18217 -0.368531 -8.19322e-22)
-(8.1537 -0.370069 9.08921e-22)
-(8.12549 -0.372522 -1.88966e-22)
-(8.09757 -0.37601 -9.07601e-23)
-(8.06999 -0.380663 2.79889e-22)
-(8.04285 -0.386619 2.28759e-22)
-(8.01627 -0.394025 -8.8015e-22)
-(7.99041 -0.403029 -2.2532e-22)
-(7.96549 -0.413766 -1.50877e-21)
-(7.9418 -0.426335 -1.10233e-21)
-(7.91969 -0.440772 -2.84009e-22)
-(7.89968 -0.456963 -9.93542e-22)
-(7.88194 -0.474745 -3.54512e-22)
-(7.86938 -0.492674 1.04903e-22)
-(10.0988 0.0259815 -8.55035e-24)
-(10.1009 0.0246139 1.5505e-22)
-(10.1027 0.0232161 2.3716e-22)
-(10.1044 0.0217989 1.92758e-22)
-(10.1061 0.020374 2.63483e-22)
-(10.1077 0.0189526 -8.90196e-23)
-(10.1092 0.0175444 -1.73044e-22)
-(10.1106 0.0161574 2.17769e-23)
-(10.112 0.0147982 4.22989e-23)
-(10.1132 0.0134722 6.1178e-23)
-(10.1145 0.0121835 8.21232e-23)
-(10.1156 0.0109352 9.46989e-23)
-(10.1167 0.0097295 7.29202e-23)
-(10.1178 0.00856738 -6.59723e-23)
-(10.1189 0.00744915 1.72685e-24)
-(10.1199 0.00637442 3.96422e-22)
-(10.1209 0.00534223 2.97258e-22)
-(10.1219 0.00435119 1.20055e-22)
-(10.1229 0.00339954 1.18464e-22)
-(10.1238 0.00248523 1.07231e-22)
-(10.1248 0.00160594 9.2839e-23)
-(10.1257 0.00075918 8.57178e-23)
-(10.1267 -5.77269e-05 6.85967e-23)
-(10.1276 -0.000847572 4.83816e-23)
-(10.1286 -0.00161325 4.8349e-23)
-(10.1296 -0.00235776 -7.14989e-23)
-(10.1305 -0.00308414 -1.64692e-22)
-(10.1315 -0.00379553 1.88279e-23)
-(10.1325 -0.00449513 3.35275e-23)
-(10.1335 -0.00518619 1.67776e-22)
-(10.1346 -0.00587207 2.79417e-22)
-(10.1356 -0.00655614 1.25475e-22)
-(10.1367 -0.00724184 1.11298e-22)
-(10.1377 -0.00793264 1.00492e-22)
-(10.1388 -0.00863206 7.24529e-23)
-(10.1399 -0.00934365 5.19924e-23)
-(10.141 -0.010071 2.48141e-22)
-(10.1421 -0.0108179 3.73033e-22)
-(10.1432 -0.0115879 -1.57758e-22)
-(10.1444 -0.012385 -3.61747e-22)
-(10.1455 -0.0132129 -1.17084e-22)
-(10.1467 -0.0140757 -1.27436e-22)
-(10.1478 -0.0149774 -1.38083e-22)
-(10.149 -0.0159221 -1.59493e-22)
-(10.1501 -0.0169138 -1.62251e-22)
-(10.1513 -0.0179569 5.18952e-23)
-(10.1524 -0.0190555 3.40186e-22)
-(10.1535 -0.0202141 2.49009e-22)
-(10.1547 -0.0214369 2.72727e-22)
-(10.1558 -0.0227285 3.75228e-22)
-(10.1569 -0.0240933 7.59697e-22)
-(10.1579 -0.0255358 7.95565e-22)
-(10.1589 -0.0270605 1.99828e-22)
-(10.1599 -0.028672 3.13946e-22)
-(10.1609 -0.0303747 4.34547e-22)
-(10.1618 -0.0321731 9.18937e-23)
-(10.1627 -0.0340717 -3.48795e-24)
-(10.1634 -0.036075 -4.78324e-23)
-(10.1642 -0.0381872 -2.37964e-22)
-(10.1648 -0.0404128 -4.4414e-22)
-(10.1654 -0.0427561 -5.55846e-23)
-(10.1659 -0.0452214 -5.77757e-23)
-(10.1663 -0.047813 -5.48698e-22)
-(10.1666 -0.050535 -3.51032e-22)
-(10.1667 -0.0533916 -2.11021e-22)
-(10.1668 -0.0563867 -5.06423e-23)
-(10.1667 -0.0595242 -1.00142e-22)
-(10.1664 -0.0628081 2.24017e-22)
-(10.166 -0.0662418 1.53128e-22)
-(10.1655 -0.0698291 -2.55117e-22)
-(10.1647 -0.0735733 -6.56178e-22)
-(10.1638 -0.0774778 -7.91526e-22)
-(10.1627 -0.0815455 -5.64296e-22)
-(10.1613 -0.0857793 -5.02357e-23)
-(10.1598 -0.0901818 9.2788e-23)
-(10.1579 -0.0947553 6.31614e-22)
-(10.1559 -0.0995018 3.58399e-22)
-(10.1535 -0.104423 -3.27075e-23)
-(10.1509 -0.109519 -2.80786e-22)
-(10.1479 -0.114792 -1.18258e-22)
-(10.1446 -0.120241 -1.17681e-22)
-(10.141 -0.125865 -1.24136e-22)
-(10.1371 -0.131663 -2.67105e-22)
-(10.1327 -0.137632 -4.75996e-22)
-(10.128 -0.143769 -3.791e-22)
-(10.1228 -0.15007 -4.91208e-22)
-(10.1173 -0.15653 -1.17901e-22)
-(10.1112 -0.163142 1.65e-22)
-(10.1048 -0.1699 -2.31589e-23)
-(10.0978 -0.176794 -1.30096e-23)
-(10.0903 -0.183816 1.45906e-22)
-(10.0824 -0.190955 -6.84478e-22)
-(10.0739 -0.1982 -5.80222e-22)
-(10.0648 -0.20554 3.19757e-22)
-(10.0552 -0.212961 -3.93991e-22)
-(10.045 -0.220451 -9.55108e-22)
-(10.0343 -0.227996 -1.7836e-22)
-(10.0229 -0.235582 -8.83325e-23)
-(10.011 -0.243193 1.103e-22)
-(9.99845 -0.250815 3.69327e-22)
-(9.98529 -0.258433 1.09193e-22)
-(9.9715 -0.266031 3.73613e-22)
-(9.95709 -0.273594 7.66647e-22)
-(9.94205 -0.281106 6.64838e-22)
-(9.92637 -0.288551 7.88503e-23)
-(9.91007 -0.295914 -2.93621e-22)
-(9.89313 -0.303179 -5.91598e-24)
-(9.87557 -0.310332 3.70472e-22)
-(9.85737 -0.317357 6.46471e-22)
-(9.83856 -0.324239 -2.54391e-22)
-(9.81912 -0.330965 1.50001e-22)
-(9.79907 -0.337519 8.44145e-22)
-(9.77842 -0.343889 2.35296e-22)
-(9.75717 -0.350061 -1.6503e-22)
-(9.73533 -0.356023 1.81845e-22)
-(9.71292 -0.361763 1.17269e-22)
-(9.68995 -0.367268 -3.35255e-23)
-(9.66642 -0.372529 3.18206e-22)
-(9.64236 -0.377534 1.22809e-22)
-(9.61778 -0.382275 -4.23949e-23)
-(9.5927 -0.386742 -6.18534e-23)
-(9.56713 -0.390927 1.58229e-22)
-(9.54108 -0.394823 -4.1284e-23)
-(9.51459 -0.398424 1.25699e-22)
-(9.48767 -0.401723 1.67656e-22)
-(9.46033 -0.404717 -1.50853e-23)
-(9.43261 -0.4074 1.50084e-22)
-(9.40452 -0.40977 9.29112e-23)
-(9.37608 -0.411826 -7.86242e-23)
-(9.34732 -0.413565 1.12236e-23)
-(9.31826 -0.414987 1.34003e-23)
-(9.28893 -0.416094 7.90793e-23)
-(9.25934 -0.416887 2.10672e-22)
-(9.22953 -0.41737 8.11759e-23)
-(9.19951 -0.417546 1.61471e-24)
-(9.16931 -0.41742 -4.58767e-23)
-(9.13895 -0.416998 1.67486e-22)
-(9.10847 -0.416288 2.40104e-23)
-(9.07787 -0.415298 -5.6013e-22)
-(9.04719 -0.414038 -5.66967e-22)
-(9.01645 -0.412519 -5.17208e-22)
-(8.98567 -0.410751 -5.24981e-23)
-(8.95487 -0.40875 7.23894e-22)
-(8.92407 -0.406528 5.95114e-22)
-(8.89329 -0.404102 7.76976e-22)
-(8.86255 -0.401488 -6.09412e-22)
-(8.83187 -0.398705 -4.63003e-22)
-(8.80126 -0.395774 -1.41239e-21)
-(8.77074 -0.392714 -1.26992e-21)
-(8.74032 -0.389549 -4.13872e-22)
-(8.71002 -0.386303 -2.74316e-22)
-(8.67984 -0.383002 -1.65553e-21)
-(8.6498 -0.379675 -1.27021e-21)
-(8.61989 -0.376351 -5.0179e-22)
-(8.59013 -0.373063 -8.45488e-22)
-(8.56052 -0.369844 -4.8804e-22)
-(8.53107 -0.366732 -2.08398e-22)
-(8.50176 -0.363767 8.61089e-22)
-(8.4726 -0.360992 2.09789e-21)
-(8.44359 -0.358453 1.9302e-21)
-(8.41472 -0.356201 1.58468e-21)
-(8.38598 -0.354293 1.04308e-21)
-(8.35737 -0.352788 2.07981e-21)
-(8.32888 -0.351752 2.14361e-21)
-(8.3005 -0.351261 5.8603e-22)
-(8.27223 -0.351395 3.52104e-22)
-(8.24407 -0.352246 3.28172e-22)
-(8.21601 -0.353914 1.59125e-21)
-(8.18807 -0.356514 1.57919e-21)
-(8.16026 -0.360172 1.15588e-21)
-(8.13264 -0.365029 1.91255e-21)
-(8.10525 -0.37124 -5.90987e-23)
-(8.07821 -0.378973 1.00375e-21)
-(8.05164 -0.3884 9.24418e-22)
-(8.02577 -0.399692 -9.89379e-22)
-(8.00089 -0.412987 -1.13528e-21)
-(7.97738 -0.428368 1.27733e-22)
-(7.95577 -0.445764 1.49749e-21)
-(7.93655 -0.465052 1.36927e-21)
-(7.92159 -0.484919 2.13049e-21)
-(10.0929 0.0229426 -2.13898e-22)
-(10.095 0.0217152 -1.78865e-22)
-(10.0969 0.0204584 -2.39292e-22)
-(10.0987 0.019181 -1.8702e-22)
-(10.1004 0.0178921 -1.14395e-22)
-(10.1021 0.0166009 1.18967e-22)
-(10.1037 0.0153156 -5.95618e-23)
-(10.1052 0.0140433 -5.16042e-23)
-(10.1067 0.01279 8.76977e-23)
-(10.108 0.0115606 1.5684e-22)
-(10.1094 0.0103594 -1.90555e-23)
-(10.1107 0.00918951 -3.27723e-23)
-(10.1119 0.00805324 -3.34038e-23)
-(10.1131 0.00695211 7.97093e-23)
-(10.1143 0.00588697 1.58728e-22)
-(10.1155 0.00485799 1.48772e-22)
-(10.1166 0.00386484 2.3821e-22)
-(10.1177 0.00290676 1.97814e-22)
-(10.1188 0.00198257 2.79679e-22)
-(10.1199 0.0010908 2.60639e-22)
-(10.121 0.000229682 3.3711e-22)
-(10.122 -0.000602767 1.67615e-22)
-(10.1231 -0.00140874 1.46507e-22)
-(10.1242 -0.00219058 1.27577e-22)
-(10.1253 -0.00295078 1.20729e-22)
-(10.1263 -0.00369197 2.19187e-22)
-(10.1274 -0.00441685 2.56131e-22)
-(10.1285 -0.00512824 6.9391e-23)
-(10.1296 -0.00582904 2.78529e-23)
-(10.1307 -0.00652224 -9.64042e-23)
-(10.1318 -0.0072109 -6.40194e-23)
-(10.1329 -0.00789814 1.36507e-22)
-(10.134 -0.00858715 -1.29721e-22)
-(10.1352 -0.00928117 -2.30319e-22)
-(10.1363 -0.00998349 -1.07357e-22)
-(10.1375 -0.0106974 -1.32551e-22)
-(10.1387 -0.0114264 -3.2845e-22)
-(10.1398 -0.012174 -4.55007e-22)
-(10.141 -0.0129435 -9.12365e-23)
-(10.1422 -0.0137387 -1.1683e-22)
-(10.1434 -0.0145632 -3.41034e-22)
-(10.1446 -0.0154207 -4.17383e-22)
-(10.1458 -0.016315 -5.96447e-22)
-(10.147 -0.01725 -5.04682e-22)
-(10.1482 -0.0182296 -4.6433e-22)
-(10.1494 -0.0192578 -2.25644e-22)
-(10.1506 -0.0203385 -6.44909e-22)
-(10.1517 -0.021476 -4.12557e-22)
-(10.1529 -0.0226743 -5.93669e-22)
-(10.154 -0.0239376 -9.30471e-22)
-(10.1552 -0.0252701 -9.90735e-22)
-(10.1562 -0.0266761 -8.632e-22)
-(10.1573 -0.0281599 -7.61062e-22)
-(10.1583 -0.0297256 -8.58087e-22)
-(10.1593 -0.0313776 -5.56844e-22)
-(10.1602 -0.0331202 -7.00394e-22)
-(10.1611 -0.0349574 -9.99218e-22)
-(10.1619 -0.0368935 -9.01332e-22)
-(10.1627 -0.0389327 -6.31408e-22)
-(10.1634 -0.0410791 -5.84406e-22)
-(10.164 -0.0433367 -4.9838e-22)
-(10.1645 -0.0457098 -2.5238e-22)
-(10.1649 -0.0482021 -4.18084e-23)
-(10.1652 -0.0508177 -2.45178e-22)
-(10.1654 -0.0535604 -3.74338e-22)
-(10.1655 -0.056434 -1.99563e-22)
-(10.1654 -0.0594422 2.54952e-22)
-(10.1652 -0.0625885 -6.31086e-22)
-(10.1649 -0.0658763 -6.35191e-22)
-(10.1644 -0.069309 -3.69161e-23)
-(10.1637 -0.0728897 -3.67884e-22)
-(10.1628 -0.0766215 -3.87891e-22)
-(10.1617 -0.0805071 3.68603e-23)
-(10.1605 -0.0845491 -1.32647e-22)
-(10.159 -0.0887499 -2.50268e-22)
-(10.1572 -0.0931115 -3.62629e-22)
-(10.1552 -0.0976355 -1.03286e-22)
-(10.1529 -0.102323 6.73324e-23)
-(10.1504 -0.107176 1.39606e-22)
-(10.1475 -0.112193 -2.08281e-22)
-(10.1443 -0.117376 -4.46346e-23)
-(10.1408 -0.122722 -5.5442e-23)
-(10.137 -0.128231 -6.31793e-23)
-(10.1328 -0.133899 -8.31809e-23)
-(10.1282 -0.139725 2.24735e-23)
-(10.1232 -0.145703 1.44411e-22)
-(10.1178 -0.151829 -2.27693e-23)
-(10.1119 -0.158097 2.56265e-22)
-(10.1056 -0.164499 9.38266e-22)
-(10.0988 -0.17103 1.05013e-21)
-(10.0915 -0.177678 7.55693e-22)
-(10.0838 -0.184436 1.22061e-21)
-(10.0755 -0.191293 8.26809e-22)
-(10.0667 -0.198238 8.15717e-23)
-(10.0573 -0.205259 7.23861e-22)
-(10.0474 -0.212343 1.39519e-21)
-(10.0369 -0.219479 9.31704e-22)
-(10.0259 -0.226651 4.56974e-22)
-(10.0142 -0.233848 -6.12779e-23)
-(10.002 -0.241054 -6.05776e-22)
-(9.9891 -0.248256 2.01027e-22)
-(9.97563 -0.255438 2.5507e-22)
-(9.96155 -0.262587 -4.98216e-22)
-(9.94685 -0.269687 -4.48479e-22)
-(9.93153 -0.276724 7.68564e-24)
-(9.91558 -0.283684 1.84259e-23)
-(9.89901 -0.29055 -4.59338e-22)
-(9.88181 -0.29731 -3.14783e-22)
-(9.864 -0.303949 -1.99854e-22)
-(9.84557 -0.310453 4.36637e-22)
-(9.82652 -0.316808 1.71315e-22)
-(9.80687 -0.323002 -2.85181e-22)
-(9.78662 -0.32902 5.58765e-23)
-(9.76578 -0.334852 4.04044e-22)
-(9.74435 -0.340484 -6.11482e-24)
-(9.72236 -0.345905 -7.93235e-23)
-(9.6998 -0.351105 1.59233e-22)
-(9.6767 -0.356073 1.66641e-22)
-(9.65306 -0.360799 2.64705e-22)
-(9.62891 -0.365274 4.38277e-22)
-(9.60425 -0.36949 2.26791e-22)
-(9.57911 -0.373438 4.436e-23)
-(9.5535 -0.377113 7.60375e-23)
-(9.52743 -0.380508 2.14839e-22)
-(9.50094 -0.383617 5.50646e-22)
-(9.47404 -0.386436 4.13778e-22)
-(9.44675 -0.388961 -1.0488e-23)
-(9.4191 -0.39119 -1.5795e-22)
-(9.3911 -0.393119 -1.15395e-22)
-(9.36277 -0.394749 5.79944e-23)
-(9.33415 -0.396079 1.15842e-22)
-(9.30525 -0.397109 -1.39698e-22)
-(9.2761 -0.397842 6.98718e-23)
-(9.24672 -0.398281 -1.50857e-22)
-(9.21714 -0.398428 -4.25676e-22)
-(9.18738 -0.398289 -3.81917e-22)
-(9.15746 -0.39787 -5.74472e-22)
-(9.12741 -0.397177 -2.71699e-22)
-(9.09725 -0.396219 5.50314e-22)
-(9.06701 -0.395004 8.19336e-22)
-(9.0367 -0.393544 9.54157e-22)
-(9.00636 -0.391848 4.86902e-22)
-(8.97599 -0.389929 -5.68842e-23)
-(8.94563 -0.387802 -6.33189e-22)
-(8.91529 -0.385481 -6.11674e-22)
-(8.88499 -0.382983 4.22155e-22)
-(8.85475 -0.380324 3.19264e-22)
-(8.82458 -0.377524 1.44349e-21)
-(8.79451 -0.374603 1.15595e-21)
-(8.76453 -0.371582 9.50052e-22)
-(8.73467 -0.368486 1.98588e-21)
-(8.70493 -0.365339 2.53025e-21)
-(8.67532 -0.362168 2.0429e-21)
-(8.64586 -0.359002 9.458e-22)
-(8.61653 -0.355872 2.16481e-21)
-(8.58735 -0.352811 1.73253e-21)
-(8.55831 -0.349855 1.00788e-21)
-(8.52942 -0.347043 4.88293e-22)
-(8.50066 -0.344418 1.29798e-21)
-(8.47203 -0.342024 1.08611e-21)
-(8.44352 -0.339912 1.00754e-21)
-(8.41512 -0.338137 -1.01004e-22)
-(8.38682 -0.336759 9.63888e-22)
-(8.3586 -0.335844 1.87669e-21)
-(8.33044 -0.335467 1.30335e-21)
-(8.30233 -0.33571 2.86179e-22)
-(8.27426 -0.336666 1.53717e-21)
-(8.24621 -0.33844 2.33607e-22)
-(8.21817 -0.341151 1.35801e-21)
-(8.19016 -0.344932 1.41507e-21)
-(8.16218 -0.349935 -1.57977e-21)
-(8.13428 -0.356331 -3.47372e-22)
-(8.10653 -0.364309 -1.92651e-22)
-(8.07906 -0.374071 -2.37734e-22)
-(8.05207 -0.385826 -8.70853e-23)
-(8.02584 -0.399763 2.5305e-23)
-(8.00079 -0.416021 -1.68496e-21)
-(7.97748 -0.434596 -7.45512e-22)
-(7.95665 -0.455418 1.6105e-21)
-(7.93915 -0.477307 -9.00905e-22)
-(10.0867 0.0194256 3.90178e-22)
-(10.0887 0.0183331 8.28991e-23)
-(10.0906 0.0172132 1.69212e-22)
-(10.0924 0.0160727 4.53779e-23)
-(10.0942 0.0149184 -4.41416e-22)
-(10.0959 0.0137575 -3.1232e-22)
-(10.0976 0.0125968 -7.72237e-23)
-(10.0991 0.0114422 -2.97104e-22)
-(10.1007 0.010299 -2.71244e-22)
-(10.1022 0.00917179 -3.30539e-22)
-(10.1036 0.00806433 -2.94073e-22)
-(10.105 0.00697981 -3.58613e-22)
-(10.1063 0.00592067 -3.26798e-22)
-(10.1076 0.00488871 -4.82212e-22)
-(10.1089 0.00388512 -3.88972e-22)
-(10.1102 0.00291055 -3.41381e-22)
-(10.1114 0.00196517 -3.88539e-22)
-(10.1126 0.0010487 -3.28057e-22)
-(10.1138 0.000160512 -2.37285e-22)
-(10.115 -0.000700378 1.2084e-22)
-(10.1162 -0.00153523 1.00504e-22)
-(10.1174 -0.00234556 -1.78885e-23)
-(10.1185 -0.00313309 -2.10159e-23)
-(10.1197 -0.00389974 -2.80681e-23)
-(10.1208 -0.00464761 -3.73338e-23)
-(10.122 -0.0053789 -6.28992e-23)
-(10.1232 -0.00609597 -2.86417e-22)
-(10.1243 -0.00680131 -4.59902e-22)
-(10.1255 -0.00749746 -3.08415e-22)
-(10.1267 -0.00818712 -2.88513e-22)
-(10.1279 -0.00887302 -1.91774e-22)
-(10.129 -0.00955801 -3.73958e-22)
-(10.1302 -0.010245 -2.41334e-22)
-(10.1314 -0.010937 -2.39208e-22)
-(10.1326 -0.0116369 -3.2362e-22)
-(10.1338 -0.012348 -3.6917e-22)
-(10.1351 -0.0130734 -4.81155e-23)
-(10.1363 -0.0138163 9.33548e-23)
-(10.1375 -0.01458 -1.39151e-22)
-(10.1387 -0.0153679 -5.29013e-23)
-(10.1399 -0.0161834 1.19793e-23)
-(10.1412 -0.01703 -2.58402e-23)
-(10.1424 -0.0179113 3.72253e-23)
-(10.1436 -0.0188309 7.84218e-23)
-(10.1448 -0.0197924 7.96254e-24)
-(10.146 -0.0207996 -6.09635e-22)
-(10.1472 -0.0218562 -7.891e-22)
-(10.1484 -0.0229662 -8.78082e-22)
-(10.1496 -0.0241333 -6.02673e-22)
-(10.1507 -0.0253615 -1.91684e-22)
-(10.1518 -0.0266547 -4.07203e-22)
-(10.1529 -0.028017 -5.59057e-22)
-(10.1539 -0.0294522 -5.32257e-22)
-(10.155 -0.0309644 -1.56136e-22)
-(10.1559 -0.0325576 -4.89666e-22)
-(10.1569 -0.0342357 -4.53036e-22)
-(10.1577 -0.0360027 8.43027e-23)
-(10.1585 -0.0378626 -1.16615e-22)
-(10.1593 -0.0398192 -4.7073e-22)
-(10.1599 -0.0418764 -2.52797e-22)
-(10.1605 -0.044038 -2.39032e-22)
-(10.161 -0.0463079 -1.99484e-22)
-(10.1614 -0.0486898 -1.35479e-22)
-(10.1617 -0.0511874 -7.8939e-23)
-(10.1619 -0.0538043 -3.96871e-23)
-(10.1619 -0.0565439 -1.79686e-23)
-(10.1618 -0.0594098 3.50502e-23)
-(10.1616 -0.0624051 1.52799e-22)
-(10.1613 -0.0655332 2.06078e-23)
-(10.1607 -0.0687971 -3.43137e-22)
-(10.16 -0.0721997 3.50103e-22)
-(10.1591 -0.0757437 4.69675e-22)
-(10.158 -0.0794317 2.92058e-22)
-(10.1567 -0.083266 -1.06557e-22)
-(10.1552 -0.0872487 5.43162e-23)
-(10.1534 -0.0913816 4.82636e-23)
-(10.1514 -0.0956662 5.95692e-23)
-(10.1492 -0.100104 9.60634e-23)
-(10.1466 -0.104694 3.86881e-22)
-(10.1438 -0.109439 5.67737e-22)
-(10.1406 -0.114336 -1.051e-22)
-(10.1371 -0.119386 -1.34588e-22)
-(10.1333 -0.124586 3.70825e-23)
-(10.1291 -0.129935 4.50332e-23)
-(10.1245 -0.135429 -1.78192e-22)
-(10.1196 -0.141065 -4.79974e-22)
-(10.1142 -0.146838 -1.41469e-22)
-(10.1084 -0.152741 -3.28794e-22)
-(10.1022 -0.15877 -7.98993e-22)
-(10.0955 -0.164917 -6.96245e-22)
-(10.0883 -0.171173 -1.60471e-23)
-(10.0806 -0.17753 4.54175e-22)
-(10.0725 -0.183979 1.9749e-22)
-(10.0638 -0.190509 -7.30249e-23)
-(10.0545 -0.19711 -5.59917e-22)
-(10.0448 -0.203769 -6.64095e-22)
-(10.0344 -0.210476 -5.57993e-22)
-(10.0235 -0.217218 -1.62759e-22)
-(10.0121 -0.223981 3.31418e-22)
-(10 -0.230753 8.08868e-22)
-(9.98736 -0.237521 2.62078e-24)
-(9.9741 -0.244271 -2.67394e-22)
-(9.96024 -0.250989 -8.87962e-23)
-(9.94578 -0.257662 -3.03438e-22)
-(9.9307 -0.264276 -6.29515e-22)
-(9.915 -0.270816 -2.6666e-22)
-(9.89869 -0.277271 2.49554e-22)
-(9.88176 -0.283625 1.52514e-23)
-(9.86422 -0.289866 1.49841e-23)
-(9.84608 -0.29598 -1.03551e-22)
-(9.82732 -0.301955 -3.27393e-23)
-(9.80797 -0.307779 7.40455e-22)
-(9.78802 -0.313438 5.91579e-22)
-(9.76748 -0.318922 -3.53453e-23)
-(9.74637 -0.324219 3.44445e-22)
-(9.72469 -0.329318 5.79487e-22)
-(9.70245 -0.334208 4.24349e-22)
-(9.67967 -0.338881 -3.45821e-23)
-(9.65636 -0.343327 -4.748e-22)
-(9.63253 -0.347538 -5.1858e-22)
-(9.6082 -0.351504 -1.10758e-22)
-(9.58339 -0.35522 2.32472e-22)
-(9.5581 -0.358678 3.55402e-22)
-(9.53237 -0.361873 -2.92047e-23)
-(9.50621 -0.364799 -2.09057e-22)
-(9.47963 -0.367452 -1.16539e-22)
-(9.45267 -0.369829 -1.17699e-22)
-(9.42533 -0.371927 4.39504e-23)
-(9.39765 -0.373743 1.62823e-23)
-(9.36964 -0.375277 -1.64955e-24)
-(9.34133 -0.376529 -1.43702e-22)
-(9.31274 -0.377499 -5.73897e-23)
-(9.28389 -0.378189 8.13732e-23)
-(9.2548 -0.378601 4.34373e-23)
-(9.22551 -0.37874 -4.13127e-23)
-(9.19603 -0.378608 -3.39008e-22)
-(9.16639 -0.378213 -3.45454e-22)
-(9.13661 -0.37756 -5.70491e-24)
-(9.10672 -0.376656 3.2955e-22)
-(9.07673 -0.375511 8.40724e-22)
-(9.04667 -0.374133 8.33403e-22)
-(9.01657 -0.372534 3.07865e-22)
-(8.98643 -0.370725 3.71334e-22)
-(8.95629 -0.36872 8.21341e-22)
-(8.92616 -0.366531 1.37814e-21)
-(8.89606 -0.364175 1.38507e-21)
-(8.86601 -0.361668 1.53646e-21)
-(8.83602 -0.359028 8.49284e-24)
-(8.8061 -0.356274 -6.2463e-23)
-(8.77628 -0.353427 -4.36276e-22)
-(8.74656 -0.350509 -1.36108e-21)
-(8.71694 -0.347544 -5.49616e-22)
-(8.68745 -0.344558 7.61649e-22)
-(8.65807 -0.341578 1.11445e-22)
-(8.62882 -0.338634 -1.13715e-21)
-(8.5997 -0.335757 -1.11702e-21)
-(8.5707 -0.332984 -9.25296e-22)
-(8.54182 -0.330351 -4.4132e-22)
-(8.51305 -0.327899 -1.2756e-21)
-(8.48439 -0.325672 -1.42587e-21)
-(8.45581 -0.323719 -7.31004e-22)
-(8.42731 -0.322095 1.71519e-21)
-(8.39886 -0.320857 6.52113e-22)
-(8.37045 -0.320073 -1.88236e-21)
-(8.34205 -0.319816 -1.46522e-21)
-(8.31364 -0.320169 -2.39725e-21)
-(8.28518 -0.321226 -6.86163e-22)
-(8.25667 -0.323093 1.14692e-21)
-(8.22807 -0.325895 -2.94275e-22)
-(8.19938 -0.32977 -8.241e-22)
-(8.17058 -0.33488 4.4133e-22)
-(8.14171 -0.341412 -1.22266e-21)
-(8.11281 -0.349575 -1.20873e-21)
-(8.08399 -0.359605 -1.08141e-21)
-(8.05542 -0.371752 6.93087e-22)
-(8.02739 -0.386266 4.22871e-22)
-(8.00033 -0.403356 -3.17854e-22)
-(7.97482 -0.423099 -3.60476e-21)
-(7.95185 -0.445491 -6.04952e-21)
-(7.93126 -0.469416 -4.58866e-21)
-(10.0804 0.0154112 -2.92545e-22)
-(10.0824 0.0144484 -1.35106e-22)
-(10.0843 0.0134607 -1.6803e-22)
-(10.0861 0.0124531 -2.92725e-22)
-(10.0879 0.0114307 1.55269e-23)
-(10.0896 0.010399 -1.0153e-22)
-(10.0913 0.00936336 1.7898e-23)
-(10.0929 0.00832855 7.28331e-23)
-(10.0945 0.00729901 -4.40272e-23)
-(10.096 0.00627866 7.12424e-23)
-(10.0976 0.00527093 2.34831e-22)
-(10.099 0.00427873 1.73379e-22)
-(10.1004 0.00330442 2.5482e-22)
-(10.1018 0.00234991 4.54555e-22)
-(10.1032 0.00141657 2.41831e-22)
-(10.1046 0.000505345 8.00646e-23)
-(10.1059 -0.000383242 3.33003e-23)
-(10.1072 -0.00124905 -1.55738e-23)
-(10.1085 -0.00209231 -1.54336e-22)
-(10.1097 -0.00291352 -2.25288e-22)
-(10.111 -0.00371351 -2.23162e-23)
-(10.1122 -0.00449332 1.98821e-23)
-(10.1135 -0.00525425 -2.02466e-22)
-(10.1147 -0.00599778 -2.83112e-22)
-(10.1159 -0.00672558 -2.70766e-22)
-(10.1172 -0.00743947 -3.30147e-22)
-(10.1184 -0.00814143 -2.1142e-22)
-(10.1196 -0.00883355 -2.15622e-22)
-(10.1208 -0.00951806 -2.18308e-22)
-(10.1221 -0.0101973 -3.03218e-22)
-(10.1233 -0.0108737 -3.56308e-22)
-(10.1245 -0.0115497 -2.31306e-22)
-(10.1258 -0.0122281 -1.14771e-22)
-(10.127 -0.0129114 -1.58918e-23)
-(10.1282 -0.0136025 -2.00475e-23)
-(10.1295 -0.0143041 3.61559e-23)
-(10.1307 -0.0150193 -2.55236e-22)
-(10.132 -0.0157508 -4.8796e-22)
-(10.1332 -0.0165019 -4.347e-22)
-(10.1345 -0.0172756 -4.62283e-22)
-(10.1357 -0.0180751 -3.96421e-22)
-(10.1369 -0.0189035 -2.54862e-22)
-(10.1382 -0.0197643 -2.09901e-22)
-(10.1394 -0.0206607 -1.66746e-22)
-(10.1406 -0.0215962 -1.30484e-22)
-(10.1418 -0.0225743 -1.13503e-22)
-(10.143 -0.0235983 8.66421e-23)
-(10.1442 -0.0246719 4.13546e-22)
-(10.1453 -0.0257988 3.68208e-22)
-(10.1464 -0.0269824 1.88395e-22)
-(10.1475 -0.0282266 1.83044e-22)
-(10.1486 -0.0295349 2.95295e-22)
-(10.1496 -0.0309111 2.50669e-22)
-(10.1506 -0.0323588 -9.69503e-23)
-(10.1515 -0.0338819 2.24519e-22)
-(10.1524 -0.0354839 3.60165e-22)
-(10.1532 -0.0371686 4.70878e-23)
-(10.154 -0.0389396 5.9888e-23)
-(10.1547 -0.0408007 5.26998e-22)
-(10.1553 -0.0427552 3.55627e-22)
-(10.1558 -0.044807 2.72093e-23)
-(10.1563 -0.0469594 2.23782e-22)
-(10.1566 -0.049216 3.89762e-22)
-(10.1568 -0.0515802 6.94872e-22)
-(10.157 -0.0540553 6.73337e-22)
-(10.157 -0.0566446 3.50705e-22)
-(10.1568 -0.0593512 1.66213e-22)
-(10.1566 -0.0621782 3.53945e-22)
-(10.1561 -0.0651285 5.05353e-22)
-(10.1555 -0.0682049 3.76582e-22)
-(10.1548 -0.0714102 -1.09213e-22)
-(10.1538 -0.0747467 -2.03015e-23)
-(10.1527 -0.0782169 -3.05078e-22)
-(10.1513 -0.0818227 5.21805e-23)
-(10.1498 -0.0855661 2.18107e-22)
-(10.1479 -0.0894485 3.95553e-22)
-(10.1459 -0.0934713 2.54226e-22)
-(10.1436 -0.0976353 2.47344e-22)
-(10.141 -0.101941 1.26766e-22)
-(10.1381 -0.106389 1.00964e-22)
-(10.1349 -0.110978 3.9408e-22)
-(10.1314 -0.115707 2.3265e-22)
-(10.1275 -0.120575 2.33027e-22)
-(10.1233 -0.125579 3.53445e-22)
-(10.1187 -0.130718 6.05383e-22)
-(10.1138 -0.135986 4.51281e-22)
-(10.1084 -0.141381 1.34445e-22)
-(10.1026 -0.146896 4.42925e-22)
-(10.0964 -0.152526 3.94096e-22)
-(10.0897 -0.158264 -2.74776e-22)
-(10.0826 -0.164103 4.09962e-24)
-(10.075 -0.170036 4.27169e-23)
-(10.0668 -0.176052 6.36121e-23)
-(10.0582 -0.182144 2.84382e-22)
-(10.0491 -0.188301 5.15912e-22)
-(10.0394 -0.194512 1.63188e-22)
-(10.0292 -0.200767 9.40241e-23)
-(10.0184 -0.207054 7.18542e-23)
-(10.0071 -0.213362 5.95945e-23)
-(9.99513 -0.219679 -7.7133e-23)
-(9.98263 -0.225992 -1.13764e-22)
-(9.96954 -0.232289 1.48967e-22)
-(9.95585 -0.238556 -3.06902e-22)
-(9.94157 -0.244783 3.50682e-22)
-(9.92668 -0.250955 9.39443e-22)
-(9.91118 -0.25706 6.21453e-22)
-(9.89508 -0.263085 3.82323e-22)
-(9.87838 -0.269018 3.53876e-22)
-(9.86107 -0.274846 3.11875e-22)
-(9.84315 -0.280558 2.36022e-22)
-(9.82464 -0.28614 1.60601e-22)
-(9.80553 -0.291582 1.49767e-22)
-(9.78584 -0.296872 1.49695e-22)
-(9.76556 -0.302 7.6032e-23)
-(9.74471 -0.306953 -9.75856e-23)
-(9.7233 -0.311724 -1.74685e-22)
-(9.70133 -0.316301 5.97803e-23)
-(9.67883 -0.320676 2.55729e-23)
-(9.65579 -0.324839 1.19164e-22)
-(9.63223 -0.328784 1.21889e-22)
-(9.60818 -0.332502 -9.98196e-23)
-(9.58364 -0.335986 -2.75705e-22)
-(9.55863 -0.33923 -4.68957e-22)
-(9.53317 -0.34223 -2.89871e-22)
-(9.50727 -0.344979 -2.72144e-22)
-(9.48096 -0.347474 -2.78849e-22)
-(9.45426 -0.349711 -2.57216e-22)
-(9.42718 -0.351687 -2.01894e-22)
-(9.39974 -0.353401 -4.25619e-23)
-(9.37198 -0.354852 -8.66207e-23)
-(9.3439 -0.35604 -1.12957e-22)
-(9.31554 -0.356964 -1.66027e-22)
-(9.28691 -0.357626 -2.38272e-22)
-(9.25803 -0.358029 -2.04136e-22)
-(9.22894 -0.358176 -1.41324e-22)
-(9.19965 -0.358071 1.3924e-22)
-(9.17019 -0.357718 -2.09686e-22)
-(9.14057 -0.357124 -2.80977e-22)
-(9.11083 -0.356296 -3.30387e-22)
-(9.08098 -0.355242 -8.83327e-22)
-(9.05105 -0.35397 -8.91345e-22)
-(9.02105 -0.35249 -6.84795e-22)
-(8.991 -0.350814 -7.478e-22)
-(8.96093 -0.348953 -6.18204e-23)
-(8.93086 -0.34692 -3.90135e-23)
-(8.9008 -0.34473 3.59462e-22)
-(8.87076 -0.342399 1.65789e-22)
-(8.84077 -0.339943 6.49208e-22)
-(8.81083 -0.33738 5.94105e-22)
-(8.78096 -0.33473 3.2717e-22)
-(8.75117 -0.332014 2.97431e-22)
-(8.72146 -0.329254 -6.27818e-22)
-(8.69185 -0.326475 -1.82558e-21)
-(8.66233 -0.323703 -8.24655e-22)
-(8.6329 -0.320967 -1.27964e-21)
-(8.60357 -0.318296 -1.38311e-21)
-(8.57433 -0.315724 -1.37618e-21)
-(8.54518 -0.313288 -2.88322e-22)
-(8.5161 -0.311026 -2.87448e-22)
-(8.48708 -0.308981 -1.01933e-21)
-(8.4581 -0.307201 -2.75624e-21)
-(8.42916 -0.305738 -2.17041e-21)
-(8.40021 -0.30465 -1.59339e-21)
-(8.37123 -0.304001 -6.73754e-23)
-(8.3422 -0.303865 -1.30029e-22)
-(8.31308 -0.304324 -1.3303e-22)
-(8.28384 -0.305472 -2.2477e-22)
-(8.25443 -0.307418 -3.34524e-22)
-(8.22483 -0.310288 -5.5208e-22)
-(8.195 -0.314226 -2.1311e-21)
-(8.16491 -0.319403 -1.89259e-21)
-(8.13457 -0.326019 -1.36854e-21)
-(8.104 -0.334307 -7.92351e-22)
-(8.07326 -0.344534 -4.72795e-22)
-(8.04252 -0.356999 -5.85659e-23)
-(8.01204 -0.372018 -9.61049e-22)
-(7.98225 -0.389886 -3.17091e-21)
-(7.95375 -0.410777 -2.28757e-21)
-(7.92778 -0.434774 -1.57243e-21)
-(7.90312 -0.460728 -6.17534e-22)
-(10.0744 0.010858 -4.06956e-23)
-(10.0764 0.0100191 -2.37055e-22)
-(10.0783 0.00915813 -2.3589e-22)
-(10.0801 0.00827872 4.21493e-23)
-(10.0818 0.00738449 -5.11172e-23)
-(10.0836 0.00647951 -5.39335e-23)
-(10.0853 0.00556784 -1.48288e-22)
-(10.087 0.00465329 -1.97227e-22)
-(10.0886 0.00373938 -8.55568e-23)
-(10.0902 0.00282935 -9.85338e-23)
-(10.0917 0.0019261 -2.98491e-22)
-(10.0932 0.00103217 -5.21991e-22)
-(10.0947 0.000149746 -5.601e-22)
-(10.0962 -0.000719368 -6.39603e-22)
-(10.0976 -0.00157374 -4.70646e-22)
-(10.0991 -0.00241229 -4.36257e-22)
-(10.1004 -0.00323428 -4.77522e-22)
-(10.1018 -0.0040393 -4.39666e-22)
-(10.1032 -0.00482724 -4.82302e-22)
-(10.1045 -0.00559829 -4.72029e-22)
-(10.1058 -0.00635286 -6.82372e-22)
-(10.1072 -0.00709164 -6.43837e-22)
-(10.1085 -0.00781551 -2.23942e-22)
-(10.1098 -0.00852558 -5.60068e-23)
-(10.111 -0.00922311 -1.25549e-22)
-(10.1123 -0.00990955 4.82412e-23)
-(10.1136 -0.0105865 1.1425e-22)
-(10.1149 -0.0112557 1.76842e-23)
-(10.1162 -0.011919 -3.78855e-23)
-(10.1174 -0.0125784 2.09043e-22)
-(10.1187 -0.0132359 1.77229e-22)
-(10.12 -0.0138939 8.08626e-23)
-(10.1212 -0.0145545 7.871e-23)
-(10.1225 -0.0152201 8.4462e-23)
-(10.1238 -0.0158933 8.85995e-23)
-(10.125 -0.0165764 9.3954e-23)
-(10.1263 -0.0172723 9.80969e-23)
-(10.1275 -0.0179834 1.87979e-22)
-(10.1288 -0.0187126 4.11148e-22)
-(10.13 -0.0194628 4.45842e-22)
-(10.1313 -0.0202367 2.55475e-22)
-(10.1325 -0.0210374 2.42629e-22)
-(10.1337 -0.0218678 2.35564e-22)
-(10.1349 -0.0227311 2.96042e-22)
-(10.1361 -0.0236302 2.91239e-22)
-(10.1373 -0.0245685 3.01767e-22)
-(10.1385 -0.0255491 6.71794e-22)
-(10.1396 -0.0265752 4.95983e-22)
-(10.1407 -0.0276502 1.90363e-22)
-(10.1418 -0.0287774 4.7387e-22)
-(10.1428 -0.0299602 4.47849e-22)
-(10.1439 -0.0312019 8.94452e-25)
-(10.1448 -0.032506 2.70545e-23)
-(10.1458 -0.0338757 1.7898e-22)
-(10.1467 -0.0353147 1.94724e-22)
-(10.1475 -0.0368262 2.2609e-22)
-(10.1483 -0.0384136 3.74549e-22)
-(10.149 -0.0400804 5.13481e-22)
-(10.1496 -0.0418298 2.47349e-22)
-(10.1501 -0.0436652 3.88733e-22)
-(10.1506 -0.04559 9.65868e-22)
-(10.151 -0.0476073 7.85661e-22)
-(10.1512 -0.0497203 4.64105e-22)
-(10.1514 -0.0519322 1.82618e-22)
-(10.1515 -0.054246 4.57636e-22)
-(10.1514 -0.0566648 9.06069e-22)
-(10.1512 -0.0591914 5.85283e-22)
-(10.1508 -0.0618287 6.94267e-22)
-(10.1503 -0.0645793 9.42299e-22)
-(10.1496 -0.0674457 1.01787e-21)
-(10.1488 -0.0704305 9.41143e-22)
-(10.1478 -0.0735358 8.41096e-22)
-(10.1465 -0.0767637 8.99564e-22)
-(10.1451 -0.0801161 6.74061e-22)
-(10.1435 -0.0835946 3.65057e-22)
-(10.1416 -0.0872005 1.46318e-22)
-(10.1394 -0.090935 5.50548e-22)
-(10.137 -0.0947988 3.77155e-22)
-(10.1344 -0.0987923 2.19671e-22)
-(10.1314 -0.102915 -5.63506e-23)
-(10.1282 -0.107168 8.47801e-23)
-(10.1246 -0.111548 4.00988e-22)
-(10.1207 -0.116055 2.7313e-22)
-(10.1164 -0.120687 1.72262e-22)
-(10.1118 -0.125441 1.58713e-22)
-(10.1068 -0.130313 5.4661e-22)
-(10.1014 -0.1353 5.05915e-22)
-(10.0956 -0.140398 5.60266e-24)
-(10.0894 -0.1456 -3.18755e-22)
-(10.0827 -0.150901 1.96327e-22)
-(10.0756 -0.156295 5.86283e-23)
-(10.068 -0.161774 2.71759e-23)
-(10.0599 -0.16733 2.72156e-23)
-(10.0513 -0.172956 3.5367e-23)
-(10.0422 -0.178641 6.24827e-23)
-(10.0326 -0.184377 5.69024e-23)
-(10.0225 -0.190153 4.76667e-23)
-(10.0118 -0.19596 2.90805e-23)
-(10.0005 -0.201787 -1.50815e-22)
-(9.98872 -0.207623 -3.12619e-25)
-(9.97634 -0.213456 4.69821e-22)
-(9.96338 -0.219275 -4.6616e-23)
-(9.94984 -0.22507 3.52814e-22)
-(9.9357 -0.230827 -7.82172e-23)
-(9.92098 -0.236536 -1.92754e-22)
-(9.90566 -0.242184 2.67228e-22)
-(9.88974 -0.247761 4.5305e-22)
-(9.87322 -0.253254 3.70363e-22)
-(9.8561 -0.258652 3.07048e-22)
-(9.8384 -0.263944 -1.39313e-22)
-(9.82009 -0.269119 -1.43617e-22)
-(9.8012 -0.274166 -4.79112e-22)
-(9.78173 -0.279074 -3.90749e-22)
-(9.76168 -0.283834 -1.63487e-22)
-(9.74106 -0.288435 -1.40071e-23)
-(9.71988 -0.292869 3.46258e-23)
-(9.69814 -0.297125 -1.8989e-22)
-(9.67587 -0.301196 -1.92233e-22)
-(9.65307 -0.305073 -1.79629e-22)
-(9.62975 -0.308749 -1.24436e-23)
-(9.60593 -0.312217 1.43673e-22)
-(9.58162 -0.315471 -2.17548e-22)
-(9.55683 -0.318504 -6.14454e-22)
-(9.5316 -0.321311 -4.36817e-22)
-(9.50592 -0.323888 -1.18017e-22)
-(9.47982 -0.32623 -1.48831e-22)
-(9.45333 -0.328335 -1.50657e-22)
-(9.42645 -0.3302 -3.92332e-23)
-(9.3992 -0.331822 -2.33349e-22)
-(9.37162 -0.333201 -3.7269e-22)
-(9.34371 -0.334337 -2.22688e-22)
-(9.31551 -0.335229 -3.08929e-22)
-(9.28702 -0.335879 -8.2579e-22)
-(9.25828 -0.336289 -4.05298e-22)
-(9.22931 -0.336461 5.85529e-23)
-(9.20013 -0.3364 3.13936e-23)
-(9.17075 -0.336109 2.4291e-22)
-(9.14121 -0.335595 -3.78713e-22)
-(9.11152 -0.334863 -2.5622e-22)
-(9.0817 -0.33392 -2.58776e-23)
-(9.05178 -0.332775 -1.35757e-22)
-(9.02177 -0.331436 -2.16727e-22)
-(8.9917 -0.329915 3.39703e-23)
-(8.96158 -0.328221 -2.47684e-22)
-(8.93142 -0.326367 -5.86166e-22)
-(8.90126 -0.324367 -1.71986e-21)
-(8.87109 -0.322234 -1.7212e-21)
-(8.84094 -0.319984 -1.1305e-21)
-(8.81082 -0.317635 -8.1207e-22)
-(8.78073 -0.315204 -6.26936e-22)
-(8.75068 -0.312711 -3.20707e-22)
-(8.72069 -0.310177 -9.948e-22)
-(8.69076 -0.307626 -9.37488e-22)
-(8.66088 -0.305082 -1.89363e-21)
-(8.63105 -0.302571 8.82531e-23)
-(8.60128 -0.300123 -4.65207e-22)
-(8.57156 -0.29777 -5.12298e-22)
-(8.54188 -0.295544 -1.12919e-21)
-(8.51221 -0.293485 -2.19878e-21)
-(8.48256 -0.291633 -1.99131e-22)
-(8.45289 -0.290034 2.25335e-21)
-(8.42318 -0.288738 8.35763e-22)
-(8.3934 -0.287802 2.71418e-22)
-(8.36352 -0.287287 3.98318e-22)
-(8.33349 -0.287267 -6.62495e-22)
-(8.30328 -0.287823 9.65062e-22)
-(8.27284 -0.289047 -8.75056e-23)
-(8.24211 -0.29105 -1.39153e-21)
-(8.21105 -0.293956 -2.38325e-21)
-(8.17959 -0.297918 -1.68901e-21)
-(8.14769 -0.303111 -1.21624e-21)
-(8.11531 -0.309748 3.00779e-22)
-(8.08245 -0.318083 1.51907e-21)
-(8.04913 -0.328416 1.0172e-21)
-(8.01546 -0.341097 4.81199e-22)
-(7.98167 -0.356518 1.58378e-21)
-(7.94818 -0.375075 4.00454e-21)
-(7.91558 -0.397063 2.77457e-21)
-(7.88542 -0.422683 2.70274e-21)
-(7.85517 -0.450677 4.31717e-21)
-(10.0691 0.00571214 1.2947e-22)
-(10.0711 0.00499185 3.14441e-22)
-(10.0729 0.00425233 2.92673e-22)
-(10.0747 0.0034963 2.0662e-22)
-(10.0764 0.0027263 3.15733e-22)
-(10.0782 0.00194524 3.09495e-22)
-(10.0799 0.0011561 1.95897e-22)
-(10.0816 0.000361767 1.03651e-22)
-(10.0832 -0.000435073 1.21238e-22)
-(10.0849 -0.00123188 1.7569e-22)
-(10.0865 -0.00202631 1.18507e-22)
-(10.088 -0.00281627 3.32052e-22)
-(10.0896 -0.00359989 2.9046e-22)
-(10.0911 -0.00437557 2.69241e-22)
-(10.0926 -0.00514197 3.06792e-22)
-(10.0941 -0.00589802 2.06819e-22)
-(10.0955 -0.00664292 2.09919e-22)
-(10.097 -0.00737612 3.62816e-22)
-(10.0984 -0.0080973 4.56069e-22)
-(10.0998 -0.00880641 2.81074e-22)
-(10.1012 -0.00950359 4.23094e-22)
-(10.1025 -0.0101892 5.78121e-22)
-(10.1039 -0.0108639 3.60961e-22)
-(10.1052 -0.0115283 1.91149e-22)
-(10.1066 -0.0121834 1.66654e-22)
-(10.1079 -0.0128302 2.75301e-23)
-(10.1092 -0.0134701 1.3331e-22)
-(10.1106 -0.0141044 3.47083e-22)
-(10.1119 -0.0147347 3.06426e-22)
-(10.1132 -0.0153624 1.46582e-22)
-(10.1145 -0.0159895 1.48052e-22)
-(10.1158 -0.0166176 2.08439e-22)
-(10.117 -0.0172489 1.37766e-22)
-(10.1183 -0.0178853 2.7423e-22)
-(10.1196 -0.018529 2.55191e-22)
-(10.1209 -0.0191821 2.42675e-22)
-(10.1221 -0.0198471 2.4e-22)
-(10.1234 -0.0205261 4.24535e-22)
-(10.1246 -0.0212217 2.01595e-22)
-(10.1259 -0.0219364 2.14644e-22)
-(10.1271 -0.0226728 4.1328e-22)
-(10.1283 -0.0234334 3.8867e-22)
-(10.1295 -0.024221 2.94845e-22)
-(10.1307 -0.0250384 2.16588e-22)
-(10.1319 -0.0258882 2.18161e-22)
-(10.133 -0.0267734 4.02819e-22)
-(10.1342 -0.0276969 2.62089e-22)
-(10.1353 -0.0286615 1.85881e-22)
-(10.1363 -0.0296704 3.71147e-22)
-(10.1374 -0.0307264 4.70539e-23)
-(10.1384 -0.0318326 2.78282e-22)
-(10.1393 -0.0329921 9.24145e-22)
-(10.1403 -0.0342079 7.42529e-22)
-(10.1411 -0.0354831 2.9422e-22)
-(10.1419 -0.0368208 4.02377e-22)
-(10.1427 -0.0382242 3.80262e-22)
-(10.1434 -0.0396961 3.64137e-22)
-(10.144 -0.0412399 3.51562e-22)
-(10.1446 -0.0428584 3.23663e-22)
-(10.145 -0.0445547 1.83979e-22)
-(10.1454 -0.0463318 7.06572e-23)
-(10.1457 -0.0481927 3.37535e-22)
-(10.1459 -0.0501402 4.64937e-22)
-(10.146 -0.0521773 3.07662e-22)
-(10.1459 -0.0543066 2.87313e-22)
-(10.1458 -0.056531 2.84501e-22)
-(10.1455 -0.058853 2.59397e-22)
-(10.145 -0.0612752 1.03968e-22)
-(10.1444 -0.0638 -2.83645e-22)
-(10.1436 -0.0664297 -4.15732e-22)
-(10.1427 -0.0691665 -1.21917e-22)
-(10.1416 -0.0720124 -8.04237e-23)
-(10.1403 -0.0749693 6.77477e-23)
-(10.1387 -0.0780388 2.1789e-22)
-(10.137 -0.0812224 9.26668e-23)
-(10.135 -0.0845212 7.75379e-23)
-(10.1328 -0.0879363 7.81308e-23)
-(10.1303 -0.0914681 8.30195e-23)
-(10.1276 -0.0951171 2.01886e-22)
-(10.1245 -0.0988831 4.48881e-22)
-(10.1212 -0.102766 5.56191e-22)
-(10.1175 -0.106764 5.57728e-22)
-(10.1135 -0.110877 4.15297e-22)
-(10.1092 -0.115102 3.67945e-22)
-(10.1046 -0.119437 1.14e-22)
-(10.0995 -0.12388 -1.67451e-22)
-(10.0941 -0.128426 -3.49423e-23)
-(10.0882 -0.133071 -1.56992e-22)
-(10.082 -0.137812 5.4423e-23)
-(10.0753 -0.142643 2.78809e-22)
-(10.0681 -0.147557 -1.92508e-23)
-(10.0605 -0.15255 -4.24973e-22)
-(10.0525 -0.157612 3.80631e-23)
-(10.0439 -0.162738 -6.60075e-23)
-(10.0348 -0.16792 -6.12597e-23)
-(10.0253 -0.173148 -6.19865e-23)
-(10.0152 -0.178415 -6.60876e-23)
-(10.0045 -0.18371 -6.21747e-23)
-(9.99338 -0.189025 9.47642e-23)
-(9.98165 -0.19435 8.60043e-23)
-(9.96936 -0.199675 -5.02767e-22)
-(9.95651 -0.204989 -3.2922e-22)
-(9.94308 -0.210282 -3.70191e-23)
-(9.92907 -0.215544 -2.39977e-22)
-(9.91447 -0.220764 2.99763e-22)
-(9.89929 -0.225931 9.09646e-23)
-(9.88352 -0.231036 -2.9858e-22)
-(9.86716 -0.236067 -2.70339e-22)
-(9.85021 -0.241014 -4.22775e-22)
-(9.83267 -0.245868 -2.38333e-22)
-(9.81454 -0.250617 -2.3173e-22)
-(9.79583 -0.255252 -1.05278e-22)
-(9.77653 -0.259763 -2.5031e-23)
-(9.75667 -0.264141 -2.48598e-22)
-(9.73623 -0.268378 -4.20085e-22)
-(9.71524 -0.272463 -6.65609e-22)
-(9.6937 -0.27639 -5.58622e-22)
-(9.67161 -0.28015 -3.43395e-22)
-(9.64899 -0.283735 -3.38695e-22)
-(9.62586 -0.287139 -4.9783e-22)
-(9.60221 -0.290355 -6.74303e-22)
-(9.57808 -0.293377 -4.94163e-22)
-(9.55347 -0.2962 -1.79162e-22)
-(9.52839 -0.298818 -1.90781e-22)
-(9.50287 -0.301227 -4.72805e-22)
-(9.47692 -0.303423 -4.13166e-22)
-(9.45056 -0.305404 -1.02461e-22)
-(9.4238 -0.307165 -1.2439e-22)
-(9.39667 -0.308707 -1.46653e-22)
-(9.36919 -0.310027 -2.00566e-22)
-(9.34137 -0.311124 -4.53351e-22)
-(9.31324 -0.311999 -3.13131e-22)
-(9.28481 -0.312653 -5.07325e-23)
-(9.2561 -0.313087 -2.03312e-22)
-(9.22715 -0.313304 -3.02079e-22)
-(9.19796 -0.313306 -2.63209e-22)
-(9.16856 -0.313097 -2.88751e-22)
-(9.13898 -0.312683 1.38642e-22)
-(9.10922 -0.312069 -1.38388e-22)
-(9.07931 -0.311261 -3.61478e-22)
-(9.04926 -0.310266 -2.94669e-22)
-(9.01911 -0.309092 -4.69522e-22)
-(8.98886 -0.30775 1.6479e-23)
-(8.95853 -0.306247 1.68994e-22)
-(8.92814 -0.304597 -3.42503e-22)
-(8.8977 -0.30281 6.00796e-22)
-(8.86723 -0.3009 4.9679e-22)
-(8.83674 -0.298881 9.28822e-22)
-(8.80623 -0.296768 1.10644e-22)
-(8.77572 -0.29458 -3.03076e-22)
-(8.74522 -0.292333 -4.79573e-22)
-(8.71472 -0.290047 1.87953e-22)
-(8.68423 -0.287745 8.44881e-24)
-(8.65375 -0.285448 6.82247e-22)
-(8.62327 -0.283182 -4.67588e-22)
-(8.59279 -0.280974 2.07561e-22)
-(8.5623 -0.278853 -3.41381e-23)
-(8.53179 -0.276853 5.60508e-22)
-(8.50123 -0.275008 1.3924e-21)
-(8.4706 -0.273359 4.47239e-23)
-(8.43989 -0.271947 -5.38719e-22)
-(8.40905 -0.270821 3.0306e-22)
-(8.37805 -0.270036 -4.3276e-23)
-(8.34685 -0.269652 3.46357e-22)
-(8.31539 -0.269739 2.24006e-21)
-(8.28362 -0.270376 1.70134e-21)
-(8.25148 -0.271655 9.91335e-22)
-(8.2189 -0.273683 2.90213e-22)
-(8.1858 -0.276588 1.12238e-21)
-(8.1521 -0.280521 2.4099e-21)
-(8.11772 -0.285665 1.95581e-21)
-(8.08258 -0.292242 1.33329e-22)
-(8.04662 -0.300524 -1.42319e-21)
-(8.00981 -0.310843 -1.09274e-21)
-(7.9722 -0.323602 -7.31515e-22)
-(7.93394 -0.339271 -2.48831e-22)
-(7.89541 -0.358371 -1.13886e-21)
-(7.85717 -0.381344 -1.73348e-22)
-(7.82108 -0.408565 -2.88869e-21)
-(7.78304 -0.438567 -5.23818e-21)
-(10.0648 -0.000123253 3.83578e-23)
-(10.0667 -0.000731196 -1.69011e-23)
-(10.0685 -0.0013552 -9.61077e-23)
-(10.0703 -0.00199331 -1.37689e-23)
-(10.072 -0.00264379 -1.1592e-23)
-(10.0738 -0.00330462 -3.32154e-23)
-(10.0755 -0.00397365 3.15426e-23)
-(10.0772 -0.00464883 1.48131e-22)
-(10.0789 -0.00532814 1.64444e-23)
-(10.0805 -0.0060097 -6.5372e-23)
-(10.0822 -0.00669171 1.53975e-23)
-(10.0838 -0.00737254 3.21083e-23)
-(10.0854 -0.00805069 1.15695e-22)
-(10.0869 -0.00872486 1.69378e-22)
-(10.0885 -0.0093939 1.06712e-22)
-(10.09 -0.0100569 1.82937e-22)
-(10.0915 -0.010713 2.25071e-22)
-(10.093 -0.0113618 7.82029e-23)
-(10.0944 -0.0120029 2.38684e-23)
-(10.0959 -0.012636 1.77891e-23)
-(10.0973 -0.0132611 -1.06056e-22)
-(10.0988 -0.0138785 -1.45469e-22)
-(10.1002 -0.0144884 -1.14869e-22)
-(10.1016 -0.0150914 -2.90133e-23)
-(10.103 -0.0156882 4.92655e-23)
-(10.1043 -0.0162794 1.04013e-22)
-(10.1057 -0.0168661 3.48292e-23)
-(10.107 -0.0174494 3.31953e-23)
-(10.1084 -0.0180303 -2.85653e-23)
-(10.1097 -0.0186103 -8.19025e-23)
-(10.111 -0.0191907 -7.04314e-23)
-(10.1124 -0.019773 -5.44331e-23)
-(10.1137 -0.0203589 5.58854e-24)
-(10.115 -0.02095 -1.13477e-22)
-(10.1162 -0.0215482 -1.02765e-22)
-(10.1175 -0.0221554 -1.4825e-22)
-(10.1188 -0.0227734 -1.33134e-22)
-(10.12 -0.0234044 -1.67731e-22)
-(10.1213 -0.0240503 -3.40371e-23)
-(10.1225 -0.0247134 -3.85544e-23)
-(10.1237 -0.0253959 -2.05059e-22)
-(10.1249 -0.0261002 -1.22032e-22)
-(10.1261 -0.0268284 9.1893e-24)
-(10.1273 -0.0275831 -4.80683e-23)
-(10.1284 -0.0283667 -5.30338e-23)
-(10.1295 -0.0291816 -1.6523e-22)
-(10.1306 -0.0300305 -2.63697e-22)
-(10.1316 -0.0309159 -5.87045e-23)
-(10.1326 -0.0318404 8.15075e-23)
-(10.1336 -0.0328067 7.52089e-23)
-(10.1346 -0.0338175 -1.08666e-22)
-(10.1355 -0.0348754 -3.16402e-22)
-(10.1363 -0.0359832 -2.27372e-22)
-(10.1371 -0.0371437 -2.69699e-23)
-(10.1379 -0.0383594 -6.51904e-23)
-(10.1385 -0.0396333 1.31384e-24)
-(10.1392 -0.040968 1.56805e-23)
-(10.1397 -0.0423663 -8.8578e-23)
-(10.1402 -0.0438309 3.5114e-23)
-(10.1405 -0.0453644 9.52394e-23)
-(10.1408 -0.0469696 1.8668e-23)
-(10.141 -0.0486491 -9.94984e-23)
-(10.1411 -0.0504055 -2.19095e-22)
-(10.1411 -0.0522413 -1.07999e-22)
-(10.1409 -0.0541591 -2.16347e-22)
-(10.1407 -0.0561613 -3.38773e-22)
-(10.1403 -0.0582501 -2.23739e-22)
-(10.1397 -0.060428 -3.23986e-22)
-(10.139 -0.062697 -4.37729e-22)
-(10.1381 -0.0650592 -2.134e-22)
-(10.1371 -0.0675166 -7.79004e-23)
-(10.1358 -0.070071 -1.88893e-22)
-(10.1344 -0.0727239 -2.85396e-22)
-(10.1328 -0.075477 -3.8429e-22)
-(10.1309 -0.0783314 -1.54388e-22)
-(10.1288 -0.0812882 -1.13157e-22)
-(10.1265 -0.0843483 -3.34481e-22)
-(10.1239 -0.0875122 -2.00514e-22)
-(10.1211 -0.0907802 -7.93358e-23)
-(10.1179 -0.0941522 5.4768e-23)
-(10.1145 -0.0976279 -1.29285e-22)
-(10.1108 -0.101206 -1.43834e-22)
-(10.1067 -0.104887 1.6884e-22)
-(10.1023 -0.108667 8.6563e-23)
-(10.0975 -0.112545 -6.36194e-23)
-(10.0924 -0.116519 4.39547e-23)
-(10.0869 -0.120586 -8.96045e-23)
-(10.081 -0.124742 2.12626e-22)
-(10.0747 -0.128982 1.28267e-22)
-(10.068 -0.133304 -1.70733e-22)
-(10.0608 -0.137701 -9.42868e-23)
-(10.0532 -0.142168 1.41983e-23)
-(10.0451 -0.146699 -1.93018e-22)
-(10.0365 -0.151289 -8.48123e-23)
-(10.0274 -0.155929 -7.78296e-23)
-(10.0179 -0.160613 -1.45742e-22)
-(10.0078 -0.165333 -2.34578e-22)
-(9.9972 -0.170081 -2.08042e-22)
-(9.98607 -0.174848 -3.76493e-22)
-(9.97439 -0.179627 -4.30586e-22)
-(9.96215 -0.184409 -2.58153e-22)
-(9.94936 -0.189184 -3.47504e-23)
-(9.936 -0.193944 -6.8787e-23)
-(9.92207 -0.198678 1.08016e-22)
-(9.90756 -0.203379 -5.04104e-22)
-(9.89247 -0.208036 -4.85005e-22)
-(9.8768 -0.21264 -3.09241e-22)
-(9.86054 -0.217182 -3.07863e-22)
-(9.8437 -0.221652 -3.16326e-22)
-(9.82627 -0.226042 -3.02633e-22)
-(9.80825 -0.230341 -2.96635e-22)
-(9.78966 -0.234543 -4.38181e-22)
-(9.77048 -0.238637 -6.75771e-22)
-(9.75073 -0.242615 -5.84737e-22)
-(9.73042 -0.246469 -3.85856e-22)
-(9.70954 -0.250192 -3.5941e-22)
-(9.68811 -0.253775 -3.24888e-22)
-(9.66613 -0.257212 -1.71926e-22)
-(9.64361 -0.260495 -2.35034e-22)
-(9.62058 -0.263618 -5.9036e-22)
-(9.59702 -0.266575 -5.92085e-22)
-(9.57297 -0.269361 -3.08347e-22)
-(9.54843 -0.27197 -9.82546e-23)
-(9.52342 -0.274397 -3.36916e-22)
-(9.49795 -0.276639 -2.07252e-22)
-(9.47204 -0.278691 -8.13877e-23)
-(9.4457 -0.280551 -3.50985e-22)
-(9.41895 -0.282215 -4.34026e-22)
-(9.39181 -0.283682 -3.62087e-22)
-(9.3643 -0.284951 -1.41564e-22)
-(9.33644 -0.28602 -1.39423e-23)
-(9.30823 -0.28689 -3.75687e-23)
-(9.27972 -0.28756 -3.53098e-23)
-(9.2509 -0.288033 -4.21918e-23)
-(9.22181 -0.288309 -5.22726e-23)
-(9.19246 -0.288391 -1.50786e-22)
-(9.16287 -0.288283 1.01649e-22)
-(9.13306 -0.287987 -7.57576e-23)
-(9.10305 -0.28751 -4.25764e-23)
-(9.07285 -0.286856 5.44694e-23)
-(9.04249 -0.286032 1.19882e-22)
-(9.01198 -0.285044 1.03808e-22)
-(8.98134 -0.283901 -4.74914e-22)
-(8.95058 -0.282612 -5.88635e-22)
-(8.91972 -0.281185 -2.20609e-22)
-(8.88877 -0.279633 -9.94136e-22)
-(8.85773 -0.277967 -8.88365e-22)
-(8.82663 -0.276199 -1.39139e-21)
-(8.79546 -0.274344 -1.01537e-21)
-(8.76424 -0.272417 -8.31785e-22)
-(8.73296 -0.270435 -2.39464e-22)
-(8.70163 -0.268415 -8.38471e-22)
-(8.67025 -0.266377 -7.27354e-22)
-(8.63881 -0.264342 -1.25144e-21)
-(8.60731 -0.262333 -1.05147e-21)
-(8.57573 -0.260376 -6.25572e-22)
-(8.54406 -0.258497 -1.23713e-21)
-(8.51228 -0.256728 -9.75615e-22)
-(8.48037 -0.255101 -1.49096e-21)
-(8.4483 -0.253653 -9.08223e-22)
-(8.41603 -0.252424 -2.49452e-21)
-(8.38352 -0.251461 -3.17997e-21)
-(8.35073 -0.250814 -2.25828e-21)
-(8.31759 -0.250541 -3.58779e-21)
-(8.28406 -0.250708 -3.88408e-21)
-(8.25005 -0.251391 -2.81005e-21)
-(8.21548 -0.25268 -2.05751e-21)
-(8.18026 -0.25468 -1.52933e-21)
-(8.14428 -0.257513 -9.86175e-22)
-(8.10743 -0.261333 9.46276e-22)
-(8.06958 -0.266321 -7.65376e-23)
-(8.03061 -0.272707 1.60559e-22)
-(7.99038 -0.280776 1.46901e-22)
-(7.94879 -0.290887 1.59455e-22)
-(7.90579 -0.303492 2.01627e-22)
-(7.86142 -0.319149 4.14625e-22)
-(7.81598 -0.338517 2.31174e-21)
-(7.76994 -0.362234 2.11818e-21)
-(7.72559 -0.390948 1.91891e-21)
-(7.67669 -0.422985 1.77719e-21)
-(10.0621 -0.0062448 -2.05964e-23)
-(10.064 -0.00675424 -6.28279e-23)
-(10.0658 -0.00727638 3.36994e-23)
-(10.0675 -0.00780989 -3.8912e-23)
-(10.0693 -0.00835359 -1.22466e-23)
-(10.071 -0.00890613 1.22763e-22)
-(10.0727 -0.00946605 9.1105e-23)
-(10.0744 -0.0100319 -4.90078e-24)
-(10.0761 -0.0106022 3.96962e-23)
-(10.0778 -0.0111756 7.76215e-23)
-(10.0794 -0.0117509 1.0034e-22)
-(10.0811 -0.0123267 6.41939e-23)
-(10.0827 -0.0129019 9.47997e-23)
-(10.0843 -0.0134756 7.97289e-23)
-(10.0859 -0.0140469 2.17262e-23)
-(10.0874 -0.014615 9.44847e-23)
-(10.089 -0.0151792 1.17353e-22)
-(10.0905 -0.0157391 7.84584e-23)
-(10.092 -0.0162944 8.3084e-23)
-(10.0935 -0.0168448 1.52651e-22)
-(10.095 -0.0173902 1.96007e-22)
-(10.0965 -0.0179308 1.16523e-22)
-(10.0979 -0.0184667 1.07668e-22)
-(10.0993 -0.0189983 9.99943e-23)
-(10.1008 -0.019526 9.36897e-23)
-(10.1022 -0.0200505 8.35516e-23)
-(10.1036 -0.0205724 1.15247e-23)
-(10.1049 -0.0210925 -2.97008e-23)
-(10.1063 -0.0216117 1.7137e-22)
-(10.1077 -0.0221312 2.69297e-22)
-(10.109 -0.022652 1.25981e-22)
-(10.1103 -0.0231753 1.17241e-22)
-(10.1117 -0.0237025 1.12364e-22)
-(10.113 -0.0242349 1.12119e-22)
-(10.1142 -0.024774 1.81405e-22)
-(10.1155 -0.0253214 3.46888e-22)
-(10.1168 -0.0258787 3.05538e-22)
-(10.118 -0.0264476 3.68994e-23)
-(10.1193 -0.0270299 -2.12969e-23)
-(10.1205 -0.0276273 3.9308e-23)
-(10.1217 -0.0282418 8.51595e-23)
-(10.1228 -0.0288753 -9.83046e-23)
-(10.124 -0.0295298 -8.74838e-23)
-(10.1251 -0.0302073 -1.8305e-23)
-(10.1262 -0.03091 -6.04193e-24)
-(10.1273 -0.03164 6.03923e-23)
-(10.1283 -0.0323995 1.17031e-22)
-(10.1293 -0.0331907 5.87082e-23)
-(10.1303 -0.0340158 1.15446e-22)
-(10.1312 -0.0348771 1.73836e-22)
-(10.1321 -0.035777 1.55104e-22)
-(10.1329 -0.0367178 1.39488e-22)
-(10.1337 -0.0377019 6.61914e-23)
-(10.1344 -0.0387315 1.72125e-22)
-(10.135 -0.0398092 4.24596e-23)
-(10.1356 -0.0409372 -7.28887e-23)
-(10.1362 -0.042118 -1.60758e-23)
-(10.1366 -0.0433539 9.16523e-23)
-(10.137 -0.0446473 -7.8613e-23)
-(10.1373 -0.0460007 -2.05323e-22)
-(10.1375 -0.0474162 -2.01536e-22)
-(10.1375 -0.0488963 -3.19444e-22)
-(10.1375 -0.0504431 -2.01928e-22)
-(10.1374 -0.052059 -1.98061e-22)
-(10.1371 -0.0537462 -2.49426e-22)
-(10.1367 -0.0555066 -3.08187e-22)
-(10.1362 -0.0573426 -2.38723e-22)
-(10.1355 -0.0592559 -1.67005e-22)
-(10.1347 -0.0612486 1.41635e-24)
-(10.1337 -0.0633224 -2.70065e-23)
-(10.1325 -0.0654791 -2.52087e-22)
-(10.1312 -0.0677202 -1.41073e-22)
-(10.1296 -0.0700473 -1.32995e-22)
-(10.1279 -0.0724615 -3.53413e-23)
-(10.1259 -0.074964 8.49356e-23)
-(10.1237 -0.0775559 -2.49832e-23)
-(10.1212 -0.0802377 -3.61797e-23)
-(10.1185 -0.0830101 3.71847e-23)
-(10.1155 -0.0858733 -5.13352e-23)
-(10.1122 -0.0888272 -4.04457e-22)
-(10.1087 -0.0918717 -2.18303e-22)
-(10.1048 -0.095006 -4.14074e-22)
-(10.1006 -0.0982292 -7.26155e-22)
-(10.0961 -0.10154 -5.27415e-22)
-(10.0912 -0.104937 -2.84626e-22)
-(10.086 -0.108418 -3.56601e-22)
-(10.0804 -0.11198 -2.50455e-22)
-(10.0744 -0.11562 -1.07524e-22)
-(10.068 -0.119336 -8.76341e-23)
-(10.0612 -0.123123 1.25883e-22)
-(10.0539 -0.126977 2.09231e-22)
-(10.0462 -0.130894 1.17619e-22)
-(10.0381 -0.134868 -3.46048e-23)
-(10.0294 -0.138895 1.42797e-22)
-(10.0203 -0.142968 1.10641e-22)
-(10.0107 -0.147081 3.48139e-22)
-(10.0006 -0.151228 4.19827e-22)
-(9.98991 -0.155403 2.64898e-22)
-(9.97874 -0.159597 2.24332e-22)
-(9.96703 -0.163804 5.38913e-23)
-(9.95477 -0.168016 1.89061e-22)
-(9.94196 -0.172226 -9.40058e-23)
-(9.92858 -0.176426 -3.86095e-22)
-(9.91464 -0.180607 -2.95065e-22)
-(9.90012 -0.184761 -2.26687e-22)
-(9.88503 -0.188881 -2.38836e-22)
-(9.86936 -0.192959 -2.3977e-22)
-(9.8531 -0.196985 -3.03325e-22)
-(9.83625 -0.200953 -2.92621e-22)
-(9.81882 -0.204853 -1.33634e-22)
-(9.80081 -0.208679 -1.46606e-22)
-(9.78221 -0.212422 -8.08028e-23)
-(9.76303 -0.216074 -3.8204e-23)
-(9.74327 -0.219629 5.34141e-23)
-(9.72294 -0.223078 -3.98937e-23)
-(9.70204 -0.226415 2.58182e-22)
-(9.68057 -0.229633 3.18835e-22)
-(9.65856 -0.232725 -1.34019e-22)
-(9.636 -0.235686 -7.7365e-23)
-(9.6129 -0.238509 1.24952e-22)
-(9.58928 -0.241188 2.01874e-22)
-(9.56514 -0.243719 2.52236e-22)
-(9.5405 -0.246097 -2.59066e-23)
-(9.51537 -0.248318 1.97689e-22)
-(9.48977 -0.250376 7.23723e-23)
-(9.4637 -0.25227 -1.91811e-22)
-(9.43719 -0.253995 -6.14032e-23)
-(9.41024 -0.255549 -1.89742e-22)
-(9.38288 -0.25693 -2.55559e-22)
-(9.35512 -0.258137 -7.25985e-23)
-(9.32698 -0.259168 3.08674e-23)
-(9.29848 -0.260023 1.05814e-23)
-(9.26962 -0.260701 -2.72323e-24)
-(9.24044 -0.261204 -9.8475e-23)
-(9.21094 -0.261532 -5.26705e-25)
-(9.18115 -0.261688 1.74486e-22)
-(9.15108 -0.261673 9.87944e-23)
-(9.12075 -0.261491 -1.52972e-22)
-(9.09017 -0.261146 -3.43386e-22)
-(9.05936 -0.260641 -1.31994e-22)
-(9.02834 -0.259983 -1.77213e-22)
-(8.99712 -0.259177 2.9761e-22)
-(8.96571 -0.25823 2.28182e-22)
-(8.93413 -0.25715 4.98747e-23)
-(8.90239 -0.255944 5.26082e-27)
-(8.87049 -0.254623 -6.31543e-23)
-(8.83845 -0.253196 2.70052e-22)
-(8.80626 -0.251674 -2.75499e-23)
-(8.77394 -0.250071 -1.26583e-22)
-(8.74149 -0.248399 -3.2013e-23)
-(8.7089 -0.246673 -4.22398e-22)
-(8.67618 -0.24491 -3.64915e-23)
-(8.64331 -0.243126 -1.4581e-22)
-(8.61029 -0.241341 8.99305e-22)
-(8.5771 -0.239576 1.33344e-21)
-(8.54372 -0.237853 6.61782e-22)
-(8.51014 -0.236197 1.48511e-21)
-(8.47633 -0.234637 3.05405e-22)
-(8.44225 -0.233202 1.48207e-21)
-(8.40786 -0.231926 1.36704e-21)
-(8.37313 -0.230846 2.18446e-21)
-(8.33799 -0.230004 1.95623e-21)
-(8.30239 -0.229448 1.51015e-21)
-(8.26626 -0.229231 3.40064e-21)
-(8.2295 -0.229416 2.8893e-21)
-(8.19204 -0.230073 2.32052e-21)
-(8.15375 -0.231286 7.58868e-22)
-(8.11453 -0.233155 5.32287e-22)
-(8.07422 -0.2358 1.81036e-21)
-(8.03268 -0.239365 9.84652e-23)
-(7.98972 -0.244033 2.63118e-21)
-(7.94515 -0.25003 2.46678e-21)
-(7.89877 -0.25765 8.90057e-22)
-(7.85036 -0.267272 9.20164e-22)
-(7.79976 -0.279395 9.09221e-22)
-(7.74688 -0.294666 2.33892e-21)
-(7.69187 -0.313916 2.0317e-21)
-(7.63507 -0.338032 1.62972e-21)
-(7.57931 -0.368157 3.10917e-21)
-(7.51533 -0.402127 2.33955e-21)
-(10.0613 -0.0119789 -1.7174e-23)
-(10.0632 -0.0124117 9.41154e-23)
-(10.0649 -0.0128542 7.14978e-23)
-(10.0667 -0.0133053 1.88809e-23)
-(10.0684 -0.0137643 -2.70649e-23)
-(10.0702 -0.0142301 -4.63926e-23)
-(10.0719 -0.0147017 4.49466e-23)
-(10.0736 -0.0151781 1.15224e-22)
-(10.0753 -0.015658 1.36064e-22)
-(10.077 -0.0161406 1.07482e-22)
-(10.0786 -0.0166249 1.32565e-23)
-(10.0803 -0.01711 -6.54861e-23)
-(10.0819 -0.0175951 -1.32167e-22)
-(10.0835 -0.0180794 -1.37075e-22)
-(10.0851 -0.0185623 -2.2024e-23)
-(10.0867 -0.0190433 -7.50206e-23)
-(10.0883 -0.0195218 -1.63392e-22)
-(10.0898 -0.0199977 -7.26318e-23)
-(10.0914 -0.0204705 -2.79099e-23)
-(10.0929 -0.0209402 4.595e-24)
-(10.0944 -0.0214068 -3.09642e-23)
-(10.0959 -0.0218703 -3.40936e-23)
-(10.0974 -0.0223308 -7.4442e-23)
-(10.0988 -0.0227888 -1.36108e-22)
-(10.1003 -0.0232444 -1.15078e-22)
-(10.1017 -0.0236983 -3.28427e-23)
-(10.1031 -0.0241509 -3.12007e-24)
-(10.1045 -0.0246029 -4.88878e-23)
-(10.1059 -0.0250551 -1.20415e-22)
-(10.1073 -0.0255082 -1.70402e-22)
-(10.1086 -0.0259633 -8.67791e-23)
-(10.1099 -0.0264212 -7.41823e-23)
-(10.1113 -0.0268832 -3.21858e-23)
-(10.1126 -0.0273502 -8.0206e-24)
-(10.1139 -0.0278235 -1.22005e-22)
-(10.1151 -0.0283044 -2.40541e-22)
-(10.1164 -0.0287943 -1.37997e-22)
-(10.1176 -0.0292946 7.25654e-23)
-(10.1188 -0.0298066 6.23505e-23)
-(10.12 -0.030332 1.66774e-24)
-(10.1212 -0.0308723 1.41663e-22)
-(10.1223 -0.0314292 2.62217e-22)
-(10.1234 -0.0320044 1.78501e-22)
-(10.1245 -0.0325995 2.35442e-22)
-(10.1255 -0.0332163 2.20603e-22)
-(10.1266 -0.0338567 2.66944e-22)
-(10.1275 -0.0345224 1.69303e-22)
-(10.1285 -0.0352155 1.34195e-23)
-(10.1294 -0.0359377 -1.89905e-22)
-(10.1303 -0.0366911 -1.29991e-22)
-(10.1311 -0.0374776 -1.8119e-22)
-(10.1318 -0.0382992 -2.36378e-22)
-(10.1325 -0.0391579 -3.04062e-23)
-(10.1332 -0.0400558 -8.02325e-23)
-(10.1337 -0.0409949 -4.71412e-24)
-(10.1343 -0.0419772 1.24244e-22)
-(10.1347 -0.0430048 1.20273e-22)
-(10.135 -0.0440798 5.75245e-23)
-(10.1353 -0.0452041 1.10345e-22)
-(10.1355 -0.0463799 1.0943e-22)
-(10.1356 -0.0476091 -2.43524e-23)
-(10.1355 -0.0488937 3.39033e-23)
-(10.1354 -0.0502357 3.03669e-23)
-(10.1351 -0.0516371 -2.55124e-23)
-(10.1348 -0.0530997 -8.64929e-23)
-(10.1342 -0.0546254 -1.51484e-23)
-(10.1336 -0.0562161 -2.18165e-26)
-(10.1328 -0.0578733 6.83199e-23)
-(10.1318 -0.0595988 1.477e-22)
-(10.1307 -0.0613942 9.18904e-23)
-(10.1293 -0.063261 8.16202e-23)
-(10.1278 -0.0652005 2.40852e-23)
-(10.1261 -0.0672141 -4.90506e-23)
-(10.1242 -0.0693028 -9.78863e-23)
-(10.1221 -0.0714677 -2.28651e-22)
-(10.1197 -0.0737095 -1.57258e-22)
-(10.1171 -0.0760291 -2.14851e-22)
-(10.1142 -0.0784268 -2.41594e-22)
-(10.111 -0.0809029 -2.99875e-22)
-(10.1076 -0.0834575 -1.53346e-22)
-(10.1039 -0.0860903 -2.452e-22)
-(10.0999 -0.0888008 -7.37621e-23)
-(10.0955 -0.0915884 -4.03382e-23)
-(10.0908 -0.0944518 -2.77054e-22)
-(10.0858 -0.0973899 -2.45088e-22)
-(10.0804 -0.100401 -3.50029e-22)
-(10.0746 -0.103482 -2.97367e-22)
-(10.0684 -0.106633 -3.73925e-22)
-(10.0619 -0.109848 -1.30877e-22)
-(10.0549 -0.113127 -7.25031e-23)
-(10.0475 -0.116464 -4.56189e-22)
-(10.0396 -0.119857 -5.53566e-22)
-(10.0313 -0.123301 -4.04005e-22)
-(10.0225 -0.126791 -5.78312e-22)
-(10.0132 -0.130323 -6.40567e-22)
-(10.0034 -0.133892 -6.85654e-22)
-(9.99313 -0.137492 -6.31586e-22)
-(9.98233 -0.141118 -4.69278e-22)
-(9.97101 -0.144763 -4.91318e-22)
-(9.95914 -0.148421 -5.41026e-22)
-(9.94673 -0.152086 -3.78546e-22)
-(9.93376 -0.155752 -3.27113e-22)
-(9.92023 -0.159411 -2.90893e-22)
-(9.90613 -0.163058 -2.53116e-22)
-(9.89146 -0.166684 -2.11735e-22)
-(9.8762 -0.170283 -1.80747e-22)
-(9.86036 -0.173848 -1.50348e-22)
-(9.84393 -0.177372 -4.81591e-23)
-(9.82691 -0.180848 -2.9744e-23)
-(9.8093 -0.184268 -2.61063e-22)
-(9.79109 -0.187627 -2.95473e-22)
-(9.77229 -0.190917 -1.68616e-22)
-(9.7529 -0.194131 -5.48998e-23)
-(9.73292 -0.197263 -2.31093e-22)
-(9.71235 -0.200306 -2.54752e-22)
-(9.6912 -0.203255 -3.92446e-22)
-(9.66948 -0.206102 -3.90023e-22)
-(9.64718 -0.208843 -5.98928e-23)
-(9.62432 -0.211472 -6.40802e-23)
-(9.60091 -0.213983 5.29172e-23)
-(9.57694 -0.216372 3.0333e-23)
-(9.55244 -0.218633 -2.3354e-22)
-(9.52741 -0.220762 8.12819e-25)
-(9.50187 -0.222755 -1.04546e-22)
-(9.47582 -0.224609 -8.52904e-23)
-(9.44927 -0.22632 4.83891e-23)
-(9.42225 -0.227884 4.88453e-23)
-(9.39476 -0.2293 1.65899e-22)
-(9.36681 -0.230565 3.34075e-22)
-(9.33842 -0.231678 1.84821e-22)
-(9.30961 -0.232636 -2.25243e-22)
-(9.28039 -0.23344 -2.29282e-22)
-(9.25077 -0.234089 -7.05088e-23)
-(9.22077 -0.234582 1.37921e-22)
-(9.1904 -0.234921 -1.0748e-22)
-(9.15967 -0.235106 -3.8227e-22)
-(9.12861 -0.23514 -2.64726e-22)
-(9.09722 -0.235025 1.21795e-22)
-(9.06551 -0.234763 3.15551e-23)
-(9.0335 -0.234358 -8.88811e-23)
-(9.0012 -0.233814 6.23511e-23)
-(8.96862 -0.233137 -5.25666e-22)
-(8.93576 -0.23233 -4.94719e-23)
-(8.90264 -0.231402 -8.94576e-23)
-(8.86926 -0.230358 -3.00133e-22)
-(8.83563 -0.229206 4.27011e-22)
-(8.80174 -0.227956 2.30443e-22)
-(8.7676 -0.226616 1.13665e-22)
-(8.7332 -0.225198 4.64403e-22)
-(8.69854 -0.223713 5.28755e-22)
-(8.66361 -0.222174 4.11483e-22)
-(8.6284 -0.220594 8.44912e-22)
-(8.5929 -0.21899 5.47676e-22)
-(8.55708 -0.217377 -2.67798e-22)
-(8.52093 -0.215774 -7.19439e-22)
-(8.48441 -0.214202 4.09935e-22)
-(8.44749 -0.212682 6.09196e-22)
-(8.41014 -0.211239 6.89686e-22)
-(8.37231 -0.209899 1.30463e-22)
-(8.33395 -0.208693 6.93669e-22)
-(8.29499 -0.207654 1.26249e-21)
-(8.25536 -0.20682 1.67281e-21)
-(8.215 -0.206233 2.07652e-21)
-(8.1738 -0.205941 4.84875e-22)
-(8.13166 -0.206001 2.08974e-22)
-(8.08847 -0.206476 -2.75877e-23)
-(8.04409 -0.207445 2.00839e-21)
-(7.99836 -0.208996 1.8564e-21)
-(7.95111 -0.211242 8.62848e-23)
-(7.90213 -0.214318 -9.37592e-23)
-(7.8512 -0.218395 -1.81322e-21)
-(7.79806 -0.223693 -4.74269e-23)
-(7.74242 -0.230501 3.12568e-21)
-(7.68397 -0.239206 2.40166e-21)
-(7.62239 -0.250336 1.74547e-21)
-(7.55742 -0.264621 -6.32917e-22)
-(7.48904 -0.283079 -5.73375e-22)
-(7.4173 -0.306906 -4.81481e-22)
-(7.34586 -0.338064 -4.9026e-22)
-(7.2612 -0.373737 -2.46121e-22)
-(10.0619 -0.0169577 -4.96464e-23)
-(10.0638 -0.0173263 -7.31598e-23)
-(10.0656 -0.0177031 -9.8017e-23)
-(10.0673 -0.018087 -4.74657e-23)
-(10.069 -0.0184774 -5.33256e-23)
-(10.0708 -0.0188734 -1.07109e-22)
-(10.0725 -0.0192739 -1.77839e-22)
-(10.0742 -0.0196782 -1.54196e-22)
-(10.0759 -0.0200854 -1.5005e-22)
-(10.0776 -0.0204946 -2.06716e-22)
-(10.0793 -0.0209051 -8.21857e-23)
-(10.0809 -0.0213163 7.67657e-23)
-(10.0826 -0.0217274 5.64956e-23)
-(10.0842 -0.0221381 2.71994e-23)
-(10.0858 -0.0225477 -9.82198e-23)
-(10.0874 -0.0229559 -6.18563e-23)
-(10.089 -0.0233623 8.64938e-23)
-(10.0906 -0.0237669 -1.15259e-23)
-(10.0921 -0.0241692 -5.25498e-23)
-(10.0937 -0.0245694 -4.32305e-23)
-(10.0952 -0.0249674 -1.3258e-23)
-(10.0967 -0.0253632 -8.33231e-23)
-(10.0982 -0.025757 9.73127e-24)
-(10.0996 -0.026149 8.20018e-23)
-(10.1011 -0.0265397 6.14267e-23)
-(10.1025 -0.0269292 -2.90603e-23)
-(10.1039 -0.0273182 -6.33291e-23)
-(10.1053 -0.0277072 -2.17014e-23)
-(10.1067 -0.0280967 -2.41231e-23)
-(10.1081 -0.0284875 -2.37969e-23)
-(10.1094 -0.0288803 1.82458e-23)
-(10.1107 -0.029276 7.84567e-23)
-(10.1121 -0.0296753 -1.782e-23)
-(10.1133 -0.0300794 -1.306e-22)
-(10.1146 -0.0304891 -9.04973e-23)
-(10.1159 -0.0309056 -1.26432e-22)
-(10.1171 -0.03133 -8.51741e-23)
-(10.1183 -0.0317634 -8.28928e-23)
-(10.1195 -0.0322071 -1.15709e-22)
-(10.1206 -0.0326624 -1.47863e-22)
-(10.1217 -0.0331306 -1.73571e-22)
-(10.1228 -0.0336131 -2.27271e-22)
-(10.1239 -0.0341112 -1.70567e-22)
-(10.1249 -0.0346266 -1.60329e-22)
-(10.1259 -0.0351605 -1.4914e-22)
-(10.1269 -0.0357147 -2.45796e-22)
-(10.1278 -0.0362906 -2.13692e-22)
-(10.1286 -0.0368898 -1.25929e-22)
-(10.1295 -0.0375141 3.2335e-23)
-(10.1302 -0.0381649 -1.04461e-22)
-(10.131 -0.0388441 1.06383e-22)
-(10.1316 -0.0395534 2.66628e-23)
-(10.1322 -0.0402943 -1.14974e-22)
-(10.1328 -0.0410688 -3.90868e-23)
-(10.1333 -0.0418785 -3.77458e-23)
-(10.1337 -0.0427251 -9.67766e-23)
-(10.134 -0.0436106 -1.6069e-22)
-(10.1342 -0.0445365 -7.43791e-23)
-(10.1343 -0.0455047 1.22138e-23)
-(10.1344 -0.0465169 1.68789e-22)
-(10.1343 -0.047575 2.35015e-22)
-(10.1342 -0.0486805 2.32567e-22)
-(10.1339 -0.0498352 2.18606e-22)
-(10.1335 -0.0510408 3.39774e-22)
-(10.1329 -0.052299 3.8598e-22)
-(10.1323 -0.0536113 4.23611e-22)
-(10.1314 -0.0549793 3.88979e-22)
-(10.1304 -0.0564046 2.8788e-22)
-(10.1293 -0.0578886 2.60962e-22)
-(10.128 -0.0594326 2.35378e-22)
-(10.1265 -0.061038 2.16684e-22)
-(10.1248 -0.0627061 2.5407e-22)
-(10.1229 -0.0644378 3.02727e-22)
-(10.1207 -0.0662344 2.10576e-22)
-(10.1184 -0.0680965 1.26888e-22)
-(10.1158 -0.0700251 9.70629e-23)
-(10.113 -0.0720207 2.23227e-22)
-(10.1099 -0.0740838 2.04531e-22)
-(10.1065 -0.0762146 3.18112e-22)
-(10.1029 -0.0784132 3.72426e-22)
-(10.0989 -0.0806795 3.61568e-22)
-(10.0946 -0.0830131 2.85039e-22)
-(10.09 -0.0854134 3.81601e-22)
-(10.0851 -0.0878797 5.04693e-22)
-(10.0798 -0.0904108 4.19208e-22)
-(10.0742 -0.0930053 5.74834e-22)
-(10.0682 -0.0956615 6.6977e-22)
-(10.0617 -0.0983775 5.5663e-22)
-(10.0549 -0.101151 3.94796e-22)
-(10.0476 -0.103979 2.90177e-22)
-(10.04 -0.10686 4.53141e-22)
-(10.0318 -0.109789 6.0257e-22)
-(10.0232 -0.112764 3.03942e-22)
-(10.0142 -0.115781 1.43129e-22)
-(10.0046 -0.118835 2.25022e-22)
-(9.99454 -0.121922 1.01469e-22)
-(9.98397 -0.125038 -3.68205e-23)
-(9.97287 -0.128178 7.22663e-23)
-(9.96125 -0.131336 1.60028e-22)
-(9.94908 -0.134509 2.69372e-22)
-(9.93636 -0.137689 1.59032e-22)
-(9.92307 -0.140872 2.36537e-22)
-(9.90921 -0.144052 3.37013e-22)
-(9.89478 -0.147222 3.00046e-22)
-(9.87976 -0.150378 3.75179e-22)
-(9.86415 -0.153513 2.49429e-22)
-(9.84794 -0.156621 2.28806e-22)
-(9.83113 -0.159695 2.89864e-22)
-(9.81372 -0.162731 3.57117e-22)
-(9.79569 -0.165721 2.33821e-22)
-(9.77706 -0.16866 2.75549e-22)
-(9.75782 -0.171541 3.12788e-22)
-(9.73796 -0.174359 3.43534e-22)
-(9.7175 -0.177108 5.10037e-22)
-(9.69643 -0.179782 3.54333e-22)
-(9.67475 -0.182376 2.91242e-22)
-(9.65246 -0.184885 2.92443e-22)
-(9.62958 -0.187302 5.5099e-23)
-(9.6061 -0.189623 8.85877e-23)
-(9.58203 -0.191843 1.84538e-22)
-(9.55738 -0.193958 -2.22708e-23)
-(9.53215 -0.195964 1.06337e-22)
-(9.50636 -0.197855 1.00721e-22)
-(9.48 -0.199628 1.51044e-22)
-(9.45309 -0.20128 2.00127e-22)
-(9.42564 -0.202808 1.27028e-22)
-(9.39766 -0.204207 5.90422e-23)
-(9.36915 -0.205477 6.6442e-23)
-(9.34012 -0.206614 2.28883e-23)
-(9.3106 -0.207616 1.78309e-23)
-(9.28058 -0.208483 2.22019e-22)
-(9.25008 -0.209211 1.66043e-22)
-(9.2191 -0.209802 3.13243e-23)
-(9.18767 -0.210255 -5.90321e-23)
-(9.15578 -0.210569 9.09527e-23)
-(9.12344 -0.210745 2.58832e-22)
-(9.09067 -0.210785 3.93216e-23)
-(9.05747 -0.210689 -1.39348e-22)
-(9.02385 -0.210459 1.56566e-22)
-(8.98981 -0.210099 -7.09839e-24)
-(8.95537 -0.209611 -2.56836e-22)
-(8.92051 -0.209 3.19783e-22)
-(8.88525 -0.208268 5.11481e-23)
-(8.84959 -0.207422 2.24398e-22)
-(8.81351 -0.206467 2.47252e-22)
-(8.77703 -0.20541 1.54189e-22)
-(8.74013 -0.204257 -3.99671e-23)
-(8.70281 -0.203017 6.98118e-22)
-(8.66505 -0.201699 2.76545e-22)
-(8.62684 -0.200312 5.37501e-22)
-(8.58816 -0.198868 4.91956e-22)
-(8.549 -0.197378 3.03623e-22)
-(8.50933 -0.195856 5.9333e-22)
-(8.46911 -0.194315 1.36336e-21)
-(8.42833 -0.192773 1.6386e-21)
-(8.38694 -0.191245 7.53339e-22)
-(8.3449 -0.189753 4.39683e-22)
-(8.30215 -0.188317 9.17545e-22)
-(8.25865 -0.186961 7.7779e-22)
-(8.21434 -0.18571 5.32044e-22)
-(8.16914 -0.184596 -3.4378e-22)
-(8.12297 -0.183651 -1.15302e-21)
-(8.07576 -0.182912 -1.82243e-21)
-(8.02739 -0.182423 -1.66655e-21)
-(7.97775 -0.182234 -2.20044e-21)
-(7.92673 -0.182401 -1.94524e-21)
-(7.87417 -0.182995 -1.73384e-21)
-(7.81992 -0.184098 -8.11278e-22)
-(7.76378 -0.185808 -7.33202e-23)
-(7.70554 -0.188252 -1.23042e-21)
-(7.64495 -0.191588 -1.40395e-21)
-(7.58173 -0.196023 -1.24096e-21)
-(7.51555 -0.20183 -3.80397e-21)
-(7.44602 -0.209392 -3.0697e-21)
-(7.37275 -0.219245 -2.37658e-21)
-(7.2953 -0.23217 -2.00872e-21)
-(7.21347 -0.249352 -7.32482e-22)
-(7.12693 -0.272294 -8.89471e-22)
-(7.04026 -0.304054 -1.90425e-21)
-(6.93495 -0.341493 -1.5647e-21)
-(10.0636 -0.0214583 7.52127e-24)
-(10.0655 -0.0217776 -6.25857e-23)
-(10.0672 -0.0221035 -4.93245e-23)
-(10.0689 -0.0224347 -2.0471e-23)
-(10.0707 -0.0227701 -1.88426e-23)
-(10.0724 -0.0231089 -1.02255e-23)
-(10.0741 -0.02345 6.61381e-23)
-(10.0758 -0.0237928 1.06124e-22)
-(10.0775 -0.0241364 1.56299e-23)
-(10.0792 -0.0244804 -2.36445e-23)
-(10.0809 -0.0248243 -9.3639e-23)
-(10.0825 -0.0251676 -9.39476e-23)
-(10.0842 -0.02551 -3.4141e-23)
-(10.0858 -0.0258512 -1.60557e-23)
-(10.0874 -0.026191 8.58252e-23)
-(10.089 -0.0265293 1.40738e-22)
-(10.0906 -0.026866 -1.22209e-23)
-(10.0921 -0.0272009 -4.64194e-23)
-(10.0937 -0.027534 -2.14807e-24)
-(10.0952 -0.0278655 -5.08307e-23)
-(10.0967 -0.0281953 -7.82281e-23)
-(10.0982 -0.0285236 -2.29392e-23)
-(10.0997 -0.0288506 -1.64108e-23)
-(10.1011 -0.0291765 -8.61075e-24)
-(10.1026 -0.0295017 -7.57344e-24)
-(10.104 -0.0298263 -5.07003e-23)
-(10.1054 -0.030151 -8.08324e-23)
-(10.1068 -0.030476 -2.77745e-23)
-(10.1081 -0.030802 -2.56982e-23)
-(10.1094 -0.0311294 -2.95065e-23)
-(10.1108 -0.031459 -7.58011e-23)
-(10.112 -0.0317914 -1.46965e-22)
-(10.1133 -0.0321274 -8.82889e-23)
-(10.1145 -0.0324676 -5.07521e-24)
-(10.1158 -0.032813 -8.41381e-24)
-(10.117 -0.0331645 2.72754e-23)
-(10.1181 -0.0335229 -2.12028e-23)
-(10.1193 -0.0338892 -5.81177e-23)
-(10.1204 -0.0342645 -9.41325e-24)
-(10.1214 -0.0346499 1.10976e-22)
-(10.1225 -0.0350464 5.62958e-23)
-(10.1235 -0.0354551 7.71201e-23)
-(10.1245 -0.0358774 -2.16192e-23)
-(10.1254 -0.0363143 -1.05905e-22)
-(10.1263 -0.0367672 -6.45114e-23)
-(10.1271 -0.0372374 1.50707e-23)
-(10.1279 -0.0377261 4.56945e-23)
-(10.1287 -0.0382347 8.60864e-23)
-(10.1294 -0.0387647 7.1395e-23)
-(10.13 -0.0393173 1.3664e-22)
-(10.1306 -0.0398941 -9.94753e-23)
-(10.1312 -0.0404965 2.40446e-23)
-(10.1316 -0.0411259 1.37728e-22)
-(10.132 -0.0417838 5.65932e-23)
-(10.1323 -0.0424717 9.02715e-23)
-(10.1325 -0.0431912 1.15726e-22)
-(10.1327 -0.0439437 2.70019e-23)
-(10.1327 -0.0447307 -1.45687e-23)
-(10.1327 -0.0455538 2.18451e-23)
-(10.1325 -0.0464145 1.76673e-23)
-(10.1323 -0.0473142 -4.85595e-23)
-(10.1319 -0.0482545 -1.28057e-22)
-(10.1314 -0.0492369 -1.16981e-22)
-(10.1308 -0.0502627 -2.47413e-22)
-(10.13 -0.0513335 -2.30698e-22)
-(10.1291 -0.0524507 -2.56673e-22)
-(10.1281 -0.0536155 -3.78564e-22)
-(10.1268 -0.0548294 -1.89505e-22)
-(10.1254 -0.0560936 -1.52031e-22)
-(10.1238 -0.0574093 -1.20381e-22)
-(10.1221 -0.0587777 -9.6682e-23)
-(10.1201 -0.0601998 -1.28895e-22)
-(10.1179 -0.0616767 -1.19784e-22)
-(10.1155 -0.0632093 4.85894e-23)
-(10.1129 -0.0647983 5.28655e-23)
-(10.11 -0.0664445 1.40457e-22)
-(10.1068 -0.0681484 7.76699e-23)
-(10.1034 -0.0699104 7.29478e-23)
-(10.0997 -0.0717309 7.03785e-23)
-(10.0958 -0.07361 1.32428e-22)
-(10.0915 -0.0755475 2.10838e-22)
-(10.0869 -0.0775432 1.40328e-22)
-(10.0819 -0.0795968 1.89363e-22)
-(10.0766 -0.0817074 2.66541e-22)
-(10.071 -0.0838744 2.98867e-22)
-(10.065 -0.0860964 4.35535e-22)
-(10.0586 -0.0883722 1.9362e-22)
-(10.0518 -0.0907002 3.1828e-23)
-(10.0445 -0.0930785 9.92147e-23)
-(10.0369 -0.0955049 7.01005e-23)
-(10.0288 -0.097977 1.74767e-22)
-(10.0202 -0.100492 1.77242e-22)
-(10.0112 -0.103048 5.45813e-22)
-(10.0017 -0.10564 7.2494e-22)
-(9.99167 -0.108267 6.23214e-22)
-(9.98115 -0.110923 4.93545e-22)
-(9.97011 -0.113605 6.33101e-22)
-(9.95853 -0.11631 4.29424e-22)
-(9.94641 -0.119032 3.29343e-22)
-(9.93373 -0.121767 3.65541e-22)
-(9.92048 -0.124511 3.41524e-22)
-(9.90665 -0.12726 2.8429e-22)
-(9.89223 -0.130007 2.22414e-22)
-(9.87722 -0.132748 1.89815e-22)
-(9.8616 -0.135478 7.90795e-23)
-(9.84536 -0.138191 1.83772e-22)
-(9.82851 -0.140883 1.85132e-22)
-(9.81103 -0.143548 1.09878e-22)
-(9.79291 -0.146181 2.21657e-23)
-(9.77416 -0.148776 1.97167e-22)
-(9.75477 -0.151328 1.48095e-22)
-(9.73474 -0.153833 -1.78286e-22)
-(9.71406 -0.156284 -1.32355e-22)
-(9.69272 -0.158676 -7.92944e-23)
-(9.67074 -0.161005 3.60586e-23)
-(9.64811 -0.163265 1.14158e-22)
-(9.62483 -0.165451 1.85568e-22)
-(9.6009 -0.167559 1.59986e-22)
-(9.57632 -0.169585 1.39458e-22)
-(9.55109 -0.171523 1.51856e-22)
-(9.52522 -0.17337 3.39775e-22)
-(9.49871 -0.175121 1.58387e-22)
-(9.47157 -0.176772 5.634e-23)
-(9.44379 -0.17832 6.77841e-23)
-(9.41538 -0.179761 5.9046e-23)
-(9.38634 -0.181092 1.18878e-22)
-(9.35669 -0.182311 1.04427e-22)
-(9.32642 -0.183413 9.26172e-23)
-(9.29554 -0.184398 -1.46131e-23)
-(9.26405 -0.185262 -3.65327e-24)
-(9.23196 -0.186004 1.87568e-22)
-(9.19927 -0.186622 2.24763e-22)
-(9.16598 -0.187115 1.08113e-22)
-(9.13211 -0.187482 5.19512e-23)
-(9.09765 -0.187724 5.28813e-23)
-(9.0626 -0.187839 7.04382e-23)
-(9.02696 -0.187828 6.73978e-23)
-(8.99074 -0.187691 1.25506e-22)
-(8.95393 -0.187431 -1.52781e-22)
-(8.91654 -0.187048 -9.97365e-23)
-(8.87856 -0.186545 -2.80802e-26)
-(8.83998 -0.185925 -2.95374e-22)
-(8.8008 -0.185191 -3.36373e-22)
-(8.76101 -0.184346 -2.73526e-22)
-(8.7206 -0.183396 -1.05602e-22)
-(8.67957 -0.182345 -6.21636e-22)
-(8.6379 -0.1812 -5.55066e-22)
-(8.59557 -0.179967 -9.09947e-22)
-(8.55257 -0.178653 -3.2331e-22)
-(8.50888 -0.177267 -6.70046e-22)
-(8.46448 -0.175819 -5.70678e-22)
-(8.41935 -0.174319 -9.15041e-22)
-(8.37345 -0.172777 -6.73639e-22)
-(8.32676 -0.171208 -1.4813e-21)
-(8.27926 -0.169624 -1.78391e-21)
-(8.23089 -0.168042 -1.44225e-21)
-(8.18163 -0.166479 -1.09592e-21)
-(8.13144 -0.164954 -8.53508e-22)
-(8.08026 -0.163488 -5.90833e-22)
-(8.02804 -0.162104 -1.82583e-21)
-(7.97474 -0.16083 -2.14578e-21)
-(7.92027 -0.159695 -2.33539e-21)
-(7.86458 -0.158734 -1.93341e-21)
-(7.80758 -0.157985 -1.63751e-21)
-(7.74919 -0.157493 -6.46921e-22)
-(7.68928 -0.15731 -7.07266e-22)
-(7.62775 -0.157498 -1.80982e-21)
-(7.56445 -0.158131 -2.66099e-21)
-(7.49922 -0.1593 -3.17705e-21)
-(7.43185 -0.161117 -2.52012e-21)
-(7.36212 -0.163726 -1.99348e-21)
-(7.28973 -0.167315 -1.63599e-21)
-(7.21434 -0.172141 -4.37479e-22)
-(7.13553 -0.178563 -5.44273e-22)
-(7.05281 -0.187108 -6.29804e-22)
-(6.96559 -0.198566 -6.28816e-22)
-(6.87347 -0.21425 -1.58142e-21)
-(6.7755 -0.235907 -2.26629e-21)
-(6.67721 -0.267923 -2.6733e-22)
-(6.55431 -0.307091 -5.42383e-22)
-(10.0659 -0.0252392 3.74273e-23)
-(10.0677 -0.0255141 8.06951e-23)
-(10.0694 -0.025797 6.17358e-23)
-(10.0711 -0.0260851 2.72413e-23)
-(10.0728 -0.0263766 2.26182e-23)
-(10.0745 -0.0266702 1.54648e-23)
-(10.0762 -0.026965 -1.3886e-23)
-(10.0779 -0.0272601 -2.837e-23)
-(10.0796 -0.0275546 1.54394e-24)
-(10.0812 -0.0278483 1.34084e-24)
-(10.0829 -0.0281405 -1.5978e-25)
-(10.0845 -0.0284312 1.09024e-24)
-(10.0861 -0.02872 3.48812e-23)
-(10.0877 -0.0290068 1.01868e-22)
-(10.0893 -0.0292916 5.03207e-23)
-(10.0909 -0.0295742 -6.58347e-23)
-(10.0924 -0.0298547 9.58572e-25)
-(10.0939 -0.0301331 4.86423e-23)
-(10.0954 -0.0304095 2.34506e-23)
-(10.0969 -0.0306839 5.52107e-23)
-(10.0984 -0.0309565 1.48299e-22)
-(10.0998 -0.0312274 1.73568e-22)
-(10.1012 -0.0314969 1.08878e-22)
-(10.1026 -0.0317653 1.18784e-22)
-(10.104 -0.0320327 8.83561e-23)
-(10.1053 -0.0322995 1.30362e-22)
-(10.1067 -0.0325662 1.57305e-22)
-(10.1079 -0.0328331 9.08423e-23)
-(10.1092 -0.0331007 3.42696e-23)
-(10.1105 -0.0333695 -1.10598e-23)
-(10.1117 -0.03364 3.2051e-23)
-(10.1129 -0.0339128 1.79548e-23)
-(10.114 -0.0341886 -3.73612e-23)
-(10.1152 -0.034468 -1.19295e-22)
-(10.1163 -0.0347517 -9.66489e-23)
-(10.1173 -0.0350405 8.26884e-24)
-(10.1184 -0.0353352 4.8288e-23)
-(10.1194 -0.0356365 -2.63807e-25)
-(10.1203 -0.0359455 4.51986e-24)
-(10.1213 -0.0362628 8.59072e-24)
-(10.1222 -0.0365896 -3.03893e-23)
-(10.123 -0.0369267 -6.28451e-23)
-(10.1238 -0.0372752 -1.1228e-23)
-(10.1246 -0.0376361 -1.22724e-23)
-(10.1253 -0.0380105 -5.09295e-23)
-(10.1259 -0.0383994 -8.64822e-23)
-(10.1266 -0.038804 -3.41837e-23)
-(10.1271 -0.0392254 -6.70782e-23)
-(10.1276 -0.0396648 -1.39469e-22)
-(10.128 -0.0401234 -1.15522e-22)
-(10.1284 -0.0406024 1.54384e-23)
-(10.1287 -0.0411031 7.35464e-23)
-(10.1289 -0.0416266 -4.07826e-23)
-(10.129 -0.0421743 4.7869e-23)
-(10.1291 -0.0427474 5.53053e-23)
-(10.1291 -0.0433472 -5.42782e-23)
-(10.1289 -0.043975 3.0553e-23)
-(10.1287 -0.0446321 1.57062e-22)
-(10.1284 -0.0453198 -6.18753e-24)
-(10.1279 -0.0460394 -9.9469e-23)
-(10.1274 -0.0467923 -1.75016e-23)
-(10.1267 -0.0475796 -2.0448e-23)
-(10.1259 -0.0484027 -1.59888e-23)
-(10.1249 -0.0492628 5.23296e-23)
-(10.1238 -0.0501613 1.42699e-22)
-(10.1225 -0.0510992 1.26583e-22)
-(10.1211 -0.0520778 2.2885e-22)
-(10.1195 -0.0530983 1.76925e-22)
-(10.1177 -0.0541617 1.20354e-22)
-(10.1158 -0.0552692 1.04382e-22)
-(10.1136 -0.0564217 9.66442e-23)
-(10.1112 -0.0576202 1.41775e-22)
-(10.1086 -0.0588655 9.11787e-23)
-(10.1058 -0.0601586 -1.64152e-22)
-(10.1027 -0.0615 -8.06598e-24)
-(10.0994 -0.0628905 8.15956e-24)
-(10.0958 -0.0643305 1.21893e-23)
-(10.0919 -0.0658204 -9.83902e-23)
-(10.0878 -0.0673606 -2.67206e-22)
-(10.0833 -0.0689511 -1.59626e-22)
-(10.0785 -0.0705919 -2.17679e-22)
-(10.0734 -0.0722829 -1.26176e-22)
-(10.0679 -0.0740237 -2.09632e-22)
-(10.0621 -0.0758138 -3.56315e-22)
-(10.0559 -0.0776525 -2.90529e-22)
-(10.0493 -0.0795389 -3.99074e-22)
-(10.0424 -0.0814719 -1.09089e-22)
-(10.035 -0.0834501 9.62281e-23)
-(10.0271 -0.085472 -1.03493e-23)
-(10.0189 -0.0875358 -5.35532e-24)
-(10.0101 -0.0896395 4.62546e-23)
-(10.0009 -0.0917809 1.22465e-22)
-(9.99122 -0.0939575 2.3704e-23)
-(9.98102 -0.0961668 -3.34454e-23)
-(9.9703 -0.0984057 1.37792e-22)
-(9.95904 -0.100671 2.60568e-22)
-(9.94724 -0.10296 8.66614e-23)
-(9.93488 -0.105269 1.90793e-22)
-(9.92194 -0.107594 2.73664e-22)
-(9.90842 -0.109931 2.19941e-22)
-(9.8943 -0.112277 2.17477e-22)
-(9.87956 -0.114627 2.54825e-22)
-(9.86421 -0.116977 3.53866e-22)
-(9.84822 -0.119323 3.46099e-22)
-(9.83159 -0.12166 2.55916e-22)
-(9.8143 -0.123984 2.29965e-22)
-(9.79634 -0.12629 2.10869e-22)
-(9.77772 -0.128573 1.93888e-22)
-(9.75841 -0.13083 1.69482e-22)
-(9.73841 -0.133054 1.61136e-22)
-(9.71771 -0.135241 2.19674e-22)
-(9.69631 -0.137388 3.16484e-22)
-(9.6742 -0.139488 2.39619e-22)
-(9.65137 -0.141537 1.60561e-22)
-(9.62781 -0.143531 7.3873e-23)
-(9.60353 -0.145466 -7.56939e-23)
-(9.57852 -0.147336 -6.84075e-23)
-(9.55278 -0.149137 1.19314e-23)
-(9.52629 -0.150865 7.32567e-23)
-(9.49906 -0.152516 6.19891e-23)
-(9.47108 -0.154086 1.75363e-23)
-(9.44236 -0.155571 1.71197e-22)
-(9.41288 -0.156967 1.20711e-22)
-(9.38266 -0.15827 9.18835e-23)
-(9.35167 -0.159477 3.82963e-23)
-(9.31993 -0.160585 -2.35078e-23)
-(9.28743 -0.161591 -8.74222e-24)
-(9.25416 -0.162491 8.06761e-24)
-(9.22013 -0.163284 9.6095e-23)
-(9.18533 -0.163966 8.19703e-23)
-(9.14977 -0.164537 -9.0961e-23)
-(9.11342 -0.164993 -8.52478e-23)
-(9.07631 -0.165333 1.77739e-22)
-(9.03841 -0.165557 1.59726e-22)
-(8.99973 -0.165663 9.19471e-23)
-(8.96025 -0.16565 1.12325e-22)
-(8.91999 -0.165519 2.18902e-24)
-(8.87893 -0.165269 -1.59128e-23)
-(8.83706 -0.164902 1.5858e-23)
-(8.79438 -0.164418 -1.36485e-22)
-(8.75089 -0.163819 -1.52389e-22)
-(8.70657 -0.163107 -1.41877e-22)
-(8.66142 -0.162284 -1.63213e-22)
-(8.61543 -0.161355 -2.44067e-23)
-(8.5686 -0.160323 1.2789e-22)
-(8.52092 -0.159191 2.81151e-22)
-(8.47238 -0.157967 1.98569e-22)
-(8.42296 -0.156656 1.08571e-22)
-(8.37268 -0.155264 -1.89567e-22)
-(8.32151 -0.153799 -2.00305e-22)
-(8.26945 -0.152271 -2.61003e-22)
-(8.21649 -0.150689 6.19379e-22)
-(8.16263 -0.149064 1.80019e-22)
-(8.10785 -0.147407 9.77111e-22)
-(8.05214 -0.145732 7.48494e-22)
-(7.99551 -0.144055 4.70662e-22)
-(7.93792 -0.14239 6.4102e-22)
-(7.87938 -0.140757 -5.81536e-24)
-(7.81987 -0.139174 -2.30934e-22)
-(7.75936 -0.137664 3.86494e-22)
-(7.69782 -0.136252 1.69966e-21)
-(7.63524 -0.134964 2.83372e-21)
-(7.57157 -0.133832 1.22994e-21)
-(7.50676 -0.132891 7.25176e-22)
-(7.44074 -0.132181 -3.49424e-22)
-(7.37344 -0.131747 -1.13864e-21)
-(7.30477 -0.131645 -1.79938e-21)
-(7.2346 -0.131939 -1.44417e-21)
-(7.16277 -0.132709 -2.02354e-22)
-(7.0891 -0.134054 8.32869e-22)
-(7.01334 -0.136099 5.39634e-22)
-(6.9352 -0.139012 3.05159e-22)
-(6.8543 -0.143022 5.89138e-23)
-(6.77016 -0.148455 -4.74561e-23)
-(6.68218 -0.155805 -8.60607e-23)
-(6.5896 -0.165837 -1.26277e-22)
-(6.49175 -0.179928 8.29755e-22)
-(6.38688 -0.19997 1.66729e-21)
-(6.28137 -0.231778 1.39e-21)
-(6.1442 -0.272375 1.32479e-21)
-(10.0681 -0.0288504 -4.70478e-23)
-(10.0699 -0.0290902 -8.7502e-24)
-(10.0715 -0.0293368 -7.03193e-24)
-(10.0732 -0.0295847 -1.08112e-23)
-(10.0748 -0.0298313 -4.12128e-23)
-(10.0764 -0.0300755 -5.49092e-23)
-(10.0781 -0.0303164 -1.86563e-23)
-(10.0797 -0.0305539 -1.70854e-23)
-(10.0813 -0.0307877 -1.12312e-23)
-(10.0829 -0.031018 2.2041e-23)
-(10.0844 -0.0312449 4.17605e-23)
-(10.086 -0.0314687 9.3334e-24)
-(10.0875 -0.0316896 1.06085e-23)
-(10.089 -0.031908 1.37138e-23)
-(10.0905 -0.032124 1.20623e-23)
-(10.092 -0.0323379 -1.44816e-23)
-(10.0934 -0.0325498 2.33566e-23)
-(10.0949 -0.0327599 9.11784e-23)
-(10.0963 -0.0329684 2.24865e-23)
-(10.0976 -0.0331754 -9.46592e-24)
-(10.099 -0.0333812 -2.8213e-23)
-(10.1003 -0.0335859 2.33426e-24)
-(10.1015 -0.0337897 -2.42527e-23)
-(10.1028 -0.0339928 -4.37681e-23)
-(10.104 -0.0341955 -1.47804e-23)
-(10.1052 -0.034398 -1.07531e-23)
-(10.1064 -0.0346007 -2.11284e-24)
-(10.1075 -0.0348039 2.77183e-23)
-(10.1086 -0.035008 7.51242e-23)
-(10.1096 -0.0352133 4.15482e-23)
-(10.1107 -0.0354204 -2.99806e-23)
-(10.1117 -0.0356296 -1.35669e-23)
-(10.1126 -0.0358415 6.99246e-23)
-(10.1135 -0.0360566 1.38738e-22)
-(10.1144 -0.0362756 1.22145e-22)
-(10.1153 -0.036499 4.18651e-23)
-(10.116 -0.0367275 -6.84332e-23)
-(10.1168 -0.0369618 4.02057e-23)
-(10.1175 -0.0372025 1.14231e-22)
-(10.1182 -0.0374505 6.32637e-23)
-(10.1188 -0.0377065 1.03127e-22)
-(10.1193 -0.0379713 1.3935e-22)
-(10.1199 -0.0382457 8.57058e-23)
-(10.1203 -0.0385307 1.20347e-22)
-(10.1207 -0.0388271 1.5248e-22)
-(10.121 -0.0391357 8.74288e-23)
-(10.1213 -0.0394577 7.88301e-23)
-(10.1215 -0.0397938 1.09865e-22)
-(10.1217 -0.0401452 1.39248e-22)
-(10.1217 -0.0405128 7.29496e-23)
-(10.1217 -0.0408977 5.97481e-23)
-(10.1216 -0.0413008 9.03255e-23)
-(10.1215 -0.0417233 1.60456e-22)
-(10.1212 -0.0421662 1.09303e-22)
-(10.1208 -0.0426305 4.37116e-23)
-(10.1204 -0.0431175 1.93283e-22)
-(10.1198 -0.0436281 1.89039e-22)
-(10.1191 -0.0441635 3.99488e-23)
-(10.1183 -0.0447248 6.54099e-23)
-(10.1174 -0.0453131 4.91283e-23)
-(10.1164 -0.0459295 3.79246e-23)
-(10.1152 -0.0465751 2.93759e-23)
-(10.1139 -0.047251 5.28023e-23)
-(10.1124 -0.0479582 9.20298e-23)
-(10.1108 -0.0486979 7.87713e-23)
-(10.109 -0.0494711 1.13771e-22)
-(10.107 -0.0502788 3.01918e-23)
-(10.1049 -0.051122 -2.09226e-24)
-(10.1025 -0.0520016 7.36197e-23)
-(10.1 -0.0529186 5.66612e-23)
-(10.0972 -0.0538738 9.78928e-23)
-(10.0942 -0.0548681 5.25251e-23)
-(10.091 -0.0559022 1.04227e-22)
-(10.0875 -0.0569768 2.16027e-22)
-(10.0838 -0.0580925 1.72382e-22)
-(10.0798 -0.0592499 1.13141e-22)
-(10.0755 -0.0604494 1.21603e-22)
-(10.0709 -0.0616914 2.04192e-22)
-(10.066 -0.0629761 2.62966e-22)
-(10.0608 -0.0643036 2.08323e-22)
-(10.0552 -0.065674 1.33371e-22)
-(10.0493 -0.0670871 9.95388e-23)
-(10.043 -0.0685426 1.20427e-22)
-(10.0364 -0.0700402 1.85638e-22)
-(10.0293 -0.0715792 1.37215e-22)
-(10.0219 -0.0731588 2.42857e-22)
-(10.014 -0.0747782 1.96365e-22)
-(10.0056 -0.0764361 9.80363e-24)
-(9.99682 -0.0781314 4.35042e-23)
-(9.98755 -0.0798625 -2.25923e-23)
-(9.97778 -0.0816276 -1.80418e-22)
-(9.9675 -0.0834249 -2.57983e-22)
-(9.9567 -0.0852523 -2.74433e-22)
-(9.94535 -0.0871075 -1.96204e-22)
-(9.93345 -0.0889881 -2.0251e-22)
-(9.92096 -0.0908914 -2.12282e-22)
-(9.90789 -0.0928146 -3.64602e-23)
-(9.89421 -0.0947547 -1.68931e-23)
-(9.8799 -0.0967086 9.968e-23)
-(9.86495 -0.0986728 6.24069e-23)
-(9.84935 -0.100644 6.70463e-23)
-(9.83307 -0.102619 6.70898e-23)
-(9.81611 -0.104593 3.971e-23)
-(9.79845 -0.106563 -6.50585e-23)
-(9.78007 -0.108525 -8.3614e-23)
-(9.76096 -0.110475 -2.61645e-23)
-(9.74111 -0.112408 1.86365e-23)
-(9.72049 -0.114322 8.75674e-23)
-(9.69911 -0.11621 4.27072e-23)
-(9.67694 -0.11807 1.07465e-23)
-(9.65398 -0.119897 -4.07331e-23)
-(9.63021 -0.121687 -2.00163e-23)
-(9.60562 -0.123435 -7.06975e-23)
-(9.58019 -0.125138 -2.80692e-23)
-(9.55392 -0.12679 4.23134e-24)
-(9.5268 -0.128388 4.69633e-23)
-(9.49881 -0.129928 -1.57975e-23)
-(9.46995 -0.131405 -4.99052e-23)
-(9.44021 -0.132815 -6.09872e-23)
-(9.40957 -0.134155 -1.333e-22)
-(9.37802 -0.135421 -1.36631e-22)
-(9.34557 -0.136608 -1.2883e-22)
-(9.31219 -0.137714 -7.42358e-23)
-(9.27788 -0.138734 -1.36107e-22)
-(9.24263 -0.139666 -1.1688e-22)
-(9.20644 -0.140505 -3.41328e-23)
-(9.16929 -0.14125 1.18918e-23)
-(9.13119 -0.141897 -4.84888e-24)
-(9.09212 -0.142443 -4.29632e-23)
-(9.05207 -0.142887 -6.91476e-23)
-(9.01105 -0.143225 2.09888e-23)
-(8.96904 -0.143457 2.69159e-23)
-(8.92605 -0.14358 -8.50981e-23)
-(8.88206 -0.143594 -9.43453e-23)
-(8.83709 -0.143497 -6.22961e-23)
-(8.79111 -0.143288 -7.08128e-23)
-(8.74415 -0.142969 7.63297e-23)
-(8.69619 -0.142538 1.46117e-22)
-(8.64724 -0.141998 1.51699e-23)
-(8.5973 -0.141348 -4.07583e-24)
-(8.54638 -0.140591 4.65229e-24)
-(8.49448 -0.139729 6.96731e-24)
-(8.44162 -0.138765 8.31862e-23)
-(8.38781 -0.137702 -2.89887e-22)
-(8.33305 -0.136545 -5.21321e-22)
-(8.27737 -0.135299 -4.41703e-22)
-(8.22077 -0.133969 -3.47495e-22)
-(8.16329 -0.132562 -3.07418e-22)
-(8.10493 -0.131085 6.24366e-24)
-(8.04571 -0.129545 2.56546e-22)
-(7.98567 -0.127951 1.86057e-22)
-(7.92483 -0.126314 -2.66355e-22)
-(7.86319 -0.124644 8.28911e-23)
-(7.8008 -0.122953 -2.56957e-22)
-(7.73767 -0.121253 -2.21655e-22)
-(7.67382 -0.119559 -1.45839e-22)
-(7.60927 -0.117884 -4.87179e-22)
-(7.54404 -0.116247 -8.76621e-22)
-(7.47812 -0.114664 -8.41978e-22)
-(7.41153 -0.113155 -3.02029e-22)
-(7.34426 -0.111742 -1.0377e-21)
-(7.27629 -0.110449 -2.08119e-21)
-(7.2076 -0.109302 -3.86242e-22)
-(7.13814 -0.108331 -6.66277e-22)
-(7.06787 -0.10757 5.49687e-22)
-(6.9967 -0.107057 1.50609e-21)
-(6.92454 -0.10684 2.22814e-21)
-(6.85125 -0.106971 1.73565e-21)
-(6.77667 -0.107519 7.63152e-22)
-(6.70059 -0.108567 2.15896e-22)
-(6.62275 -0.110221 3.75545e-22)
-(6.5428 -0.112624 4.74939e-22)
-(6.46032 -0.115975 -6.20988e-22)
-(6.37476 -0.120561 -1.71124e-22)
-(6.28542 -0.126826 1.00622e-22)
-(6.19134 -0.135477 2.47863e-22)
-(6.0916 -0.147891 -1.17327e-21)
-(5.98348 -0.16598 -3.90317e-22)
-(5.87419 -0.196909 1.24984e-21)
-(5.72455 -0.238336 7.28826e-22)
-(10.0694 -0.0313512 3.25952e-23)
-(10.071 -0.031572 -1.74458e-23)
-(10.0726 -0.0318054 -1.76186e-23)
-(10.0741 -0.0320388 -3.84316e-23)
-(10.0756 -0.0322677 7.15989e-24)
-(10.0771 -0.0324911 6.00748e-23)
-(10.0786 -0.0327085 3.20705e-23)
-(10.0801 -0.0329193 1.3671e-23)
-(10.0815 -0.0331236 1.27718e-23)
-(10.083 -0.0333215 1.32426e-23)
-(10.0844 -0.0335133 1.36251e-23)
-(10.0858 -0.0336995 1.15828e-23)
-(10.0871 -0.0338806 8.17118e-24)
-(10.0884 -0.0340568 4.12707e-24)
-(10.0897 -0.0342288 4.7593e-24)
-(10.091 -0.0343967 2.56883e-23)
-(10.0922 -0.0345609 -1.48322e-23)
-(10.0934 -0.0347219 -9.04608e-23)
-(10.0945 -0.0348798 -5.24507e-23)
-(10.0956 -0.035035 -7.40207e-23)
-(10.0967 -0.0351879 -6.82382e-23)
-(10.0977 -0.0353386 -8.58401e-23)
-(10.0987 -0.0354875 -5.2551e-23)
-(10.0997 -0.0356349 -7.67047e-23)
-(10.1006 -0.0357811 -1.16252e-22)
-(10.1015 -0.0359266 -7.62986e-23)
-(10.1023 -0.0360715 -3.91906e-23)
-(10.1031 -0.0362163 -7.91888e-23)
-(10.1039 -0.0363614 1.23435e-23)
-(10.1046 -0.0365071 9.4082e-23)
-(10.1053 -0.0366539 1.09737e-22)
-(10.1059 -0.0368023 1.4594e-22)
-(10.1064 -0.0369528 1.08935e-22)
-(10.1069 -0.0371057 1.02553e-22)
-(10.1074 -0.0372617 1.25136e-22)
-(10.1078 -0.0374213 1.34601e-22)
-(10.1082 -0.0375851 1.89665e-22)
-(10.1085 -0.0377536 1.44779e-22)
-(10.1087 -0.0379275 8.31024e-23)
-(10.1089 -0.0381074 3.97828e-23)
-(10.109 -0.038294 1.16175e-23)
-(10.1091 -0.038488 -2.30849e-23)
-(10.1091 -0.0386901 4.71801e-23)
-(10.109 -0.038901 -2.21288e-23)
-(10.1089 -0.0391214 -7.35001e-23)
-(10.1086 -0.0393522 -2.43844e-23)
-(10.1084 -0.0395941 -6.51018e-24)
-(10.108 -0.039848 -4.59001e-24)
-(10.1075 -0.0401146 -6.14197e-23)
-(10.107 -0.0403948 -6.53327e-23)
-(10.1064 -0.0406896 -1.54695e-22)
-(10.1056 -0.0409996 -2.11498e-22)
-(10.1048 -0.0413259 -1.65491e-22)
-(10.1039 -0.0416692 -2.06122e-22)
-(10.1028 -0.0420306 -1.54897e-22)
-(10.1017 -0.0424109 -2.06837e-22)
-(10.1004 -0.042811 -2.62114e-22)
-(10.099 -0.0432319 -1.03861e-22)
-(10.0975 -0.0436744 -9.60346e-23)
-(10.0958 -0.0441395 -3.2353e-23)
-(10.094 -0.0446282 -7.22651e-23)
-(10.092 -0.0451412 -7.91257e-23)
-(10.0899 -0.0456796 -1.47581e-22)
-(10.0876 -0.0462442 -2.59469e-22)
-(10.0851 -0.0468359 -2.01301e-22)
-(10.0824 -0.0474556 -2.69764e-22)
-(10.0796 -0.0481041 -2.71098e-22)
-(10.0765 -0.0487822 -2.70325e-22)
-(10.0732 -0.0494908 -3.52909e-22)
-(10.0697 -0.0502305 -2.45417e-22)
-(10.066 -0.0510021 -2.13474e-22)
-(10.062 -0.0518062 -2.13313e-22)
-(10.0577 -0.0526436 -2.17693e-22)
-(10.0532 -0.0535147 -1.25986e-22)
-(10.0484 -0.0544201 -2.04263e-22)
-(10.0432 -0.0553601 -1.56924e-22)
-(10.0378 -0.0563353 -1.66416e-22)
-(10.032 -0.0573457 -2.06501e-22)
-(10.0259 -0.0583917 -1.71892e-22)
-(10.0195 -0.0594732 -1.85561e-22)
-(10.0126 -0.0605904 -1.01987e-22)
-(10.0054 -0.0617429 -1.7545e-22)
-(9.99773 -0.0629307 -1.28911e-22)
-(9.98966 -0.0641532 -1.28302e-22)
-(9.98115 -0.06541 -1.67843e-22)
-(9.97218 -0.0667004 -1.55059e-22)
-(9.96273 -0.0680235 -2.44968e-22)
-(9.95278 -0.0693784 -1.70804e-22)
-(9.94231 -0.070764 -1.46699e-22)
-(9.93131 -0.0721788 -1.29491e-22)
-(9.91976 -0.0736214 -1.1909e-22)
-(9.90763 -0.0750902 -5.50809e-23)
-(9.89491 -0.0765833 1.1225e-22)
-(9.88157 -0.0780987 3.36636e-23)
-(9.8676 -0.0796343 2.39168e-23)
-(9.85298 -0.0811877 1.62111e-23)
-(9.83768 -0.0827566 2.21364e-23)
-(9.82169 -0.0843381 2.16789e-23)
-(9.80498 -0.0859297 2.05272e-23)
-(9.78754 -0.0875282 2.17981e-23)
-(9.76935 -0.0891306 -5.0896e-24)
-(9.75038 -0.0907339 -9.02375e-23)
-(9.73062 -0.0923346 -3.71131e-23)
-(9.71004 -0.0939294 -1.78501e-24)
-(9.68863 -0.0955148 6.25998e-23)
-(9.66636 -0.0970871 -6.11857e-23)
-(9.64323 -0.0986428 -7.74232e-23)
-(9.6192 -0.100178 -2.27194e-22)
-(9.59426 -0.101689 -1.33409e-22)
-(9.5684 -0.103172 -6.05184e-23)
-(9.5416 -0.104623 6.33497e-23)
-(9.51383 -0.106039 -9.67455e-23)
-(9.48508 -0.107414 -1.29908e-22)
-(9.45534 -0.108746 -9.2814e-23)
-(9.4246 -0.110031 -5.9068e-23)
-(9.39282 -0.111265 2.58223e-23)
-(9.36001 -0.112443 6.76509e-23)
-(9.32615 -0.113563 7.48838e-23)
-(9.29122 -0.11462 3.4828e-23)
-(9.25522 -0.115612 5.84425e-23)
-(9.21812 -0.116534 8.10074e-23)
-(9.17994 -0.117382 -1.14421e-23)
-(9.14064 -0.118155 2.54201e-23)
-(9.10024 -0.118849 4.7687e-23)
-(9.05872 -0.11946 1.97913e-23)
-(9.01608 -0.119986 1.16532e-23)
-(8.97231 -0.120425 6.55832e-24)
-(8.92742 -0.120774 -1.36383e-23)
-(8.8814 -0.121031 -1.61269e-23)
-(8.83426 -0.121194 -1.75395e-23)
-(8.78601 -0.121261 -1.47713e-23)
-(8.73664 -0.121233 -9.42541e-24)
-(8.68618 -0.121106 -4.86002e-23)
-(8.63463 -0.120882 3.61922e-23)
-(8.58201 -0.12056 1.16264e-22)
-(8.52834 -0.120139 9.2438e-23)
-(8.47363 -0.119621 1.24197e-22)
-(8.4179 -0.119007 1.4193e-22)
-(8.36119 -0.118298 3.80571e-22)
-(8.30353 -0.117496 2.54753e-22)
-(8.24493 -0.116604 1.78204e-22)
-(8.18544 -0.115625 1.09389e-22)
-(8.12509 -0.114562 2.60831e-22)
-(8.06391 -0.113419 4.73491e-22)
-(8.00195 -0.112202 1.10697e-22)
-(7.93925 -0.110914 3.85766e-23)
-(7.87585 -0.109562 1.81653e-23)
-(7.81179 -0.108153 -1.95862e-23)
-(7.74711 -0.106693 2.95678e-23)
-(7.68187 -0.10519 -6.16343e-22)
-(7.6161 -0.103652 -5.09537e-22)
-(7.54984 -0.102088 -7.46082e-22)
-(7.48313 -0.100507 -5.58785e-22)
-(7.41601 -0.0989208 -4.49644e-22)
-(7.34852 -0.0973391 -3.58929e-22)
-(7.28068 -0.0957742 -2.78992e-22)
-(7.21252 -0.0942388 -2.44199e-22)
-(7.14405 -0.0927467 -2.36577e-22)
-(7.07528 -0.0913126 -6.27296e-22)
-(7.00622 -0.0899526 -1.43561e-21)
-(6.93686 -0.0886843 -7.21342e-22)
-(6.86717 -0.0875273 2.71681e-22)
-(6.79713 -0.0865029 6.07205e-22)
-(6.72667 -0.0856353 3.88203e-22)
-(6.65574 -0.0849519 3.7756e-22)
-(6.58423 -0.0844845 5.04747e-22)
-(6.51203 -0.0842702 6.81601e-22)
-(6.43899 -0.0843537 1.28042e-21)
-(6.36492 -0.0847894 8.8464e-22)
-(6.28958 -0.0856458 1.38661e-21)
-(6.21268 -0.0870115 1.02764e-21)
-(6.13385 -0.0890054 7.25613e-22)
-(6.05261 -0.0917939 2.11427e-21)
-(5.96834 -0.0956205 1.52659e-21)
-(5.88027 -0.100872 1.07905e-21)
-(5.78722 -0.108172 7.59722e-22)
-(5.68811 -0.118829 2.58654e-22)
-(5.57909 -0.134658 7.51796e-22)
-(5.46823 -0.163854 -1.30127e-21)
-(5.30629 -0.205307 -8.29728e-22)
-(10.0682 -0.034335 2.35718e-23)
-(10.0695 -0.0345211 1.9113e-23)
-(10.0708 -0.0347112 8.8266e-24)
-(10.072 -0.0348828 5.47974e-23)
-(10.0733 -0.0350352 4.41434e-23)
-(10.0745 -0.0351729 -5.3756e-24)
-(10.0757 -0.0352988 -1.26817e-23)
-(10.0768 -0.0354145 3.46437e-23)
-(10.078 -0.0355216 1.57677e-23)
-(10.0791 -0.0356217 1.283e-23)
-(10.0801 -0.0357163 -3.86233e-24)
-(10.0811 -0.0358065 -1.86925e-23)
-(10.0821 -0.0358932 -4.7805e-23)
-(10.083 -0.0359769 -8.45546e-23)
-(10.0839 -0.0360582 -3.28116e-23)
-(10.0847 -0.0361376 -5.56285e-23)
-(10.0855 -0.0362153 -4.91185e-23)
-(10.0862 -0.0362915 1.12679e-23)
-(10.0869 -0.0363665 9.37263e-24)
-(10.0875 -0.0364404 3.62867e-23)
-(10.0881 -0.0365134 1.54005e-23)
-(10.0886 -0.0365857 2.39048e-23)
-(10.089 -0.0366575 9.44331e-24)
-(10.0894 -0.036729 5.65266e-23)
-(10.0898 -0.0368003 1.03045e-22)
-(10.0901 -0.0368716 3.7616e-23)
-(10.0903 -0.0369433 5.31247e-23)
-(10.0904 -0.0370156 4.47993e-23)
-(10.0905 -0.0370888 -6.47578e-23)
-(10.0906 -0.0371631 -9.06214e-23)
-(10.0905 -0.037239 -7.37995e-23)
-(10.0905 -0.0373168 -1.40908e-22)
-(10.0903 -0.0373968 -1.01759e-22)
-(10.0901 -0.0374794 -6.09173e-23)
-(10.0898 -0.0375651 -7.03788e-23)
-(10.0894 -0.0376544 -1.11517e-22)
-(10.089 -0.0377476 -1.21257e-22)
-(10.0884 -0.0378452 -1.08461e-22)
-(10.0879 -0.0379478 -7.19939e-23)
-(10.0872 -0.0380559 -8.53498e-23)
-(10.0864 -0.03817 -1.08811e-22)
-(10.0856 -0.0382906 -9.92509e-23)
-(10.0847 -0.0384184 -1.18593e-22)
-(10.0837 -0.0385538 -6.82915e-23)
-(10.0826 -0.0386975 -5.35495e-23)
-(10.0814 -0.0388502 -1.23912e-22)
-(10.0801 -0.0390124 -1.62335e-22)
-(10.0788 -0.0391847 -2.28538e-22)
-(10.0773 -0.0393679 -2.34187e-22)
-(10.0757 -0.0395625 -1.70229e-22)
-(10.074 -0.0397693 -1.36328e-22)
-(10.0721 -0.0399889 -9.42178e-23)
-(10.0702 -0.0402221 -9.26601e-23)
-(10.0681 -0.0404694 -7.9506e-23)
-(10.0659 -0.0407316 -1.45742e-22)
-(10.0635 -0.0410095 -1.30143e-22)
-(10.061 -0.0413036 -7.55431e-23)
-(10.0584 -0.0416148 -1.79267e-22)
-(10.0556 -0.0419437 -1.69776e-22)
-(10.0526 -0.042291 -2.28462e-22)
-(10.0494 -0.0426576 -1.93183e-22)
-(10.0461 -0.043044 -2.25256e-22)
-(10.0425 -0.0434509 -1.9881e-22)
-(10.0388 -0.0438791 -1.02266e-22)
-(10.0348 -0.0443293 -1.12784e-22)
-(10.0306 -0.044802 -5.1452e-23)
-(10.0262 -0.045298 2.76057e-24)
-(10.0215 -0.0458179 1.39935e-23)
-(10.0166 -0.0463622 1.3475e-22)
-(10.0114 -0.0469316 2.73479e-23)
-(10.006 -0.0475266 -6.39759e-23)
-(10.0002 -0.0481477 -2.25425e-23)
-(9.99409 -0.0487953 -8.41193e-24)
-(9.98768 -0.0494699 -2.06387e-22)
-(9.98092 -0.0501719 -2.15066e-22)
-(9.97381 -0.0509014 -1.6743e-22)
-(9.96633 -0.0516589 -1.48243e-22)
-(9.95846 -0.0524443 -1.36315e-22)
-(9.95018 -0.0532579 -1.25565e-22)
-(9.94148 -0.0540996 -1.38996e-22)
-(9.93233 -0.0549694 -1.78511e-22)
-(9.92272 -0.055867 -7.21094e-23)
-(9.91263 -0.0567921 -8.9019e-23)
-(9.90204 -0.0577444 -6.55235e-23)
-(9.89092 -0.0587234 5.77784e-24)
-(9.87927 -0.0597283 -4.85534e-24)
-(9.86705 -0.0607585 4.69329e-23)
-(9.85424 -0.061813 9.00736e-24)
-(9.84082 -0.0628908 -5.03349e-24)
-(9.82678 -0.0639906 1.64781e-25)
-(9.81208 -0.0651111 6.81033e-23)
-(9.7967 -0.0662508 7.41579e-23)
-(9.78063 -0.0674081 -1.16124e-23)
-(9.76383 -0.0685812 7.17295e-23)
-(9.74628 -0.0697683 1.0956e-22)
-(9.72797 -0.0709671 1.37992e-22)
-(9.70886 -0.0721757 1.41558e-22)
-(9.68893 -0.0733916 5.54087e-23)
-(9.66817 -0.0746124 -8.43322e-23)
-(9.64653 -0.0758354 1.10695e-23)
-(9.62401 -0.0770581 7.40395e-23)
-(9.60059 -0.0782776 1.96725e-22)
-(9.57622 -0.0794911 1.02729e-22)
-(9.55091 -0.0806956 6.68821e-23)
-(9.52461 -0.0818881 6.94747e-23)
-(9.49732 -0.0830653 1.38697e-22)
-(9.46902 -0.0842242 5.05045e-23)
-(9.43967 -0.0853616 9.4714e-23)
-(9.40927 -0.0864742 6.14629e-23)
-(9.3778 -0.0875587 1.01148e-23)
-(9.34523 -0.0886118 -1.04888e-22)
-(9.31156 -0.0896304 4.61006e-24)
-(9.27677 -0.0906111 4.20123e-23)
-(9.24085 -0.0915507 -6.33892e-23)
-(9.20378 -0.092446 -5.49533e-23)
-(9.16556 -0.0932939 -1.05243e-22)
-(9.12618 -0.0940913 -6.648e-23)
-(9.08562 -0.0948353 -5.08366e-23)
-(9.0439 -0.0955229 -4.38713e-23)
-(9.00099 -0.0961514 -5.5566e-23)
-(8.95691 -0.096718 -6.16464e-23)
-(8.91165 -0.0972204 -4.15781e-24)
-(8.86521 -0.097656 -2.50777e-23)
-(8.81761 -0.0980228 -2.03635e-23)
-(8.76886 -0.0983186 -1.70597e-23)
-(8.71895 -0.0985416 -1.92919e-23)
-(8.66792 -0.0986903 -3.53048e-23)
-(8.61576 -0.0987632 -2.2805e-23)
-(8.56251 -0.0987592 -2.09037e-23)
-(8.50818 -0.0986774 -3.09559e-24)
-(8.4528 -0.0985172 5.19679e-24)
-(8.39639 -0.0982782 1.7662e-26)
-(8.33899 -0.0979604 -2.01473e-23)
-(8.28062 -0.097564 4.95161e-23)
-(8.22133 -0.0970895 -1.04672e-24)
-(8.16115 -0.0965378 -8.67191e-24)
-(8.10011 -0.0959103 -7.14699e-23)
-(8.03827 -0.0952084 -1.46459e-22)
-(7.97566 -0.0944341 -2.17615e-22)
-(7.91233 -0.0935896 -1.68006e-22)
-(7.84832 -0.0926777 -1.15155e-22)
-(7.7837 -0.0917015 -4.81236e-23)
-(7.7185 -0.0906642 -2.82578e-22)
-(7.65277 -0.0895698 -2.41663e-22)
-(7.58657 -0.0884224 -2.43339e-23)
-(7.51995 -0.0872268 1.49736e-22)
-(7.45296 -0.0859878 1.30474e-22)
-(7.38564 -0.0847111 -6.84356e-23)
-(7.31805 -0.0834025 -9.07424e-23)
-(7.25023 -0.0820682 2.50148e-22)
-(7.18223 -0.0807152 -5.13279e-23)
-(7.11409 -0.0793507 3.50407e-22)
-(7.04584 -0.0779824 2.82961e-22)
-(6.97752 -0.0766185 -1.27398e-23)
-(6.90916 -0.075268 1.19568e-23)
-(6.84078 -0.0739403 3.1175e-23)
-(6.7724 -0.0726453 8.18751e-23)
-(6.70402 -0.071394 6.04738e-23)
-(6.63565 -0.0701982 5.43927e-22)
-(6.56728 -0.0690703 9.31052e-22)
-(6.49887 -0.0680241 6.24344e-23)
-(6.43041 -0.0670751 -5.12993e-22)
-(6.36184 -0.06624 -9.63244e-22)
-(6.29309 -0.0655377 8.10839e-23)
-(6.22408 -0.0649898 2.10744e-22)
-(6.15469 -0.0646213 2.46395e-22)
-(6.0848 -0.0644616 3.12896e-22)
-(6.01423 -0.0645459 -3.93956e-22)
-(5.94276 -0.0649174 -3.85624e-22)
-(5.87015 -0.0656308 4.42058e-22)
-(5.79606 -0.0667572 2.68312e-22)
-(5.7201 -0.0683924 2.28744e-22)
-(5.64175 -0.0706714 1.22483e-21)
-(5.56035 -0.0737938 9.39753e-22)
-(5.47503 -0.0780825 6.73829e-22)
-(5.38449 -0.0840621 3.8647e-22)
-(5.28744 -0.0929092 2.11148e-22)
-(5.17895 -0.106251 -8.05318e-22)
-(5.06794 -0.132729 -8.7825e-22)
-(4.89269 -0.173298 -7.50353e-22)
-(10.0611 -0.0345789 5.03175e-24)
-(10.0619 -0.0348497 3.8695e-23)
-(10.0626 -0.0351259 6.46165e-23)
-(10.0633 -0.03536 2.86406e-23)
-(10.064 -0.0355571 2.74363e-23)
-(10.0646 -0.0357286 2.32019e-23)
-(10.0651 -0.0358786 5.01936e-24)
-(10.0656 -0.0360086 -1.00208e-23)
-(10.066 -0.0361208 5.27207e-24)
-(10.0664 -0.0362178 -7.89958e-24)
-(10.0667 -0.0363016 5.56155e-24)
-(10.0669 -0.0363742 4.94302e-23)
-(10.067 -0.0364369 1.35632e-23)
-(10.0671 -0.0364911 8.02898e-24)
-(10.0671 -0.0365377 5.51849e-24)
-(10.067 -0.0365779 2.08328e-24)
-(10.0668 -0.0366124 -5.50528e-25)
-(10.0666 -0.036642 1.49344e-24)
-(10.0663 -0.0366673 1.46931e-23)
-(10.0659 -0.0366889 3.01713e-23)
-(10.0654 -0.0367075 1.43288e-24)
-(10.0649 -0.0367234 -5.15148e-24)
-(10.0642 -0.0367371 9.9196e-24)
-(10.0635 -0.0367491 -4.13484e-23)
-(10.0627 -0.0367599 -3.53285e-23)
-(10.0618 -0.0367698 3.67437e-24)
-(10.0608 -0.0367793 -4.28757e-23)
-(10.0597 -0.0367887 1.33348e-23)
-(10.0585 -0.0367983 3.47566e-23)
-(10.0573 -0.0368087 6.10329e-23)
-(10.0559 -0.03682 6.67658e-23)
-(10.0545 -0.0368328 7.59297e-23)
-(10.0529 -0.0368475 3.9383e-23)
-(10.0513 -0.0368643 2.96909e-23)
-(10.0496 -0.0368836 1.97922e-23)
-(10.0477 -0.0369059 -4.60395e-25)
-(10.0458 -0.0369316 -7.74969e-24)
-(10.0437 -0.0369609 3.31025e-23)
-(10.0416 -0.0369944 -1.1863e-23)
-(10.0393 -0.0370325 -3.70718e-23)
-(10.0369 -0.0370755 1.54974e-23)
-(10.0344 -0.0371238 -1.07046e-23)
-(10.0318 -0.037178 -1.78311e-23)
-(10.0291 -0.0372384 -2.21655e-23)
-(10.0262 -0.0373054 -2.59726e-23)
-(10.0232 -0.0373796 2.06707e-24)
-(10.0201 -0.0374614 8.56009e-23)
-(10.0168 -0.0375512 8.40108e-23)
-(10.0134 -0.0376495 8.24907e-23)
-(10.0098 -0.0377568 6.07179e-23)
-(10.0061 -0.0378736 8.44752e-23)
-(10.0022 -0.0380004 5.21688e-23)
-(9.99817 -0.0381376 1.0993e-23)
-(9.99394 -0.0382858 -5.06517e-23)
-(9.98954 -0.0384454 3.9807e-23)
-(9.98495 -0.038617 -3.13527e-23)
-(9.98016 -0.038801 1.54018e-23)
-(9.97517 -0.038998 -2.78837e-23)
-(9.96996 -0.0392085 -7.91606e-23)
-(9.96453 -0.0394331 -6.28329e-23)
-(9.95887 -0.0396721 -1.72242e-23)
-(9.95296 -0.0399261 1.05864e-23)
-(9.94681 -0.0401956 2.57484e-23)
-(9.94038 -0.0404811 1.35143e-23)
-(9.93368 -0.0407831 3.19157e-23)
-(9.9267 -0.0411021 -1.94983e-23)
-(9.91941 -0.0414385 3.19599e-23)
-(9.9118 -0.0417927 -3.82287e-24)
-(9.90387 -0.0421651 -7.10108e-23)
-(9.8956 -0.0425563 -8.26265e-25)
-(9.88697 -0.0429664 -1.68843e-23)
-(9.87797 -0.0433959 -1.82665e-23)
-(9.86858 -0.0438451 2.10553e-24)
-(9.85878 -0.0443142 9.75863e-23)
-(9.84856 -0.0448034 1.52363e-22)
-(9.83791 -0.0453129 1.56605e-22)
-(9.82679 -0.0458429 1.56938e-22)
-(9.8152 -0.0463934 1.16312e-22)
-(9.80312 -0.0469644 9.01815e-23)
-(9.79052 -0.0475558 6.67321e-23)
-(9.77738 -0.0481675 4.40156e-23)
-(9.76369 -0.0487992 3.05929e-23)
-(9.74942 -0.0494507 1.77235e-23)
-(9.73456 -0.0501215 7.91985e-24)
-(9.71907 -0.0508112 3.38567e-24)
-(9.70294 -0.0515192 -1.67836e-23)
-(9.68615 -0.0522448 -9.69463e-23)
-(9.66867 -0.0529872 -7.52248e-23)
-(9.65048 -0.0537455 -7.40299e-23)
-(9.63156 -0.0545186 -8.73839e-23)
-(9.61188 -0.0553054 -1.89252e-22)
-(9.59142 -0.0561047 -3.08995e-22)
-(9.57016 -0.0569152 -2.5896e-22)
-(9.54807 -0.0577353 -3.14771e-22)
-(9.52513 -0.0585635 -3.51693e-22)
-(9.50133 -0.0593981 -3.93813e-22)
-(9.47663 -0.0602373 -4.70352e-22)
-(9.45101 -0.0610794 -3.82258e-22)
-(9.42446 -0.0619222 -3.39974e-22)
-(9.39695 -0.0627637 -3.19445e-22)
-(9.36846 -0.0636019 -3.6845e-22)
-(9.33898 -0.0644345 -3.87484e-22)
-(9.30849 -0.0652594 -3.90644e-22)
-(9.27696 -0.066074 -3.29829e-22)
-(9.24438 -0.0668762 -2.76898e-22)
-(9.21074 -0.0676635 -1.58138e-22)
-(9.17603 -0.0684334 -1.95713e-23)
-(9.14022 -0.0691836 6.12526e-23)
-(9.10332 -0.0699115 3.67334e-24)
-(9.0653 -0.0706149 -5.30546e-23)
-(9.02617 -0.0712911 6.49958e-24)
-(8.98591 -0.0719379 3.14141e-23)
-(8.94453 -0.0725527 2.07057e-23)
-(8.90201 -0.0731334 4.77488e-23)
-(8.85837 -0.0736775 3.9552e-23)
-(8.81359 -0.074183 6.86706e-23)
-(8.76769 -0.0746475 -3.49324e-23)
-(8.72066 -0.0750692 2.00241e-24)
-(8.67253 -0.0754458 -3.13835e-23)
-(8.62329 -0.0757757 -1.13747e-23)
-(8.57296 -0.076057 -5.16441e-23)
-(8.52156 -0.076288 -3.00749e-23)
-(8.46909 -0.0764673 -2.73132e-23)
-(8.41559 -0.0765934 -3.73454e-23)
-(8.36107 -0.076665 -1.85763e-23)
-(8.30556 -0.0766812 -5.01659e-23)
-(8.24909 -0.076641 -2.62291e-23)
-(8.19167 -0.0765435 -6.85453e-24)
-(8.13335 -0.0763884 -1.33606e-23)
-(8.07416 -0.0761751 -6.33547e-23)
-(8.01413 -0.0759036 -9.56542e-23)
-(7.95329 -0.075574 -3.74998e-23)
-(7.8917 -0.0751864 3.87925e-24)
-(7.82939 -0.0747413 -5.73852e-23)
-(7.76641 -0.0742394 -5.31182e-23)
-(7.7028 -0.0736817 -1.1698e-22)
-(7.6386 -0.0730695 -1.11779e-22)
-(7.57386 -0.0724042 -9.9274e-23)
-(7.50864 -0.0716874 -1.2522e-22)
-(7.44299 -0.0709213 -2.46698e-24)
-(7.37694 -0.070108 -7.75099e-25)
-(7.31056 -0.0692502 -1.14523e-23)
-(7.2439 -0.0683506 -4.43557e-23)
-(7.17699 -0.0674124 -8.22983e-23)
-(7.10991 -0.0664389 1.05806e-22)
-(7.04269 -0.0654339 -9.38036e-23)
-(6.97538 -0.0644014 -1.23058e-22)
-(6.90803 -0.0633456 8.33231e-23)
-(6.84069 -0.0622713 4.71048e-23)
-(6.77338 -0.0611833 -1.54307e-22)
-(6.70616 -0.0600869 1.28856e-22)
-(6.63906 -0.0589878 3.87851e-22)
-(6.5721 -0.057892 2.86099e-22)
-(6.50532 -0.0568056 4.41883e-22)
-(6.43873 -0.0557355 4.98392e-22)
-(6.37234 -0.054689 3.43148e-22)
-(6.30616 -0.0536735 5.36e-22)
-(6.2402 -0.0526973 3.70434e-22)
-(6.17442 -0.0517693 3.15851e-22)
-(6.10883 -0.050899 6.806e-22)
-(6.04337 -0.0500967 4.5071e-22)
-(5.97801 -0.049374 1.81347e-22)
-(5.91268 -0.0487436 -1.45249e-22)
-(5.8473 -0.0482198 9.46393e-23)
-(5.78177 -0.0478187 3.0379e-22)
-(5.71596 -0.0475594 1.41154e-22)
-(5.64972 -0.0474642 9.6285e-23)
-(5.58288 -0.0475597 -3.68193e-22)
-(5.51519 -0.0478792 -1.15871e-21)
-(5.44638 -0.0484645 -1.54745e-21)
-(5.37611 -0.0493705 -9.45059e-22)
-(5.30395 -0.050671 -2.20551e-22)
-(5.22937 -0.0524713 -5.94376e-22)
-(5.15165 -0.0549278 -3.13405e-22)
-(5.06988 -0.0582968 -2.32363e-22)
-(4.98261 -0.0629982 -5.15865e-22)
-(4.88848 -0.0700171 -2.37847e-22)
-(4.7814 -0.0807496 -4.96761e-22)
-(4.67133 -0.103444 -5.99351e-22)
-(4.48101 -0.142168 -2.63744e-22)
-(10.0389 -0.0374544 -5.05519e-25)
-(10.0382 -0.0375622 -1.24893e-23)
-(10.0376 -0.0376288 -2.64028e-23)
-(10.0369 -0.0376027 -9.25749e-24)
-(10.0362 -0.0375289 -6.53012e-24)
-(10.0354 -0.0374382 7.42984e-24)
-(10.0344 -0.0373381 1.89517e-23)
-(10.0334 -0.0372305 -6.48244e-24)
-(10.0322 -0.0371182 -5.90163e-24)
-(10.0309 -0.0370042 -9.91546e-24)
-(10.0295 -0.03689 -4.59983e-24)
-(10.028 -0.0367766 -2.61841e-23)
-(10.0264 -0.0366643 7.55308e-26)
-(10.0246 -0.0365535 2.02338e-23)
-(10.0227 -0.0364442 7.88614e-24)
-(10.0207 -0.0363364 7.29487e-24)
-(10.0186 -0.03623 6.1858e-24)
-(10.0163 -0.0361252 5.09139e-24)
-(10.014 -0.0360217 -5.78132e-24)
-(10.0114 -0.0359196 -3.41489e-23)
-(10.0088 -0.0358188 -3.96679e-23)
-(10.006 -0.0357195 -3.40384e-23)
-(10.0031 -0.0356216 -4.0406e-23)
-(10.0001 -0.0355253 -1.6531e-23)
-(9.99688 -0.0354305 -5.42536e-23)
-(9.99357 -0.0353376 -5.79914e-23)
-(9.99012 -0.0352465 -5.26441e-23)
-(9.98652 -0.0351575 -7.4931e-23)
-(9.98279 -0.0350707 -7.65372e-23)
-(9.97891 -0.0349862 -5.61709e-23)
-(9.9749 -0.0349044 -4.76157e-23)
-(9.97073 -0.0348253 -3.88481e-23)
-(9.96642 -0.0347492 -3.31387e-23)
-(9.96196 -0.0346762 -2.87068e-23)
-(9.95734 -0.0346067 -3.23552e-23)
-(9.95258 -0.0345407 -4.24188e-23)
-(9.94765 -0.0344786 -7.38133e-24)
-(9.94257 -0.0344205 -1.10397e-23)
-(9.93732 -0.0343666 -1.00074e-23)
-(9.93191 -0.0343172 -1.78358e-23)
-(9.92633 -0.0342725 -3.63765e-23)
-(9.92058 -0.0342327 -2.50785e-23)
-(9.91466 -0.034198 -2.26414e-23)
-(9.90855 -0.0341687 -4.01626e-23)
-(9.90226 -0.034145 -9.23151e-23)
-(9.89578 -0.0341271 -2.77105e-23)
-(9.8891 -0.0341154 -8.40867e-23)
-(9.88223 -0.03411 -8.4658e-23)
-(9.87515 -0.0341112 -8.54755e-23)
-(9.86786 -0.0341192 -6.43303e-23)
-(9.86036 -0.0341344 -5.1318e-23)
-(9.85263 -0.0341571 -4.12389e-23)
-(9.84467 -0.0341873 -2.83349e-23)
-(9.83648 -0.0342256 -1.0664e-23)
-(9.82804 -0.0342721 -6.35299e-23)
-(9.81935 -0.0343272 -8.41055e-23)
-(9.8104 -0.0343911 -1.37382e-22)
-(9.80118 -0.0344642 -9.39441e-23)
-(9.79168 -0.0345467 -4.08005e-23)
-(9.78189 -0.0346391 -7.93376e-23)
-(9.77181 -0.0347416 -1.13606e-22)
-(9.76142 -0.0348545 -8.79805e-23)
-(9.75071 -0.0349781 -7.32211e-23)
-(9.73968 -0.0351129 -7.23097e-23)
-(9.7283 -0.035259 -1.02294e-22)
-(9.71657 -0.0354168 -4.40455e-23)
-(9.70448 -0.0355866 -8.84982e-23)
-(9.69201 -0.0357687 -1.42174e-23)
-(9.67915 -0.0359634 1.07424e-23)
-(9.66588 -0.036171 -5.40348e-23)
-(9.6522 -0.0363916 -4.51243e-23)
-(9.63809 -0.0366256 -4.53414e-23)
-(9.62352 -0.0368731 -3.76348e-23)
-(9.6085 -0.0371344 1.40189e-23)
-(9.59299 -0.0374095 -4.36904e-24)
-(9.577 -0.0376987 -6.98783e-23)
-(9.56048 -0.038002 -1.50411e-22)
-(9.54345 -0.0383194 -1.16078e-22)
-(9.52586 -0.0386509 -1.02049e-22)
-(9.50771 -0.0389965 -9.21868e-23)
-(9.48898 -0.0393562 -8.42088e-23)
-(9.46965 -0.0397296 -7.89698e-23)
-(9.44971 -0.0401167 -7.41636e-23)
-(9.42912 -0.0405171 -6.99228e-23)
-(9.40788 -0.0409305 -6.55724e-23)
-(9.38597 -0.0413565 -5.42573e-23)
-(9.36336 -0.0417947 -1.78061e-23)
-(9.34003 -0.0422443 -8.26876e-23)
-(9.31598 -0.0427048 -1.16465e-22)
-(9.29117 -0.0431754 -1.01787e-22)
-(9.26559 -0.0436554 -8.86714e-23)
-(9.23922 -0.0441437 1.46949e-24)
-(9.21205 -0.0446396 1.95346e-23)
-(9.18405 -0.0451418 2.44963e-23)
-(9.1552 -0.0456493 -5.25541e-23)
-(9.12549 -0.046161 -4.60962e-23)
-(9.09491 -0.0466754 5.55572e-23)
-(9.06343 -0.0471913 6.68846e-24)
-(9.03104 -0.0477073 2.50832e-24)
-(8.99772 -0.0482219 -1.51825e-22)
-(8.96347 -0.0487336 -1.73162e-22)
-(8.92827 -0.0492408 -1.53731e-22)
-(8.8921 -0.049742 -7.6711e-23)
-(8.85497 -0.0502354 -9.53049e-23)
-(8.81685 -0.0507195 -1.08e-22)
-(8.77774 -0.0511924 -1.84731e-22)
-(8.73763 -0.0516525 -2.28202e-22)
-(8.69652 -0.0520981 -2.52274e-22)
-(8.65441 -0.0525274 -2.36375e-22)
-(8.61129 -0.0529387 -1.9723e-22)
-(8.56715 -0.0533302 -1.68042e-22)
-(8.52201 -0.0537004 -1.41803e-22)
-(8.47587 -0.0540475 -1.19474e-22)
-(8.42873 -0.0543698 -9.47629e-23)
-(8.38059 -0.0546658 -8.94541e-23)
-(8.33147 -0.054934 -1.0671e-22)
-(8.28137 -0.0551729 -9.06713e-23)
-(8.23031 -0.0553809 -8.75395e-23)
-(8.1783 -0.0555567 -1.44502e-23)
-(8.12536 -0.0556991 -6.53633e-23)
-(8.07151 -0.0558069 -5.75529e-23)
-(8.01676 -0.0558788 -8.0825e-23)
-(7.96114 -0.0559139 -5.54586e-23)
-(7.90468 -0.0559113 -1.86926e-23)
-(7.84741 -0.0558702 -3.25447e-23)
-(7.78934 -0.0557899 -3.0422e-23)
-(7.73051 -0.0556698 -4.09823e-23)
-(7.67096 -0.0555094 -3.79242e-23)
-(7.61072 -0.0553086 -5.25475e-23)
-(7.54983 -0.0550671 -2.75498e-23)
-(7.48832 -0.054785 2.28805e-23)
-(7.42623 -0.0544625 -4.07801e-23)
-(7.36361 -0.0540998 -2.83165e-23)
-(7.3005 -0.0536974 -2.53447e-23)
-(7.23695 -0.053256 -5.21957e-23)
-(7.17299 -0.0527765 3.32936e-23)
-(7.10869 -0.05226 2.63997e-23)
-(7.04407 -0.0517075 5.2641e-24)
-(6.9792 -0.0511205 -7.24953e-23)
-(6.91411 -0.0505005 -6.13667e-23)
-(6.84887 -0.0498495 -4.48875e-23)
-(6.78351 -0.0491694 -3.56058e-23)
-(6.71809 -0.0484623 -3.40996e-23)
-(6.65265 -0.0477305 -3.27433e-23)
-(6.58723 -0.0469768 -1.03373e-22)
-(6.52189 -0.0462039 -1.77502e-22)
-(6.45667 -0.0454148 -2.30461e-22)
-(6.3916 -0.0446126 -1.30477e-22)
-(6.32672 -0.0438009 -2.04646e-22)
-(6.26207 -0.0429831 9.57432e-23)
-(6.19768 -0.0421632 2.44283e-22)
-(6.13358 -0.0413453 -4.27011e-23)
-(6.06978 -0.0405336 -1.08485e-22)
-(6.00631 -0.0397327 2.45018e-23)
-(5.94317 -0.0389474 -4.67251e-22)
-(5.88037 -0.0381829 3.92966e-23)
-(5.81791 -0.0374447 4.45778e-23)
-(5.75577 -0.0367384 6.41387e-26)
-(5.69393 -0.0360705 1.05455e-23)
-(5.63236 -0.0354478 1.06657e-23)
-(5.57101 -0.0348774 1.71392e-23)
-(5.50983 -0.0343678 5.86136e-24)
-(5.44875 -0.0339279 -3.11542e-22)
-(5.38766 -0.0335677 -8.59639e-22)
-(5.32646 -0.0332989 -8.33284e-22)
-(5.26502 -0.0331351 -4.45454e-22)
-(5.20317 -0.0330922 -2.48763e-22)
-(5.14071 -0.0331894 1.82252e-22)
-(5.0774 -0.0334505 -2.13412e-22)
-(5.01295 -0.033906 -5.35052e-22)
-(4.94701 -0.0345954 -5.59023e-22)
-(4.87912 -0.0355728 -9.44745e-22)
-(4.80875 -0.0369152 -1.25303e-21)
-(4.73514 -0.0387377 -8.35809e-22)
-(4.65734 -0.0412302 -9.37578e-22)
-(4.57381 -0.0447088 -8.69369e-24)
-(4.48312 -0.049919 -9.45641e-23)
-(4.37816 -0.0580298 -6.55795e-22)
-(4.27018 -0.0758531 -5.29858e-22)
-(4.06251 -0.111669 -1.09669e-22)
-(9.97272 -0.0315608 -1.72726e-26)
-(9.96874 -0.0322162 -6.27349e-25)
-(9.96498 -0.0327113 -4.31696e-24)
-(9.96109 -0.0329843 -9.89143e-24)
-(9.95697 -0.0331429 -1.14831e-23)
-(9.95261 -0.0332447 -2.07136e-23)
-(9.94807 -0.0333009 -1.24431e-23)
-(9.94333 -0.0333164 -1.03853e-23)
-(9.9384 -0.0332982 -8.25435e-24)
-(9.93328 -0.0332532 -1.35339e-24)
-(9.92796 -0.0331862 1.19736e-23)
-(9.92245 -0.033101 2.95256e-24)
-(9.91675 -0.0330005 -1.05334e-23)
-(9.91086 -0.0328872 -9.35973e-24)
-(9.90478 -0.0327632 9.60018e-24)
-(9.8985 -0.0326303 2.93658e-24)
-(9.89203 -0.0324901 -7.17706e-24)
-(9.88537 -0.0323438 -6.07127e-25)
-(9.87851 -0.0321926 1.29112e-24)
-(9.87146 -0.0320375 1.31134e-23)
-(9.86421 -0.0318792 5.22567e-23)
-(9.85677 -0.0317187 4.44768e-23)
-(9.84913 -0.0315566 2.37418e-23)
-(9.8413 -0.0313934 3.31236e-23)
-(9.83328 -0.0312296 6.14303e-23)
-(9.82505 -0.0310658 7.29161e-23)
-(9.81663 -0.0309023 5.85221e-23)
-(9.80802 -0.0307394 5.09309e-23)
-(9.79921 -0.0305776 4.05702e-23)
-(9.79021 -0.030417 1.35754e-23)
-(9.781 -0.030258 -2.30732e-23)
-(9.77161 -0.0301008 -1.07976e-23)
-(9.76201 -0.0299456 -8.84112e-24)
-(9.75222 -0.0297926 -6.56387e-24)
-(9.74223 -0.029642 1.38601e-24)
-(9.73204 -0.029494 2.82445e-23)
-(9.72165 -0.0293486 2.16619e-23)
-(9.71106 -0.0292062 2.11368e-23)
-(9.70027 -0.0290668 1.79194e-23)
-(9.68928 -0.0289306 1.01986e-23)
-(9.67809 -0.0287977 4.00138e-23)
-(9.66669 -0.0286683 3.19951e-23)
-(9.65508 -0.0285426 3.03179e-23)
-(9.64326 -0.0284206 3.34995e-23)
-(9.63123 -0.0283026 5.61739e-23)
-(9.61899 -0.0281887 4.74753e-23)
-(9.60653 -0.0280791 5.00158e-23)
-(9.59385 -0.027974 8.82623e-23)
-(9.58094 -0.0278736 8.52748e-23)
-(9.56781 -0.0277779 6.93249e-23)
-(9.55445 -0.0276874 3.59445e-23)
-(9.54085 -0.027602 3.91303e-23)
-(9.52702 -0.0275221 4.75185e-23)
-(9.51293 -0.0274478 1.01544e-22)
-(9.4986 -0.0273794 8.62744e-23)
-(9.48401 -0.027317 1.094e-22)
-(9.46916 -0.027261 1.18036e-22)
-(9.45405 -0.0272115 9.51228e-23)
-(9.43865 -0.0271688 6.80212e-23)
-(9.42298 -0.0271331 1.17472e-22)
-(9.40702 -0.0271047 6.63822e-23)
-(9.39075 -0.0270838 6.74904e-23)
-(9.37419 -0.0270706 8.40985e-23)
-(9.35731 -0.0270654 4.33161e-23)
-(9.3401 -0.0270684 3.29542e-23)
-(9.32257 -0.0270798 -2.76441e-23)
-(9.30469 -0.0270999 -2.23626e-23)
-(9.28645 -0.0271289 -5.78812e-23)
-(9.26785 -0.0271669 -1.04932e-22)
-(9.24888 -0.0272143 -8.76687e-23)
-(9.22952 -0.0272712 -8.00438e-23)
-(9.20976 -0.0273378 -7.737e-23)
-(9.18959 -0.0274141 -1.06813e-22)
-(9.169 -0.0275004 -1.51968e-22)
-(9.14796 -0.0275968 -1.53744e-22)
-(9.12648 -0.0277034 -1.27208e-22)
-(9.10453 -0.0278202 -6.10508e-23)
-(9.0821 -0.0279473 -6.64738e-23)
-(9.05918 -0.0280846 -6.69497e-23)
-(9.03574 -0.0282323 -9.05709e-23)
-(9.01178 -0.0283902 -8.22572e-23)
-(8.98729 -0.0285581 -1.018e-22)
-(8.96223 -0.028736 -8.7145e-23)
-(8.9366 -0.0289237 -7.89227e-23)
-(8.91039 -0.029121 -6.72677e-23)
-(8.88357 -0.0293275 -4.05878e-23)
-(8.85613 -0.029543 -8.88559e-23)
-(8.82805 -0.029767 -1.19245e-23)
-(8.79931 -0.0299991 2.65262e-23)
-(8.76991 -0.0302388 -1.99169e-23)
-(8.73982 -0.0304855 -4.23806e-23)
-(8.70902 -0.0307387 -3.54478e-23)
-(8.67751 -0.0309976 -8.4431e-23)
-(8.64527 -0.0312616 -8.42592e-23)
-(8.61227 -0.0315298 -2.06762e-23)
-(8.57852 -0.0318016 -3.67926e-23)
-(8.54398 -0.0320759 -8.16325e-23)
-(8.50866 -0.0323519 -6.76311e-23)
-(8.47253 -0.0326285 -5.3594e-23)
-(8.43559 -0.032905 3.42797e-23)
-(8.39783 -0.0331801 4.05299e-23)
-(8.35923 -0.0334528 1.29433e-23)
-(8.31978 -0.0337221 4.32033e-23)
-(8.27949 -0.0339867 5.5028e-23)
-(8.23833 -0.0342456 5.74453e-23)
-(8.19632 -0.0344977 1.21894e-23)
-(8.15343 -0.0347416 -2.38735e-23)
-(8.10968 -0.0349764 -5.30174e-23)
-(8.06505 -0.0352008 -6.02626e-23)
-(8.01956 -0.0354137 -5.05439e-24)
-(7.9732 -0.0356139 -3.72897e-23)
-(7.92597 -0.0358004 -4.9048e-23)
-(7.87789 -0.0359719 -4.41975e-23)
-(7.82895 -0.0361275 3.61088e-24)
-(7.77917 -0.0362661 -3.00039e-23)
-(7.72856 -0.0363867 4.05707e-23)
-(7.67714 -0.0364884 6.95649e-24)
-(7.62491 -0.0365701 -8.45687e-25)
-(7.57189 -0.0366311 -5.00852e-23)
-(7.51811 -0.0366706 -3.20049e-23)
-(7.46357 -0.0366878 -5.68261e-24)
-(7.40832 -0.036682 3.22341e-24)
-(7.35236 -0.0366526 -3.24626e-23)
-(7.29574 -0.0365991 -5.64699e-23)
-(7.23846 -0.036521 -4.59717e-23)
-(7.18058 -0.036418 -3.87152e-23)
-(7.12211 -0.0362897 -3.18789e-23)
-(7.06309 -0.036136 -4.23609e-23)
-(7.00356 -0.0359567 -2.04902e-23)
-(6.94355 -0.0357519 -2.41528e-23)
-(6.88311 -0.0355218 -4.6341e-23)
-(6.82227 -0.0352664 -3.17676e-23)
-(6.76107 -0.034986 -5.12572e-23)
-(6.69956 -0.0346811 -5.66454e-23)
-(6.63778 -0.0343522 -5.76379e-23)
-(6.57578 -0.034 -4.58181e-23)
-(6.5136 -0.0336253 -3.32846e-23)
-(6.45128 -0.0332288 -6.65115e-23)
-(6.38887 -0.0328117 1.06409e-23)
-(6.32641 -0.0323749 6.22842e-24)
-(6.26396 -0.0319198 -7.94694e-24)
-(6.20155 -0.0314478 -1.51906e-23)
-(6.13923 -0.0309603 -1.88374e-23)
-(6.07705 -0.0304588 -3.21053e-23)
-(6.01503 -0.0299452 -3.9888e-23)
-(5.95323 -0.0294214 5.66202e-23)
-(5.89167 -0.0288893 1.41053e-22)
-(5.8304 -0.028351 7.40763e-23)
-(5.76944 -0.0278087 5.07666e-23)
-(5.70883 -0.0272648 9.52911e-23)
-(5.64858 -0.0267219 -1.97504e-23)
-(5.58872 -0.0261826 -2.75979e-23)
-(5.52925 -0.0256497 1.53159e-22)
-(5.4702 -0.025126 -2.15397e-23)
-(5.41156 -0.0246147 3.03884e-22)
-(5.35332 -0.0241192 -1.38681e-22)
-(5.29548 -0.023643 -4.74998e-22)
-(5.23801 -0.0231896 -4.74934e-22)
-(5.18089 -0.0227632 -2.57827e-22)
-(5.12407 -0.0223682 -6.26e-22)
-(5.0675 -0.0220092 -3.75497e-22)
-(5.01111 -0.0216914 -2.42241e-22)
-(4.95483 -0.0214207 4.39283e-22)
-(4.89855 -0.0212036 5.55943e-22)
-(4.84215 -0.0210475 1.0966e-22)
-(4.7855 -0.0209612 -5.84861e-23)
-(4.72841 -0.0209551 -1.01699e-22)
-(4.67069 -0.0210415 -2.46894e-22)
-(4.61208 -0.0212363 -1.72777e-22)
-(4.5523 -0.0215591 -1.9908e-22)
-(4.49097 -0.0220361 -2.60304e-22)
-(4.42765 -0.0227028 -4.36528e-22)
-(4.36177 -0.0236105 -4.23449e-22)
-(4.29257 -0.0248357 -5.92099e-22)
-(4.21909 -0.026504 2.59674e-22)
-(4.13971 -0.0288344 1.47284e-23)
-(4.05302 -0.0323018 -1.54591e-22)
-(3.95095 -0.0378868 4.38733e-22)
-(3.84668 -0.049901 -2.23265e-22)
-(3.61906 -0.0813316 -8.4522e-22)
-(9.75352 -0.0325296 8.68482e-25)
-(9.74193 -0.0322336 4.16723e-24)
-(9.73094 -0.0318454 4.66015e-24)
-(9.71978 -0.0312874 1.09075e-23)
-(9.70826 -0.0306936 1.15953e-23)
-(9.69644 -0.0301221 2.40697e-23)
-(9.68441 -0.0295749 2.23037e-23)
-(9.67217 -0.0290483 3.47416e-23)
-(9.65971 -0.0285418 3.40912e-23)
-(9.64704 -0.0280553 5.31764e-23)
-(9.63416 -0.0275875 4.72355e-23)
-(9.62108 -0.0271368 5.6201e-23)
-(9.6078 -0.0267016 7.51537e-23)
-(9.59433 -0.0262804 7.45595e-23)
-(9.58066 -0.0258722 4.48872e-23)
-(9.56681 -0.0254759 4.81094e-23)
-(9.55277 -0.0250907 5.21229e-23)
-(9.53856 -0.0247159 4.71504e-23)
-(9.52416 -0.0243511 4.41857e-23)
-(9.50959 -0.0239957 4.0174e-23)
-(9.49485 -0.0236496 2.90025e-23)
-(9.47994 -0.0233124 1.71243e-23)
-(9.46487 -0.0229841 2.77873e-23)
-(9.44964 -0.0226644 2.60782e-23)
-(9.43425 -0.0223535 2.73844e-23)
-(9.41871 -0.0220511 3.04944e-23)
-(9.40302 -0.0217573 3.87622e-23)
-(9.38718 -0.021472 3.71793e-23)
-(9.37119 -0.0211953 4.09591e-23)
-(9.35507 -0.020927 6.50345e-23)
-(9.3388 -0.0206673 7.08482e-23)
-(9.32239 -0.020416 6.23718e-23)
-(9.30585 -0.020173 5.86977e-23)
-(9.28917 -0.0199385 6.17725e-23)
-(9.27237 -0.0197121 5.58273e-23)
-(9.25543 -0.019494 5.28615e-23)
-(9.23836 -0.0192839 4.98095e-23)
-(9.22116 -0.0190818 4.70306e-23)
-(9.20383 -0.0188875 4.59031e-23)
-(9.18637 -0.0187008 5.27961e-23)
-(9.16878 -0.0185218 5.76426e-23)
-(9.15107 -0.0183501 5.37145e-23)
-(9.13322 -0.0181856 5.12168e-23)
-(9.11524 -0.0180282 5.036e-23)
-(9.09712 -0.0178777 5.87662e-23)
-(9.07887 -0.017734 6.45338e-23)
-(9.06049 -0.0175968 6.59302e-23)
-(9.04196 -0.0174661 4.91008e-23)
-(9.02328 -0.0173417 6.85548e-23)
-(9.00446 -0.0172234 6.77422e-23)
-(8.9855 -0.0171111 8.98674e-23)
-(8.96637 -0.0170047 8.08323e-23)
-(8.94709 -0.0169041 7.17361e-23)
-(8.92764 -0.0168092 3.671e-23)
-(8.90803 -0.0167199 4.33052e-23)
-(8.88824 -0.016636 4.6147e-23)
-(8.86827 -0.0165577 4.93201e-23)
-(8.84811 -0.0164847 5.56642e-23)
-(8.82776 -0.0164171 8.5807e-23)
-(8.80721 -0.0163548 5.04218e-23)
-(8.78646 -0.0162978 9.02279e-23)
-(8.76549 -0.0162462 7.777e-23)
-(8.74429 -0.0161999 4.7365e-23)
-(8.72287 -0.016159 1.03439e-22)
-(8.7012 -0.0161235 8.95834e-23)
-(8.67929 -0.0160935 7.93847e-23)
-(8.65711 -0.0160689 6.6112e-23)
-(8.63467 -0.0160499 2.03439e-23)
-(8.61195 -0.0160365 1.63893e-23)
-(8.58894 -0.0160288 9.89377e-24)
-(8.56562 -0.0160268 4.52095e-24)
-(8.542 -0.0160307 4.0606e-24)
-(8.51805 -0.0160404 3.35623e-23)
-(8.49376 -0.016056 2.09168e-23)
-(8.46912 -0.0160777 4.34545e-23)
-(8.44411 -0.0161054 1.01776e-23)
-(8.41873 -0.0161391 1.02532e-23)
-(8.39296 -0.0161789 2.31575e-23)
-(8.36679 -0.0162248 1.88718e-23)
-(8.34019 -0.0162768 4.68993e-23)
-(8.31317 -0.0163349 3.65663e-23)
-(8.28569 -0.016399 6.13276e-23)
-(8.25775 -0.016469 4.31058e-23)
-(8.22933 -0.0165448 1.8123e-23)
-(8.20041 -0.0166264 2.86179e-23)
-(8.17099 -0.0167135 2.29726e-24)
-(8.14103 -0.016806 -3.38791e-24)
-(8.11054 -0.0169037 -5.77294e-24)
-(8.07949 -0.0170063 -1.52897e-23)
-(8.04787 -0.0171135 2.70056e-23)
-(8.01566 -0.0172251 6.85079e-23)
-(7.98284 -0.0173407 6.50169e-23)
-(7.94941 -0.0174599 2.73187e-23)
-(7.91535 -0.0175822 -1.48939e-23)
-(7.88064 -0.0177074 -1.26297e-23)
-(7.84527 -0.0178349 -3.02062e-23)
-(7.80923 -0.0179642 -4.66168e-23)
-(7.7725 -0.0180948 -6.36332e-23)
-(7.73508 -0.0182261 -1.22838e-22)
-(7.69696 -0.0183577 -1.52565e-22)
-(7.65811 -0.0184889 -1.1799e-22)
-(7.61855 -0.0186191 -1.04817e-22)
-(7.57825 -0.0187477 -1.49934e-22)
-(7.53722 -0.0188741 -1.98587e-22)
-(7.49544 -0.0189976 -1.80742e-22)
-(7.45292 -0.0191176 -1.51975e-22)
-(7.40965 -0.0192334 -1.5501e-22)
-(7.36563 -0.0193444 -1.29879e-22)
-(7.32087 -0.01945 -9.29379e-23)
-(7.27535 -0.0195495 -9.8146e-23)
-(7.2291 -0.0196423 -6.22433e-23)
-(7.1821 -0.0197277 -6.05046e-23)
-(7.13438 -0.0198052 -5.61195e-23)
-(7.08594 -0.0198742 -4.3598e-23)
-(7.03679 -0.0199341 -2.76037e-23)
-(6.98694 -0.0199844 -5.22469e-23)
-(6.93641 -0.0200246 -4.1921e-23)
-(6.88521 -0.0200541 -6.11793e-23)
-(6.83336 -0.0200725 -4.89805e-23)
-(6.78089 -0.0200794 -2.76891e-23)
-(6.7278 -0.0200744 -1.02999e-24)
-(6.67414 -0.0200571 -1.09603e-23)
-(6.61992 -0.0200272 -1.31198e-23)
-(6.56516 -0.0199844 -1.89185e-23)
-(6.50991 -0.0199286 -3.67419e-23)
-(6.45418 -0.0198595 -3.56407e-23)
-(6.39802 -0.0197769 -2.74824e-23)
-(6.34145 -0.0196809 -2.96967e-23)
-(6.28451 -0.0195712 -3.32478e-23)
-(6.22724 -0.0194482 -2.3027e-23)
-(6.16967 -0.0193117 -3.54276e-23)
-(6.11185 -0.0191618 -5.35379e-23)
-(6.05381 -0.0189989 -7.8305e-23)
-(5.99559 -0.018823 -7.54085e-23)
-(5.93724 -0.0186347 -6.90168e-23)
-(5.87879 -0.0184342 -6.242e-23)
-(5.82029 -0.018222 -5.92502e-23)
-(5.76179 -0.0179985 -1.53085e-23)
-(5.70331 -0.0177644 -8.36005e-24)
-(5.64491 -0.0175203 -6.22108e-24)
-(5.58662 -0.0172669 -3.13596e-23)
-(5.52849 -0.0170049 -2.49676e-23)
-(5.47055 -0.0167351 -1.75817e-23)
-(5.41285 -0.0164585 -7.85507e-23)
-(5.3554 -0.0161761 3.70433e-23)
-(5.29826 -0.0158889 -1.54408e-24)
-(5.24145 -0.0155979 5.59817e-23)
-(5.185 -0.0153043 1.51626e-25)
-(5.12893 -0.0150094 2.2862e-22)
-(5.07326 -0.0147145 2.08901e-22)
-(5.01802 -0.0144209 1.60337e-22)
-(4.9632 -0.01413 3.59776e-23)
-(4.90884 -0.0138436 8.74285e-23)
-(4.85491 -0.0135631 3.2036e-22)
-(4.80142 -0.0132901 2.18121e-22)
-(4.74836 -0.0130266 1.44921e-22)
-(4.69571 -0.0127746 1.53125e-24)
-(4.64344 -0.0125359 7.68207e-23)
-(4.59151 -0.0123128 2.67791e-23)
-(4.53988 -0.0121078 -2.35508e-22)
-(4.48849 -0.0119233 -9.14866e-23)
-(4.43727 -0.0117623 -1.17338e-22)
-(4.38613 -0.011628 -2.80929e-22)
-(4.33497 -0.011524 1.04974e-22)
-(4.28367 -0.0114545 5.92963e-23)
-(4.23207 -0.0114244 -6.1927e-24)
-(4.18001 -0.0114393 -5.10314e-23)
-(4.12728 -0.0115063 1.35345e-22)
-(4.07363 -0.0116343 5.60193e-23)
-(4.01878 -0.0118343 1.32278e-22)
-(3.96235 -0.0121211 -3.38139e-23)
-(3.9039 -0.0125149 -1.77808e-22)
-(3.84287 -0.0130447 -7.06948e-22)
-(3.77851 -0.0137545 -6.08834e-22)
-(3.70985 -0.014714 -7.46528e-22)
-(3.63525 -0.0160571 -4.28321e-22)
-(3.55339 -0.0180072 -4.81842e-22)
-(3.45539 -0.0213588 -6.76801e-23)
-(3.35739 -0.0276551 4.46911e-22)
-(3.10767 -0.052546 -6.71231e-23)
-(8.80209 -0.0117805 -2.05124e-25)
-(8.7737 -0.0124045 -4.63069e-24)
-(8.74685 -0.0128522 -4.1756e-24)
-(8.72019 -0.0130922 -3.77008e-24)
-(8.69342 -0.0132169 -3.36272e-24)
-(8.6667 -0.0132741 -2.63343e-24)
-(8.64013 -0.0132785 -1.97858e-24)
-(8.61372 -0.0132394 -1.00154e-24)
-(8.58749 -0.0131656 -4.99794e-25)
-(8.56142 -0.0130647 -8.63332e-24)
-(8.53552 -0.0129425 -7.12221e-24)
-(8.50981 -0.0128037 -1.54666e-23)
-(8.48427 -0.0126519 -2.22345e-23)
-(8.45891 -0.0124904 -1.85837e-23)
-(8.43372 -0.0123219 -6.79224e-24)
-(8.40872 -0.0121485 -5.12516e-24)
-(8.38389 -0.0119722 6.59364e-24)
-(8.35923 -0.0117944 7.37878e-24)
-(8.33475 -0.0116166 8.42154e-24)
-(8.31043 -0.0114397 8.91471e-24)
-(8.28627 -0.0112648 -7.99242e-25)
-(8.26226 -0.0110924 5.07679e-25)
-(8.23841 -0.0109234 1.17517e-23)
-(8.21471 -0.010758 1.17696e-23)
-(8.19114 -0.0105966 1.21816e-23)
-(8.16771 -0.0104396 1.22911e-23)
-(8.14441 -0.0102871 2.46171e-24)
-(8.12123 -0.0101392 3.95294e-24)
-(8.09816 -0.00999597 4.79055e-24)
-(8.07519 -0.00985743 -3.9523e-24)
-(8.05233 -0.00972354 -9.62739e-25)
-(8.02955 -0.00959423 1.27371e-24)
-(8.00686 -0.00946942 2.92092e-24)
-(7.98424 -0.00934896 -6.01229e-24)
-(7.9617 -0.00923272 -3.36601e-24)
-(7.93921 -0.00912056 -1.25724e-24)
-(7.91678 -0.00901231 6.64221e-25)
-(7.89439 -0.0089078 2.41522e-24)
-(7.87204 -0.00880688 4.4429e-24)
-(7.84972 -0.00870938 1.72958e-23)
-(7.82742 -0.00861514 6.94361e-24)
-(7.80514 -0.00852399 9.06022e-24)
-(7.78287 -0.0084358 1.06662e-23)
-(7.76061 -0.00835041 1.17988e-23)
-(7.73833 -0.00826771 1.55811e-24)
-(7.71605 -0.00818757 -7.63017e-24)
-(7.69375 -0.00810988 -1.5938e-23)
-(7.67142 -0.00803455 -1.27031e-23)
-(7.64906 -0.00796148 -9.06551e-24)
-(7.62667 -0.00789062 -5.26176e-24)
-(7.60423 -0.0078219 1.1013e-23)
-(7.58175 -0.00775526 1.36797e-23)
-(7.5592 -0.00769066 1.61321e-23)
-(7.5366 -0.00762808 1.68658e-23)
-(7.51393 -0.0075675 1.79005e-23)
-(7.49118 -0.0075089 1.90181e-23)
-(7.46836 -0.00745231 2.02318e-23)
-(7.44545 -0.00739772 2.1695e-23)
-(7.42244 -0.00734515 2.45532e-23)
-(7.39933 -0.00729461 2.55049e-23)
-(7.37612 -0.00724615 2.84208e-23)
-(7.35279 -0.0071998 3.05293e-23)
-(7.32934 -0.00715561 3.029e-23)
-(7.30577 -0.00711363 8.38836e-24)
-(7.28205 -0.00707389 1.30722e-23)
-(7.25819 -0.00703645 1.63811e-23)
-(7.23418 -0.00700135 1.87975e-23)
-(7.21001 -0.00696866 1.86033e-23)
-(7.18567 -0.00693845 1.82371e-23)
-(7.16115 -0.00691076 1.75342e-23)
-(7.13644 -0.00688565 1.65722e-23)
-(7.11152 -0.00686315 1.56472e-23)
-(7.0864 -0.00684331 1.64839e-23)
-(7.06106 -0.0068262 1.65168e-23)
-(7.03549 -0.00681187 1.85402e-23)
-(7.00967 -0.00680032 4.36161e-23)
-(6.9836 -0.0067916 3.97617e-23)
-(6.95726 -0.00678572 1.23024e-23)
-(6.93064 -0.00678272 1.30701e-23)
-(6.90372 -0.0067826 1.50258e-23)
-(6.8765 -0.00678537 1.61647e-23)
-(6.84896 -0.00679101 1.88449e-23)
-(6.82109 -0.00679948 2.07316e-23)
-(6.79286 -0.00681078 4.51472e-23)
-(6.76428 -0.00682487 1.6668e-23)
-(6.73531 -0.0068417 -9.48228e-24)
-(6.70596 -0.0068612 -8.38042e-24)
-(6.6762 -0.00688328 -7.45138e-24)
-(6.64602 -0.00690783 1.70766e-23)
-(6.61541 -0.00693479 1.64262e-23)
-(6.58434 -0.00696403 -5.21484e-24)
-(6.55282 -0.00699542 -2.32249e-23)
-(6.52082 -0.0070288 5.68034e-24)
-(6.48833 -0.00706402 3.46521e-24)
-(6.45535 -0.00710093 2.69258e-24)
-(6.42184 -0.00713933 2.39548e-23)
-(6.38782 -0.00717903 4.09311e-23)
-(6.35325 -0.00721982 5.379e-23)
-(6.31815 -0.0072615 3.74594e-23)
-(6.28248 -0.00730384 2.05963e-23)
-(6.24626 -0.00734663 8.30837e-24)
-(6.20946 -0.00738961 -1.71922e-24)
-(6.17209 -0.00743255 -1.38404e-23)
-(6.13414 -0.00747518 9.20504e-24)
-(6.09561 -0.00751725 -4.87209e-23)
-(6.05649 -0.00755851 -5.52671e-23)
-(6.01678 -0.00759869 -2.61834e-23)
-(5.97648 -0.00763752 -3.53805e-23)
-(5.9356 -0.00767476 -4.40208e-24)
-(5.89413 -0.00771015 1.79214e-23)
-(5.85209 -0.00774342 -2.34362e-23)
-(5.80948 -0.00777431 -2.57915e-23)
-(5.7663 -0.00780258 -2.82689e-23)
-(5.72257 -0.00782798 -2.82368e-23)
-(5.6783 -0.00785031 -1.69312e-24)
-(5.63349 -0.00786931 -8.16083e-24)
-(5.58818 -0.00788476 -1.17422e-23)
-(5.54236 -0.00789646 -1.71566e-23)
-(5.49606 -0.00790421 -2.11794e-23)
-(5.4493 -0.00790784 -3.82568e-23)
-(5.4021 -0.00790717 -4.57251e-23)
-(5.35448 -0.00790202 -3.92663e-23)
-(5.30647 -0.00789227 -3.39934e-23)
-(5.25808 -0.00787779 -2.44849e-23)
-(5.20936 -0.00785849 -3.0124e-23)
-(5.16032 -0.00783426 -2.77416e-23)
-(5.111 -0.00780501 -2.70848e-23)
-(5.06142 -0.0077707 -2.6443e-23)
-(5.01162 -0.00773131 -1.9925e-23)
-(4.96163 -0.00768684 -2.75915e-23)
-(4.91148 -0.00763729 -2.82997e-23)
-(4.86121 -0.00758269 -3.08517e-23)
-(4.81086 -0.00752306 -3.66795e-23)
-(4.76045 -0.0074585 -4.11655e-23)
-(4.71002 -0.00738915 -4.38521e-23)
-(4.65962 -0.00731514 -4.50015e-23)
-(4.60926 -0.00723661 -4.53985e-23)
-(4.559 -0.00715374 -3.85842e-23)
-(4.50886 -0.00706673 -3.1784e-23)
-(4.45888 -0.00697581 -2.64297e-23)
-(4.40909 -0.00688128 1.8745e-23)
-(4.35952 -0.0067834 1.07396e-23)
-(4.31021 -0.00668247 4.2675e-24)
-(4.26118 -0.00657885 1.0026e-22)
-(4.21246 -0.00647294 2.03654e-22)
-(4.16407 -0.00636512 2.83104e-22)
-(4.11604 -0.00625581 2.24617e-22)
-(4.06839 -0.00614546 3.12212e-22)
-(4.02113 -0.00603459 2.79522e-22)
-(3.97427 -0.00592373 2.49688e-22)
-(3.92783 -0.00581338 2.16415e-22)
-(3.88181 -0.00570414 3.42782e-22)
-(3.8362 -0.00559667 2.68311e-22)
-(3.79101 -0.00549159 2.63445e-22)
-(3.74623 -0.00538952 4.40633e-22)
-(3.70183 -0.00529129 3.46173e-22)
-(3.6578 -0.00519774 2.43194e-22)
-(3.6141 -0.00510953 4.17701e-22)
-(3.57069 -0.00502766 2.95805e-22)
-(3.52753 -0.00495319 3.93107e-22)
-(3.48456 -0.00488706 -1.26416e-23)
-(3.4417 -0.00483052 -3.97326e-23)
-(3.39888 -0.00478492 -9.93377e-23)
-(3.356 -0.00475171 -3.2446e-22)
-(3.31295 -0.0047327 -1.97973e-22)
-(3.26959 -0.00472983 -1.30513e-22)
-(3.22576 -0.00474558 -9.80791e-23)
-(3.18128 -0.00478282 3.02807e-22)
-(3.13593 -0.00484531 2.0807e-22)
-(3.08944 -0.00493768 -1.80592e-22)
-(3.0415 -0.00506611 -1.22626e-22)
-(2.99169 -0.00523914 -1.29393e-22)
-(2.93953 -0.00546884 -2.96455e-22)
-(2.88434 -0.00577412 -3.68509e-22)
-(2.82526 -0.00618181 -4.55566e-22)
-(2.7608 -0.00676029 -4.03561e-22)
-(2.68994 -0.00753639 5.70568e-23)
-(2.60385 -0.00917045 1.01424e-23)
-(2.52189 -0.0105292 1.60534e-22)
-(2.27004 -0.0268583 6.50074e-23)
-(0.853624 0.0359944 -3.57506e-20)
-(0.984546 0.0622634 -1.68758e-20)
-(1.10232 0.0779066 -9.40768e-21)
-(1.21491 0.0913781 5.26102e-20)
-(1.3304 0.104383 1.06411e-19)
-(1.45048 0.117329 6.75797e-20)
-(1.5758 0.130542 5.04625e-20)
-(1.70703 0.144245 1.39647e-20)
-(1.84472 0.158566 8.18365e-21)
-(1.98928 0.173582 1.06477e-19)
-(2.14104 0.189351 1.15725e-19)
-(2.30031 0.205919 7.10619e-20)
-(2.46738 0.22332 -2.29463e-20)
-(2.64251 0.241591 -1.63306e-20)
-(2.82608 0.260744 -9.3138e-20)
-(3.01821 0.280851 -1.75456e-20)
-(3.21983 0.301841 -2.46939e-20)
-(3.43013 0.323996 -2.49127e-20)
-(3.65285 0.346797 1.6653e-20)
-(3.88145 0.371591 -2.16175e-20)
-(4.13481 0.395588 4.22894e-20)
-(4.37331 0.425171 1.23017e-20)
-(4.70043 0.446851 -1.93654e-22)
-(4.8831 0.484953 -3.45712e-20)
-(5.5649 0.512258 1.35593e-20)
-(1.10089 0.0254605 8.62873e-21)
-(1.21498 0.0486311 -2.71403e-21)
-(1.32523 0.0636007 -4.73795e-21)
-(1.43779 0.0775755 -2.17832e-20)
-(1.55527 0.0911663 3.51237e-20)
-(1.67829 0.104734 3.37524e-20)
-(1.80725 0.118633 3.64847e-20)
-(1.94266 0.133099 -2.2597e-20)
-(2.08498 0.148269 1.87675e-21)
-(2.23457 0.164234 7.53592e-21)
-(2.39181 0.181062 3.10767e-20)
-(2.55699 0.198808 2.41404e-20)
-(2.73046 0.21751 5.13196e-20)
-(2.9125 0.237214 -8.70291e-21)
-(3.10352 0.257924 -2.59376e-20)
-(3.3037 0.279733 -8.11959e-20)
-(3.51394 0.302511 -3.56353e-20)
-(3.73361 0.326665 -2.66921e-20)
-(3.96618 0.351347 -5.03459e-20)
-(4.20582 0.378634 -7.17083e-20)
-(4.46983 0.403944 -6.19637e-20)
-(4.72225 0.4375 -2.69073e-20)
-(5.05728 0.456708 -1.66559e-20)
-(5.26525 0.502288 -1.17547e-21)
-(5.9023 0.507849 -6.4361e-21)
-(1.2591 0.00126026 8.15519e-22)
-(1.36455 0.0215531 -3.91603e-21)
-(1.4696 0.0358869 -4.15637e-21)
-(1.58024 0.0496639 -1.06347e-20)
-(1.69659 0.0631247 -8.71032e-21)
-(1.81894 0.0766194 2.0522e-20)
-(1.94755 0.0904721 3.48038e-20)
-(2.0828 0.104918 2.06565e-20)
-(2.22508 0.120102 1.21891e-20)
-(2.37476 0.136127 1.45144e-20)
-(2.53215 0.153072 1.49606e-20)
-(2.6976 0.170998 5.73621e-21)
-(2.87143 0.18995 2.23506e-20)
-(3.05395 0.209976 2.71777e-20)
-(3.24557 0.231076 -1.1275e-20)
-(3.44651 0.253349 -1.71933e-20)
-(3.65765 0.276634 -1.21761e-20)
-(3.87846 0.301386 -2.34258e-20)
-(4.11226 0.326594 -4.32837e-20)
-(4.3536 0.354662 -2.14989e-20)
-(4.61896 0.380111 -2.09772e-20)
-(4.87431 0.41498 -1.96074e-20)
-(5.20877 0.432002 -1.49261e-20)
-(5.4256 0.480091 -1.32368e-20)
-(6.03046 0.468649 7.75767e-21)
-(1.3951 -0.0269902 -2.93287e-21)
-(1.49602 -0.00961701 -6.07582e-21)
-(1.59756 0.00399649 -2.87952e-21)
-(1.70612 0.0173851 -8.55744e-21)
-(1.82075 0.0305686 -5.42353e-21)
-(1.94165 0.0438821 -3.25879e-21)
-(2.06898 0.0576056 1.34363e-20)
-(2.20307 0.0719586 1.32563e-20)
-(2.34423 0.0870886 1.34762e-20)
-(2.49282 0.103107 1.8731e-20)
-(2.64914 0.120097 4.88637e-21)
-(2.81354 0.138129 1.29034e-20)
-(2.98634 0.157248 1.4808e-20)
-(3.16786 0.177504 9.75669e-21)
-(3.35851 0.198897 1.96557e-20)
-(3.55854 0.221518 1.91734e-20)
-(3.76882 0.245201 1.33013e-21)
-(3.98886 0.270384 2.90573e-21)
-(4.22195 0.296038 -1.5533e-20)
-(4.46282 0.324551 -5.51741e-21)
-(4.72746 0.350337 -1.96627e-20)
-(4.98311 0.385447 -1.66608e-20)
-(5.3153 0.402045 -1.24475e-20)
-(5.53638 0.448837 -1.37598e-20)
-(6.11573 0.43069 -7.15503e-21)
-(1.52594 -0.0561123 5.92157e-21)
-(1.62413 -0.041133 4.0862e-21)
-(1.72302 -0.0283832 5.58141e-23)
-(1.82953 -0.0155906 2.13508e-21)
-(1.94222 -0.00283335 -3.23262e-21)
-(2.06131 0.0101807 -8.64809e-22)
-(2.18692 0.0236795 2.5484e-20)
-(2.31933 0.0378593 1.0035e-20)
-(2.45884 0.0528638 1.50897e-20)
-(2.60576 0.0688065 5.9782e-21)
-(2.76041 0.0857764 -6.63772e-21)
-(2.92311 0.103845 3.42241e-21)
-(3.09421 0.123062 6.54594e-21)
-(3.274 0.143476 2.73186e-20)
-(3.46293 0.165086 2.11265e-20)
-(3.66124 0.187972 1.69342e-20)
-(3.86983 0.211973 5.76465e-21)
-(4.08822 0.237485 3.00318e-22)
-(4.31966 0.263525 -3.07897e-21)
-(4.55905 0.292308 6.67974e-21)
-(4.82202 0.318508 -7.36523e-21)
-(5.07671 0.353367 -1.21636e-20)
-(5.40583 0.370386 -1.27233e-20)
-(5.62878 0.414399 -5.9002e-21)
-(6.18662 0.394581 -2.60101e-21)
-(1.65781 -0.0851256 4.72811e-21)
-(1.754 -0.072035 5.9586e-22)
-(1.85069 -0.0601812 7.10345e-22)
-(1.95514 -0.0480762 1.14538e-21)
-(2.06575 -0.0358236 4.76366e-21)
-(2.18279 -0.0231853 2.77031e-21)
-(2.30638 -0.00997837 7.68763e-21)
-(2.43677 0.00397007 1.6512e-20)
-(2.57424 0.0187965 2.9255e-21)
-(2.71909 0.0346139 6.76834e-21)
-(2.87164 0.0515134 -3.85044e-21)
-(3.0322 0.0695686 3.92243e-22)
-(3.20111 0.088831 3.86312e-21)
-(3.37869 0.109348 9.64965e-21)
-(3.56539 0.131117 1.66207e-20)
-(3.76144 0.154208 1.47518e-20)
-(3.96776 0.178465 6.6859e-21)
-(4.18391 0.204233 -2.78794e-21)
-(4.4131 0.230603 7.83824e-21)
-(4.65035 0.25955 6.33243e-21)
-(4.911 0.286175 -1.45906e-20)
-(5.16392 0.320553 -1.15423e-20)
-(5.48947 0.338376 -9.86225e-21)
-(5.71272 0.379158 -7.96677e-21)
-(6.25174 0.360413 -2.56608e-21)
-(1.7936 -0.113867 4.55419e-21)
-(1.88807 -0.102283 5.43529e-21)
-(1.98271 -0.0912798 2.2268e-21)
-(2.08508 -0.0798758 1.14267e-21)
-(2.19347 -0.0681595 4.03842e-21)
-(2.30827 -0.055942 3.42275e-21)
-(2.42958 -0.0430732 -2.11327e-21)
-(2.55766 -0.0294002 -4.34987e-21)
-(2.69278 -0.0147939 -8.70125e-23)
-(2.83523 0.00085702 1.01913e-20)
-(2.98532 0.0176447 -5.77695e-21)
-(3.14337 0.0356441 9.79326e-21)
-(3.30971 0.0549076 3.82852e-21)
-(3.48468 0.07548 -5.61135e-22)
-(3.66872 0.0973604 -4.53331e-21)
-(3.86209 0.120602 9.70776e-21)
-(4.0657 0.145061 5.96119e-21)
-(4.27914 0.171024 -7.04266e-21)
-(4.5056 0.19767 1.81451e-20)
-(4.74019 0.226706 2.75925e-21)
-(4.99803 0.253733 -3.6472e-21)
-(5.24857 0.287512 -6.62394e-21)
-(5.57011 0.30631 -8.93446e-21)
-(5.79255 0.343833 -1.73641e-21)
-(6.31471 0.327718 -5.00166e-21)
-(1.93485 -0.142253 -1.71173e-21)
-(2.02763 -0.131902 5.73406e-22)
-(2.12025 -0.121678 1.54842e-21)
-(2.22043 -0.110952 1.35506e-21)
-(2.32648 -0.0997773 -2.22149e-21)
-(2.43885 -0.0880046 1.13153e-21)
-(2.55766 -0.0755048 -1.85288e-21)
-(2.68317 -0.0621402 5.09953e-21)
-(2.81566 -0.0477876 2.64867e-21)
-(2.9554 -0.0323372 3.27497e-21)
-(3.10273 -0.0156962 5.61446e-22)
-(3.25794 0.00221107 6.58162e-23)
-(3.42139 0.0214377 7.86237e-21)
-(3.59339 0.0420255 -1.56064e-21)
-(3.77441 0.0639734 -1.84922e-21)
-(3.96471 0.0873201 -4.64171e-21)
-(4.16522 0.111934 1.25958e-22)
-(4.37555 0.13804 3.89769e-21)
-(4.59886 0.164913 7.34047e-21)
-(4.83036 0.193978 5.17436e-21)
-(5.08496 0.221373 -2.72096e-21)
-(5.3326 0.25449 -4.87167e-21)
-(5.64978 0.274348 -8.67513e-21)
-(5.87053 0.308731 4.89857e-22)
-(6.37734 0.29625 -1.79541e-21)
-(2.08246 -0.170193 -3.81418e-23)
-(2.17342 -0.160876 -1.02311e-21)
-(2.26394 -0.15136 1.39703e-21)
-(2.36181 -0.141277 2.18157e-22)
-(2.46537 -0.130636 5.65082e-21)
-(2.57513 -0.119319 -3.41557e-21)
-(2.69122 -0.10721 -2.57581e-21)
-(2.81393 -0.0941791 2.43869e-21)
-(2.94352 -0.080108 2.44362e-21)
-(3.0803 -0.0648875 -2.06721e-21)
-(3.22457 -0.0484241 4.50863e-21)
-(3.37664 -0.0306414 -5.76529e-21)
-(3.53687 -0.0114861 2.48865e-21)
-(3.70559 0.00908051 2.67435e-21)
-(3.88326 0.0310568 -8.32391e-22)
-(4.07016 0.0544672 -2.32352e-21)
-(4.26721 0.079191 1.00453e-21)
-(4.47405 0.105395 1.72135e-21)
-(4.69385 0.132446 -3.13848e-22)
-(4.92187 0.16149 -4.7887e-21)
-(5.17283 0.189217 2.52035e-21)
-(5.41714 0.221635 -1.58992e-21)
-(5.72962 0.242599 -5.5741e-21)
-(5.94801 0.274014 -4.30215e-21)
-(6.44064 0.265834 -1.60926e-21)
-(2.23693 -0.197602 -3.29968e-22)
-(2.3259 -0.189172 3.77149e-21)
-(2.41418 -0.1803 2.33215e-21)
-(2.50957 -0.170822 5.76021e-21)
-(2.61048 -0.160703 6.72476e-21)
-(2.71743 -0.149846 1.52941e-21)
-(2.8306 -0.138141 -1.4114e-21)
-(2.95027 -0.125465 1.91156e-21)
-(3.07674 -0.111699 2.66342e-21)
-(3.21028 -0.0967343 -5.98963e-21)
-(3.35123 -0.0804762 -2.46723e-21)
-(3.49989 -0.0628478 2.71993e-21)
-(3.65661 -0.0437956 3.08738e-21)
-(3.82174 -0.0232841 4.91302e-21)
-(3.99574 -0.00131594 6.716e-21)
-(4.17891 0.0221192 6.61784e-22)
-(4.37218 0.0469114 -2.27713e-22)
-(4.57521 0.0731683 9.07835e-21)
-(4.79114 0.100354 3.37577e-21)
-(5.01533 0.129332 1.15306e-21)
-(5.2623 0.157352 -4.63473e-21)
-(5.50288 0.189051 -3.34784e-21)
-(5.81032 0.211141 -3.43007e-21)
-(6.02581 0.239777 -5.82491e-21)
-(6.50519 0.23634 -3.10464e-21)
-(2.39855 -0.224406 8.64472e-23)
-(2.48528 -0.216752 2.27577e-21)
-(2.57116 -0.208471 2.12734e-21)
-(2.66389 -0.199564 5.51558e-21)
-(2.76195 -0.189952 1.85445e-21)
-(2.8659 -0.179557 2.49433e-21)
-(2.97594 -0.168267 -1.12238e-21)
-(3.09237 -0.155962 1.84539e-21)
-(3.21546 -0.142522 1.83187e-21)
-(3.34554 -0.127836 -3.4588e-21)
-(3.4829 -0.111809 4.68452e-21)
-(3.62788 -0.0943622 3.52243e-21)
-(3.78083 -0.0754426 1.87441e-21)
-(3.94209 -0.0550183 8.23426e-21)
-(4.11213 -0.0330928 5.0344e-21)
-(4.29127 -0.00966992 6.57543e-21)
-(4.48045 0.0151508 2.2008e-21)
-(4.67934 0.0414199 5.82548e-21)
-(4.89109 0.0686959 5.30075e-21)
-(5.11111 0.0975676 -6.87192e-21)
-(5.35374 0.125841 3.69889e-22)
-(5.59025 0.156811 -5.01672e-22)
-(5.89235 0.180028 -3.36051e-21)
-(6.10448 0.206076 -4.86764e-21)
-(6.57135 0.20766 -2.58362e-21)
-(2.56746 -0.250534 3.15539e-21)
-(2.6517 -0.243574 2.95982e-21)
-(2.73496 -0.235844 2.76188e-21)
-(2.82482 -0.22748 1.28089e-22)
-(2.91985 -0.218365 2.09025e-21)
-(3.0206 -0.208432 -1.35922e-21)
-(3.12731 -0.197566 2.94408e-21)
-(3.24026 -0.185646 -1.21242e-21)
-(3.35977 -0.17255 -5.4818e-22)
-(3.48613 -0.158165 2.41618e-21)
-(3.61968 -0.142392 4.47209e-21)
-(3.76072 -0.125152 2.69248e-21)
-(3.90963 -0.106394 1.72877e-21)
-(4.06675 -0.0860866 5.13592e-21)
-(4.23257 -0.0642366 4.64907e-21)
-(4.40739 -0.0408614 -4.55948e-22)
-(4.59218 -0.0160504 6.00068e-22)
-(4.78664 0.0101913 4.06089e-21)
-(4.9939 0.0375151 4.86074e-21)
-(5.20944 0.0662428 -2.49567e-21)
-(5.44741 0.0947298 -6.31794e-21)
-(5.67954 0.124967 -2.27203e-21)
-(5.97599 0.149301 -3.14279e-21)
-(6.1844 0.172941 -2.57641e-21)
-(6.63935 0.179702 -2.60257e-21)
-(2.7437 -0.275925 2.99943e-21)
-(2.82516 -0.269597 2.71538e-21)
-(2.90559 -0.262388 2.18574e-21)
-(2.99236 -0.254548 2.11687e-21)
-(3.08414 -0.245922 -2.46509e-21)
-(3.18149 -0.236452 -3.95102e-22)
-(3.28465 -0.226019 2.15044e-21)
-(3.39393 -0.214499 -4.05396e-22)
-(3.50963 -0.201765 5.14904e-22)
-(3.63206 -0.1877 -9.32392e-22)
-(3.76155 -0.172203 3.01825e-21)
-(3.89843 -0.155196 1.57933e-21)
-(4.04305 -0.136624 1.17565e-21)
-(4.19577 -0.116463 3.48346e-21)
-(4.35709 -0.0947204 2.8452e-21)
-(4.52734 -0.0714267 -3.11954e-22)
-(4.70747 -0.0466625 6.68515e-22)
-(4.89722 -0.0204862 3.02487e-21)
-(5.09968 0.00684395 3.55422e-21)
-(5.31047 0.0353923 1.66075e-21)
-(5.54347 0.0640514 -3.82702e-21)
-(5.77091 0.0935569 -3.23971e-21)
-(6.06144 0.118987 1.08069e-21)
-(6.26582 0.140386 -3.09261e-22)
-(6.70932 0.152392 -1.07671e-21)
-(2.92723 -0.300517 7.89436e-22)
-(3.00562 -0.294777 1.57693e-21)
-(3.08299 -0.288072 1.50614e-21)
-(3.16643 -0.280741 2.32772e-21)
-(3.25475 -0.272604 -1.62293e-21)
-(3.34849 -0.263603 3.14929e-21)
-(3.44789 -0.253614 -2.72518e-21)
-(3.55328 -0.242507 2.55832e-21)
-(3.66496 -0.230152 1.93159e-21)
-(3.78324 -0.216427 1.2101e-21)
-(3.90846 -0.201228 -5.91034e-22)
-(4.04093 -0.184476 -7.61166e-22)
-(4.18103 -0.166116 4.51852e-22)
-(4.32912 -0.146129 2.4688e-21)
-(4.4857 -0.124524 -4.40515e-22)
-(4.6511 -0.101345 3.8264e-21)
-(4.82631 -0.0766632 2.34416e-21)
-(5.01109 -0.0505889 2.45171e-21)
-(5.20849 -0.0232932 2.47756e-21)
-(5.41425 0.0050422 3.48196e-21)
-(5.642 0.0338324 2.23133e-22)
-(5.86449 0.0626086 -8.46761e-22)
-(6.14882 0.0891073 7.62766e-22)
-(6.3489 0.108412 -3.28187e-22)
-(6.78135 0.125662 -6.34464e-22)
-(3.11794 -0.324251 -6.84962e-22)
-(3.19297 -0.319068 5.12322e-22)
-(3.26703 -0.312858 1.58395e-21)
-(3.34691 -0.306033 -9.22522e-22)
-(3.43155 -0.29839 1.1103e-21)
-(3.52146 -0.289868 6.21489e-21)
-(3.61689 -0.280336 2.78329e-21)
-(3.71818 -0.269659 3.58389e-21)
-(3.82563 -0.257701 3.092e-21)
-(3.93956 -0.244335 -1.34903e-21)
-(4.06028 -0.229454 -4.32627e-21)
-(4.18814 -0.212979 -2.64867e-21)
-(4.32349 -0.194856 -3.29579e-23)
-(4.46671 -0.17507 2.10806e-21)
-(4.61831 -0.153632 -2.99173e-22)
-(4.77865 -0.130599 -2.84717e-21)
-(4.94869 -0.106035 5.19833e-22)
-(5.12824 -0.0800985 1.92703e-21)
-(5.32033 -0.0528771 2.30482e-21)
-(5.5208 -0.024787 2.78523e-21)
-(5.74302 0.00409314 -9.01516e-22)
-(5.96032 0.0321424 -2.59715e-22)
-(6.23821 0.0596779 1.10151e-21)
-(6.43376 0.0770136 1.50073e-21)
-(6.85548 0.0994584 -6.8448e-22)
-(3.3157 -0.347066 1.83443e-21)
-(3.38706 -0.342422 -1.74803e-21)
-(3.45757 -0.33671 3.29614e-22)
-(3.53365 -0.330395 -2.31954e-22)
-(3.61438 -0.323256 1.07025e-21)
-(3.70023 -0.315228 -8.41208e-22)
-(3.79149 -0.30617 3.73041e-21)
-(3.88847 -0.295942 7.72469e-22)
-(3.99149 -0.284399 1.86543e-21)
-(4.10085 -0.271413 -1.65164e-21)
-(4.21688 -0.256872 -5.13274e-22)
-(4.33991 -0.240696 1.63671e-21)
-(4.4703 -0.222834 1.0338e-21)
-(4.60844 -0.203275 5.24491e-22)
-(4.75484 -0.182032 2.20034e-21)
-(4.90988 -0.159176 4.37521e-21)
-(5.07452 -0.134764 2.61278e-21)
-(5.24861 -0.109001 3.13111e-21)
-(5.43514 -0.0818924 -1.29527e-21)
-(5.63009 -0.0540797 -1.95177e-23)
-(5.84653 -0.0251493 2.20506e-21)
-(6.0584 0.00217224 -7.18883e-22)
-(6.32962 0.0307148 5.15779e-22)
-(6.52044 0.0461717 1.33284e-21)
-(6.93173 0.073745 2.53164e-22)
-(3.52031 -0.368903 9.02217e-22)
-(3.58771 -0.364789 1.66538e-21)
-(3.65442 -0.359585 -6.6596e-22)
-(3.72644 -0.353792 -3.36957e-22)
-(3.80302 -0.347178 -1.93612e-21)
-(3.88461 -0.339663 -1.37309e-21)
-(3.97148 -0.331101 1.28851e-21)
-(4.06396 -0.321342 1.18945e-21)
-(4.16234 -0.310237 1.14868e-21)
-(4.26694 -0.29765 1.83815e-21)
-(4.37807 -0.28347 5.0309e-22)
-(4.49607 -0.267615 7.22997e-22)
-(4.6213 -0.250038 8.5334e-22)
-(4.75416 -0.230731 -2.46225e-22)
-(4.89514 -0.209711 2.43349e-21)
-(5.04466 -0.187063 3.51876e-21)
-(5.20369 -0.162836 2.57476e-21)
-(5.3721 -0.137279 1.54056e-21)
-(5.55285 -0.110322 3.11053e-21)
-(5.74206 -0.0828178 6.14413e-22)
-(5.95248 -0.0538756 3.69099e-21)
-(6.15873 -0.0272847 1.2079e-21)
-(6.42306 0.00223698 1.21807e-21)
-(6.60896 0.0158765 1.30076e-21)
-(7.0101 0.0484965 6.37066e-22)
-(3.73155 -0.389702 -1.18251e-21)
-(3.79468 -0.38612 -4.88803e-22)
-(3.85733 -0.381446 -2.44252e-22)
-(3.92505 -0.3762 -2.97357e-23)
-(3.99726 -0.370136 -1.93564e-21)
-(4.07436 -0.363163 -1.34562e-21)
-(4.15664 -0.355125 4.5804e-22)
-(4.24441 -0.345862 1.81397e-21)
-(4.33796 -0.335218 -4.01437e-22)
-(4.43761 -0.323055 -2.18829e-22)
-(4.54365 -0.309259 2.25946e-22)
-(4.65643 -0.29375 2.81023e-22)
-(4.77631 -0.276482 7.81485e-22)
-(4.90368 -0.257453 -4.05063e-22)
-(5.03906 -0.236686 1.15018e-21)
-(5.18286 -0.214275 -4.56034e-23)
-(5.33606 -0.190266 1.53558e-21)
-(5.4986 -0.164948 1.29044e-21)
-(5.67335 -0.13818 1.09175e-21)
-(5.85662 -0.111008 3.76179e-21)
-(6.0608 -0.0821001 3.7321e-21)
-(6.26124 -0.0562159 1.19925e-21)
-(6.51849 -0.0257936 1.5701e-21)
-(6.69928 -0.0138075 1.28704e-21)
-(7.0906 0.0235706 6.63822e-22)
-(3.94992 -0.409461 -9.84976e-22)
-(4.00878 -0.406452 -6.87221e-22)
-(4.06743 -0.402383 -7.34335e-23)
-(4.13093 -0.397758 -3.80299e-22)
-(4.19887 -0.392329 -1.05924e-21)
-(4.2716 -0.385984 1.84786e-21)
-(4.34942 -0.378559 1.05731e-21)
-(4.43263 -0.369884 2.07687e-21)
-(4.52153 -0.359798 6.47286e-23)
-(4.61639 -0.348159 -7.8257e-22)
-(4.71753 -0.334852 9.67017e-23)
-(4.82527 -0.3198 5.03649e-23)
-(4.93998 -0.302961 9.15548e-22)
-(5.06206 -0.28434 -5.87892e-22)
-(5.19202 -0.263965 -6.444e-24)
-(5.3303 -0.241943 -1.56122e-22)
-(5.47787 -0.218322 1.76392e-21)
-(5.63471 -0.19342 9.93556e-22)
-(5.80365 -0.167051 1.65871e-21)
-(5.98116 -0.140404 1.23076e-21)
-(6.17926 -0.111819 2.03726e-21)
-(6.37407 -0.0867706 2.0401e-21)
-(6.62438 -0.0559507 -2.66978e-23)
-(6.80027 -0.0453318 1.21147e-21)
-(7.1821 -0.00429456 4.32952e-22)
-(4.17505 -0.428085 1.3679e-21)
-(4.22971 -0.425699 1.23307e-24)
-(4.28446 -0.422315 2.49592e-22)
-(4.3439 -0.418391 -6.22463e-22)
-(4.40771 -0.413684 5.44585e-22)
-(4.47625 -0.408059 1.37916e-22)
-(4.54981 -0.401339 2.24967e-22)
-(4.62867 -0.393347 2.74389e-22)
-(4.71311 -0.383916 -1.69135e-21)
-(4.8034 -0.372901 2.12361e-22)
-(4.89986 -0.360189 3.18399e-22)
-(5.00278 -0.345706 1.6814e-21)
-(5.11254 -0.329415 8.51409e-22)
-(5.22953 -0.31133 1.25848e-21)
-(5.35429 -0.291489 2.2845e-21)
-(5.48724 -0.270009 3.28023e-21)
-(5.62935 -0.246944 3.50015e-21)
-(5.78067 -0.222638 7.63797e-22)
-(5.94393 -0.196882 1.32379e-21)
-(6.11582 -0.170951 1.33377e-21)
-(6.30794 -0.14299 1.2549e-21)
-(6.49726 -0.118877 1.58423e-21)
-(6.7406 -0.0882325 6.33132e-22)
-(6.91182 -0.0785202 1.45036e-21)
-(7.28398 -0.0352866 9.45245e-22)
-(4.40571 -0.445427 -5.89367e-22)
-(4.4559 -0.443694 6.5837e-22)
-(4.50655 -0.44104 -5.99376e-22)
-(4.5617 -0.437863 -1.15378e-22)
-(4.62121 -0.433919 1.51958e-21)
-(4.68538 -0.429053 -1.06784e-21)
-(4.7545 -0.423073 -5.21309e-22)
-(4.82885 -0.415795 -1.4641e-21)
-(4.90868 -0.407044 -1.64834e-22)
-(4.99427 -0.396675 -1.96161e-21)
-(5.08589 -0.384577 -5.7351e-22)
-(5.18385 -0.370679 1.09549e-21)
-(5.28852 -0.354955 4.49872e-22)
-(5.40029 -0.337424 1.69135e-21)
-(5.51968 -0.318135 1.47709e-21)
-(5.64716 -0.297217 2.12929e-21)
-(5.78368 -0.274734 3.04943e-21)
-(5.92932 -0.251046 3.45231e-21)
-(6.08676 -0.225933 1.33025e-22)
-(6.25288 -0.200734 3.94237e-22)
-(6.43885 -0.173436 6.96846e-22)
-(6.62254 -0.15023 1.24385e-21)
-(6.85876 -0.119838 7.90733e-22)
-(7.0253 -0.110898 5.80343e-22)
-(7.38775 -0.0657376 1.16737e-21)
-(4.64141 -0.461418 -1.47119e-21)
-(4.68687 -0.460375 -5.78256e-22)
-(4.7332 -0.458508 -3.33383e-22)
-(4.78388 -0.45613 -2.6385e-22)
-(4.8389 -0.453001 2.42808e-23)
-(4.89853 -0.44894 3.58014e-22)
-(4.96306 -0.443742 -2.91712e-22)
-(5.03275 -0.437211 -8.91299e-22)
-(5.10783 -0.42917 6.39504e-22)
-(5.18856 -0.419472 1.18081e-21)
-(5.27522 -0.408009 -9.0002e-22)
-(5.36809 -0.394718 -1.32375e-21)
-(5.46753 -0.379579 -2.76092e-22)
-(5.57395 -0.362623 1.39732e-22)
-(5.68786 -0.343908 1.81197e-21)
-(5.80973 -0.323577 2.91592e-21)
-(5.94052 -0.301701 1.07829e-22)
-(6.08036 -0.27866 2.87326e-21)
-(6.23184 -0.25422 3.07008e-21)
-(6.39206 -0.229778 6.97945e-22)
-(6.57174 -0.203177 1.83925e-21)
-(6.74968 -0.180882 1.8162e-21)
-(6.97868 -0.150778 8.43903e-22)
-(7.14047 -0.142608 7.81955e-22)
-(7.49326 -0.095636 9.8029e-22)
-(4.88158 -0.47599 -5.91628e-22)
-(4.92207 -0.475684 -1.82846e-21)
-(4.96386 -0.474669 -9.27763e-22)
-(5.00989 -0.473153 -2.43566e-22)
-(5.06025 -0.470897 -3.90242e-22)
-(5.11519 -0.467694 -6.42954e-23)
-(5.17498 -0.463322 -6.64811e-22)
-(5.23987 -0.457577 -3.20749e-22)
-(5.31007 -0.450278 1.23207e-22)
-(5.38582 -0.441278 -1.15392e-24)
-(5.46738 -0.430474 -6.87829e-22)
-(5.55504 -0.417811 -5.96081e-22)
-(5.64914 -0.403279 5.49973e-23)
-(5.75008 -0.386919 3.21137e-22)
-(5.85839 -0.368802 -3.24635e-22)
-(5.97454 -0.349082 4.25663e-22)
-(6.09949 -0.32784 2.67757e-22)
-(6.23341 -0.305472 2.15504e-21)
-(6.37882 -0.281738 1.33409e-21)
-(6.53303 -0.258078 2.22607e-21)
-(6.7063 -0.232212 1.96495e-21)
-(6.8784 -0.210831 1.61899e-21)
-(7.1001 -0.181068 1.36318e-21)
-(7.25711 -0.173651 4.95124e-22)
-(7.6003 -0.125042 4.14509e-22)
-(5.12552 -0.489075 -4.92726e-22)
-(5.16084 -0.489564 -2.99034e-22)
-(5.19789 -0.489475 -7.68997e-22)
-(5.23911 -0.488893 -7.89489e-22)
-(5.28466 -0.487576 5.79229e-22)
-(5.33476 -0.485287 6.93976e-23)
-(5.38969 -0.481792 5.2196e-22)
-(5.44964 -0.476875 -4.59933e-22)
-(5.51484 -0.470352 -6.61647e-22)
-(5.5855 -0.46208 5.68717e-23)
-(5.66186 -0.451962 5.15867e-22)
-(5.74419 -0.43995 2.32082e-22)
-(5.83285 -0.426047 -8.51497e-23)
-(5.92821 -0.410306 1.21791e-21)
-(6.03081 -0.39281 1.53556e-21)
-(6.14115 -0.373726 1.31137e-21)
-(6.26015 -0.353147 5.21386e-22)
-(6.38807 -0.33148 1.68803e-21)
-(6.52731 -0.308484 1.84333e-21)
-(6.67541 -0.285631 1.91509e-21)
-(6.84219 -0.26054 1.51888e-21)
-(7.00837 -0.240074 1.34858e-21)
-(7.2227 -0.210722 1.13266e-21)
-(7.3749 -0.204023 7.30932e-22)
-(7.70861 -0.154008 4.85358e-22)
-(5.37243 -0.500606 1.15266e-22)
-(5.40237 -0.501961 -2.13841e-22)
-(5.43452 -0.502883 -3.23478e-22)
-(5.47079 -0.503316 -5.32195e-22)
-(5.51139 -0.503008 6.64416e-23)
-(5.55655 -0.501698 5.50643e-22)
-(5.60649 -0.499133 1.02861e-22)
-(5.66142 -0.495089 -4.10862e-22)
-(5.72152 -0.48938 1.91652e-22)
-(5.78698 -0.481866 9.93698e-22)
-(5.85804 -0.47246 5.29251e-22)
-(5.93496 -0.461125 4.67516e-22)
-(6.01808 -0.447874 2.4817e-22)
-(6.10778 -0.432776 5.06194e-22)
-(6.2046 -0.415926 1.62381e-21)
-(6.30903 -0.397505 8.43873e-22)
-(6.42202 -0.377616 7.0404e-22)
-(6.54385 -0.35668 1.77413e-22)
-(6.67685 -0.334456 1.59603e-21)
-(6.81878 -0.312434 1.46206e-21)
-(6.979 -0.28816 1.84343e-21)
-(7.13919 -0.268609 1.45136e-21)
-(7.34612 -0.239751 1.21975e-21)
-(7.4935 -0.233726 4.73126e-22)
-(7.81785 -0.182575 1.65211e-22)
-(5.62131 -0.510519 -3.76492e-23)
-(5.64572 -0.512827 1.98026e-22)
-(5.67283 -0.514856 -2.79964e-22)
-(5.70404 -0.516393 -3.62919e-22)
-(5.73961 -0.517172 -4.85286e-22)
-(5.77973 -0.516907 -2.17065e-22)
-(5.82461 -0.515328 1.71272e-22)
-(5.87442 -0.512204 -7.418e-23)
-(5.92934 -0.507347 4.20637e-23)
-(5.98954 -0.500626 2.31079e-22)
-(6.05523 -0.491961 8.41162e-22)
-(6.12666 -0.481328 3.47921e-22)
-(6.20417 -0.468756 2.63964e-22)
-(6.28815 -0.454325 4.02069e-22)
-(6.37912 -0.438148 9.39141e-22)
-(6.4776 -0.420416 8.60372e-22)
-(6.58452 -0.401248 8.77326e-22)
-(6.7002 -0.38107 9.46837e-24)
-(6.82692 -0.359652 6.70274e-22)
-(6.96262 -0.338487 9.82375e-22)
-(7.11623 -0.315076 1.1492e-21)
-(7.27041 -0.296442 1.04657e-21)
-(7.46994 -0.268169 9.02669e-22)
-(7.61249 -0.262768 4.71534e-22)
-(7.9276 -0.210782 1.07705e-22)
-(5.87097 -0.518752 -1.20499e-22)
-(5.88976 -0.522118 -1.49653e-22)
-(5.91171 -0.525358 -2.22347e-22)
-(5.93781 -0.528096 -2.22803e-22)
-(5.96828 -0.530044 -5.19397e-22)
-(6.00331 -0.530893 -4.32746e-22)
-(6.04308 -0.530358 -5.3318e-23)
-(6.08775 -0.5282 -4.18728e-23)
-(6.13744 -0.524236 -3.20504e-23)
-(6.19232 -0.51834 2.53954e-22)
-(6.2526 -0.510444 5.08971e-22)
-(6.3185 -0.500541 8.24884e-22)
-(6.39037 -0.488672 5.23352e-22)
-(6.46859 -0.474935 3.30975e-22)
-(6.55367 -0.459456 6.07459e-22)
-(6.64617 -0.442441 7.56535e-22)
-(6.74698 -0.424023 8.16307e-22)
-(6.8565 -0.404635 2.52296e-22)
-(6.97691 -0.384057 2.5741e-22)
-(7.10637 -0.363778 8.83966e-22)
-(7.25336 -0.341272 7.55729e-22)
-(7.4015 -0.32357 6.27825e-22)
-(7.59365 -0.295958 5.63494e-22)
-(7.73141 -0.291187 2.79957e-22)
-(8.03741 -0.238604 -4.01577e-23)
-(6.11803 -0.525207 -1.10027e-22)
-(6.1311 -0.529748 -4.34485e-22)
-(6.14778 -0.534294 -3.13596e-22)
-(6.16867 -0.538317 -2.27713e-22)
-(6.19395 -0.541499 -3.20928e-22)
-(6.2238 -0.54351 -3.04638e-22)
-(6.25837 -0.544054 -4.31136e-22)
-(6.29777 -0.542886 -1.46674e-22)
-(6.34213 -0.539828 -4.41055e-25)
-(6.39159 -0.534764 -8.19557e-24)
-(6.44634 -0.527639 3.01383e-22)
-(6.5066 -0.518462 9.46921e-22)
-(6.57271 -0.50729 5.9863e-22)
-(6.64505 -0.494238 1.67912e-22)
-(6.72415 -0.479448 4.07787e-22)
-(6.81056 -0.463136 7.16621e-22)
-(6.90517 -0.445449 8.05474e-22)
-(7.00842 -0.426829 2.44872e-22)
-(7.12242 -0.407061 -3.0961e-23)
-(7.24555 -0.387636 6.5194e-22)
-(7.38585 -0.365982 3.07961e-22)
-(7.52788 -0.349192 1.97542e-22)
-(7.71263 -0.322121 2.30954e-22)
-(7.84553 -0.318143 3.09096e-23)
-(8.1425 -0.26471 -2.17227e-22)
-(6.36061 -0.529938 -8.66386e-23)
-(6.36797 -0.535778 -7.01209e-22)
-(6.37931 -0.541725 -8.39134e-22)
-(6.39497 -0.547115 -3.58627e-22)
-(6.41503 -0.551591 -2.50642e-22)
-(6.43965 -0.554811 -1.61709e-22)
-(6.46896 -0.556465 -7.80458e-22)
-(6.50305 -0.556308 -1.49951e-22)
-(6.54202 -0.554167 1.14177e-22)
-(6.586 -0.549938 5.10165e-23)
-(6.63515 -0.543585 -2.47659e-22)
-(6.68971 -0.535129 2.53455e-22)
-(6.75 -0.524648 9.33624e-22)
-(6.81641 -0.512271 1.04418e-22)
-(6.88946 -0.498156 3.08892e-22)
-(6.96973 -0.482532 7.97498e-22)
-(7.05811 -0.465559 7.12656e-22)
-(7.15507 -0.447683 5.06199e-22)
-(7.26265 -0.428695 -2.86699e-22)
-(7.37942 -0.410092 3.31005e-22)
-(7.51303 -0.389239 3.82524e-22)
-(7.64896 -0.373338 -3.78722e-23)
-(7.82637 -0.346701 -7.09228e-23)
-(7.95437 -0.343655 -3.17971e-22)
-(8.24268 -0.289158 -3.75652e-22)
-(6.59883 -0.533015 -3.25743e-22)
-(6.60068 -0.540302 -2.04202e-22)
-(6.60684 -0.547758 -4.07231e-22)
-(6.61742 -0.554615 4.34008e-23)
-(6.63241 -0.560469 -1.09883e-22)
-(6.65195 -0.564964 -2.18969e-22)
-(6.67614 -0.567782 -2.30313e-22)
-(6.70505 -0.56868 -3.42319e-22)
-(6.73875 -0.567494 -1.44566e-22)
-(6.77735 -0.564134 5.30752e-22)
-(6.82101 -0.558582 3.70284e-22)
-(6.86997 -0.550877 -2.23621e-22)
-(6.92454 -0.541116 2.91547e-22)
-(6.98512 -0.529445 7.53489e-22)
-(7.05224 -0.516036 6.34305e-22)
-(7.12647 -0.501132 9.08931e-22)
-(7.20871 -0.484906 4.55327e-22)
-(7.29949 -0.467808 1.02821e-21)
-(7.40074 -0.449638 -7.49022e-23)
-(7.51127 -0.431888 -1.20691e-21)
-(7.6383 -0.411882 2.94861e-22)
-(7.76822 -0.396892 -7.07212e-23)
-(7.93843 -0.370774 -7.33196e-22)
-(8.06164 -0.368673 -8.07483e-22)
-(8.34158 -0.313394 -4.65617e-22)
-(6.83015 -0.534462 6.56088e-22)
-(6.82684 -0.543357 5.30742e-22)
-(6.82807 -0.552431 1.31542e-22)
-(6.83384 -0.56085 -3.45306e-22)
-(6.84403 -0.568159 -5.00717e-22)
-(6.85874 -0.573991 -7.10273e-22)
-(6.87805 -0.578023 7.4001e-22)
-(6.90199 -0.580015 8.10638e-22)
-(6.93063 -0.579816 7.58983e-22)
-(6.96405 -0.577355 -1.16061e-21)
-(7.00242 -0.572631 -7.91395e-22)
-(7.04595 -0.565705 1.91967e-21)
-(7.09498 -0.556691 8.15978e-22)
-(7.1499 -0.545753 1.40191e-21)
-(7.21125 -0.533081 1.54617e-21)
-(7.27962 -0.518929 -8.23799e-22)
-(7.3559 -0.503482 -3.38322e-22)
-(7.44065 -0.487194 1.37279e-22)
-(7.53575 -0.469878 5.12195e-22)
-(7.64019 -0.45301 -1.97882e-22)
-(7.76079 -0.4339 -1.5878e-21)
-(7.88487 -0.419831 -2.02393e-22)
-(8.04803 -0.39434 -9.83875e-23)
-(8.1666 -0.393143 -1.39099e-21)
-(8.43849 -0.337452 -1.56595e-21)
-(7.05135 -0.53434 2.81849e-22)
-(7.04341 -0.545009 -8.02766e-22)
-(7.04014 -0.555803 -6.44966e-22)
-(7.04152 -0.565872 1.76059e-22)
-(7.04732 -0.574706 -5.95371e-22)
-(7.05759 -0.581927 -1.62985e-22)
-(7.07238 -0.587214 -1.86169e-21)
-(7.0917 -0.590334 3.72926e-22)
-(7.1156 -0.591151 6.59499e-22)
-(7.14415 -0.589613 1.70859e-22)
-(7.17751 -0.585741 5.36935e-22)
-(7.21591 -0.579618 4.45567e-22)
-(7.25967 -0.571377 -6.71449e-23)
-(7.3092 -0.561201 8.35009e-22)
-(7.36504 -0.549294 9.06045e-22)
-(7.4278 -0.535922 1.35992e-21)
-(7.49836 -0.521287 9.23082e-22)
-(7.57733 -0.505841 -1.48859e-21)
-(7.66652 -0.489413 -1.19202e-21)
-(7.7651 -0.473455 -5.2784e-22)
-(7.8795 -0.45529 -1.79634e-21)
-(7.99795 -0.442153 -5.58894e-22)
-(8.15429 -0.417395 -5.31096e-22)
-(8.2684 -0.417068 -1.72063e-21)
-(8.5326 -0.361328 -1.65031e-21)
-(7.25838 -0.532759 5.92349e-22)
-(7.24654 -0.545361 4.49817e-23)
-(7.23943 -0.557969 6.15647e-22)
-(7.23704 -0.569762 -1.37702e-21)
-(7.23905 -0.580179 -2.43648e-21)
-(7.24544 -0.588831 6.08413e-23)
-(7.25625 -0.595403 -1.66827e-21)
-(7.27147 -0.599672 -2.17823e-21)
-(7.29111 -0.601523 -9.19165e-22)
-(7.31525 -0.600926 2.49843e-21)
-(7.34403 -0.597925 1.66988e-21)
-(7.37771 -0.592625 2.15833e-21)
-(7.41659 -0.58518 2.91321e-21)
-(7.46112 -0.57579 1.76537e-21)
-(7.51183 -0.564675 9.93673e-22)
-(7.56935 -0.552114 6.17496e-22)
-(7.63454 -0.53832 -3.82173e-22)
-(7.70807 -0.523745 2.17528e-21)
-(7.79167 -0.50824 -7.2034e-22)
-(7.8847 -0.49322 -1.48166e-21)
-(7.9932 -0.476046 -3.83872e-22)
-(8.10633 -0.463856 5.06769e-22)
-(8.25613 -0.439935 -1.49175e-21)
-(8.36605 -0.440453 -1.51419e-21)
-(8.62292 -0.385022 -1.17625e-21)
-(7.44612 -0.52982 1.33177e-21)
-(7.4314 -0.54453 8.57733e-22)
-(7.42139 -0.559056 1.94384e-21)
-(7.41615 -0.572639 -1.41422e-21)
-(7.41522 -0.584685 -3.1734e-21)
-(7.41855 -0.594798 -4.18939e-21)
-(7.42614 -0.602672 -4.6854e-22)
-(7.43796 -0.608103 1.78599e-21)
-(7.45402 -0.610997 1.94427e-21)
-(7.47438 -0.611351 -1.70703e-21)
-(7.49921 -0.609233 9.15154e-22)
-(7.52874 -0.604772 6.88189e-22)
-(7.56332 -0.598142 1.33249e-21)
-(7.60337 -0.589559 1.10218e-21)
-(7.64947 -0.579261 5.97388e-22)
-(7.70224 -0.567536 -9.40681e-23)
-(7.76255 -0.554612 -1.12304e-21)
-(7.8311 -0.540938 5.71471e-22)
-(7.90955 -0.526388 1.13804e-21)
-(7.99746 -0.512332 1.20307e-22)
-(8.10047 -0.496198 -4.44544e-21)
-(8.20864 -0.484963 -9.71365e-22)
-(8.35227 -0.462 -2.00011e-21)
-(8.45835 -0.463307 -1.36439e-22)
-(8.70829 -0.408601 1.02382e-22)
-(7.61646 -0.52557 -1.54126e-21)
-(7.60025 -0.54263 4.47387e-22)
-(7.58851 -0.55924 -8.0171e-22)
-(7.58141 -0.574733 -1.02961e-21)
-(7.57846 -0.588508 1.65494e-21)
-(7.57957 -0.60016 8.25471e-22)
-(7.5847 -0.609396 8.40994e-22)
-(7.59382 -0.616034 1.08461e-22)
-(7.60693 -0.62001 1.43051e-21)
-(7.62409 -0.621349 1.79814e-21)
-(7.64549 -0.620147 3.61758e-21)
-(7.67136 -0.616555 3.86317e-21)
-(7.70207 -0.61077 1.49237e-21)
-(7.73806 -0.603024 2.97569e-22)
-(7.7799 -0.59357 -1.35183e-22)
-(7.82824 -0.582706 -1.2345e-21)
-(7.88394 -0.570673 -1.33078e-21)
-(7.94773 -0.557912 -3.44627e-21)
-(8.02123 -0.544331 -2.74748e-21)
-(8.10416 -0.531228 -6.81066e-22)
-(8.20176 -0.51615 -4.82866e-21)
-(8.30506 -0.505799 -5.60782e-21)
-(8.44254 -0.483883 -1.28687e-21)
-(8.5448 -0.485765 3.64313e-22)
-(8.78779 -0.43218 1.34438e-22)
-(7.75767 -0.520264 -1.98191e-21)
-(7.74173 -0.539886 -1.61524e-21)
-(7.73005 -0.558717 -1.88342e-21)
-(7.7228 -0.576202 8.0937e-22)
-(7.71943 -0.591774 1.89088e-21)
-(7.71981 -0.605016 2.06541e-21)
-(7.72388 -0.615649 2.59337e-21)
-(7.73159 -0.62352 -1.00318e-21)
-(7.74294 -0.628598 -1.83383e-21)
-(7.75801 -0.630942 -7.11492e-21)
-(7.77698 -0.630674 -4.14405e-21)
-(7.80013 -0.627972 -6.23364e-21)
-(7.82783 -0.623053 -2.86454e-21)
-(7.86054 -0.616167 -1.71346e-21)
-(7.89885 -0.607579 -1.20978e-21)
-(7.94342 -0.597595 -3.33088e-21)
-(7.99512 -0.586469 -4.1638e-21)
-(8.05472 -0.574631 2.92189e-21)
-(8.12375 -0.562027 -3.17256e-21)
-(8.20215 -0.549863 -2.14214e-21)
-(8.29477 -0.535855 -2.36254e-21)
-(8.39354 -0.526318 -2.84515e-21)
-(8.52526 -0.505539 2.28053e-21)
-(8.62389 -0.507774 1.98379e-21)
-(8.86066 -0.455714 8.25325e-23)
-(7.85422 -0.514769 3.48035e-21)
-(7.84024 -0.536946 5.13248e-22)
-(7.83048 -0.557978 -1.99832e-21)
-(7.82493 -0.577383 -2.83007e-21)
-(7.82302 -0.59466 2.94095e-21)
-(7.82453 -0.609399 3.50055e-21)
-(7.82938 -0.621337 4.24818e-21)
-(7.83748 -0.630357 -6.11938e-22)
-(7.84881 -0.636467 5.75191e-22)
-(7.86348 -0.639759 1.22928e-21)
-(7.88166 -0.640385 -4.525e-21)
-(7.90367 -0.638547 -4.96847e-21)
-(7.92987 -0.634479 -9.94448e-22)
-(7.96078 -0.628447 -2.23142e-21)
-(7.99697 -0.620729 -1.53548e-21)
-(8.03913 -0.611635 -6.96784e-21)
-(8.08813 -0.601432 -3.96923e-21)
-(8.14477 -0.590537 -8.10504e-21)
-(8.21054 -0.578934 -3.51701e-22)
-(8.28552 -0.567735 -7.0097e-22)
-(8.37425 -0.554843 -5.14327e-22)
-(8.46949 -0.546137 2.4236e-21)
-(8.59646 -0.526628 -7.02277e-22)
-(8.69227 -0.529161 4.86265e-22)
-(8.92413 -0.47915 -3.7759e-22)
-(7.90764 -0.509395 1.66618e-21)
-(7.89638 -0.534105 3.97931e-21)
-(7.88956 -0.557333 5.30207e-21)
-(7.88686 -0.578591 8.96496e-21)
-(7.88765 -0.597469 8.45808e-21)
-(7.89164 -0.613588 4.4559e-21)
-(7.89867 -0.626711 4.79785e-21)
-(7.9086 -0.636766 9.32823e-21)
-(7.92139 -0.643804 7.17148e-21)
-(7.93713 -0.647956 7.2567e-21)
-(7.95603 -0.649404 1.83236e-21)
-(7.97837 -0.648373 -1.16443e-21)
-(8.00457 -0.645116 -6.94881e-21)
-(8.03512 -0.63991 -6.21727e-21)
-(8.07064 -0.633042 -3.83323e-21)
-(8.11181 -0.624828 3.14265e-21)
-(8.15949 -0.615545 -2.30048e-22)
-(8.21452 -0.605596 -3.98911e-21)
-(8.27833 -0.595004 -2.40382e-21)
-(8.35117 -0.584784 -1.74238e-21)
-(8.43724 -0.573036 3.34e-21)
-(8.53011 -0.565178 1.10184e-21)
-(8.65355 -0.547047 -1.28688e-21)
-(8.74751 -0.549839 -2.00794e-21)
-(8.97592 -0.502329 2.61609e-22)
-(7.92597 -0.504146 -1.12631e-21)
-(7.91727 -0.531438 -6.86974e-22)
-(7.91348 -0.556897 1.76535e-23)
-(7.91382 -0.579964 -1.15264e-21)
-(7.91759 -0.600352 -6.57281e-21)
-(7.92445 -0.617738 -5.12913e-21)
-(7.93415 -0.631919 -1.42825e-20)
-(7.94651 -0.642878 -1.91409e-20)
-(7.96145 -0.650725 -1.72589e-20)
-(7.97905 -0.65563 -1.0105e-20)
-(7.9995 -0.657809 -5.88165e-21)
-(8.02311 -0.657508 -4.90058e-21)
-(8.05029 -0.654998 -5.9267e-21)
-(8.08154 -0.650568 -7.1209e-21)
-(8.11747 -0.644513 -1.47992e-22)
-(8.15878 -0.637151 -1.93436e-21)
-(8.20632 -0.628768 -3.45457e-21)
-(8.26095 -0.619754 -4.8367e-21)
-(8.32403 -0.610168 -2.33522e-21)
-(8.39594 -0.60093 -2.35795e-21)
-(8.48061 -0.590348 9.04813e-21)
-(8.57235 -0.583351 6.67981e-21)
-(8.69355 -0.566709 -1.65999e-21)
-(8.7868 -0.569704 -1.88772e-21)
-(9.01343 -0.525169 -6.95425e-22)
-(7.91814 -0.498794 -3.63707e-21)
-(7.91146 -0.528831 -2.79387e-21)
-(7.91035 -0.556587 -3.39381e-21)
-(7.9134 -0.581438 1.38588e-21)
-(7.9198 -0.60326 -2.4582e-21)
-(7.92922 -0.621807 -1.0021e-20)
-(7.94133 -0.636923 -4.17969e-21)
-(7.95591 -0.648661 1.49847e-21)
-(7.97284 -0.657194 -2.47142e-21)
-(7.99221 -0.662741 -4.92107e-21)
-(8.01423 -0.66555 -3.15048e-21)
-(8.03921 -0.665893 -6.04053e-21)
-(8.06756 -0.664057 -7.31126e-21)
-(8.0998 -0.66034 -7.16743e-21)
-(8.13655 -0.655047 -1.49419e-20)
-(8.17852 -0.648496 -1.19688e-20)
-(8.22654 -0.640982 -8.7574e-21)
-(8.28149 -0.632879 -7.66391e-21)
-(8.34469 -0.624286 4.76891e-22)
-(8.41665 -0.616029 1.04051e-21)
-(8.50099 -0.606629 1.72621e-21)
-(8.59274 -0.6005 2.70543e-21)
-(8.71305 -0.585479 4.92826e-21)
-(8.80678 -0.588584 1.17375e-21)
-(9.03349 -0.547563 -6.45791e-22)
-(7.88938 -0.49304 -5.28246e-22)
-(7.88424 -0.526083 2.79119e-23)
-(7.88548 -0.55621 -5.63787e-21)
-(7.89084 -0.58281 -1.7681e-20)
-(7.89938 -0.605982 -2.14546e-20)
-(7.91078 -0.625575 -4.05316e-21)
-(7.92471 -0.641493 -4.5689e-21)
-(7.94086 -0.653876 2.59197e-21)
-(7.95912 -0.66297 -4.41287e-21)
-(7.97961 -0.669043 -5.22928e-21)
-(8.00255 -0.672378 -2.06837e-20)
-(8.02828 -0.673273 -1.62596e-20)
-(8.05724 -0.672031 -1.15788e-20)
-(8.08999 -0.668961 -9.77921e-21)
-(8.12717 -0.664373 -7.79609e-21)
-(8.16952 -0.658589 -1.27772e-20)
-(8.2179 -0.651909 -8.4148e-21)
-(8.27324 -0.644698 -6.50427e-21)
-(8.33683 -0.637086 -6.49165e-21)
-(8.4093 -0.629812 8.20284e-22)
-(8.49406 -0.621623 9.97946e-21)
-(8.58677 -0.616377 5.21095e-21)
-(8.70745 -0.603147 -2.74481e-21)
-(8.80296 -0.606222 -1.7933e-21)
-(9.03186 -0.569354 -1.97431e-21)
-(7.84019 -0.486521 3.21661e-21)
-(7.83636 -0.522899 2.40026e-21)
-(7.83982 -0.555427 9.00711e-21)
-(7.84718 -0.583708 5.53747e-21)
-(7.8574 -0.608127 3.11257e-21)
-(7.87023 -0.628624 -5.19248e-21)
-(7.88527 -0.645185 -1.07554e-20)
-(7.9022 -0.658055 -8.24123e-21)
-(7.92091 -0.667561 9.02918e-22)
-(7.94155 -0.674023 -1.08512e-20)
-(7.96437 -0.677761 5.08859e-21)
-(7.98977 -0.679099 -6.3152e-21)
-(8.01824 -0.678358 -2.77699e-21)
-(8.05039 -0.675857 -7.46585e-21)
-(8.08693 -0.671914 1.27251e-22)
-(8.12867 -0.666854 1.3749e-20)
-(8.17657 -0.660984 3.89315e-21)
-(8.23162 -0.654658 -3.9999e-21)
-(8.29519 -0.648043 1.25621e-20)
-(8.36807 -0.641789 1.8267e-20)
-(8.45355 -0.634878 -3.87611e-21)
-(8.54788 -0.630572 -5.67307e-21)
-(8.67014 -0.619374 2.43051e-23)
-(8.76883 -0.622264 -9.81739e-22)
-(9.00232 -0.590273 -3.48519e-21)
-(7.76563 -0.478698 -5.1736e-21)
-(7.76339 -0.518871 2.39611e-21)
-(7.76932 -0.553755 1.72858e-21)
-(7.77864 -0.583563 2.13426e-21)
-(7.79022 -0.609064 9.90645e-21)
-(7.80397 -0.63027 3.80974e-22)
-(7.81947 -0.647265 7.3375e-21)
-(7.83633 -0.66042 -1.75879e-21)
-(7.85451 -0.670149 -1.4922e-21)
-(7.8742 -0.676827 1.42506e-20)
-(7.89571 -0.680814 1.51651e-20)
-(7.9195 -0.682462 2.38192e-20)
-(7.94615 -0.682108 1.65047e-20)
-(7.97635 -0.680086 3.45686e-20)
-(8.01091 -0.676723 3.34463e-20)
-(8.05076 -0.672349 2.50365e-20)
-(8.09699 -0.667279 2.75601e-20)
-(8.15073 -0.661864 2.35636e-20)
-(8.21349 -0.656301 9.15062e-21)
-(8.2863 -0.65116 -1.39057e-20)
-(8.3724 -0.645661 -1.64359e-20)
-(8.4687 -0.642439 -1.28553e-20)
-(8.59351 -0.633598 -1.39557e-20)
-(8.69677 -0.636219 -7.78737e-21)
-(8.93719 -0.609836 -1.26601e-21)
-(7.65686 -0.468626 -6.40528e-21)
-(7.65586 -0.513186 -2.12937e-20)
-(7.66492 -0.550451 -1.69036e-20)
-(7.67623 -0.581545 4.72149e-21)
-(7.68887 -0.607838 -1.24292e-21)
-(7.70302 -0.629447 7.454e-21)
-(7.71826 -0.646589 7.5211e-21)
-(7.7342 -0.659775 5.76681e-21)
-(7.75089 -0.669504 3.68996e-21)
-(7.7686 -0.676208 1.70158e-20)
-(7.78777 -0.680288 2.65484e-20)
-(7.80893 -0.682125 9.08159e-21)
-(7.83279 -0.682077 8.94111e-21)
-(7.86015 -0.680488 8.68945e-21)
-(7.89196 -0.677697 -3.5817e-21)
-(7.9293 -0.674039 1.02998e-20)
-(7.97339 -0.669839 1.13819e-20)
-(8.02554 -0.665439 -4.20269e-21)
-(8.08738 -0.661065 -3.22737e-20)
-(8.16017 -0.657207 -3.27543e-20)
-(8.24718 -0.653319 -3.04093e-20)
-(8.34587 -0.651388 -1.74304e-20)
-(8.47402 -0.645277 -1.56811e-21)
-(8.5828 -0.647567 -3.50075e-23)
-(8.83169 -0.627413 8.81801e-22)
-(7.49102 -0.454479 8.52684e-21)
-(7.49172 -0.503913 2.06667e-20)
-(7.50306 -0.54354 2.35871e-20)
-(7.51638 -0.575855 1.11925e-20)
-(7.5298 -0.602642 1.63059e-20)
-(7.54397 -0.62428 6.57656e-21)
-(7.55845 -0.641241 5.14707e-21)
-(7.57293 -0.654197 2.4021e-21)
-(7.58756 -0.663724 1.05395e-21)
-(7.60279 -0.670312 -1.02994e-20)
-(7.61918 -0.674408 -1.89083e-20)
-(7.63744 -0.676422 2.03185e-21)
-(7.6584 -0.676732 5.67957e-21)
-(7.68305 -0.675697 -1.64926e-20)
-(7.71247 -0.673662 -1.16174e-20)
-(7.74789 -0.670967 -1.39149e-20)
-(7.79064 -0.667935 -7.31171e-21)
-(7.84217 -0.664898 1.11955e-20)
-(7.90419 -0.662101 1.89224e-20)
-(7.97808 -0.659944 2.1989e-20)
-(8.06709 -0.658136 2.29595e-20)
-(8.16913 -0.657898 1.21139e-20)
-(8.30149 -0.655353 7.47288e-21)
-(8.41643 -0.657003 7.98947e-21)
-(8.67452 -0.644949 5.05601e-21)
-(7.23341 -0.434005 -8.32972e-21)
-(7.23848 -0.48827 -2.32903e-20)
-(7.254 -0.529816 -2.79305e-20)
-(7.26871 -0.563183 -1.56114e-20)
-(7.28342 -0.590293 -6.87893e-21)
-(7.29797 -0.611604 2.24774e-23)
-(7.31208 -0.628087 -4.08176e-21)
-(7.3256 -0.640631 -1.94626e-20)
-(7.33895 -0.649881 -1.38486e-20)
-(7.35278 -0.656379 4.2955e-21)
-(7.36786 -0.660617 2.523e-21)
-(7.38507 -0.663027 1.63318e-20)
-(7.40542 -0.663998 1.133e-20)
-(7.43 -0.663889 1.51528e-20)
-(7.46001 -0.663039 5.30126e-21)
-(7.49672 -0.661774 1.88041e-20)
-(7.54152 -0.660401 7.99853e-21)
-(7.59584 -0.659225 -7.51891e-21)
-(7.66138 -0.658495 1.08256e-21)
-(7.73952 -0.658515 6.15728e-21)
-(7.83339 -0.659242 9.63198e-21)
-(7.94106 -0.661112 9.05032e-21)
-(8.07968 -0.662665 9.11074e-21)
-(8.20163 -0.663729 -4.77048e-21)
-(8.46924 -0.660474 1.97054e-22)
-(6.90525 -0.410015 -4.95732e-22)
-(6.9182 -0.468207 8.27536e-21)
-(6.94092 -0.510734 -4.36562e-21)
-(6.95939 -0.544713 -2.2565e-20)
-(6.97649 -0.57197 -4.68426e-20)
-(6.99392 -0.592933 -3.69319e-20)
-(7.01033 -0.608974 -4.44594e-20)
-(7.02588 -0.62126 -2.24519e-21)
-(7.04126 -0.630491 1.15797e-20)
-(7.05731 -0.637235 7.96543e-22)
-(7.07492 -0.641995 9.16941e-21)
-(7.0951 -0.645203 2.54191e-22)
-(7.11891 -0.647232 -3.78527e-21)
-(7.14748 -0.648423 -1.68663e-20)
-(7.18201 -0.649092 -1.2409e-20)
-(7.22376 -0.649536 -2.78974e-20)
-(7.27405 -0.650039 -2.0251e-20)
-(7.33429 -0.650875 2.5971e-20)
-(7.40607 -0.652289 1.26481e-20)
-(7.49072 -0.654509 5.14556e-21)
-(7.59133 -0.657673 6.18664e-21)
-(7.70587 -0.661661 5.22986e-21)
-(7.85179 -0.666764 1.51615e-21)
-(7.98066 -0.667965 2.16467e-20)
-(8.25844 -0.671316 1.27811e-20)
-(6.52557 -0.384497 2.2061e-20)
-(6.55094 -0.445804 6.02413e-21)
-(6.58448 -0.488653 1.49594e-20)
-(6.61033 -0.522893 2.03401e-20)
-(6.6329 -0.550142 1.35045e-20)
-(6.65548 -0.570925 -1.02076e-20)
-(6.67742 -0.586821 1.63434e-20)
-(6.69837 -0.599133 -1.69653e-20)
-(6.71924 -0.608654 -2.12475e-20)
-(6.74097 -0.615963 -4.24427e-20)
-(6.76453 -0.621551 -3.98134e-20)
-(6.79093 -0.625824 -4.3755e-20)
-(6.82124 -0.629133 -3.00174e-20)
-(6.85657 -0.631787 -1.54115e-20)
-(6.89806 -0.634075 -1.71224e-20)
-(6.94691 -0.636268 4.05956e-22)
-(7.00439 -0.638624 -1.47152e-20)
-(7.07183 -0.641392 -1.40121e-20)
-(7.15078 -0.644811 -1.1298e-20)
-(7.24251 -0.649062 -9.5997e-21)
-(7.35008 -0.654407 4.86401e-21)
-(7.47131 -0.660367 4.40692e-22)
-(7.62426 -0.668405 -3.37417e-22)
-(7.75903 -0.670343 -3.60909e-21)
-(8.04704 -0.67847 2.28222e-21)
-(6.11868 -0.359903 -7.88929e-21)
-(6.16068 -0.423636 -6.78041e-22)
-(6.20814 -0.466308 5.37937e-21)
-(6.2442 -0.500495 9.81218e-21)
-(6.27589 -0.527493 3.13343e-20)
-(6.30605 -0.54812 4.25745e-20)
-(6.33556 -0.564112 5.3397e-20)
-(6.3644 -0.576683 5.17803e-20)
-(6.39314 -0.586674 3.15595e-20)
-(6.42276 -0.594698 2.74474e-20)
-(6.45424 -0.601219 6.6898e-21)
-(6.48856 -0.606614 -1.80191e-20)
-(6.52676 -0.611199 -1.52773e-20)
-(6.56988 -0.615259 -4.04237e-20)
-(6.61902 -0.619054 -2.33567e-20)
-(6.67533 -0.622832 -3.70654e-20)
-(6.74004 -0.626835 -4.03262e-20)
-(6.81441 -0.63129 -4.73199e-20)
-(6.9 -0.636436 -2.83379e-20)
-(6.998 -0.642422 -1.75808e-20)
-(7.11154 -0.649594 -2.48136e-20)
-(7.23822 -0.657268 -1.26194e-20)
-(7.39692 -0.667634 -7.91282e-21)
-(7.5358 -0.670661 6.02664e-21)
-(7.83336 -0.682182 3.33428e-21)
-(5.70325 -0.337734 -2.29839e-21)
-(5.76526 -0.403314 2.35738e-20)
-(5.82877 -0.44539 1.73269e-20)
-(5.87696 -0.479231 1.82179e-20)
-(5.91993 -0.505744 2.52627e-21)
-(5.96052 -0.526153 1.35277e-20)
-(5.99892 -0.542289 1.61871e-20)
-(6.03689 -0.555234 1.38316e-20)
-(6.07464 -0.565732 2.89281e-20)
-(6.11302 -0.574448 4.08681e-21)
-(6.15297 -0.581828 -8.4082e-22)
-(6.19546 -0.588216 2.02704e-20)
-(6.24146 -0.593901 1.75439e-21)
-(6.29198 -0.599144 1.9251e-21)
-(6.3481 -0.604187 -7.64252e-22)
-(6.41094 -0.609261 -5.36832e-21)
-(6.4817 -0.614593 1.30821e-20)
-(6.56167 -0.620401 -1.15918e-20)
-(6.65236 -0.626919 -1.66127e-20)
-(6.75497 -0.634283 -1.43876e-20)
-(6.8727 -0.642888 -1.40552e-20)
-(7.00289 -0.651955 -9.12225e-21)
-(7.16538 -0.664073 -6.19996e-21)
-(7.30593 -0.668343 -7.34842e-21)
-(7.61199 -0.682309 -2.13858e-21)
-(5.28937 -0.318521 -1.76336e-21)
-(5.37436 -0.385491 -1.14497e-20)
-(5.45548 -0.426636 7.31785e-21)
-(5.51717 -0.459816 2.58384e-20)
-(5.57274 -0.485684 4.38617e-20)
-(5.62505 -0.505761 1.58813e-20)
-(5.67405 -0.521944 -1.17697e-20)
-(5.72109 -0.535158 -2.33348e-20)
-(5.76795 -0.546086 -2.4878e-20)
-(5.81479 -0.555321 7.38915e-21)
-(5.86258 -0.563337 -9.32781e-21)
-(5.91227 -0.570454 -3.28017e-20)
-(5.96483 -0.576943 -1.49811e-20)
-(6.0213 -0.583047 4.09172e-20)
-(6.08274 -0.588994 1.67706e-20)
-(6.15028 -0.595006 2.11657e-20)
-(6.22516 -0.6013 7.18816e-21)
-(6.30866 -0.608086 -8.52097e-21)
-(6.40232 -0.615594 -1.07169e-20)
-(6.50731 -0.623953 -9.03805e-21)
-(6.62693 -0.633582 -3.32871e-21)
-(6.7582 -0.643685 -9.46383e-22)
-(6.92207 -0.657015 -1.76181e-21)
-(7.06159 -0.66253 -2.19446e-20)
-(7.37459 -0.67834 -3.36001e-21)
-(4.8801 -0.302142 -4.62875e-21)
-(4.99122 -0.370201 -7.04532e-21)
-(5.09146 -0.41014 -1.74157e-20)
-(5.1677 -0.442314 -3.80483e-20)
-(5.23663 -0.467361 1.23426e-20)
-(5.30099 -0.486958 5.6109e-20)
-(5.36065 -0.50294 1.90846e-21)
-(5.41689 -0.51619 3.70982e-21)
-(5.47156 -0.527273 4.25306e-22)
-(5.52537 -0.536727 -1.14051e-20)
-(5.57925 -0.545047 1.80768e-20)
-(5.63419 -0.552542 6.98152e-21)
-(5.6912 -0.559467 -3.18286e-21)
-(5.75136 -0.566055 4.23806e-20)
-(5.81576 -0.572525 6.59235e-21)
-(5.88559 -0.579089 -3.48147e-20)
-(5.96211 -0.585958 -1.56621e-20)
-(6.04662 -0.593334 -2.11171e-20)
-(6.14069 -0.60144 -7.06308e-21)
-(6.24545 -0.6104 -2.28598e-21)
-(6.36427 -0.620634 1.24811e-20)
-(6.4938 -0.631388 9.51128e-21)
-(6.65621 -0.645416 -9.28498e-22)
-(6.79137 -0.65204 -1.11779e-20)
-(7.10966 -0.669373 -1.27561e-20)
-(4.47313 -0.288179 -1.57863e-20)
-(4.61424 -0.357166 -7.57712e-21)
-(4.73537 -0.395571 -6.41787e-21)
-(4.82692 -0.426291 -2.99048e-20)
-(4.90912 -0.450232 -3.35712e-20)
-(4.98477 -0.469054 -2.65914e-20)
-(5.05377 -0.48447 1.81556e-20)
-(5.1176 -0.49734 3.57792e-20)
-(5.17799 -0.508161 1.9943e-20)
-(5.23636 -0.517446 2.67389e-20)
-(5.29372 -0.525673 1.69751e-20)
-(5.35116 -0.533143 3.28989e-20)
-(5.40981 -0.540103 6.19792e-22)
-(5.47081 -0.546776 -1.40867e-20)
-(5.53533 -0.553374 -4.42841e-20)
-(5.60461 -0.560099 -4.11771e-20)
-(5.67992 -0.567153 -2.17875e-20)
-(5.76259 -0.574727 3.6606e-20)
-(5.85418 -0.583032 1.09332e-20)
-(5.95574 -0.59219 8.5021e-21)
-(6.07074 -0.602602 4.08261e-20)
-(6.19531 -0.613589 1.856e-20)
-(6.35306 -0.627806 -7.6878e-21)
-(6.4798 -0.635274 -9.69418e-21)
-(6.80163 -0.654038 3.45176e-21)
-(4.06106 -0.276055 1.74004e-20)
-(4.23726 -0.345921 5.88518e-21)
-(4.38108 -0.382231 5.30739e-21)
-(4.48772 -0.410766 5.46825e-20)
-(4.58168 -0.433063 1.59461e-20)
-(4.66625 -0.450596 -6.22345e-21)
-(4.74172 -0.464914 4.95967e-21)
-(4.80996 -0.476863 4.19578e-21)
-(4.8729 -0.486918 2.17306e-20)
-(4.93235 -0.495563 3.2497e-22)
-(4.98971 -0.503251 4.92297e-21)
-(5.04624 -0.510268 1.15287e-20)
-(5.10317 -0.516848 -2.79128e-20)
-(5.16173 -0.523203 -9.07386e-20)
-(5.22315 -0.529533 -1.94737e-20)
-(5.28869 -0.536029 -4.33836e-20)
-(5.35966 -0.542878 -8.52541e-21)
-(5.43734 -0.550256 -1.99576e-20)
-(5.52326 -0.558359 6.22396e-21)
-(5.61838 -0.5673 2.13561e-20)
-(5.7262 -0.577452 -1.80911e-20)
-(5.84221 -0.588224 6.8756e-21)
-(5.99174 -0.602119 3.7628e-20)
-(6.10531 -0.610045 4.1582e-20)
-(6.42874 -0.63039 1.20622e-21)
-(3.6286 -0.263732 7.22712e-21)
-(3.84616 -0.334487 5.32085e-21)
-(4.01329 -0.367921 2.21227e-20)
-(4.13243 -0.393177 -2.72922e-20)
-(4.23413 -0.412979 2.08072e-20)
-(4.32304 -0.428502 -9.402e-21)
-(4.40017 -0.441064 3.68651e-21)
-(4.46805 -0.451476 -3.10774e-20)
-(4.52891 -0.4602 -4.97653e-20)
-(4.58515 -0.467712 3.1244e-20)
-(4.63839 -0.474401 -2.40591e-21)
-(4.69007 -0.48053 -8.5829e-21)
-(4.74152 -0.486314 4.05908e-20)
-(4.79403 -0.491949 3.33003e-20)
-(4.84888 -0.497617 7.54805e-20)
-(4.9073 -0.50349 4.96632e-20)
-(4.97057 -0.509737 3.65544e-20)
-(5.03991 -0.516513 3.40016e-21)
-(5.11677 -0.523991 2.24249e-20)
-(5.20192 -0.532275 4.50093e-20)
-(5.29894 -0.541696 1.7892e-20)
-(5.40246 -0.551757 1.54986e-20)
-(5.53988 -0.564781 2.75446e-20)
-(5.63487 -0.572657 4.58422e-20)
-(5.95727 -0.59493 7.71386e-21)
-(3.13828 -0.242979 3.33418e-21)
-(3.40211 -0.315211 4.43095e-21)
-(3.58847 -0.346143 -9.98235e-20)
-(3.71266 -0.367158 -4.80924e-20)
-(3.81423 -0.383399 -5.47894e-20)
-(3.90004 -0.396051 -5.22011e-20)
-(3.97197 -0.406145 -1.13785e-19)
-(4.03325 -0.414389 1.93034e-21)
-(4.08646 -0.421228 -4.28446e-20)
-(4.13452 -0.42713 -5.60505e-20)
-(4.17912 -0.432385 -5.10234e-20)
-(4.2218 -0.437216 -3.92238e-20)
-(4.26392 -0.44181 -4.74967e-21)
-(4.30676 -0.446336 1.02992e-20)
-(4.35154 -0.450951 7.30839e-20)
-(4.39943 -0.4558 1.40892e-19)
-(4.4516 -0.461027 8.20448e-20)
-(4.50914 -0.466762 4.90978e-21)
-(4.57337 -0.473149 5.72509e-20)
-(4.64481 -0.480272 9.13018e-20)
-(4.72707 -0.488432 4.22139e-20)
-(4.81386 -0.497168 2.45081e-20)
-(4.93462 -0.508748 2.5241e-20)
-(5.00575 -0.51561 -9.53359e-22)
-(5.32153 -0.540178 -9.21869e-21)
-(2.3356 -0.178242 1.47537e-21)
-(2.64109 -0.245875 2.52428e-21)
-(2.82499 -0.275758 8.13867e-20)
-(2.92994 -0.293032 2.467e-20)
-(3.01007 -0.305201 -2.19544e-19)
-(3.0744 -0.314202 -1.33167e-19)
-(3.12515 -0.321021 -2.07779e-19)
-(3.16585 -0.326318 -1.96281e-19)
-(3.19997 -0.330587 -1.1332e-19)
-(3.22942 -0.334133 -2.46682e-19)
-(3.2557 -0.337169 -1.36961e-19)
-(3.28017 -0.339873 -7.91451e-20)
-(3.30401 -0.342395 -3.74766e-20)
-(3.32828 -0.344867 -1.20536e-20)
-(3.35398 -0.347409 1.57967e-19)
-(3.38203 -0.350131 1.27193e-19)
-(3.41333 -0.353137 8.74731e-20)
-(3.44866 -0.356521 1.40261e-19)
-(3.48905 -0.360384 -1.50812e-20)
-(3.53467 -0.364789 3.79645e-20)
-(3.58878 -0.369942 3.34173e-20)
-(3.64469 -0.375561 2.31221e-20)
-(3.73103 -0.383193 1.99748e-20)
-(3.76413 -0.387859 5.63678e-21)
-(4.04216 -0.408617 -4.48223e-20)
+(9.85698 -0.886449 0)
+(9.66665 -0.740747 0)
+(9.45574 -0.429483 0)
+(9.22457 -0.222216 0)
+(9.00656 -0.106462 0)
+(8.81447 -0.0458767 0)
+(8.64764 -0.0151809 0)
+(8.50548 0.000439179 0)
+(8.38389 0.00837067 0)
+(8.28119 0.0122615 0)
+(8.1929 0.0139566 0)
+(8.11682 0.0149822 0)
+(8.05028 0.0153167 0)
+(7.99145 0.0155406 0)
+(7.9388 0.0153661 0)
+(7.89276 0.0160313 0)
+(7.84038 0.0191813 0)
+(7.83143 0.00952496 0)
+(10.0545 0.227568 0)
+(10.1211 0.32691 0)
+(10.1196 0.261569 0)
+(10.0856 0.186536 0)
+(10.0435 0.134661 0)
+(9.99677 0.101105 0)
+(9.94407 0.0792701 0)
+(9.88537 0.0645475 0)
+(9.82404 0.0542354 0)
+(9.76158 0.0466397 0)
+(9.70016 0.0408644 0)
+(9.64044 0.0362906 0)
+(9.58322 0.0326149 0)
+(9.529 0.0296994 0)
+(9.47726 0.027167 0)
+(9.42997 0.0258002 0)
+(9.38248 0.0223178 0)
+(9.3472 0.0311402 0)
+(10.0035 0.057918 0)
+(10.0303 0.0560056 0)
+(10.0561 0.033776 0)
+(10.0704 0.0328896 0)
+(10.077 0.0406357 0)
+(10.0779 0.0465286 0)
+(10.0726 0.0493384 0)
+(10.0615 0.0502773 0)
+(10.0463 0.0501667 0)
+(10.0279 0.0494426 0)
+(10.0074 0.0483838 0)
+(9.98532 0.0472003 0)
+(9.96228 0.0459814 0)
+(9.93877 0.0448619 0)
+(9.915 0.0437036 0)
+(9.89178 0.0431583 0)
+(9.86878 0.0420584 0)
+(9.84705 0.0432854 0)
+(9.99779 0.011053 0)
+(10.011 0.0266061 0)
+(10.035 0.0371458 0)
+(10.0525 0.0480772 0)
+(10.0644 0.0554393 0)
+(10.0735 0.0581663 0)
+(10.0796 0.0583292 0)
+(10.0825 0.0575791 0)
+(10.0829 0.0565197 0)
+(10.0814 0.0553105 0)
+(10.0784 0.0540196 0)
+(10.0741 0.0527652 0)
+(10.0688 0.0515349 0)
+(10.0628 0.0504284 0)
+(10.0561 0.0493247 0)
+(10.0493 0.0486163 0)
+(10.0425 0.0476586 0)
+(10.0355 0.0473808 0)
+(9.99935 0.00719717 0)
+(10.009 0.0316514 0)
+(10.0275 0.0439156 0)
+(10.0418 0.0499117 0)
+(10.0528 0.053595 0)
+(10.0629 0.055213 0)
+(10.0717 0.0554846 0)
+(10.0785 0.055185 0)
+(10.0836 0.054629 0)
+(10.0875 0.0539087 0)
+(10.0903 0.0530774 0)
+(10.0923 0.0522284 0)
+(10.0935 0.0513717 0)
+(10.0942 0.0505759 0)
+(10.0945 0.0497828 0)
+(10.0945 0.0491791 0)
+(10.0945 0.0484487 0)
+(10.0944 0.0478439 0)
+(10.0003 0.00917698 0)
+(10.0083 0.0311654 0)
+(10.0227 0.0409347 0)
+(10.035 0.0453784 0)
+(10.0451 0.0490165 0)
+(10.0548 0.0513435 0)
+(10.0638 0.0523145 0)
+(10.0715 0.0525355 0)
+(10.078 0.052386 0)
+(10.0836 0.0520029 0)
+(10.0885 0.0514607 0)
+(10.0927 0.0508449 0)
+(10.0964 0.0501866 0)
+(10.0997 0.049533 0)
+(10.1026 0.0488619 0)
+(10.1054 0.0482477 0)
+(10.1081 0.0475373 0)
+(10.1107 0.0467221 0)
+(10.0005 0.0089429 0)
+(10.0071 0.0270792 0)
+(10.0191 0.0364014 0)
+(10.0302 0.0413722 0)
+(10.0396 0.0453874 0)
+(10.0487 0.0480428 0)
+(10.0573 0.0492996 0)
+(10.065 0.0497541 0)
+(10.0718 0.0498082 0)
+(10.078 0.0496066 0)
+(10.0835 0.0492259 0)
+(10.0886 0.0487407 0)
+(10.0933 0.0481907 0)
+(10.0976 0.0476084 0)
+(10.1017 0.0469865 0)
+(10.1056 0.0463452 0)
+(10.1093 0.0455992 0)
+(10.1131 0.0446758 0)
+(10.0004 0.00791355 0)
+(10.006 0.0233712 0)
+(10.0161 0.0327209 0)
+(10.0263 0.038079 0)
+(10.0352 0.0420642 0)
+(10.0436 0.0447354 0)
+(10.0518 0.0461317 0)
+(10.0593 0.0467471 0)
+(10.0661 0.0469463 0)
+(10.0723 0.0468729 0)
+(10.0781 0.0466043 0)
+(10.0834 0.0462079 0)
+(10.0885 0.0457264 0)
+(10.0932 0.045184 0)
+(10.0977 0.0445796 0)
+(10.1021 0.0439092 0)
+(10.1064 0.0431186 0)
+(10.1105 0.0421398 0)
+(10.0004 0.00695733 0)
+(10.0051 0.0204172 0)
+(10.0137 0.0294365 0)
+(10.0229 0.0348349 0)
+(10.0312 0.0386745 0)
+(10.0392 0.0413224 0)
+(10.0469 0.0428373 0)
+(10.0541 0.0435901 0)
+(10.0607 0.0439034 0)
+(10.0669 0.0439265 0)
+(10.0727 0.0437387 0)
+(10.0781 0.0434036 0)
+(10.0833 0.0429638 0)
+(10.0882 0.0424404 0)
+(10.0929 0.0418345 0)
+(10.0974 0.0411351 0)
+(10.1018 0.0403047 0)
+(10.1061 0.0392984 0)
+(10.0004 0.00612592 0)
+(10.0043 0.01785 0)
+(10.0116 0.026256 0)
+(10.0199 0.0315513 0)
+(10.0277 0.0352633 0)
+(10.0352 0.0378738 0)
+(10.0425 0.0394664 0)
+(10.0494 0.04032 0)
+(10.0558 0.0407179 0)
+(10.0618 0.040812 0)
+(10.0675 0.0406828 0)
+(10.0729 0.0403906 0)
+(10.0781 0.0399761 0)
+(10.083 0.0394601 0)
+(10.0877 0.0388454 0)
+(10.0923 0.0381224 0)
+(10.0966 0.0372648 0)
+(10.1009 0.0362516 0)
+(10.0003 0.0053654 0)
+(10.0037 0.0155387 0)
+(10.0099 0.0232152 0)
+(10.0173 0.0283118 0)
+(10.0245 0.0318803 0)
+(10.0315 0.0344127 0)
+(10.0384 0.0360287 0)
+(10.045 0.0369445 0)
+(10.0513 0.0374012 0)
+(10.0571 0.037546 0)
+(10.0627 0.0374594 0)
+(10.068 0.0371973 0)
+(10.0731 0.0367993 0)
+(10.0779 0.0362862 0)
+(10.0826 0.0356637 0)
+(10.0871 0.034926 0)
+(10.0914 0.0340568 0)
+(10.0956 0.0330533 0)
+(10.0003 0.00469967 0)
+(10.0032 0.013596 0)
+(10.0086 0.0205663 0)
+(10.0152 0.0253967 0)
+(10.0219 0.0287981 0)
+(10.0286 0.0312237 0)
+(10.0351 0.0328193 0)
+(10.0414 0.0337602 0)
+(10.0474 0.0342492 0)
+(10.0531 0.0344242 0)
+(10.0586 0.0343638 0)
+(10.0638 0.034121 0)
+(10.0688 0.0337334 0)
+(10.0735 0.0332227 0)
+(10.0781 0.0325969 0)
+(10.0825 0.0318554 0)
+(10.0867 0.0309888 0)
+(10.0907 0.030008 0)
+(10.0003 0.00408432 0)
+(10.0028 0.011825 0)
+(10.0075 0.0180646 0)
+(10.0134 0.0225525 0)
+(10.0197 0.0257525 0)
+(10.0259 0.0280459 0)
+(10.0321 0.0295887 0)
+(10.0381 0.0305277 0)
+(10.0439 0.031031 0)
+(10.0495 0.0312231 0)
+(10.0548 0.0311795 0)
+(10.0598 0.0309505 0)
+(10.0647 0.0305717 0)
+(10.0694 0.0300654 0)
+(10.0738 0.0294422 0)
+(10.0781 0.0287059 0)
+(10.0822 0.027853 0)
+(10.0861 0.0269045 0)
+(10.0002 0.0034487 0)
+(10.0024 0.00998437 0)
+(10.0064 0.0153813 0)
+(10.0117 0.0194018 0)
+(10.0174 0.0223168 0)
+(10.0232 0.0244184 0)
+(10.029 0.0258577 0)
+(10.0348 0.0267575 0)
+(10.0403 0.0272506 0)
+(10.0457 0.0274438 0)
+(10.0508 0.027407 0)
+(10.0557 0.0271866 0)
+(10.0604 0.0268161 0)
+(10.065 0.0263176 0)
+(10.0693 0.0257044 0)
+(10.0734 0.0249843 0)
+(10.0774 0.0241591 0)
+(10.0811 0.0232566 0)
+(10.0002 0.00278876 0)
+(10.002 0.00807269 0)
+(10.0055 0.0125267 0)
+(10.0101 0.0159501 0)
+(10.0153 0.0184782 0)
+(10.0206 0.0203128 0)
+(10.0261 0.021585 0)
+(10.0314 0.0223944 0)
+(10.0367 0.0228412 0)
+(10.0418 0.0230116 0)
+(10.0468 0.0229659 0)
+(10.0515 0.0227462 0)
+(10.0561 0.0223823 0)
+(10.0604 0.0218959 0)
+(10.0646 0.0213018 0)
+(10.0686 0.0206111 0)
+(10.0724 0.0198293 0)
+(10.076 0.0189877 0)
+(10.0002 0.00210388 0)
+(10.0017 0.00609225 0)
+(10.0047 0.00950967 0)
+(10.0088 0.0122027 0)
+(10.0134 0.014225 0)
+(10.0183 0.0157004 0)
+(10.0233 0.0167271 0)
+(10.0283 0.0173806 0)
+(10.0333 0.0177323 0)
+(10.0382 0.0178458 0)
+(10.0429 0.0177692 0)
+(10.0475 0.0175375 0)
+(10.0518 0.0171762 0)
+(10.056 0.0167052 0)
+(10.06 0.0161392 0)
+(10.0639 0.0154908 0)
+(10.0675 0.0147673 0)
+(10.071 0.0140005 0)
+(10.0002 0.0013912 0)
+(10.0015 0.00402927 0)
+(10.0041 0.00631446 0)
+(10.0076 0.0081431 0)
+(10.0118 0.00952954 0)
+(10.0163 0.0105379 0)
+(10.0209 0.0112285 0)
+(10.0256 0.0116501 0)
+(10.0303 0.0118477 0)
+(10.0349 0.011862 0)
+(10.0394 0.0117264 0)
+(10.0438 0.011466 0)
+(10.048 0.0111007 0)
+(10.052 0.0106461 0)
+(10.0558 0.0101151 0)
+(10.0595 0.00951932 0)
+(10.063 0.00886608 0)
+(10.0663 0.00818442 0)
+(10.0001 0.000634433 0)
+(10.0013 0.00183232 0)
+(10.0036 0.00286937 0)
+(10.0068 0.00369202 0)
+(10.0107 0.00430194 0)
+(10.0148 0.00472149 0)
+(10.0192 0.00497345 0)
+(10.0236 0.0050777 0)
+(10.0281 0.00505372 0)
+(10.0325 0.00491988 0)
+(10.0368 0.004692 0)
+(10.0409 0.00438301 0)
+(10.0449 0.00400389 0)
+(10.0488 0.0035642 0)
+(10.0525 0.00307256 0)
+(10.056 0.00253733 0)
+(10.0593 0.00196384 0)
+(10.0625 0.00137632 0)
+(10.0001 -0.000209419 0)
+(10.0012 -0.000620278 0)
+(10.0034 -0.000998304 0)
+(10.0065 -0.0013423 0)
+(10.0102 -0.00165027 0)
+(10.0143 -0.00193621 0)
+(10.0185 -0.00221791 0)
+(10.0228 -0.00250741 0)
+(10.0271 -0.00281181 0)
+(10.0313 -0.00313654 0)
+(10.0355 -0.00348555 0)
+(10.0395 -0.00386095 0)
+(10.0434 -0.00426291 0)
+(10.0471 -0.00469048 0)
+(10.0507 -0.00514161 0)
+(10.054 -0.00561328 0)
+(10.0573 -0.00610386 0)
+(10.0603 -0.00659608 0)
+(10.0001 -0.00101636 0)
+(10.0013 -0.00297257 0)
+(10.0037 -0.00471469 0)
+(10.007 -0.00617043 0)
+(10.0108 -0.00733521 0)
+(10.015 -0.00826872 0)
+(10.0193 -0.00903234 0)
+(10.0237 -0.00966781 0)
+(10.028 -0.0102093 0)
+(10.0323 -0.010688 0)
+(10.0364 -0.0111285 0)
+(10.0404 -0.0115471 0)
+(10.0442 -0.0119546 0)
+(10.0479 -0.0123581 0)
+(10.0514 -0.0127624 0)
+(10.0547 -0.0131693 0)
+(10.0579 -0.013581 0)
+(10.0609 -0.0139864 0)
+(10.0002 -0.00171217 0)
+(10.0015 -0.00502682 0)
+(10.0041 -0.0079623 0)
+(10.0078 -0.0103243 0)
+(10.012 -0.0121326 0)
+(10.0164 -0.0135371 0)
+(10.021 -0.0146438 0)
+(10.0255 -0.0155097 0)
+(10.03 -0.0161912 0)
+(10.0343 -0.0167468 0)
+(10.0385 -0.0172206 0)
+(10.0425 -0.0176409 0)
+(10.0464 -0.0180269 0)
+(10.0501 -0.0183917 0)
+(10.0535 -0.0187448 0)
+(10.0569 -0.0190911 0)
+(10.06 -0.0194349 0)
+(10.063 -0.0197689 0)
+(10.0002 -0.00237299 0)
+(10.0016 -0.00705697 0)
+(10.0047 -0.0112078 0)
+(10.009 -0.0143866 0)
+(10.0137 -0.0166922 0)
+(10.0185 -0.0184351 0)
+(10.0233 -0.019775 0)
+(10.0281 -0.0207826 0)
+(10.0328 -0.0215392 0)
+(10.0373 -0.0221257 0)
+(10.0416 -0.0225984 0)
+(10.0456 -0.0229938 0)
+(10.0495 -0.0233379 0)
+(10.0532 -0.0236504 0)
+(10.0567 -0.0239438 0)
+(10.06 -0.024226 0)
+(10.0631 -0.0245022 0)
+(10.0661 -0.0247679 0)
+(10.0002 -0.00299155 0)
+(10.0018 -0.00911314 0)
+(10.0054 -0.0144758 0)
+(10.0105 -0.018373 0)
+(10.0159 -0.021125 0)
+(10.0211 -0.023155 0)
+(10.0263 -0.0246182 0)
+(10.0314 -0.0256394 0)
+(10.0362 -0.0263729 0)
+(10.0409 -0.0269284 0)
+(10.0452 -0.0273622 0)
+(10.0494 -0.0277097 0)
+(10.0533 -0.0280002 0)
+(10.057 -0.0282558 0)
+(10.0605 -0.0284908 0)
+(10.0638 -0.0287132 0)
+(10.067 -0.0289287 0)
+(10.0699 -0.0291344 0)
+(10.0001 -0.00353681 0)
+(10.0018 -0.0115647 0)
+(10.0062 -0.0179074 0)
+(10.0123 -0.022012 0)
+(10.0183 -0.0250858 0)
+(10.024 -0.0275018 0)
+(10.0296 -0.0291463 0)
+(10.035 -0.0301624 0)
+(10.0401 -0.0308204 0)
+(10.0448 -0.031285 0)
+(10.0493 -0.0316237 0)
+(10.0535 -0.0318769 0)
+(10.0575 -0.0320784 0)
+(10.0613 -0.032252 0)
+(10.0648 -0.0324111 0)
+(10.0681 -0.0325629 0)
+(10.0712 -0.032711 0)
+(10.0741 -0.0328516 0)
+(9.99991 -0.00338475 0)
+(10.0016 -0.0149793 0)
+(10.0073 -0.0227423 0)
+(10.0142 -0.0262597 0)
+(10.0206 -0.0288522 0)
+(10.0268 -0.0312229 0)
+(10.0331 -0.0329493 0)
+(10.039 -0.0340422 0)
+(10.0444 -0.0347464 0)
+(10.0494 -0.0352141 0)
+(10.054 -0.0355157 0)
+(10.0583 -0.0357052 0)
+(10.0622 -0.0358286 0)
+(10.0659 -0.035917 0)
+(10.0693 -0.0359882 0)
+(10.0725 -0.0360521 0)
+(10.0754 -0.0361135 0)
+(10.0781 -0.0361706 0)
+(9.9986 -0.000401129 0)
+(9.99908 -0.0157651 0)
+(10.0075 -0.0274421 0)
+(10.0166 -0.0325075 0)
+(10.0237 -0.034888 0)
+(10.0306 -0.0362479 0)
+(10.0376 -0.0370036 0)
+(10.0441 -0.037474 0)
+(10.0498 -0.037826 0)
+(10.0549 -0.0380763 0)
+(10.0595 -0.0382238 0)
+(10.0635 -0.0382937 0)
+(10.0671 -0.038316 0)
+(10.0702 -0.038312 0)
+(10.073 -0.0382969 0)
+(10.0754 -0.0382788 0)
+(10.0775 -0.0382615 0)
+(10.0794 -0.038243 0)
+(9.99488 0.0013334 0)
+(9.99287 -0.00809893 0)
+(10.006 -0.0203605 0)
+(10.0202 -0.0322884 0)
+(10.0306 -0.0404932 0)
+(10.0392 -0.0441674 0)
+(10.0467 -0.0450824 0)
+(10.0529 -0.0449404 0)
+(10.0577 -0.0444759 0)
+(10.0616 -0.0438824 0)
+(10.0645 -0.0432396 0)
+(10.0667 -0.0426042 0)
+(10.0681 -0.0420107 0)
+(10.069 -0.0414673 0)
+(10.0693 -0.0409836 0)
+(10.0691 -0.0405559 0)
+(10.0687 -0.0401816 0)
+(10.0679 -0.0398346 0)
+(9.99473 -0.0305628 0)
+(9.99925 -0.0228763 0)
+(10.0147 -0.00264181 0)
+(10.0304 -0.00191791 0)
+(10.0434 -0.0116693 0)
+(10.0533 -0.0209348 0)
+(10.0594 -0.0272936 0)
+(10.0618 -0.0315231 0)
+(10.0615 -0.0342995 0)
+(10.059 -0.0359972 0)
+(10.055 -0.0369301 0)
+(10.0497 -0.0373646 0)
+(10.0434 -0.0374907 0)
+(10.0363 -0.0374285 0)
+(10.0288 -0.0372684 0)
+(10.0208 -0.0370653 0)
+(10.0127 -0.0368843 0)
+(10.0045 -0.0366937 0)
+(10.0273 -0.182759 0)
+(10.0763 -0.288316 0)
+(10.0871 -0.247759 0)
+(10.0777 -0.186524 0)
+(10.0663 -0.140303 0)
+(10.0537 -0.108229 0)
+(10.0365 -0.0858906 0)
+(10.0145 -0.0704315 0)
+(9.98933 -0.0596635 0)
+(9.96228 -0.0518902 0)
+(9.9343 -0.0460685 0)
+(9.90597 -0.0415713 0)
+(9.87778 -0.0380155 0)
+(9.85006 -0.0351405 0)
+(9.82306 -0.0327739 0)
+(9.79688 -0.0308527 0)
+(9.77177 -0.0293354 0)
+(9.74776 -0.028515 0)
+(9.93574 0.689319 0)
+(9.8686 0.609604 0)
+(9.76452 0.380621 0)
+(9.62662 0.217439 0)
+(9.48586 0.119264 0)
+(9.35716 0.0631824 0)
+(9.24262 0.0315704 0)
+(9.14105 0.0136102 0)
+(9.05135 0.0032568 0)
+(8.97236 -0.00280468 0)
+(8.90244 -0.00636032 0)
+(8.84024 -0.00847973 0)
+(8.78453 -0.00973055 0)
+(8.7344 -0.0104766 0)
+(8.68896 -0.0109796 0)
+(8.64761 -0.0112486 0)
+(8.6094 -0.011455 0)
+(8.57405 -0.0121149 0)
+(0.00454948 -0.0106147 -8.3217e-19)
+(0.0162534 -0.0173085 7.38596e-19)
+(0.0265321 -0.0152188 0)
+(0.0332957 -0.00931399 0)
+(0.0355595 -0.00236489 0)
+(0.0330362 0.00397794 -3.91197e-19)
+(0.0268019 0.00889195 0)
+(0.0177031 0.0122812 0)
+(0.00646509 0.0144402 0)
+(-0.00640408 0.0157603 0)
+(-0.0205503 0.0166177 2.39563e-19)
+(-0.0357608 0.0172752 0)
+(-0.0519354 0.017885 0)
+(-0.0690188 0.0185018 0)
+(-0.0869746 0.0191457 0)
+(-0.10578 0.0198081 1.28454e-19)
+(-0.125414 0.0204846 0)
+(-0.145844 0.021159 0)
+(-0.167042 0.0218244 0)
+(-0.18896 0.0224641 0)
+(-0.211571 0.0230691 0)
+(-0.234796 0.023632 0)
+(-0.258594 0.0241486 0)
+(-0.282862 0.0246434 7.42373e-20)
+(-0.307536 0.0251563 -7.09636e-20)
+(-0.332523 0.0258029 6.81241e-20)
+(-0.357806 0.0267663 6.57083e-20)
+(-0.383363 0.0283633 0)
+(-0.409187 0.0310474 0)
+(-0.435374 0.0357944 -6.09192e-20)
+(-0.462225 0.0430115 -6.0487e-20)
+(-0.490208 0.0530703 0)
+(-0.519479 0.0669205 0)
+(-0.552345 0.0448664 -8.24314e-20)
+(-0.586907 0.00851425 0)
+(-0.615962 0.0115467 0)
+(-0.651272 0.0162801 8.08042e-20)
+(-0.6898 0.0225489 0)
+(-0.73061 0.0287284 7.3817e-20)
+(-0.773465 0.0322014 1.40901e-19)
+(-0.817041 0.0387118 0)
+(-0.858605 0.0397341 0)
+(-0.899633 0.0269328 0)
+(-0.937699 0.0256554 0)
+(-0.97488 0.0340075 0)
+(-1.01578 0.0347933 1.14818e-19)
+(-1.05637 0.0348761 1.11554e-19)
+(-1.09706 0.0347499 1.08448e-19)
+(-1.1378 0.0345991 0)
+(-1.17855 0.0343757 -1.0275e-19)
+(-1.21926 0.0341074 0)
+(-1.25988 0.0337982 9.77065e-20)
+(-1.30037 0.0334655 9.54023e-20)
+(-1.34071 0.0331141 0)
+(-1.38088 0.0327509 0)
+(-1.42085 0.0323772 0)
+(-1.46062 0.0319952 8.7382e-20)
+(-1.50016 0.0316045 0)
+(-1.53946 0.031205 0)
+(-1.57851 0.0307954 0)
+(-1.61728 0.030375 0)
+(-1.65575 0.0299422 0)
+(-1.69389 0.029496 0)
+(-1.7317 0.0290346 0)
+(-1.76912 0.0285572 0)
+(-1.80615 0.0280622 -7.41372e-20)
+(-1.84275 0.027549 0)
+(-1.87888 0.0270164 0)
+(-1.91451 0.0264639 7.06673e-20)
+(-1.94961 0.0258907 6.95821e-20)
+(-1.98414 0.0252964 0)
+(-2.01807 0.0246806 -6.75011e-20)
+(-2.05135 0.0240432 6.65e-20)
+(-2.08395 0.023384 0)
+(-2.11582 0.0227031 -6.45638e-20)
+(-2.14694 0.0220006 0)
+(-2.17724 0.0212771 0)
+(-2.20671 0.0205328 6.17907e-20)
+(-2.23529 0.0197682 0)
+(-2.26294 0.0189836 -6.00048e-20)
+(-2.28962 0.0181798 0)
+(-2.3153 0.0173571 5.82513e-20)
+(-2.33993 0.0165161 5.73821e-20)
+(-2.36347 0.0156569 5.65156e-20)
+(-2.38589 0.01478 1.113e-19)
+(-2.40714 0.0138851 -1.09569e-19)
+(-2.42718 0.012972 0)
+(-2.44597 0.0120389 0)
+(-2.46348 0.0110838 0)
+(-2.47965 0.0101022 -1.02572e-19)
+(-2.49446 0.00908817 -1.00791e-19)
+(-2.50784 0.00803446 9.89934e-20)
+(-2.51975 0.00693202 0)
+(-2.53011 0.00577061 -9.53389e-20)
+(-2.53886 0.00454453 -9.34793e-20)
+(-2.54591 0.00326795 -9.15982e-20)
+(-2.5512 0.00199413 0)
+(-2.55459 0.000815436 0)
+(-2.556 -0.00018996 0)
+(-2.55599 -0.00108108 -8.3728e-20)
+(-2.55445 -0.0019472 0)
+(-2.55144 -0.00280074 0)
+(-2.54695 -0.00364909 7.73136e-20)
+(-2.54097 -0.00449297 0)
+(-2.53349 -0.00533209 0)
+(-2.5245 -0.00616614 7.04045e-20)
+(-2.51401 -0.00699397 0)
+(-2.50199 -0.00781552 0)
+(-2.48846 -0.00862957 -6.29342e-20)
+(-2.4734 -0.00943623 -6.03075e-20)
+(-2.45682 -0.0102342 0)
+(-2.43873 -0.0110236 5.48338e-20)
+(-2.41911 -0.0118032 0)
+(-2.39799 -0.0125732 -4.90475e-20)
+(-2.37536 -0.0133321 0)
+(-2.35123 -0.0140805 -4.29254e-20)
+(-2.32562 -0.0148167 -3.97304e-20)
+(-2.29854 -0.0155412 0)
+(-2.27 -0.0162528 0)
+(-2.24001 -0.0169521 0)
+(-2.2086 -0.0176383 0)
+(-2.17578 -0.0183116 0)
+(-2.14158 -0.0189701 0)
+(-2.10602 -0.0196142 0)
+(-2.06911 -0.0202422 -1.04766e-20)
+(-2.03088 -0.0208556 6.29322e-21)
+(-1.99137 -0.0214535 0)
+(-1.95058 -0.0220383 0)
+(-1.90857 -0.022607 0)
+(-1.86535 -0.0231605 0)
+(-1.82095 -0.0236978 -3.35162e-20)
+(-1.77541 -0.0242192 0)
+(-1.72877 -0.0247239 5.42157e-20)
+(-1.68106 -0.025216 -6.51147e-20)
+(-1.63232 -0.0256912 0)
+(-1.58259 -0.0261506 0)
+(-1.53191 -0.0265943 0)
+(-1.48031 -0.0270226 1.12857e-19)
+(-1.42785 -0.0274357 1.25953e-19)
+(-1.37456 -0.0278346 0)
+(-1.32049 -0.0282197 1.53736e-19)
+(-1.26569 -0.0285916 1.6849e-19)
+(-1.2102 -0.028951 -1.83871e-19)
+(-1.15407 -0.029298 0)
+(-1.09733 -0.0296335 0)
+(-1.04003 -0.0299577 -2.34214e-19)
+(-0.982216 -0.0302715 0)
+(-0.92393 -0.0305753 0)
+(-0.865215 -0.0308703 0)
+(-0.806112 -0.0311569 0)
+(-0.746664 -0.0314364 3.35564e-19)
+(-0.68691 -0.0317092 3.59115e-19)
+(-0.626891 -0.031977 0)
+(-0.566645 -0.0322402 4.10284e-19)
+(-0.506211 -0.0325004 0)
+(-0.445624 -0.0327581 0)
+(-0.38492 -0.0330144 4.99232e-19)
+(-0.324135 -0.0332689 0)
+(-0.263304 -0.0335246 5.6869e-19)
+(-0.202462 -0.0337886 0)
+(-0.141642 -0.0340764 0)
+(-0.0808847 -0.0343605 6.93057e-19)
+(-0.0202481 -0.0344547 0)
+(0.0402079 -0.033954 7.40359e-19)
+(0.100541 -0.0330258 0)
+(0.160696 -0.0320944 0)
+(0.220629 -0.0312171 0)
+(0.280336 -0.0303896 -6.71445e-19)
+(0.339822 -0.0296041 0)
+(0.399086 -0.0288514 6.44108e-19)
+(0.45811 -0.0281211 0)
+(0.516858 -0.0273998 0)
+(0.575259 -0.0266677 0)
+(0.633171 -0.0258929 0)
+(0.690391 -0.0250165 0)
+(0.746293 -0.0239266 0)
+(0.800569 -0.0223487 0)
+(0.848324 -0.0196348 -1.13637e-18)
+(0.895389 -0.0142082 0)
+(0.888644 0.00306523 0)
+(0.00474202 -0.0327295 1.94239e-18)
+(0.0109294 -0.0336134 -1.11406e-18)
+(0.0112056 -0.0213253 0)
+(0.00857365 -0.0079532 3.50239e-19)
+(0.00349174 0.00476302 0)
+(-0.0037117 0.0159569 1.37224e-19)
+(-0.0130356 0.0251726 -2.51501e-19)
+(-0.0243895 0.0323865 -2.32641e-19)
+(-0.0376473 0.0378812 0)
+(-0.0526089 0.0420722 -1.99511e-19)
+(-0.0690451 0.0453779 -9.24037e-20)
+(-0.0867775 0.0481259 0)
+(-0.105676 0.0505384 0)
+(-0.125648 0.0527395 0)
+(-0.146627 0.0547974 0)
+(-0.168572 0.0567376 -6.52202e-20)
+(-0.191458 0.0585755 0)
+(-0.215265 0.0603101 1.16355e-19)
+(-0.239984 0.0619435 0)
+(-0.265608 0.0634688 0)
+(-0.292146 0.0648845 -1.00975e-19)
+(-0.319605 0.0661858 0)
+(-0.34802 0.0673667 9.35362e-20)
+(-0.377428 0.0684321 -4.54112e-20)
+(-0.407913 0.0693803 4.41804e-20)
+(-0.439579 0.0702333 -4.32116e-20)
+(-0.472577 0.0709987 -4.25362e-20)
+(-0.507071 0.0717109 0)
+(-0.54327 0.0723753 0)
+(-0.581325 0.0730337 4.27609e-20)
+(-0.621209 0.0737398 -4.31346e-20)
+(-0.662355 0.0747247 0)
+(-0.703047 0.0765847 0)
+(-0.746578 0.0792443 4.9477e-20)
+(-0.790224 0.0824531 0)
+(-0.833984 0.086397 0)
+(-0.875267 0.0891905 -4.32444e-20)
+(-0.914832 0.0909932 0)
+(-0.953446 0.0919222 3.95295e-20)
+(-0.991566 0.0918424 -7.478e-20)
+(-1.02886 0.0912257 0)
+(-1.06683 0.0906666 0)
+(-1.10642 0.0900626 -1.3352e-19)
+(-1.14682 0.0897574 -1.30019e-19)
+(-1.18679 0.0897275 -1.26742e-19)
+(-1.22517 0.0894099 6.18002e-20)
+(-1.263 0.0888338 -6.07063e-20)
+(-1.30038 0.0880816 -1.78065e-19)
+(-1.33736 0.0872058 1.16224e-19)
+(-1.37398 0.0862435 5.71167e-20)
+(-1.41027 0.0852189 0)
+(-1.44624 0.0841497 -5.50065e-20)
+(-1.48192 0.0830496 5.3741e-20)
+(-1.51729 0.0819265 0)
+(-1.55236 0.0807856 0)
+(-1.58712 0.0796284 0)
+(-1.62156 0.0784556 -5.04884e-20)
+(-1.65567 0.0772656 0)
+(-1.68944 0.076057 9.75608e-20)
+(-1.72285 0.0748268 0)
+(-1.75587 0.0735728 9.46367e-20)
+(-1.7885 0.0722921 0)
+(-1.82071 0.0709821 -9.18921e-20)
+(-1.85248 0.0696401 0)
+(-1.88378 0.0682639 8.92985e-20)
+(-1.9146 0.0668513 -4.38988e-20)
+(-1.94489 0.0654008 0)
+(-1.97464 0.0639106 -8.56372e-20)
+(-2.00382 0.0623799 -4.23521e-20)
+(-2.03239 0.0608076 -4.17743e-20)
+(-2.06033 0.0591935 0)
+(-2.0876 0.057537 -4.04252e-20)
+(-2.11417 0.0558383 -4.009e-20)
+(-2.14002 0.0540976 0)
+(-2.16511 0.0523155 3.89972e-20)
+(-2.18941 0.0504926 -7.67239e-20)
+(-2.21288 0.0486304 0)
+(-2.23549 0.0467297 -3.7383e-20)
+(-2.25722 0.0447922 0)
+(-2.27802 0.042819 1.08782e-19)
+(-2.29787 0.040812 0)
+(-2.31674 0.0387726 -1.05579e-19)
+(-2.33458 0.0367027 -3.46981e-20)
+(-2.35138 0.0346036 3.40387e-20)
+(-2.3671 0.0324772 6.70031e-20)
+(-2.38172 0.0303249 -6.59198e-20)
+(-2.39519 0.0281485 0)
+(-2.4075 0.0259489 0)
+(-2.41862 0.0237269 0)
+(-2.42851 0.021482 1.84597e-19)
+(-2.43716 0.0192129 6.0391e-20)
+(-2.44456 0.0169186 -5.92008e-20)
+(-2.45068 0.0145983 0)
+(-2.45553 0.0122486 -5.6772e-20)
+(-2.45912 0.00986273 5.55195e-20)
+(-2.46149 0.00743857 5.4255e-20)
+(-2.46269 0.00500052 0)
+(-2.46283 0.00262112 0)
+(-2.46203 0.000388677 0)
+(-2.45985 -0.00172671 4.89156e-20)
+(-2.45628 -0.00379961 0)
+(-2.45127 -0.00584289 -9.23655e-20)
+(-2.4448 -0.00786483 -1.34113e-19)
+(-2.43687 -0.00986606 8.65503e-20)
+(-2.42747 -0.0118453 0)
+(-2.41658 -0.013801 4.04149e-20)
+(-2.40419 -0.0157306 0)
+(-2.39031 -0.0176328 7.42696e-20)
+(-2.37493 -0.0195053 -3.57245e-20)
+(-2.35804 -0.0213468 -3.41032e-20)
+(-2.33966 -0.0231552 0)
+(-2.31978 -0.0249295 -9.13714e-20)
+(-2.29839 -0.0266673 5.76233e-20)
+(-2.27552 -0.028368 2.67944e-20)
+(-2.25116 -0.0300292 0)
+(-2.22533 -0.0316503 2.31672e-20)
+(-2.19803 -0.0332291 6.45255e-20)
+(-2.16928 -0.0347645 0)
+(-2.13908 -0.0362549 3.56428e-20)
+(-2.10746 -0.0377003 3.1761e-20)
+(-2.07443 -0.0390997 2.78163e-20)
+(-2.04001 -0.0404526 0)
+(-2.00423 -0.0417563 0)
+(-1.96709 -0.0430099 0)
+(-1.92863 -0.0442105 -6.09903e-21)
+(-1.88886 -0.0453592 -3.16054e-21)
+(-1.84782 -0.0464547 0)
+(-1.80554 -0.0474991 1.57935e-21)
+(-1.76203 -0.0484911 6.03428e-21)
+(-1.71733 -0.0494329 0)
+(-1.67148 -0.0503234 1.60562e-20)
+(-1.62449 -0.0511596 3.95668e-20)
+(-1.57642 -0.051935 -2.54538e-20)
+(-1.52729 -0.0526571 -2.82989e-20)
+(-1.47715 -0.053329 0)
+(-1.42602 -0.0539485 0)
+(-1.37396 -0.0545117 0)
+(-1.32099 -0.0550215 -5.00579e-20)
+(-1.26717 -0.0554781 5.30649e-20)
+(-1.21253 -0.0558831 1.18559e-19)
+(-1.15713 -0.0562373 -6.55845e-20)
+(-1.10099 -0.0565422 6.87053e-20)
+(-1.04418 -0.0567991 7.62531e-20)
+(-0.986735 -0.057009 0)
+(-0.928692 -0.0571731 0)
+(-0.870098 -0.0572925 -9.04703e-20)
+(-0.810996 -0.0573687 0)
+(-0.75143 -0.0574032 0)
+(-0.691443 -0.0573977 2.17272e-19)
+(-0.631077 -0.057354 0)
+(-0.570373 -0.0572741 1.19149e-19)
+(-0.509372 -0.05716 -1.27427e-19)
+(-0.448115 -0.0570136 0)
+(-0.386641 -0.0568374 1.37143e-19)
+(-0.324986 -0.0566326 0)
+(-0.263188 -0.0564018 0)
+(-0.201283 -0.0561463 -1.58096e-19)
+(-0.139305 -0.0558667 3.26463e-19)
+(-0.0772874 -0.0555633 -1.70806e-19)
+(-0.0152628 -0.0552372 0)
+(0.0467504 -0.0548862 0)
+(0.108731 -0.0545077 1.79487e-19)
+(0.17067 -0.0540587 0)
+(0.232501 -0.0534104 1.83106e-19)
+(0.294134 -0.0525912 0)
+(0.355569 -0.0517463 0)
+(0.416832 -0.0509208 0)
+(0.477917 -0.05012 1.92276e-19)
+(0.53882 -0.0493383 0)
+(0.599528 -0.0485658 -1.95233e-19)
+(0.660021 -0.0477882 0)
+(0.720255 -0.0469846 0)
+(0.780158 -0.0461202 3.96236e-19)
+(0.839594 -0.0451365 -3.98496e-19)
+(0.898351 -0.0439196 0)
+(0.955918 -0.0422576 0)
+(1.01188 -0.0396151 0)
+(1.06331 -0.0350045 1.22743e-18)
+(1.11331 -0.0250519 0)
+(1.14002 -0.00102919 -8.52569e-19)
+(0.000355258 -0.0415877 -8.01855e-22)
+(-0.00161685 -0.0290636 1.08395e-18)
+(-0.0076326 -0.0103718 0)
+(-0.015581 0.00691766 -4.43484e-19)
+(-0.0250362 0.0225299 0)
+(-0.0356893 0.0363885 0)
+(-0.0475243 0.0483982 5.28156e-23)
+(-0.0606322 0.0585448 1.37467e-19)
+(-0.0750937 0.0669703 1.29389e-19)
+(-0.0909326 0.0739446 1.22403e-19)
+(-0.108113 0.0797909 0)
+(-0.126565 0.0848113 0)
+(-0.14621 0.0892536 -1.04476e-19)
+(-0.166975 0.0932939 -1.98811e-19)
+(-0.188805 0.0970516 1.89516e-19)
+(-0.211657 0.100598 0)
+(-0.235508 0.10398 1.73315e-19)
+(-0.260343 0.107222 -8.32394e-20)
+(-0.28616 0.110345 0)
+(-0.312959 0.113362 1.54168e-19)
+(-0.340754 0.116288 7.45933e-20)
+(-0.36956 0.119142 -1.4422e-19)
+(-0.399404 0.121946 -7.0152e-20)
+(-0.430313 0.124733 0)
+(-0.462326 0.127543 1.32991e-19)
+(-0.495476 0.130427 1.30273e-19)
+(-0.529785 0.133437 0)
+(-0.565221 0.136623 1.2659e-19)
+(-0.601667 0.140009 0)
+(-0.638889 0.1436 1.25219e-19)
+(-0.676492 0.147296 6.27447e-20)
+(-0.714004 0.150834 0)
+(-0.751113 0.153665 0)
+(-0.788441 0.154607 0)
+(-0.826113 0.154432 0)
+(-0.863642 0.155133 0)
+(-0.900275 0.15596 0)
+(-0.935935 0.156415 1.0652e-19)
+(-0.970724 0.156134 -1.54092e-19)
+(-1.00488 0.155015 0)
+(-1.03855 0.153327 0)
+(-1.07207 0.150892 0)
+(-1.10597 0.147772 -4.24595e-23)
+(-1.14026 0.145275 8.89299e-20)
+(-1.17428 0.143427 1.73955e-19)
+(-1.20766 0.141561 -1.70317e-19)
+(-1.24067 0.139704 -8.33891e-20)
+(-1.27341 0.137859 8.18743e-20)
+(-1.3059 0.136016 -1.29391e-22)
+(-1.33816 0.134165 7.87259e-20)
+(-1.3702 0.132302 0)
+(-1.40203 0.130426 7.59606e-20)
+(-1.43366 0.128537 -1.5037e-22)
+(-1.46508 0.126635 0)
+(-1.49629 0.124719 0)
+(-1.52729 0.122786 -7.10579e-20)
+(-1.55805 0.120832 0)
+(-1.58857 0.118854 0)
+(-1.61883 0.116847 6.76536e-20)
+(-1.64882 0.114807 1.33592e-19)
+(-1.67851 0.112729 -6.59658e-20)
+(-1.70788 0.11061 0)
+(-1.73692 0.108445 6.40658e-20)
+(-1.76561 0.106231 0)
+(-1.7939 0.103963 6.19493e-20)
+(-1.82179 0.10164 6.13744e-20)
+(-1.84924 0.0992597 -1.2073e-19)
+(-1.87622 0.0968191 -5.9376e-20)
+(-1.90271 0.0943174 0)
+(-1.92868 0.0917536 1.15738e-19)
+(-1.9541 0.0891272 0)
+(-1.97893 0.0864381 1.68907e-19)
+(-2.00314 0.0836866 1.10931e-19)
+(-2.02671 0.0808734 1.09358e-19)
+(-2.04959 0.0779997 -1.07793e-19)
+(-2.07177 0.0750667 1.59467e-19)
+(-2.0932 0.0720763 0)
+(-2.11385 0.0690305 0)
+(-2.13369 0.0659317 -1.01587e-19)
+(-2.15268 0.062782 -1.50146e-19)
+(-2.1708 0.0595842 0)
+(-2.18802 0.056341 4.85397e-20)
+(-2.20429 0.0530553 0)
+(-2.21959 0.0497297 -1.40731e-19)
+(-2.2339 0.0463675 -1.17586e-22)
+(-2.24717 0.0429715 1.03798e-22)
+(-2.25938 0.0395448 8.89692e-20)
+(-2.27051 0.0360904 0)
+(-2.28053 0.0326113 -8.56847e-20)
+(-2.28941 0.0291103 -4.56349e-23)
+(-2.29714 0.0255904 0)
+(-2.3037 0.0220564 0)
+(-2.30908 0.0185154 0)
+(-2.31328 0.0149772 7.71053e-20)
+(-2.31628 0.0114552 0)
+(-2.3181 0.00796856 0)
+(-2.31873 0.00454005 0)
+(-2.31814 0.00117922 0)
+(-2.31627 -0.00214422 0)
+(-2.31305 -0.00545162 6.5904e-20)
+(-2.30847 -0.00873362 0)
+(-2.3025 -0.0119866 6.17616e-20)
+(-2.29511 -0.0152085 5.97057e-20)
+(-2.28631 -0.0183963 -5.76209e-20)
+(-2.27608 -0.0215468 0)
+(-2.2644 -0.0246562 -5.33634e-20)
+(-2.25127 -0.0277213 0)
+(-2.23669 -0.0307387 -4.89875e-20)
+(-2.22066 -0.0337056 4.67549e-20)
+(-2.20316 -0.0366189 1.34046e-19)
+(-2.18421 -0.039476 0)
+(-2.1638 -0.0422741 1.20271e-19)
+(-2.14193 -0.0450108 3.81942e-20)
+(-2.11862 -0.0476833 0)
+(-2.09386 -0.0502895 6.62077e-20)
+(-2.06766 -0.0528269 6.1364e-20)
+(-2.04004 -0.0552932 -8.42998e-20)
+(-2.011 -0.0576859 0)
+(-1.98056 -0.0600033 -2.28226e-20)
+(-1.94873 -0.0622441 -2.02758e-20)
+(-1.91553 -0.0644073 -5.40185e-20)
+(-1.88098 -0.0664909 0)
+(-1.8451 -0.0684922 0)
+(-1.8079 -0.0704086 0)
+(-1.76941 -0.0722378 -8.18052e-21)
+(-1.72965 -0.0739789 0)
+(-1.68864 -0.0756316 0)
+(-1.64642 -0.0771968 -9.82133e-22)
+(-1.60301 -0.0786748 -3.73914e-21)
+(-1.55844 -0.0800666 0)
+(-1.51274 -0.0813711 0)
+(-1.46595 -0.0825847 -2.42476e-20)
+(-1.41809 -0.0837027 0)
+(-1.3692 -0.0847297 3.56042e-20)
+(-1.31932 -0.0856692 4.00928e-20)
+(-1.26848 -0.0865195 0)
+(-1.21673 -0.0872778 0)
+(-1.16409 -0.0879455 -5.73786e-20)
+(-1.11063 -0.0885241 -1.29766e-21)
+(-1.05636 -0.0890154 -1.3114e-21)
+(-1.00135 -0.0894211 0)
+(-0.945633 -0.0897432 -1.62841e-19)
+(-0.88925 -0.0899834 0)
+(-0.832246 -0.0901436 0)
+(-0.774662 -0.0902255 0)
+(-0.716542 -0.090231 1.0576e-19)
+(-0.657928 -0.0901624 0)
+(-0.598862 -0.0900222 -2.32522e-19)
+(-0.539388 -0.0898127 -1.23603e-19)
+(-0.479546 -0.0895371 0)
+(-0.419378 -0.0891978 -1.35511e-19)
+(-0.358924 -0.0887983 0)
+(-0.298223 -0.0883411 0)
+(-0.237313 -0.0878299 -4.57225e-19)
+(-0.176232 -0.0872671 3.15734e-19)
+(-0.115016 -0.0866552 0)
+(-0.053698 -0.0859971 3.39392e-19)
+(0.00769027 -0.0852975 -1.76204e-19)
+(0.0691187 -0.0845584 0)
+(0.130553 -0.0837803 0)
+(0.191962 -0.0829596 0)
+(0.253319 -0.0820993 -5.65849e-19)
+(0.314614 -0.0811984 0)
+(0.375836 -0.0802592 -1.95487e-19)
+(0.436949 -0.0792865 0)
+(0.49794 -0.0782972 0)
+(0.5588 -0.0773142 0)
+(0.619511 -0.0763415 0)
+(0.680061 -0.0753735 0)
+(0.740431 -0.0743986 0)
+(0.800598 -0.0733978 -4.26912e-19)
+(0.860518 -0.0723408 0)
+(0.92012 -0.0711764 -2.1914e-19)
+(0.979278 -0.0698167 6.61804e-19)
+(1.0378 -0.0680996 0)
+(1.09527 -0.0657211 0)
+(1.15138 -0.0620323 -4.53493e-19)
+(1.2042 -0.0557839 -4.60377e-19)
+(1.25673 -0.0439642 4.6579e-19)
+(1.29669 -0.01906 4.79938e-19)
+(-0.00460969 -0.0339957 -2.98678e-18)
+(-0.012332 -0.0123308 -1.30481e-18)
+(-0.0222831 0.00974419 -4.72983e-19)
+(-0.0338128 0.0291398 -1.68597e-19)
+(-0.046344 0.046496 0)
+(-0.0595458 0.0620562 2.44084e-19)
+(-0.0734584 0.0758828 -1.1157e-19)
+(-0.0882148 0.0880139 0)
+(-0.103937 0.0985532 -9.84672e-20)
+(-0.12071 0.107683 0)
+(-0.138579 0.115639 1.78486e-19)
+(-0.157547 0.122664 0)
+(-0.177595 0.128983 8.16944e-20)
+(-0.198689 0.134773 1.56665e-19)
+(-0.220795 0.140171 -1.50452e-19)
+(-0.243883 0.145271 0)
+(-0.267932 0.15014 -1.39437e-19)
+(-0.292921 0.154821 0)
+(-0.31884 0.159347 0)
+(-0.345675 0.16374 -1.25954e-19)
+(-0.373415 0.168019 0)
+(-0.402043 0.172202 1.69874e-22)
+(-0.431538 0.176306 0)
+(-0.461862 0.18035 0)
+(-0.492967 0.184347 -2.19751e-22)
+(-0.524774 0.188306 -1.06759e-19)
+(-0.557179 0.192217 -1.04128e-19)
+(-0.590031 0.196049 -1.02149e-19)
+(-0.62313 0.199724 0)
+(-0.656244 0.203119 -1.96496e-19)
+(-0.689139 0.206042 0)
+(-0.721659 0.208245 -9.48455e-20)
+(-0.753801 0.209455 0)
+(-0.785771 0.209506 0)
+(-0.817719 0.208766 8.84882e-20)
+(-0.849541 0.207926 0)
+(-0.881002 0.207021 -8.35483e-20)
+(-0.912008 0.205922 -2.1463e-23)
+(-0.94259 0.204493 1.58293e-19)
+(-0.97285 0.202681 -1.54234e-19)
+(-1.00287 0.200529 0)
+(-1.03273 0.197994 0)
+(-1.06261 0.195139 -7.17127e-20)
+(-1.09252 0.192354 0)
+(-1.1223 0.189746 -6.86728e-20)
+(-1.15188 0.187174 6.72761e-20)
+(-1.18132 0.18463 6.59574e-20)
+(-1.21064 0.182116 0)
+(-1.23983 0.179626 -6.35168e-20)
+(-1.2689 0.177153 -6.23794e-20)
+(-1.29784 0.174687 1.22479e-19)
+(-1.32666 0.172221 -6.02435e-20)
+(-1.35535 0.169749 -5.92373e-20)
+(-1.38391 0.167263 0)
+(-1.41232 0.16476 0)
+(-1.44057 0.162231 5.64286e-20)
+(-1.46865 0.159672 0)
+(-1.49655 0.157076 0)
+(-1.52425 0.154436 -1.07763e-19)
+(-1.55173 0.151747 -1.06161e-19)
+(-1.57896 0.149003 0)
+(-1.60594 0.146197 0)
+(-1.63263 0.143325 0)
+(-1.65901 0.140382 0)
+(-1.68506 0.137365 -9.8715e-20)
+(-1.71075 0.134269 9.71879e-20)
+(-1.73605 0.131091 9.59443e-20)
+(-1.76093 0.12783 1.89062e-19)
+(-1.78537 0.124484 0)
+(-1.80934 0.121051 -1.15935e-22)
+(-1.8328 0.117531 0)
+(-1.85572 0.113925 -8.93573e-20)
+(-1.87807 0.110232 -1.01978e-22)
+(-1.89983 0.106453 -8.68117e-20)
+(-1.92095 0.102591 8.55499e-20)
+(-1.9414 0.0986472 -8.53392e-23)
+(-1.96116 0.0946239 0)
+(-1.98019 0.0905239 8.17132e-20)
+(-1.99845 0.0863505 8.05329e-20)
+(-2.01592 0.082107 1.58496e-19)
+(-2.03256 0.0777972 0)
+(-2.04834 0.0734249 -7.67093e-20)
+(-2.06323 0.0689942 0)
+(-2.0772 0.0645096 1.4838e-19)
+(-2.09021 0.0599755 -7.29175e-20)
+(-2.10225 0.0553966 7.1619e-20)
+(-2.11328 0.0507779 -7.03086e-20)
+(-2.12327 0.0461244 -1.37973e-19)
+(-2.1322 0.0414414 6.76483e-20)
+(-2.14005 0.0367344 -6.62962e-20)
+(-2.1468 0.0320093 0)
+(-2.15242 0.0272734 1.27159e-19)
+(-2.15691 0.0225355 0)
+(-2.16024 0.0178057 1.21553e-19)
+(-2.16241 0.0130962 -1.18698e-19)
+(-2.16338 0.00842112 -1.15805e-19)
+(-2.16314 0.00379382 1.128e-19)
+(-2.16165 -0.000784443 1.09731e-19)
+(-2.15887 -0.00533011 0)
+(-2.15478 -0.00985367 5.18485e-20)
+(-2.14936 -0.0143497 0)
+(-2.14259 -0.0188118 0)
+(-2.13446 -0.0232342 9.38208e-20)
+(-2.12495 -0.0276112 0)
+(-2.11406 -0.0319377 0)
+(-2.10178 -0.0362083 8.37907e-20)
+(-2.0881 -0.0404184 0)
+(-2.07301 -0.044563 0)
+(-2.05651 -0.0486384 0)
+(-2.0386 -0.0526401 -1.39294e-19)
+(-2.01928 -0.0565646 0)
+(-1.99855 -0.0604076 -1.24832e-19)
+(-1.97641 -0.064166 -5.85184e-20)
+(-1.95286 -0.067836 -5.52623e-20)
+(-1.92792 -0.0714147 4.80899e-22)
+(-1.90159 -0.0748983 -4.72475e-20)
+(-1.87388 -0.078284 8.73518e-20)
+(-1.8448 -0.0815684 4.00861e-20)
+(-1.81436 -0.0847493 0)
+(-1.78257 -0.0878246 3.22949e-20)
+(-1.74946 -0.0907926 5.61299e-20)
+(-1.71503 -0.09365 0)
+(-1.67932 -0.0963941 0)
+(-1.64233 -0.0990207 0)
+(-1.60408 -0.101528 -6.30642e-22)
+(-1.56461 -0.103913 0)
+(-1.52392 -0.106177 0)
+(-1.48206 -0.108319 0)
+(-1.43905 -0.11034 0)
+(-1.39492 -0.112241 1.65779e-20)
+(-1.34969 -0.114021 0)
+(-1.3034 -0.115676 -3.32932e-20)
+(-1.25607 -0.117201 0)
+(-1.20775 -0.1186 -5.01143e-20)
+(-1.15846 -0.119876 -3.0015e-20)
+(-1.10825 -0.121027 6.70057e-20)
+(-1.05715 -0.122052 -7.54711e-20)
+(-1.0052 -0.122951 -4.12107e-20)
+(-0.952441 -0.123727 4.54434e-20)
+(-0.898912 -0.124381 -5.12261e-20)
+(-0.844657 -0.124916 0)
+(-0.789717 -0.125334 -5.81407e-20)
+(-0.734134 -0.125638 0)
+(-0.677949 -0.12583 0)
+(-0.621204 -0.125913 0)
+(-0.563941 -0.125889 -1.51613e-19)
+(-0.506201 -0.125761 0)
+(-0.448026 -0.125533 1.6093e-21)
+(-0.389457 -0.125209 0)
+(-0.330535 -0.124791 0)
+(-0.2713 -0.124284 -1.93292e-19)
+(-0.21179 -0.123693 0)
+(-0.152045 -0.12302 0)
+(-0.0921013 -0.122271 2.19482e-19)
+(-0.0319951 -0.121451 -1.61577e-21)
+(0.0282407 -0.120563 0)
+(0.0885716 -0.119612 -2.40143e-19)
+(0.148963 -0.118604 -2.44072e-19)
+(0.209384 -0.117541 0)
+(0.269808 -0.116427 0)
+(0.330204 -0.115268 2.5961e-19)
+(0.390549 -0.114067 1.48969e-21)
+(0.450829 -0.112829 0)
+(0.511043 -0.111558 2.73883e-19)
+(0.571183 -0.110254 0)
+(0.631238 -0.108929 0)
+(0.691188 -0.107603 0)
+(0.751014 -0.106281 -2.91628e-19)
+(0.810695 -0.104959 0)
+(0.870215 -0.103621 0)
+(0.929547 -0.102245 3.04769e-19)
+(0.988649 -0.10079 0)
+(1.04746 -0.0991886 0)
+(1.10586 -0.0973252 -6.2935e-19)
+(1.1637 -0.0949965 0)
+(1.22065 -0.091835 0)
+(1.27655 -0.0871298 3.25208e-19)
+(1.33012 -0.0796032 6.55378e-19)
+(1.38451 -0.0666703 -3.33817e-19)
+(1.43095 -0.0427956 0)
+(-0.00833447 -0.0146137 1.91074e-18)
+(-0.0196979 0.0138276 7.32025e-19)
+(-0.032389 0.0374443 3.9199e-19)
+(-0.0466251 0.0575913 2.80535e-19)
+(-0.061547 0.0756344 0)
+(-0.0767672 0.0920081 -4.05204e-19)
+(-0.0923626 0.106854 5.39735e-23)
+(-0.108484 0.120232 0)
+(-0.125264 0.132217 0)
+(-0.142804 0.142928 0)
+(-0.161178 0.152527 -1.49142e-19)
+(-0.180429 0.161196 0)
+(-0.200569 0.169114 0)
+(-0.221594 0.176435 0)
+(-0.243487 0.183288 0)
+(-0.266225 0.189769 0)
+(-0.289785 0.195949 1.19132e-19)
+(-0.314137 0.201874 1.15294e-19)
+(-0.339252 0.207577 0)
+(-0.365096 0.213075 0)
+(-0.391627 0.218378 -1.05185e-19)
+(-0.418793 0.223487 2.04456e-19)
+(-0.446532 0.228396 0)
+(-0.474763 0.233094 9.66313e-20)
+(-0.503392 0.237558 -9.41006e-20)
+(-0.532304 0.241756 0)
+(-0.561373 0.245641 2.67468e-19)
+(-0.590458 0.249153 -1.73716e-19)
+(-0.619418 0.252209 1.69373e-19)
+(-0.648129 0.254711 8.25797e-20)
+(-0.676504 0.256542 0)
+(-0.704529 0.257594 2.36257e-19)
+(-0.732264 0.257798 0)
+(-0.759823 0.257188 0)
+(-0.787297 0.255959 -7.32278e-20)
+(-0.814685 0.254385 1.43053e-19)
+(-0.84192 0.252582 2.09481e-19)
+(-0.868957 0.25056 -2.04631e-19)
+(-0.895801 0.248304 -6.66661e-20)
+(-0.922492 0.245815 1.30333e-19)
+(-0.949075 0.243117 0)
+(-0.975606 0.240225 0)
+(-1.00215 0.237192 -6.45717e-24)
+(-1.02871 0.234134 0)
+(-1.05525 0.231107 -1.16959e-19)
+(-1.08174 0.228097 -1.14656e-19)
+(-1.10817 0.225104 -1.12464e-19)
+(-1.13456 0.222131 0)
+(-1.1609 0.219177 1.08382e-19)
+(-1.18717 0.216236 0)
+(-1.21339 0.2133 -2.09297e-19)
+(-1.23954 0.210361 0)
+(-1.2656 0.207411 1.01205e-19)
+(-1.29158 0.204441 0)
+(-1.31746 0.201443 -9.80061e-20)
+(-1.34322 0.198408 0)
+(-1.36886 0.195327 0)
+(-1.39435 0.192193 0)
+(-1.41967 0.188997 0)
+(-1.44482 0.185732 0)
+(-1.46976 0.182392 0)
+(-1.49447 0.178969 0)
+(-1.51893 0.175457 -8.69951e-20)
+(-1.54312 0.17185 0)
+(-1.56701 0.168145 0)
+(-1.59057 0.164337 -8.34191e-20)
+(-1.61378 0.160422 0)
+(-1.63661 0.156398 -8.11123e-20)
+(-1.65903 0.152264 -7.99531e-20)
+(-1.681 0.148018 -7.88681e-20)
+(-1.7025 0.14366 0)
+(-1.7235 0.139189 0)
+(-1.74397 0.134607 -7.55868e-20)
+(-1.76387 0.129916 1.48983e-19)
+(-1.78317 0.125117 0)
+(-1.80184 0.120213 -2.17077e-19)
+(-1.81985 0.115207 0)
+(-1.83717 0.110103 -7.02308e-20)
+(-1.85375 0.104904 0)
+(-1.86959 0.0996165 -6.80917e-20)
+(-1.88463 0.0942438 -1.34051e-19)
+(-1.89885 0.0887915 6.59377e-20)
+(-1.91222 0.083265 0)
+(-1.92471 0.0776701 -6.37587e-20)
+(-1.93629 0.0720128 1.25365e-19)
+(-1.94693 0.0662995 0)
+(-1.9566 0.0605367 0)
+(-1.96529 0.0547314 1.1858e-19)
+(-1.97296 0.0488908 0)
+(-1.97958 0.0430224 -1.14066e-19)
+(-1.98515 0.0371342 0)
+(-1.98963 0.031235 -1.09248e-19)
+(-1.99301 0.0253345 0)
+(-1.99526 0.019443 -2.08942e-19)
+(-1.99637 0.013571 1.01934e-19)
+(-1.9963 0.00772876 1.98978e-19)
+(-1.99504 0.00192397 -9.67796e-20)
+(-1.99256 -0.0038429 -9.41121e-20)
+(-1.98882 -0.00957844 0)
+(-1.98381 -0.0152853 1.94516e-22)
+(-1.97751 -0.0209581 0)
+(-1.96992 -0.0265893 8.33373e-20)
+(-1.96102 -0.0321716 -8.02926e-20)
+(-1.95079 -0.0376977 0)
+(-1.93924 -0.0431605 0)
+(-1.92634 -0.0485535 -7.16023e-20)
+(-1.9121 -0.0538704 6.89034e-20)
+(-1.8965 -0.0591055 0)
+(-1.87955 -0.0642532 0)
+(-1.86124 -0.0693083 5.95536e-20)
+(-1.84158 -0.0742658 0)
+(-1.82055 -0.0791208 5.33389e-20)
+(-1.79817 -0.0838689 0)
+(-1.77445 -0.0885056 4.70042e-20)
+(-1.74938 -0.0930266 -4.3794e-20)
+(-1.72297 -0.0974278 8.18108e-20)
+(-1.69523 -0.101705 -3.72927e-20)
+(-1.66617 -0.105855 -3.40037e-20)
+(-1.63581 -0.109874 0)
+(-1.60415 -0.11376 -2.7355e-20)
+(-1.57121 -0.11751 -2.39978e-20)
+(-1.53702 -0.12112 0)
+(-1.50157 -0.124586 0)
+(-1.46491 -0.127904 -2.84474e-20)
+(-1.42703 -0.131072 1.03789e-20)
+(-1.38797 -0.134086 -1.47239e-20)
+(-1.34775 -0.136945 0)
+(-1.30639 -0.139649 0)
+(-1.26392 -0.142201 0)
+(-1.22038 -0.144599 -2.69477e-20)
+(-1.17578 -0.146843 0)
+(-1.13016 -0.14893 2.7921e-20)
+(-1.08355 -0.150856 0)
+(-1.03597 -0.15262 4.19477e-20)
+(-0.987469 -0.154228 0)
+(-0.938076 -0.155676 -5.59786e-20)
+(-0.887828 -0.156965 6.29885e-20)
+(-0.836763 -0.158094 6.99905e-20)
+(-0.78492 -0.159067 -7.69814e-20)
+(-0.732339 -0.159885 0)
+(-0.679059 -0.160552 0)
+(-0.625122 -0.161071 1.00815e-21)
+(-0.570567 -0.161444 0)
+(-0.515436 -0.161674 0)
+(-0.459767 -0.161765 0)
+(-0.403602 -0.16172 1.2534e-19)
+(-0.34698 -0.161543 0)
+(-0.289943 -0.161239 1.38884e-19)
+(-0.232529 -0.160812 0)
+(-0.174779 -0.160266 1.51241e-19)
+(-0.116731 -0.159607 1.58888e-19)
+(-0.0584221 -0.15884 -1.64441e-19)
+(0.000110076 -0.15797 0)
+(0.0588303 -0.157004 1.7604e-19)
+(0.117702 -0.155948 -1.82043e-19)
+(0.176691 -0.154806 0)
+(0.235765 -0.153586 -1.90646e-19)
+(0.294892 -0.15229 3.91456e-19)
+(0.354044 -0.150925 0)
+(0.413195 -0.149497 4.08094e-19)
+(0.47232 -0.148015 -2.09181e-19)
+(0.531398 -0.146483 2.1325e-19)
+(0.590415 -0.14491 0)
+(0.649369 -0.143297 -2.21079e-19)
+(0.708259 -0.141646 0)
+(0.767077 -0.139971 0)
+(0.825808 -0.138288 0)
+(0.884432 -0.136603 2.35613e-19)
+(0.942932 -0.134913 0)
+(1.00129 -0.133201 0)
+(1.05948 -0.131439 0)
+(1.11747 -0.129578 0)
+(1.17519 -0.127537 0)
+(1.23257 -0.125181 2.53943e-19)
+(1.28947 -0.122276 0)
+(1.34567 -0.118424 5.17031e-19)
+(1.40115 -0.112912 0)
+(1.45502 -0.104552 -5.2966e-19)
+(1.51061 -0.0912818 -5.35114e-19)
+(1.56022 -0.0690774 0)
+(-0.01076 0.0125278 0)
+(-0.0243749 0.0463664 -6.27102e-19)
+(-0.0389484 0.0705111 0)
+(-0.0551113 0.0906109 0)
+(-0.0717602 0.10865 0)
+(-0.0884472 0.125206 4.64081e-23)
+(-0.105255 0.140467 2.99324e-23)
+(-0.122334 0.154501 -1.50515e-19)
+(-0.139812 0.167357 0)
+(-0.15779 0.179107 0)
+(-0.176351 0.189856 0)
+(-0.195547 0.199727 0)
+(-0.21541 0.20885 0)
+(-0.235946 0.217346 -2.33183e-19)
+(-0.257148 0.22532 0)
+(-0.278995 0.232853 2.18028e-19)
+(-0.301459 0.240006 -1.05574e-19)
+(-0.324503 0.246817 -1.02341e-19)
+(-0.348085 0.253309 0)
+(-0.372154 0.259488 0)
+(-0.396652 0.26535 9.36516e-20)
+(-0.421512 0.27088 -9.10231e-20)
+(-0.446658 0.276056 0)
+(-0.472005 0.280845 -8.60601e-20)
+(-0.497464 0.285212 1.67449e-19)
+(-0.52294 0.289115 0)
+(-0.548338 0.292507 -1.5838e-19)
+(-0.573575 0.295341 1.54089e-19)
+(-0.598577 0.297568 -1.49961e-19)
+(-0.623301 0.299143 0)
+(-0.647731 0.300026 0)
+(-0.671897 0.300198 -1.387e-19)
+(-0.695859 0.299674 0)
+(-0.719692 0.29852 0)
+(-0.743457 0.296856 1.29263e-19)
+(-0.767175 0.29482 -2.52464e-19)
+(-0.790837 0.292507 -1.23378e-19)
+(-0.814433 0.289964 2.41465e-19)
+(-0.837969 0.287214 -1.18151e-19)
+(-0.861461 0.284276 0)
+(-0.884934 0.281178 0)
+(-0.908421 0.277948 0)
+(-0.931951 0.274628 1.08538e-19)
+(-0.955533 0.271276 0)
+(-0.97915 0.267927 1.04275e-19)
+(-1.00278 0.264589 1.02287e-19)
+(-1.02643 0.261262 1.00392e-19)
+(-1.05007 0.257948 9.86548e-20)
+(-1.0737 0.254642 -9.68576e-20)
+(-1.09733 0.251339 0)
+(-1.12093 0.248033 9.36161e-20)
+(-1.14449 0.244713 0)
+(-1.16802 0.241371 3.98529e-23)
+(-1.19148 0.237996 0)
+(-1.21488 0.234578 1.75686e-19)
+(-1.23819 0.231108 0)
+(-1.2614 0.227575 -8.52363e-20)
+(-1.28448 0.22397 0)
+(-1.30743 0.220284 0)
+(-1.33023 0.216507 -1.63167e-19)
+(-1.35284 0.212632 0)
+(-1.37525 0.208652 0)
+(-1.39743 0.204558 7.81851e-20)
+(-1.41936 0.200346 0)
+(-1.44102 0.19601 0)
+(-1.46237 0.191546 -1.50063e-19)
+(-1.48339 0.186949 0)
+(-1.50406 0.182218 1.46013e-19)
+(-1.52433 0.17735 7.19934e-20)
+(-1.54419 0.172344 0)
+(-1.5636 0.167201 -1.40131e-19)
+(-1.58253 0.16192 0)
+(-1.60095 0.156503 1.36299e-19)
+(-1.61884 0.150951 -2.68741e-19)
+(-1.63615 0.145269 0)
+(-1.65286 0.139458 1.30554e-19)
+(-1.66894 0.133523 0)
+(-1.68436 0.127469 0)
+(-1.69908 0.1213 1.24959e-19)
+(-1.71307 0.115022 0)
+(-1.72631 0.108642 1.2107e-19)
+(-1.73877 0.102164 -1.19242e-19)
+(-1.75041 0.0955971 0)
+(-1.7612 0.0889474 0)
+(-1.77113 0.0822224 -1.133e-19)
+(-1.78015 0.07543 1.11425e-19)
+(-1.78826 0.0685783 1.09423e-19)
+(-1.79541 0.0616758 1.07398e-19)
+(-1.80158 0.0547312 0)
+(-1.80676 0.0477535 1.03143e-19)
+(-1.81091 0.0407521 1.01171e-19)
+(-1.81402 0.0337366 0)
+(-1.81607 0.0267174 0)
+(-1.81703 0.0197046 9.45405e-20)
+(-1.81688 0.0127079 0)
+(-1.8156 0.00573632 -9.00009e-20)
+(-1.81315 -0.001204 0)
+(-1.80953 -0.00811037 8.53677e-20)
+(-1.8047 -0.014983 0)
+(-1.79866 -0.0218199 1.8168e-22)
+(-1.79139 -0.0286146 0)
+(-1.78287 -0.0353591 -7.52386e-20)
+(-1.77311 -0.0420447 0)
+(-1.76208 -0.048663 0)
+(-1.74978 -0.0552055 0)
+(-1.73619 -0.0616647 0)
+(-1.72132 -0.0680329 -6.21206e-20)
+(-1.70517 -0.0743033 0)
+(-1.68771 -0.080469 0)
+(-1.66896 -0.0865239 -1.08269e-19)
+(-1.64892 -0.0924616 0)
+(-1.62758 -0.0982767 0)
+(-1.60495 -0.103963 0)
+(-1.58102 -0.109516 -8.56412e-20)
+(-1.55582 -0.11493 0)
+(-1.52934 -0.120201 -7.35077e-20)
+(-1.50159 -0.125323 0)
+(-1.47258 -0.130292 6.22544e-20)
+(-1.44233 -0.135104 -5.63051e-20)
+(-1.41084 -0.139757 0)
+(-1.37813 -0.144246 4.42998e-20)
+(-1.34422 -0.148567 0)
+(-1.30912 -0.152715 0)
+(-1.27285 -0.156685 5.15223e-20)
+(-1.23543 -0.160475 -1.99322e-20)
+(-1.19687 -0.164081 1.31633e-20)
+(-1.15721 -0.1675 0)
+(-1.11646 -0.170733 0)
+(-1.07466 -0.173781 0)
+(-1.03182 -0.176644 2.25752e-20)
+(-0.987987 -0.179323 0)
+(-0.943175 -0.181814 -2.33784e-20)
+(-0.897413 -0.184111 0)
+(-0.850735 -0.186215 0)
+(-0.803173 -0.188129 0)
+(-0.754762 -0.189851 0)
+(-0.705537 -0.19138 -5.43594e-20)
+(-0.655533 -0.192718 0)
+(-0.604789 -0.193868 6.66638e-20)
+(-0.553342 -0.194832 -7.27852e-20)
+(-0.50123 -0.195614 -7.88822e-20)
+(-0.448493 -0.196216 8.56675e-20)
+(-0.395169 -0.196643 0)
+(-0.341296 -0.196897 0)
+(-0.286914 -0.196984 0)
+(-0.232061 -0.196906 0)
+(-0.176775 -0.19667 0)
+(-0.121096 -0.19628 0)
+(-0.0650615 -0.195741 0)
+(-0.00870912 -0.19506 -1.32772e-19)
+(0.0479245 -0.194243 0)
+(0.104802 -0.193296 1.42569e-19)
+(0.161888 -0.192225 0)
+(0.219146 -0.191039 -4.53529e-19)
+(0.276544 -0.189743 0)
+(0.334048 -0.188344 3.19142e-19)
+(0.391627 -0.186848 1.64399e-19)
+(0.449253 -0.185264 -1.68421e-19)
+(0.5069 -0.183597 0)
+(0.564543 -0.181857 -3.52246e-19)
+(0.622161 -0.180052 0)
+(0.679737 -0.178193 -3.65469e-19)
+(0.737258 -0.176289 0)
+(0.794718 -0.174346 0)
+(0.852116 -0.172364 0)
+(0.909449 -0.170357 0)
+(0.966707 -0.168336 0)
+(1.02388 -0.166309 4.0441e-19)
+(1.08094 -0.164271 4.10205e-19)
+(1.13788 -0.162205 0)
+(1.19468 -0.160079 0)
+(1.25132 -0.157838 0)
+(1.30773 -0.155391 0)
+(1.36387 -0.152587 -4.36049e-19)
+(1.41964 -0.149181 0)
+(1.47489 -0.144767 -8.91406e-19)
+(1.52972 -0.138672 4.49606e-19)
+(1.58352 -0.129845 4.54117e-19)
+(1.63968 -0.116711 4.60963e-19)
+(1.69067 -0.0962729 4.64089e-19)
+(-0.0119796 0.0444996 0)
+(-0.0269891 0.0829497 5.56938e-19)
+(-0.0428023 0.107109 0)
+(-0.0601781 0.126711 4.41311e-19)
+(-0.0779003 0.144301 3.61989e-19)
+(-0.0954824 0.160583 -1.58836e-19)
+(-0.112995 0.175789 -1.44882e-19)
+(-0.130571 0.189991 -1.35218e-19)
+(-0.148323 0.20322 -2.55939e-19)
+(-0.166344 0.215512 0)
+(-0.184709 0.226925 0)
+(-0.203473 0.237532 2.25903e-19)
+(-0.222669 0.247417 0)
+(-0.24231 0.256663 4.21618e-19)
+(-0.26239 0.265346 0)
+(-0.282891 0.273524 -1.97677e-19)
+(-0.303783 0.28124 0)
+(-0.325028 0.288521 0)
+(-0.346578 0.295376 1.8068e-19)
+(-0.368382 0.301803 0)
+(-0.390381 0.307788 1.70615e-19)
+(-0.412513 0.313309 0)
+(-0.434713 0.318336 0)
+(-0.456914 0.32284 0)
+(-0.479052 0.326786 1.54873e-22)
+(-0.501069 0.330144 0)
+(-0.522914 0.332883 0)
+(-0.544548 0.334983 0)
+(-0.565948 0.336427 0)
+(-0.587111 0.337212 0)
+(-0.608052 0.337345 0)
+(-0.628809 0.336848 -1.26843e-19)
+(-0.64943 0.335766 0)
+(-0.669968 0.334166 1.2085e-19)
+(-0.690467 0.332131 2.18405e-22)
+(-0.71095 0.329751 1.15249e-19)
+(-0.731431 0.327096 0)
+(-0.751915 0.32422 -1.10381e-19)
+(-0.77241 0.321157 1.08087e-19)
+(-0.792931 0.317937 0)
+(-0.813491 0.314586 0)
+(-0.834108 0.311134 0)
+(-0.854796 0.307611 0)
+(-0.875557 0.304052 0)
+(-0.896385 0.300479 0)
+(-0.917267 0.296905 -9.4231e-20)
+(-0.93819 0.293332 9.25467e-20)
+(-0.959146 0.289759 -9.08432e-20)
+(-0.980125 0.286182 1.7877e-19)
+(-1.00112 0.282595 0)
+(-1.02211 0.27899 -1.72945e-19)
+(-1.04309 0.275357 1.70198e-19)
+(-1.06405 0.271687 8.38464e-20)
+(-1.08497 0.267968 0)
+(-1.10583 0.264189 -8.11987e-20)
+(-1.12663 0.26034 0)
+(-1.14734 0.256408 7.88505e-20)
+(-1.16795 0.252383 0)
+(-1.18843 0.248256 0)
+(-1.20877 0.244016 1.5115e-19)
+(-1.22894 0.239654 0)
+(-1.24892 0.235163 -1.47162e-19)
+(-1.26869 0.230534 0)
+(-1.28822 0.225761 0)
+(-1.30749 0.220839 0)
+(-1.32647 0.215762 2.78842e-19)
+(-1.34513 0.210527 1.37636e-19)
+(-1.36344 0.205132 -1.35714e-19)
+(-1.38139 0.199574 -1.34034e-19)
+(-1.39893 0.193853 0)
+(-1.41604 0.187969 1.30395e-19)
+(-1.43269 0.181922 0)
+(-1.44885 0.175715 -1.2692e-19)
+(-1.46449 0.16935 -1.1988e-22)
+(-1.47959 0.162831 0)
+(-1.4941 0.156161 0)
+(-1.50801 0.149345 -1.2016e-19)
+(-1.52128 0.14239 0)
+(-1.53389 0.1353 -1.1658e-19)
+(-1.5458 0.128083 0)
+(-1.55698 0.120746 1.13228e-19)
+(-1.56742 0.113296 1.11333e-19)
+(-1.57707 0.105742 0)
+(-1.58592 0.098091 0)
+(-1.59393 0.0903528 0)
+(-1.60109 0.0825362 -1.04123e-19)
+(-1.60736 0.0746508 -1.0227e-19)
+(-1.61272 0.0667063 -1.00393e-19)
+(-1.61716 0.0587127 0)
+(-1.62063 0.0506803 0)
+(-1.62313 0.0426193 -9.46096e-20)
+(-1.62464 0.0345403 -9.27801e-20)
+(-1.62512 0.026454 0)
+(-1.62457 0.0183708 0)
+(-1.62295 0.0103008 0)
+(-1.62025 0.00225246 1.68904e-19)
+(-1.61644 -0.00576703 0)
+(-1.61151 -0.0137526 -7.97941e-20)
+(-1.60544 -0.0217005 0)
+(-1.59821 -0.0296054 7.55258e-20)
+(-1.58982 -0.0374597 0)
+(-1.58025 -0.0452546 -1.4128e-19)
+(-1.5695 -0.0529805 -1.3648e-19)
+(-1.55754 -0.0606277 1.31623e-19)
+(-1.54439 -0.0681872 0)
+(-1.53002 -0.0756498 0)
+(-1.51443 -0.0830071 -1.16724e-19)
+(-1.49763 -0.0902511 0)
+(-1.4796 -0.0973739 -1.06525e-19)
+(-1.46034 -0.104368 -3.81962e-22)
+(-1.43986 -0.111227 9.61244e-20)
+(-1.41816 -0.117943 0)
+(-1.39524 -0.124511 0)
+(-1.37109 -0.130923 7.97718e-20)
+(-1.34574 -0.137175 0)
+(-1.31918 -0.14326 0)
+(-1.29142 -0.149173 6.3847e-20)
+(-1.26247 -0.154909 -5.79094e-20)
+(-1.23235 -0.160464 1.0514e-19)
+(-1.20106 -0.165834 0)
+(-1.16862 -0.171013 -4.11615e-20)
+(-1.13504 -0.175998 0)
+(-1.10033 -0.180781 0)
+(-1.06452 -0.18536 -4.88262e-20)
+(-1.02762 -0.189729 1.84895e-20)
+(-0.989657 -0.193885 0)
+(-0.950644 -0.197826 0)
+(-0.910606 -0.201549 0)
+(-0.86957 -0.205056 0)
+(-0.827563 -0.208348 -1.0146e-20)
+(-0.784608 -0.211427 1.53921e-20)
+(-0.740733 -0.214288 2.16155e-20)
+(-0.695962 -0.216926 0)
+(-0.650327 -0.21934 0)
+(-0.603857 -0.221532 0)
+(-0.556586 -0.2235 4.39418e-20)
+(-0.508548 -0.225245 9.97356e-20)
+(-0.459777 -0.226768 0)
+(-0.410308 -0.228073 -1.83161e-19)
+(-0.360178 -0.229162 6.70031e-20)
+(-0.309422 -0.230039 7.25732e-20)
+(-0.258078 -0.230707 0)
+(-0.206182 -0.23117 -1.66155e-19)
+(-0.15377 -0.231434 0)
+(-0.100881 -0.231501 0)
+(-0.0475493 -0.231378 0)
+(0.00618677 -0.23107 0)
+(0.0602913 -0.230584 -2.18524e-19)
+(0.114727 -0.229925 0)
+(0.169459 -0.229101 0)
+(0.22445 -0.228119 0)
+(0.279666 -0.226985 0)
+(0.335073 -0.225708 0)
+(0.390637 -0.224295 1.04909e-21)
+(0.446327 -0.222755 2.78197e-19)
+(0.502113 -0.221096 -2.86933e-19)
+(0.557966 -0.219325 2.93399e-19)
+(0.613859 -0.217453 0)
+(0.669769 -0.215487 -3.07781e-19)
+(0.725674 -0.213439 0)
+(0.781555 -0.211318 3.21349e-19)
+(0.837398 -0.209139 3.28804e-19)
+(0.893191 -0.206912 0)
+(0.948926 -0.204646 0)
+(1.0046 -0.202345 3.4615e-19)
+(1.06022 -0.200018 3.51894e-19)
+(1.11578 -0.197676 3.57452e-19)
+(1.17126 -0.195324 -9.08731e-22)
+(1.22665 -0.192957 -3.68893e-19)
+(1.28196 -0.190559 0)
+(1.33715 -0.188092 0)
+(1.39221 -0.185499 0)
+(1.44711 -0.182681 3.86747e-19)
+(1.5018 -0.179482 3.91825e-19)
+(1.55624 -0.17565 0)
+(1.61034 -0.170793 7.98714e-19)
+(1.6643 -0.164298 -9.14676e-22)
+(1.71767 -0.155263 -9.92051e-22)
+(1.77388 -0.142508 -4.10911e-19)
+(1.82514 -0.123754 -8.28897e-19)
+(-0.0124402 0.079163 2.6834e-18)
+(-0.0281277 0.121706 0)
+(-0.0445773 0.145641 0)
+(-0.062525 0.164502 -8.14892e-19)
+(-0.0807185 0.181353 -3.33892e-19)
+(-0.0986502 0.197031 -3.34589e-23)
+(-0.116368 0.211812 2.66479e-19)
+(-0.13398 0.225778 -6.08595e-23)
+(-0.151579 0.23895 2.35031e-19)
+(-0.16924 0.251339 0)
+(-0.187028 0.262963 0)
+(-0.204992 0.273856 -2.07731e-19)
+(-0.223164 0.284062 0)
+(-0.241555 0.293629 -1.94289e-19)
+(-0.260164 0.302601 0)
+(-0.278974 0.311015 0)
+(-0.297961 0.318896 0)
+(-0.317089 0.326257 0)
+(-0.336319 0.3331 -1.67239e-19)
+(-0.355606 0.339416 0)
+(-0.374904 0.34519 -1.58072e-19)
+(-0.394168 0.350399 0)
+(-0.413352 0.355019 0)
+(-0.432416 0.359029 -1.45728e-19)
+(-0.451324 0.362407 -1.41645e-19)
+(-0.470049 0.365139 -1.38093e-19)
+(-0.488572 0.367214 -1.34468e-19)
+(-0.506888 0.368636 0)
+(-0.524999 0.369411 -1.27611e-19)
+(-0.542922 0.369561 -1.24387e-19)
+(-0.560684 0.369115 -1.21303e-19)
+(-0.57832 0.368114 1.18075e-19)
+(-0.59587 0.36661 0)
+(-0.613374 0.364663 -1.12647e-19)
+(-0.630864 0.362341 2.20887e-22)
+(-0.648364 0.359708 1.07945e-19)
+(-0.665891 0.356822 1.0564e-19)
+(-0.683458 0.353729 0)
+(-0.701074 0.350466 -1.01328e-19)
+(-0.718752 0.347065 0)
+(-0.736501 0.343552 0)
+(-0.754331 0.339952 1.90977e-19)
+(-0.772248 0.336289 1.87384e-19)
+(-0.790251 0.332585 0)
+(-0.808334 0.328857 0)
+(-0.826487 0.325113 2.66053e-19)
+(-0.844698 0.321355 -2.6147e-19)
+(-0.862957 0.317583 0)
+(-0.881251 0.313791 1.96712e-22)
+(-0.899569 0.309975 0)
+(-0.917898 0.306123 1.63142e-19)
+(-0.936226 0.302228 -1.60643e-19)
+(-0.954537 0.298277 -1.58234e-19)
+(-0.972817 0.294258 0)
+(-0.99105 0.290161 0)
+(-1.00922 0.285972 0)
+(-1.02731 0.281681 1.49534e-19)
+(-1.04529 0.277274 0)
+(-1.06316 0.272742 -1.45487e-19)
+(-1.08088 0.268074 0)
+(-1.09844 0.26326 0)
+(-1.11581 0.258292 1.39645e-19)
+(-1.13297 0.253162 0)
+(-1.1499 0.247862 0)
+(-1.16656 0.242387 0)
+(-1.18294 0.236732 -2.65365e-19)
+(-1.19901 0.230894 -1.30918e-19)
+(-1.21475 0.22487 0)
+(-1.23011 0.218659 -1.55953e-22)
+(-1.24509 0.212259 0)
+(-1.25964 0.205671 -1.24512e-19)
+(-1.27375 0.198898 1.22903e-19)
+(-1.28738 0.191941 -1.21302e-19)
+(-1.30051 0.184804 1.19545e-19)
+(-1.3131 0.17749 0)
+(-1.32514 0.170006 -1.16511e-19)
+(-1.3366 0.162356 -1.61036e-22)
+(-1.34744 0.154546 0)
+(-1.35764 0.146585 0)
+(-1.36717 0.13848 -1.1006e-19)
+(-1.37601 0.130239 -1.08259e-19)
+(-1.38413 0.12187 -1.06767e-19)
+(-1.39151 0.113383 -1.05096e-19)
+(-1.39813 0.104787 1.03407e-19)
+(-1.40394 0.0960935 0)
+(-1.40895 0.0873113 0)
+(-1.41311 0.0784517 0)
+(-1.41641 0.0695254 0)
+(-1.41883 0.0605437 1.8925e-19)
+(-1.42035 0.0515177 0)
+(-1.42094 0.0424587 0)
+(-1.42058 0.0333779 2.66964e-19)
+(-1.41926 0.0242867 0)
+(-1.41696 0.015196 -1.70337e-19)
+(-1.41366 0.00611632 0)
+(-1.40933 -0.00294311 -1.61727e-19)
+(-1.40396 -0.0119738 0)
+(-1.39754 -0.0209685 -1.53407e-19)
+(-1.39004 -0.0299206 0)
+(-1.38147 -0.0388224 -1.44247e-19)
+(-1.3718 -0.0476653 0)
+(-1.36102 -0.0564391 1.3518e-19)
+(-1.34914 -0.0651338 2.6144e-19)
+(-1.33613 -0.0737387 -1.25897e-19)
+(-1.322 -0.0822438 0)
+(-1.30674 -0.0906391 1.16713e-19)
+(-1.29034 -0.0989154 1.11579e-19)
+(-1.2728 -0.107063 0)
+(-1.25411 -0.115074 1.01784e-19)
+(-1.23428 -0.12294 9.68148e-20)
+(-1.21331 -0.130652 -9.18006e-20)
+(-1.19119 -0.138204 8.7058e-20)
+(-1.16794 -0.145587 -8.19602e-20)
+(-1.14355 -0.152795 -7.68229e-20)
+(-1.11802 -0.159822 0)
+(-1.09137 -0.166659 0)
+(-1.0636 -0.173303 3.25282e-22)
+(-1.03473 -0.179748 0)
+(-1.00475 -0.185988 -5.02903e-20)
+(-0.973687 -0.192019 -4.5294e-20)
+(-0.941549 -0.197834 0)
+(-0.908348 -0.203429 0)
+(-0.8741 -0.208798 -2.91843e-20)
+(-0.838819 -0.213935 2.34347e-20)
+(-0.802522 -0.218836 0)
+(-0.765228 -0.223496 0)
+(-0.726958 -0.227912 0)
+(-0.687732 -0.232082 -2.07017e-21)
+(-0.647576 -0.236008 3.36618e-21)
+(-0.606512 -0.23969 0)
+(-0.564565 -0.243131 -1.45981e-20)
+(-0.521761 -0.246326 0)
+(-0.478122 -0.249269 0)
+(-0.433678 -0.251961 0)
+(-0.388456 -0.2544 0)
+(-0.342488 -0.256585 -4.15804e-20)
+(-0.295806 -0.258518 -4.69211e-20)
+(-0.248442 -0.260201 -1.03682e-19)
+(-0.20043 -0.261636 1.15048e-19)
+(-0.151802 -0.262828 1.24758e-19)
+(-0.102594 -0.263779 1.35198e-19)
+(-0.0528387 -0.264494 0)
+(-0.00257181 -0.264978 3.12158e-19)
+(0.0481729 -0.265234 0)
+(0.0993605 -0.265269 0)
+(0.150956 -0.265088 0)
+(0.202925 -0.264698 0)
+(0.255232 -0.264106 2.01771e-19)
+(0.307843 -0.263318 0)
+(0.360725 -0.262343 0)
+(0.413843 -0.261189 -2.25764e-19)
+(0.467165 -0.259863 0)
+(0.520661 -0.258375 0)
+(0.574297 -0.256734 8.02129e-22)
+(0.628047 -0.25495 -5.13183e-19)
+(0.681881 -0.253031 -2.63324e-19)
+(0.735773 -0.250988 -2.71052e-19)
+(0.7897 -0.248831 2.77018e-19)
+(0.843641 -0.246571 5.67933e-19)
+(0.897575 -0.244221 -2.89953e-19)
+(0.951489 -0.241793 -7.58182e-22)
+(1.00537 -0.239301 0)
+(1.0592 -0.236761 0)
+(1.11298 -0.234181 0)
+(1.16671 -0.23157 -3.19755e-19)
+(1.22039 -0.228934 -3.25025e-19)
+(1.27402 -0.226284 -3.30117e-19)
+(1.32759 -0.223622 -7.02617e-22)
+(1.3811 -0.220945 0)
+(1.43455 -0.218234 0)
+(1.48792 -0.215451 0)
+(1.5412 -0.212535 0)
+(1.59438 -0.209384 -3.56832e-19)
+(1.64743 -0.205839 0)
+(1.70035 -0.201656 0)
+(1.75311 -0.196462 -3.67806e-19)
+(1.80597 -0.189714 -3.71214e-19)
+(1.85855 -0.180652 -3.74489e-19)
+(1.91432 -0.168396 3.78235e-19)
+(1.96512 -0.151195 3.80228e-19)
+(-0.0123688 0.114768 -2.41852e-18)
+(-0.028163 0.161144 -9.41795e-19)
+(-0.0447268 0.184765 0)
+(-0.0626981 0.202758 3.83022e-19)
+(-0.0808383 0.218685 0)
+(-0.098632 0.233519 -9.40741e-23)
+(-0.116102 0.247586 2.49549e-19)
+(-0.133329 0.260985 2.32299e-19)
+(-0.150381 0.273734 0)
+(-0.167316 0.285827 2.09724e-19)
+(-0.184186 0.297257 0)
+(-0.20103 0.308027 0)
+(-0.217876 0.318149 0)
+(-0.234736 0.327641 1.8198e-19)
+(-0.251613 0.33652 0)
+(-0.268496 0.344804 0)
+(-0.285367 0.352503 -1.66435e-19)
+(-0.302202 0.359618 0)
+(-0.318972 0.366149 0)
+(-0.335648 0.372085 1.52991e-19)
+(-0.352201 0.377414 0)
+(-0.368604 0.38212 1.44896e-19)
+(-0.384833 0.386188 0)
+(-0.400871 0.389608 2.74578e-19)
+(-0.416705 0.392372 -1.33834e-19)
+(-0.432333 0.39448 -2.26482e-22)
+(-0.447757 0.39594 -2.40062e-22)
+(-0.462988 0.396767 1.23896e-19)
+(-0.478044 0.396984 1.20564e-19)
+(-0.49295 0.396626 2.3549e-19)
+(-0.507737 0.395731 -2.64699e-22)
+(-0.522436 0.394345 0)
+(-0.537083 0.39252 0)
+(-0.551707 0.390311 2.14645e-19)
+(-0.566336 0.387773 -1.0477e-19)
+(-0.580991 0.384958 -1.02558e-19)
+(-0.59569 0.381914 -1.00445e-19)
+(-0.610444 0.378681 0)
+(-0.625265 0.375293 2.89724e-19)
+(-0.640161 0.371779 -1.89495e-19)
+(-0.655139 0.368162 -1.8591e-19)
+(-0.670205 0.364465 -1.82266e-19)
+(-0.68536 0.360707 -1.78974e-19)
+(-0.700602 0.356902 0)
+(-0.715924 0.35306 1.72965e-19)
+(-0.731318 0.349188 -3.39878e-19)
+(-0.746771 0.345287 1.67027e-19)
+(-0.762271 0.341354 1.64538e-19)
+(-0.777806 0.337385 -3.23691e-19)
+(-0.793363 0.333373 0)
+(-0.808928 0.329309 0)
+(-0.824487 0.325181 0)
+(-0.840024 0.320979 0)
+(-0.855524 0.316689 1.50381e-19)
+(-0.870969 0.312299 0)
+(-0.886343 0.307797 0)
+(-0.901627 0.30317 -1.4415e-19)
+(-0.916801 0.298405 0)
+(-0.931846 0.293492 2.81017e-19)
+(-0.94674 0.288418 0)
+(-0.961462 0.283175 -1.37054e-19)
+(-0.97599 0.277753 0)
+(-0.9903 0.272143 0)
+(-1.00437 0.26634 0)
+(-1.01817 0.260337 0)
+(-1.03169 0.25413 1.28624e-19)
+(-1.04489 0.247715 0)
+(-1.05775 0.24109 1.25683e-19)
+(-1.07025 0.234254 -1.84028e-22)
+(-1.08235 0.227206 0)
+(-1.09404 0.219949 1.20916e-19)
+(-1.10529 0.212484 -1.19405e-19)
+(-1.11608 0.204814 1.17896e-19)
+(-1.12637 0.196944 0)
+(-1.13615 0.188878 0)
+(-1.14539 0.180622 2.26912e-19)
+(-1.15407 0.172184 1.11845e-19)
+(-1.16215 0.163569 0)
+(-1.16962 0.154788 0)
+(-1.17645 0.145847 3.22012e-19)
+(-1.18263 0.136756 0)
+(-1.18812 0.127526 3.12535e-19)
+(-1.19291 0.118166 1.02457e-19)
+(-1.19697 0.108688 -1.0083e-19)
+(-1.20028 0.0991013 -1.98698e-19)
+(-1.20283 0.0894186 0)
+(-1.20459 0.0796513 0)
+(-1.20554 0.0698113 0)
+(-1.20566 0.0599106 3.1821e-22)
+(-1.20493 0.0499614 1.81421e-19)
+(-1.20335 0.0399757 0)
+(-1.20088 0.0299656 3.04691e-22)
+(-1.19751 0.0199429 0)
+(-1.19322 0.00991949 1.66226e-19)
+(-1.188 -9.37613e-05 1.62457e-19)
+(-1.18184 -0.0100864 -1.58304e-19)
+(-1.17471 -0.0200488 0)
+(-1.1666 -0.0299717 1.49561e-19)
+(-1.1575 -0.0398464 0)
+(-1.1474 -0.0496636 -1.41161e-19)
+(-1.13629 -0.0594132 0)
+(-1.12416 -0.0690845 -1.3227e-19)
+(-1.11101 -0.0786663 -1.27484e-19)
+(-1.09683 -0.0881476 1.23171e-19)
+(-1.08161 -0.0975174 0)
+(-1.06534 -0.106765 -2.27486e-19)
+(-1.04803 -0.11588 0)
+(-1.02967 -0.124853 0)
+(-1.01026 -0.133674 0)
+(-0.98979 -0.142334 0)
+(-0.968272 -0.150824 0)
+(-0.945703 -0.159135 -8.46182e-20)
+(-0.922085 -0.16726 7.96406e-20)
+(-0.897421 -0.175192 7.46268e-20)
+(-0.871717 -0.182921 0)
+(-0.844978 -0.190443 0)
+(-0.817211 -0.197749 2.46853e-22)
+(-0.788425 -0.204835 0)
+(-0.758629 -0.211696 -4.9346e-20)
+(-0.727833 -0.218324 8.80819e-20)
+(-0.696049 -0.224713 0)
+(-0.663289 -0.230859 -6.7504e-20)
+(-0.629564 -0.236754 8.53125e-20)
+(-0.59489 -0.242393 0)
+(-0.559282 -0.247772 3.60689e-20)
+(-0.522758 -0.252884 0)
+(-0.485335 -0.257726 0)
+(-0.447034 -0.262295 2.00137e-21)
+(-0.407878 -0.266593 -3.25309e-21)
+(-0.367887 -0.270621 1.64514e-20)
+(-0.327085 -0.274381 2.69207e-20)
+(-0.285495 -0.277868 0)
+(-0.24314 -0.281079 0)
+(-0.200044 -0.284011 0)
+(-0.156235 -0.286662 0)
+(-0.111742 -0.289032 0)
+(-0.066594 -0.291122 0)
+(-0.0208213 -0.292936 1.99001e-19)
+(0.0255456 -0.294476 0)
+(0.0724757 -0.295745 -6.11578e-22)
+(0.119937 -0.296749 -1.28488e-19)
+(0.167898 -0.29749 1.37043e-19)
+(0.216326 -0.297974 -1.46668e-19)
+(0.265189 -0.298207 0)
+(0.314455 -0.298193 0)
+(0.364092 -0.29794 0)
+(0.414066 -0.297456 0)
+(0.464347 -0.296746 1.88507e-19)
+(0.514902 -0.295821 0)
+(0.5657 -0.294687 2.04264e-19)
+(0.616711 -0.293355 4.24379e-19)
+(0.667903 -0.291833 -2.19307e-19)
+(0.71925 -0.290132 0)
+(0.770721 -0.288261 2.34257e-19)
+(0.822292 -0.286233 2.41148e-19)
+(0.873937 -0.284056 2.47858e-19)
+(0.925632 -0.281745 2.53772e-19)
+(0.977356 -0.279309 -2.60737e-19)
+(1.02909 -0.276762 -2.66906e-19)
+(1.08082 -0.274117 2.72894e-19)
+(1.13253 -0.27139 -5.5681e-19)
+(1.18421 -0.268596 0)
+(1.23586 -0.265752 0)
+(1.28746 -0.262869 -2.94481e-19)
+(1.33901 -0.259958 2.9959e-19)
+(1.39053 -0.257025 0)
+(1.44201 -0.254081 6.18576e-19)
+(1.49345 -0.251128 -3.1443e-19)
+(1.54486 -0.24816 0)
+(1.59623 -0.245158 0)
+(1.64757 -0.242086 0)
+(1.69888 -0.238878 6.60915e-19)
+(1.75014 -0.235434 6.68311e-19)
+(1.80136 -0.231597 0)
+(1.85257 -0.227132 0)
+(1.90377 -0.221698 0)
+(1.95528 -0.214817 6.94393e-19)
+(2.00677 -0.205857 6.99981e-19)
+(2.06168 -0.194159 -7.06233e-19)
+(2.11146 -0.178368 0)
+(-0.0119035 0.149982 0)
+(-0.0273538 0.200073 8.88816e-19)
+(-0.0436039 0.223379 0)
+(-0.0611461 0.240449 3.65544e-19)
+(-0.0787953 0.255335 0)
+(-0.0960416 0.269152 2.60918e-19)
+(-0.112879 0.28228 -2.36884e-19)
+(-0.12936 0.294842 2.20445e-19)
+(-0.145531 0.306862 0)
+(-0.16143 0.318326 -1.98494e-19)
+(-0.177096 0.329213 0)
+(-0.19256 0.339504 0)
+(-0.207847 0.349186 0)
+(-0.222969 0.358255 -1.7237e-19)
+(-0.237933 0.36671 1.67435e-19)
+(-0.252736 0.374555 0)
+(-0.267372 0.381787 3.16142e-19)
+(-0.281829 0.388406 -1.53858e-19)
+(-0.296093 0.394405 0)
+(-0.310151 0.399778 -1.45639e-19)
+(-0.323989 0.404515 0)
+(-0.337598 0.408609 -1.38157e-19)
+(-0.350973 0.412055 -1.34794e-19)
+(-0.364115 0.414853 -2.62553e-19)
+(-0.377028 0.417005 2.55936e-19)
+(-0.389724 0.418523 1.24668e-19)
+(-0.40222 0.419424 3.65192e-19)
+(-0.414536 0.419734 -1.18617e-19)
+(-0.426699 0.419484 2.31997e-19)
+(-0.438737 0.418711 -3.39575e-19)
+(-0.450679 0.417459 1.10424e-19)
+(-0.462557 0.415773 0)
+(-0.4744 0.413701 2.11524e-19)
+(-0.486233 0.411291 -2.06551e-19)
+(-0.498079 0.408591 -2.02599e-19)
+(-0.509957 0.405644 0)
+(-0.521882 0.40249 0)
+(-0.533866 0.399164 1.90658e-19)
+(-0.545916 0.395695 -1.86759e-19)
+(-0.558041 0.392109 3.66837e-19)
+(-0.570243 0.388425 3.60176e-19)
+(-0.582524 0.384663 0)
+(-0.594884 0.380834 0)
+(-0.607318 0.37695 0)
+(-0.619819 0.373017 2.06266e-22)
+(-0.632377 0.369038 -2.06555e-22)
+(-0.64498 0.365013 -1.6283e-19)
+(-0.657617 0.360939 -1.60122e-19)
+(-0.670273 0.356811 3.15651e-19)
+(-0.682935 0.35262 0)
+(-0.695588 0.348357 0)
+(-0.708216 0.344011 0)
+(-0.720803 0.339569 1.49195e-19)
+(-0.733333 0.335019 2.05482e-22)
+(-0.745788 0.330348 0)
+(-0.75815 0.325541 0)
+(-0.770402 0.320588 0)
+(-0.782523 0.315474 0)
+(-0.794494 0.310188 2.01693e-22)
+(-0.806294 0.304719 0)
+(-0.817902 0.299056 2.69404e-19)
+(-0.829298 0.293191 0)
+(-0.840458 0.287115 0)
+(-0.851361 0.280822 0)
+(-0.861984 0.274306 0)
+(-0.872305 0.267563 0)
+(-0.882302 0.260591 -1.25587e-19)
+(-0.891951 0.253386 -2.48038e-19)
+(-0.90123 0.24595 1.22461e-19)
+(-0.910118 0.238282 0)
+(-0.91859 0.230384 2.39522e-19)
+(-0.926626 0.22226 -2.36632e-19)
+(-0.934203 0.213913 0)
+(-0.9413 0.205349 2.3084e-19)
+(-0.947896 0.196572 -2.27929e-19)
+(-0.953969 0.187591 -3.37315e-19)
+(-0.959499 0.178412 0)
+(-0.964465 0.169045 0)
+(-0.968848 0.159497 0)
+(-0.972627 0.149779 -2.12682e-19)
+(-0.975784 0.1399 -2.09962e-19)
+(-0.9783 0.129873 -4.1335e-19)
+(-0.980155 0.119707 0)
+(-0.981333 0.109414 2.00481e-19)
+(-0.981816 0.0990076 -3.22136e-22)
+(-0.981586 0.0884986 1.93918e-19)
+(-0.980627 0.0779 1.90556e-19)
+(-0.978922 0.0672245 0)
+(-0.976454 0.0564851 -3.67026e-19)
+(-0.973209 0.0456945 -3.59957e-19)
+(-0.969172 0.0348655 0)
+(-0.964328 0.0240109 -1.72588e-19)
+(-0.958662 0.0131431 0)
+(-0.95216 0.0022746 0)
+(-0.944808 -0.00858309 -1.60849e-19)
+(-0.936592 -0.0194184 -2.43417e-22)
+(-0.9275 -0.0302205 1.52755e-19)
+(-0.91752 -0.0409787 0)
+(-0.906644 -0.0516826 0)
+(-0.894861 -0.0623218 2.79469e-19)
+(-0.882165 -0.0728849 0)
+(-0.868549 -0.0833605 -2.08264e-22)
+(-0.854005 -0.0937367 0)
+(-0.838529 -0.104002 -1.21711e-19)
+(-0.822115 -0.114145 0)
+(-0.80476 -0.124154 1.12459e-19)
+(-0.786459 -0.134017 0)
+(-0.767211 -0.143726 0)
+(-0.747014 -0.153268 9.84253e-20)
+(-0.725867 -0.162635 0)
+(-0.70377 -0.171816 0)
+(-0.680725 -0.180804 0)
+(-0.656733 -0.189588 -7.89038e-20)
+(-0.631799 -0.19816 -7.39376e-20)
+(-0.605925 -0.206514 0)
+(-0.579117 -0.21464 -1.27836e-19)
+(-0.551381 -0.222533 -5.8697e-20)
+(-0.522726 -0.230187 1.07597e-19)
+(-0.49316 -0.237594 4.85335e-20)
+(-0.462692 -0.244748 4.37727e-20)
+(-0.431331 -0.251643 -7.69485e-20)
+(-0.399088 -0.258272 -3.54474e-22)
+(-0.365976 -0.264629 -5.60256e-20)
+(-0.332005 -0.270708 -4.60779e-20)
+(-0.297192 -0.276503 -7.11618e-20)
+(-0.261551 -0.282009 2.54481e-20)
+(-0.225097 -0.28722 0)
+(-0.187852 -0.292135 4.83264e-21)
+(-0.149832 -0.296754 -5.45408e-21)
+(-0.111058 -0.301078 -1.61144e-20)
+(-0.0715532 -0.305108 -4.02176e-22)
+(-0.0313375 -0.308843 0)
+(0.00956858 -0.312278 0)
+(0.051142 -0.31541 0)
+(0.0933586 -0.318234 0)
+(0.136192 -0.320753 0)
+(0.179614 -0.322967 0)
+(0.223599 -0.32488 -1.89243e-19)
+(0.268117 -0.326495 0)
+(0.313142 -0.327816 -2.25773e-19)
+(0.358643 -0.328846 0)
+(0.404593 -0.32959 -2.6109e-19)
+(0.45096 -0.330054 0)
+(0.497717 -0.330243 1.47337e-19)
+(0.544833 -0.330163 0)
+(0.592278 -0.329823 -1.63711e-19)
+(0.640024 -0.32923 0)
+(0.688042 -0.328392 -3.59322e-19)
+(0.736302 -0.327319 0)
+(0.784776 -0.326019 -1.94939e-19)
+(0.833437 -0.324503 -4.90601e-22)
+(0.882257 -0.322781 4.18085e-19)
+(0.931212 -0.320865 0)
+(0.980275 -0.318765 0)
+(1.02942 -0.316493 0)
+(1.07864 -0.314063 0)
+(1.12789 -0.311487 -2.42136e-19)
+(1.17717 -0.308778 0)
+(1.22646 -0.305951 0)
+(1.27575 -0.303022 0)
+(1.32502 -0.300006 7.9493e-19)
+(1.37426 -0.296921 5.40357e-19)
+(1.42348 -0.293785 0)
+(1.47267 -0.290612 2.80843e-19)
+(1.52182 -0.287413 -2.85684e-19)
+(1.57095 -0.284199 -5.79811e-19)
+(1.62006 -0.280978 -5.89719e-19)
+(1.66916 -0.277752 -5.97501e-19)
+(1.71825 -0.274515 -6.05833e-19)
+(1.76734 -0.271249 6.13821e-19)
+(1.81644 -0.267915 0)
+(1.86556 -0.264451 -8.6383e-22)
+(1.91471 -0.260756 -1.27223e-18)
+(1.9639 -0.256681 0)
+(2.01319 -0.252003 0)
+(2.06263 -0.246413 0)
+(2.11255 -0.239498 -1.03048e-21)
+(2.16265 -0.230734 -1.14924e-21)
+(2.21633 -0.219619 6.71475e-19)
+(2.26469 -0.205109 0)
+(-0.0111554 0.183802 2.0671e-18)
+(-0.0259136 0.237567 -8.50842e-19)
+(-0.041508 0.260604 0)
+(-0.0582665 0.27674 -3.52766e-19)
+(-0.0750787 0.290517 0)
+(-0.0914495 0.303195 -2.51374e-19)
+(-0.107344 0.31521 0)
+(-0.122789 0.326718 -2.11403e-19)
+(-0.137808 0.337755 0)
+(-0.152425 0.34831 1.90301e-19)
+(-0.166664 0.358353 0)
+(-0.180551 0.367857 0)
+(-0.194106 0.376798 0)
+(-0.207346 0.385159 -1.65432e-19)
+(-0.220285 0.392926 -1.60556e-19)
+(-0.232927 0.40009 0)
+(-0.245275 0.406644 -1.51927e-19)
+(-0.257329 0.412581 1.47906e-19)
+(-0.269088 0.417894 0)
+(-0.280554 0.422577 0)
+(-0.29173 0.426629 0)
+(-0.302622 0.430048 0)
+(-0.313239 0.432837 1.29961e-19)
+(-0.323595 0.435004 1.2675e-19)
+(-0.333708 0.43656 -1.23654e-19)
+(-0.343598 0.437524 0)
+(-0.35329 0.437918 -2.3561e-19)
+(-0.362812 0.437773 2.30487e-19)
+(-0.37219 0.437123 -4.50013e-19)
+(-0.381456 0.436005 2.19741e-19)
+(-0.390636 0.43446 0)
+(-0.399759 0.432532 0)
+(-0.408851 0.430263 -2.05808e-19)
+(-0.417933 0.427695 0)
+(-0.427026 0.424869 1.97527e-19)
+(-0.436144 0.421822 -1.93973e-19)
+(-0.4453 0.418587 0)
+(-0.454503 0.415193 -3.73159e-19)
+(-0.46376 0.411664 0)
+(-0.473074 0.408023 -1.79837e-19)
+(-0.482447 0.404284 -1.76738e-19)
+(-0.491877 0.400463 1.73978e-19)
+(-0.501362 0.396569 0)
+(-0.510894 0.392609 0)
+(-0.520465 0.388587 -1.65541e-19)
+(-0.530064 0.384503 -2.003e-22)
+(-0.539679 0.380355 1.60579e-19)
+(-0.549297 0.376139 -1.58453e-19)
+(-0.558904 0.371848 2.02948e-22)
+(-0.568485 0.367475 0)
+(-0.578023 0.363009 0)
+(-0.587502 0.358439 -1.50025e-19)
+(-0.596906 0.353751 -1.479e-19)
+(-0.606216 0.348933 -1.46045e-19)
+(-0.615417 0.343972 -1.44455e-19)
+(-0.62449 0.338855 0)
+(-0.633417 0.333568 0)
+(-0.642178 0.328099 0)
+(-0.650756 0.322435 -1.37562e-19)
+(-0.65913 0.316566 0)
+(-0.667281 0.310482 2.04929e-22)
+(-0.675189 0.304173 -1.33153e-19)
+(-0.682834 0.297632 1.31669e-19)
+(-0.690197 0.290854 0)
+(-0.697256 0.283832 -2.57526e-19)
+(-0.703994 0.276563 2.54666e-19)
+(-0.71039 0.269046 3.77542e-19)
+(-0.716426 0.261279 3.73312e-19)
+(-0.722082 0.253263 0)
+(-0.72734 0.244999 0)
+(-0.732183 0.23649 -2.40195e-19)
+(-0.736591 0.22774 2.37385e-19)
+(-0.740548 0.218753 0)
+(-0.744036 0.209536 -2.31727e-19)
+(-0.74704 0.200096 2.2887e-19)
+(-0.749542 0.190439 2.25987e-19)
+(-0.751528 0.180575 0)
+(-0.75298 0.170512 0)
+(-0.753885 0.160261 2.17481e-19)
+(-0.754226 0.149833 0)
+(-0.753991 0.139237 2.11061e-19)
+(-0.753163 0.128486 2.07948e-19)
+(-0.75173 0.117592 2.05083e-19)
+(-0.749678 0.106566 -2.01572e-19)
+(-0.746994 0.0954229 1.98303e-19)
+(-0.743663 0.0841743 -1.94977e-19)
+(-0.739675 0.0728338 -3.83444e-19)
+(-0.735015 0.0614146 0)
+(-0.729671 0.0499303 1.8464e-19)
+(-0.723631 0.0383942 1.81069e-19)
+(-0.716883 0.0268197 0)
+(-0.709417 0.0152199 0)
+(-0.70122 0.00360799 0)
+(-0.69228 -0.00800357 -1.65976e-19)
+(-0.682587 -0.0196022 0)
+(-0.67213 -0.0311754 1.57432e-19)
+(-0.660899 -0.0427115 -1.53178e-19)
+(-0.648885 -0.0541987 0)
+(-0.63608 -0.0656255 0)
+(-0.622476 -0.0769802 -1.40106e-19)
+(-0.608069 -0.0882507 0)
+(-0.59285 -0.099425 2.62414e-19)
+(-0.576816 -0.110491 0)
+(-0.559962 -0.121436 0)
+(-0.542283 -0.132248 0)
+(-0.523775 -0.142915 1.12753e-19)
+(-0.504437 -0.153427 0)
+(-0.484265 -0.16377 0)
+(-0.463258 -0.173936 -2.9514e-19)
+(-0.441415 -0.183912 0)
+(-0.418737 -0.193689 0)
+(-0.395224 -0.203258 0)
+(-0.370878 -0.212609 2.3628e-19)
+(-0.345701 -0.221732 7.37147e-20)
+(-0.319697 -0.230621 0)
+(-0.29287 -0.239266 1.27354e-19)
+(-0.265226 -0.247661 1.17442e-19)
+(-0.236772 -0.255799 -2.1441e-19)
+(-0.207514 -0.263673 9.71295e-20)
+(-0.17746 -0.271275 -8.67329e-20)
+(-0.146619 -0.278599 -2.01069e-22)
+(-0.115 -0.285638 6.62691e-20)
+(-0.0826131 -0.292386 0)
+(-0.0494689 -0.298835 4.57604e-20)
+(-0.0155801 -0.304981 3.54993e-20)
+(0.0190401 -0.310816 -2.52024e-20)
+(0.0543772 -0.316336 0)
+(0.0904151 -0.321537 2.38082e-22)
+(0.127138 -0.326421 1.04323e-20)
+(0.164527 -0.330987 0)
+(0.20256 -0.335237 -2.52069e-20)
+(0.241222 -0.33917 0)
+(0.280493 -0.342782 0)
+(0.320352 -0.346069 0)
+(0.360778 -0.349025 0)
+(0.401746 -0.351653 0)
+(0.443234 -0.353954 0)
+(0.485216 -0.355932 9.10517e-20)
+(0.527668 -0.35759 0)
+(0.570564 -0.358932 1.08666e-19)
+(0.613879 -0.359961 -1.16923e-19)
+(0.657585 -0.360682 1.25696e-19)
+(0.701658 -0.361102 0)
+(0.74607 -0.361227 -1.42116e-19)
+(0.790795 -0.361063 0)
+(0.835808 -0.360619 3.61991e-22)
+(0.88108 -0.359904 0)
+(0.926588 -0.358926 3.71584e-22)
+(0.972305 -0.357695 0)
+(1.01821 -0.356222 0)
+(1.06427 -0.354517 -1.94534e-19)
+(1.11047 -0.352592 -2.01361e-19)
+(1.15678 -0.350458 0)
+(1.20318 -0.348129 4.2825e-19)
+(1.24966 -0.345618 0)
+(1.29619 -0.342938 0)
+(1.34276 -0.340103 0)
+(1.38934 -0.337129 0)
+(1.43594 -0.334031 4.88124e-19)
+(1.48254 -0.330827 0)
+(1.52913 -0.327534 -5.10482e-19)
+(1.5757 -0.324171 -7.56062e-22)
+(1.62226 -0.320758 -5.29969e-19)
+(1.66879 -0.31731 0)
+(1.71531 -0.31384 0)
+(1.76183 -0.310362 5.58553e-19)
+(1.80834 -0.306882 5.66446e-19)
+(1.85487 -0.303405 5.75443e-19)
+(1.90143 -0.299924 7.05164e-22)
+(1.94803 -0.29642 -5.90992e-19)
+(1.99469 -0.292858 0)
+(2.04142 -0.289175 -6.05182e-19)
+(2.08825 -0.285274 1.22281e-18)
+(2.13521 -0.281013 0)
+(2.18239 -0.276187 0)
+(2.22984 -0.270518 6.28513e-19)
+(2.27794 -0.263651 -1.26803e-18)
+(2.32636 -0.255152 -9.82356e-22)
+(2.37848 -0.244629 0)
+(2.42511 -0.23129 0)
+(-0.010219 0.215493 -1.94876e-18)
+(-0.0240332 0.272934 8.22299e-19)
+(-0.0387171 0.295775 -4.75361e-19)
+(-0.0544321 0.310998 0)
+(-0.070152 0.32363 0)
+(-0.0854012 0.335079 -2.27183e-22)
+(-0.100118 0.345844 0)
+(-0.114307 0.356117 0)
+(-0.127972 0.365957 0)
+(-0.141122 0.375367 1.77169e-22)
+(-0.153774 0.384324 0)
+(-0.165949 0.3928 0)
+(-0.177664 0.400763 0)
+(-0.188935 0.408188 1.60127e-19)
+(-0.19978 0.415052 3.11512e-19)
+(-0.210212 0.42134 0)
+(-0.220245 0.427041 0)
+(-0.229891 0.432147 0)
+(-0.239165 0.436654 2.80088e-19)
+(-0.24808 0.440559 2.73099e-19)
+(-0.256652 0.443865 -2.66383e-19)
+(-0.2649 0.446574 -2.59919e-19)
+(-0.272843 0.448695 0)
+(-0.280505 0.450239 0)
+(-0.287911 0.451222 0)
+(-0.295087 0.451667 0)
+(-0.302062 0.451598 0)
+(-0.308865 0.451044 3.19961e-22)
+(-0.315525 0.450041 2.20672e-19)
+(-0.32207 0.448622 0)
+(-0.328527 0.446825 0)
+(-0.334921 0.444689 0)
+(-0.341274 0.44225 0)
+(-0.347604 0.439546 0)
+(-0.353927 0.43661 0)
+(-0.360256 0.433473 1.91668e-19)
+(-0.366599 0.430163 0)
+(-0.372963 0.426702 1.84934e-19)
+(-0.379351 0.423112 0)
+(-0.385764 0.419409 0)
+(-0.392201 0.415606 0)
+(-0.398657 0.411714 -1.73124e-19)
+(-0.405128 0.40774 0)
+(-0.411603 0.403688 0)
+(-0.418074 0.399557 0)
+(-0.424528 0.395346 -1.86562e-22)
+(-0.430951 0.391052 0)
+(-0.43733 0.38667 3.17554e-19)
+(-0.443648 0.382192 -1.56613e-19)
+(-0.449889 0.377611 0)
+(-0.456036 0.372914 0)
+(-0.462073 0.368091 1.50869e-19)
+(-0.467981 0.36313 -1.49284e-19)
+(-0.473743 0.358017 0)
+(-0.479344 0.352741 1.45692e-19)
+(-0.484765 0.347287 1.44264e-19)
+(-0.48999 0.341643 0)
+(-0.495001 0.335796 0)
+(-0.499781 0.329734 0)
+(-0.504311 0.323448 0)
+(-0.508576 0.316927 -1.36491e-19)
+(-0.512558 0.310163 1.35055e-19)
+(-0.51624 0.30315 -1.33638e-19)
+(-0.519606 0.295881 2.64851e-19)
+(-0.52264 0.288354 5.23748e-19)
+(-0.525326 0.280566 -2.58916e-19)
+(-0.527651 0.272514 -2.56156e-19)
+(-0.5296 0.264201 -2.53399e-19)
+(-0.531159 0.255626 0)
+(-0.532315 0.246792 0)
+(-0.533055 0.237704 0)
+(-0.533367 0.228365 0)
+(-0.53324 0.218782 2.39795e-19)
+(-0.532663 0.208962 0)
+(-0.531624 0.198911 0)
+(-0.530113 0.188639 0)
+(-0.52812 0.178155 -2.28161e-19)
+(-0.525636 0.167468 0)
+(-0.522651 0.156589 2.6577e-22)
+(-0.519155 0.14553 0)
+(-0.515139 0.134302 -2.15853e-19)
+(-0.510595 0.122916 0)
+(-0.505513 0.111386 -2.09167e-19)
+(-0.499885 0.0997249 0)
+(-0.493702 0.087945 0)
+(-0.486955 0.07606 0)
+(-0.479637 0.0640836 1.95574e-19)
+(-0.471738 0.0520294 0)
+(-0.463249 0.0399112 0)
+(-0.454161 0.0277426 1.84853e-19)
+(-0.444468 0.0155374 1.81088e-19)
+(-0.434159 0.00330875 1.77163e-19)
+(-0.423228 -0.00893009 0)
+(-0.411663 -0.021166 -1.0128e-22)
+(-0.399457 -0.0333859 0)
+(-0.386602 -0.0455766 -1.60127e-19)
+(-0.373091 -0.0577257 0)
+(-0.358916 -0.0698208 0)
+(-0.344071 -0.0818495 1.46787e-19)
+(-0.32855 -0.0937992 0)
+(-0.312347 -0.105657 0)
+(-0.295458 -0.117411 -1.32975e-19)
+(-0.277878 -0.129048 -1.28335e-19)
+(-0.259603 -0.140556 0)
+(-0.240628 -0.151922 0)
+(-0.220952 -0.163134 -1.14018e-19)
+(-0.200571 -0.17418 2.18393e-19)
+(-0.179482 -0.185048 0)
+(-0.157684 -0.195727 1.98776e-19)
+(-0.135176 -0.206206 0)
+(-0.111957 -0.216474 0)
+(-0.0880274 -0.22652 1.68944e-19)
+(-0.0633882 -0.236336 -1.58862e-19)
+(-0.0380406 -0.245912 -1.48771e-19)
+(-0.0119873 -0.255239 0)
+(0.014768 -0.264309 0)
+(0.0422209 -0.273114 -1.17642e-19)
+(0.0703661 -0.281647 1.0712e-19)
+(0.0991984 -0.2899 -9.66353e-20)
+(0.128712 -0.297865 8.62302e-20)
+(0.158899 -0.305537 7.57984e-20)
+(0.189754 -0.312906 6.55065e-20)
+(0.221266 -0.319967 5.52314e-20)
+(0.253428 -0.326713 0)
+(0.286229 -0.333137 -3.48831e-20)
+(0.319658 -0.339233 -2.48211e-20)
+(0.353703 -0.344996 0)
+(0.388351 -0.350422 -4.85227e-21)
+(0.423588 -0.35551 -1.05528e-22)
+(0.459395 -0.36026 1.45516e-20)
+(0.495757 -0.364673 0)
+(0.532658 -0.368751 0)
+(0.570082 -0.372491 0)
+(0.60801 -0.375884 0)
+(0.646423 -0.378927 0)
+(0.685301 -0.381621 0)
+(0.724624 -0.38397 -7.93294e-20)
+(0.76437 -0.385976 0)
+(0.804517 -0.387643 -9.67058e-20)
+(0.845043 -0.388974 0)
+(0.885926 -0.389973 1.13751e-19)
+(0.927143 -0.390646 0)
+(0.968671 -0.390998 0)
+(1.01049 -0.391037 -1.37661e-19)
+(1.05257 -0.39077 0)
+(1.09489 -0.390206 3.06241e-19)
+(1.13743 -0.389355 0)
+(1.18017 -0.388225 1.67964e-19)
+(1.22309 -0.386828 0)
+(1.26616 -0.385174 0)
+(1.30936 -0.383275 0)
+(1.35267 -0.381144 0)
+(1.39608 -0.378793 0)
+(1.43957 -0.376236 -8.32233e-19)
+(1.48312 -0.373488 4.28074e-19)
+(1.52671 -0.370563 4.40009e-19)
+(1.57033 -0.367478 0)
+(1.61398 -0.364247 -4.62892e-19)
+(1.65763 -0.36089 -4.74457e-19)
+(1.70129 -0.357423 0)
+(1.74495 -0.353867 0)
+(1.7886 -0.350242 -6.08031e-22)
+(1.83225 -0.346567 5.14929e-19)
+(1.8759 -0.342861 0)
+(1.91955 -0.33914 5.32586e-19)
+(1.96322 -0.335417 0)
+(2.00692 -0.331701 -5.50106e-19)
+(2.05066 -0.327997 0)
+(2.09447 -0.324298 1.13087e-18)
+(2.13836 -0.320588 0)
+(2.18236 -0.316832 5.7943e-19)
+(2.22649 -0.312968 0)
+(2.2708 -0.308907 -5.92907e-19)
+(2.31534 -0.304514 0)
+(2.36019 -0.299603 0)
+(2.40544 -0.293925 -6.09539e-19)
+(2.45148 -0.287176 6.14321e-19)
+(2.49796 -0.278997 -8.43739e-22)
+(2.54823 -0.269067 -6.22043e-19)
+(2.59286 -0.25681 0)
+(-0.00918556 0.244573 0)
+(-0.0218925 0.305708 0)
+(-0.035501 0.328437 4.67005e-19)
+(-0.0500066 0.342778 0)
+(-0.0644689 0.354243 0)
+(-0.0784336 0.364387 2.39642e-19)
+(-0.0918162 0.373786 0)
+(-0.104603 0.38268 2.00742e-19)
+(-0.116782 0.391157 0)
+(-0.128349 0.399239 1.80231e-19)
+(-0.13931 0.406912 0)
+(-0.149676 0.41415 0)
+(-0.159466 0.420926 0)
+(-0.168702 0.427213 0)
+(-0.177405 0.432991 -3.0393e-19)
+(-0.185601 0.438245 2.96128e-19)
+(-0.193313 0.442961 0)
+(-0.200565 0.447132 0)
+(-0.207382 0.450755 -2.74183e-19)
+(-0.213789 0.453827 -2.67617e-19)
+(-0.219811 0.456351 -2.53031e-22)
+(-0.225475 0.458333 2.5527e-19)
+(-0.23081 0.459783 0)
+(-0.235844 0.460714 0)
+(-0.240605 0.461143 0)
+(-0.245125 0.461092 0)
+(-0.249432 0.460585 0)
+(-0.253555 0.45965 -4.47418e-19)
+(-0.257522 0.458317 0)
+(-0.261359 0.456617 0)
+(-0.265089 0.454584 0)
+(-0.268735 0.452249 0)
+(-0.272313 0.449645 2.02907e-19)
+(-0.275839 0.4468 1.99258e-19)
+(-0.279325 0.443745 0)
+(-0.282778 0.440503 0)
+(-0.286205 0.437097 1.89247e-19)
+(-0.289608 0.433547 0)
+(-0.292988 0.429868 0)
+(-0.296342 0.426073 -1.80479e-19)
+(-0.299666 0.422174 0)
+(-0.302953 0.418175 0)
+(-0.306194 0.414079 0)
+(-0.309379 0.409887 0)
+(-0.312494 0.4056 0)
+(-0.315526 0.401214 -1.64086e-22)
+(-0.318459 0.396725 -1.63888e-19)
+(-0.321277 0.392127 -1.61745e-19)
+(-0.323964 0.387411 0)
+(-0.326501 0.382568 -1.58196e-19)
+(-0.328872 0.377588 0)
+(-0.331058 0.37246 0)
+(-0.333044 0.367174 1.52927e-19)
+(-0.334813 0.361717 -3.03005e-19)
+(-0.336351 0.356077 0)
+(-0.337642 0.350242 -1.48258e-19)
+(-0.338672 0.344199 0)
+(-0.339424 0.337937 0)
+(-0.339886 0.331444 0)
+(-0.340043 0.32471 0)
+(-0.339881 0.317727 0)
+(-0.339389 0.310489 0)
+(-0.338555 0.302989 2.76903e-19)
+(-0.337367 0.295224 -2.73832e-19)
+(-0.335817 0.287191 -2.71081e-19)
+(-0.333894 0.278888 -2.68621e-19)
+(-0.331591 0.270316 2.6585e-19)
+(-0.3289 0.261475 0)
+(-0.325814 0.252369 0)
+(-0.322327 0.243 0)
+(-0.318434 0.233375 0)
+(-0.314129 0.223497 -2.51681e-19)
+(-0.309409 0.213374 -2.48532e-19)
+(-0.304269 0.203013 2.45788e-19)
+(-0.298705 0.192423 -2.42779e-19)
+(-0.292714 0.181612 0)
+(-0.286292 0.170591 4.73065e-19)
+(-0.279437 0.159369 0)
+(-0.272145 0.147957 -2.30106e-19)
+(-0.264413 0.136368 -2.26987e-19)
+(-0.256238 0.124612 4.47205e-19)
+(-0.247617 0.112702 0)
+(-0.238546 0.100651 0)
+(-0.22902 0.0884709 2.13326e-19)
+(-0.219038 0.0761759 -2.09754e-19)
+(-0.208594 0.063779 2.06117e-19)
+(-0.197684 0.0512939 -2.02414e-19)
+(-0.186303 0.0387342 0)
+(-0.174446 0.0261137 0)
+(-0.162107 0.0134461 1.02323e-23)
+(-0.149283 0.000744789 -1.86819e-19)
+(-0.135967 -0.0119772 -1.03328e-23)
+(-0.122152 -0.0247067 0)
+(-0.107832 -0.0374299 2.89546e-23)
+(-0.0930005 -0.0501334 1.69104e-19)
+(-0.0776522 -0.062804 4.53467e-23)
+(-0.061781 -0.0754286 0)
+(-0.0453814 -0.0879944 0)
+(-0.0284478 -0.100489 -1.50626e-19)
+(-0.0109751 -0.112898 0)
+(0.00704154 -0.12521 0)
+(0.0256066 -0.137411 -2.71478e-19)
+(0.0447244 -0.149489 -1.3049e-19)
+(0.0643989 -0.16143 0)
+(0.084634 -0.173223 0)
+(0.105433 -0.184854 0)
+(0.1268 -0.196311 -2.19747e-19)
+(0.148737 -0.207583 0)
+(0.171246 -0.218656 0)
+(0.19433 -0.22952 0)
+(0.217989 -0.240164 0)
+(0.242226 -0.250577 -3.34775e-19)
+(0.26704 -0.260749 1.56851e-19)
+(0.29243 -0.270671 1.75204e-22)
+(0.318396 -0.280332 -1.36011e-19)
+(0.344936 -0.289725 0)
+(0.372046 -0.298842 1.1527e-19)
+(0.399723 -0.307674 0)
+(0.427963 -0.316213 -9.46695e-20)
+(0.456763 -0.324452 -8.45666e-20)
+(0.486118 -0.332382 0)
+(0.516021 -0.339997 -6.42333e-20)
+(0.546467 -0.34729 -1.08207e-19)
+(0.577447 -0.354254 0)
+(0.608956 -0.360881 3.4199e-20)
+(0.640984 -0.367165 4.85997e-20)
+(0.673521 -0.373102 0)
+(0.70656 -0.378684 0)
+(0.740085 -0.383912 -9.53865e-21)
+(0.774081 -0.388784 1.57379e-23)
+(0.808537 -0.393303 0)
+(0.843441 -0.397471 0)
+(0.878774 -0.401284 0)
+(0.914526 -0.404733 -5.12013e-20)
+(0.950677 -0.407815 0)
+(0.987213 -0.410533 0)
+(1.02412 -0.412889 1.554e-19)
+(1.06137 -0.414885 8.62261e-20)
+(1.09895 -0.416526 9.47617e-20)
+(1.13684 -0.417813 0)
+(1.17503 -0.418753 0)
+(1.21349 -0.41935 -1.19123e-19)
+(1.25221 -0.41961 0)
+(1.29116 -0.419542 -1.3455e-19)
+(1.33032 -0.419153 0)
+(1.36969 -0.418453 -1.49873e-19)
+(1.40923 -0.417451 0)
+(1.44893 -0.416158 -3.28114e-19)
+(1.48877 -0.414586 -3.42007e-19)
+(1.52873 -0.412745 3.55581e-19)
+(1.5688 -0.410648 0)
+(1.60897 -0.408309 0)
+(1.6492 -0.405742 0)
+(1.6895 -0.402961 4.07142e-19)
+(1.72985 -0.399981 -4.77398e-22)
+(1.77024 -0.396819 -4.30763e-19)
+(1.81066 -0.393492 0)
+(1.8511 -0.390016 4.53081e-19)
+(1.89155 -0.386412 0)
+(1.93201 -0.382697 0)
+(1.97249 -0.378894 0)
+(2.01297 -0.375023 -4.93796e-19)
+(2.05347 -0.371106 0)
+(2.09399 -0.367163 -5.1171e-19)
+(2.13453 -0.363211 -5.20891e-19)
+(2.17512 -0.359267 0)
+(2.21577 -0.35534 5.36856e-19)
+(2.2565 -0.351435 -5.44584e-19)
+(2.29733 -0.347549 -4.53912e-22)
+(2.3383 -0.343666 -5.59048e-19)
+(2.37943 -0.339751 -4.53617e-22)
+(2.42076 -0.335749 0)
+(2.46234 -0.331575 5.78187e-19)
+(2.50424 -0.327104 0)
+(2.54656 -0.322167 0)
+(2.5894 -0.316545 0)
+(2.63314 -0.309975 -5.98371e-19)
+(2.67744 -0.30216 -7.24327e-22)
+(2.72558 -0.292824 1.2131e-18)
+(2.768 -0.281579 0)
+(-0.00812944 0.270761 -1.79522e-18)
+(-0.019674 0.335639 -7.91219e-19)
+(-0.0321427 0.358343 0)
+(-0.0453733 0.371833 0)
+(-0.0585075 0.382109 0)
+(-0.0711147 0.390891 0)
+(-0.0830905 0.398834 0)
+(-0.0943966 0.406224 -1.97903e-19)
+(-0.105005 0.413181 0)
+(-0.114901 0.419753 3.55992e-22)
+(-0.124086 0.425948 -3.39845e-19)
+(-0.132574 0.431759 0)
+(-0.140384 0.437169 0)
+(-0.147544 0.442159 0)
+(-0.154085 0.446711 0)
+(-0.160038 0.45081 -5.82919e-19)
+(-0.165437 0.454443 0)
+(-0.170317 0.457601 0)
+(-0.174709 0.460279 0)
+(-0.178648 0.462475 0)
+(-0.182165 0.464191 5.17758e-19)
+(-0.185294 0.465432 0)
+(-0.188065 0.466206 0)
+(-0.19051 0.466526 0)
+(-0.192661 0.466407 2.37857e-19)
+(-0.194546 0.465867 0)
+(-0.196194 0.464927 0)
+(-0.197631 0.463611 2.24098e-19)
+(-0.198881 0.461946 0)
+(-0.199967 0.459957 2.16198e-19)
+(-0.200908 0.457672 0)
+(-0.201721 0.455117 0)
+(-0.20242 0.452319 -2.05217e-19)
+(-0.203016 0.449302 -4.0404e-19)
+(-0.203515 0.446089 0)
+(-0.203924 0.4427 0)
+(-0.204242 0.439153 -1.92905e-19)
+(-0.20447 0.435462 0)
+(-0.204604 0.431637 1.87588e-19)
+(-0.204637 0.427687 1.84895e-19)
+(-0.204561 0.42362 -1.82595e-19)
+(-0.204367 0.41944 0)
+(-0.20404 0.415148 0)
+(-0.203566 0.410742 0)
+(-0.202929 0.40622 0)
+(-0.202114 0.401578 1.71918e-19)
+(-0.201104 0.396811 1.70077e-19)
+(-0.199881 0.391911 0)
+(-0.198429 0.386872 0)
+(-0.196731 0.381685 1.64955e-19)
+(-0.194769 0.37634 0)
+(-0.192529 0.370828 0)
+(-0.189997 0.365141 0)
+(-0.187159 0.359268 3.17616e-19)
+(-0.184005 0.353199 0)
+(-0.180522 0.346921 0)
+(-0.176699 0.340423 3.09251e-19)
+(-0.172527 0.333695 0)
+(-0.167997 0.326726 3.03643e-19)
+(-0.1631 0.319509 0)
+(-0.15783 0.312036 0)
+(-0.152181 0.304303 0)
+(-0.146151 0.296305 -2.92286e-19)
+(-0.139735 0.288041 -2.8964e-19)
+(-0.132932 0.279508 2.86793e-19)
+(-0.125743 0.270707 -1.41349e-22)
+(-0.118166 0.26164 -2.80887e-19)
+(-0.110204 0.252308 0)
+(-0.101859 0.242716 0)
+(-0.0931326 0.232867 0)
+(-0.084029 0.222767 0)
+(-0.0745516 0.212422 2.65844e-19)
+(-0.0647042 0.20184 2.6274e-19)
+(-0.054491 0.191028 -2.59497e-19)
+(-0.0439161 0.179994 2.56243e-19)
+(-0.0329837 0.168749 2.52933e-19)
+(-0.0216976 0.157301 -2.49565e-19)
+(-0.0100617 0.145661 0)
+(0.00192066 0.133839 0)
+(0.0142463 0.121847 5.68367e-23)
+(0.0269125 0.109697 -7.03247e-23)
+(0.0399172 0.0973992 2.30122e-19)
+(0.053259 0.0849673 -2.25901e-19)
+(0.0669366 0.0724135 -1.08459e-22)
+(0.0809497 0.0597507 2.17439e-19)
+(0.0952982 0.0469919 -4.26049e-19)
+(0.109983 0.0341502 2.08694e-19)
+(0.125005 0.0212389 0)
+(0.140367 0.00827139 1.99599e-19)
+(0.156072 -0.00473946 -1.95054e-19)
+(0.172122 -0.017781 0)
+(0.188523 -0.0308402 -1.85211e-19)
+(0.205276 -0.0439036 0)
+(0.222389 -0.0569576 -1.74817e-19)
+(0.239864 -0.0699888 1.69777e-19)
+(0.257707 -0.0829838 1.65138e-19)
+(0.275923 -0.0959296 -3.19714e-19)
+(0.294517 -0.108813 0)
+(0.313493 -0.121621 0)
+(0.332857 -0.134341 2.89085e-19)
+(0.352614 -0.146959 0)
+(0.372769 -0.159462 2.68974e-19)
+(0.393325 -0.171837 2.5866e-19)
+(0.414288 -0.184071 0)
+(0.435662 -0.196151 2.37527e-19)
+(0.457452 -0.208066 0)
+(0.479661 -0.219801 0)
+(0.502294 -0.231345 -2.06417e-19)
+(0.525354 -0.242685 0)
+(0.548844 -0.25381 0)
+(0.572767 -0.264708 0)
+(0.597125 -0.275369 4.07952e-22)
+(0.621921 -0.285781 -1.54999e-19)
+(0.647155 -0.295935 1.44669e-19)
+(0.672828 -0.305821 1.34362e-19)
+(0.69894 -0.315431 0)
+(0.725489 -0.324755 -2.2733e-19)
+(0.752474 -0.333785 1.03296e-19)
+(0.779895 -0.342512 9.34721e-20)
+(0.807748 -0.350929 -8.30466e-20)
+(0.836031 -0.359027 0)
+(0.86474 -0.366799 6.30098e-20)
+(0.893873 -0.374238 5.33472e-20)
+(0.923422 -0.381337 4.3224e-20)
+(0.953384 -0.388088 0)
+(0.983753 -0.394486 -2.39443e-20)
+(1.01452 -0.400522 0)
+(1.04569 -0.406193 0)
+(1.07723 -0.411493 9.60172e-21)
+(1.10915 -0.416424 -1.40857e-20)
+(1.14142 -0.420989 0)
+(1.17405 -0.425191 0)
+(1.20702 -0.429022 0)
+(1.24031 -0.432476 5.04969e-20)
+(1.27392 -0.43555 0)
+(1.30783 -0.438247 0)
+(1.34203 -0.440568 -7.65817e-20)
+(1.3765 -0.442516 -8.50236e-20)
+(1.41123 -0.444094 -1.86651e-19)
+(1.44621 -0.445306 2.0297e-19)
+(1.48141 -0.446156 -2.19013e-19)
+(1.51683 -0.44665 1.17439e-19)
+(1.55244 -0.446795 0)
+(1.58824 -0.446599 2.65582e-19)
+(1.6242 -0.44607 0)
+(1.66031 -0.445217 0)
+(1.69657 -0.444053 0)
+(1.73294 -0.442587 3.2336e-19)
+(1.76942 -0.440831 6.73782e-19)
+(1.80599 -0.438799 -3.50378e-19)
+(1.84265 -0.436502 -3.63102e-19)
+(1.87938 -0.433956 3.758e-19)
+(1.91617 -0.431174 3.88178e-19)
+(1.953 -0.428173 -4.00237e-19)
+(1.98988 -0.424969 -3.59629e-22)
+(2.02679 -0.421579 0)
+(2.06373 -0.41802 0)
+(2.10069 -0.414313 4.45259e-19)
+(2.13767 -0.410476 0)
+(2.17468 -0.406531 -4.65837e-19)
+(2.21171 -0.402499 0)
+(2.24877 -0.398403 0)
+(2.28586 -0.394265 4.94275e-19)
+(2.323 -0.390107 1.00658e-18)
+(2.36019 -0.38595 0)
+(2.39746 -0.38181 0)
+(2.43482 -0.377699 -1.05564e-18)
+(2.47231 -0.373625 5.35521e-19)
+(2.50994 -0.369584 -5.42715e-19)
+(2.54776 -0.365562 5.49579e-19)
+(2.58581 -0.361529 -5.56108e-19)
+(2.62412 -0.357432 -5.61932e-19)
+(2.66277 -0.353193 -1.13589e-18)
+(2.70182 -0.348698 0)
+(2.74139 -0.343795 0)
+(2.7816 -0.338289 0)
+(2.82283 -0.331954 5.87576e-19)
+(2.86471 -0.324544 -5.91144e-19)
+(2.91047 -0.315805 -5.94938e-19)
+(2.95049 -0.305521 0)
+(-0.00716443 0.294178 1.74092e-18)
+(-0.0176395 0.362772 7.82677e-19)
+(-0.0290161 0.385507 0)
+(-0.0410175 0.398161 0)
+(-0.0528564 0.407214 0)
+(-0.0641088 0.414548 0)
+(-0.0746486 0.420904 0)
+(-0.0844245 0.426627 0)
+(-0.0934022 0.431888 0)
+(-0.101566 0.436772 -3.51155e-19)
+(-0.108919 0.44132 3.36656e-19)
+(-0.115478 0.445542 0)
+(-0.12127 0.449438 0)
+(-0.12633 0.452999 -3.05768e-19)
+(-0.130696 0.45621 0)
+(-0.134409 0.459058 5.80695e-19)
+(-0.137508 0.46153 -2.83692e-19)
+(-0.140036 0.463613 0)
+(-0.14203 0.465299 0)
+(-0.143529 0.466584 0)
+(-0.144567 0.467465 -2.60381e-19)
+(-0.145179 0.467943 -2.55452e-19)
+(-0.145397 0.468024 0)
+(-0.145251 0.467715 0)
+(-0.144772 0.467027 -2.41532e-19)
+(-0.143984 0.465975 2.37483e-19)
+(-0.142914 0.464576 0)
+(-0.141583 0.46285 0)
+(-0.140012 0.460815 -2.26101e-19)
+(-0.138217 0.458493 -2.22531e-19)
+(-0.136214 0.455908 0)
+(-0.134013 0.453077 0)
+(-0.131623 0.450022 0)
+(-0.129049 0.44676 2.09941e-19)
+(-0.126295 0.443311 0)
+(-0.123359 0.439688 0)
+(-0.120237 0.435905 -2.01964e-19)
+(-0.116922 0.431972 -1.99536e-19)
+(-0.113404 0.427896 -1.97159e-19)
+(-0.109673 0.423683 0)
+(-0.105714 0.419335 1.92922e-19)
+(-0.101512 0.414856 0)
+(-0.097051 0.410245 0)
+(-0.0923142 0.405499 0)
+(-0.0872847 0.400615 -3.71426e-19)
+(-0.0819461 0.39559 0)
+(-0.0762825 0.390419 -3.64969e-19)
+(-0.0702787 0.385097 0)
+(-0.0639203 0.379616 0)
+(-0.0571941 0.37397 -3.55864e-19)
+(-0.0500877 0.368151 0)
+(-0.0425907 0.362154 -3.50048e-19)
+(-0.0346952 0.355971 3.47199e-19)
+(-0.026394 0.349596 0)
+(-0.0176813 0.343018 3.4156e-19)
+(-0.00855218 0.336226 3.38741e-19)
+(0.000996867 0.329212 -3.35625e-19)
+(0.0109677 0.321965 0)
+(0.0213601 0.314479 -6.56729e-19)
+(0.0321722 0.306747 0)
+(0.0434002 0.298766 0)
+(0.0550386 0.290532 3.16993e-19)
+(0.0670803 0.282043 0)
+(0.0795169 0.273298 9.63365e-23)
+(0.0923388 0.264297 -3.05449e-19)
+(0.105535 0.255043 1.29443e-22)
+(0.119095 0.245536 0)
+(0.133006 0.235781 0)
+(0.147255 0.225781 0)
+(0.161831 0.215542 0)
+(0.176719 0.205068 2.81115e-19)
+(0.191907 0.194367 0)
+(0.207382 0.183444 -2.7302e-19)
+(0.223132 0.172308 0)
+(0.239144 0.160967 0)
+(0.255408 0.14943 -2.60324e-19)
+(0.271912 0.137704 -2.55737e-19)
+(0.288646 0.125801 0)
+(0.305602 0.11373 0)
+(0.322769 0.1015 2.42949e-19)
+(0.340142 0.0891239 -4.76712e-19)
+(0.357714 0.076611 -3.4653e-22)
+(0.375478 0.0639732 2.29577e-19)
+(0.393431 0.0512224 -2.25053e-19)
+(0.411569 0.0383705 2.20124e-19)
+(0.429889 0.0254298 2.15906e-19)
+(0.44839 0.0124127 2.10895e-19)
+(0.46707 -0.00066867 0)
+(0.48593 -0.0138025 -6.04172e-19)
+(0.504973 -0.0269768 -3.92339e-19)
+(0.524201 -0.0401792 0)
+(0.543615 -0.0533968 0)
+(0.563219 -0.0666164 0)
+(0.583017 -0.079825 7.03387e-19)
+(0.603014 -0.0930093 -3.41792e-19)
+(0.623213 -0.106156 3.30644e-19)
+(0.643621 -0.119253 3.21115e-19)
+(0.664242 -0.132286 0)
+(0.685082 -0.145242 0)
+(0.706146 -0.158109 -2.89971e-19)
+(0.727441 -0.170873 0)
+(0.748973 -0.18352 0)
+(0.770746 -0.196038 -2.57927e-19)
+(0.792766 -0.208414 0)
+(0.81504 -0.220635 -2.37826e-19)
+(0.837574 -0.232688 -2.26632e-19)
+(0.860372 -0.24456 0)
+(0.883441 -0.256238 2.06496e-19)
+(0.906785 -0.26771 0)
+(0.930409 -0.278965 0)
+(0.954318 -0.289989 0)
+(0.978517 -0.300772 3.29022e-19)
+(1.00301 -0.311303 1.5383e-19)
+(1.0278 -0.321573 0)
+(1.05288 -0.33157 0)
+(1.07827 -0.341285 0)
+(1.10396 -0.35071 5.65915e-22)
+(1.12995 -0.359834 -2.05679e-19)
+(1.15625 -0.368649 9.2441e-20)
+(1.18285 -0.377146 8.28714e-20)
+(1.20975 -0.385318 7.23523e-20)
+(1.23696 -0.393157 -1.25256e-19)
+(1.26447 -0.400655 -5.25104e-20)
+(1.29227 -0.407806 -4.31081e-20)
+(1.32037 -0.414602 0)
+(1.34877 -0.421035 0)
+(1.37746 -0.427099 0)
+(1.40643 -0.432786 0)
+(1.43567 -0.438092 -1.00329e-20)
+(1.46519 -0.443019 -1.44605e-20)
+(1.49497 -0.44757 -2.36528e-20)
+(1.525 -0.451747 0)
+(1.55528 -0.455543 0)
+(1.5858 -0.458951 0)
+(1.61655 -0.46197 0)
+(1.64752 -0.4646 0)
+(1.67869 -0.466846 0)
+(1.71006 -0.468708 0)
+(1.74163 -0.470189 1.85816e-19)
+(1.77336 -0.471293 -2.02037e-19)
+(1.80527 -0.472026 2.17979e-19)
+(1.83733 -0.472391 0)
+(1.86953 -0.472398 0)
+(1.90186 -0.472053 0)
+(1.93431 -0.471367 2.78795e-19)
+(1.96687 -0.470349 0)
+(1.99952 -0.46901 0)
+(2.03226 -0.467362 0)
+(2.06508 -0.465418 -3.34787e-19)
+(2.09797 -0.463191 0)
+(2.13091 -0.460693 7.2153e-19)
+(2.16391 -0.457942 -3.73415e-19)
+(2.19695 -0.45495 -3.85645e-19)
+(2.23003 -0.451736 3.9755e-19)
+(2.26315 -0.448317 -2.56936e-22)
+(2.2963 -0.44471 0)
+(2.32948 -0.440935 0)
+(2.36269 -0.437011 -8.83537e-19)
+(2.39593 -0.43296 0)
+(2.42921 -0.428803 9.23965e-19)
+(2.46253 -0.424564 4.71452e-19)
+(2.4959 -0.420265 0)
+(2.52933 -0.41593 -4.89991e-19)
+(2.56283 -0.411585 -4.98619e-19)
+(2.59642 -0.407249 0)
+(2.63013 -0.402943 0)
+(2.66397 -0.39868 1.04477e-18)
+(2.69797 -0.394468 -5.29558e-19)
+(2.73218 -0.390308 -5.36538e-19)
+(2.76663 -0.386187 0)
+(2.80137 -0.382077 0)
+(2.83645 -0.377931 5.55712e-19)
+(2.87195 -0.373677 5.61309e-19)
+(2.90794 -0.369212 -5.66216e-19)
+(2.94456 -0.3644 0)
+(2.98192 -0.359069 0)
+(3.02041 -0.353023 0)
+(3.05965 -0.346056 0)
+(3.10279 -0.337921 0)
+(3.14023 -0.328567 0)
+(-0.00643763 0.315806 0)
+(-0.0160527 0.388144 -1.49707e-18)
+(-0.0264944 0.410913 0)
+(-0.0373994 0.422642 0)
+(-0.0480146 0.430305 -5.21807e-19)
+(-0.0579262 0.435975 4.51508e-19)
+(-0.0670004 0.440502 0)
+(-0.0751825 0.44431 3.75156e-19)
+(-0.0824424 0.44763 0)
+(-0.0887729 0.450593 0)
+(-0.0941873 0.453274 0)
+(-0.0987135 0.45571 0)
+(-0.102389 0.457915 0)
+(-0.105257 0.45989 2.935e-19)
+(-0.107364 0.461625 0)
+(-0.108757 0.463104 -2.80212e-19)
+(-0.109481 0.464311 -1.16956e-22)
+(-0.109582 0.465229 0)
+(-0.109098 0.465844 -2.64467e-19)
+(-0.108069 0.466144 0)
+(-0.106528 0.466122 -2.55643e-19)
+(-0.104508 0.465772 2.51565e-19)
+(-0.102037 0.465094 0)
+(-0.0991417 0.46409 0)
+(-0.0958448 0.462767 0)
+(-0.0921674 0.461131 -2.37368e-19)
+(-0.0881289 0.459192 2.34204e-19)
+(-0.0837458 0.456966 0)
+(-0.0790315 0.454465 2.283e-19)
+(-0.0739953 0.451705 0)
+(-0.0686427 0.4487 0)
+(-0.0629759 0.445469 2.20613e-19)
+(-0.0569944 0.442025 0)
+(-0.0506951 0.438382 0)
+(-0.0440731 0.43455 0)
+(-0.037119 0.430538 -2.12244e-19)
+(-0.0298209 0.426351 2.10509e-19)
+(-0.0221631 0.421999 2.08876e-19)
+(-0.0141292 0.417487 0)
+(-0.00570309 0.412821 0)
+(0.00313113 0.408003 0)
+(0.0123891 0.40303 0)
+(0.0220861 0.397902 -4.00412e-19)
+(0.0322375 0.392619 -3.96493e-19)
+(0.0428569 0.387179 7.8539e-19)
+(0.053956 0.381582 0)
+(0.0655441 0.375825 3.85049e-19)
+(0.0776288 0.369906 0)
+(0.0902156 0.363819 0)
+(0.103308 0.35756 3.73262e-19)
+(0.116909 0.351126 0)
+(0.131015 0.344513 3.65267e-19)
+(0.145625 0.337717 -7.22186e-19)
+(0.160736 0.330734 0)
+(0.176342 0.323555 -7.05962e-19)
+(0.192436 0.316172 -3.49052e-19)
+(0.209009 0.308578 0)
+(0.226049 0.300767 0)
+(0.243539 0.292735 3.36428e-19)
+(0.261463 0.284479 0)
+(0.279802 0.275996 0)
+(0.298536 0.267286 -3.23408e-19)
+(0.317641 0.258347 3.18478e-19)
+(0.337097 0.249181 3.1456e-19)
+(0.356879 0.239789 3.09541e-19)
+(0.376963 0.230172 6.10654e-19)
+(0.397327 0.220333 3.00525e-19)
+(0.417946 0.210275 0)
+(0.438797 0.200001 0)
+(0.459858 0.189517 0)
+(0.481106 0.178827 -2.82978e-19)
+(0.502519 0.167935 2.77773e-19)
+(0.524078 0.156848 0)
+(0.545763 0.145573 0)
+(0.567556 0.134115 0)
+(0.58944 0.122481 0)
+(0.6114 0.110681 6.88968e-22)
+(0.63342 0.0987207 0)
+(0.655488 0.0866094 0)
+(0.677592 0.0743554 0)
+(0.699722 0.0619676 4.73454e-19)
+(0.721871 0.0494555 -7.0962e-22)
+(0.74403 0.0368288 0)
+(0.766193 0.024098 -4.44812e-19)
+(0.788357 0.0112738 -2.18436e-19)
+(0.810519 -0.00163299 0)
+(0.832675 -0.0146119 -6.24905e-19)
+(0.854827 -0.027652 0)
+(0.876977 -0.0407427 3.97311e-19)
+(0.899123 -0.0538724 3.87073e-19)
+(0.921269 -0.0670291 -3.75446e-19)
+(0.943417 -0.0802007 0)
+(0.96557 -0.093375 0)
+(0.987735 -0.106539 -3.46139e-19)
+(1.00992 -0.119681 0)
+(1.03212 -0.132788 -3.25661e-19)
+(1.05435 -0.145846 0)
+(1.07662 -0.158843 -3.03872e-19)
+(1.09892 -0.171767 2.93636e-19)
+(1.12128 -0.184603 0)
+(1.1437 -0.197339 0)
+(1.16618 -0.20996 2.6291e-19)
+(1.18873 -0.222455 1.19455e-21)
+(1.21137 -0.234811 0)
+(1.23409 -0.247014 2.32171e-19)
+(1.25691 -0.259051 2.23053e-19)
+(1.27983 -0.270909 -2.11692e-19)
+(1.30287 -0.282575 0)
+(1.32602 -0.294036 1.91245e-19)
+(1.3493 -0.305281 0)
+(1.37271 -0.316297 1.70849e-19)
+(1.39627 -0.327072 -1.61645e-19)
+(1.41996 -0.337594 -1.51469e-19)
+(1.44381 -0.347855 0)
+(1.46782 -0.357843 0)
+(1.49198 -0.367547 0)
+(1.51631 -0.376959 1.11061e-19)
+(1.54081 -0.386068 2.01314e-19)
+(1.56548 -0.394865 -1.81418e-19)
+(1.59033 -0.40334 0)
+(1.61535 -0.411488 -7.1315e-20)
+(1.64054 -0.419297 1.22359e-19)
+(1.66592 -0.426764 6.36833e-22)
+(1.69148 -0.433878 -4.14971e-20)
+(1.71722 -0.440631 3.1926e-20)
+(1.74314 -0.447018 -2.24302e-20)
+(1.76923 -0.453029 0)
+(1.7955 -0.458656 0)
+(1.82195 -0.463897 5.09955e-21)
+(1.84856 -0.468751 1.42749e-20)
+(1.87535 -0.473223 2.33528e-20)
+(1.90229 -0.477312 0)
+(1.92939 -0.481012 0)
+(1.95664 -0.484318 0)
+(1.98403 -0.487228 0)
+(2.01156 -0.489743 0)
+(2.03922 -0.491866 0)
+(2.06701 -0.493598 1.67997e-19)
+(2.09492 -0.494942 -1.84244e-19)
+(2.12294 -0.495902 -2.0023e-19)
+(2.15107 -0.496482 2.15948e-19)
+(2.1793 -0.496688 0)
+(2.20761 -0.496528 0)
+(2.23601 -0.496009 0)
+(2.26448 -0.495143 -2.75891e-19)
+(2.29302 -0.493939 -2.90276e-19)
+(2.32162 -0.49241 0)
+(2.35028 -0.490567 3.17925e-19)
+(2.37899 -0.488423 0)
+(2.40774 -0.485992 0)
+(2.43654 -0.483289 -7.14245e-19)
+(2.46537 -0.480328 0)
+(2.49424 -0.477127 0)
+(2.52315 -0.473701 -3.93404e-19)
+(2.55208 -0.470071 -8.09916e-19)
+(2.58106 -0.466254 0)
+(2.61007 -0.462271 0)
+(2.63912 -0.458142 1.97437e-22)
+(2.66823 -0.453889 -4.4756e-19)
+(2.69739 -0.449536 -2.09016e-22)
+(2.72661 -0.445105 -2.11636e-22)
+(2.75592 -0.440622 -4.76188e-19)
+(2.78531 -0.436112 -4.85081e-19)
+(2.81482 -0.4316 4.93646e-19)
+(2.84445 -0.42711 0)
+(2.87424 -0.422662 0)
+(2.90421 -0.418274 -5.17576e-19)
+(2.9344 -0.413955 5.24826e-19)
+(2.96486 -0.409707 1.06329e-18)
+(2.99561 -0.405521 -5.38135e-19)
+(3.02673 -0.401372 0)
+(3.05827 -0.397218 0)
+(3.09031 -0.392994 -1.11157e-18)
+(3.12294 -0.388608 1.68298e-18)
+(3.15631 -0.383938 -1.13126e-18)
+(3.19053 -0.378833 -1.13977e-18)
+(3.22598 -0.37312 0)
+(3.26227 -0.366628 1.15351e-18)
+(3.30249 -0.359104 0)
+(3.33711 -0.350659 0)
+(-0.00604183 0.335406 0)
+(-0.0153368 0.411211 3.15503e-18)
+(-0.0253133 0.433786 9.45249e-19)
+(-0.0354786 0.44434 0)
+(-0.0451128 0.450344 1.12155e-18)
+(-0.0538303 0.454077 6.21526e-22)
+(-0.0615117 0.456517 -4.37961e-19)
+(-0.0681205 0.458176 4.02299e-22)
+(-0.0736493 0.459353 3.81065e-19)
+(-0.0781155 0.460227 0)
+(-0.0815553 0.460906 0)
+(-0.0840156 0.461448 -3.383e-19)
+(-0.0855486 0.461879 0)
+(-0.0862074 0.4622 -3.21584e-19)
+(-0.0860446 0.462403 0)
+(-0.0851105 0.462467 0)
+(-0.0834508 0.462368 6.0796e-19)
+(-0.0811069 0.46208 0)
+(-0.0781142 0.461577 2.94819e-19)
+(-0.0745044 0.46084 0)
+(-0.0703049 0.459852 2.87015e-19)
+(-0.0655403 0.4586 0)
+(-0.0602303 0.457075 0)
+(-0.0543897 0.455271 0)
+(-0.0480287 0.45319 0)
+(-0.041155 0.450835 0)
+(-0.0337749 0.448215 -5.39648e-19)
+(-0.025893 0.445335 0)
+(-0.0175105 0.4422 0)
+(-0.00862289 0.438816 2.63875e-19)
+(0.000778748 0.43519 0)
+(0.0107074 0.431332 -5.19345e-19)
+(0.0211769 0.427257 0)
+(0.0322006 0.422977 0)
+(0.0437912 0.418499 0)
+(0.0559642 0.413826 -2.50213e-19)
+(0.0687368 0.408961 0)
+(0.0821276 0.403909 0)
+(0.0961519 0.398674 -4.87579e-19)
+(0.110823 0.393266 0)
+(0.12615 0.38769 0)
+(0.142139 0.381947 4.73436e-19)
+(0.158796 0.376039 6.84807e-22)
+(0.176122 0.369967 7.13151e-22)
+(0.194116 0.363735 -4.58762e-19)
+(0.212774 0.357348 -4.52596e-19)
+(0.232085 0.350808 0)
+(0.252039 0.344115 0)
+(0.272621 0.337268 0)
+(0.293813 0.33027 0)
+(0.315597 0.323118 0)
+(0.337951 0.315809 0)
+(0.360861 0.308342 8.24377e-19)
+(0.384304 0.300713 4.05698e-19)
+(0.408256 0.292918 8.00222e-19)
+(0.432691 0.284952 0)
+(0.457579 0.276813 0)
+(0.482886 0.268498 0)
+(0.508577 0.260005 0)
+(0.534618 0.251333 3.68856e-19)
+(0.560971 0.24248 0)
+(0.587601 0.233446 3.56553e-19)
+(0.61447 0.224231 -3.51537e-19)
+(0.641544 0.214834 0)
+(0.668787 0.205255 -1.11407e-21)
+(0.696166 0.195496 -6.65794e-19)
+(0.723648 0.185557 -6.53913e-19)
+(0.751201 0.175439 0)
+(0.778796 0.165144 -3.14661e-19)
+(0.806404 0.154675 0)
+(0.833999 0.144033 0)
+(0.861555 0.133222 -2.98577e-19)
+(0.88905 0.122245 2.91808e-19)
+(0.916461 0.111106 0)
+(0.943771 0.0998091 0)
+(0.97096 0.0883589 0)
+(0.998013 0.0767608 1.11152e-21)
+(1.02492 0.0650207 0)
+(1.05165 0.0531444 0)
+(1.07822 0.0411381 2.53496e-19)
+(1.1046 0.0290086 -2.49237e-19)
+(1.1308 0.0167633 -7.29581e-19)
+(1.1568 0.00441011 0)
+(1.1826 -0.00804241 9.30859e-19)
+(1.20819 -0.0205854 -4.53407e-19)
+(1.23359 -0.0332097 0)
+(1.25878 -0.0459061 4.33139e-19)
+(1.28378 -0.0586654 0)
+(1.30857 -0.0714775 0)
+(1.33317 -0.0843315 0)
+(1.35759 -0.0972162 1.9327e-21)
+(1.38181 -0.110121 0)
+(1.40586 -0.123033 0)
+(1.42974 -0.135943 3.53603e-19)
+(1.45346 -0.148836 0)
+(1.47701 -0.161702 0)
+(1.50043 -0.174526 0)
+(1.5237 -0.187297 3.11928e-19)
+(1.54685 -0.200001 -6.00559e-19)
+(1.56988 -0.212626 2.88692e-19)
+(1.5928 -0.225158 2.7797e-19)
+(1.61562 -0.237583 -2.68853e-19)
+(1.63835 -0.249889 2.58145e-19)
+(1.66101 -0.262063 0)
+(1.6836 -0.274093 -1.47201e-21)
+(1.70613 -0.285963 -2.24737e-19)
+(1.72861 -0.29766 2.15569e-19)
+(1.75105 -0.309171 -2.03633e-19)
+(1.77347 -0.320483 -1.94451e-19)
+(1.79586 -0.331584 -1.82654e-19)
+(1.81825 -0.342463 -1.24825e-21)
+(1.84064 -0.353104 0)
+(1.86303 -0.363498 0)
+(1.88544 -0.373635 -1.41139e-19)
+(1.90787 -0.383502 0)
+(1.93033 -0.393087 1.20647e-19)
+(1.95283 -0.402383 -1.10477e-19)
+(1.97537 -0.411377 -1.01347e-19)
+(1.99796 -0.420059 9.44018e-22)
+(2.0206 -0.428422 0)
+(2.0433 -0.436457 0)
+(2.06606 -0.444156 -6.13712e-20)
+(2.08889 -0.451509 7.92953e-22)
+(2.11179 -0.458511 4.18135e-20)
+(2.13477 -0.465151 -3.21541e-20)
+(2.15781 -0.471422 2.25802e-20)
+(2.18093 -0.477314 0)
+(2.20413 -0.482821 0)
+(2.2274 -0.487938 0)
+(2.25075 -0.492666 0)
+(2.27418 -0.497008 0)
+(2.29767 -0.500962 0)
+(2.32124 -0.504522 0)
+(2.34488 -0.507685 0)
+(2.36858 -0.51045 0)
+(2.39235 -0.512817 0)
+(2.41618 -0.514787 -1.52492e-19)
+(2.44007 -0.516363 -1.68347e-19)
+(2.46402 -0.517547 3.69659e-19)
+(2.48802 -0.518342 4.01509e-19)
+(2.51207 -0.518753 -2.16196e-19)
+(2.53617 -0.518786 -2.31953e-19)
+(2.56031 -0.518448 0)
+(2.58448 -0.517749 0)
+(2.6087 -0.516699 0)
+(2.63295 -0.515309 5.80594e-19)
+(2.65723 -0.513591 0)
+(2.68153 -0.511557 -3.17682e-19)
+(2.70587 -0.509221 0)
+(2.73024 -0.506597 0)
+(2.75463 -0.5037 3.5655e-19)
+(2.77905 -0.500546 3.68861e-19)
+(2.8035 -0.497153 0)
+(2.82799 -0.493537 7.85057e-19)
+(2.85251 -0.489719 8.07762e-19)
+(2.87708 -0.485717 0)
+(2.90169 -0.481552 0)
+(2.92637 -0.477247 4.36076e-19)
+(2.95111 -0.472824 4.46152e-19)
+(2.97594 -0.468307 -4.55906e-19)
+(3.00086 -0.46372 -1.32998e-22)
+(3.02589 -0.459089 1.34744e-22)
+(3.05105 -0.454441 1.3477e-22)
+(3.07636 -0.449803 -1.33262e-22)
+(3.10184 -0.4452 0)
+(3.12752 -0.440654 0)
+(3.15344 -0.436185 0)
+(3.17964 -0.431806 0)
+(3.20616 -0.427519 -5.29126e-19)
+(3.23305 -0.423319 5.35634e-19)
+(3.26038 -0.419185 0)
+(3.28821 -0.41508 0)
+(3.31663 -0.410947 1.10619e-18)
+(3.34575 -0.406702 -1.11636e-18)
+(3.3757 -0.402239 3.6341e-22)
+(3.40661 -0.397423 1.13418e-18)
+(3.43886 -0.392103 0)
+(3.47205 -0.386134 -1.14789e-18)
+(3.50918 -0.379248 -1.15343e-18)
+(3.5409 -0.371724 0)
+(-0.00622081 0.353072 0)
+(-0.0159739 0.431542 -1.64003e-18)
+(-0.0260868 0.453508 -9.94249e-19)
+(-0.0359852 0.46254 0)
+(-0.0449689 0.46658 -1.19507e-18)
+(-0.0527024 0.468132 -1.03948e-18)
+(-0.0591201 0.468312 -4.84073e-22)
+(-0.0642382 0.467722 -4.36239e-19)
+(-0.0680982 0.466717 -8.25076e-19)
+(-0.0707602 0.465517 3.95062e-19)
+(-0.0722944 0.464249 3.8165e-19)
+(-0.0727718 0.462978 -9.44261e-23)
+(-0.0722585 0.461724 0)
+(-0.0708129 0.460484 3.55809e-19)
+(-0.0684874 0.459239 -3.50154e-19)
+(-0.0653284 0.457956 -3.45414e-19)
+(-0.0613741 0.456598 -3.41497e-19)
+(-0.0566524 0.455125 0)
+(-0.0511809 0.4535 0)
+(-0.0449721 0.451696 0)
+(-0.0380362 0.449693 0)
+(-0.030381 0.447468 0)
+(-0.022006 0.445 0)
+(-0.012902 0.442273 0)
+(-0.00305356 0.439279 0)
+(0.00755678 0.436018 -3.24171e-19)
+(0.018945 0.432499 3.22613e-19)
+(0.0311249 0.428728 0)
+(0.0441116 0.4247 -3.18643e-19)
+(0.0579271 0.420412 -3.17296e-19)
+(0.0725984 0.415865 0)
+(0.0881534 0.411066 6.26503e-19)
+(0.104615 0.406031 0)
+(0.121996 0.400775 0)
+(0.140306 0.395305 0)
+(0.159553 0.389622 6.07907e-19)
+(0.179745 0.38373 0)
+(0.200886 0.377638 0)
+(0.222971 0.371357 5.8879e-19)
+(0.245991 0.364907 -5.80085e-19)
+(0.269928 0.358299 0)
+(0.294755 0.35154 -5.65567e-19)
+(0.320444 0.344636 1.11265e-18)
+(0.346964 0.337593 5.4828e-19)
+(0.374281 0.330422 -5.37696e-19)
+(0.402355 0.323136 1.58253e-21)
+(0.43114 0.315745 -5.19076e-19)
+(0.460592 0.308255 5.09619e-19)
+(0.490665 0.300664 -5.00135e-19)
+(0.521316 0.292966 0)
+(0.552507 0.285156 0)
+(0.584201 0.277239 0)
+(0.616361 0.269218 -4.64703e-19)
+(0.648938 0.261088 -1.68875e-21)
+(0.681887 0.252849 -4.46639e-19)
+(0.715158 0.244499 0)
+(0.748702 0.236037 0)
+(0.78247 0.227462 -4.18551e-19)
+(0.816412 0.21877 -4.10004e-19)
+(0.850482 0.209959 -1.71259e-21)
+(0.884634 0.201026 0)
+(0.918825 0.191968 -7.72167e-19)
+(0.953012 0.182781 -3.77276e-19)
+(0.987158 0.173464 0)
+(1.02122 0.164012 -3.63509e-19)
+(1.05518 0.154423 7.10328e-19)
+(1.08898 0.144696 3.48636e-19)
+(1.12261 0.134827 3.39767e-19)
+(1.15603 0.124817 3.34326e-19)
+(1.18923 0.114663 0)
+(1.22217 0.104366 -3.18935e-19)
+(1.25483 0.0939247 0)
+(1.28721 0.0833396 -3.07218e-19)
+(1.31927 0.0726118 0)
+(1.351 0.0617429 2.92785e-19)
+(1.38239 0.050735 2.86493e-19)
+(1.41343 0.0395912 1.49591e-21)
+(1.44412 0.0283151 0)
+(1.47443 0.0169102 2.68106e-19)
+(1.50437 0.00538034 -2.63558e-19)
+(1.53392 -0.00626967 0)
+(1.5631 -0.0180347 2.79677e-21)
+(1.59189 -0.0299082 -4.88199e-19)
+(1.6203 -0.0418831 -4.78789e-19)
+(1.64833 -0.0539515 4.66425e-19)
+(1.67598 -0.0661061 0)
+(1.70325 -0.078339 4.39505e-19)
+(1.73015 -0.0906417 0)
+(1.75669 -0.103005 0)
+(1.78286 -0.115419 4.03948e-19)
+(1.80869 -0.127874 3.94678e-19)
+(1.83418 -0.140357 0)
+(1.85933 -0.15286 -3.69201e-19)
+(1.88415 -0.165369 -7.17794e-19)
+(1.90867 -0.177874 0)
+(1.93288 -0.190363 0)
+(1.95679 -0.202822 0)
+(1.98043 -0.215238 3.1268e-19)
+(2.0038 -0.2276 3.03571e-19)
+(2.02691 -0.239893 -5.82914e-19)
+(2.04977 -0.252104 -5.6081e-19)
+(2.0724 -0.26422 -2.68462e-19)
+(2.0948 -0.276227 -2.57527e-19)
+(2.117 -0.288114 2.46638e-19)
+(2.139 -0.299868 -2.37532e-19)
+(2.16081 -0.311473 2.26688e-19)
+(2.18245 -0.322914 0)
+(2.20392 -0.334179 2.05142e-19)
+(2.22525 -0.345255 0)
+(2.24644 -0.356131 1.83791e-19)
+(2.2675 -0.366791 -1.73192e-19)
+(2.28845 -0.377221 0)
+(2.30928 -0.387409 0)
+(2.33002 -0.397348 1.41718e-19)
+(2.35067 -0.407024 0)
+(2.37123 -0.416423 -2.40826e-19)
+(2.39173 -0.425537 1.1809e-21)
+(2.41215 -0.434354 0)
+(2.43252 -0.442865 9.04738e-20)
+(2.45284 -0.451062 0)
+(2.47312 -0.45893 0)
+(2.49336 -0.466466 -5.96191e-20)
+(2.51356 -0.473661 5.07734e-20)
+(2.53374 -0.480504 4.01773e-20)
+(2.55389 -0.486988 -6.11728e-20)
+(2.57403 -0.493104 -4.21746e-20)
+(2.59415 -0.498842 0)
+(2.61425 -0.504197 0)
+(2.63435 -0.509161 0)
+(2.65445 -0.513737 -3.18425e-20)
+(2.67453 -0.517925 0)
+(2.69462 -0.521724 0)
+(2.7147 -0.525127 0)
+(2.73477 -0.528134 0)
+(2.75484 -0.530743 0)
+(2.77491 -0.532953 0)
+(2.79498 -0.534766 3.04643e-19)
+(2.81504 -0.536184 0)
+(2.83511 -0.537208 -3.69351e-19)
+(2.85518 -0.537842 -2.00161e-19)
+(2.87525 -0.538091 0)
+(2.89532 -0.53796 2.30937e-19)
+(2.91539 -0.537457 2.46316e-19)
+(2.93546 -0.536593 0)
+(2.95553 -0.535376 2.75256e-19)
+(2.9756 -0.53382 -2.89005e-19)
+(2.99568 -0.531936 0)
+(3.01576 -0.529736 0)
+(3.03585 -0.527236 0)
+(3.05595 -0.524449 0)
+(3.07606 -0.521391 3.5486e-19)
+(3.0962 -0.518078 -7.34051e-19)
+(3.11636 -0.514529 0)
+(3.13656 -0.510762 -3.90508e-19)
+(3.15679 -0.506795 -4.01797e-19)
+(3.17708 -0.502651 0)
+(3.19743 -0.49835 0)
+(3.21785 -0.493915 0)
+(3.23836 -0.489369 0)
+(3.25898 -0.484737 4.53485e-19)
+(3.27972 -0.480045 -9.25861e-19)
+(3.30059 -0.475319 4.72067e-19)
+(3.32163 -0.470586 9.61634e-19)
+(3.34286 -0.465876 -4.89326e-19)
+(3.3643 -0.461215 -4.97414e-19)
+(3.38599 -0.456629 0)
+(3.40797 -0.452139 0)
+(3.43028 -0.447759 0)
+(3.45298 -0.443496 0)
+(3.47611 -0.439347 0)
+(3.49975 -0.435296 0)
+(3.52398 -0.431311 0)
+(3.54888 -0.42734 0)
+(3.57457 -0.423314 0)
+(3.6012 -0.419134 2.2447e-18)
+(3.62889 -0.414685 0)
+(3.65802 -0.409829 0)
+(3.68819 -0.40445 -1.1448e-18)
+(3.72229 -0.398248 1.15185e-18)
+(3.75127 -0.391689 0)
+(-0.00713254 0.370767 0)
+(-0.018307 0.450914 -1.69399e-18)
+(-0.0292137 0.471539 0)
+(-0.0392643 0.478425 0)
+(-0.0478047 0.480004 6.36314e-19)
+(-0.0546172 0.479017 5.57856e-19)
+(-0.0597578 0.476711 1.01698e-18)
+(-0.063342 0.473758 4.75507e-19)
+(-0.0654899 0.470552 4.52358e-19)
+(-0.0663202 0.467324 -4.36281e-19)
+(-0.0659438 0.464196 -8.49748e-19)
+(-0.0644535 0.461213 4.1671e-19)
+(-0.0619164 0.458372 0)
+(-0.0583773 0.455648 0)
+(-0.0538702 0.453007 8.08967e-19)
+(-0.0484232 0.450406 4.03204e-19)
+(-0.0420514 0.447787 0)
+(-0.0347478 0.445086 0)
+(-0.0264863 0.442254 0)
+(-0.0172362 0.439258 0)
+(-0.00697224 0.436075 0)
+(0.00433239 0.432677 0)
+(0.0167173 0.429028 0)
+(0.0302355 0.425096 0)
+(0.0449506 0.420868 4.10545e-19)
+(0.0609211 0.416344 4.11227e-19)
+(0.0781905 0.411539 -4.09951e-19)
+(0.0967843 0.406458 0)
+(0.116728 0.40109 4.08242e-19)
+(0.138053 0.395418 0)
+(0.160788 0.389447 -4.02167e-19)
+(0.184954 0.383187 -3.99535e-19)
+(0.21055 0.376673 0)
+(0.237556 0.369941 -3.8914e-19)
+(0.265937 0.363006 0)
+(0.295647 0.355873 0)
+(0.326638 0.348555 0)
+(0.358849 0.341073 0)
+(0.392214 0.333449 0)
+(0.426658 0.325714 6.992e-19)
+(0.462105 0.317894 -6.81136e-19)
+(0.498461 0.310009 0)
+(0.535637 0.302073 -6.5187e-19)
+(0.573547 0.294097 0)
+(0.612106 0.286095 1.23838e-18)
+(0.651236 0.278073 6.05048e-19)
+(0.69087 0.270028 5.89975e-19)
+(0.730937 0.261948 -1.14813e-18)
+(0.771378 0.253835 5.61099e-19)
+(0.812141 0.245695 0)
+(0.853171 0.237532 0)
+(0.894413 0.229337 5.18627e-19)
+(0.935799 0.221105 0)
+(0.977271 0.212839 -9.89658e-19)
+(1.01877 0.204537 -4.81656e-19)
+(1.06025 0.196196 0)
+(1.10165 0.187811 0)
+(1.14292 0.179378 8.97906e-19)
+(1.18403 0.170888 4.39476e-19)
+(1.22492 0.162335 -4.2916e-19)
+(1.26557 0.153711 0)
+(1.30593 0.145008 4.09446e-19)
+(1.34597 0.13622 4.00024e-19)
+(1.38567 0.12734 0)
+(1.425 0.11836 0)
+(1.46392 0.109275 -3.73339e-19)
+(1.50243 0.100077 3.62833e-19)
+(1.54049 0.0907635 -3.56735e-19)
+(1.5781 0.0813283 0)
+(1.61524 0.0717676 0)
+(1.65188 0.0620781 1.97971e-21)
+(1.68803 0.0522569 0)
+(1.72367 0.0423018 -3.16691e-19)
+(1.75879 0.0322114 3.09579e-19)
+(1.79338 0.0219852 -3.04467e-19)
+(1.82744 0.0116233 -1.83493e-21)
+(1.86097 0.00112702 5.79843e-19)
+(1.89396 -0.00950189 0)
+(1.92641 -0.020262 -2.7746e-19)
+(1.95832 -0.031151 0)
+(1.98969 -0.0421653 0)
+(2.02053 -0.0533005 5.14848e-19)
+(2.05083 -0.0645519 5.01492e-19)
+(2.08061 -0.0759132 0)
+(2.10986 -0.0873779 4.72198e-19)
+(2.1386 -0.0989393 -4.59423e-19)
+(2.16683 -0.11059 -4.49807e-19)
+(2.19456 -0.122322 0)
+(2.2218 -0.134127 0)
+(2.24855 -0.145996 -8.22266e-19)
+(2.27484 -0.157919 0)
+(2.30066 -0.169885 0)
+(2.32604 -0.181883 3.76304e-19)
+(2.35097 -0.193902 3.64416e-19)
+(2.37548 -0.20593 0)
+(2.39957 -0.217955 3.38427e-19)
+(2.42326 -0.229965 3.26848e-19)
+(2.44656 -0.241947 -6.33049e-19)
+(2.46949 -0.253889 0)
+(2.49205 -0.265777 2.94794e-19)
+(2.51426 -0.277598 2.83442e-19)
+(2.53614 -0.289337 2.13143e-21)
+(2.5577 -0.300979 2.07449e-21)
+(2.57895 -0.312514 -2.49772e-19)
+(2.5999 -0.323928 0)
+(2.62056 -0.335204 0)
+(2.64096 -0.346329 0)
+(2.66109 -0.357288 2.03934e-19)
+(2.68097 -0.368067 1.93127e-19)
+(2.70063 -0.378658 0)
+(2.72005 -0.389045 -1.71694e-19)
+(2.73927 -0.39921 1.61075e-19)
+(2.75828 -0.409142 0)
+(2.77711 -0.418834 0)
+(2.79575 -0.428272 0)
+(2.81421 -0.437438 1.20642e-19)
+(2.83252 -0.446329 1.10318e-19)
+(2.85067 -0.454928 0)
+(2.86867 -0.463226 0)
+(2.88655 -0.471215 7.8651e-20)
+(2.90429 -0.478884 0)
+(2.9219 -0.486224 5.99023e-20)
+(2.9394 -0.493226 0)
+(2.95679 -0.499881 -4.03423e-20)
+(2.97407 -0.506179 6.14058e-20)
+(2.99126 -0.512114 4.23234e-20)
+(3.00835 -0.517674 0)
+(3.02535 -0.522853 3.18917e-21)
+(3.04228 -0.527645 0)
+(3.05913 -0.532049 -1.42054e-21)
+(3.0759 -0.536067 0)
+(3.0926 -0.539696 0)
+(3.10922 -0.542933 -8.64046e-20)
+(3.12579 -0.545774 1.03614e-19)
+(3.14228 -0.548219 -1.20578e-19)
+(3.15872 -0.550268 0)
+(3.1751 -0.551921 -3.06629e-19)
+(3.19143 -0.55318 0)
+(3.20771 -0.554046 1.85153e-19)
+(3.22395 -0.554524 2.01561e-19)
+(3.24014 -0.554616 -2.16958e-19)
+(3.25629 -0.55433 -2.32075e-19)
+(3.2724 -0.553674 -2.46409e-19)
+(3.28847 -0.552657 0)
+(3.30452 -0.551289 -2.75309e-19)
+(3.32054 -0.549584 -2.8966e-19)
+(3.33654 -0.547554 -3.03319e-19)
+(3.35252 -0.545211 0)
+(3.36849 -0.54257 0)
+(3.38446 -0.539646 0)
+(3.40044 -0.536455 -3.54806e-19)
+(3.41642 -0.533013 3.66988e-19)
+(3.43243 -0.52934 3.78953e-19)
+(3.44847 -0.525454 3.90497e-19)
+(3.46456 -0.521375 -4.01739e-19)
+(3.48071 -0.517125 0)
+(3.49692 -0.512725 0)
+(3.51323 -0.5082 0)
+(3.52964 -0.503573 0)
+(3.54617 -0.49887 -4.53417e-19)
+(3.56285 -0.494116 2.25408e-23)
+(3.57971 -0.48934 -4.7194e-19)
+(3.59675 -0.48457 -4.80777e-19)
+(3.61402 -0.479836 0)
+(3.63155 -0.475168 1.65528e-23)
+(3.64936 -0.470593 -5.05356e-19)
+(3.66752 -0.466134 5.12943e-19)
+(3.68605 -0.461809 5.20223e-19)
+(3.70503 -0.457627 0)
+(3.72452 -0.453588 0)
+(3.74458 -0.449681 0)
+(3.7653 -0.445879 0)
+(3.78678 -0.442139 -1.10363e-18)
+(3.80914 -0.438399 0)
+(3.83253 -0.434574 -1.12391e-18)
+(3.85709 -0.430562 0)
+(3.88317 -0.426238 0)
+(3.91041 -0.42151 1.14727e-18)
+(3.94155 -0.416041 0)
+(3.96796 -0.410485 0)
+(-0.00900627 0.390294 0)
+(-0.022832 0.470795 1.72657e-18)
+(-0.0351881 0.488878 0)
+(-0.0456251 0.492644 0)
+(-0.0536686 0.491061 -6.81873e-19)
+(-0.0593725 0.487107 0)
+(-0.0630323 0.482102 -5.58731e-19)
+(-0.0649109 0.476724 -5.29928e-19)
+(-0.0652131 0.471351 -5.12118e-19)
+(-0.0641064 0.466183 0)
+(-0.0617271 0.461307 4.95905e-19)
+(-0.058169 0.456716 4.9415e-19)
+(-0.0534641 0.452351 0)
+(-0.0475966 0.448155 -4.98812e-19)
+(-0.0405409 0.44409 -5.04512e-19)
+(-0.0322804 0.440105 0)
+(-0.022776 0.436108 0)
+(-0.0119331 0.431995 0)
+(0.000382381 0.427698 0)
+(0.014303 0.423187 0)
+(0.0299287 0.418452 0)
+(0.0473383 0.413449 0)
+(0.0666283 0.408099 5.58236e-19)
+(0.0879247 0.402343 0)
+(0.111348 0.396161 -1.11945e-18)
+(0.136988 0.389579 0)
+(0.164879 0.382647 5.53224e-19)
+(0.195005 0.375404 -5.45037e-19)
+(0.22733 0.367842 5.36415e-19)
+(0.261799 0.359958 -5.26143e-19)
+(0.298334 0.351782 5.16108e-19)
+(0.336829 0.343356 0)
+(0.377146 0.334747 0)
+(0.419135 0.326027 4.76155e-19)
+(0.462648 0.317225 4.60141e-19)
+(0.507488 0.308375 4.45673e-19)
+(0.553477 0.299513 0)
+(0.600439 0.290667 0)
+(0.648206 0.281861 0)
+(0.696626 0.273136 -3.90373e-19)
+(0.745572 0.264498 7.5855e-19)
+(0.794924 0.255932 -7.30661e-19)
+(0.844577 0.247443 0)
+(0.894428 0.23902 0)
+(0.944392 0.230664 -3.18488e-21)
+(0.994402 0.222398 0)
+(1.0444 0.214226 0)
+(1.09432 0.206132 1.21608e-18)
+(1.14412 0.198097 5.8915e-19)
+(1.19372 0.190102 5.72527e-19)
+(1.24307 0.182145 0)
+(1.29212 0.174226 -5.44275e-19)
+(1.3408 0.166344 0)
+(1.3891 0.158493 5.15566e-19)
+(1.43695 0.150662 5.02086e-19)
+(1.48434 0.142842 0)
+(1.53123 0.135024 0)
+(1.5776 0.127197 -4.64767e-19)
+(1.62343 0.119347 0)
+(1.66869 0.111464 0)
+(1.71337 0.103535 0)
+(1.75745 0.0955492 0)
+(1.80091 0.0874973 -4.08735e-19)
+(1.84376 0.0793682 3.99135e-19)
+(1.88597 0.0711521 -3.89837e-19)
+(1.92754 0.0628397 0)
+(1.96846 0.054423 -2.36389e-21)
+(2.00872 0.0458948 0)
+(2.04833 0.0372483 -3.55278e-19)
+(2.08727 0.0284777 3.47206e-19)
+(2.12555 0.0195779 3.41551e-19)
+(2.16316 0.0105444 0)
+(2.20011 0.00137383 3.26253e-19)
+(2.23639 -0.00793658 -3.18842e-19)
+(2.272 -0.0173889 0)
+(2.30696 -0.0269842 -2.05006e-21)
+(2.34125 -0.0367218 -2.01488e-21)
+(2.37488 -0.0466008 0)
+(2.40787 -0.0566208 0)
+(2.4402 -0.0667805 -2.73511e-19)
+(2.4719 -0.0770767 0)
+(2.50296 -0.0875058 2.5958e-19)
+(2.5334 -0.0980636 0)
+(2.56321 -0.108745 0)
+(2.59242 -0.119544 -4.82313e-19)
+(2.62103 -0.130453 3.39869e-21)
+(2.64905 -0.141467 -4.52798e-19)
+(2.67649 -0.152576 0)
+(2.70335 -0.163773 0)
+(2.72966 -0.175049 4.17904e-19)
+(2.75543 -0.186393 0)
+(2.78065 -0.197797 0)
+(2.80536 -0.209248 0)
+(2.82955 -0.220738 0)
+(2.85326 -0.232253 0)
+(2.87647 -0.24378 -6.86282e-19)
+(2.89922 -0.255306 -3.32607e-19)
+(2.92151 -0.266819 3.20793e-19)
+(2.94335 -0.278306 0)
+(2.96476 -0.289752 -2.94934e-19)
+(2.98575 -0.301144 -2.83411e-19)
+(3.00633 -0.312468 5.46253e-19)
+(3.02652 -0.32371 2.62849e-19)
+(3.04634 -0.334858 0)
+(3.06578 -0.345898 -2.38015e-19)
+(3.08486 -0.356813 0)
+(3.1036 -0.367589 0)
+(3.12201 -0.378212 -2.06671e-19)
+(3.1401 -0.388666 -1.95647e-19)
+(3.15789 -0.398942 0)
+(3.17537 -0.409025 3.45835e-19)
+(3.19257 -0.418896 -1.63004e-19)
+(3.2095 -0.428544 0)
+(3.22616 -0.437961 1.40004e-19)
+(3.24257 -0.447131 0)
+(3.25874 -0.456038 0)
+(3.27467 -0.464676 0)
+(3.29039 -0.473032 0)
+(3.30588 -0.481094 -8.82229e-20)
+(3.32117 -0.488853 -1.27234e-21)
+(3.33626 -0.496298 -6.81069e-20)
+(3.35116 -0.503419 0)
+(3.36588 -0.510208 0)
+(3.38042 -0.516653 -3.86318e-20)
+(3.39479 -0.522749 0)
+(3.40899 -0.528485 -1.94762e-20)
+(3.42304 -0.533852 0)
+(3.43694 -0.538841 -3.21279e-21)
+(3.4507 -0.543447 0)
+(3.46431 -0.547668 -1.54718e-21)
+(3.47779 -0.551505 0)
+(3.49115 -0.554956 0)
+(3.50437 -0.558017 8.6962e-20)
+(3.51747 -0.560687 1.19723e-21)
+(3.53045 -0.562965 1.21315e-19)
+(3.54333 -0.56485 0)
+(3.5561 -0.566343 3.10253e-19)
+(3.56877 -0.567445 0)
+(3.58136 -0.568157 -1.87742e-19)
+(3.59385 -0.568483 -2.02657e-19)
+(3.60627 -0.568427 2.18114e-19)
+(3.6186 -0.567994 -6.2388e-22)
+(3.63087 -0.567194 0)
+(3.64307 -0.566036 0)
+(3.65521 -0.564533 2.77523e-19)
+(3.66731 -0.562695 2.91075e-19)
+(3.67936 -0.560536 3.04779e-19)
+(3.69137 -0.558068 3.18491e-19)
+(3.70336 -0.555308 0)
+(3.71534 -0.552269 -3.44313e-19)
+(3.72731 -0.548968 -3.56775e-19)
+(3.73929 -0.545423 3.68936e-19)
+(3.75128 -0.541653 -3.80666e-19)
+(3.76331 -0.537676 -3.92252e-19)
+(3.77539 -0.533515 4.03534e-19)
+(3.78753 -0.529191 0)
+(3.79975 -0.524726 0)
+(3.81208 -0.520144 0)
+(3.82452 -0.515472 4.45666e-19)
+(3.83712 -0.510735 -4.55431e-19)
+(3.84988 -0.505959 4.64879e-19)
+(3.86283 -0.501172 4.74046e-19)
+(3.87601 -0.496406 0)
+(3.88945 -0.491691 0)
+(3.90318 -0.48706 4.99725e-19)
+(3.91724 -0.482541 -3.53123e-23)
+(3.93169 -0.47816 -1.03069e-18)
+(3.94657 -0.473938 -5.22666e-19)
+(3.96195 -0.469888 0)
+(3.97789 -0.466013 0)
+(3.99447 -0.462306 5.42913e-19)
+(4.01179 -0.458746 0)
+(4.02995 -0.455298 1.10926e-18)
+(4.04907 -0.451908 5.60054e-19)
+(4.06932 -0.448503 0)
+(4.09083 -0.444992 -1.13892e-18)
+(4.11394 -0.441262 0)
+(4.13833 -0.437244 1.15355e-18)
+(4.16656 -0.432556 1.16007e-18)
+(4.19058 -0.428039 1.1584e-18)
+(-0.0122282 0.413672 0)
+(-0.0303268 0.492405 0)
+(-0.0445798 0.505974 1.12558e-18)
+(-0.0552169 0.50521 0)
+(-0.0623224 0.499659 7.43895e-19)
+(-0.0664871 0.492395 -6.78933e-19)
+(-0.0683327 0.484616 0)
+(-0.0682535 0.476862 0)
+(-0.0664854 0.469415 9.34643e-23)
+(-0.0631811 0.462407 0)
+(-0.0584512 0.455874 0)
+(-0.0523388 0.449726 -6.50684e-19)
+(-0.0447472 0.443803 0)
+(-0.0354661 0.438015 6.92556e-19)
+(-0.0242846 0.432343 7.16475e-19)
+(-0.011055 0.426736 -7.42941e-19)
+(0.00441092 0.421003 0)
+(0.0224187 0.414906 0)
+(0.0433424 0.408308 -7.92079e-19)
+(0.0675129 0.40119 0)
+(0.0951377 0.393609 0)
+(0.126321 0.385554 0)
+(0.161146 0.376927 -1.87136e-21)
+(0.19964 0.367707 0)
+(0.241739 0.357964 1.4768e-18)
+(0.287253 0.347817 0)
+(0.335906 0.337421 0)
+(0.387394 0.326882 6.60157e-19)
+(0.441392 0.316238 -6.31593e-19)
+(0.497467 0.305568 6.03296e-19)
+(0.555226 0.294955 0)
+(0.6143 0.284444 0)
+(0.674324 0.274099 0)
+(0.73506 0.264003 0)
+(0.796259 0.254158 -4.80576e-19)
+(0.857702 0.244507 -4.60149e-19)
+(0.919209 0.235068 0)
+(0.980627 0.225853 -4.21472e-19)
+(1.04182 0.216841 0)
+(1.10268 0.208033 3.92111e-19)
+(1.16314 0.199471 -3.76341e-19)
+(1.22313 0.19115 7.30447e-19)
+(1.28261 0.183037 0)
+(1.34151 0.175111 3.3987e-19)
+(1.3998 0.167345 -9.90825e-19)
+(1.45745 0.159713 0)
+(1.51441 0.152205 -6.18835e-19)
+(1.57065 0.144813 -3.26947e-21)
+(1.62613 0.137526 -3.21693e-21)
+(1.68083 0.130333 -1.13773e-18)
+(1.73473 0.123225 0)
+(1.78781 0.116189 5.37053e-19)
+(1.84007 0.109216 0)
+(1.8915 0.10229 0)
+(1.9421 0.0953988 4.96709e-19)
+(1.99187 0.0885278 0)
+(2.0408 0.0816632 0)
+(2.08891 0.074792 0)
+(2.13619 0.0678994 4.50313e-19)
+(2.18264 0.0609705 0)
+(2.22828 0.0539925 -4.29619e-19)
+(2.2731 0.0469534 0)
+(2.31712 0.0398417 4.12886e-19)
+(2.36033 0.0326456 -4.0363e-19)
+(2.40275 0.0253544 2.53091e-21)
+(2.44437 0.017958 0)
+(2.48521 0.0104478 -3.77396e-19)
+(2.52528 0.00281568 0)
+(2.56457 -0.0049455 3.61003e-19)
+(2.6031 -0.0128423 -3.53085e-19)
+(2.64086 -0.0208803 -3.42974e-19)
+(2.67788 -0.0290643 0)
+(2.71415 -0.0373976 0)
+(2.74969 -0.045883 -3.19943e-19)
+(2.78449 -0.0545231 0)
+(2.81857 -0.063319 -3.0716e-19)
+(2.85193 -0.0722711 -2.9971e-19)
+(2.88459 -0.081379 2.90296e-19)
+(2.91654 -0.0906428 0)
+(2.94781 -0.100061 2.78038e-19)
+(2.9784 -0.109631 0)
+(3.00831 -0.119347 -5.26225e-19)
+(3.03757 -0.129207 0)
+(3.06617 -0.139204 0)
+(3.09412 -0.149335 -2.41943e-19)
+(3.12145 -0.159592 7.09673e-19)
+(3.14815 -0.16997 4.61203e-19)
+(3.17425 -0.180459 2.22374e-19)
+(3.19975 -0.191053 0)
+(3.22467 -0.201744 0)
+(3.24901 -0.212517 -4.0669e-19)
+(3.27278 -0.223363 0)
+(3.29601 -0.234272 0)
+(3.3187 -0.245231 -3.6956e-19)
+(3.34085 -0.256229 -3.5736e-19)
+(3.36249 -0.267254 2.91351e-21)
+(3.38362 -0.278293 0)
+(3.40426 -0.289334 0)
+(3.42441 -0.300362 3.09384e-19)
+(3.44409 -0.311365 3.00227e-19)
+(3.46331 -0.322327 2.57077e-21)
+(3.48208 -0.333234 -2.50346e-21)
+(3.50042 -0.344071 0)
+(3.51833 -0.354825 0)
+(3.53582 -0.365483 2.30025e-21)
+(3.55292 -0.376028 0)
+(3.56962 -0.386445 2.17116e-19)
+(3.58595 -0.39672 0)
+(3.60192 -0.406837 -1.94794e-19)
+(3.61753 -0.416786 0)
+(3.63279 -0.426555 -1.90702e-21)
+(3.64772 -0.436121 -1.61891e-19)
+(3.66232 -0.445474 -1.51079e-19)
+(3.67662 -0.454603 -1.4207e-19)
+(3.69061 -0.463496 0)
+(3.7043 -0.472133 0)
+(3.71771 -0.480508 1.08678e-19)
+(3.73084 -0.488609 0)
+(3.7437 -0.496422 8.94212e-20)
+(3.7563 -0.503937 -1.35897e-21)
+(3.76865 -0.511145 6.90023e-20)
+(3.78075 -0.518034 0)
+(3.79261 -0.524598 0)
+(3.80424 -0.530826 3.91147e-20)
+(3.81565 -0.536709 -2.82784e-20)
+(3.82684 -0.542238 1.97121e-20)
+(3.83782 -0.547404 -9.19985e-21)
+(3.84861 -0.552196 0)
+(3.8592 -0.556609 0)
+(3.86959 -0.560641 5.41091e-20)
+(3.87981 -0.564293 2.76099e-20)
+(3.88985 -0.567564 0)
+(3.89972 -0.57045 0)
+(3.90942 -0.572948 -1.06606e-19)
+(3.91896 -0.575059 0)
+(3.92835 -0.576781 0)
+(3.9376 -0.578116 1.03172e-21)
+(3.94671 -0.579063 0)
+(3.95569 -0.579626 1.8969e-19)
+(3.96455 -0.579805 -2.06312e-19)
+(3.97329 -0.579607 0)
+(3.98193 -0.579036 2.36283e-19)
+(3.99047 -0.578102 0)
+(3.99892 -0.576815 2.66463e-19)
+(4.00728 -0.575187 -2.8028e-19)
+(4.01558 -0.57323 0)
+(4.02381 -0.570958 0)
+(4.032 -0.568383 3.45273e-22)
+(4.04014 -0.56552 0)
+(4.04826 -0.562385 6.95526e-19)
+(4.05637 -0.558996 7.20615e-19)
+(4.06448 -0.55537 -3.72454e-19)
+(4.0726 -0.551525 0)
+(4.08076 -0.547484 -3.96199e-19)
+(4.08897 -0.543266 0)
+(4.09725 -0.538894 0)
+(4.10561 -0.534392 0)
+(4.11409 -0.529784 0)
+(4.12271 -0.525097 -4.49793e-19)
+(4.13149 -0.520358 -5.37067e-23)
+(4.14046 -0.515592 -4.69228e-19)
+(4.14965 -0.51083 0)
+(4.1591 -0.506103 0)
+(4.16882 -0.501445 0)
+(4.17888 -0.496889 -5.04388e-19)
+(4.18931 -0.492466 5.1235e-19)
+(4.20016 -0.488206 1.04024e-18)
+(4.21149 -0.484131 0)
+(4.22337 -0.480258 -5.34726e-19)
+(4.23588 -0.476596 -5.41544e-19)
+(4.24909 -0.473139 1.41022e-22)
+(4.2631 -0.469874 -5.54198e-19)
+(4.27802 -0.466773 5.6e-19)
+(4.294 -0.463791 -5.65269e-19)
+(4.31118 -0.460865 0)
+(4.32972 -0.457917 1.72466e-18)
+(4.34994 -0.454839 5.79031e-19)
+(4.37157 -0.451585 -1.16471e-18)
+(4.39693 -0.44773 -1.75711e-18)
+(4.41874 -0.444283 -1.16988e-18)
+(-0.0176401 0.443022 0)
+(-0.0420964 0.51631 0)
+(-0.0579991 0.522373 -5.9142e-19)
+(-0.0680321 0.515493 0)
+(-0.0734177 0.505419 0)
+(-0.075481 0.4948 1.24089e-18)
+(-0.0751029 0.484329 0)
+(-0.072648 0.47428 0)
+(-0.0682082 0.464864 8.65813e-19)
+(-0.0617257 0.456152 0)
+(-0.0530756 0.448148 0)
+(-0.042021 0.44056 0)
+(-0.0279841 0.432832 0)
+(-0.0101369 0.424639 0)
+(0.012314 0.415932 -1.1538e-18)
+(0.0399225 0.406701 1.16108e-18)
+(0.0732972 0.39664 1.1494e-18)
+(0.11296 0.385472 0)
+(0.15922 0.373246 2.18507e-21)
+(0.211896 0.360245 0)
+(0.270471 0.346818 0)
+(0.334309 0.333121 0)
+(0.402647 0.319195 -8.63783e-19)
+(0.474467 0.305251 8.04432e-19)
+(0.548868 0.291485 -1.50641e-18)
+(0.624998 0.278018 0)
+(0.702192 0.26499 0)
+(0.780006 0.252513 0)
+(0.85797 0.240532 0)
+(0.935693 0.228965 0)
+(1.0129 0.217858 0)
+(1.08934 0.207192 0)
+(1.16488 0.19696 0)
+(1.23941 0.187179 -4.53422e-19)
+(1.31279 0.177871 0)
+(1.385 0.169012 0)
+(1.45601 0.160545 0)
+(1.52578 0.15243 3.88735e-19)
+(1.59431 0.144632 0)
+(1.6616 0.137098 -3.60628e-19)
+(1.72765 0.12979 1.83018e-21)
+(1.79245 0.122705 3.37995e-19)
+(1.85599 0.115829 0)
+(1.91828 0.109142 -1.70548e-21)
+(1.97933 0.102624 1.67183e-21)
+(2.03913 0.096259 0)
+(2.09771 0.0900291 5.88481e-19)
+(2.15509 0.0839168 -5.73187e-19)
+(2.21128 0.0779049 -8.36455e-19)
+(2.26631 0.071977 5.44859e-19)
+(2.3202 0.0661179 0)
+(2.37297 0.0603138 -5.19111e-19)
+(2.42464 0.0545505 -2.52084e-19)
+(2.47523 0.0488132 0)
+(2.52477 0.0430873 -2.81614e-21)
+(2.57329 0.0373584 0)
+(2.6208 0.031612 4.60694e-19)
+(2.66733 0.0258358 0)
+(2.71291 0.020015 -4.43849e-19)
+(2.75754 0.0141354 0)
+(2.80125 0.00818463 4.25457e-19)
+(2.84406 0.00215111 0)
+(2.88599 -0.00397621 0)
+(2.92705 -0.0102083 0)
+(2.96726 -0.0165553 7.80619e-19)
+(3.00663 -0.0230268 0)
+(3.04519 -0.0296309 0)
+(3.08293 -0.0363751 0)
+(3.11988 -0.0432662 0)
+(3.15604 -0.0503102 3.49775e-19)
+(3.19143 -0.0575122 3.44593e-19)
+(3.22606 -0.0648765 0)
+(3.25995 -0.0724063 0)
+(3.29309 -0.0801042 3.22009e-19)
+(3.3255 -0.0879724 0)
+(3.3572 -0.0960119 3.05312e-19)
+(3.38818 -0.104223 0)
+(3.41847 -0.112605 -5.84494e-19)
+(3.44807 -0.121159 0)
+(3.477 -0.129883 -2.77371e-19)
+(3.50526 -0.138773 0)
+(3.53286 -0.147826 2.65797e-19)
+(3.55981 -0.157039 2.57127e-19)
+(3.58614 -0.166407 0)
+(3.61183 -0.175921 2.45809e-19)
+(3.63692 -0.185576 -2.39251e-19)
+(3.66139 -0.195365 0)
+(3.68527 -0.205278 -1.7901e-21)
+(3.70856 -0.215307 -2.18094e-19)
+(3.73128 -0.225445 -2.1174e-19)
+(3.75343 -0.235682 2.08812e-19)
+(3.77502 -0.246006 0)
+(3.79606 -0.256405 -1.92921e-19)
+(3.81655 -0.266868 3.7663e-19)
+(3.83652 -0.277383 3.64245e-19)
+(3.85596 -0.287936 3.51933e-19)
+(3.87488 -0.298515 1.68361e-19)
+(3.8933 -0.309107 0)
+(3.91123 -0.319698 -3.15434e-19)
+(3.92868 -0.330274 0)
+(3.94565 -0.340822 2.91461e-19)
+(3.96217 -0.351326 -2.62524e-21)
+(3.97823 -0.361773 2.65214e-19)
+(3.99385 -0.372148 0)
+(4.00903 -0.382438 2.44372e-19)
+(4.0238 -0.392624 0)
+(4.03816 -0.402692 -2.21276e-19)
+(4.05211 -0.412629 0)
+(4.06567 -0.422417 2.14273e-21)
+(4.07885 -0.432045 0)
+(4.09165 -0.441499 -2.00714e-21)
+(4.10408 -0.450761 1.94108e-21)
+(4.11616 -0.459819 1.53854e-19)
+(4.12788 -0.468662 0)
+(4.13927 -0.477275 1.30304e-19)
+(4.15032 -0.485643 0)
+(4.16105 -0.493754 -1.10603e-19)
+(4.17147 -0.501599 0)
+(4.18159 -0.509162 8.80426e-20)
+(4.1914 -0.516435 -1.56862e-19)
+(4.20092 -0.523407 6.74895e-20)
+(4.21016 -0.530066 0)
+(4.21911 -0.536404 -4.73418e-20)
+(4.2278 -0.542412 0)
+(4.23622 -0.548081 5.6366e-20)
+(4.24439 -0.553402 0)
+(4.25232 -0.558364 9.3514e-21)
+(4.26 -0.562956 0)
+(4.26743 -0.567173 0)
+(4.27465 -0.571016 -1.88884e-20)
+(4.28164 -0.574484 -2.80549e-20)
+(4.28842 -0.577574 0)
+(4.29499 -0.580283 4.67311e-20)
+(4.30136 -0.582612 0)
+(4.30753 -0.584558 0)
+(4.31352 -0.58612 0)
+(4.31933 -0.5873 -1.60747e-19)
+(4.32497 -0.588098 0)
+(4.33045 -0.588515 0)
+(4.33578 -0.588556 2.09478e-19)
+(4.34097 -0.588222 1.12974e-19)
+(4.34602 -0.587522 0)
+(4.35095 -0.586463 0)
+(4.35577 -0.585057 -2.70474e-19)
+(4.36048 -0.583316 0)
+(4.36511 -0.581253 0)
+(4.36965 -0.57888 -3.13515e-19)
+(4.37414 -0.576212 -3.26697e-19)
+(4.37857 -0.573263 0)
+(4.38297 -0.57005 -3.52985e-19)
+(4.38735 -0.56659 -3.6567e-19)
+(4.39173 -0.562901 3.78263e-19)
+(4.39611 -0.559003 0)
+(4.40054 -0.554917 4.01891e-19)
+(4.40501 -0.550664 0)
+(4.40957 -0.546269 0)
+(4.41422 -0.541753 0)
+(4.41899 -0.537144 0)
+(4.42391 -0.532469 0)
+(4.42901 -0.527756 4.66121e-19)
+(4.43432 -0.523029 -7.5672e-23)
+(4.43987 -0.518321 0)
+(4.44569 -0.513664 0)
+(4.45183 -0.509095 0)
+(4.45833 -0.504648 5.11308e-19)
+(4.46523 -0.500357 0)
+(4.47259 -0.496254 1.28797e-22)
+(4.48048 -0.492365 0)
+(4.48897 -0.488712 5.41965e-19)
+(4.49813 -0.485304 5.48856e-19)
+(4.50806 -0.482143 -1.11105e-18)
+(4.51885 -0.479221 -2.16518e-22)
+(4.53063 -0.476518 -5.67526e-19)
+(4.54354 -0.473998 0)
+(4.55773 -0.471606 5.78319e-19)
+(4.57337 -0.469276 2.1219e-22)
+(4.59077 -0.466906 -5.86854e-19)
+(4.60971 -0.46447 0)
+(4.63227 -0.461498 5.9366e-19)
+(4.65202 -0.459151 0)
+(-0.0261305 0.482606 0)
+(-0.059985 0.543329 0)
+(-0.0758909 0.537042 -6.6658e-19)
+(-0.0842389 0.522278 -5.9114e-19)
+(-0.0870649 0.507453 0)
+(-0.0864181 0.494112 -1.18048e-18)
+(-0.0829135 0.482043 0)
+(-0.0761087 0.470788 0)
+(-0.0653587 0.459893 -7.13222e-19)
+(-0.0495269 0.44868 0)
+(-0.0269675 0.436826 0)
+(0.00448457 0.423678 0)
+(0.0472392 0.408326 0)
+(0.102491 0.391072 0)
+(0.169938 0.372769 0)
+(0.248032 0.353974 0)
+(0.335631 0.334574 -1.79102e-18)
+(0.430063 0.314962 0)
+(0.529118 0.295578 4.92297e-19)
+(0.630712 0.276805 -8.90361e-19)
+(0.73348 0.259011 -8.15568e-19)
+(0.836444 0.242354 0)
+(0.938655 0.226619 0)
+(1.0394 0.211718 -6.47207e-19)
+(1.13826 0.197726 1.20627e-18)
+(1.23496 0.18461 5.65196e-19)
+(1.32938 0.172381 0)
+(1.42145 0.161013 0)
+(1.51106 0.150486 4.81925e-19)
+(1.59828 0.140745 0)
+(1.68316 0.131665 0)
+(1.76574 0.12316 -4.22978e-19)
+(1.84613 0.115147 0)
+(1.92435 0.107556 3.94153e-19)
+(2.00049 0.100348 0)
+(2.0746 0.0934911 3.65977e-19)
+(2.14669 0.0869578 0)
+(2.21686 0.0807187 0)
+(2.28513 0.0747372 3.33839e-19)
+(2.35156 0.0689857 3.26277e-19)
+(2.41621 0.0634407 3.17507e-19)
+(2.47916 0.0580841 -3.09263e-19)
+(2.54047 0.0528954 0)
+(2.60019 0.0478527 -2.94162e-19)
+(2.65839 0.0429344 5.72885e-19)
+(2.7151 0.0381207 0)
+(2.77039 0.0333938 0)
+(2.82428 0.0287371 0)
+(2.87685 0.0241351 2.62645e-19)
+(2.92811 0.0195731 0)
+(2.97813 0.0150369 0)
+(3.02694 0.0105132 0)
+(3.07459 0.00598904 1.34649e-21)
+(3.1211 0.00145112 -2.35909e-19)
+(3.16652 -0.00311383 -4.65346e-19)
+(3.21089 -0.0077189 0)
+(3.25423 -0.0123773 -2.25229e-19)
+(3.29658 -0.0170993 -2.185e-19)
+(3.33797 -0.021899 0)
+(3.37843 -0.0267887 -2.10272e-19)
+(3.41799 -0.0317778 0)
+(3.45667 -0.036877 2.02396e-19)
+(3.49449 -0.0420954 0)
+(3.53147 -0.0474432 0)
+(3.56764 -0.0529287 -3.84646e-19)
+(3.60301 -0.0585601 -3.74927e-19)
+(3.63759 -0.0643446 3.67537e-19)
+(3.67141 -0.0702889 0)
+(3.70448 -0.0763993 0)
+(3.73681 -0.082681 -3.48206e-19)
+(3.76842 -0.0891383 0)
+(3.79932 -0.0957749 0)
+(3.82952 -0.102594 -3.25066e-19)
+(3.85903 -0.109598 3.18227e-19)
+(3.88788 -0.116789 -3.11442e-19)
+(3.91606 -0.124168 -3.06828e-19)
+(3.9436 -0.131735 0)
+(3.97049 -0.139487 2.93436e-19)
+(3.99676 -0.147423 -2.84741e-19)
+(4.0224 -0.155542 5.58351e-19)
+(4.04743 -0.163839 0)
+(4.07186 -0.172313 0)
+(4.09569 -0.180957 -2.60559e-19)
+(4.11894 -0.189767 0)
+(4.14161 -0.198738 2.45695e-19)
+(4.1637 -0.207862 0)
+(4.18524 -0.217132 2.32884e-19)
+(4.20622 -0.226538 -2.28329e-19)
+(4.22664 -0.236072 2.21954e-19)
+(4.24652 -0.245726 2.15605e-19)
+(4.26586 -0.255487 1.72255e-21)
+(4.28467 -0.265345 0)
+(4.30295 -0.275288 1.96707e-19)
+(4.32072 -0.285305 0)
+(4.33799 -0.295382 0)
+(4.35475 -0.305507 -1.76481e-19)
+(4.37101 -0.315669 -1.52771e-21)
+(4.38679 -0.325853 1.64246e-19)
+(4.40208 -0.336046 0)
+(4.41691 -0.346234 0)
+(4.43127 -0.356401 1.46116e-19)
+(4.44518 -0.366533 -4.23114e-19)
+(4.45863 -0.376616 -1.36826e-19)
+(4.47163 -0.386636 0)
+(4.48421 -0.39658 0)
+(4.49636 -0.406432 0)
+(4.50809 -0.416174 0)
+(4.51941 -0.425792 1.04949e-19)
+(4.53034 -0.435269 2.00649e-19)
+(4.54086 -0.444594 1.87031e-19)
+(4.551 -0.453755 -1.77806e-19)
+(4.56076 -0.462732 1.66512e-19)
+(4.57015 -0.471508 1.53357e-19)
+(4.57916 -0.480077 0)
+(4.58782 -0.488423 -2.64492e-19)
+(4.59613 -0.496529 -1.20466e-19)
+(4.60409 -0.504386 1.09685e-19)
+(4.61171 -0.511981 0)
+(4.619 -0.519301 -8.9958e-20)
+(4.62597 -0.526336 1.48535e-21)
+(4.63262 -0.533075 -6.89513e-20)
+(4.63897 -0.539507 0)
+(4.645 -0.545624 9.54242e-20)
+(4.65074 -0.551416 0)
+(4.65618 -0.556875 -2.82073e-20)
+(4.66134 -0.561991 1.71758e-20)
+(4.66622 -0.566751 0)
+(4.67082 -0.571145 0)
+(4.67515 -0.57517 0)
+(4.67922 -0.578827 2.10724e-20)
+(4.68304 -0.582114 3.03264e-20)
+(4.68661 -0.585028 0)
+(4.68995 -0.587567 7.47271e-22)
+(4.69305 -0.58973 5.73238e-20)
+(4.69592 -0.591514 6.60635e-20)
+(4.69859 -0.592921 0)
+(4.70104 -0.59395 0)
+(4.7033 -0.594603 9.14848e-20)
+(4.70537 -0.594881 0)
+(4.70726 -0.594788 -1.07751e-19)
+(4.70899 -0.594326 -1.15266e-19)
+(4.71056 -0.593503 0)
+(4.71199 -0.592329 0)
+(4.71329 -0.590813 0)
+(4.71447 -0.58897 1.45881e-19)
+(4.71555 -0.586811 1.53058e-19)
+(4.71653 -0.584351 3.19732e-19)
+(4.71744 -0.581602 0)
+(4.71829 -0.578581 0)
+(4.7191 -0.575303 -1.80243e-19)
+(4.71988 -0.571787 0)
+(4.72065 -0.568052 -3.85607e-19)
+(4.72144 -0.564117 1.99022e-19)
+(4.72226 -0.560005 0)
+(4.72314 -0.555737 0)
+(4.7241 -0.551337 0)
+(4.72516 -0.546829 0)
+(4.72635 -0.54224 4.54538e-19)
+(4.72771 -0.5376 -4.64926e-19)
+(4.72925 -0.532935 4.7501e-19)
+(4.73102 -0.528273 4.84697e-19)
+(4.73305 -0.523644 -4.94265e-19)
+(4.73538 -0.519085 0)
+(4.73804 -0.514632 -5.12303e-19)
+(4.74109 -0.510324 0)
+(4.74458 -0.506195 5.29121e-19)
+(4.74856 -0.502282 -5.36905e-19)
+(4.75311 -0.498614 0)
+(4.75829 -0.495216 -5.5204e-19)
+(4.7642 -0.492102 0)
+(4.77094 -0.489279 5.65475e-19)
+(4.77859 -0.486743 5.7179e-19)
+(4.78731 -0.484484 0)
+(4.79721 -0.482475 5.83616e-19)
+(4.80849 -0.480669 3.19018e-22)
+(4.8213 -0.479009 -1.18653e-18)
+(4.83594 -0.477399 0)
+(4.85225 -0.475832 6.01086e-19)
+(4.87206 -0.473799 0)
+(4.8899 -0.472578 6.04178e-19)
+(-0.0441352 0.534686 0)
+(-0.0874744 0.565558 9.9569e-19)
+(-0.101471 0.546696 0)
+(-0.106646 0.528659 8.5841e-19)
+(-0.104912 0.512946 0)
+(-0.0985854 0.497677 9.57161e-19)
+(-0.0825961 0.480173 -1.01565e-18)
+(-0.0476695 0.45838 -1.07234e-18)
+(0.0113605 0.43406 1.07447e-18)
+(0.0947245 0.407604 0)
+(0.199371 0.379979 0)
+(0.322353 0.351321 -7.56415e-19)
+(0.457794 0.321892 0)
+(0.599459 0.293064 0)
+(0.743522 0.2659 -5.06785e-19)
+(0.887352 0.24111 0)
+(1.02874 0.2185 4.09664e-19)
+(1.16602 0.197516 -3.69798e-19)
+(1.29831 0.178248 3.41741e-19)
+(1.42533 0.160755 6.33398e-19)
+(1.54707 0.145095 2.9779e-19)
+(1.66364 0.131102 0)
+(1.77511 0.118621 0)
+(1.88182 0.10749 0)
+(1.98416 0.0974709 -7.11494e-19)
+(2.08243 0.0883398 -4.54437e-19)
+(2.17687 0.0799354 0)
+(2.2677 0.0721651 0)
+(2.35514 0.064968 -6.03711e-19)
+(2.43934 0.0582937 0)
+(2.52046 0.0520819 0)
+(2.59864 0.0462723 3.64882e-19)
+(2.674 0.0408227 0)
+(2.74667 0.0357026 0)
+(2.81682 0.0308856 0)
+(2.88459 0.0263183 -3.25978e-19)
+(2.95013 0.0219778 0)
+(3.01355 0.0178469 0)
+(3.07497 0.0138772 -3.03032e-19)
+(3.13447 0.010045 2.94635e-19)
+(3.19215 0.00633033 0)
+(3.24808 0.00271787 0)
+(3.30235 -0.000806596 0)
+(3.35504 -0.00425746 -2.70984e-19)
+(3.40622 -0.00765104 -5.32921e-19)
+(3.45595 -0.0110034 -2.60701e-19)
+(3.5043 -0.0143292 0)
+(3.55133 -0.0176419 2.51088e-19)
+(3.59709 -0.0209539 -2.46547e-19)
+(3.64162 -0.0242773 0)
+(3.68499 -0.0276235 0)
+(3.72723 -0.031004 -2.33804e-19)
+(3.76839 -0.0344295 2.31044e-19)
+(3.80852 -0.0379113 4.53048e-19)
+(3.84764 -0.0414605 -2.22117e-19)
+(3.88581 -0.0450882 0)
+(3.92306 -0.0488054 -2.15962e-19)
+(3.95941 -0.0526214 2.12394e-19)
+(3.9949 -0.0565461 2.07645e-19)
+(4.02957 -0.0605903 2.05259e-19)
+(4.06343 -0.0647627 0)
+(4.09651 -0.0690718 -1.98331e-19)
+(4.12884 -0.0735249 -1.93816e-19)
+(4.16043 -0.0781303 0)
+(4.19131 -0.0828958 -1.87161e-19)
+(4.22148 -0.087828 5.5384e-19)
+(4.25098 -0.0929324 -5.44069e-19)
+(4.27981 -0.0982147 0)
+(4.30799 -0.10368 0)
+(4.33553 -0.109332 0)
+(4.36245 -0.115174 0)
+(4.38874 -0.121211 0)
+(4.41443 -0.127445 4.86594e-19)
+(4.43953 -0.133877 -3.18779e-19)
+(4.46405 -0.140509 3.12474e-19)
+(4.48799 -0.14734 1.5206e-19)
+(4.51136 -0.154372 0)
+(4.53418 -0.161601 0)
+(4.55645 -0.169026 4.29884e-19)
+(4.57818 -0.176645 -2.80954e-19)
+(4.59938 -0.184453 -2.72687e-19)
+(4.62005 -0.192447 0)
+(4.6402 -0.200623 2.60121e-19)
+(4.65982 -0.208974 0)
+(4.67893 -0.217494 -4.96987e-19)
+(4.69753 -0.226174 -2.41271e-19)
+(4.71562 -0.235007 -4.71821e-19)
+(4.73322 -0.243983 0)
+(4.75031 -0.253094 0)
+(4.76692 -0.262331 0)
+(4.78304 -0.271683 1.7299e-21)
+(4.79867 -0.281138 0)
+(4.81381 -0.290686 1.97457e-19)
+(4.82848 -0.300315 1.91236e-19)
+(4.84267 -0.310013 0)
+(4.8564 -0.319767 1.80422e-19)
+(4.86967 -0.329564 -1.74218e-19)
+(4.88248 -0.339391 -1.51793e-21)
+(4.89484 -0.349235 0)
+(4.90676 -0.35908 -1.54278e-19)
+(4.91823 -0.368912 -1.49613e-19)
+(4.92927 -0.378717 1.43523e-19)
+(4.93988 -0.38848 -1.3487e-21)
+(4.95007 -0.398185 0)
+(4.95983 -0.407821 -1.24152e-19)
+(4.96918 -0.41737 0)
+(4.97811 -0.426815 -1.12315e-19)
+(4.98665 -0.436143 -2.1407e-19)
+(4.99479 -0.445337 0)
+(5.00253 -0.454384 -9.70312e-20)
+(5.00989 -0.46327 0)
+(5.01687 -0.471978 0)
+(5.02347 -0.480493 -7.96758e-20)
+(5.0297 -0.488805 7.20436e-20)
+(5.03557 -0.4969 1.34775e-19)
+(5.04107 -0.504761 1.23622e-19)
+(5.04621 -0.512377 -1.12562e-19)
+(5.051 -0.519736 0)
+(5.05544 -0.526827 0)
+(5.05954 -0.533636 7.99656e-20)
+(5.06331 -0.540154 0)
+(5.06674 -0.54637 0)
+(5.06984 -0.552274 -4.82978e-20)
+(5.07262 -0.557858 0)
+(5.07509 -0.563114 0)
+(5.07725 -0.568029 -1.76245e-20)
+(5.0791 -0.572591 0)
+(5.08064 -0.576792 0)
+(5.08189 -0.580631 0)
+(5.08286 -0.584107 -2.16204e-20)
+(5.08355 -0.587218 -3.11137e-20)
+(5.08397 -0.589961 0)
+(5.08413 -0.592334 -1.0018e-19)
+(5.08403 -0.594334 -1.18324e-19)
+(5.08368 -0.595962 -6.77652e-20)
+(5.08308 -0.597218 0)
+(5.08226 -0.598101 0)
+(5.08122 -0.598615 -1.88184e-19)
+(5.07997 -0.59876 0)
+(5.07853 -0.598539 1.10494e-19)
+(5.0769 -0.597957 -1.19022e-19)
+(5.07509 -0.597019 0)
+(5.07313 -0.595737 0)
+(5.07102 -0.59412 1.42348e-19)
+(5.06878 -0.592184 -1.49541e-19)
+(5.06642 -0.589941 -1.56885e-19)
+(5.06396 -0.587403 1.64289e-19)
+(5.06142 -0.584585 0)
+(5.05881 -0.581503 0)
+(5.05615 -0.578174 3.6951e-19)
+(5.05346 -0.574616 -1.91361e-19)
+(5.05076 -0.570849 1.97737e-19)
+(5.04808 -0.566893 -2.0386e-19)
+(5.04543 -0.56277 2.10019e-19)
+(5.04284 -0.558503 2.15925e-19)
+(5.04033 -0.554115 0)
+(5.03794 -0.549632 0)
+(5.03568 -0.545082 -4.65321e-19)
+(5.03359 -0.540495 7.13898e-19)
+(5.0317 -0.5359 -4.86161e-19)
+(5.03005 -0.531322 0)
+(5.02868 -0.526794 7.58669e-19)
+(5.02762 -0.522355 2.57589e-19)
+(5.02692 -0.518045 5.24067e-19)
+(5.02663 -0.5139 0)
+(5.02681 -0.509961 -8.11781e-19)
+(5.02751 -0.506266 0)
+(5.02881 -0.502849 0)
+(5.03078 -0.499738 5.64352e-19)
+(5.03353 -0.496953 0)
+(5.03715 -0.494504 0)
+(5.04175 -0.492395 0)
+(5.04747 -0.490623 -5.91049e-19)
+(5.05445 -0.489169 -5.96299e-19)
+(5.06287 -0.487996 -6.01503e-19)
+(5.07291 -0.487056 6.06226e-19)
+(5.08485 -0.486257 0)
+(5.0986 -0.485608 -6.13996e-19)
+(5.11569 -0.484568 0)
+(5.13175 -0.4845 -1.23491e-18)
+(-0.0514908 0.614915 0)
+(-0.143906 0.612848 -1.15031e-18)
+(-0.164397 0.571138 -5.71874e-19)
+(-0.13928 0.529244 -6.02242e-19)
+(-0.0618436 0.488127 -6.42544e-19)
+(0.0602398 0.447034 6.07778e-19)
+(0.231804 0.401593 1.00092e-18)
+(0.428858 0.354857 1.23234e-18)
+(0.641684 0.310548 0)
+(0.859005 0.268922 0)
+(1.07345 0.231399 -2.47978e-19)
+(1.27994 0.19813 2.21328e-19)
+(1.47525 0.1678 0)
+(1.65708 0.140979 1.75336e-19)
+(1.82627 0.118212 3.25394e-19)
+(1.98358 0.0989014 0)
+(2.12941 0.0826671 0)
+(2.2652 0.0691551 2.66341e-19)
+(2.3921 0.0577463 0)
+(2.5112 0.0478374 0)
+(2.6233 0.0390866 2.29591e-19)
+(2.7291 0.0313015 0)
+(2.82924 0.0242659 0)
+(2.92419 0.0179258 2.02474e-19)
+(3.01435 0.0121985 1.39277e-21)
+(3.10002 0.00695444 0)
+(3.18152 0.00216208 0)
+(3.25915 -0.00220873 0)
+(3.33325 -0.00620256 1.74356e-19)
+(3.40409 -0.00986448 0)
+(3.47194 -0.0132429 0)
+(3.53701 -0.0163836 0)
+(3.59947 -0.0193237 0)
+(3.65949 -0.0220956 0)
+(3.71723 -0.024721 0)
+(3.77282 -0.0272258 -1.46942e-19)
+(3.82643 -0.0296355 0)
+(3.87816 -0.0319619 0)
+(3.92815 -0.0342235 0)
+(3.97648 -0.0364366 -2.7366e-19)
+(4.02325 -0.0386146 0)
+(4.06854 -0.0407694 0)
+(4.11242 -0.0429115 0)
+(4.15496 -0.04505 3.82451e-19)
+(4.19624 -0.0471959 2.51283e-19)
+(4.23631 -0.0493596 1.24273e-19)
+(4.27523 -0.0515514 0)
+(4.31305 -0.0537811 -2.39513e-19)
+(4.34983 -0.0560585 2.35808e-19)
+(4.38561 -0.058393 1.15508e-19)
+(4.42043 -0.0607939 0)
+(4.45434 -0.0632699 3.37314e-19)
+(4.48738 -0.0658299 0)
+(4.51959 -0.0684827 -2.18613e-19)
+(4.55099 -0.0712376 3.22518e-19)
+(4.58163 -0.0741036 0)
+(4.61152 -0.0770894 0)
+(4.64072 -0.0802026 0)
+(4.66922 -0.0834508 -1.06992e-21)
+(4.69707 -0.0868429 0)
+(4.72428 -0.0903862 0)
+(4.75088 -0.0940869 0)
+(4.77687 -0.0979511 1.04237e-21)
+(4.80227 -0.101985 0)
+(4.82711 -0.106195 1.85166e-19)
+(4.85139 -0.110586 -1.82255e-19)
+(4.87512 -0.115165 1.02349e-21)
+(4.89832 -0.119936 0)
+(4.921 -0.124904 0)
+(4.94318 -0.13007 0)
+(4.96484 -0.13544 0)
+(4.98602 -0.141014 0)
+(5.00671 -0.146796 -1.61891e-19)
+(5.02693 -0.152786 0)
+(5.04667 -0.158987 -1.55026e-19)
+(5.06594 -0.165395 -3.05134e-19)
+(5.08474 -0.172011 1.4911e-19)
+(5.10308 -0.178832 1.46131e-19)
+(5.12097 -0.185856 -1.44109e-19)
+(5.1384 -0.193082 -1.40135e-19)
+(5.1554 -0.200504 1.3903e-19)
+(5.17195 -0.208119 0)
+(5.18806 -0.21592 -3.95013e-19)
+(5.20374 -0.223902 0)
+(5.21898 -0.232057 2.51699e-19)
+(5.23378 -0.24038 3.67382e-19)
+(5.24816 -0.24886 2.39347e-19)
+(5.2621 -0.257489 0)
+(5.2756 -0.266256 0)
+(5.28868 -0.275154 0)
+(5.30133 -0.284172 3.20843e-19)
+(5.31355 -0.293299 -1.03268e-19)
+(5.32534 -0.302522 -2.01994e-19)
+(5.3367 -0.311831 -9.86985e-20)
+(5.34764 -0.321213 0)
+(5.35816 -0.330655 -9.08482e-20)
+(5.36826 -0.340146 0)
+(5.37795 -0.349672 -1.70832e-19)
+(5.38722 -0.359218 0)
+(5.39608 -0.368771 7.99442e-20)
+(5.40454 -0.378314 0)
+(5.41259 -0.387834 7.23387e-20)
+(5.42024 -0.397316 -2.09216e-19)
+(5.4275 -0.406746 1.32479e-19)
+(5.43436 -0.416111 1.27713e-19)
+(5.44082 -0.425393 0)
+(5.44689 -0.434576 1.15598e-19)
+(5.45257 -0.443646 1.19563e-21)
+(5.45787 -0.452586 -1.02441e-19)
+(5.46278 -0.461383 -9.76547e-20)
+(5.4673 -0.470024 0)
+(5.47145 -0.478492 8.48126e-20)
+(5.47522 -0.486771 -8.00344e-20)
+(5.47862 -0.494848 -7.42408e-20)
+(5.48165 -0.50271 0)
+(5.48431 -0.510343 0)
+(5.4866 -0.517735 -5.62402e-20)
+(5.48854 -0.524874 -5.06615e-20)
+(5.49011 -0.531747 0)
+(5.49133 -0.538343 -3.96512e-20)
+(5.49221 -0.544652 3.42224e-20)
+(5.49273 -0.550661 2.88471e-20)
+(5.49291 -0.556363 0)
+(5.49275 -0.561749 0)
+(5.49227 -0.566807 0)
+(5.49144 -0.571528 0)
+(5.49028 -0.575899 0)
+(5.48881 -0.579916 -2.22302e-21)
+(5.48703 -0.583576 -7.19075e-21)
+(5.48494 -0.586879 0)
+(5.48256 -0.589819 0)
+(5.47989 -0.592397 0)
+(5.47693 -0.594608 2.56326e-20)
+(5.47369 -0.596453 6.13688e-20)
+(5.47018 -0.59793 0)
+(5.46641 -0.59904 0)
+(5.4624 -0.599784 -4.45455e-20)
+(5.45814 -0.600164 9.72727e-20)
+(5.45366 -0.600182 0)
+(5.44897 -0.599841 0)
+(5.44408 -0.599144 1.22677e-19)
+(5.439 -0.598099 0)
+(5.43374 -0.596717 0)
+(5.42833 -0.595009 -2.20179e-19)
+(5.42278 -0.592989 7.73188e-20)
+(5.4171 -0.59067 0)
+(5.41131 -0.588065 -8.45183e-20)
+(5.40544 -0.585188 -8.83145e-20)
+(5.39949 -0.582056 0)
+(5.39349 -0.578688 -1.90344e-19)
+(5.38746 -0.5751 1.97048e-19)
+(5.38141 -0.571314 -4.0728e-19)
+(5.37538 -0.567349 -2.10053e-19)
+(5.36939 -0.56323 -2.16175e-19)
+(5.36346 -0.558977 6.78405e-23)
+(5.35762 -0.554617 0)
+(5.35189 -0.550173 0)
+(5.3463 -0.545677 0)
+(5.34089 -0.54116 -2.44799e-19)
+(5.3357 -0.536651 0)
+(5.33075 -0.532174 0)
+(5.32608 -0.527765 -2.60028e-19)
+(5.32175 -0.523467 -5.29622e-19)
+(5.3178 -0.519319 0)
+(5.31428 -0.515359 2.73883e-19)
+(5.31124 -0.511632 -9.73427e-23)
+(5.30875 -0.50818 0)
+(5.3069 -0.505041 2.86247e-19)
+(5.30576 -0.502246 -2.90047e-19)
+(5.30543 -0.499821 0)
+(5.30601 -0.497779 0)
+(5.30763 -0.496132 0)
+(5.31042 -0.494885 6.06556e-19)
+(5.31453 -0.494029 0)
+(5.32016 -0.493534 0)
+(5.32749 -0.49336 0)
+(5.33678 -0.49342 0)
+(5.34803 -0.493734 0)
+(5.36243 -0.493747 0)
+(5.37684 -0.494854 9.50754e-19)
+(-0.224657 0.754484 0)
+(-0.186872 0.551235 3.24237e-19)
+(0.150873 0.445471 3.16852e-19)
+(0.497702 0.386686 7.00677e-19)
+(0.863994 0.322694 3.60265e-19)
+(1.22162 0.25982 -2.90153e-19)
+(1.56796 0.201057 1.18103e-19)
+(1.87851 0.148658 -1.0522e-19)
+(2.15654 0.105345 9.01422e-20)
+(2.40223 0.0705916 0)
+(2.61901 0.0436333 1.51553e-19)
+(2.80988 0.0236217 1.40698e-19)
+(2.97881 0.00878689 0)
+(3.12978 -0.00238883 -1.49306e-21)
+(3.2659 -0.0108852 1.17583e-19)
+(3.38953 -0.0178295 0)
+(3.50287 -0.0236657 0)
+(3.60737 -0.0286542 0)
+(3.70415 -0.0330411 0)
+(3.79402 -0.0369585 -9.73715e-20)
+(3.87774 -0.0404274 -9.4462e-20)
+(3.95599 -0.0434601 0)
+(4.02944 -0.0461381 0)
+(4.09865 -0.0485234 -8.83878e-20)
+(4.16399 -0.0506438 8.61793e-20)
+(4.22582 -0.0525439 0)
+(4.28444 -0.0542559 0)
+(4.34011 -0.0558097 0)
+(4.3931 -0.0572326 0)
+(4.44363 -0.0585438 0)
+(4.49192 -0.0597624 0)
+(4.53816 -0.0609073 0)
+(4.58253 -0.0619953 0)
+(4.62515 -0.0630428 0)
+(4.66615 -0.0640634 0)
+(4.70565 -0.0650734 2.05565e-19)
+(4.74373 -0.0660853 0)
+(4.78051 -0.0671061 0)
+(4.81605 -0.0681439 -6.50923e-20)
+(4.85044 -0.069206 0)
+(4.88374 -0.070296 0)
+(4.91602 -0.0714205 0)
+(4.94731 -0.0725854 0)
+(4.97768 -0.0737961 -6.11225e-20)
+(5.00717 -0.0750633 -5.96798e-20)
+(5.03583 -0.0763934 1.18319e-19)
+(5.0637 -0.077793 0)
+(5.09082 -0.0792696 0)
+(5.11723 -0.0808302 0)
+(5.14296 -0.0824821 -1.1215e-19)
+(5.16806 -0.0842322 0)
+(5.19254 -0.0860876 -1.09243e-19)
+(5.21643 -0.0880551 0)
+(5.23977 -0.0901417 -5.29532e-20)
+(5.26258 -0.0923549 -1.0504e-19)
+(5.28487 -0.0947022 0)
+(5.30667 -0.0971903 1.01811e-19)
+(5.32801 -0.0998253 0)
+(5.34888 -0.102613 -1.99262e-19)
+(5.36931 -0.10556 9.78081e-20)
+(5.38931 -0.108672 0)
+(5.4089 -0.111955 0)
+(5.42807 -0.115414 1.88675e-19)
+(5.44684 -0.119055 0)
+(5.46521 -0.122883 -9.1219e-20)
+(5.4832 -0.126902 -8.99e-20)
+(5.5008 -0.131118 2.66694e-19)
+(5.51803 -0.135535 8.72499e-20)
+(5.53489 -0.140156 0)
+(5.55139 -0.144984 8.45761e-20)
+(5.56754 -0.150022 0)
+(5.58333 -0.155271 0)
+(5.59878 -0.160734 8.05035e-20)
+(5.61387 -0.166412 -7.91263e-20)
+(5.62863 -0.172303 1.56424e-19)
+(5.64303 -0.178407 1.53623e-19)
+(5.6571 -0.184723 -2.25732e-19)
+(5.67081 -0.191248 -1.47958e-19)
+(5.68419 -0.197981 0)
+(5.69721 -0.204919 1.42199e-19)
+(5.70989 -0.212058 7.01053e-20)
+(5.72222 -0.219391 -6.77124e-20)
+(5.73421 -0.226914 6.71512e-20)
+(5.74585 -0.234619 0)
+(5.75713 -0.2425 0)
+(5.76806 -0.250549 -1.86126e-19)
+(5.77863 -0.258757 0)
+(5.78883 -0.267116 0)
+(5.79868 -0.275616 0)
+(5.80816 -0.284248 -5.56366e-20)
+(5.81728 -0.293 -1.09038e-19)
+(5.82603 -0.301863 1.05932e-19)
+(5.83442 -0.310825 -5.09944e-20)
+(5.84244 -0.319875 -1.49134e-19)
+(5.85009 -0.329001 0)
+(5.85737 -0.338191 9.34336e-20)
+(5.86428 -0.347431 0)
+(5.87081 -0.356708 0)
+(5.87698 -0.366008 0)
+(5.88277 -0.375317 8.08872e-20)
+(5.88819 -0.38462 3.85176e-20)
+(5.89324 -0.393902 -7.46257e-20)
+(5.89792 -0.403149 7.15029e-20)
+(5.90222 -0.412346 -1.36775e-19)
+(5.90615 -0.421478 0)
+(5.90971 -0.430529 6.15445e-20)
+(5.91289 -0.439483 0)
+(5.9157 -0.448326 1.12048e-19)
+(5.91813 -0.457041 1.58306e-19)
+(5.92019 -0.465616 0)
+(5.92187 -0.474037 0)
+(5.92318 -0.482286 -4.44171e-20)
+(5.92412 -0.490349 -4.03704e-20)
+(5.92468 -0.498213 0)
+(5.92488 -0.505863 0)
+(5.9247 -0.513287 -3.15662e-20)
+(5.92416 -0.52047 5.82464e-20)
+(5.92324 -0.527404 7.82821e-20)
+(5.92197 -0.534075 0)
+(5.92033 -0.540471 4.10801e-20)
+(5.91833 -0.546582 -3.54591e-20)
+(5.91597 -0.552397 -2.98922e-20)
+(5.91326 -0.557907 1.18434e-20)
+(5.9102 -0.563102 0)
+(5.90678 -0.567973 0)
+(5.90301 -0.572508 0)
+(5.8989 -0.576697 0)
+(5.89447 -0.580538 3.72301e-21)
+(5.8897 -0.584028 7.45381e-21)
+(5.88462 -0.587164 0)
+(5.87922 -0.589941 -8.9984e-21)
+(5.87352 -0.59236 0)
+(5.86751 -0.594416 4.12593e-20)
+(5.86121 -0.596111 0)
+(5.85462 -0.597443 -1.86276e-20)
+(5.84776 -0.598413 0)
+(5.84063 -0.599023 4.61712e-20)
+(5.83325 -0.599275 2.5476e-20)
+(5.82563 -0.599173 0)
+(5.81778 -0.598718 0)
+(5.80972 -0.597915 0)
+(5.80146 -0.59677 -3.40816e-20)
+(5.79302 -0.595295 0)
+(5.78441 -0.593504 3.79988e-20)
+(5.77566 -0.591409 -1.20209e-19)
+(5.76678 -0.589023 4.20402e-20)
+(5.75778 -0.58636 -8.77545e-20)
+(5.74869 -0.583435 9.14565e-20)
+(5.73952 -0.580263 -9.51468e-20)
+(5.7303 -0.576865 0)
+(5.72104 -0.573259 0)
+(5.71178 -0.569465 2.10821e-19)
+(5.70253 -0.565504 2.17371e-19)
+(5.69332 -0.561399 1.11908e-19)
+(5.68417 -0.557173 -2.2996e-19)
+(5.67512 -0.552851 0)
+(5.66618 -0.548461 0)
+(5.65739 -0.544031 0)
+(5.64879 -0.539597 0)
+(5.6404 -0.535187 -1.29264e-19)
+(5.63227 -0.530826 0)
+(5.62443 -0.526552 0)
+(5.61694 -0.522411 4.10391e-19)
+(5.60984 -0.518442 0)
+(5.60319 -0.514687 -2.82799e-19)
+(5.59704 -0.511191 2.8716e-19)
+(5.59147 -0.508004 0)
+(5.58655 -0.505165 -2.9538e-19)
+(5.58238 -0.502712 2.99238e-19)
+(5.57905 -0.500674 1.51565e-19)
+(5.57668 -0.499069 1.53335e-19)
+(5.57539 -0.497915 0)
+(5.57531 -0.497228 -1.56584e-19)
+(5.57663 -0.497008 0)
+(5.57952 -0.497231 -1.59398e-19)
+(5.58418 -0.497867 0)
+(5.59086 -0.498832 0)
+(5.59966 -0.500155 0)
+(5.61141 -0.501281 -1.63385e-19)
+(5.62427 -0.503578 -3.26684e-19)
+(1.0898 0.411293 0)
+(1.79873 0.248288 -1.49831e-19)
+(2.43301 0.108516 1.14037e-19)
+(2.96733 0.0240988 -9.40249e-20)
+(3.39042 -0.0278407 0)
+(3.72246 -0.0603802 0)
+(3.98241 -0.0793125 -6.72405e-20)
+(4.18757 -0.0891228 -6.31501e-20)
+(4.3527 -0.0911916 -5.98467e-20)
+(4.48704 -0.0908211 0)
+(4.59919 -0.0893798 0)
+(4.69553 -0.0878544 0)
+(4.77969 -0.0867971 0)
+(4.85492 -0.0863243 -9.93266e-20)
+(4.92253 -0.0861647 -9.66174e-20)
+(4.98385 -0.0861521 0)
+(5.03998 -0.086186 0)
+(5.09177 -0.0862071 0)
+(5.13987 -0.0862528 0)
+(5.18472 -0.0863225 8.58102e-20)
+(5.22667 -0.0863743 8.40462e-20)
+(5.266 -0.0863971 0)
+(5.30298 -0.0864135 0)
+(5.33787 -0.0864197 -7.93093e-20)
+(5.37088 -0.0864 7.78904e-20)
+(5.40222 -0.0863627 0)
+(5.43207 -0.0863194 0)
+(5.46057 -0.0862802 0)
+(5.48785 -0.0862549 0)
+(5.51402 -0.086249 0)
+(5.53918 -0.0862675 0)
+(5.56343 -0.0863149 0)
+(5.58684 -0.0863947 0)
+(5.60947 -0.0865109 0)
+(5.6314 -0.0866673 0)
+(5.65266 -0.0868711 -6.5787e-20)
+(5.6733 -0.0871272 0)
+(5.69335 -0.0874417 0)
+(5.71284 -0.0878186 6.32358e-20)
+(5.73182 -0.0882579 0)
+(5.7503 -0.0887581 0)
+(5.76832 -0.089324 0)
+(5.78589 -0.0899611 0)
+(5.80305 -0.0906731 -5.94363e-20)
+(5.8198 -0.0914669 5.87301e-20)
+(5.83618 -0.0923478 0)
+(5.85222 -0.0933221 0)
+(5.86792 -0.094396 0)
+(5.88331 -0.0955748 0)
+(5.89841 -0.0968643 0)
+(5.91323 -0.0982701 0)
+(5.92779 -0.0997975 0)
+(5.9421 -0.101452 0)
+(5.95617 -0.10324 5.28809e-20)
+(5.97001 -0.105167 0)
+(5.98363 -0.10724 0)
+(5.99703 -0.109464 -1.02096e-19)
+(6.01023 -0.111844 0)
+(6.02322 -0.114383 0)
+(6.036 -0.117088 -9.84715e-20)
+(6.04858 -0.119965 0)
+(6.06096 -0.123018 0)
+(6.07315 -0.126251 0)
+(6.08513 -0.129671 0)
+(6.09691 -0.133281 9.24232e-20)
+(6.1085 -0.137088 9.12005e-20)
+(6.1199 -0.141094 -8.99704e-20)
+(6.1311 -0.145306 -8.87317e-20)
+(6.1421 -0.149725 0)
+(6.1529 -0.154355 -8.62237e-20)
+(6.16351 -0.159197 0)
+(6.17392 -0.164253 0)
+(6.18413 -0.169524 -8.23696e-20)
+(6.19413 -0.175011 8.1057e-20)
+(6.20392 -0.180711 0)
+(6.2135 -0.186624 0)
+(6.22286 -0.192749 7.70276e-20)
+(6.23201 -0.199083 0)
+(6.24092 -0.205626 0)
+(6.2496 -0.212373 0)
+(6.25804 -0.21932 7.14341e-20)
+(6.26623 -0.226462 6.99959e-20)
+(6.27416 -0.233792 6.85424e-20)
+(6.28184 -0.241303 0)
+(6.28924 -0.248989 0)
+(6.29637 -0.256841 6.40947e-20)
+(6.30322 -0.264852 0)
+(6.30978 -0.273012 0)
+(6.31604 -0.281313 0)
+(6.32201 -0.289745 5.79839e-20)
+(6.32767 -0.298298 0)
+(6.33303 -0.306962 0)
+(6.33807 -0.315726 5.3291e-20)
+(6.34281 -0.324576 5.17102e-20)
+(6.34723 -0.333503 0)
+(6.35132 -0.342492 0)
+(6.3551 -0.351532 0)
+(6.35854 -0.360609 0)
+(6.36165 -0.36971 0)
+(6.36443 -0.378819 0)
+(6.36687 -0.387922 -4.0503e-20)
+(6.36896 -0.397006 0)
+(6.37071 -0.406054 0)
+(6.37211 -0.415051 0)
+(6.37316 -0.423984 0)
+(6.37386 -0.432837 -6.49197e-20)
+(6.37419 -0.441592 0)
+(6.37417 -0.450237 0)
+(6.37379 -0.458755 -5.53387e-20)
+(6.37304 -0.467132 0)
+(6.37192 -0.475355 0)
+(6.37043 -0.483408 -4.58626e-20)
+(6.36858 -0.491276 4.27337e-20)
+(6.36635 -0.498945 0)
+(6.36375 -0.506401 0)
+(6.36078 -0.513632 3.34553e-20)
+(6.35744 -0.520624 0)
+(6.35373 -0.527368 -2.73711e-20)
+(6.34965 -0.53385 0)
+(6.34519 -0.540059 0)
+(6.34037 -0.545985 0)
+(6.33518 -0.551616 0)
+(6.32963 -0.556942 -1.25811e-20)
+(6.3237 -0.561957 0)
+(6.31741 -0.566648 0)
+(6.31076 -0.571006 0)
+(6.30377 -0.575025 0)
+(6.29643 -0.578699 -1.50906e-21)
+(6.28875 -0.582025 0)
+(6.28074 -0.585 0)
+(6.2724 -0.587622 9.57752e-21)
+(6.26373 -0.589887 0)
+(6.25475 -0.591796 -1.47817e-20)
+(6.24547 -0.593346 0)
+(6.23588 -0.594539 1.98403e-20)
+(6.22601 -0.595375 0)
+(6.21585 -0.595857 0)
+(6.20544 -0.595988 -2.71461e-20)
+(6.19477 -0.59577 0)
+(6.18386 -0.595208 0)
+(6.17273 -0.594306 0)
+(6.1614 -0.593069 3.63315e-20)
+(6.14988 -0.59151 0)
+(6.13819 -0.589643 4.06672e-20)
+(6.12635 -0.587481 4.27689e-20)
+(6.11437 -0.585038 -4.48263e-20)
+(6.10228 -0.582326 0)
+(6.09009 -0.579359 0)
+(6.07782 -0.576157 1.0146e-19)
+(6.0655 -0.572739 0)
+(6.05315 -0.569124 0)
+(6.04079 -0.565333 0)
+(6.02845 -0.561386 0)
+(6.01615 -0.557306 -1.19325e-19)
+(6.00392 -0.553117 0)
+(5.99178 -0.548845 0)
+(5.97976 -0.544517 0)
+(5.96789 -0.540164 0)
+(5.95621 -0.535824 0)
+(5.94476 -0.531526 1.37789e-19)
+(5.93356 -0.527292 0)
+(5.92266 -0.523166 0)
+(5.91212 -0.519196 -1.45806e-19)
+(5.90198 -0.515422 0)
+(5.89231 -0.511886 0)
+(5.88315 -0.508639 0)
+(5.87459 -0.505735 0)
+(5.86671 -0.503218 0)
+(5.8596 -0.501127 0)
+(5.85337 -0.4995 -1.61399e-19)
+(5.84812 -0.498358 -1.63264e-19)
+(5.84398 -0.497725 0)
+(5.84111 -0.49763 1.66681e-19)
+(5.83968 -0.49808 0)
+(5.83988 -0.49906 1.69634e-19)
+(5.84192 -0.500546 0)
+(5.84604 -0.502461 0)
+(5.85242 -0.504836 0)
+(5.86156 -0.50714 1.73808e-19)
+(5.87293 -0.510633 0)
+(7.69849 -0.0827691 1.01279e-19)
+(7.56873 -0.112381 0)
+(7.43317 -0.123582 9.65528e-20)
+(7.29617 -0.127001 9.66721e-20)
+(7.16113 -0.125904 -9.62049e-20)
+(7.04173 -0.122642 0)
+(6.94072 -0.118331 -9.46694e-20)
+(6.86217 -0.114455 -9.39309e-20)
+(6.80041 -0.111692 9.28625e-20)
+(6.75297 -0.11003 9.17975e-20)
+(6.71653 -0.108455 0)
+(6.6885 -0.106944 8.93345e-20)
+(6.6668 -0.105548 0)
+(6.64997 -0.104264 0)
+(6.63656 -0.1031 0)
+(6.62587 -0.102043 -8.4168e-20)
+(6.61711 -0.101074 8.28982e-20)
+(6.61008 -0.100155 0)
+(6.60435 -0.0993192 0)
+(6.59968 -0.0985751 0)
+(6.59598 -0.0978977 0)
+(6.59308 -0.0972707 0)
+(6.59087 -0.0967032 0)
+(6.58927 -0.0961999 0)
+(6.58825 -0.0957518 0)
+(6.58776 -0.0953536 0)
+(6.58778 -0.0950017 -7.16417e-20)
+(6.58826 -0.0946927 7.06736e-20)
+(6.58916 -0.0944263 0)
+(6.59044 -0.0942023 0)
+(6.59206 -0.0940221 -6.79132e-20)
+(6.59399 -0.0938871 0)
+(6.5962 -0.0937992 0)
+(6.59867 -0.0937598 0)
+(6.60138 -0.0937712 -6.45424e-20)
+(6.60431 -0.0938365 0)
+(6.60744 -0.0939571 0)
+(6.61074 -0.0941443 0)
+(6.6142 -0.0943954 1.22972e-19)
+(6.61779 -0.0947141 0)
+(6.62151 -0.0950982 0)
+(6.62534 -0.0955514 0)
+(6.6293 -0.0960847 0)
+(6.63337 -0.0967004 0)
+(6.63756 -0.0974074 1.14787e-19)
+(6.64187 -0.0982078 1.13511e-19)
+(6.64629 -0.0991074 0)
+(6.65082 -0.100112 0)
+(6.65545 -0.101225 0)
+(6.66019 -0.102454 0)
+(6.66502 -0.103802 0)
+(6.66995 -0.105274 0)
+(6.67497 -0.106876 0)
+(6.68006 -0.108611 0)
+(6.68523 -0.110488 0)
+(6.69048 -0.112511 0)
+(6.69578 -0.114684 0)
+(6.70113 -0.117012 9.92363e-20)
+(6.70653 -0.119496 0)
+(6.71196 -0.122144 -9.69447e-20)
+(6.71742 -0.124964 0)
+(6.7229 -0.127957 0)
+(6.72839 -0.13113 0)
+(6.7339 -0.134488 0)
+(6.7394 -0.138036 -9.11924e-20)
+(6.74491 -0.141779 0)
+(6.75042 -0.145722 0)
+(6.75591 -0.149866 0)
+(6.76138 -0.154217 0)
+(6.76683 -0.158776 0)
+(6.77224 -0.163545 0)
+(6.7776 -0.168525 0)
+(6.78291 -0.173717 0)
+(6.78816 -0.17912 -8.03273e-20)
+(6.79333 -0.184734 -7.90528e-20)
+(6.79842 -0.190558 0)
+(6.80341 -0.19659 0)
+(6.80829 -0.202828 7.51305e-20)
+(6.81306 -0.209269 0)
+(6.81771 -0.215909 0)
+(6.82221 -0.222744 0)
+(6.82656 -0.229769 0)
+(6.83074 -0.236977 0)
+(6.83475 -0.244362 -1.33658e-19)
+(6.83857 -0.251917 -1.30775e-19)
+(6.84219 -0.259634 -1.27862e-19)
+(6.84559 -0.267506 0)
+(6.84878 -0.275523 0)
+(6.85174 -0.283678 0)
+(6.85447 -0.291961 -1.15923e-19)
+(6.85695 -0.300363 0)
+(6.85918 -0.308874 1.09799e-19)
+(6.86116 -0.317481 0)
+(6.86287 -0.326175 0)
+(6.86432 -0.334941 -1.00452e-19)
+(6.86548 -0.343768 0)
+(6.86637 -0.352643 0)
+(6.86696 -0.361553 0)
+(6.86725 -0.370483 0)
+(6.86724 -0.37942 0)
+(6.86692 -0.38835 0)
+(6.86627 -0.397257 0)
+(6.86531 -0.406127 -7.49148e-20)
+(6.86401 -0.414945 0)
+(6.86237 -0.423696 0)
+(6.86039 -0.432364 0)
+(6.85807 -0.440935 -6.20293e-20)
+(6.85539 -0.449393 0)
+(6.85235 -0.457723 5.56078e-20)
+(6.84895 -0.465912 0)
+(6.84519 -0.473944 0)
+(6.84105 -0.481806 0)
+(6.83654 -0.489483 4.28753e-20)
+(6.83166 -0.496959 -3.97246e-20)
+(6.8264 -0.504224 0)
+(6.82076 -0.511263 0)
+(6.81474 -0.518063 0)
+(6.80834 -0.524615 0)
+(6.80155 -0.530906 0)
+(6.79439 -0.536924 0)
+(6.78683 -0.542658 0)
+(6.7789 -0.548099 0)
+(6.77058 -0.553239 0)
+(6.76187 -0.558065 0)
+(6.7528 -0.56257 -1.27807e-20)
+(6.74335 -0.566747 7.02553e-21)
+(6.73354 -0.570587 0)
+(6.72336 -0.574086 0)
+(6.71283 -0.577241 0)
+(6.70195 -0.580049 1.53703e-20)
+(6.69072 -0.582506 0)
+(6.67915 -0.584611 0)
+(6.66725 -0.586363 3.14532e-20)
+(6.65502 -0.587762 3.66692e-20)
+(6.64249 -0.588808 0)
+(6.62964 -0.589502 0)
+(6.61651 -0.589849 0)
+(6.60309 -0.589852 -5.6774e-20)
+(6.58941 -0.589515 6.16042e-20)
+(6.57548 -0.588842 0)
+(6.56132 -0.587836 -7.1016e-20)
+(6.54695 -0.586504 0)
+(6.53238 -0.58486 0)
+(6.51763 -0.582917 0)
+(6.50273 -0.58069 -8.87722e-20)
+(6.48769 -0.57819 0)
+(6.47253 -0.575431 0)
+(6.45727 -0.572427 0)
+(6.44193 -0.569199 0)
+(6.42653 -0.565767 0)
+(6.41111 -0.562151 0)
+(6.39567 -0.558371 0)
+(6.38026 -0.554447 0)
+(6.36488 -0.550402 0)
+(6.34958 -0.546261 -1.26703e-19)
+(6.33436 -0.54205 0)
+(6.31926 -0.537798 -1.33168e-19)
+(6.30432 -0.533539 1.36262e-19)
+(6.28956 -0.529308 0)
+(6.27502 -0.525137 1.42168e-19)
+(6.26074 -0.52105 0)
+(6.24676 -0.517093 1.47695e-19)
+(6.23314 -0.513323 0)
+(6.21994 -0.509774 -1.52866e-19)
+(6.20721 -0.50649 0)
+(6.19501 -0.503529 0)
+(6.18342 -0.500951 -1.59932e-19)
+(6.17252 -0.498803 -1.62104e-19)
+(6.16241 -0.497127 0)
+(6.1532 -0.495973 -3.32333e-19)
+(6.145 -0.49536 0)
+(6.13794 -0.495324 3.3966e-19)
+(6.13218 -0.495907 0)
+(6.12791 -0.497127 0)
+(6.12531 -0.498973 0)
+(6.12463 -0.501432 0)
+(6.12607 -0.504437 0)
+(6.12992 -0.508012 0)
+(6.13631 -0.511682 0)
+(6.14621 -0.516493 -3.57342e-19)
+(9.31137 0.0186444 7.46924e-20)
+(9.27051 0.0236539 1.50248e-19)
+(9.22146 0.0287058 -7.46269e-20)
+(9.16291 0.0253707 -7.58053e-20)
+(9.09283 0.0173112 2.28905e-19)
+(9.01446 0.00772548 0)
+(8.93078 -0.00252648 -7.59777e-20)
+(8.84431 -0.0131867 2.29295e-19)
+(8.75624 -0.0232494 -7.66216e-20)
+(8.66928 -0.0322151 7.53463e-20)
+(8.58472 -0.039964 0)
+(8.50356 -0.0466441 -7.56698e-20)
+(8.42669 -0.0524394 0)
+(8.35436 -0.0574958 1.48456e-19)
+(8.28668 -0.0618144 0)
+(8.22369 -0.0654858 7.36253e-20)
+(8.16533 -0.0685874 -7.30334e-20)
+(8.11131 -0.0711865 0)
+(8.0614 -0.0734609 0)
+(8.01527 -0.0753853 1.41342e-19)
+(7.9726 -0.0769916 0)
+(7.9331 -0.0783674 0)
+(7.89654 -0.0795317 0)
+(7.86263 -0.0804962 -1.36105e-19)
+(7.83111 -0.0813016 0)
+(7.80174 -0.0819856 0)
+(7.77435 -0.0825787 6.6418e-20)
+(7.74875 -0.0831041 6.50883e-20)
+(7.72482 -0.0835813 0)
+(7.7024 -0.0840266 0)
+(7.68141 -0.0844541 6.37912e-20)
+(7.66173 -0.0848756 0)
+(7.64329 -0.0853015 -1.24469e-19)
+(7.62598 -0.08574 0)
+(7.60977 -0.0861976 6.12856e-20)
+(7.59455 -0.0866807 -1.20834e-19)
+(7.58029 -0.0871861 -2.39313e-19)
+(7.5669 -0.0877207 0)
+(7.55432 -0.0882954 -1.17865e-19)
+(7.54248 -0.0889252 2.32523e-19)
+(7.53141 -0.0896147 0)
+(7.52104 -0.090369 0)
+(7.51136 -0.0911914 0)
+(7.50233 -0.0920849 0)
+(7.49392 -0.093056 -1.11377e-19)
+(7.4861 -0.0941099 -3.30111e-19)
+(7.47885 -0.0952518 -2.1772e-19)
+(7.47213 -0.0964869 0)
+(7.46592 -0.0978204 0)
+(7.4602 -0.0992576 0)
+(7.45494 -0.100804 0)
+(7.45011 -0.102464 0)
+(7.4457 -0.104244 0)
+(7.44169 -0.106148 0)
+(7.43805 -0.108183 0)
+(7.43477 -0.110354 0)
+(7.43181 -0.112666 0)
+(7.42916 -0.115122 -9.83268e-20)
+(7.4268 -0.117724 0)
+(7.42472 -0.120485 -9.54434e-20)
+(7.4229 -0.12341 0)
+(7.42133 -0.126503 0)
+(7.42001 -0.12977 0)
+(7.41891 -0.133217 0)
+(7.41804 -0.136848 9.12997e-20)
+(7.41737 -0.140668 0)
+(7.41689 -0.144681 1.77508e-19)
+(7.41658 -0.148889 0)
+(7.41644 -0.153295 1.73234e-19)
+(7.41645 -0.157903 0)
+(7.41658 -0.162712 0)
+(7.41683 -0.167725 0)
+(7.41717 -0.172941 0)
+(7.41759 -0.178361 2.43474e-19)
+(7.41808 -0.183983 2.3994e-19)
+(7.41861 -0.189807 0)
+(7.41918 -0.195831 1.54798e-19)
+(7.41975 -0.202052 -7.66542e-20)
+(7.42032 -0.208469 0)
+(7.42087 -0.215076 0)
+(7.42138 -0.221868 -2.89255e-19)
+(7.42183 -0.228841 2.83961e-19)
+(7.42221 -0.235989 0)
+(7.42249 -0.243306 1.37559e-19)
+(7.42266 -0.250785 1.34787e-19)
+(7.42271 -0.25842 1.31974e-19)
+(7.42263 -0.266202 0)
+(7.4224 -0.274124 0)
+(7.42202 -0.282178 0)
+(7.42146 -0.290355 3.59039e-19)
+(7.42072 -0.298646 0)
+(7.4198 -0.30704 -3.40937e-19)
+(7.41867 -0.315528 0)
+(7.41733 -0.324095 -2.14331e-19)
+(7.41576 -0.332731 3.1306e-19)
+(7.41396 -0.341423 0)
+(7.41191 -0.350159 0)
+(7.4096 -0.358923 0)
+(7.40703 -0.367704 0)
+(7.40417 -0.376487 0)
+(7.40102 -0.385257 0)
+(7.39758 -0.394001 0)
+(7.39382 -0.402703 -7.73883e-20)
+(7.38974 -0.411349 0)
+(7.38534 -0.419925 0)
+(7.38059 -0.428415 -1.36579e-19)
+(7.37551 -0.436803 6.57264e-20)
+(7.37007 -0.445076 0)
+(7.36427 -0.453219 -5.90356e-20)
+(7.3581 -0.461217 0)
+(7.35157 -0.469057 1.03332e-19)
+(7.34465 -0.476724 9.66965e-20)
+(7.33736 -0.484205 4.43979e-20)
+(7.32968 -0.491483 1.25827e-19)
+(7.32162 -0.498549 -7.6888e-20)
+(7.31316 -0.505388 -7.03302e-20)
+(7.3043 -0.511986 6.37986e-20)
+(7.29505 -0.518336 0)
+(7.2854 -0.524424 -5.08337e-20)
+(7.27534 -0.53024 -4.44072e-20)
+(7.26489 -0.535773 3.80238e-20)
+(7.25403 -0.541013 0)
+(7.24278 -0.545951 0)
+(7.23113 -0.550578 0)
+(7.21908 -0.554888 1.37229e-20)
+(7.20665 -0.558871 -7.54707e-21)
+(7.19384 -0.562521 1.50398e-21)
+(7.18064 -0.565833 0)
+(7.16707 -0.568805 0)
+(7.15313 -0.571432 -5.0732e-20)
+(7.13883 -0.573714 4.58222e-20)
+(7.12417 -0.575647 -5.73089e-20)
+(7.10916 -0.577231 -3.38793e-20)
+(7.09382 -0.578467 4.03285e-20)
+(7.07814 -0.579356 0)
+(7.06215 -0.5799 1.0175e-19)
+(7.04585 -0.580103 -1.12466e-19)
+(7.02926 -0.57997 -6.1787e-20)
+(7.01239 -0.579506 6.69489e-20)
+(6.99527 -0.578717 0)
+(6.97791 -0.577605 -7.70144e-20)
+(6.96034 -0.576177 1.63488e-19)
+(6.94256 -0.574447 0)
+(6.92461 -0.572429 0)
+(6.9065 -0.570137 -9.60217e-20)
+(6.88825 -0.567583 0)
+(6.86988 -0.564778 -2.09777e-19)
+(6.8514 -0.561742 2.1844e-19)
+(6.83285 -0.558493 0)
+(6.81424 -0.555055 0)
+(6.79561 -0.551447 0)
+(6.77697 -0.547687 0)
+(6.75836 -0.543795 0)
+(6.73978 -0.539796 -2.66136e-19)
+(6.72127 -0.535713 1.36701e-19)
+(6.70284 -0.531574 0)
+(6.68454 -0.527412 1.43633e-19)
+(6.66638 -0.523258 -1.46947e-19)
+(6.64841 -0.519152 0)
+(6.63065 -0.515129 -1.53268e-19)
+(6.61315 -0.511209 0)
+(6.59596 -0.507447 1.59169e-19)
+(6.57914 -0.503905 -3.23964e-19)
+(6.56274 -0.500612 1.64672e-19)
+(6.54682 -0.497614 3.34636e-19)
+(6.53143 -0.494979 3.39666e-19)
+(6.51668 -0.492771 1.72151e-19)
+(6.50262 -0.49104 -1.74683e-19)
+(6.48936 -0.48983 3.53547e-19)
+(6.47701 -0.489207 -3.66675e-22)
+(6.46567 -0.48919 0)
+(6.45549 -0.489827 -3.6506e-19)
+(6.44664 -0.491179 0)
+(6.43932 -0.49327 0)
+(6.43371 -0.496097 -7.50554e-19)
+(6.43007 -0.499661 7.55787e-19)
+(6.42859 -0.503904 0)
+(6.4297 -0.508841 7.64151e-19)
+(6.43309 -0.514071 0)
+(6.44135 -0.520343 -3.8532e-19)
+(9.83342 0.0404452 -1.30837e-19)
+(9.82294 0.0401864 9.80808e-23)
+(9.81108 0.0383782 0)
+(9.79833 0.0333573 0)
+(9.78347 0.0276839 -1.333e-19)
+(9.76606 0.0229549 0)
+(9.7462 0.0189882 2.67426e-19)
+(9.72378 0.01528 -2.68005e-19)
+(9.6984 0.0117735 0)
+(9.66985 0.00830668 -1.34239e-19)
+(9.63818 0.00485272 0)
+(9.60353 0.00137159 0)
+(9.56621 -0.00218615 0)
+(9.52642 -0.00581441 -1.32955e-19)
+(9.48448 -0.00946209 -2.64349e-19)
+(9.44064 -0.013097 0)
+(9.39538 -0.0167011 0)
+(9.34892 -0.0202329 0)
+(9.3017 -0.0236682 0)
+(9.2541 -0.0269897 -3.87419e-19)
+(9.20642 -0.030176 0)
+(9.15895 -0.033213 0)
+(9.11199 -0.0361104 0)
+(9.06579 -0.0388946 3.78281e-19)
+(9.02054 -0.0415582 0)
+(8.9764 -0.0440941 2.48623e-19)
+(8.93349 -0.0465029 -2.46944e-19)
+(8.8919 -0.0487878 -3.68307e-19)
+(8.85169 -0.0509558 0)
+(8.81289 -0.0530141 0)
+(8.77552 -0.0549724 0)
+(8.73956 -0.056839 0)
+(8.705 -0.0586248 3.55336e-19)
+(8.67181 -0.0603382 0)
+(8.63997 -0.0619898 0)
+(8.60942 -0.0635898 -1.15254e-19)
+(8.58014 -0.0651514 2.30503e-19)
+(8.5521 -0.0666932 0)
+(8.52529 -0.0682109 0)
+(8.49964 -0.0697015 -4.49953e-19)
+(8.4751 -0.0711743 2.22866e-19)
+(8.45163 -0.0726598 -2.21177e-19)
+(8.42918 -0.0741696 0)
+(8.4077 -0.0757123 0)
+(8.38717 -0.077299 0)
+(8.36753 -0.0789379 2.15277e-19)
+(8.34876 -0.0806364 2.13594e-19)
+(8.33083 -0.0824021 0)
+(8.3137 -0.0842419 0)
+(8.29735 -0.0861628 0)
+(8.28174 -0.0881716 0)
+(8.26685 -0.0902744 0)
+(8.25265 -0.0924778 0)
+(8.23912 -0.0947849 0)
+(8.22622 -0.0972002 -1.99199e-19)
+(8.21391 -0.0997296 0)
+(8.20218 -0.102381 0)
+(8.19099 -0.105164 0)
+(8.18035 -0.108086 -3.8465e-19)
+(8.17023 -0.111154 1.91453e-19)
+(8.16061 -0.114377 0)
+(8.15149 -0.117758 0)
+(8.14283 -0.121302 0)
+(8.13463 -0.125013 -3.66819e-19)
+(8.12685 -0.128895 3.63116e-19)
+(8.11948 -0.132952 0)
+(8.11249 -0.137189 -1.78707e-19)
+(8.10586 -0.141607 0)
+(8.09957 -0.14621 -1.7481e-19)
+(8.09359 -0.151 0)
+(8.0879 -0.155978 0)
+(8.08248 -0.161146 0)
+(8.0773 -0.166504 3.31169e-19)
+(8.07235 -0.172052 -4.91244e-19)
+(8.0676 -0.17779 -4.84614e-19)
+(8.06303 -0.183716 3.17891e-19)
+(8.05861 -0.189829 1.55625e-19)
+(8.05433 -0.196126 0)
+(8.05016 -0.202605 0)
+(8.04607 -0.209261 0)
+(8.04204 -0.21609 5.89916e-19)
+(8.03805 -0.223087 -2.07238e-21)
+(8.03409 -0.230247 -2.8368e-19)
+(8.03012 -0.237565 0)
+(8.02614 -0.245037 -2.73059e-19)
+(8.02213 -0.252654 0)
+(8.01807 -0.260411 0)
+(8.01395 -0.268299 0)
+(8.00976 -0.276312 2.50698e-19)
+(8.00547 -0.284439 -2.04007e-21)
+(8.00107 -0.292673 0)
+(7.99654 -0.301002 2.34992e-19)
+(7.99188 -0.309416 0)
+(7.98705 -0.317901 2.22727e-19)
+(7.98205 -0.326447 -1.96236e-21)
+(7.97685 -0.335041 -2.08207e-19)
+(7.97145 -0.34367 0)
+(7.96582 -0.352321 0)
+(7.95994 -0.360981 0)
+(7.95382 -0.369636 0)
+(7.94742 -0.378271 0)
+(7.94074 -0.386874 3.38124e-19)
+(7.93376 -0.395429 -1.60617e-19)
+(7.92648 -0.403922 -3.11232e-19)
+(7.91888 -0.412339 0)
+(7.91094 -0.420665 4.27727e-19)
+(7.90267 -0.428886 0)
+(7.89404 -0.436986 0)
+(7.88505 -0.444953 0)
+(7.8757 -0.452771 0)
+(7.86596 -0.460428 -3.2456e-19)
+(7.85585 -0.467909 9.94444e-20)
+(7.84535 -0.475201 9.26042e-20)
+(7.83445 -0.482289 -8.83466e-20)
+(7.82316 -0.489162 8.14301e-20)
+(7.81146 -0.495807 7.45312e-20)
+(7.79936 -0.502209 6.53523e-20)
+(7.78684 -0.508364 0)
+(7.77392 -0.514257 -5.18563e-20)
+(7.76057 -0.519875 4.71645e-20)
+(7.74682 -0.525211 -4.04042e-20)
+(7.73266 -0.530255 0)
+(7.71808 -0.535 0)
+(7.7031 -0.539436 3.91178e-20)
+(7.68772 -0.543556 2.60506e-20)
+(7.67194 -0.547352 0)
+(7.65576 -0.550818 -1.60184e-21)
+(7.63919 -0.553951 0)
+(7.62223 -0.556746 2.50815e-20)
+(7.60489 -0.559202 3.64471e-20)
+(7.58719 -0.561315 -4.88536e-20)
+(7.56911 -0.563084 6.11123e-20)
+(7.55068 -0.56451 0)
+(7.53191 -0.565594 -8.51639e-20)
+(7.51281 -0.566338 0)
+(7.49338 -0.566743 -1.08564e-19)
+(7.47365 -0.566816 1.20008e-19)
+(7.45363 -0.566561 -4.9247e-22)
+(7.43334 -0.565983 4.26747e-22)
+(7.4128 -0.565094 -1.53633e-19)
+(7.39202 -0.563892 1.63975e-19)
+(7.37103 -0.562386 2.50099e-22)
+(7.34985 -0.560589 0)
+(7.3285 -0.558514 0)
+(7.30701 -0.556176 -1.14448e-22)
+(7.28538 -0.553586 0)
+(7.26364 -0.550757 2.2373e-19)
+(7.24181 -0.547707 2.32936e-19)
+(7.21991 -0.544459 0)
+(7.19797 -0.541037 5.01181e-19)
+(7.17602 -0.537457 0)
+(7.15407 -0.533737 5.34717e-19)
+(7.13214 -0.529897 0)
+(7.11026 -0.525961 2.83324e-19)
+(7.08845 -0.521956 0)
+(7.06672 -0.517906 0)
+(7.04513 -0.51385 0)
+(7.02368 -0.509819 6.24627e-19)
+(7.00242 -0.505854 0)
+(6.98137 -0.501996 0)
+(6.9606 -0.498266 6.63772e-19)
+(6.94016 -0.494722 3.37917e-19)
+(6.9201 -0.491429 1.0315e-18)
+(6.90045 -0.488413 0)
+(6.88132 -0.485725 3.55052e-19)
+(6.86272 -0.483439 -3.60069e-19)
+(6.84477 -0.481622 0)
+(6.82751 -0.480329 1.10978e-18)
+(6.81104 -0.479601 -3.74254e-19)
+(6.79547 -0.479528 -3.79385e-19)
+(6.7809 -0.480128 0)
+(6.76752 -0.481466 0)
+(6.75547 -0.483616 0)
+(6.74497 -0.48661 0)
+(6.7362 -0.490458 7.92104e-19)
+(6.72945 -0.49517 -7.97184e-19)
+(6.72489 -0.500704 0)
+(6.72308 -0.507057 -8.05223e-19)
+(6.72332 -0.513918 0)
+(6.7297 -0.521677 -2.57466e-21)
+(10.032 0.0461186 2.28507e-19)
+(10.0298 0.0442944 -1.14378e-19)
+(10.0272 0.0424815 0)
+(10.0249 0.0401037 0)
+(10.0221 0.0373313 -2.31412e-19)
+(10.0184 0.0345515 2.32372e-19)
+(10.0139 0.0317409 -3.50058e-19)
+(10.0089 0.0287642 3.51186e-19)
+(10.0031 0.025697 -2.34567e-19)
+(9.99671 0.0226687 -2.35117e-19)
+(9.98958 0.0198238 0)
+(9.98174 0.0172083 0)
+(9.97319 0.0147971 0)
+(9.96382 0.0125615 -2.36162e-19)
+(9.95355 0.0104859 2.36512e-19)
+(9.9423 0.00854419 2.36036e-19)
+(9.93001 0.00670676 0)
+(9.91663 0.00495669 0)
+(9.9021 0.00324439 -2.35113e-19)
+(9.88637 0.00153922 2.34844e-19)
+(9.86939 -0.000171983 0)
+(9.85116 -0.00190708 0)
+(9.83165 -0.00367962 0)
+(9.81087 -0.00548832 -2.32248e-19)
+(9.78885 -0.0073307 0)
+(9.76565 -0.00920534 -2.30652e-19)
+(9.74134 -0.0111142 2.29799e-19)
+(9.716 -0.0130559 2.2892e-19)
+(9.68971 -0.015031 0)
+(9.66259 -0.017036 0)
+(9.63474 -0.0190711 0)
+(9.60628 -0.0211318 0)
+(9.57733 -0.0232197 -2.24126e-19)
+(9.54802 -0.0253294 0)
+(9.51845 -0.027465 0)
+(9.48876 -0.029623 2.21015e-19)
+(9.45903 -0.0317932 -2.19462e-19)
+(9.42941 -0.0339816 2.18324e-19)
+(9.39998 -0.0361978 0)
+(9.37087 -0.038456 -2.1543e-19)
+(9.34213 -0.0407507 -2.15329e-19)
+(9.31385 -0.0430767 2.14139e-19)
+(9.28607 -0.0454322 0)
+(9.25884 -0.0478174 4.22197e-19)
+(9.2322 -0.0502363 0)
+(9.20618 -0.0526927 -4.17171e-19)
+(9.1808 -0.0551911 0)
+(9.15608 -0.0577364 0)
+(9.13202 -0.0603334 4.09415e-19)
+(9.10863 -0.0629884 0)
+(9.08593 -0.065706 0)
+(9.06389 -0.0684939 -4.01376e-19)
+(9.04252 -0.071355 -3.98627e-19)
+(9.02182 -0.0742978 -3.95843e-19)
+(9.00179 -0.077338 5.90343e-19)
+(8.98243 -0.0804715 0)
+(8.96374 -0.0837062 -3.87357e-19)
+(8.94571 -0.087043 3.84473e-19)
+(8.92833 -0.0904816 3.83194e-19)
+(8.91156 -0.0940488 0)
+(8.8954 -0.0977454 -3.75479e-19)
+(8.87981 -0.101573 0)
+(8.86478 -0.105545 -3.69203e-19)
+(8.85028 -0.109667 3.67777e-19)
+(8.8363 -0.113944 -3.64504e-19)
+(8.82282 -0.118378 0)
+(8.80981 -0.122973 0)
+(8.79725 -0.127733 0)
+(8.78513 -0.13266 0)
+(8.77342 -0.137757 0)
+(8.7621 -0.143025 0)
+(8.75114 -0.148466 0)
+(8.74053 -0.154081 -2.02203e-21)
+(8.73025 -0.159869 2.04159e-21)
+(8.72026 -0.16583 3.27432e-19)
+(8.71054 -0.171962 -3.2322e-19)
+(8.70108 -0.178263 -3.18907e-19)
+(8.69184 -0.18473 3.12389e-19)
+(8.68279 -0.19136 0)
+(8.67392 -0.198152 0)
+(8.6652 -0.205102 -3.00648e-19)
+(8.65662 -0.212208 -2.95825e-19)
+(8.64814 -0.219464 2.90895e-19)
+(8.63977 -0.226866 5.67435e-19)
+(8.63146 -0.23441 2.80709e-19)
+(8.62322 -0.242089 0)
+(8.61502 -0.249897 0)
+(8.60683 -0.257826 0)
+(8.59864 -0.265866 -2.59001e-19)
+(8.59043 -0.274009 -2.53295e-19)
+(8.58216 -0.282244 4.90741e-19)
+(8.57383 -0.290563 4.78928e-19)
+(8.56539 -0.298953 0)
+(8.55684 -0.307403 -4.54707e-19)
+(8.54815 -0.3159 2.19109e-19)
+(8.53929 -0.324435 -2.12841e-19)
+(8.53026 -0.332994 0)
+(8.52102 -0.341565 0)
+(8.51157 -0.350134 0)
+(8.50188 -0.358689 0)
+(8.49193 -0.367217 0)
+(8.48172 -0.375702 -3.54579e-19)
+(8.47122 -0.384133 3.4088e-19)
+(8.46042 -0.392494 3.55608e-21)
+(8.4493 -0.400772 0)
+(8.43786 -0.408953 -3.39659e-21)
+(8.42608 -0.417022 -2.81696e-19)
+(8.41395 -0.424966 0)
+(8.40146 -0.432771 0)
+(8.3886 -0.440423 2.39215e-19)
+(8.37536 -0.447909 2.27903e-19)
+(8.36173 -0.455217 -2.13511e-19)
+(8.3477 -0.462331 -1.99098e-19)
+(8.33328 -0.469239 0)
+(8.31844 -0.475932 0)
+(8.3032 -0.482394 0)
+(8.28755 -0.488612 -1.41374e-19)
+(8.27147 -0.49458 0)
+(8.25498 -0.500285 1.12636e-19)
+(8.23806 -0.505717 0)
+(8.22073 -0.510869 0)
+(8.20298 -0.515731 0)
+(8.18482 -0.520294 0)
+(8.16624 -0.524551 -4.17603e-20)
+(8.14726 -0.528493 -2.7824e-20)
+(8.12787 -0.532115 -1.25493e-20)
+(8.10808 -0.53541 0)
+(8.0879 -0.538376 2.91919e-20)
+(8.06733 -0.541008 -2.68342e-20)
+(8.04638 -0.543305 8.24881e-20)
+(8.02505 -0.545265 -1.08723e-19)
+(8.00337 -0.546887 0)
+(7.98134 -0.548172 0)
+(7.95897 -0.549123 1.85611e-19)
+(7.93628 -0.549741 0)
+(7.91329 -0.550029 2.35236e-19)
+(7.89001 -0.549993 -2.5952e-19)
+(7.86645 -0.549638 1.41319e-19)
+(7.84264 -0.54897 -4.60151e-19)
+(7.81858 -0.548003 -1.65344e-19)
+(7.79431 -0.546737 3.52921e-19)
+(7.76984 -0.545178 1.87765e-19)
+(7.74521 -0.54334 0)
+(7.72043 -0.541233 4.18501e-19)
+(7.69552 -0.538875 -2.19732e-19)
+(7.67049 -0.536275 -4.59912e-19)
+(7.64537 -0.533447 -4.79908e-19)
+(7.62018 -0.530412 -4.99621e-19)
+(7.59494 -0.527194 0)
+(7.56969 -0.523813 -5.37293e-19)
+(7.54443 -0.520285 0)
+(7.51918 -0.516625 -5.72973e-19)
+(7.49396 -0.512857 0)
+(7.46879 -0.509004 0)
+(7.4437 -0.505097 -6.22362e-19)
+(7.41871 -0.501158 0)
+(7.39387 -0.497226 0)
+(7.36916 -0.493341 -3.98997e-22)
+(7.34466 -0.489545 0)
+(7.32041 -0.485884 0)
+(7.29648 -0.48237 -7.09767e-19)
+(7.27291 -0.479063 -1.70734e-22)
+(7.24974 -0.476038 -7.34674e-19)
+(7.22694 -0.473327 0)
+(7.20473 -0.470973 1.38055e-22)
+(7.183 -0.469053 0)
+(7.16194 -0.467635 7.79523e-19)
+(7.1415 -0.466791 -7.89165e-19)
+(7.12187 -0.466555 0)
+(7.1031 -0.467037 1.61572e-18)
+(7.08529 -0.468267 0)
+(7.06868 -0.470324 8.25063e-19)
+(7.05336 -0.473291 0)
+(7.0396 -0.477215 0)
+(7.02757 -0.482116 1.69112e-18)
+(7.0176 -0.488013 0)
+(7.00984 -0.494888 1.71111e-18)
+(7.00496 -0.502704 -1.71829e-18)
+(7.00192 -0.511272 -1.72336e-18)
+(7.00615 -0.520544 2.58921e-18)
+(10.0952 0.0469226 -3.96646e-19)
+(10.0962 0.0454496 0)
+(10.097 0.0438745 1.9838e-19)
+(10.0978 0.0418569 0)
+(10.0982 0.0391822 7.00327e-22)
+(10.098 0.0361843 -7.67321e-22)
+(10.0973 0.0331603 2.02289e-19)
+(10.0963 0.0301936 -2.02812e-19)
+(10.095 0.0273428 4.05831e-19)
+(10.0934 0.0246835 4.06714e-19)
+(10.0916 0.0222667 2.03442e-19)
+(10.0896 0.0200848 0)
+(10.0874 0.0180995 0)
+(10.0851 0.0162774 4.52551e-22)
+(10.0827 0.0146025 -2.0497e-19)
+(10.0801 0.0130629 -2.05675e-19)
+(10.0773 0.0116447 0)
+(10.0744 0.0103369 0)
+(10.0713 0.00911742 2.06426e-19)
+(10.0679 0.00797384 0)
+(10.0643 0.0069039 -2.06556e-19)
+(10.0604 0.00590142 0)
+(10.0563 0.0049549 0)
+(10.0518 0.00404911 0)
+(10.0469 0.003169 0)
+(10.0416 0.00230144 -4.13893e-19)
+(10.0359 0.00143349 0)
+(10.0297 0.000553954 0)
+(10.023 -0.000348838 0)
+(10.0157 -0.00128468 -4.13176e-19)
+(10.0079 -0.00226449 0)
+(9.99956 -0.00329666 0)
+(9.99056 -0.00439094 4.1187e-19)
+(9.98094 -0.00555411 -4.11305e-19)
+(9.97066 -0.00679448 0)
+(9.95974 -0.00811899 0)
+(9.94814 -0.00953543 2.04753e-19)
+(9.93587 -0.0110535 -2.04345e-19)
+(9.92292 -0.0126785 4.07371e-19)
+(9.9093 -0.0144054 4.06829e-19)
+(9.89503 -0.0162277 0)
+(9.88015 -0.0181473 0)
+(9.86469 -0.0201665 0)
+(9.84869 -0.0222871 -4.02358e-19)
+(9.83219 -0.0245113 -4.0039e-19)
+(9.81525 -0.0268406 3.99763e-19)
+(9.79792 -0.0292763 3.97569e-19)
+(9.78024 -0.0318195 -3.96066e-19)
+(9.76227 -0.034472 -3.95406e-19)
+(9.74406 -0.0372344 0)
+(9.72568 -0.0401094 0)
+(9.70716 -0.0430969 7.79886e-19)
+(9.68857 -0.0462014 3.88696e-19)
+(9.66995 -0.0494232 3.86857e-19)
+(9.65136 -0.0527578 -7.68635e-19)
+(9.63284 -0.0562143 0)
+(9.61444 -0.0597985 3.80807e-19)
+(9.59621 -0.063516 -1.39339e-21)
+(9.57816 -0.0673727 0)
+(9.56034 -0.0713668 0)
+(9.54277 -0.0754974 3.71577e-19)
+(9.52547 -0.0797657 3.67509e-19)
+(9.50845 -0.0841739 3.66534e-19)
+(9.49172 -0.0887241 0)
+(9.47529 -0.093419 0)
+(9.45916 -0.0982617 3.56613e-19)
+(9.44334 -0.103255 3.53678e-19)
+(9.42782 -0.1084 0)
+(9.4126 -0.113701 -3.47535e-19)
+(9.39768 -0.119157 0)
+(9.38305 -0.124772 0)
+(9.3687 -0.130544 0)
+(9.35463 -0.136475 -3.36074e-19)
+(9.34082 -0.142565 3.32472e-19)
+(9.32726 -0.148812 6.53395e-19)
+(9.31393 -0.155214 0)
+(9.30083 -0.161774 0)
+(9.28795 -0.168489 -9.46551e-19)
+(9.27528 -0.175354 0)
+(9.2628 -0.182364 0)
+(9.2505 -0.189515 0)
+(9.23836 -0.196804 0)
+(9.22636 -0.204227 0)
+(9.21448 -0.21178 -5.80327e-19)
+(9.2027 -0.219457 0)
+(9.19099 -0.227249 0)
+(9.17933 -0.235153 0)
+(9.16768 -0.243161 0)
+(9.15603 -0.251265 0)
+(9.14435 -0.259457 -5.13229e-19)
+(9.13262 -0.267728 -5.0629e-19)
+(9.12081 -0.276068 -4.94705e-19)
+(9.10889 -0.284465 -4.78555e-19)
+(9.09686 -0.292908 4.7083e-19)
+(9.08469 -0.301386 -9.12845e-19)
+(9.07235 -0.309889 4.2091e-21)
+(9.05983 -0.318404 0)
+(9.04711 -0.32692 0)
+(9.03418 -0.335423 0)
+(9.021 -0.343901 0)
+(9.00758 -0.352341 -3.76543e-19)
+(8.99388 -0.36073 0)
+(8.97989 -0.369055 0)
+(8.9656 -0.377302 3.38946e-19)
+(8.95099 -0.385457 0)
+(8.93605 -0.393508 -6.17522e-19)
+(8.92077 -0.401441 3.4319e-21)
+(8.90513 -0.409242 0)
+(8.88913 -0.416899 0)
+(8.87274 -0.424397 -3.14509e-21)
+(8.85597 -0.431725 -2.34407e-19)
+(8.83881 -0.43887 -2.19639e-19)
+(8.82124 -0.44582 2.04814e-19)
+(8.80326 -0.45256 0)
+(8.78487 -0.459082 -3.50058e-19)
+(8.76607 -0.465369 3.20199e-19)
+(8.74684 -0.471414 0)
+(8.72719 -0.477211 0)
+(8.70713 -0.482743 0)
+(8.68664 -0.488003 0)
+(8.66573 -0.492983 -1.70996e-19)
+(8.6444 -0.497674 0)
+(8.62266 -0.502069 0)
+(8.60051 -0.50616 0)
+(8.57795 -0.50994 0)
+(8.55499 -0.513401 1.34067e-20)
+(8.53163 -0.516542 0)
+(8.50789 -0.519357 -3.12219e-20)
+(8.48376 -0.521845 0)
+(8.45927 -0.524003 -1.78666e-19)
+(8.43442 -0.525832 2.34769e-19)
+(8.40923 -0.527332 0)
+(8.38372 -0.528503 0)
+(8.3579 -0.529347 -1.99107e-19)
+(8.33179 -0.529868 -2.27111e-19)
+(8.3054 -0.530067 -2.5254e-19)
+(8.27874 -0.529951 5.58205e-19)
+(8.25184 -0.529526 0)
+(8.22472 -0.5288 6.60291e-19)
+(8.19739 -0.527787 3.5491e-19)
+(8.16988 -0.526482 -3.79498e-19)
+(8.14219 -0.524892 -8.0724e-19)
+(8.11435 -0.523036 0)
+(8.08637 -0.520923 -4.50225e-19)
+(8.05828 -0.518575 4.72771e-19)
+(8.03011 -0.515999 4.94826e-19)
+(8.00187 -0.513205 5.16336e-19)
+(7.9736 -0.510216 0)
+(7.94531 -0.50705 0)
+(7.91701 -0.503727 0)
+(7.8887 -0.500266 -5.9644e-19)
+(7.8604 -0.496683 6.15229e-19)
+(7.83214 -0.493003 -6.33467e-19)
+(7.80395 -0.489254 6.51189e-19)
+(7.77586 -0.485466 5.62665e-22)
+(7.74788 -0.481662 0)
+(7.7201 -0.477898 0)
+(7.6925 -0.474198 -7.17756e-19)
+(7.66518 -0.470591 -7.32584e-19)
+(7.63812 -0.467143 1.49518e-18)
+(7.61139 -0.463855 0)
+(7.58502 -0.460807 7.75121e-19)
+(7.55905 -0.458088 1.57679e-18)
+(7.53353 -0.455686 0)
+(7.50848 -0.453677 -8.13184e-19)
+(7.48395 -0.452118 1.65079e-18)
+(7.46001 -0.451083 -8.3562e-19)
+(7.43662 -0.450679 1.6947e-18)
+(7.41398 -0.450934 0)
+(7.39218 -0.451982 -8.65934e-19)
+(7.37131 -0.453834 -1.75307e-18)
+(7.35156 -0.456602 -8.83084e-19)
+(7.33299 -0.460404 1.7863e-18)
+(7.31603 -0.465275 -1.79972e-18)
+(7.30073 -0.471248 -1.80769e-18)
+(7.28752 -0.478354 0)
+(7.2765 -0.486609 -1.82636e-18)
+(7.26845 -0.495937 1.83256e-18)
+(7.26211 -0.506279 1.8374e-18)
+(7.26384 -0.517082 7.55696e-21)
+(10.1132 0.0457808 1.73107e-19)
+(10.1153 0.0445039 1.71638e-19)
+(10.1174 0.0429107 -3.4538e-19)
+(10.1192 0.0409644 0)
+(10.1209 0.0386168 1.74595e-19)
+(10.1221 0.0360674 -6.00117e-22)
+(10.1229 0.0335106 0)
+(10.1234 0.0309956 0)
+(10.1237 0.0285332 -3.52521e-19)
+(10.1237 0.0261609 -1.76832e-19)
+(10.1235 0.0239197 -1.77071e-19)
+(10.1231 0.0218282 -1.76827e-19)
+(10.1226 0.0198853 0)
+(10.122 0.0180857 3.54965e-19)
+(10.1214 0.0164268 -1.77156e-19)
+(10.1208 0.0149047 -3.55486e-19)
+(10.1201 0.0135106 3.55955e-19)
+(10.1194 0.0122338 0)
+(10.1187 0.0110601 0)
+(10.118 0.00997668 -3.57438e-19)
+(10.1173 0.00897465 1.79189e-19)
+(10.1166 0.00804413 0)
+(10.1159 0.00717226 0)
+(10.1151 0.00634643 0)
+(10.1143 0.00555629 -3.60096e-19)
+(10.1135 0.00479416 3.6095e-19)
+(10.1126 0.00405236 3.61193e-19)
+(10.1116 0.0033234 0)
+(10.1106 0.00259947 0)
+(10.1095 0.00187373 3.63043e-19)
+(10.1083 0.00113871 0)
+(10.107 0.000387968 0)
+(10.1056 -0.000385865 -3.64503e-19)
+(10.104 -0.00118909 3.64957e-19)
+(10.1023 -0.00202916 0)
+(10.1004 -0.00291294 0)
+(10.0983 -0.00384477 0)
+(10.096 -0.00483142 3.66145e-19)
+(10.0935 -0.00588098 -3.48155e-22)
+(10.0908 -0.00700135 -3.66646e-19)
+(10.0878 -0.00819931 0)
+(10.0845 -0.00948304 0)
+(10.081 -0.0108597 0)
+(10.0771 -0.0123354 -3.67015e-19)
+(10.073 -0.0139162 3.67459e-19)
+(10.0685 -0.0156077 0)
+(10.0636 -0.0174157 -7.33838e-19)
+(10.0585 -0.0193456 3.66976e-19)
+(10.0529 -0.0214027 0)
+(10.047 -0.0235922 -3.65591e-19)
+(10.0407 -0.0259187 0)
+(10.0341 -0.028387 -3.65286e-19)
+(10.0271 -0.0310014 0)
+(10.0197 -0.033767 0)
+(10.012 -0.0366914 3.63139e-19)
+(10.0039 -0.0397792 0)
+(9.99538 -0.0430326 3.60165e-19)
+(9.98653 -0.0464512 -3.60099e-19)
+(9.97733 -0.0500321 0)
+(9.96781 -0.0537797 -7.12674e-19)
+(9.95797 -0.057697 7.09725e-19)
+(9.94785 -0.0617838 3.51957e-19)
+(9.93745 -0.0660422 0)
+(9.9268 -0.0704736 0)
+(9.91592 -0.0750793 0)
+(9.90484 -0.07986 -3.4747e-19)
+(9.89356 -0.0848161 -3.45407e-19)
+(9.88211 -0.0899475 0)
+(9.87051 -0.0952538 3.40932e-19)
+(9.85876 -0.100734 0)
+(9.8469 -0.106388 0)
+(9.83492 -0.112214 0)
+(9.82285 -0.118209 0)
+(9.81068 -0.124372 6.51277e-19)
+(9.79844 -0.1307 -6.48993e-19)
+(9.78613 -0.137191 0)
+(9.77375 -0.143838 6.3182e-19)
+(9.76131 -0.150638 6.28894e-19)
+(9.74881 -0.15759 0)
+(9.73626 -0.164691 0)
+(9.72366 -0.171936 0)
+(9.711 -0.179319 0)
+(9.69828 -0.186834 0)
+(9.68549 -0.194474 0)
+(9.67263 -0.202231 0)
+(9.65969 -0.210099 0)
+(9.64664 -0.218071 0)
+(9.63349 -0.226132 0)
+(9.62021 -0.234275 0)
+(9.60679 -0.242495 5.21443e-19)
+(9.59321 -0.250779 0)
+(9.57947 -0.259116 -4.95129e-19)
+(9.56553 -0.267501 4.88265e-19)
+(9.55139 -0.275921 0)
+(9.53705 -0.284365 9.25203e-19)
+(9.52247 -0.292822 4.52657e-19)
+(9.50765 -0.301281 -4.36e-19)
+(9.49257 -0.30973 -4.23427e-19)
+(9.47721 -0.318157 -4.10618e-19)
+(9.46157 -0.326549 0)
+(9.44562 -0.334895 7.7269e-19)
+(9.42936 -0.34318 0)
+(9.41277 -0.351393 0)
+(9.39583 -0.359521 0)
+(9.37854 -0.36755 0)
+(9.36089 -0.375467 -3.11393e-19)
+(9.34286 -0.38326 3.04195e-19)
+(9.32444 -0.390916 0)
+(9.30563 -0.398422 0)
+(9.28642 -0.405766 -2.59841e-19)
+(9.2668 -0.412936 2.44795e-19)
+(9.24676 -0.419918 -2.23545e-19)
+(9.2263 -0.426702 -2.14377e-19)
+(9.20541 -0.433275 -3.92408e-19)
+(9.1841 -0.439628 3.67212e-19)
+(9.16236 -0.445747 -3.36249e-19)
+(9.14018 -0.451623 0)
+(9.11758 -0.457248 0)
+(9.09455 -0.462613 0)
+(9.07109 -0.467707 0)
+(9.04721 -0.472523 4.04416e-21)
+(9.02291 -0.477053 -1.45475e-19)
+(8.9982 -0.481289 0)
+(8.97308 -0.485224 8.37851e-20)
+(8.94756 -0.488851 0)
+(8.92166 -0.492166 -2.25069e-20)
+(8.89536 -0.495167 -7.91952e-21)
+(8.86871 -0.497853 3.81756e-20)
+(8.84169 -0.500217 0)
+(8.81434 -0.50226 9.60638e-20)
+(8.78667 -0.50398 -1.25877e-19)
+(8.75869 -0.505378 0)
+(8.73042 -0.506455 1.86106e-19)
+(8.70187 -0.507214 0)
+(8.67306 -0.507658 2.42268e-19)
+(8.644 -0.507788 0)
+(8.61471 -0.507613 -5.97666e-19)
+(8.58522 -0.507139 0)
+(8.55553 -0.506374 -3.53164e-19)
+(8.52567 -0.505327 3.80145e-19)
+(8.49567 -0.503998 0)
+(8.46551 -0.502399 4.08553e-24)
+(8.43522 -0.500542 0)
+(8.40482 -0.498441 4.81793e-19)
+(8.37433 -0.496114 0)
+(8.34377 -0.493573 -5.29504e-19)
+(8.31319 -0.490819 -5.524e-19)
+(8.28258 -0.487872 0)
+(8.25193 -0.484751 0)
+(8.22126 -0.481485 0)
+(8.19059 -0.478098 6.39284e-19)
+(8.15993 -0.474606 -6.59581e-19)
+(8.12935 -0.471034 2.03643e-18)
+(8.09886 -0.467408 6.97028e-19)
+(8.06849 -0.463761 2.14951e-18)
+(8.03828 -0.460121 0)
+(8.00828 -0.456528 -1.50336e-18)
+(7.97852 -0.453021 1.53797e-18)
+(7.94909 -0.449638 -7.84638e-19)
+(7.91992 -0.446441 -3.20696e-18)
+(7.8911 -0.443426 1.63322e-18)
+(7.86261 -0.440663 -1.66283e-18)
+(7.83449 -0.438218 -1.69056e-18)
+(7.80686 -0.436118 0)
+(7.77955 -0.434444 0)
+(7.75278 -0.433246 -1.76865e-18)
+(7.72656 -0.432619 -1.79212e-18)
+(7.70094 -0.432623 1.4658e-21)
+(7.67592 -0.433314 0)
+(7.65156 -0.434879 0)
+(7.62813 -0.437327 1.88097e-18)
+(7.60566 -0.440804 -1.9024e-18)
+(7.58436 -0.445387 -1.91809e-18)
+(7.56445 -0.451139 -5.40779e-21)
+(7.54607 -0.458179 0)
+(7.52972 -0.46651 0)
+(7.51554 -0.476175 0)
+(7.50431 -0.487049 0)
+(7.49481 -0.499216 0)
+(7.49365 -0.511599 -1.9786e-18)
+(10.1162 0.0436631 0)
+(10.1188 0.0424717 -1.52276e-19)
+(10.1213 0.0409682 1.53051e-19)
+(10.1236 0.0392031 0)
+(10.1257 0.0371815 0)
+(10.1276 0.0349807 -1.55001e-19)
+(10.1291 0.032707 -3.09942e-19)
+(10.1303 0.0304197 0)
+(10.1313 0.0281526 4.67513e-19)
+(10.1321 0.0259472 -3.11883e-19)
+(10.1327 0.0238437 -3.12321e-19)
+(10.1331 0.021866 -1.55924e-19)
+(10.1334 0.02002 0)
+(10.1336 0.0183033 1.56276e-19)
+(10.1338 0.016712 3.14185e-19)
+(10.1339 0.0152416 6.07666e-22)
+(10.134 0.0138848 -6.28539e-19)
+(10.1341 0.0126327 0)
+(10.1342 0.0114755 3.14468e-19)
+(10.1343 0.010403 3.1515e-19)
+(10.1344 0.00940688 0)
+(10.1346 0.00847936 0)
+(10.1348 0.00761158 0)
+(10.135 0.00679422 0)
+(10.1352 0.00601882 3.16548e-19)
+(10.1354 0.00527755 0)
+(10.1357 0.00456264 -3.17277e-19)
+(10.136 0.00386616 3.1743e-19)
+(10.1363 0.00318049 3.17856e-19)
+(10.1367 0.00249813 0)
+(10.137 0.00181185 3.18761e-19)
+(10.1374 0.00111463 0)
+(10.1377 0.000399524 0)
+(10.1381 -0.000340071 3.2023e-19)
+(10.1385 -0.00111084 3.20741e-19)
+(10.1388 -0.00191894 0)
+(10.1391 -0.00276962 0)
+(10.1394 -0.00366959 -3.22595e-19)
+(10.1397 -0.004626 -3.23143e-19)
+(10.1399 -0.00564529 3.2369e-19)
+(10.14 -0.00673224 3.23874e-19)
+(10.1401 -0.00789153 0)
+(10.1402 -0.00912821 0)
+(10.1401 -0.0104471 4.49593e-22)
+(10.14 -0.0118535 0)
+(10.1398 -0.0133525 0)
+(10.1394 -0.0149495 5.49691e-22)
+(10.139 -0.0166497 0)
+(10.1384 -0.0184585 0)
+(10.1377 -0.020381 3.28162e-19)
+(10.1369 -0.0224225 0)
+(10.1359 -0.0245883 0)
+(10.1347 -0.0268839 -6.55965e-19)
+(10.1334 -0.0293148 -6.56042e-19)
+(10.1319 -0.0318849 6.55983e-19)
+(10.1302 -0.0345986 0)
+(10.1283 -0.0374604 -3.28671e-19)
+(10.1261 -0.0404751 -6.54891e-19)
+(10.1238 -0.0436485 0)
+(10.1212 -0.0469879 6.55508e-19)
+(10.1184 -0.0504981 -6.54528e-19)
+(10.1153 -0.0541812 -6.53348e-19)
+(10.1119 -0.0580403 0)
+(10.1083 -0.0620778 0)
+(10.1043 -0.0662961 0)
+(10.1002 -0.0706969 -6.4366e-19)
+(10.0957 -0.0752813 -6.41262e-19)
+(10.0909 -0.0800504 0)
+(10.0858 -0.0850045 0)
+(10.0804 -0.0901436 0)
+(10.0747 -0.0954671 6.2913e-19)
+(10.0687 -0.100974 -6.25424e-19)
+(10.0624 -0.106663 0)
+(10.0558 -0.112531 -6.2077e-19)
+(10.0488 -0.118576 6.1259e-19)
+(10.0415 -0.124794 0)
+(10.0339 -0.131185 -1.20895e-18)
+(10.026 -0.137744 5.97044e-19)
+(10.0177 -0.144467 0)
+(10.0091 -0.151349 0)
+(10.0002 -0.158382 0)
+(9.99089 -0.16556 0)
+(9.98126 -0.172875 0)
+(9.97128 -0.180321 0)
+(9.96095 -0.187888 5.49272e-19)
+(9.95027 -0.195568 5.4112e-19)
+(9.93925 -0.203351 0)
+(9.92787 -0.211229 5.23866e-19)
+(9.91614 -0.219193 5.1475e-19)
+(9.90406 -0.227234 -5.0534e-19)
+(9.89162 -0.23534 0)
+(9.87881 -0.243506 9.75635e-19)
+(9.86565 -0.251717 -4.75293e-19)
+(9.85211 -0.259959 0)
+(9.83819 -0.268227 -4.58043e-19)
+(9.82388 -0.276508 0)
+(9.80917 -0.284788 -4.26559e-19)
+(9.79407 -0.293056 4.23343e-19)
+(9.77856 -0.301299 4.112e-19)
+(9.76264 -0.309504 7.89204e-19)
+(9.74629 -0.31766 -3.86091e-19)
+(9.72952 -0.325753 7.38165e-19)
+(9.71231 -0.333771 -7.11893e-19)
+(9.69466 -0.3417 -6.85142e-19)
+(9.67657 -0.349529 0)
+(9.65803 -0.357245 6.37789e-19)
+(9.63903 -0.364834 0)
+(9.61958 -0.372284 0)
+(9.59966 -0.379583 0)
+(9.57928 -0.38672 0)
+(9.55843 -0.393681 0)
+(9.53712 -0.400456 6.35807e-21)
+(9.51534 -0.407032 4.26154e-19)
+(9.49309 -0.413398 4.01694e-19)
+(9.47038 -0.419544 0)
+(9.4472 -0.42546 0)
+(9.42357 -0.431134 0)
+(9.39948 -0.436563 0)
+(9.37495 -0.441734 2.40774e-19)
+(9.34996 -0.44664 0)
+(9.32455 -0.45127 1.82195e-19)
+(9.2987 -0.455619 1.50432e-19)
+(9.27244 -0.459678 0)
+(9.24577 -0.463444 -3.60037e-21)
+(9.21871 -0.466908 0)
+(9.19126 -0.470069 2.33844e-20)
+(9.16345 -0.47292 8.23725e-21)
+(9.13526 -0.475464 -3.97537e-20)
+(9.10674 -0.477697 0)
+(9.07789 -0.47962 0)
+(9.04872 -0.48123 0)
+(9.01926 -0.482528 0)
+(8.98953 -0.483515 -3.91019e-19)
+(8.95953 -0.484194 2.26396e-19)
+(8.92929 -0.484568 0)
+(8.89882 -0.484638 0)
+(8.86815 -0.484415 3.13967e-19)
+(8.83729 -0.483901 -3.43627e-19)
+(8.80626 -0.483108 0)
+(8.77508 -0.482043 -3.99697e-19)
+(8.74376 -0.480706 8.55367e-19)
+(8.71233 -0.479103 -4.54902e-19)
+(8.6808 -0.477249 0)
+(8.64918 -0.475161 -5.07621e-19)
+(8.61749 -0.472862 1.06605e-18)
+(8.58576 -0.470346 1.67453e-18)
+(8.55397 -0.467632 -5.81851e-19)
+(8.52215 -0.464747 0)
+(8.49034 -0.461703 0)
+(8.45855 -0.458524 1.30437e-18)
+(8.42682 -0.455225 -1.34952e-18)
+(8.39516 -0.451829 -1.39363e-18)
+(8.3636 -0.44837 -1.43797e-18)
+(8.33216 -0.444875 -1.51861e-21)
+(8.30088 -0.441376 -1.52041e-18)
+(8.26979 -0.437897 0)
+(8.23889 -0.434492 1.59799e-18)
+(8.20823 -0.431173 -1.63571e-18)
+(8.17779 -0.428001 1.67018e-18)
+(8.14764 -0.425012 1.70553e-18)
+(8.11774 -0.422214 -1.73737e-18)
+(8.08815 -0.419706 0)
+(8.05888 -0.417535 0)
+(8.02998 -0.415728 0)
+(8.00144 -0.414354 0)
+(7.97334 -0.413451 1.88376e-18)
+(7.94567 -0.413151 1.90664e-18)
+(7.91862 -0.413548 1.88746e-21)
+(7.89221 -0.414716 0)
+(7.86645 -0.416766 0)
+(7.84143 -0.419715 0)
+(7.81724 -0.423733 2.02846e-18)
+(7.79403 -0.428973 -2.05697e-18)
+(7.77185 -0.435601 4.1429e-18)
+(7.75118 -0.443609 0)
+(7.73216 -0.453076 0)
+(7.71523 -0.464119 -2.11581e-18)
+(7.70106 -0.47656 2.12387e-18)
+(7.68873 -0.490598 0)
+(7.68452 -0.504635 0)
+(10.1139 0.0410812 0)
+(10.1166 0.039945 0)
+(10.1192 0.0385552 2.7618e-19)
+(10.1217 0.0369533 2.77269e-19)
+(10.124 0.0351582 0)
+(10.1261 0.0332113 0)
+(10.128 0.0311814 2.80844e-19)
+(10.1296 0.0291256 -2.8066e-19)
+(10.131 0.0270814 -2.82099e-19)
+(10.1322 0.0250809 5.643e-19)
+(10.1332 0.0231532 2.82937e-19)
+(10.1341 0.0213181 2.83231e-19)
+(10.1349 0.019584 0)
+(10.1356 0.0179531 -6.53195e-22)
+(10.1363 0.0164252 2.83207e-19)
+(10.1368 0.0149989 5.61991e-22)
+(10.1374 0.0136704 5.67595e-19)
+(10.1379 0.0124342 0)
+(10.1384 0.0112834 -2.8426e-19)
+(10.139 0.0102106 0)
+(10.1395 0.00920879 -2.84094e-19)
+(10.1401 0.00827105 0)
+(10.1406 0.00738972 2.84394e-19)
+(10.1412 0.00655672 0)
+(10.1419 0.00576419 -2.84734e-19)
+(10.1425 0.00500473 0)
+(10.1432 0.00427116 -2.8513e-19)
+(10.144 0.00355647 -2.85586e-19)
+(10.1448 0.00285364 -2.85811e-19)
+(10.1456 0.00215603 -2.8583e-19)
+(10.1464 0.0014569 -2.23939e-22)
+(10.1473 0.000750042 0)
+(10.1482 2.90201e-05 2.86675e-19)
+(10.1491 -0.000712221 -2.87218e-19)
+(10.15 -0.00147979 -2.3884e-22)
+(10.151 -0.00227956 0)
+(10.152 -0.00311709 0)
+(10.1529 -0.00399828 0)
+(10.1539 -0.00492929 2.88719e-19)
+(10.155 -0.00591587 0)
+(10.156 -0.00696305 -2.89798e-19)
+(10.1569 -0.00807593 -2.89846e-19)
+(10.1579 -0.00925978 5.80446e-19)
+(10.1589 -0.01052 2.90997e-19)
+(10.1598 -0.0118619 0)
+(10.1607 -0.0132909 0)
+(10.1616 -0.014812 2.92158e-19)
+(10.1625 -0.0164306 5.84002e-19)
+(10.1632 -0.0181517 5.84632e-19)
+(10.164 -0.0199803 0)
+(10.1646 -0.0219217 0)
+(10.1652 -0.0239806 0)
+(10.1657 -0.0261621 5.88056e-19)
+(10.1662 -0.0284709 5.88473e-19)
+(10.1665 -0.0309114 -5.8881e-19)
+(10.1667 -0.0334884 0)
+(10.1668 -0.0362064 0)
+(10.1668 -0.0390701 5.89301e-19)
+(10.1666 -0.042084 5.87317e-19)
+(10.1663 -0.0452526 0)
+(10.1659 -0.0485796 0)
+(10.1653 -0.052068 0)
+(10.1644 -0.0557206 0)
+(10.1635 -0.0595403 0)
+(10.1623 -0.0635297 0)
+(10.1609 -0.0676908 5.84877e-19)
+(10.1592 -0.0720254 5.8356e-19)
+(10.1574 -0.0765347 0)
+(10.1553 -0.0812198 0)
+(10.1529 -0.086081 0)
+(10.1502 -0.0911185 -5.76154e-19)
+(10.1473 -0.0963316 5.73716e-19)
+(10.1441 -0.101719 0)
+(10.1406 -0.10728 0)
+(10.1368 -0.113012 -5.6484e-19)
+(10.1326 -0.118913 5.57775e-19)
+(10.1281 -0.124979 5.57531e-19)
+(10.1232 -0.131207 -5.53444e-19)
+(10.118 -0.137592 5.45246e-19)
+(10.1124 -0.14413 0)
+(10.1065 -0.150816 -5.35362e-19)
+(10.1001 -0.157644 0)
+(10.0934 -0.164608 -5.24185e-19)
+(10.0862 -0.171703 -5.18103e-19)
+(10.0786 -0.17892 -1.02752e-18)
+(10.0706 -0.186252 -1.01406e-18)
+(10.0621 -0.193691 -4.97862e-19)
+(10.0532 -0.201229 -4.94687e-19)
+(10.0438 -0.208856 -4.86958e-19)
+(10.034 -0.216561 1.42817e-18)
+(10.0237 -0.224336 0)
+(10.0129 -0.23217 -4.61811e-19)
+(10.0016 -0.24005 4.52742e-19)
+(9.98989 -0.247967 -8.78087e-19)
+(9.97764 -0.255909 8.58611e-19)
+(9.9649 -0.263864 0)
+(9.95166 -0.271821 8.2629e-19)
+(9.93791 -0.279766 0)
+(9.92364 -0.287689 0)
+(9.90886 -0.295576 -1.51233e-18)
+(9.89356 -0.303415 0)
+(9.87773 -0.311193 -8.04647e-21)
+(9.86139 -0.318899 1.36994e-18)
+(9.84451 -0.326519 6.64031e-19)
+(9.8271 -0.33404 0)
+(9.80917 -0.34145 0)
+(9.79071 -0.348738 5.78835e-19)
+(9.77172 -0.355889 -5.52082e-19)
+(9.7522 -0.362893 0)
+(9.73215 -0.369738 0)
+(9.71159 -0.376412 -4.69231e-19)
+(9.6905 -0.382903 4.47309e-19)
+(9.6689 -0.389201 -6.28532e-21)
+(9.64679 -0.395293 0)
+(9.62417 -0.401172 -3.53497e-19)
+(9.60106 -0.406826 0)
+(9.57746 -0.412246 -2.93839e-19)
+(9.55338 -0.417425 0)
+(9.52883 -0.422353 -5.00264e-21)
+(9.50382 -0.427023 0)
+(9.47836 -0.431426 0)
+(9.45246 -0.435555 0)
+(9.42614 -0.439403 0)
+(9.39942 -0.442966 -3.86783e-21)
+(9.37229 -0.446238 4.79511e-20)
+(9.34478 -0.449215 0)
+(9.31691 -0.451896 0)
+(9.2887 -0.454283 0)
+(9.26014 -0.456365 0)
+(9.23126 -0.458148 0)
+(9.20209 -0.459629 0)
+(9.17262 -0.460808 0)
+(9.14288 -0.461688 1.98053e-19)
+(9.1129 -0.462271 2.32145e-19)
+(9.08269 -0.462559 0)
+(9.05226 -0.462557 0)
+(9.02166 -0.462271 6.41234e-19)
+(8.99088 -0.461708 1.04951e-18)
+(8.95996 -0.460874 -7.58929e-19)
+(8.9289 -0.459777 0)
+(8.89772 -0.458417 -8.73079e-19)
+(8.86644 -0.4568 9.29779e-19)
+(8.83508 -0.454944 0)
+(8.80366 -0.452865 0)
+(8.77219 -0.450579 -2.18888e-18)
+(8.7407 -0.448091 -1.14748e-18)
+(8.70917 -0.445419 1.19915e-18)
+(8.67765 -0.442577 1.24947e-18)
+(8.64617 -0.439584 0)
+(8.61476 -0.436465 -1.34978e-18)
+(8.58345 -0.433243 1.39868e-18)
+(8.55225 -0.429941 2.89206e-18)
+(8.52117 -0.426585 1.49217e-18)
+(8.49023 -0.423197 -1.53911e-18)
+(8.45943 -0.419818 0)
+(8.42881 -0.416469 0)
+(8.39834 -0.413202 0)
+(8.3681 -0.410035 0)
+(8.33797 -0.407026 0)
+(8.30809 -0.404199 0)
+(8.27837 -0.401595 1.82128e-18)
+(8.24887 -0.399277 -1.85646e-18)
+(8.21961 -0.3973 0)
+(8.1906 -0.395701 0)
+(8.1619 -0.394547 -1.95386e-18)
+(8.13353 -0.393925 -1.98293e-18)
+(8.10546 -0.393956 0)
+(8.07785 -0.394672 -2.03905e-18)
+(8.05069 -0.396173 2.06655e-18)
+(8.02418 -0.398613 0)
+(7.99828 -0.402029 0)
+(7.97307 -0.406598 -2.14191e-18)
+(7.94878 -0.412484 4.33488e-18)
+(7.92539 -0.419788 -4.38561e-18)
+(7.90333 -0.428613 0)
+(7.88266 -0.439122 2.23598e-18)
+(7.86384 -0.451422 4.49081e-18)
+(7.84754 -0.465316 -2.2528e-18)
+(7.83301 -0.481135 4.53853e-18)
+(7.82575 -0.496979 0)
+(10.1095 0.038224 -2.57322e-19)
+(10.1122 0.0371335 2.53455e-19)
+(10.1148 0.0358449 -2.54972e-19)
+(10.1173 0.0343841 -2.55949e-19)
+(10.1196 0.0327727 0)
+(10.1218 0.0310406 0)
+(10.1239 0.0292317 2.57627e-19)
+(10.1257 0.0273889 2.59012e-19)
+(10.1273 0.0255443 -2.58774e-19)
+(10.1288 0.0237245 -2.59986e-19)
+(10.1302 0.0219532 0)
+(10.1314 0.0202485 0)
+(10.1325 0.0186214 0)
+(10.1335 0.0170775 -2.61119e-19)
+(10.1344 0.0156191 -2.61291e-19)
+(10.1353 0.0142466 5.22332e-19)
+(10.1361 0.0129578 -4.98358e-22)
+(10.137 0.0117494 0)
+(10.1378 0.0106162 0)
+(10.1386 0.00955259 0)
+(10.1394 0.00855273 2.61933e-19)
+(10.1402 0.00761063 0)
+(10.141 0.00671978 -3.21551e-22)
+(10.1419 0.00587349 0)
+(10.1427 0.0050648 2.83386e-22)
+(10.1436 0.00428731 2.6215e-19)
+(10.1446 0.00353443 2.55576e-22)
+(10.1455 0.0027999 2.62426e-19)
+(10.1465 0.00207728 0)
+(10.1476 0.00136032 2.32397e-22)
+(10.1486 0.000642892 -2.63131e-19)
+(10.1497 -8.106e-05 0)
+(10.1508 -0.000817423 -2.63497e-19)
+(10.152 -0.0015721 0)
+(10.1532 -0.00235079 -2.4086e-22)
+(10.1544 -0.00315921 0)
+(10.1556 -0.00400284 0)
+(10.1568 -0.00488726 0)
+(10.1581 -0.00581819 -2.64845e-19)
+(10.1594 -0.006801 0)
+(10.1606 -0.00784088 -5.3006e-19)
+(10.1619 -0.00894275 2.65609e-19)
+(10.1632 -0.0101118 -5.31735e-19)
+(10.1645 -0.0113529 0)
+(10.1658 -0.0126712 0)
+(10.1671 -0.0140716 0)
+(10.1683 -0.015559 0)
+(10.1695 -0.0171384 -9.89116e-22)
+(10.1707 -0.0188146 -1.04997e-21)
+(10.1719 -0.0205924 -5.33908e-19)
+(10.173 -0.0224767 0)
+(10.174 -0.0244723 0)
+(10.175 -0.0265837 0)
+(10.176 -0.0288157 0)
+(10.1769 -0.0311727 -5.34914e-19)
+(10.1776 -0.0336592 0)
+(10.1783 -0.0362793 0)
+(10.1789 -0.0390375 0)
+(10.1794 -0.0419377 -5.36314e-19)
+(10.1798 -0.0449841 0)
+(10.1801 -0.0481807 0)
+(10.1802 -0.0515306 0)
+(10.1801 -0.0550369 0)
+(10.1799 -0.0587024 0)
+(10.1796 -0.0625293 0)
+(10.179 -0.0665198 0)
+(10.1783 -0.0706755 5.28633e-19)
+(10.1773 -0.0749976 0)
+(10.1761 -0.079487 0)
+(10.1747 -0.0841442 0)
+(10.1731 -0.0889692 0)
+(10.1711 -0.0939614 0)
+(10.169 -0.0991199 -5.17549e-19)
+(10.1665 -0.104443 0)
+(10.1637 -0.10993 0)
+(10.1606 -0.115576 -3.27192e-21)
+(10.1572 -0.121381 0)
+(10.1535 -0.127339 0)
+(10.1494 -0.133448 -3.49501e-21)
+(10.145 -0.139702 4.94548e-19)
+(10.1401 -0.146097 4.93831e-19)
+(10.1349 -0.152628 0)
+(10.1293 -0.159288 4.8441e-19)
+(10.1233 -0.166071 4.79253e-19)
+(10.1168 -0.172971 4.73797e-19)
+(10.11 -0.17998 4.68034e-19)
+(10.1026 -0.187089 4.61958e-19)
+(10.0949 -0.194292 -9.03236e-19)
+(10.0866 -0.201578 0)
+(10.0779 -0.208939 -1.75935e-18)
+(10.0686 -0.216367 0)
+(10.0589 -0.22385 -8.45629e-19)
+(10.0487 -0.231378 0)
+(10.038 -0.238939 1.63411e-18)
+(10.0267 -0.246524 -8.03813e-19)
+(10.0149 -0.254121 0)
+(10.0026 -0.261719 -7.59426e-19)
+(9.98975 -0.269306 0)
+(9.97635 -0.276871 0)
+(9.9624 -0.284401 7.08137e-19)
+(9.9479 -0.291884 0)
+(9.93285 -0.299308 -6.65621e-19)
+(9.91724 -0.306662 -1.27944e-18)
+(9.90107 -0.313931 0)
+(9.88435 -0.321106 0)
+(9.86707 -0.328173 5.66607e-19)
+(9.84923 -0.33512 -1.09197e-18)
+(9.83083 -0.341936 1.04254e-18)
+(9.81189 -0.34861 4.92697e-19)
+(9.79239 -0.355128 4.67125e-19)
+(9.77235 -0.361482 4.4755e-19)
+(9.75177 -0.367659 0)
+(9.73066 -0.373649 -3.93931e-19)
+(9.70902 -0.37944 0)
+(9.68686 -0.385025 3.38779e-19)
+(9.6642 -0.390392 0)
+(9.64103 -0.395535 5.59238e-19)
+(9.61738 -0.400442 2.48476e-19)
+(9.59325 -0.40511 -2.24619e-19)
+(9.56866 -0.409526 -1.90709e-19)
+(9.54361 -0.413687 0)
+(9.51813 -0.417582 0)
+(9.49222 -0.421209 -1.02464e-19)
+(9.46591 -0.424558 -7.65922e-20)
+(9.4392 -0.42763 -4.65087e-20)
+(9.41213 -0.430418 -1.28853e-20)
+(9.38469 -0.432923 0)
+(9.35691 -0.435137 9.45535e-20)
+(9.32881 -0.437062 0)
+(9.30041 -0.438696 0)
+(9.27173 -0.440038 0)
+(9.24278 -0.441091 -3.35735e-19)
+(9.21358 -0.441855 0)
+(9.18415 -0.442334 -4.5215e-19)
+(9.15452 -0.442531 0)
+(9.12471 -0.442449 0)
+(9.09473 -0.442094 2.61213e-21)
+(9.06461 -0.441473 -6.91037e-19)
+(9.03437 -0.44059 1.5019e-18)
+(9.00401 -0.439453 -8.10092e-19)
+(8.97357 -0.438062 0)
+(8.94306 -0.43643 0)
+(8.9125 -0.434569 0)
+(8.88192 -0.432491 1.03735e-18)
+(8.85132 -0.430212 2.18499e-18)
+(8.82072 -0.427739 1.14708e-18)
+(8.79014 -0.42509 0)
+(8.75961 -0.422287 -2.84495e-22)
+(8.72915 -0.419352 0)
+(8.69878 -0.416309 0)
+(8.66851 -0.413172 1.40934e-18)
+(8.63836 -0.409957 -1.46069e-18)
+(8.60834 -0.406692 -1.5104e-18)
+(8.57847 -0.403402 0)
+(8.54874 -0.400128 0)
+(8.51917 -0.396892 0)
+(8.48975 -0.393736 0)
+(8.4605 -0.390683 -1.74217e-18)
+(8.4314 -0.387783 -1.78543e-18)
+(8.40249 -0.385073 1.82839e-18)
+(8.37373 -0.382585 -1.86996e-18)
+(8.34516 -0.380391 3.82037e-18)
+(8.31676 -0.378543 0)
+(8.28855 -0.377094 0)
+(8.26053 -0.376109 -1.16976e-21)
+(8.23273 -0.375664 0)
+(8.20517 -0.37588 -2.09342e-18)
+(8.17788 -0.37684 -2.12728e-18)
+(8.15083 -0.378641 -2.15404e-18)
+(8.12411 -0.381394 0)
+(8.09782 -0.385175 0)
+(8.07202 -0.390184 2.23472e-18)
+(8.04699 -0.396549 -2.2636e-18)
+(8.0228 -0.404448 -2.30911e-18)
+(7.99963 -0.414037 0)
+(7.97777 -0.425459 -2.33714e-18)
+(7.95757 -0.438885 -2.35619e-18)
+(7.93969 -0.454154 0)
+(7.92372 -0.471692 3.09064e-20)
+(7.91366 -0.489463 0)
+(10.1043 0.0351852 2.4108e-19)
+(10.1069 0.0341411 -2.3718e-19)
+(10.1094 0.0329425 -2.37517e-19)
+(10.1119 0.0316068 2.38298e-19)
+(10.1142 0.0301519 0)
+(10.1165 0.0286001 0)
+(10.1185 0.0269804 -2.4103e-19)
+(10.1205 0.0253235 0)
+(10.1223 0.0236559 2.42097e-19)
+(10.1239 0.0220003 0)
+(10.1254 0.0203765 0)
+(10.1268 0.0188003 2.42581e-19)
+(10.1281 0.0172828 0)
+(10.1293 0.0158305 0)
+(10.1305 0.0144473 2.43384e-19)
+(10.1316 0.0131346 -2.44106e-19)
+(10.1326 0.0118921 -2.4426e-19)
+(10.1337 0.0107178 0)
+(10.1347 0.00960843 0)
+(10.1357 0.00855991 0)
+(10.1367 0.0075677 -2.44381e-19)
+(10.1377 0.00662679 0)
+(10.1387 0.00573197 -3.23876e-22)
+(10.1397 0.00487721 0)
+(10.1408 0.00405696 2.45178e-19)
+(10.1418 0.00326506 -2.45291e-19)
+(10.1429 0.00249594 2.6299e-22)
+(10.144 0.00174356 -2.53564e-22)
+(10.1452 0.00100235 0)
+(10.1463 0.000266319 2.45802e-19)
+(10.1475 -0.00046999 2.45707e-19)
+(10.1487 -0.00121235 0)
+(10.15 -0.00196622 4.92034e-19)
+(10.1512 -0.00273709 0)
+(10.1525 -0.0035304 -2.46594e-19)
+(10.1539 -0.00435148 -4.93033e-19)
+(10.1552 -0.00520561 0)
+(10.1566 -0.00609812 -4.93734e-19)
+(10.1579 -0.00703415 0)
+(10.1593 -0.008019 0)
+(10.1607 -0.00905749 4.95447e-19)
+(10.1621 -0.0101546 0)
+(10.1635 -0.011315 0)
+(10.1649 -0.0125437 -4.95829e-19)
+(10.1663 -0.0138453 0)
+(10.1677 -0.0152248 4.9645e-19)
+(10.1691 -0.0166867 0)
+(10.1705 -0.018236 -9.94938e-19)
+(10.1718 -0.0198772 -4.98234e-19)
+(10.1731 -0.021615 9.95898e-19)
+(10.1743 -0.023454 0)
+(10.1756 -0.0253987 -4.97683e-19)
+(10.1767 -0.0274536 0)
+(10.1778 -0.029623 0)
+(10.1789 -0.0319113 9.96859e-19)
+(10.1798 -0.0343227 0)
+(10.1807 -0.0368612 0)
+(10.1815 -0.0395309 0)
+(10.1822 -0.0423356 0)
+(10.1828 -0.0452792 4.96485e-19)
+(10.1833 -0.0483652 0)
+(10.1836 -0.0515967 0)
+(10.1838 -0.0549766 0)
+(10.1839 -0.0585072 0)
+(10.1837 -0.0621909 0)
+(10.1835 -0.0660295 0)
+(10.183 -0.0700246 -4.92964e-19)
+(10.1823 -0.0741773 0)
+(10.1814 -0.0784886 0)
+(10.1803 -0.0829588 4.86114e-19)
+(10.179 -0.0875878 0)
+(10.1774 -0.0923752 0)
+(10.1755 -0.0973202 4.82899e-19)
+(10.1734 -0.102421 0)
+(10.171 -0.107677 -4.7511e-19)
+(10.1683 -0.113084 -3.03933e-21)
+(10.1653 -0.11864 -9.38607e-19)
+(10.1619 -0.124343 0)
+(10.1582 -0.130187 -4.65846e-19)
+(10.1541 -0.136169 -4.6221e-19)
+(10.1497 -0.142284 9.09911e-19)
+(10.1449 -0.148528 9.01511e-19)
+(10.1397 -0.154893 0)
+(10.1341 -0.161375 -8.83142e-19)
+(10.1281 -0.167966 0)
+(10.1216 -0.17466 0)
+(10.1147 -0.181448 8.51553e-19)
+(10.1074 -0.188325 1.68713e-18)
+(10.0995 -0.19528 0)
+(10.0912 -0.202305 8.22305e-19)
+(10.0825 -0.209392 0)
+(10.0732 -0.21653 7.44195e-21)
+(10.0634 -0.22371 0)
+(10.0531 -0.23092 -7.65409e-19)
+(10.0423 -0.238152 -7.42255e-19)
+(10.0309 -0.245393 7.25964e-19)
+(10.019 -0.252634 7.38861e-21)
+(10.0066 -0.259864 0)
+(9.99357 -0.267069 0)
+(9.98003 -0.27424 -6.54991e-19)
+(9.96594 -0.281365 -6.35817e-19)
+(9.95128 -0.288432 0)
+(9.93606 -0.29543 1.1986e-18)
+(9.92028 -0.302346 0)
+(9.90393 -0.309169 0)
+(9.88702 -0.315888 -5.38418e-19)
+(9.86955 -0.322492 5.1591e-19)
+(9.85152 -0.328968 -9.79372e-19)
+(9.83293 -0.335307 -4.69402e-19)
+(9.81378 -0.341496 -4.4543e-19)
+(9.79409 -0.347526 0)
+(9.77385 -0.353385 0)
+(9.75308 -0.359064 -3.65164e-19)
+(9.73178 -0.364553 3.39634e-19)
+(9.70995 -0.369842 -3.13721e-19)
+(9.68762 -0.374922 0)
+(9.66479 -0.379786 -2.65801e-19)
+(9.64147 -0.384426 -2.38678e-19)
+(9.61767 -0.388833 0)
+(9.59341 -0.393 4.40908e-21)
+(9.56869 -0.396921 -1.51337e-19)
+(9.54354 -0.400589 0)
+(9.51798 -0.403998 9.88922e-20)
+(9.492 -0.407143 0)
+(9.46564 -0.410021 0)
+(9.43891 -0.412629 3.09297e-20)
+(9.41183 -0.414965 0)
+(9.38441 -0.417026 -9.16832e-20)
+(9.35667 -0.418809 1.55626e-19)
+(9.32864 -0.420314 0)
+(9.30033 -0.42154 0)
+(9.27177 -0.422489 3.26781e-19)
+(9.24297 -0.423162 0)
+(9.21397 -0.423562 0)
+(9.18477 -0.423693 0)
+(9.15539 -0.423558 0)
+(9.12587 -0.423162 -1.24371e-18)
+(9.09622 -0.422511 -6.81165e-19)
+(9.06647 -0.42161 -7.37065e-19)
+(9.03662 -0.420465 1.59154e-18)
+(9.0067 -0.41908 0)
+(8.97674 -0.417463 0)
+(8.94675 -0.415626 0)
+(8.91676 -0.413584 -1.02288e-18)
+(8.88678 -0.411348 -1.07883e-18)
+(8.85684 -0.408931 -2.26855e-18)
+(8.82695 -0.406348 -1.18919e-18)
+(8.79712 -0.403621 -1.24349e-18)
+(8.76738 -0.40077 1.29689e-18)
+(8.73774 -0.397815 0)
+(8.70822 -0.394772 -1.40322e-18)
+(8.67882 -0.391662 -1.45465e-18)
+(8.64956 -0.388505 -1.50587e-18)
+(8.62044 -0.385331 1.55584e-18)
+(8.59149 -0.382171 1.60571e-18)
+(8.56269 -0.379048 0)
+(8.53405 -0.376004 0)
+(8.50558 -0.373068 3.86164e-22)
+(8.47728 -0.370281 1.79731e-18)
+(8.44915 -0.367681 -1.84366e-18)
+(8.42118 -0.365307 0)
+(8.39338 -0.363223 -1.9335e-18)
+(8.36574 -0.361483 0)
+(8.33825 -0.360145 0)
+(8.31092 -0.359277 2.061e-18)
+(8.28374 -0.358961 0)
+(8.25671 -0.359304 2.1408e-18)
+(8.22984 -0.360397 2.1796e-18)
+(8.20313 -0.362345 0)
+(8.17658 -0.365281 0)
+(8.15025 -0.369315 0)
+(8.12423 -0.374641 -4.64967e-18)
+(8.09864 -0.381425 -4.71605e-18)
+(8.07365 -0.389837 4.76303e-18)
+(8.04943 -0.400071 0)
+(8.02628 -0.412328 0)
+(8.0046 -0.426816 0)
+(7.98498 -0.443387 5.00594e-18)
+(7.9676 -0.462555 -5.00109e-18)
+(7.95474 -0.482337 0)
+(10.0988 0.0320124 0)
+(10.1013 0.031018 0)
+(10.1038 0.0299016 4.97512e-22)
+(10.1062 0.0286765 -5.41278e-22)
+(10.1085 0.027356 0)
+(10.1107 0.0259567 -2.24217e-19)
+(10.1128 0.024499 0)
+(10.1148 0.023005 0)
+(10.1166 0.0214956 0)
+(10.1184 0.0199895 0)
+(10.12 0.0185025 0)
+(10.1215 0.0170484 -4.5461e-19)
+(10.123 0.0156371 0)
+(10.1243 0.0142759 0)
+(10.1256 0.012969 -4.56309e-19)
+(10.1269 0.0117192 0)
+(10.1281 0.0105272 2.28364e-19)
+(10.1293 0.0093922 0)
+(10.1304 0.00831239 0)
+(10.1316 0.00728496 -2.28948e-19)
+(10.1327 0.00630641 2.29488e-19)
+(10.1338 0.00537289 0)
+(10.135 0.00447972 -3.25192e-22)
+(10.1361 0.00362237 0)
+(10.1373 0.00279552 2.29772e-19)
+(10.1385 0.00199431 0)
+(10.1397 0.00121331 2.30358e-19)
+(10.1409 0.000447615 -2.30509e-19)
+(10.1421 -0.000308333 0)
+(10.1434 -0.00105941 0)
+(10.1446 -0.00181121 -2.30984e-19)
+(10.1459 -0.00256861 0)
+(10.1473 -0.00333706 -4.62646e-19)
+(10.1486 -0.00412149 -4.62497e-19)
+(10.15 -0.00492713 0)
+(10.1514 -0.00575887 4.63725e-19)
+(10.1528 -0.00662189 0)
+(10.1542 -0.00752097 4.64474e-19)
+(10.1556 -0.00846123 4.64265e-19)
+(10.157 -0.00944742 4.64616e-19)
+(10.1585 -0.0104843 0)
+(10.1599 -0.0115767 0)
+(10.1614 -0.012729 0)
+(10.1628 -0.013946 4.66703e-19)
+(10.1643 -0.0152321 -4.66244e-19)
+(10.1657 -0.0165921 -9.33897e-19)
+(10.1671 -0.0180303 0)
+(10.1685 -0.0195514 9.43982e-22)
+(10.1699 -0.0211597 -4.6722e-19)
+(10.1712 -0.0228597 -1.05067e-21)
+(10.1725 -0.0246555 0)
+(10.1738 -0.0265517 4.68778e-19)
+(10.175 -0.0285524 0)
+(10.1762 -0.0306618 0)
+(10.1772 -0.032884 -4.68942e-19)
+(10.1782 -0.0352228 4.6747e-19)
+(10.1792 -0.0376821 0)
+(10.18 -0.0402658 0)
+(10.1808 -0.0429774 0)
+(10.1814 -0.0458204 -4.67984e-19)
+(10.1819 -0.0487981 0)
+(10.1823 -0.0519134 0)
+(10.1826 -0.0551689 0)
+(10.1827 -0.0585671 0)
+(10.1826 -0.0621098 0)
+(10.1824 -0.0657991 0)
+(10.182 -0.0696363 0)
+(10.1814 -0.0736225 -4.59372e-19)
+(10.1806 -0.0777583 -4.57953e-19)
+(10.1796 -0.0820442 -4.58825e-19)
+(10.1784 -0.0864801 0)
+(10.1769 -0.0910655 0)
+(10.1751 -0.0957995 -9.01466e-19)
+(10.1731 -0.100681 0)
+(10.1708 -0.105707 4.48886e-19)
+(10.1682 -0.110877 -4.4635e-19)
+(10.1653 -0.116188 8.87228e-19)
+(10.1621 -0.121636 0)
+(10.1585 -0.127217 0)
+(10.1546 -0.132929 0)
+(10.1503 -0.138765 -8.61063e-19)
+(10.1457 -0.144722 -1.70038e-18)
+(10.1406 -0.150793 0)
+(10.1352 -0.156973 6.56531e-21)
+(10.1293 -0.163256 -8.20793e-19)
+(10.123 -0.169635 0)
+(10.1163 -0.176103 -8.07596e-19)
+(10.1091 -0.182652 -7.96889e-19)
+(10.1015 -0.189274 0)
+(10.0934 -0.195961 -7.66967e-19)
+(10.0848 -0.202705 7.5461e-19)
+(10.0757 -0.209496 7.48643e-19)
+(10.0661 -0.216325 0)
+(10.056 -0.223181 0)
+(10.0454 -0.230056 7.06631e-19)
+(10.0342 -0.236938 -6.90617e-21)
+(10.0225 -0.243818 6.75809e-19)
+(10.0103 -0.250685 0)
+(9.99754 -0.257528 6.35947e-19)
+(9.98421 -0.264336 6.25359e-19)
+(9.97034 -0.271099 6.07428e-19)
+(9.9559 -0.277804 5.82355e-19)
+(9.94091 -0.284441 -5.69921e-19)
+(9.92535 -0.291 -5.43943e-19)
+(9.90923 -0.297468 -5.23951e-19)
+(9.89255 -0.303836 0)
+(9.8753 -0.310091 -4.8244e-19)
+(9.8575 -0.316225 4.66914e-19)
+(9.83914 -0.322225 0)
+(9.82023 -0.328083 0)
+(9.80077 -0.333786 0)
+(9.78076 -0.339326 0)
+(9.76022 -0.344693 3.51738e-19)
+(9.73916 -0.349878 -3.27387e-19)
+(9.71757 -0.354871 3.02633e-19)
+(9.69548 -0.359666 0)
+(9.67289 -0.364252 -4.94742e-19)
+(9.64981 -0.368624 0)
+(9.62625 -0.372774 3.91346e-19)
+(9.60223 -0.376694 5.12143e-19)
+(9.57776 -0.380379 1.4665e-19)
+(9.55286 -0.383822 0)
+(9.52755 -0.387018 0)
+(9.50182 -0.389963 0)
+(9.47572 -0.392654 -6.74964e-20)
+(9.44924 -0.395088 -1.79555e-20)
+(9.42241 -0.397263 0)
+(9.39525 -0.399175 0)
+(9.36777 -0.400824 -1.51727e-19)
+(9.34 -0.402208 0)
+(9.31196 -0.403328 0)
+(9.28367 -0.404184 0)
+(9.25514 -0.404778 0)
+(9.22641 -0.405113 4.41801e-19)
+(9.19749 -0.405191 4.9909e-19)
+(9.16839 -0.405017 0)
+(9.13916 -0.404596 6.11276e-19)
+(9.10979 -0.403932 6.68742e-19)
+(9.08033 -0.403031 -7.27909e-19)
+(9.05077 -0.401898 -7.83318e-19)
+(9.02116 -0.400539 0)
+(8.9915 -0.398961 0)
+(8.96183 -0.397176 0)
+(8.93215 -0.395195 0)
+(8.9025 -0.393032 0)
+(8.87289 -0.390697 -2.29875e-22)
+(8.84333 -0.388205 1.17699e-18)
+(8.81386 -0.385576 0)
+(8.78447 -0.382833 -1.28625e-18)
+(8.75518 -0.379993 0)
+(8.726 -0.377073 1.39343e-18)
+(8.69695 -0.374091 1.44688e-18)
+(8.66803 -0.371068 1.49942e-18)
+(8.63925 -0.368035 -1.55117e-18)
+(8.61062 -0.365013 -3.20484e-18)
+(8.58215 -0.362032 0)
+(8.55383 -0.359131 0)
+(8.52566 -0.356338 2.45848e-22)
+(8.49766 -0.35369 -1.80266e-18)
+(8.4698 -0.351228 0)
+(8.44209 -0.348994 -1.90024e-18)
+(8.41452 -0.347043 0)
+(8.38709 -0.345431 0)
+(8.35977 -0.344217 0)
+(8.33256 -0.343471 0)
+(8.30545 -0.343276 0)
+(8.27843 -0.343732 -4.358e-18)
+(8.25147 -0.344936 0)
+(8.22458 -0.346999 4.53393e-18)
+(8.19776 -0.350054 0)
+(8.17102 -0.354246 0)
+(8.14442 -0.359768 4.77038e-18)
+(8.11801 -0.366826 9.71279e-18)
+(8.09191 -0.375612 4.94489e-18)
+(8.06634 -0.386356 0)
+(8.04156 -0.399317 0)
+(8.01797 -0.414767 0)
+(7.99607 -0.432595 -1.03994e-17)
+(7.97665 -0.453416 0)
+(7.96038 -0.475182 -5.3074e-18)
+(10.0939 0.0289998 0)
+(10.0963 0.0280532 0)
+(10.0987 0.0270073 2.4154e-19)
+(10.101 0.0258729 -4.874e-22)
+(10.1032 0.0246604 0)
+(10.1054 0.0233823 2.43211e-19)
+(10.1075 0.0220538 0)
+(10.1095 0.0206913 0)
+(10.1114 0.0193112 2.43884e-19)
+(10.1131 0.0179286 0)
+(10.1148 0.0165568 2.44481e-19)
+(10.1164 0.0152072 5.38629e-22)
+(10.118 0.013889 0)
+(10.1194 0.0126091 0)
+(10.1208 0.0113722 4.90984e-19)
+(10.1222 0.0101813 0)
+(10.1235 0.00903796 -4.35208e-22)
+(10.1248 0.00794229 0)
+(10.126 0.0068933 0)
+(10.1273 0.00588914 2.46061e-19)
+(10.1285 0.00492724 0)
+(10.1297 0.00400436 0)
+(10.131 0.00311693 2.45492e-19)
+(10.1322 0.00226085 0)
+(10.1334 0.00143192 -2.46149e-19)
+(10.1347 0.000625613 4.91767e-19)
+(10.1359 -0.000162546 0)
+(10.1372 -0.000937341 4.9185e-19)
+(10.1385 -0.00170332 -4.91891e-19)
+(10.1398 -0.0024655 0)
+(10.1412 -0.00322839 0)
+(10.1425 -0.00399717 0)
+(10.1439 -0.00477632 0)
+(10.1453 -0.00557098 4.92614e-19)
+(10.1467 -0.00638556 0)
+(10.1481 -0.0072251 0)
+(10.1495 -0.00809408 0)
+(10.1509 -0.00899734 0)
+(10.1524 -0.00993947 -5.79489e-22)
+(10.1539 -0.010925 -9.85348e-19)
+(10.1553 -0.0119587 0)
+(10.1568 -0.0130448 4.92408e-19)
+(10.1582 -0.0141879 0)
+(10.1597 -0.0153921 0)
+(10.1611 -0.0166622 4.93128e-19)
+(10.1626 -0.0180022 4.9311e-19)
+(10.164 -0.0194167 -4.92209e-19)
+(10.1654 -0.0209096 4.93e-19)
+(10.1667 -0.0224855 4.929e-19)
+(10.1681 -0.0241482 -1.00358e-21)
+(10.1694 -0.0259022 0)
+(10.1706 -0.0277513 4.91265e-19)
+(10.1718 -0.0296996 0)
+(10.1729 -0.0317511 0)
+(10.174 -0.0339095 -4.90135e-19)
+(10.175 -0.0361785 -4.90979e-19)
+(10.1759 -0.0385618 4.89073e-19)
+(10.1768 -0.0410629 4.88434e-19)
+(10.1775 -0.0436852 -4.87716e-19)
+(10.1781 -0.0464317 0)
+(10.1786 -0.0493057 0)
+(10.179 -0.0523097 0)
+(10.1792 -0.0554463 0)
+(10.1793 -0.0587175 0)
+(10.1793 -0.0621254 0)
+(10.1791 -0.0656717 -4.79999e-19)
+(10.1787 -0.0693576 0)
+(10.1781 -0.0731841 1.43237e-18)
+(10.1773 -0.0771518 4.77114e-19)
+(10.1762 -0.081261 9.45837e-19)
+(10.175 -0.0855115 0)
+(10.1735 -0.0899028 0)
+(10.1718 -0.094434 9.36946e-19)
+(10.1698 -0.0991036 0)
+(10.1675 -0.10391 0)
+(10.1649 -0.108851 0)
+(10.162 -0.113924 -9.08542e-19)
+(10.1588 -0.119126 0)
+(10.1553 -0.124454 0)
+(10.1514 -0.129903 0)
+(10.1472 -0.135469 -8.78585e-19)
+(10.1425 -0.141148 5.93025e-21)
+(10.1375 -0.146934 0)
+(10.1322 -0.152822 8.5747e-19)
+(10.1263 -0.158805 6.1543e-21)
+(10.1201 -0.164878 -8.30839e-19)
+(10.1135 -0.171033 0)
+(10.1064 -0.177263 0)
+(10.0988 -0.183561 0)
+(10.0908 -0.189918 1.5737e-18)
+(10.0823 -0.196328 -7.76962e-19)
+(10.0733 -0.20278 7.56926e-19)
+(10.0638 -0.209265 0)
+(10.0538 -0.215775 -7.28044e-19)
+(10.0433 -0.2223 0)
+(10.0322 -0.228831 -7.03383e-19)
+(10.0207 -0.235357 0)
+(10.0086 -0.241868 0)
+(9.99594 -0.248355 -6.52643e-19)
+(9.98276 -0.254806 -6.28415e-19)
+(9.96902 -0.261212 0)
+(9.95473 -0.267561 -5.97003e-19)
+(9.93988 -0.273844 0)
+(9.92448 -0.280049 5.92907e-21)
+(9.90852 -0.286167 5.36594e-19)
+(9.89199 -0.292188 0)
+(9.87492 -0.2981 5.63322e-21)
+(9.85728 -0.303894 0)
+(9.83909 -0.30956 -4.43601e-19)
+(9.82036 -0.315088 0)
+(9.80107 -0.320469 0)
+(9.78125 -0.325692 -7.46777e-19)
+(9.7609 -0.33075 0)
+(9.74002 -0.335633 0)
+(9.71863 -0.340333 -5.98836e-19)
+(9.69673 -0.344842 5.47994e-19)
+(9.67433 -0.349153 5.04995e-19)
+(9.65145 -0.353259 0)
+(9.62809 -0.357153 -7.91485e-21)
+(9.60428 -0.360827 -6.83369e-19)
+(9.58001 -0.364277 -2.8386e-19)
+(9.55532 -0.367496 0)
+(9.53021 -0.37048 0)
+(9.5047 -0.373226 0)
+(9.4788 -0.37573 1.31624e-19)
+(9.45253 -0.37799 0)
+(9.42591 -0.380003 0)
+(9.39896 -0.381767 0)
+(9.37169 -0.383282 0)
+(9.34413 -0.384545 2.21524e-19)
+(9.3163 -0.385557 2.79097e-19)
+(9.28821 -0.386319 0)
+(9.25989 -0.386833 -3.94632e-19)
+(9.23136 -0.387102 -4.4946e-19)
+(9.20264 -0.387128 -5.07666e-19)
+(9.17375 -0.386914 0)
+(9.14471 -0.386467 0)
+(9.11554 -0.385789 6.84043e-19)
+(9.08626 -0.384887 1.4818e-18)
+(9.0569 -0.383766 0)
+(9.02746 -0.382433 0)
+(8.99799 -0.380894 0)
+(8.96849 -0.37916 0)
+(8.93898 -0.377242 1.02783e-18)
+(8.90949 -0.375152 1.08434e-18)
+(8.88003 -0.372901 2.28085e-18)
+(8.85062 -0.370505 -1.19644e-18)
+(8.82128 -0.36798 1.25199e-18)
+(8.79201 -0.365347 0)
+(8.76284 -0.362622 -1.36194e-18)
+(8.73376 -0.359822 -1.41663e-18)
+(8.7048 -0.356966 0)
+(8.67595 -0.354074 0)
+(8.64722 -0.351172 0)
+(8.61863 -0.348287 1.63023e-18)
+(8.59017 -0.345446 0)
+(8.56184 -0.342679 0)
+(8.53363 -0.340022 5.35698e-18)
+(8.50555 -0.33751 5.51008e-18)
+(8.47758 -0.335181 0)
+(8.44972 -0.333077 5.81301e-18)
+(8.42196 -0.33125 3.97567e-18)
+(8.39427 -0.329753 0)
+(8.36665 -0.32865 0)
+(8.33906 -0.328007 -4.27104e-18)
+(8.3115 -0.327907 0)
+(8.28393 -0.32845 -6.2802e-21)
+(8.25633 -0.329733 0)
+(8.22867 -0.331873 -4.64354e-18)
+(8.20093 -0.335011 0)
+(8.17312 -0.339302 0)
+(8.14525 -0.344955 -4.93061e-18)
+(8.11733 -0.352183 -1.00192e-17)
+(8.08945 -0.36123 -5.08581e-18)
+(8.06179 -0.372373 0)
+(8.03456 -0.385911 -5.27474e-18)
+(8.00821 -0.402215 -5.34744e-18)
+(7.98307 -0.421215 -4.07867e-20)
+(7.96055 -0.443735 0)
+(7.93963 -0.46733 -4.79753e-20)
+(10.0892 0.0259364 0)
+(10.0915 0.0250385 2.06156e-19)
+(10.0938 0.0240585 0)
+(10.096 0.0230062 -2.07889e-19)
+(10.0982 0.0218893 0)
+(10.1004 0.0207179 0)
+(10.1024 0.0195032 0)
+(10.1044 0.0182577 0)
+(10.1063 0.0169939 -2.10682e-19)
+(10.1081 0.0157237 0)
+(10.1098 0.0144581 -2.11546e-19)
+(10.1114 0.0132067 5.19282e-22)
+(10.113 0.0119775 0)
+(10.1146 0.0107767 2.12119e-19)
+(10.116 0.00960909 -2.12911e-19)
+(10.1175 0.00847783 0)
+(10.1189 0.00738491 -4.32381e-22)
+(10.1202 0.00633099 0)
+(10.1216 0.0053159 -4.27093e-19)
+(10.1229 0.00433842 0)
+(10.1242 0.00339682 0)
+(10.1255 0.00248854 0)
+(10.1268 0.0016108 -6.50273e-22)
+(10.1281 0.000760181 0)
+(10.1294 -6.67721e-05 0)
+(10.1307 -0.000874024 -4.30771e-19)
+(10.132 -0.00166544 0)
+(10.1333 -0.00244527 -4.31548e-19)
+(10.1347 -0.00321766 4.31937e-19)
+(10.136 -0.00398702 0)
+(10.1374 -0.00475768 0)
+(10.1388 -0.0055341 0)
+(10.1402 -0.00632077 0)
+(10.1416 -0.00712211 0)
+(10.143 -0.00794255 0)
+(10.1444 -0.00878656 0)
+(10.1459 -0.00965847 0)
+(10.1473 -0.0105628 4.34911e-19)
+(10.1488 -0.0115037 -4.35886e-19)
+(10.1502 -0.0124859 4.36272e-19)
+(10.1517 -0.0135133 0)
+(10.1531 -0.0145904 -4.37021e-19)
+(10.1546 -0.0157213 0)
+(10.156 -0.0169102 0)
+(10.1575 -0.0181613 0)
+(10.1589 -0.0194787 4.37525e-19)
+(10.1603 -0.0208664 8.763e-22)
+(10.1617 -0.0223285 4.37983e-19)
+(10.163 -0.023869 0)
+(10.1643 -0.025492 -1.01667e-21)
+(10.1656 -0.0272011 0)
+(10.1668 -0.0290004 -1.11973e-21)
+(10.1679 -0.0308936 0)
+(10.169 -0.0328843 4.38495e-19)
+(10.1701 -0.0349762 4.39702e-19)
+(10.171 -0.0371726 0)
+(10.1719 -0.0394771 -4.39484e-19)
+(10.1727 -0.0418928 -1.4667e-21)
+(10.1734 -0.0444228 4.39003e-19)
+(10.174 -0.0470702 0)
+(10.1744 -0.0498377 0)
+(10.1748 -0.0527277 4.35979e-19)
+(10.175 -0.0557425 0)
+(10.175 -0.0588844 0)
+(10.1749 -0.0621549 -8.67295e-19)
+(10.1746 -0.0655557 4.34645e-19)
+(10.1742 -0.0690879 -8.63107e-19)
+(10.1736 -0.0727523 -8.64891e-19)
+(10.1727 -0.0765496 0)
+(10.1717 -0.0804797 -8.59455e-19)
+(10.1704 -0.0845425 0)
+(10.1689 -0.0887374 0)
+(10.1671 -0.0930635 0)
+(10.165 -0.0975194 8.40044e-19)
+(10.1627 -0.102103 0)
+(10.1601 -0.106813 8.30623e-19)
+(10.1572 -0.111647 8.30718e-19)
+(10.154 -0.116601 -8.19756e-19)
+(10.1505 -0.121672 -8.13749e-19)
+(10.1466 -0.126857 0)
+(10.1423 -0.132152 8.06256e-19)
+(10.1377 -0.13755 7.99102e-19)
+(10.1327 -0.143049 7.85623e-19)
+(10.1274 -0.148643 7.77513e-19)
+(10.1216 -0.154324 6.02126e-21)
+(10.1154 -0.160089 7.66005e-19)
+(10.1087 -0.16593 -7.50434e-19)
+(10.1017 -0.171839 0)
+(10.0942 -0.177811 -7.3e-19)
+(10.0862 -0.183838 -7.25274e-19)
+(10.0777 -0.189911 0)
+(10.0688 -0.196022 -6.25614e-21)
+(10.0593 -0.202163 -6.83163e-19)
+(10.0494 -0.208325 6.7643e-19)
+(10.039 -0.214499 0)
+(10.028 -0.220675 6.42648e-19)
+(10.0165 -0.226846 -6.28099e-19)
+(10.0045 -0.233 6.13027e-19)
+(9.992 -0.239129 0)
+(9.97892 -0.245222 6.05066e-21)
+(9.96529 -0.25127 5.64666e-19)
+(9.95112 -0.257262 0)
+(9.93639 -0.263189 0)
+(9.92111 -0.269041 5.76013e-21)
+(9.90528 -0.274808 -4.92933e-19)
+(9.88889 -0.28048 0)
+(9.87196 -0.286049 9.13541e-19)
+(9.85447 -0.291503 0)
+(9.83643 -0.296834 4.18435e-19)
+(9.81785 -0.302033 0)
+(9.79872 -0.30709 0)
+(9.77907 -0.311997 1.40344e-18)
+(9.75888 -0.316746 0)
+(9.73817 -0.321328 -6.06095e-19)
+(9.71695 -0.325735 8.89126e-21)
+(9.69523 -0.32996 -1.03268e-18)
+(9.67301 -0.333996 0)
+(9.65031 -0.337836 0)
+(9.62714 -0.341475 -3.7297e-19)
+(9.60351 -0.344905 7.36558e-21)
+(9.57944 -0.348121 5.35114e-19)
+(9.55493 -0.351118 0)
+(9.53001 -0.353893 0)
+(9.50468 -0.356441 -1.07679e-19)
+(9.47897 -0.358761 -5.761e-21)
+(9.4529 -0.360849 -8.62908e-22)
+(9.42646 -0.362703 0)
+(9.3997 -0.364322 0)
+(9.37262 -0.365704 1.62524e-19)
+(9.34524 -0.366848 -4.31194e-19)
+(9.31759 -0.367756 -5.42413e-19)
+(9.28968 -0.368427 0)
+(9.26153 -0.368864 3.81502e-19)
+(9.23316 -0.369069 4.40918e-19)
+(9.2046 -0.369044 0)
+(9.17586 -0.368794 0)
+(9.14697 -0.368322 -6.1007e-19)
+(9.11794 -0.367634 1.96042e-21)
+(9.08879 -0.366735 -7.21476e-19)
+(9.05955 -0.365629 0)
+(9.03023 -0.364323 0)
+(9.00085 -0.362825 -8.92882e-19)
+(8.97144 -0.361144 0)
+(8.94201 -0.359291 6.78825e-22)
+(8.91257 -0.357276 -2.12324e-18)
+(8.88316 -0.355112 -2.23557e-18)
+(8.85377 -0.352812 -1.9775e-22)
+(8.82444 -0.350392 -1.22951e-18)
+(8.79516 -0.347869 1.28508e-18)
+(8.76594 -0.345261 1.34053e-18)
+(8.73681 -0.342583 0)
+(8.70775 -0.339855 0)
+(8.67879 -0.337095 -1.50501e-18)
+(8.64992 -0.334329 0)
+(8.62114 -0.331579 0)
+(8.59246 -0.328874 0)
+(8.56386 -0.326242 0)
+(8.53535 -0.323717 -3.54969e-18)
+(8.50691 -0.321331 3.84149e-22)
+(8.47854 -0.319125 0)
+(8.4502 -0.317137 -3.86741e-18)
+(8.42189 -0.31542 -3.97257e-18)
+(8.39358 -0.314022 4.07962e-18)
+(8.36524 -0.31301 0)
+(8.33684 -0.312445 4.28575e-18)
+(8.30836 -0.312416 0)
+(8.27973 -0.313008 8.99321e-18)
+(8.25093 -0.314334 0)
+(8.22189 -0.316502 0)
+(8.19258 -0.319669 0)
+(8.16296 -0.323988 0)
+(8.13301 -0.329683 -1.70798e-20)
+(8.10268 -0.336981 5.10879e-18)
+(8.07203 -0.346166 0)
+(8.04114 -0.357567 -5.33583e-18)
+(8.01015 -0.371528 5.40512e-18)
+(7.97955 -0.388547 5.48998e-18)
+(7.94935 -0.408561 -4.49556e-20)
+(7.92183 -0.43276 5.68375e-18)
+(7.8934 -0.457818 -5.37175e-20)
+(10.0841 0.0223422 0)
+(10.0863 0.021503 -3.89955e-22)
+(10.0885 0.020597 1.76894e-19)
+(10.0907 0.0196326 0)
+(10.0929 0.0186158 0)
+(10.0949 0.0175543 0)
+(10.097 0.0164561 0)
+(10.0989 0.0153305 0)
+(10.1008 0.0141866 0)
+(10.1026 0.0130337 0)
+(10.1044 0.0118804 1.81612e-19)
+(10.1061 0.0107343 3.64707e-19)
+(10.1077 0.00960215 0)
+(10.1093 0.00848953 -1.83511e-19)
+(10.1109 0.00740063 0)
+(10.1124 0.0063388 0)
+(10.1138 0.005306 1.83896e-19)
+(10.1153 0.00430362 0)
+(10.1167 0.00333173 3.70996e-19)
+(10.1181 0.00239011 0)
+(10.1194 0.00147735 -3.71711e-19)
+(10.1208 0.00059202 0)
+(10.1222 -0.000268343 -3.73811e-19)
+(10.1235 -0.00110603 3.73851e-19)
+(10.1249 -0.00192422 3.74545e-19)
+(10.1262 -0.0027258 3.75231e-19)
+(10.1276 -0.00351444 0)
+(10.129 -0.00429341 3.76585e-19)
+(10.1303 -0.00506675 0)
+(10.1317 -0.00583792 0)
+(10.1331 -0.00661119 3.78584e-19)
+(10.1345 -0.0073902 0)
+(10.1359 -0.00817934 0)
+(10.1374 -0.00898231 0)
+(10.1388 -0.00980351 0)
+(10.1402 -0.0106467 0)
+(10.1417 -0.0115163 0)
+(10.1431 -0.0124161 -7.66845e-19)
+(10.1446 -0.0133503 0)
+(10.146 -0.0143229 0)
+(10.1475 -0.015338 0)
+(10.1489 -0.0163995 0)
+(10.1504 -0.0175113 0)
+(10.1518 -0.0186775 -3.86712e-19)
+(10.1532 -0.0199019 -3.87259e-19)
+(10.1546 -0.0211885 -7.76424e-19)
+(10.1559 -0.022541 3.89183e-19)
+(10.1573 -0.0239632 -3.89705e-19)
+(10.1586 -0.0254589 3.89221e-19)
+(10.1598 -0.0270318 -3.90668e-19)
+(10.161 -0.0286856 0)
+(10.1622 -0.0304239 -3.915e-19)
+(10.1633 -0.0322501 0)
+(10.1644 -0.0341677 -3.92173e-19)
+(10.1653 -0.0361801 0)
+(10.1663 -0.0382905 0)
+(10.1671 -0.0405019 0)
+(10.1678 -0.0428175 -3.92926e-19)
+(10.1684 -0.04524 -3.91441e-19)
+(10.1689 -0.0477723 3.91352e-19)
+(10.1693 -0.0504168 0)
+(10.1696 -0.0531758 3.89236e-19)
+(10.1698 -0.0560514 0)
+(10.1697 -0.0590455 0)
+(10.1696 -0.0621598 3.80819e-21)
+(10.1692 -0.0653957 0)
+(10.1687 -0.0687541 1.5576e-18)
+(10.168 -0.072236 0)
+(10.1671 -0.0758415 7.73245e-19)
+(10.166 -0.0795708 0)
+(10.1647 -0.0834236 0)
+(10.1631 -0.0873993 0)
+(10.1613 -0.091497 0)
+(10.1592 -0.0957154 -7.64855e-19)
+(10.1568 -0.100053 0)
+(10.1542 -0.104507 -7.5769e-19)
+(10.1513 -0.109077 7.48357e-19)
+(10.148 -0.113758 5.35507e-21)
+(10.1444 -0.118548 5.45044e-21)
+(10.1405 -0.123443 0)
+(10.1363 -0.128439 0)
+(10.1316 -0.133532 0)
+(10.1266 -0.138718 -5.77699e-21)
+(10.1213 -0.14399 -1.42349e-18)
+(10.1155 -0.149345 5.90316e-21)
+(10.1093 -0.154775 0)
+(10.1027 -0.160275 1.37758e-18)
+(10.0956 -0.165838 0)
+(10.0881 -0.171458 6.74275e-19)
+(10.0802 -0.177128 6.58718e-19)
+(10.0718 -0.182839 0)
+(10.0629 -0.188584 -1.28277e-18)
+(10.0535 -0.194356 6.12133e-21)
+(10.0436 -0.200146 -6.15987e-19)
+(10.0332 -0.205945 0)
+(10.0224 -0.211745 -1.18942e-18)
+(10.011 -0.217537 5.84807e-19)
+(9.99905 -0.223313 -5.71352e-19)
+(9.9866 -0.229062 0)
+(9.97362 -0.234777 5.42894e-19)
+(9.9601 -0.240448 -5.27889e-19)
+(9.94604 -0.246064 0)
+(9.93143 -0.251618 0)
+(9.91628 -0.257099 9.53942e-19)
+(9.90058 -0.262499 5.53516e-21)
+(9.88433 -0.267809 0)
+(9.86754 -0.273019 -4.27089e-19)
+(9.8502 -0.278121 0)
+(9.83231 -0.283106 7.68707e-19)
+(9.81389 -0.287965 0)
+(9.79493 -0.292689 0)
+(9.77544 -0.297272 -6.589e-19)
+(9.75543 -0.301704 0)
+(9.7349 -0.305979 5.74275e-19)
+(9.71385 -0.310088 5.30646e-19)
+(9.69231 -0.314025 8.39991e-21)
+(9.67028 -0.317784 0)
+(9.64776 -0.321359 0)
+(9.62478 -0.324742 3.40398e-19)
+(9.60134 -0.327929 3.00305e-19)
+(9.57745 -0.330914 -2.51992e-19)
+(9.55313 -0.333694 0)
+(9.5284 -0.336263 1.47077e-19)
+(9.50326 -0.338621 1.03087e-19)
+(9.47774 -0.340763 -5.22349e-20)
+(9.45184 -0.342687 -3.68821e-21)
+(9.42559 -0.344392 0)
+(9.399 -0.345875 0)
+(9.37209 -0.347136 -1.56398e-19)
+(9.34488 -0.348175 4.23533e-19)
+(9.31738 -0.34899 2.63393e-19)
+(9.28962 -0.349585 0)
+(9.26162 -0.349959 0)
+(9.23339 -0.350116 -4.26492e-19)
+(9.20496 -0.350058 0)
+(9.17633 -0.349788 0)
+(9.14754 -0.349311 1.18615e-18)
+(9.1186 -0.348631 -1.29703e-18)
+(9.08953 -0.347752 0)
+(9.06035 -0.34668 0)
+(9.03108 -0.345422 0)
+(9.00173 -0.343985 8.71064e-19)
+(8.97232 -0.342376 0)
+(8.94288 -0.340607 -1.96738e-18)
+(8.91341 -0.338686 2.07955e-18)
+(8.88393 -0.336627 1.0957e-18)
+(8.85446 -0.334441 2.30401e-18)
+(8.825 -0.332143 1.20821e-18)
+(8.79557 -0.329749 -1.26416e-18)
+(8.76617 -0.327273 1.32023e-18)
+(8.73681 -0.324733 0)
+(8.7075 -0.322146 0)
+(8.67823 -0.319531 1.48823e-18)
+(8.649 -0.316911 3.08809e-18)
+(8.61982 -0.314306 0)
+(8.59068 -0.311747 0)
+(8.56156 -0.309256 0)
+(8.53245 -0.306869 3.53509e-18)
+(8.50335 -0.304613 -3.64631e-18)
+(8.47421 -0.302532 3.75919e-18)
+(8.44503 -0.300658 0)
+(8.41576 -0.299045 0)
+(8.38637 -0.297736 -4.09402e-18)
+(8.35683 -0.2968 0)
+(8.32707 -0.29629 -4.32451e-18)
+(8.29704 -0.2963 0)
+(8.26667 -0.296903 -9.10369e-18)
+(8.2359 -0.298222 -4.67416e-18)
+(8.20462 -0.300357 0)
+(8.17276 -0.303471 0)
+(8.14021 -0.307722 0)
+(8.1069 -0.313337 5.13633e-18)
+(8.07268 -0.320561 0)
+(8.03753 -0.329703 -5.39885e-18)
+(8.00139 -0.34115 5.48572e-18)
+(7.96426 -0.355287 0)
+(7.92664 -0.372767 5.74877e-18)
+(7.88795 -0.393518 1.16675e-17)
+(7.85186 -0.419271 -5.88176e-18)
+(7.8104 -0.445309 5.9667e-18)
+(10.0788 0.0181408 0)
+(10.081 0.0173703 -1.49227e-19)
+(10.0832 0.0165459 -3.83863e-22)
+(10.0853 0.0156751 0)
+(10.0874 0.0147623 0)
+(10.0894 0.0138129 0)
+(10.0914 0.0128331 1.52055e-19)
+(10.0933 0.0118292 0)
+(10.0952 0.0108079 1.53244e-19)
+(10.097 0.0097758 0)
+(10.0988 0.00873956 -3.09214e-19)
+(10.1006 0.00770495 -1.55378e-19)
+(10.1022 0.00667745 0)
+(10.1039 0.00566147 0)
+(10.1055 0.00466093 0)
+(10.107 0.00367862 0)
+(10.1086 0.00271684 -3.15745e-19)
+(10.1101 0.00177682 0)
+(10.1116 0.000859417 0)
+(10.113 -3.55241e-05 0)
+(10.1145 -0.00090834 7.04901e-22)
+(10.1159 -0.00176032 0)
+(10.1173 -0.00259276 -3.20447e-19)
+(10.1187 -0.00340777 -3.21963e-19)
+(10.1201 -0.00420737 -6.19018e-22)
+(10.1215 -0.00499429 -3.23662e-19)
+(10.1229 -0.00577103 -3.23917e-19)
+(10.1244 -0.00654085 -6.50118e-19)
+(10.1258 -0.00730654 0)
+(10.1272 -0.00807173 0)
+(10.1286 -0.00883943 -3.27863e-19)
+(10.13 -0.00961349 0)
+(10.1315 -0.0103971 0)
+(10.1329 -0.0111943 0)
+(10.1343 -0.0120083 3.30627e-19)
+(10.1358 -0.0128432 0)
+(10.1372 -0.0137023 0)
+(10.1387 -0.0145896 3.33693e-19)
+(10.1401 -0.0155087 0)
+(10.1415 -0.0164633 -3.34669e-19)
+(10.143 -0.0174572 0)
+(10.1444 -0.0184939 0)
+(10.1458 -0.0195774 0)
+(10.1472 -0.0207108 6.76257e-19)
+(10.1485 -0.0218983 8.14724e-22)
+(10.1499 -0.0231431 6.79223e-19)
+(10.1512 -0.024449 0)
+(10.1525 -0.0258193 0)
+(10.1537 -0.0272577 -3.42177e-19)
+(10.1549 -0.0287675 0)
+(10.1561 -0.0303522 0)
+(10.1572 -0.0320149 -3.4297e-19)
+(10.1583 -0.0337592 0)
+(10.1592 -0.035588 0)
+(10.1602 -0.0375046 0)
+(10.161 -0.0395117 0)
+(10.1617 -0.0416124 0)
+(10.1624 -0.0438094 0)
+(10.163 -0.0461053 3.4719e-19)
+(10.1634 -0.0485026 -6.93295e-19)
+(10.1637 -0.0510036 6.91964e-19)
+(10.1639 -0.0536103 -6.95404e-19)
+(10.164 -0.0563248 0)
+(10.1639 -0.0591486 -6.91776e-19)
+(10.1637 -0.0620834 1.38651e-18)
+(10.1633 -0.0651303 -6.90839e-19)
+(10.1627 -0.0682904 -6.94063e-19)
+(10.1619 -0.0715641 0)
+(10.1609 -0.0749517 -1.38024e-18)
+(10.1597 -0.0784534 0)
+(10.1583 -0.0820689 0)
+(10.1567 -0.0857976 0)
+(10.1548 -0.0896387 6.81139e-19)
+(10.1527 -0.0935909 0)
+(10.1503 -0.0976528 -6.7617e-19)
+(10.1476 -0.101822 0)
+(10.1446 -0.106097 -6.75158e-19)
+(10.1413 -0.110475 6.71739e-19)
+(10.1377 -0.114953 6.67996e-19)
+(10.1337 -0.119527 0)
+(10.1294 -0.124195 -6.54033e-19)
+(10.1248 -0.128951 0)
+(10.1198 -0.133791 -6.49542e-19)
+(10.1144 -0.138711 1.28234e-18)
+(10.1086 -0.143706 6.38073e-19)
+(10.1024 -0.148771 0)
+(10.0958 -0.153899 -5.81293e-21)
+(10.0888 -0.159084 0)
+(10.0813 -0.164321 -6.04357e-19)
+(10.0734 -0.169603 -6.02201e-19)
+(10.065 -0.174922 0)
+(10.0562 -0.180271 5.84784e-19)
+(10.0468 -0.185644 5.75385e-19)
+(10.037 -0.191032 1.12512e-18)
+(10.0267 -0.196428 0)
+(10.0159 -0.201824 5.88182e-21)
+(10.0046 -0.207211 0)
+(9.99278 -0.212581 0)
+(9.98043 -0.217926 0)
+(9.96756 -0.223237 4.90452e-19)
+(9.95415 -0.228506 0)
+(9.94021 -0.233725 0)
+(9.92573 -0.238883 0)
+(9.91071 -0.243973 -5.4455e-21)
+(9.89515 -0.248987 8.44137e-19)
+(9.87904 -0.253916 0)
+(9.8624 -0.258751 7.75033e-19)
+(9.84521 -0.263485 7.41699e-19)
+(9.82749 -0.268108 -7.17321e-19)
+(9.80923 -0.272614 0)
+(9.79045 -0.276994 0)
+(9.77113 -0.281241 0)
+(9.75129 -0.285348 -5.60731e-19)
+(9.73094 -0.289307 0)
+(9.71008 -0.293113 0)
+(9.68872 -0.296758 8.15621e-21)
+(9.66687 -0.300236 -3.99561e-19)
+(9.64454 -0.303542 -3.57134e-19)
+(9.62174 -0.306671 -7.30386e-21)
+(9.59849 -0.309617 -2.69868e-19)
+(9.57479 -0.312374 0)
+(9.55065 -0.31494 0)
+(9.52609 -0.31731 -6.11409e-21)
+(9.50113 -0.319483 0)
+(9.47578 -0.321456 0)
+(9.45004 -0.323226 4.2953e-21)
+(9.42395 -0.324792 0)
+(9.39751 -0.326152 0)
+(9.37074 -0.327305 1.57842e-19)
+(9.34366 -0.328251 -2.04339e-19)
+(9.31629 -0.32899 0)
+(9.28864 -0.329523 0)
+(9.26074 -0.329852 0)
+(9.23259 -0.329979 4.15385e-19)
+(9.20422 -0.329905 4.68204e-19)
+(9.17565 -0.329635 0)
+(9.1469 -0.329171 -5.72761e-19)
+(9.11797 -0.328518 6.26899e-19)
+(9.08889 -0.327681 -6.8308e-19)
+(9.05968 -0.326664 7.37603e-19)
+(9.03035 -0.325474 0)
+(9.00092 -0.324116 8.47457e-19)
+(8.9714 -0.3226 0)
+(8.94182 -0.320933 9.57552e-19)
+(8.91217 -0.319127 -1.01349e-18)
+(8.88248 -0.317189 1.0701e-18)
+(8.85275 -0.315134 -1.12595e-18)
+(8.82299 -0.312973 -1.18249e-18)
+(8.79321 -0.310722 0)
+(8.76342 -0.308395 -1.29601e-18)
+(8.7336 -0.306005 0)
+(8.70377 -0.303573 0)
+(8.67391 -0.301112 0)
+(8.64403 -0.298647 -2.20942e-22)
+(8.61411 -0.296195 3.16573e-18)
+(8.58413 -0.293785 0)
+(8.55408 -0.291435 0)
+(8.52393 -0.289184 -3.51696e-18)
+(8.49365 -0.28705 0)
+(8.4632 -0.285082 -3.75419e-18)
+(8.43254 -0.283302 -3.87402e-18)
+(8.40163 -0.28177 3.99673e-18)
+(8.37038 -0.280518 0)
+(8.33876 -0.279618 -4.24299e-18)
+(8.30664 -0.279116 4.3612e-18)
+(8.27397 -0.279104 4.49492e-18)
+(8.24059 -0.27965 -6.92522e-21)
+(8.20642 -0.280869 4.74456e-18)
+(8.17127 -0.282865 0)
+(8.13502 -0.285791 0)
+(8.09743 -0.289811 5.14991e-18)
+(8.05835 -0.295142 0)
+(8.0175 -0.302048 0)
+(7.97469 -0.310844 5.54384e-18)
+(7.92974 -0.321971 0)
+(7.88234 -0.335849 5.84583e-18)
+(7.83304 -0.353304 -5.92851e-18)
+(7.78044 -0.374281 -6.04566e-18)
+(7.73026 -0.401166 -6.19501e-18)
+(7.66799 -0.427742 0)
+(10.0737 0.0132338 0)
+(10.0758 0.0125416 1.24679e-19)
+(10.0779 0.0118064 -3.44773e-22)
+(10.0799 0.0110346 0)
+(10.082 0.0102295 0)
+(10.0839 0.00939495 0)
+(10.0859 0.00853526 -3.96051e-22)
+(10.0878 0.00765482 0)
+(10.0897 0.00675823 -1.29455e-19)
+(10.0916 0.0058502 0)
+(10.0934 0.00493535 4.10379e-22)
+(10.0951 0.00401805 0)
+(10.0969 0.00310234 0)
+(10.0985 0.00219177 -1.31945e-19)
+(10.1002 0.00128942 -1.32501e-19)
+(10.1018 0.000397771 0)
+(10.1034 -0.000481179 1.33594e-19)
+(10.105 -0.00134608 0)
+(10.1065 -0.002196 0)
+(10.108 -0.00303063 0)
+(10.1095 -0.00385006 2.72099e-19)
+(10.111 -0.00465487 0)
+(10.1125 -0.00544598 6.37487e-22)
+(10.114 -0.00622473 0)
+(10.1154 -0.00699269 -2.76144e-19)
+(10.1169 -0.00775181 0)
+(10.1183 -0.00850415 2.78147e-19)
+(10.1198 -0.00925213 5.74567e-22)
+(10.1212 -0.00999822 0)
+(10.1227 -0.0107452 -2.80579e-19)
+(10.1241 -0.0114957 -2.81579e-19)
+(10.1256 -0.012253 0)
+(10.127 -0.0130198 0)
+(10.1285 -0.0137994 0)
+(10.1299 -0.014595 -5.80439e-22)
+(10.1313 -0.0154098 0)
+(10.1328 -0.0162471 0)
+(10.1342 -0.0171102 0)
+(10.1356 -0.0180022 2.89479e-19)
+(10.137 -0.0189268 2.91108e-19)
+(10.1384 -0.0198871 0)
+(10.1398 -0.0208864 -2.92362e-19)
+(10.1412 -0.0219282 2.93306e-19)
+(10.1426 -0.0230157 -2.95008e-19)
+(10.1439 -0.0241522 2.95962e-19)
+(10.1452 -0.025341 -2.96903e-19)
+(10.1465 -0.0265853 0)
+(10.1477 -0.0278885 0)
+(10.1489 -0.0292536 0)
+(10.15 -0.0306838 0)
+(10.1511 -0.0321821 0)
+(10.1522 -0.0337518 6.0329e-19)
+(10.1532 -0.0353956 0)
+(10.1541 -0.0371166 3.02572e-19)
+(10.1549 -0.0389175 0)
+(10.1557 -0.0408011 0)
+(10.1563 -0.04277 -3.04506e-19)
+(10.1569 -0.0448266 0)
+(10.1574 -0.0469734 0)
+(10.1578 -0.0492126 3.07535e-19)
+(10.158 -0.0515463 -6.15993e-19)
+(10.1581 -0.0539763 0)
+(10.1581 -0.0565045 -6.14149e-19)
+(10.1579 -0.0591324 6.18027e-19)
+(10.1576 -0.0618613 -1.2333e-18)
+(10.1571 -0.0646923 6.18682e-19)
+(10.1565 -0.0676262 6.14979e-19)
+(10.1556 -0.0706636 0)
+(10.1546 -0.0738048 6.18425e-19)
+(10.1533 -0.0770498 0)
+(10.1518 -0.0803984 6.1306e-19)
+(10.1501 -0.0838502 0)
+(10.1482 -0.0874044 -6.15328e-19)
+(10.146 -0.0910598 0)
+(10.1435 -0.094815 6.12403e-19)
+(10.1408 -0.0986683 0)
+(10.1377 -0.102618 -6.03582e-19)
+(10.1344 -0.106661 -6.01092e-19)
+(10.1307 -0.110795 0)
+(10.1267 -0.115016 0)
+(10.1224 -0.119323 5.19014e-21)
+(10.1178 -0.12371 -5.88123e-19)
+(10.1127 -0.128174 0)
+(10.1073 -0.13271 -1.16474e-18)
+(10.1015 -0.137315 5.74926e-19)
+(10.0954 -0.141982 5.69808e-19)
+(10.0888 -0.146708 -1.13415e-18)
+(10.0818 -0.151485 0)
+(10.0743 -0.156309 1.10989e-18)
+(10.0664 -0.161174 0)
+(10.0581 -0.166072 0)
+(10.0493 -0.170998 0)
+(10.04 -0.175945 0)
+(10.0303 -0.180906 -5.20101e-19)
+(10.0201 -0.185873 0)
+(10.0093 -0.190839 5.01905e-19)
+(9.99811 -0.195798 4.8654e-19)
+(9.98638 -0.200741 -4.76296e-19)
+(9.97413 -0.20566 -4.65577e-19)
+(9.96136 -0.210548 -4.59818e-19)
+(9.94807 -0.215397 -4.42692e-19)
+(9.93425 -0.2202 4.30517e-19)
+(9.9199 -0.224947 0)
+(9.90502 -0.229632 -4.09871e-19)
+(9.8896 -0.234246 -3.9613e-19)
+(9.87364 -0.238783 -3.76868e-19)
+(9.85715 -0.243233 -1.09648e-18)
+(9.84012 -0.247589 -7.03759e-19)
+(9.82256 -0.251845 6.62789e-19)
+(9.80446 -0.255993 6.30482e-19)
+(9.78584 -0.260024 0)
+(9.76669 -0.263934 0)
+(9.74702 -0.267715 8.54261e-21)
+(9.72683 -0.27136 4.91404e-19)
+(9.70614 -0.274864 4.54211e-19)
+(9.68495 -0.278221 7.78316e-21)
+(9.66327 -0.281426 3.84508e-19)
+(9.6411 -0.284471 3.44237e-19)
+(9.61847 -0.287355 -3.03054e-19)
+(9.59537 -0.290069 2.60977e-19)
+(9.57182 -0.292611 0)
+(9.54783 -0.294977 -1.68079e-19)
+(9.52341 -0.297164 -2.53256e-19)
+(9.49858 -0.299169 0)
+(9.47335 -0.30099 3.24977e-20)
+(9.44773 -0.302625 0)
+(9.42173 -0.304071 0)
+(9.39538 -0.305329 -1.10149e-19)
+(9.36869 -0.306396 -1.55018e-19)
+(9.34167 -0.307272 2.08917e-19)
+(9.31434 -0.307958 2.59343e-19)
+(9.28671 -0.308454 0)
+(9.25881 -0.308761 0)
+(9.23065 -0.308882 -4.11711e-19)
+(9.20224 -0.308818 -4.64941e-19)
+(9.1736 -0.308571 0)
+(9.14475 -0.308146 0)
+(9.1157 -0.307546 6.30037e-19)
+(9.08647 -0.306774 6.83632e-19)
+(9.05707 -0.305837 -7.39688e-19)
+(9.02752 -0.304739 0)
+(8.99782 -0.303486 -8.53338e-19)
+(8.96799 -0.302085 0)
+(8.93804 -0.300545 0)
+(8.90799 -0.298874 -1.0282e-18)
+(8.87783 -0.297081 4.52007e-22)
+(8.84757 -0.295177 0)
+(8.81721 -0.293174 0)
+(8.78676 -0.291084 0)
+(8.7562 -0.288921 1.32821e-18)
+(8.72554 -0.286696 0)
+(8.69476 -0.284429 1.4521e-18)
+(8.66385 -0.282131 0)
+(8.63278 -0.279824 -1.8793e-22)
+(8.60153 -0.277524 -3.28424e-18)
+(8.57008 -0.275258 0)
+(8.53837 -0.273041 3.54442e-18)
+(8.50637 -0.270909 0)
+(8.47402 -0.26888 3.81101e-18)
+(8.44127 -0.266996 0)
+(8.40802 -0.265279 4.08284e-18)
+(8.3742 -0.263781 2.06067e-21)
+(8.3397 -0.262534 0)
+(8.30442 -0.2616 4.5096e-18)
+(8.26819 -0.261026 0)
+(8.2309 -0.260889 5.6115e-21)
+(8.19232 -0.26126 4.94755e-18)
+(8.1523 -0.262236 0)
+(8.11056 -0.263921 0)
+(8.06687 -0.26645 -5.42802e-18)
+(8.02091 -0.269987 -1.1152e-17)
+(7.97238 -0.274733 5.75225e-18)
+(7.92091 -0.280959 0)
+(7.8661 -0.288972 6.08308e-18)
+(7.80769 -0.299264 0)
+(7.74509 -0.31228 -6.37324e-18)
+(7.67898 -0.32903 -6.56906e-18)
+(7.60711 -0.349553 6.71575e-18)
+(7.53781 -0.376939 6.76596e-18)
+(7.44891 -0.403992 0)
+(10.0689 0.00750788 0)
+(10.071 0.00690136 -2.07791e-19)
+(10.073 0.00626109 -1.04644e-19)
+(10.075 0.00559249 0)
+(10.077 0.00489788 0)
+(10.079 0.00418001 0)
+(10.0809 0.00344168 -2.13736e-19)
+(10.0828 0.0026859 1.07278e-19)
+(10.0847 0.0019156 0)
+(10.0865 0.00113406 0)
+(10.0884 0.000344256 1.09356e-19)
+(10.0901 -0.00045059 -1.09565e-19)
+(10.0919 -0.00124781 0)
+(10.0936 -0.0020446 1.11037e-19)
+(10.0953 -0.00283886 2.22828e-19)
+(10.097 -0.0036284 0)
+(10.0987 -0.00441182 -1.12676e-19)
+(10.1003 -0.00518766 0)
+(10.1019 -0.00595528 0)
+(10.1035 -0.00671396 0)
+(10.105 -0.00746379 0)
+(10.1066 -0.00820475 -1.15035e-19)
+(10.1081 -0.0089376 4.62873e-19)
+(10.1096 -0.00966292 0)
+(10.1111 -0.0103821 2.33261e-19)
+(10.1126 -0.0110961 0)
+(10.1141 -0.0118069 0)
+(10.1156 -0.012516 4.73419e-19)
+(10.1171 -0.0132255 2.37486e-19)
+(10.1186 -0.0139374 2.39089e-19)
+(10.1201 -0.0146542 2.40142e-19)
+(10.1215 -0.015378 2.40645e-19)
+(10.123 -0.0161115 -2.41697e-19)
+(10.1244 -0.0168572 0)
+(10.1259 -0.017618 -4.88162e-19)
+(10.1273 -0.0183964 0)
+(10.1287 -0.0191953 0)
+(10.1302 -0.0200175 0)
+(10.1316 -0.0208659 -2.48599e-19)
+(10.133 -0.0217435 -2.49013e-19)
+(10.1343 -0.0226531 0)
+(10.1357 -0.0235977 2.51761e-19)
+(10.137 -0.0245802 -2.52807e-19)
+(10.1383 -0.0256037 2.53107e-19)
+(10.1396 -0.0266709 0)
+(10.1409 -0.0277849 2.55106e-19)
+(10.1421 -0.0289484 0)
+(10.1433 -0.0301646 0)
+(10.1444 -0.0314362 -2.58013e-19)
+(10.1455 -0.0327659 0)
+(10.1465 -0.0341567 0)
+(10.1475 -0.0356112 -1.02905e-21)
+(10.1484 -0.0371321 0)
+(10.1492 -0.0387221 -2.63607e-19)
+(10.15 -0.0403835 0)
+(10.1507 -0.0421191 0)
+(10.1513 -0.0439309 5.3098e-19)
+(10.1518 -0.0458215 0)
+(10.1522 -0.0477927 0)
+(10.1524 -0.0498468 2.66908e-19)
+(10.1526 -0.0519854 0)
+(10.1526 -0.0542105 0)
+(10.1525 -0.0565236 8.08762e-19)
+(10.1523 -0.058926 -2.68983e-19)
+(10.1519 -0.0614189 5.42063e-19)
+(10.1513 -0.0640033 2.69676e-19)
+(10.1506 -0.06668 -5.43398e-19)
+(10.1496 -0.0694496 -5.40191e-19)
+(10.1485 -0.0723124 0)
+(10.1472 -0.0752684 5.40415e-19)
+(10.1456 -0.0783176 -3.97199e-21)
+(10.1438 -0.0814595 0)
+(10.1418 -0.0846934 0)
+(10.1396 -0.0880184 0)
+(10.137 -0.0914332 0)
+(10.1342 -0.0949364 5.36625e-19)
+(10.1312 -0.098526 1.07502e-18)
+(10.1278 -0.1022 5.3823e-19)
+(10.1241 -0.105956 -5.31719e-19)
+(10.1201 -0.109791 0)
+(10.1157 -0.113703 4.85088e-21)
+(10.1111 -0.117688 4.91715e-21)
+(10.106 -0.121742 -5.21411e-19)
+(10.1006 -0.125862 5.23123e-19)
+(10.0948 -0.130044 -5.19532e-19)
+(10.0886 -0.134283 -5.15604e-19)
+(10.0821 -0.138574 1.01749e-18)
+(10.0751 -0.142913 0)
+(10.0677 -0.147295 -5.01695e-19)
+(10.0598 -0.151713 0)
+(10.0515 -0.156163 -4.85279e-19)
+(10.0428 -0.160638 0)
+(10.0336 -0.165133 0)
+(10.0239 -0.169641 4.65531e-19)
+(10.0137 -0.174156 0)
+(10.0031 -0.178671 0)
+(9.99194 -0.18318 -5.21928e-21)
+(9.9803 -0.187676 8.71735e-19)
+(9.96815 -0.192151 4.29246e-19)
+(9.95549 -0.196599 -4.14454e-19)
+(9.9423 -0.201012 5.05825e-21)
+(9.9286 -0.205385 -3.98768e-19)
+(9.91436 -0.209709 -3.82705e-19)
+(9.8996 -0.213978 0)
+(9.88431 -0.218184 3.59124e-19)
+(9.86848 -0.222321 4.72091e-21)
+(9.85211 -0.226381 6.71771e-19)
+(9.83522 -0.230358 0)
+(9.81779 -0.234245 -6.20922e-19)
+(9.79982 -0.238035 -5.91652e-19)
+(9.78133 -0.241721 0)
+(9.76232 -0.245298 0)
+(9.74278 -0.248759 4.97703e-19)
+(9.72272 -0.252099 -7.83428e-21)
+(9.70215 -0.255312 -4.2996e-19)
+(9.68108 -0.258393 7.8177e-19)
+(9.6595 -0.261336 3.51046e-19)
+(9.63744 -0.264138 0)
+(9.6149 -0.266792 2.75724e-19)
+(9.59189 -0.269295 0)
+(9.56842 -0.271642 0)
+(9.5445 -0.27383 1.61187e-19)
+(9.52014 -0.275857 1.18862e-19)
+(9.49534 -0.277719 0)
+(9.47013 -0.279415 -3.13491e-20)
+(9.44451 -0.280941 -1.85566e-20)
+(9.4185 -0.282297 0)
+(9.39212 -0.283481 -4.21211e-21)
+(9.36537 -0.284492 0)
+(9.33827 -0.28533 3.69218e-21)
+(9.31083 -0.285994 3.4372e-21)
+(9.28307 -0.286486 0)
+(9.255 -0.286806 0)
+(9.22664 -0.286955 0)
+(9.198 -0.286935 0)
+(9.16909 -0.286748 0)
+(9.13992 -0.286397 0)
+(9.11051 -0.285885 -6.25085e-19)
+(9.08087 -0.285215 6.83121e-19)
+(9.05101 -0.284392 7.40232e-19)
+(9.02093 -0.28342 0)
+(8.99064 -0.282305 0)
+(8.96016 -0.281051 0)
+(8.92948 -0.279667 -9.77146e-19)
+(8.8986 -0.278159 -5.36673e-22)
+(8.86753 -0.276536 3.98807e-22)
+(8.83625 -0.274805 0)
+(8.80476 -0.27298 1.22814e-18)
+(8.77305 -0.271067 0)
+(8.7411 -0.26908 -2.71837e-18)
+(8.70888 -0.26703 0)
+(8.67637 -0.264931 -1.49433e-18)
+(8.64353 -0.262796 0)
+(8.61032 -0.260641 -4.90076e-18)
+(8.57669 -0.258484 0)
+(8.54259 -0.256342 0)
+(8.50794 -0.254236 -3.69982e-18)
+(8.47267 -0.252187 0)
+(8.43667 -0.250223 6.97804e-22)
+(8.39985 -0.248365 -4.15921e-18)
+(8.36209 -0.246648 -4.3139e-18)
+(8.32325 -0.245103 2.13605e-21)
+(8.28318 -0.24377 4.63712e-18)
+(8.2417 -0.242689 0)
+(8.19862 -0.241915 4.9721e-18)
+(8.15373 -0.241502 -5.14313e-18)
+(8.10678 -0.241525 0)
+(8.05752 -0.242057 -5.5022e-18)
+(8.00565 -0.243211 0)
+(7.95085 -0.24509 -1.22938e-20)
+(7.89281 -0.247871 6.03395e-18)
+(7.83111 -0.251723 -6.22479e-18)
+(7.76543 -0.256938 0)
+(7.69528 -0.263802 -1.32245e-17)
+(7.62046 -0.272862 -6.81593e-18)
+(7.54026 -0.284593 -7.00562e-18)
+(7.4556 -0.300186 7.14783e-18)
+(7.36366 -0.319879 -7.30535e-18)
+(7.27524 -0.347437 0)
+(7.16129 -0.375552 0)
+(10.065 0.000799832 0)
+(10.067 0.000286862 8.61798e-20)
+(10.069 -0.000251832 0)
+(10.071 -0.000811948 0)
+(10.0729 -0.00139183 -8.75212e-20)
+(10.0749 -0.00198972 8.805e-20)
+(10.0768 -0.00260377 1.77441e-19)
+(10.0787 -0.00323217 -8.93953e-20)
+(10.0806 -0.00387301 -8.96324e-20)
+(10.0824 -0.00452434 0)
+(10.0843 -0.00518416 0)
+(10.0861 -0.00585052 1.82711e-19)
+(10.0879 -0.00652154 0)
+(10.0896 -0.00719545 -9.2248e-20)
+(10.0914 -0.0078707 -2.97381e-22)
+(10.0931 -0.00854585 0)
+(10.0948 -0.00921975 0)
+(10.0965 -0.00989139 0)
+(10.0981 -0.0105601 0)
+(10.0997 -0.0112254 0)
+(10.1014 -0.011887 9.58599e-20)
+(10.103 -0.012545 9.66467e-20)
+(10.1046 -0.0131996 -1.94311e-19)
+(10.1061 -0.0138514 9.73968e-20)
+(10.1077 -0.0145009 -1.96345e-19)
+(10.1092 -0.0151492 0)
+(10.1108 -0.0157972 -9.89321e-20)
+(10.1123 -0.0164464 -1.99404e-19)
+(10.1138 -0.0170981 -2.00427e-19)
+(10.1153 -0.0177539 1.00469e-19)
+(10.1168 -0.0184155 0)
+(10.1183 -0.0190848 -2.03507e-19)
+(10.1198 -0.0197638 2.04538e-19)
+(10.1212 -0.0204546 0)
+(10.1227 -0.0211592 4.12675e-19)
+(10.1241 -0.0218799 2.07096e-19)
+(10.1255 -0.0226191 0)
+(10.1269 -0.0233791 2.09148e-19)
+(10.1283 -0.0241622 2.10172e-19)
+(10.1297 -0.0249709 6.04913e-22)
+(10.131 -0.0258078 -2.12215e-19)
+(10.1324 -0.0266752 0)
+(10.1337 -0.0275757 2.14244e-19)
+(10.1349 -0.0285119 -4.31197e-19)
+(10.1362 -0.0294863 0)
+(10.1374 -0.0305014 -4.35245e-19)
+(10.1385 -0.0315597 0)
+(10.1397 -0.0326637 0)
+(10.1407 -0.0338161 2.21021e-19)
+(10.1418 -0.0350191 0)
+(10.1427 -0.0362753 0)
+(10.1436 -0.037587 -2.23947e-19)
+(10.1445 -0.0389567 -2.23906e-19)
+(10.1452 -0.0403866 2.24794e-19)
+(10.1459 -0.0418789 -2.2566e-19)
+(10.1465 -0.0434359 0)
+(10.147 -0.0450595 -2.28472e-19)
+(10.1474 -0.0467519 0)
+(10.1477 -0.0485149 2.28867e-19)
+(10.1479 -0.0503503 -2.30878e-19)
+(10.148 -0.0522598 0)
+(10.148 -0.0542449 0)
+(10.1478 -0.0563071 -2.32964e-19)
+(10.1474 -0.0584475 2.33574e-19)
+(10.1469 -0.0606674 0)
+(10.1463 -0.0629675 -2.34645e-19)
+(10.1454 -0.0653487 0)
+(10.1444 -0.0678115 4.70985e-19)
+(10.1432 -0.0703563 0)
+(10.1418 -0.0729833 -7.06496e-19)
+(10.1402 -0.0756923 -4.72552e-19)
+(10.1383 -0.078483 0)
+(10.1363 -0.081355 0)
+(10.1339 -0.0843075 0)
+(10.1314 -0.0873395 0)
+(10.1285 -0.0904498 -7.05939e-19)
+(10.1254 -0.0936368 -4.71299e-19)
+(10.1219 -0.0968988 0)
+(10.1182 -0.100234 9.34324e-19)
+(10.1142 -0.10364 0)
+(10.1098 -0.107114 4.66385e-19)
+(10.1051 -0.110653 4.64553e-19)
+(10.1 -0.114255 4.62459e-19)
+(10.0946 -0.117916 0)
+(10.0888 -0.121632 -4.52803e-19)
+(10.0826 -0.1254 0)
+(10.076 -0.129217 -4.51247e-19)
+(10.069 -0.133076 0)
+(10.0616 -0.136975 0)
+(10.0538 -0.140908 0)
+(10.0455 -0.144871 4.34984e-19)
+(10.0368 -0.148858 -4.25222e-19)
+(10.0277 -0.152865 -4.19914e-19)
+(10.018 -0.156885 -4.19064e-19)
+(10.0079 -0.160914 0)
+(9.99731 -0.164945 0)
+(9.98622 -0.168972 -3.9965e-19)
+(9.97464 -0.172991 -7.79948e-19)
+(9.96255 -0.176994 0)
+(9.94995 -0.180975 7.48267e-19)
+(9.93683 -0.184928 3.67884e-19)
+(9.92319 -0.188847 0)
+(9.90903 -0.192727 3.49324e-19)
+(9.89433 -0.196559 0)
+(9.8791 -0.20034 -3.28894e-19)
+(9.86334 -0.204061 3.1796e-19)
+(9.84704 -0.207718 -6.08792e-19)
+(9.8302 -0.211303 0)
+(9.81283 -0.214811 0)
+(9.79492 -0.218236 -2.65255e-19)
+(9.77648 -0.221572 -2.51918e-19)
+(9.7575 -0.224812 0)
+(9.73799 -0.227954 -2.2371e-19)
+(9.71795 -0.230989 -4.24934e-19)
+(9.69739 -0.233915 0)
+(9.67632 -0.236725 -3.61843e-19)
+(9.65474 -0.239416 -1.67661e-19)
+(9.63265 -0.241982 0)
+(9.61006 -0.24442 -3.85787e-19)
+(9.58699 -0.246725 0)
+(9.56344 -0.248894 0)
+(9.53941 -0.250924 0)
+(9.51492 -0.252811 0)
+(9.48998 -0.254554 -6.18898e-20)
+(9.46459 -0.256148 0)
+(9.43876 -0.257593 1.77158e-20)
+(9.41252 -0.258887 6.57807e-20)
+(9.38586 -0.260027 1.06576e-19)
+(9.35879 -0.261014 0)
+(9.33134 -0.261846 3.44196e-21)
+(9.30351 -0.262523 -2.48027e-19)
+(9.2753 -0.263045 0)
+(9.24674 -0.263412 0)
+(9.21783 -0.263625 4.01867e-19)
+(9.18857 -0.263685 0)
+(9.15898 -0.263594 0)
+(9.12907 -0.263352 0)
+(9.09882 -0.262964 6.18443e-19)
+(9.06826 -0.26243 -6.73994e-19)
+(9.03738 -0.261754 -7.32397e-19)
+(9.00618 -0.26094 -7.93034e-19)
+(8.97466 -0.25999 0)
+(8.94282 -0.258911 0)
+(8.91063 -0.257707 9.77978e-19)
+(8.87809 -0.256383 1.04242e-18)
+(8.84519 -0.254946 -2.21689e-18)
+(8.81189 -0.253403 0)
+(8.77817 -0.251762 -1.24383e-18)
+(8.744 -0.250031 0)
+(8.70934 -0.248218 1.38479e-18)
+(8.67413 -0.246334 -1.45719e-18)
+(8.63832 -0.244387 0)
+(8.60185 -0.242391 0)
+(8.56464 -0.240354 1.68425e-18)
+(8.52661 -0.238295 -1.76252e-18)
+(8.48766 -0.236223 0)
+(8.44769 -0.234159 0)
+(8.40657 -0.232115 0)
+(8.36419 -0.230118 -4.18617e-18)
+(8.32039 -0.228181 6.54284e-18)
+(8.27503 -0.226339 6.80605e-18)
+(8.22792 -0.22461 -2.35842e-18)
+(8.17892 -0.22304 -4.90098e-18)
+(8.12779 -0.221653 0)
+(8.07439 -0.22051 -5.27892e-18)
+(8.01844 -0.219647 0)
+(7.95979 -0.219149 -5.6773e-18)
+(7.89812 -0.219068 5.87402e-18)
+(7.8333 -0.219529 -6.08475e-18)
+(7.76496 -0.220616 6.2845e-18)
+(7.69297 -0.222518 0)
+(7.61692 -0.225385 0)
+(7.53667 -0.229522 0)
+(7.45174 -0.235213 7.13369e-18)
+(7.36209 -0.243031 7.35012e-18)
+(7.26698 -0.253499 7.55844e-18)
+(7.16749 -0.267974 0)
+(7.06035 -0.286883 -8.00095e-18)
+(6.95814 -0.314778 0)
+(6.82653 -0.344711 0)
+(10.0628 -0.00707018 0)
+(10.0648 -0.00748753 0)
+(10.0667 -0.00792284 3.56419e-20)
+(10.0687 -0.00837297 0)
+(10.0706 -0.00883697 1.44622e-19)
+(10.0725 -0.00931386 -2.21915e-22)
+(10.0744 -0.00980257 -1.46476e-19)
+(10.0763 -0.0103021 -7.35872e-20)
+(10.0782 -0.0108114 2.33842e-22)
+(10.0801 -0.0113295 0)
+(10.0819 -0.0118551 0)
+(10.0837 -0.0123871 -1.51121e-19)
+(10.0855 -0.0129246 0)
+(10.0873 -0.0134664 7.66103e-20)
+(10.0891 -0.0140115 -1.53908e-19)
+(10.0909 -0.0145592 0)
+(10.0926 -0.0151088 0)
+(10.0943 -0.0156595 0)
+(10.096 -0.0162109 0)
+(10.0977 -0.0167627 0)
+(10.0993 -0.0173147 -1.59479e-19)
+(10.101 -0.0178669 -8.00882e-20)
+(10.1026 -0.0184194 0)
+(10.1042 -0.0189726 -8.125e-20)
+(10.1058 -0.0195269 0)
+(10.1074 -0.0200828 -8.19558e-20)
+(10.109 -0.0206412 8.26504e-20)
+(10.1106 -0.0212028 0)
+(10.1121 -0.0217688 8.33626e-20)
+(10.1136 -0.0223403 -2.27136e-22)
+(10.1151 -0.0229185 0)
+(10.1166 -0.0235047 0)
+(10.1181 -0.0241006 0)
+(10.1196 -0.0247075 8.57205e-20)
+(10.121 -0.0253272 -1.72867e-19)
+(10.1225 -0.0259613 -1.73824e-19)
+(10.1239 -0.0266117 0)
+(10.1253 -0.0272802 -1.75742e-19)
+(10.1266 -0.0279687 -1.76703e-19)
+(10.128 -0.0286791 1.77665e-19)
+(10.1293 -0.0294135 1.78627e-19)
+(10.1306 -0.0301739 0)
+(10.1319 -0.0309623 -1.80551e-19)
+(10.1331 -0.0317807 1.81511e-19)
+(10.1343 -0.0326313 0)
+(10.1354 -0.0335162 2.74803e-19)
+(10.1365 -0.0344374 9.18429e-20)
+(10.1376 -0.0353971 0)
+(10.1386 -0.0363974 1.85515e-19)
+(10.1396 -0.0374403 0)
+(10.1405 -0.0385279 0)
+(10.1413 -0.0396622 -1.88189e-19)
+(10.142 -0.0408452 3.78978e-19)
+(10.1427 -0.0420789 -8.99448e-22)
+(10.1433 -0.0433651 1.91681e-19)
+(10.1438 -0.0447058 1.91566e-19)
+(10.1443 -0.0461027 0)
+(10.1446 -0.0475576 0)
+(10.1448 -0.0490721 -1.08317e-21)
+(10.1449 -0.0506478 1.94628e-19)
+(10.1449 -0.0522861 -1.95329e-19)
+(10.1447 -0.0539885 0)
+(10.1444 -0.055756 0)
+(10.144 -0.0575901 0)
+(10.1434 -0.0594914 0)
+(10.1427 -0.0614611 -1.98325e-19)
+(10.1417 -0.0634997 0)
+(10.1406 -0.0656079 0)
+(10.1393 -0.0677861 1.99614e-19)
+(10.1378 -0.0700344 2.01473e-19)
+(10.1361 -0.072353 0)
+(10.1341 -0.0747417 0)
+(10.132 -0.0772001 0)
+(10.1295 -0.0797279 0)
+(10.1269 -0.0823243 0)
+(10.1239 -0.0849882 4.02879e-19)
+(10.1207 -0.0877188 0)
+(10.1172 -0.0905144 2.00157e-19)
+(10.1134 -0.0933738 -4.03386e-19)
+(10.1093 -0.0962948 -1.99398e-19)
+(10.1048 -0.0992759 0)
+(10.1 -0.102314 1.98245e-19)
+(10.0949 -0.105408 1.97508e-19)
+(10.0894 -0.108555 0)
+(10.0835 -0.111751 3.95441e-19)
+(10.0773 -0.114993 1.94601e-19)
+(10.0707 -0.11828 1.93383e-19)
+(10.0636 -0.121606 0)
+(10.0562 -0.124968 0)
+(10.0483 -0.128363 0)
+(10.04 -0.131786 0)
+(10.0312 -0.135233 1.89446e-19)
+(10.022 -0.1387 3.70473e-19)
+(10.0123 -0.142182 0)
+(10.0021 -0.145676 0)
+(9.99148 -0.149175 0)
+(9.98035 -0.152675 0)
+(9.96871 -0.156171 3.44421e-19)
+(9.95656 -0.159659 0)
+(9.9439 -0.163131 -4.15565e-21)
+(9.93072 -0.166584 0)
+(9.91701 -0.170012 -3.12666e-19)
+(9.90277 -0.17341 3.04759e-19)
+(9.88799 -0.176773 0)
+(9.87267 -0.180095 -2.87655e-19)
+(9.85681 -0.183371 0)
+(9.8404 -0.186596 3.81179e-21)
+(9.82344 -0.189764 2.58632e-19)
+(9.80594 -0.192871 0)
+(9.78788 -0.195911 2.4053e-19)
+(9.76927 -0.198878 3.51437e-21)
+(9.75011 -0.201768 0)
+(9.7304 -0.204577 4.04732e-19)
+(9.71014 -0.207298 -1.87596e-19)
+(9.68934 -0.209929 -1.73973e-19)
+(9.66799 -0.212464 0)
+(9.64611 -0.2149 -2.93225e-19)
+(9.62369 -0.217231 0)
+(9.60075 -0.219456 2.30987e-19)
+(9.57728 -0.221569 0)
+(9.5533 -0.223568 0)
+(9.5288 -0.225449 6.34019e-20)
+(9.50379 -0.227209 4.53467e-20)
+(9.47828 -0.228845 3.11203e-20)
+(9.45227 -0.230354 7.46319e-21)
+(9.42577 -0.231735 0)
+(9.39878 -0.232985 -6.19205e-20)
+(9.37132 -0.234103 0)
+(9.34338 -0.235087 7.56101e-20)
+(9.31497 -0.235935 -1.92815e-19)
+(9.28609 -0.236648 0)
+(9.25675 -0.237223 0)
+(9.22695 -0.237661 0)
+(9.19668 -0.23796 -3.855e-19)
+(9.16595 -0.238122 0)
+(9.13475 -0.238146 0)
+(9.10307 -0.238032 0)
+(9.07091 -0.237782 -6.00119e-19)
+(9.03826 -0.237397 -6.58692e-19)
+(9.0051 -0.236878 7.17299e-19)
+(8.97141 -0.236227 7.76407e-19)
+(8.93718 -0.235446 0)
+(8.90236 -0.234537 0)
+(8.86694 -0.233504 0)
+(8.83088 -0.232349 -1.03387e-18)
+(8.79412 -0.231076 2.20397e-18)
+(8.75664 -0.22969 0)
+(8.71836 -0.228193 0)
+(8.67923 -0.226594 0)
+(8.63918 -0.224895 0)
+(8.59814 -0.223106 2.94012e-18)
+(8.55601 -0.221229 1.54941e-18)
+(8.51272 -0.219277 0)
+(8.46816 -0.217255 1.71367e-18)
+(8.42225 -0.215177 1.79839e-18)
+(8.37485 -0.213052 0)
+(8.32589 -0.210897 -1.975e-18)
+(8.27521 -0.208723 2.06658e-18)
+(8.22274 -0.206555 -2.15978e-18)
+(8.16832 -0.204406 -4.51053e-18)
+(8.11187 -0.20231 -2.35209e-18)
+(8.05324 -0.200285 1.32598e-21)
+(7.99235 -0.198378 2.55534e-18)
+(7.92905 -0.196613 2.66016e-18)
+(7.86328 -0.195054 -2.7664e-18)
+(7.79488 -0.193737 0)
+(7.7238 -0.192748 5.96644e-18)
+(7.64987 -0.192142 0)
+(7.57305 -0.192038 9.63735e-18)
+(7.49312 -0.192525 0)
+(7.41003 -0.193779 0)
+(7.3235 -0.195953 0)
+(7.23343 -0.199336 3.69953e-18)
+(7.1394 -0.204211 0)
+(7.04133 -0.211154 0)
+(6.93839 -0.220699 0)
+(6.83165 -0.234376 0)
+(6.7172 -0.25271 8.5868e-18)
+(6.6088 -0.281261 -4.42496e-18)
+(6.46819 -0.313335 0)
+(10.0633 -0.0143701 0)
+(10.0653 -0.0147043 0)
+(10.0672 -0.0150506 -9.6354e-20)
+(10.0691 -0.0154068 -4.84299e-20)
+(10.0711 -0.0157726 -9.76153e-20)
+(10.073 -0.0161474 -4.91892e-20)
+(10.0749 -0.0165307 9.87984e-20)
+(10.0768 -0.0169219 9.93903e-20)
+(10.0786 -0.0173207 1.49883e-19)
+(10.0805 -0.0177264 0)
+(10.0823 -0.0181384 -5.04903e-20)
+(10.0842 -0.0185562 1.01756e-19)
+(10.086 -0.0189792 0)
+(10.0878 -0.0194069 0)
+(10.0896 -0.0198387 1.55192e-19)
+(10.0914 -0.0202742 0)
+(10.0931 -0.0207128 0)
+(10.0948 -0.0211544 0)
+(10.0966 -0.0215986 0)
+(10.0983 -0.0220453 0)
+(10.1 -0.0224942 1.88136e-22)
+(10.1016 -0.0229455 1.07629e-19)
+(10.1033 -0.0233991 0)
+(10.1049 -0.0238555 0)
+(10.1065 -0.0243147 0)
+(10.1081 -0.0247774 1.09966e-19)
+(10.1097 -0.0252438 -1.10362e-19)
+(10.1113 -0.0257148 1.10945e-19)
+(10.1128 -0.0261909 -1.11717e-19)
+(10.1144 -0.0266731 -1.12301e-19)
+(10.1159 -0.0271621 0)
+(10.1174 -0.0276592 0)
+(10.1189 -0.0281652 0)
+(10.1204 -0.0286814 -1.14635e-19)
+(10.1218 -0.0292091 0)
+(10.1232 -0.0297495 0)
+(10.1246 -0.030304 0)
+(10.126 -0.0308741 0)
+(10.1273 -0.0314612 0)
+(10.1287 -0.0320669 0)
+(10.1299 -0.0326928 1.18464e-19)
+(10.1312 -0.0333404 0)
+(10.1324 -0.0340115 1.19595e-19)
+(10.1336 -0.0347076 0)
+(10.1347 -0.0354305 1.20713e-19)
+(10.1358 -0.0361819 -2.42809e-19)
+(10.1369 -0.0369636 -1.22101e-19)
+(10.1379 -0.0377771 1.22353e-19)
+(10.1388 -0.0386244 -1.2351e-19)
+(10.1397 -0.0395071 0)
+(10.1405 -0.0404268 0)
+(10.1413 -0.0413854 1.25142e-19)
+(10.142 -0.0423844 -3.75559e-19)
+(10.1426 -0.0434255 -1.26186e-19)
+(10.1431 -0.0445105 -1.25912e-19)
+(10.1435 -0.0456406 -3.79939e-19)
+(10.1438 -0.0468177 0)
+(10.144 -0.048043 0)
+(10.1441 -0.0493181 -2.56261e-19)
+(10.1441 -0.0506442 -2.57093e-19)
+(10.144 -0.0520228 2.57886e-19)
+(10.1437 -0.0534549 0)
+(10.1433 -0.0549418 2.58312e-19)
+(10.1427 -0.0564842 2.58936e-19)
+(10.142 -0.0580833 2.59508e-19)
+(10.1411 -0.0597398 5.21183e-19)
+(10.14 -0.0614544 0)
+(10.1388 -0.0632277 0)
+(10.1373 -0.0650601 -1.2369e-21)
+(10.1357 -0.0669519 0)
+(10.1338 -0.0689032 2.61631e-19)
+(10.1317 -0.0709142 0)
+(10.1294 -0.0729845 0)
+(10.1268 -0.075114 0)
+(10.124 -0.0773021 0)
+(10.1209 -0.0795482 -2.62675e-19)
+(10.1175 -0.0818515 0)
+(10.1138 -0.0842111 -2.61863e-19)
+(10.1098 -0.0866255 0)
+(10.1055 -0.0890939 2.6058e-19)
+(10.1009 -0.0916142 0)
+(10.0959 -0.0941852 -5.15944e-19)
+(10.0906 -0.0968045 -2.57676e-19)
+(10.085 -0.0994707 0)
+(10.0789 -0.102181 -2.53335e-19)
+(10.0725 -0.104933 -2.53452e-19)
+(10.0656 -0.107724 -2.51723e-19)
+(10.0584 -0.110552 0)
+(10.0507 -0.113413 0)
+(10.0426 -0.116305 -2.43737e-19)
+(10.0341 -0.119224 -2.41278e-19)
+(10.0251 -0.122167 2.40385e-19)
+(10.0157 -0.125129 0)
+(10.0057 -0.128109 0)
+(9.99532 -0.131101 0)
+(9.98441 -0.134102 0)
+(9.97301 -0.137108 0)
+(9.96109 -0.140115 0)
+(9.94866 -0.143118 2.14091e-19)
+(9.93569 -0.146113 -4.22767e-19)
+(9.9222 -0.149095 0)
+(9.90816 -0.152061 2.03429e-19)
+(9.89357 -0.155006 -5.87888e-19)
+(9.87842 -0.157924 0)
+(9.86272 -0.160813 3.70554e-19)
+(9.84645 -0.163667 0)
+(9.82961 -0.166482 6.88496e-19)
+(9.81219 -0.169254 -3.32598e-19)
+(9.7942 -0.171977 3.15733e-19)
+(9.77563 -0.174647 0)
+(9.75647 -0.17726 5.75723e-19)
+(9.73673 -0.179811 0)
+(9.7164 -0.182296 -2.57371e-19)
+(9.69549 -0.184711 2.69222e-21)
+(9.67398 -0.187052 2.22859e-19)
+(9.65188 -0.189315 0)
+(9.62919 -0.191495 3.68977e-19)
+(9.60591 -0.193589 0)
+(9.58204 -0.195594 -1.45865e-19)
+(9.55758 -0.197506 0)
+(9.53253 -0.199322 0)
+(9.50688 -0.201038 -8.09038e-20)
+(9.48064 -0.202651 -5.78312e-20)
+(9.4538 -0.204157 3.40344e-20)
+(9.42637 -0.205554 -1.73208e-21)
+(9.39833 -0.206839 0)
+(9.36969 -0.208009 0)
+(9.34043 -0.209063 6.99966e-20)
+(9.31056 -0.209998 -9.60676e-20)
+(9.28006 -0.210811 0)
+(9.24893 -0.211502 1.54638e-19)
+(9.21716 -0.212068 0)
+(9.18472 -0.212507 0)
+(9.1516 -0.212817 0)
+(9.11779 -0.212998 0)
+(9.08326 -0.213047 3.11517e-19)
+(9.04799 -0.212964 0)
+(9.01194 -0.212747 3.79964e-19)
+(8.97508 -0.212397 4.14246e-19)
+(8.93737 -0.211912 -9.02413e-19)
+(8.89879 -0.211293 0)
+(8.85927 -0.210538 5.26866e-19)
+(8.81877 -0.209648 0)
+(8.77724 -0.208624 0)
+(8.73463 -0.207467 1.29116e-18)
+(8.69087 -0.206178 -1.37395e-18)
+(8.6459 -0.20476 0)
+(8.59965 -0.203215 0)
+(8.55207 -0.201548 8.16265e-19)
+(8.50309 -0.199763 0)
+(8.45263 -0.197866 -2.71879e-18)
+(8.40063 -0.195863 -3.81024e-18)
+(8.34704 -0.193765 1.99928e-18)
+(8.29178 -0.191578 3.39605e-22)
+(8.23482 -0.189319 -2.19191e-18)
+(8.1761 -0.186998 0)
+(8.11559 -0.184636 4.78018e-18)
+(8.05324 -0.182245 -2.49113e-18)
+(7.98904 -0.179855 -6.59827e-22)
+(7.92296 -0.177482 2.69739e-18)
+(7.85501 -0.175162 2.80318e-18)
+(7.78514 -0.172919 -2.90843e-18)
+(7.71339 -0.170797 1.28651e-21)
+(7.63972 -0.168827 1.51831e-21)
+(7.56416 -0.167068 -1.79129e-21)
+(7.48664 -0.165559 0)
+(7.40718 -0.164376 0)
+(7.32569 -0.163575 0)
+(7.24214 -0.16326 -3.67898e-18)
+(7.15638 -0.163515 3.79587e-18)
+(7.06829 -0.164495 3.91169e-18)
+(6.97764 -0.166342 0)
+(6.88421 -0.169319 -4.13769e-18)
+(6.78759 -0.173693 0)
+(6.68749 -0.180025 0)
+(6.58297 -0.188835 0)
+(6.47492 -0.201809 4.61173e-18)
+(6.35863 -0.219469 0)
+(6.24909 -0.248648 9.58591e-18)
+(6.10383 -0.282479 0)
+(10.0654 -0.0200816 0)
+(10.0673 -0.0203523 5.44281e-20)
+(10.0693 -0.0206318 5.48164e-20)
+(10.0712 -0.0209183 5.51428e-20)
+(10.0731 -0.0212117 0)
+(10.075 -0.0215115 -5.57967e-20)
+(10.0769 -0.0218174 0)
+(10.0788 -0.0221292 0)
+(10.0806 -0.0224466 -5.67791e-20)
+(10.0825 -0.0227695 0)
+(10.0844 -0.0230974 5.74341e-20)
+(10.0862 -0.0234302 0)
+(10.088 -0.0237675 0)
+(10.0898 -0.0241093 5.83407e-20)
+(10.0916 -0.024455 -7.48317e-23)
+(10.0934 -0.0248048 5.89925e-20)
+(10.0952 -0.0251581 0)
+(10.0969 -0.025515 0)
+(10.0986 -0.0258753 5.99682e-20)
+(10.1003 -0.026239 -6.02929e-20)
+(10.102 -0.0266058 1.21387e-19)
+(10.1037 -0.0269761 0)
+(10.1054 -0.0273497 0)
+(10.107 -0.027727 6.15891e-20)
+(10.1086 -0.028108 0)
+(10.1102 -0.0284932 0)
+(10.1118 -0.0288827 1.25273e-19)
+(10.1134 -0.0292774 -1.25919e-19)
+(10.1149 -0.0296774 0)
+(10.1165 -0.0300835 6.35259e-20)
+(10.118 -0.0304964 0)
+(10.1195 -0.0309169 -1.28338e-19)
+(10.1209 -0.0313456 1.28981e-19)
+(10.1224 -0.0317837 0)
+(10.1238 -0.032232 0)
+(10.1252 -0.0326916 0)
+(10.1266 -0.0331634 0)
+(10.1279 -0.0336487 0)
+(10.1292 -0.0341486 0)
+(10.1305 -0.0346644 0)
+(10.1317 -0.0351972 -1.99858e-22)
+(10.1329 -0.0357486 0)
+(10.1341 -0.0363196 -1.35527e-19)
+(10.1352 -0.0369119 0)
+(10.1363 -0.0375266 -2.73319e-19)
+(10.1373 -0.0381653 2.74543e-19)
+(10.1382 -0.0388293 0)
+(10.1391 -0.0395202 -1.38605e-19)
+(10.14 -0.0402393 -1.39203e-19)
+(10.1408 -0.040988 0)
+(10.1415 -0.0417679 0)
+(10.1421 -0.0425804 2.94603e-22)
+(10.1427 -0.0434268 2.82709e-19)
+(10.1432 -0.0443086 -3.1728e-22)
+(10.1435 -0.0452271 1.42594e-19)
+(10.1438 -0.0461837 1.43116e-19)
+(10.144 -0.0471798 -1.4327e-19)
+(10.1441 -0.0482165 0)
+(10.144 -0.0492952 0)
+(10.1438 -0.050417 0)
+(10.1435 -0.051583 -1.45063e-19)
+(10.1431 -0.0527943 -1.45458e-19)
+(10.1425 -0.0540519 -2.92522e-19)
+(10.1417 -0.0553566 -2.93235e-19)
+(10.1408 -0.0567094 -2.9389e-19)
+(10.1397 -0.058111 -4.41249e-19)
+(10.1384 -0.059562 0)
+(10.137 -0.0610629 0)
+(10.1353 -0.0626143 -2.95853e-19)
+(10.1334 -0.0642165 0)
+(10.1313 -0.0658697 -1.48735e-19)
+(10.129 -0.0675739 1.47691e-19)
+(10.1264 -0.0693292 1.47695e-19)
+(10.1236 -0.0711353 0)
+(10.1205 -0.072992 0)
+(10.1171 -0.0748989 2.94788e-19)
+(10.1134 -0.0768552 0)
+(10.1095 -0.0788604 -2.93811e-19)
+(10.1052 -0.0809135 0)
+(10.1006 -0.0830136 -2.9232e-19)
+(10.0956 -0.0851592 0)
+(10.0904 -0.0873493 1.35821e-21)
+(10.0847 -0.0895822 2.89005e-19)
+(10.0787 -0.0918565 -2.87587e-19)
+(10.0723 -0.09417 1.40799e-21)
+(10.0655 -0.0965213 0)
+(10.0583 -0.0989078 -2.82296e-19)
+(10.0507 -0.101328 0)
+(10.0426 -0.103778 0)
+(10.0341 -0.106256 1.46186e-21)
+(10.0251 -0.10876 2.74031e-19)
+(10.0157 -0.111287 2.69604e-19)
+(10.0058 -0.113833 0)
+(9.9954 -0.116396 -2.63003e-19)
+(9.9845 -0.118972 2.59347e-19)
+(9.97308 -0.121558 -2.55443e-19)
+(9.96115 -0.124151 0)
+(9.94867 -0.126748 -2.46867e-19)
+(9.93566 -0.129344 -2.43629e-19)
+(9.92209 -0.131937 2.37216e-19)
+(9.90796 -0.134521 0)
+(9.89325 -0.137093 4.54276e-19)
+(9.87796 -0.13965 4.42589e-19)
+(9.86208 -0.142188 0)
+(9.8456 -0.144703 0)
+(9.82851 -0.14719 0)
+(9.81081 -0.149646 -5.8505e-19)
+(9.79249 -0.152068 0)
+(9.77353 -0.15445 -5.39371e-19)
+(9.75394 -0.156789 0)
+(9.7337 -0.159081 -3.27175e-19)
+(9.71281 -0.161321 0)
+(9.69126 -0.163506 -1.44369e-19)
+(9.66904 -0.165631 4.06693e-19)
+(9.64615 -0.167693 0)
+(9.62257 -0.169688 1.14572e-19)
+(9.59831 -0.171612 -3.13668e-19)
+(9.57335 -0.173461 0)
+(9.54768 -0.175231 0)
+(9.52129 -0.17692 0)
+(9.49418 -0.178524 0)
+(9.46633 -0.180038 0)
+(9.43773 -0.181459 6.25089e-20)
+(9.40836 -0.182784 0)
+(9.3782 -0.184008 -1.63633e-20)
+(9.34725 -0.185129 2.1382e-20)
+(9.31548 -0.186142 0)
+(9.28287 -0.187046 -8.03761e-20)
+(9.24939 -0.187836 0)
+(9.21503 -0.18851 0)
+(9.17975 -0.189065 -1.77615e-19)
+(9.14353 -0.189497 0)
+(9.10634 -0.189803 0)
+(9.06814 -0.189981 0)
+(9.02889 -0.190026 0)
+(8.98856 -0.189938 -3.57599e-19)
+(8.9471 -0.189713 -3.96999e-19)
+(8.90448 -0.189349 6.57179e-22)
+(8.86064 -0.188845 -6.0632e-22)
+(8.81555 -0.188199 0)
+(8.76917 -0.187411 0)
+(8.72144 -0.186479 4.66426e-22)
+(8.67234 -0.185405 0)
+(8.62181 -0.184188 0)
+(8.56983 -0.182831 0)
+(8.51635 -0.181337 0)
+(8.46136 -0.179708 0)
+(8.40483 -0.177951 8.79008e-19)
+(8.34674 -0.176072 -9.27407e-19)
+(8.28709 -0.174076 0)
+(8.22588 -0.171975 -1.66206e-22)
+(8.16311 -0.169777 3.23249e-18)
+(8.0988 -0.167496 -2.25746e-18)
+(8.03296 -0.165142 -3.54191e-18)
+(7.96563 -0.162735 2.46602e-18)
+(7.89684 -0.160287 0)
+(7.82664 -0.157823 -2.67867e-18)
+(7.75505 -0.155356 0)
+(7.68214 -0.152916 2.89488e-18)
+(7.60793 -0.150519 0)
+(7.53247 -0.148201 -3.11409e-18)
+(7.45578 -0.145981 0)
+(7.37791 -0.143902 -3.3358e-18)
+(7.29885 -0.141986 -3.44733e-18)
+(7.2186 -0.140289 1.77922e-18)
+(7.13714 -0.138839 0)
+(7.05444 -0.137707 0)
+(6.97041 -0.13693 3.90038e-18)
+(6.88496 -0.136608 0)
+(6.79793 -0.136804 2.93455e-21)
+(6.70914 -0.137662 -4.24245e-18)
+(6.61833 -0.1393 0)
+(6.52517 -0.141962 4.47958e-18)
+(6.42922 -0.145883 0)
+(6.33003 -0.151614 0)
+(6.22651 -0.159624 4.82906e-18)
+(6.11942 -0.17173 -9.89226e-18)
+(6.00307 -0.188379 0)
+(5.89377 -0.217743 2.63599e-20)
+(5.74405 -0.252622 0)
+(10.0685 -0.025015 -3.15014e-20)
+(10.0704 -0.0252286 -1.23798e-19)
+(10.0724 -0.0254492 0)
+(10.0743 -0.0256753 0)
+(10.0762 -0.0259064 0)
+(10.0781 -0.0261422 0)
+(10.08 -0.0263824 -6.36898e-20)
+(10.0819 -0.0266269 0)
+(10.0837 -0.0268756 0)
+(10.0856 -0.0271284 -6.47851e-20)
+(10.0874 -0.0273853 0)
+(10.0893 -0.0276463 0)
+(10.0911 -0.0279115 0)
+(10.0929 -0.0281806 -6.63064e-20)
+(10.0947 -0.0284538 -1.33287e-19)
+(10.0964 -0.0287308 -5.94189e-23)
+(10.0982 -0.0290118 6.7346e-20)
+(10.0999 -0.0292966 0)
+(10.1016 -0.0295852 -6.8139e-20)
+(10.1033 -0.0298775 6.85055e-20)
+(10.105 -0.0301736 0)
+(10.1067 -0.0304733 0)
+(10.1083 -0.0307769 0)
+(10.1099 -0.0310842 -6.9972e-20)
+(10.1115 -0.0313957 0)
+(10.1131 -0.0317112 0)
+(10.1146 -0.0320314 0)
+(10.1162 -0.0323562 -7.13744e-20)
+(10.1177 -0.0326863 0)
+(10.1192 -0.033022 -1.44282e-19)
+(10.1206 -0.0333638 0)
+(10.1221 -0.0337122 1.4582e-19)
+(10.1235 -0.0340681 -1.46555e-19)
+(10.1248 -0.0344319 7.35732e-20)
+(10.1262 -0.0348046 0)
+(10.1275 -0.0351867 0)
+(10.1288 -0.0355794 0)
+(10.13 -0.0359832 7.50336e-20)
+(10.1312 -0.0363994 7.5397e-20)
+(10.1324 -0.0368287 7.57594e-20)
+(10.1335 -0.0372724 -1.52412e-19)
+(10.1345 -0.0377313 0)
+(10.1356 -0.0382067 0)
+(10.1365 -0.0386997 0)
+(10.1375 -0.0392114 7.77425e-20)
+(10.1383 -0.039743 -1.56e-19)
+(10.1391 -0.0402957 0)
+(10.1399 -0.0408707 0)
+(10.1405 -0.0414692 -1.57867e-19)
+(10.1411 -0.0420925 0)
+(10.1416 -0.0427417 -1.59205e-19)
+(10.142 -0.0434181 1.60108e-19)
+(10.1424 -0.0441228 -1.6076e-19)
+(10.1426 -0.0448572 -1.61399e-19)
+(10.1428 -0.0456223 0)
+(10.1428 -0.0464195 -1.62345e-19)
+(10.1427 -0.0472496 1.63226e-19)
+(10.1425 -0.048114 0)
+(10.1422 -0.0490136 1.64036e-19)
+(10.1417 -0.0499497 0)
+(10.1411 -0.0509229 1.65398e-19)
+(10.1403 -0.0519344 1.65882e-19)
+(10.1394 -0.052985 -1.65974e-19)
+(10.1383 -0.0540755 0)
+(10.1371 -0.0552067 0)
+(10.1356 -0.0563793 1.67523e-19)
+(10.134 -0.0575939 1.67436e-19)
+(10.1321 -0.0588511 -1.6771e-19)
+(10.1301 -0.0601512 0)
+(10.1278 -0.0614946 0)
+(10.1253 -0.0628816 -1.6873e-19)
+(10.1225 -0.0643123 -1.68832e-19)
+(10.1195 -0.0657867 -3.37282e-19)
+(10.1162 -0.0673049 -1.68383e-19)
+(10.1127 -0.0688666 0)
+(10.1088 -0.0704714 -3.37357e-19)
+(10.1047 -0.0721191 -1.6796e-19)
+(10.1002 -0.073809 1.68749e-19)
+(10.0954 -0.0755405 1.67337e-19)
+(10.0903 -0.0773126 1.68013e-19)
+(10.0848 -0.0791247 0)
+(10.0789 -0.0809755 4.98587e-19)
+(10.0727 -0.0828639 -3.3143e-19)
+(10.066 -0.0847885 4.94278e-19)
+(10.059 -0.086748 3.2819e-19)
+(10.0515 -0.0887407 0)
+(10.0437 -0.090765 3.24145e-19)
+(10.0353 -0.0928189 0)
+(10.0265 -0.0949004 -1.59009e-19)
+(10.0173 -0.0970072 1.58821e-19)
+(10.0075 -0.0991374 0)
+(9.99726 -0.101288 -6.18922e-19)
+(9.98649 -0.103458 -3.05285e-19)
+(9.97519 -0.105643 3.02682e-19)
+(9.96335 -0.107841 -5.95918e-19)
+(9.95096 -0.110049 2.94176e-19)
+(9.93799 -0.112265 0)
+(9.92445 -0.114485 2.84487e-19)
+(9.9103 -0.116706 -2.77966e-19)
+(9.89555 -0.118925 -2.73544e-19)
+(9.88017 -0.121138 0)
+(9.86416 -0.123343 -2.61275e-19)
+(9.84749 -0.125535 -2.54621e-19)
+(9.83016 -0.127712 0)
+(9.81214 -0.12987 0)
+(9.79344 -0.132005 0)
+(9.77402 -0.134113 2.24348e-19)
+(9.75389 -0.136192 0)
+(9.73301 -0.138237 2.069e-19)
+(9.71139 -0.140244 -1.96521e-19)
+(9.689 -0.142209 0)
+(9.66582 -0.144129 0)
+(9.64184 -0.145999 1.6707e-19)
+(9.61705 -0.147815 -9.61746e-22)
+(9.59141 -0.149574 0)
+(9.56493 -0.151271 -1.32646e-19)
+(9.53757 -0.152903 1.20269e-19)
+(9.50931 -0.154464 0)
+(9.48014 -0.155952 9.32937e-20)
+(9.45003 -0.157362 0)
+(9.41896 -0.158691 6.53284e-20)
+(9.3869 -0.159934 -5.06307e-20)
+(9.35382 -0.161086 -7.23624e-20)
+(9.3197 -0.162144 0)
+(9.28451 -0.163103 1.22392e-20)
+(9.24822 -0.16396 -3.77532e-20)
+(9.21079 -0.164709 0)
+(9.17219 -0.165348 0)
+(9.13241 -0.165873 0)
+(9.09139 -0.16628 0)
+(9.04911 -0.166566 0)
+(9.00554 -0.166728 -1.23234e-19)
+(8.96064 -0.166761 0)
+(8.9144 -0.166664 1.63875e-19)
+(8.86677 -0.166434 0)
+(8.81774 -0.166068 0)
+(8.76728 -0.165566 4.56044e-19)
+(8.71538 -0.164926 -5.00939e-19)
+(8.66202 -0.164149 1.09406e-18)
+(8.60719 -0.163235 0)
+(8.55089 -0.162185 -6.41392e-19)
+(8.49313 -0.161001 4.55837e-22)
+(8.43392 -0.159687 0)
+(8.37326 -0.158244 7.88578e-19)
+(8.3112 -0.15668 0)
+(8.24775 -0.154997 8.90435e-19)
+(8.18295 -0.153206 0)
+(8.11685 -0.15131 -9.94797e-19)
+(8.0495 -0.149321 1.04815e-18)
+(7.98094 -0.147245 0)
+(7.91124 -0.145097 1.15607e-18)
+(7.84044 -0.142884 -2.42166e-18)
+(7.76862 -0.140622 0)
+(7.69583 -0.13832 1.32155e-18)
+(7.62214 -0.136 -1.37745e-18)
+(7.5476 -0.133667 -1.43362e-18)
+(7.47227 -0.131349 0)
+(7.3962 -0.129052 -1.54676e-18)
+(7.31943 -0.126807 0)
+(7.24201 -0.124618 -1.66063e-18)
+(7.16395 -0.122526 0)
+(7.08528 -0.120533 1.77498e-18)
+(7.006 -0.118689 0)
+(6.92609 -0.116997 0)
+(6.84552 -0.115519 1.94682e-18)
+(6.76426 -0.114261 0)
+(6.6822 -0.1133 0)
+(6.59928 -0.11265 -4.23749e-18)
+(6.51531 -0.112414 0)
+(6.43015 -0.112627 -2.23286e-18)
+(6.34352 -0.113434 0)
+(6.25518 -0.114918 0)
+(6.16468 -0.117315 -7.22887e-18)
+(6.07156 -0.120815 0)
+(5.97526 -0.125955 0)
+(5.87449 -0.133128 -2.58041e-18)
+(5.76995 -0.144242 5.29194e-18)
+(5.65487 -0.159608 2.70471e-18)
+(5.5469 -0.188669 -8.25143e-18)
+(5.39241 -0.223917 0)
+(10.0723 -0.0293258 1.95045e-23)
+(10.0742 -0.0294916 3.51839e-20)
+(10.0762 -0.0296631 0)
+(10.0781 -0.0298383 0)
+(10.08 -0.0300161 0)
+(10.0818 -0.0301958 0)
+(10.0837 -0.0303776 7.24111e-20)
+(10.0856 -0.0305615 0)
+(10.0874 -0.0307476 3.66052e-20)
+(10.0893 -0.0309361 7.36762e-20)
+(10.0911 -0.0311271 -3.70279e-20)
+(10.0929 -0.031321 0)
+(10.0947 -0.0315179 0)
+(10.0964 -0.031718 0)
+(10.0981 -0.0319215 7.58028e-20)
+(10.0999 -0.0321285 -1.14322e-19)
+(10.1016 -0.0323391 -7.66587e-20)
+(10.1032 -0.0325534 0)
+(10.1049 -0.0327715 0)
+(10.1065 -0.0329933 0)
+(10.1081 -0.0332189 -7.8329e-20)
+(10.1097 -0.0334484 7.87603e-20)
+(10.1112 -0.0336817 0)
+(10.1127 -0.0339188 0)
+(10.1142 -0.03416 0)
+(10.1157 -0.0344053 0)
+(10.1171 -0.034655 0)
+(10.1185 -0.0349091 8.14179e-20)
+(10.1199 -0.035168 0)
+(10.1212 -0.035432 8.22927e-20)
+(10.1225 -0.0357015 0)
+(10.1237 -0.0359769 -8.31122e-20)
+(10.125 -0.0362587 8.35505e-20)
+(10.1261 -0.0365474 -6.01597e-23)
+(10.1273 -0.0368436 0)
+(10.1284 -0.0371479 0)
+(10.1294 -0.037461 0)
+(10.1305 -0.0377835 -1.71555e-19)
+(10.1314 -0.0381164 -8.62504e-20)
+(10.1323 -0.0384603 -8.66899e-20)
+(10.1332 -0.0388161 0)
+(10.134 -0.0391847 0)
+(10.1347 -0.039567 0)
+(10.1354 -0.0399638 0)
+(10.136 -0.0403763 8.19408e-23)
+(10.1365 -0.0408053 0)
+(10.137 -0.0412518 0)
+(10.1374 -0.0417168 -9.00616e-20)
+(10.1377 -0.0422015 1.81146e-19)
+(10.1379 -0.0427067 -9.08916e-20)
+(10.138 -0.0432335 1.82801e-19)
+(10.138 -0.043783 0)
+(10.1379 -0.0443562 0)
+(10.1377 -0.0449541 0)
+(10.1374 -0.0455777 9.28667e-20)
+(10.137 -0.046228 1.86719e-19)
+(10.1365 -0.0469061 0)
+(10.1358 -0.0476127 0)
+(10.1349 -0.0483489 -2.83153e-19)
+(10.134 -0.0491156 0)
+(10.1328 -0.0499135 0)
+(10.1315 -0.0507436 1.90479e-19)
+(10.13 -0.0516065 1.91353e-19)
+(10.1284 -0.052503 0)
+(10.1265 -0.0534338 0)
+(10.1244 -0.0543994 -1.92542e-19)
+(10.1222 -0.0554005 -1.93303e-19)
+(10.1197 -0.0564375 1.93685e-19)
+(10.1169 -0.0575107 0)
+(10.1139 -0.0586206 0)
+(10.1107 -0.0597673 0)
+(10.1072 -0.0609511 1.94309e-19)
+(10.1034 -0.062172 3.99152e-22)
+(10.0993 -0.06343 4.08082e-22)
+(10.0949 -0.064725 0)
+(10.0902 -0.0660567 0)
+(10.0852 -0.0674248 1.94547e-19)
+(10.0798 -0.0688289 1.94288e-19)
+(10.0741 -0.0702685 -1.93944e-19)
+(10.068 -0.0717428 1.9351e-19)
+(10.0615 -0.0732512 0)
+(10.0545 -0.0747926 -3.8424e-19)
+(10.0472 -0.0763662 0)
+(10.0394 -0.0779709 -1.90785e-19)
+(10.0312 -0.0796054 0)
+(10.0225 -0.0812684 -1.88271e-19)
+(10.0134 -0.0829585 0)
+(10.0037 -0.0846739 0)
+(9.99351 -0.0864131 3.69088e-19)
+(9.98279 -0.0881742 1.83204e-19)
+(9.97152 -0.089955 0)
+(9.95968 -0.0917536 3.5917e-19)
+(9.94725 -0.0935676 5.32132e-19)
+(9.93422 -0.0953948 0)
+(9.92056 -0.0972327 3.45983e-19)
+(9.90625 -0.0990789 0)
+(9.89129 -0.100931 1.67245e-19)
+(9.87564 -0.102785 -1.64361e-19)
+(9.85929 -0.10464 3.23606e-19)
+(9.84221 -0.106492 0)
+(9.8244 -0.108338 0)
+(9.80582 -0.110174 0)
+(9.78645 -0.111998 0)
+(9.76628 -0.113806 0)
+(9.74527 -0.115594 0)
+(9.72341 -0.11736 -1.34213e-19)
+(9.70067 -0.1191 0)
+(9.67704 -0.12081 0)
+(9.65248 -0.122487 -2.38663e-19)
+(9.62697 -0.124125 4.56524e-19)
+(9.60049 -0.125723 0)
+(9.573 -0.127275 -2.04626e-19)
+(9.54449 -0.128778 0)
+(9.51493 -0.130227 -8.55569e-22)
+(9.48428 -0.131617 -1.66102e-19)
+(9.45252 -0.132947 -1.52234e-19)
+(9.41963 -0.134209 0)
+(9.38558 -0.135402 0)
+(9.35033 -0.13652 -2.15723e-19)
+(9.31387 -0.137561 -9.15018e-20)
+(9.27616 -0.138519 -7.57092e-20)
+(9.23718 -0.139391 5.86386e-20)
+(9.1969 -0.140172 0)
+(9.1553 -0.14086 -2.22289e-20)
+(9.11235 -0.141449 -6.2707e-22)
+(9.06804 -0.141937 1.50311e-20)
+(9.02234 -0.14232 0)
+(8.97524 -0.142597 0)
+(8.92673 -0.142762 0)
+(8.8768 -0.142818 0)
+(8.82545 -0.142758 -1.19562e-19)
+(8.77267 -0.142584 1.41455e-19)
+(8.71847 -0.142292 0)
+(8.66286 -0.141884 -1.87666e-19)
+(8.60585 -0.141355 0)
+(8.54746 -0.140711 0)
+(8.48771 -0.139948 0)
+(8.42665 -0.139072 -2.85993e-19)
+(8.36429 -0.138082 -6.22689e-19)
+(8.30069 -0.136983 3.37575e-19)
+(8.23588 -0.135776 7.27574e-19)
+(8.16993 -0.134467 -7.81154e-19)
+(8.10287 -0.133059 0)
+(8.03477 -0.131558 -8.90399e-19)
+(7.96568 -0.129968 0)
+(7.89567 -0.128295 -5.01029e-19)
+(7.8248 -0.126547 0)
+(7.75313 -0.124729 0)
+(7.68072 -0.122852 -1.17364e-18)
+(7.60764 -0.120919 0)
+(7.53395 -0.118946 0)
+(7.45971 -0.116932 2.69707e-18)
+(7.38497 -0.1149 0)
+(7.3098 -0.112847 0)
+(7.23424 -0.1108 3.05139e-18)
+(7.15834 -0.108752 1.5851e-18)
+(7.08214 -0.106741 0)
+(7.00567 -0.104751 1.70384e-18)
+(6.92895 -0.10283 0)
+(6.85201 -0.100957 1.82247e-18)
+(6.77484 -0.0991917 0)
+(6.69744 -0.0975064 -3.88131e-18)
+(6.6198 -0.0959731 -1.99968e-18)
+(6.54187 -0.0945624 0)
+(6.4636 -0.0933596 0)
+(6.38493 -0.0923317 0)
+(6.30573 -0.0915831 2.23462e-18)
+(6.2259 -0.0910825 0)
+(6.14523 -0.0909609 2.35181e-18)
+(6.06357 -0.0912042 -2.40971e-18)
+(5.98058 -0.0919799 0)
+(5.89601 -0.0933168 -2.52831e-18)
+(5.80934 -0.0954641 2.58804e-18)
+(5.72011 -0.0985432 0)
+(5.62762 -0.103084 0)
+(5.53042 -0.109379 -2.76953e-18)
+(5.4292 -0.119378 0)
+(5.31589 -0.133212 -2.89238e-18)
+(5.20969 -0.16132 2.94494e-18)
+(5.04933 -0.196217 0)
+(10.0765 -0.0329817 4.07713e-20)
+(10.0783 -0.0330978 4.01071e-20)
+(10.0802 -0.0332224 -4.03416e-20)
+(10.082 -0.0333514 0)
+(10.0839 -0.0334809 0)
+(10.0857 -0.0336092 0)
+(10.0875 -0.0337365 0)
+(10.0893 -0.0338635 0)
+(10.091 -0.0339907 -4.18855e-20)
+(10.0928 -0.0341187 0)
+(10.0944 -0.0342481 1.72776e-23)
+(10.0961 -0.0343794 0)
+(10.0978 -0.0345132 0)
+(10.0994 -0.0346497 0)
+(10.1009 -0.0347891 0)
+(10.1025 -0.0349316 1.97298e-23)
+(10.104 -0.0350774 0)
+(10.1054 -0.0352264 4.42199e-20)
+(10.1069 -0.0353786 0)
+(10.1083 -0.0355342 0)
+(10.1096 -0.0356931 9.00774e-20)
+(10.1109 -0.0358554 -9.06123e-20)
+(10.1122 -0.036021 -4.55515e-20)
+(10.1134 -0.0361899 0)
+(10.1146 -0.0363623 4.60891e-20)
+(10.1158 -0.0365383 4.6359e-20)
+(10.1169 -0.0367178 -4.66295e-20)
+(10.1179 -0.0369013 4.69007e-20)
+(10.119 -0.0370887 0)
+(10.1199 -0.0372804 -4.7445e-20)
+(10.1208 -0.0374767 0)
+(10.1217 -0.0376779 4.80439e-20)
+(10.1225 -0.0378844 -9.6584e-20)
+(10.1233 -0.0380967 -9.71335e-20)
+(10.124 -0.0383151 0)
+(10.1246 -0.0385402 0)
+(10.1252 -0.0387725 0)
+(10.1257 -0.0390127 5.90655e-23)
+(10.1262 -0.0392614 0)
+(10.1266 -0.0395191 -1.00375e-19)
+(10.1269 -0.0397867 0)
+(10.1271 -0.0400648 1.01469e-19)
+(10.1273 -0.0403541 -1.02014e-19)
+(10.1273 -0.0406555 0)
+(10.1273 -0.0409697 1.03168e-19)
+(10.1272 -0.0412975 0)
+(10.1271 -0.0416398 0)
+(10.1268 -0.0419973 1.04775e-19)
+(10.1264 -0.042371 0)
+(10.1259 -0.0427617 1.05824e-19)
+(10.1253 -0.0431702 0)
+(10.1245 -0.0435974 1.06759e-19)
+(10.1237 -0.0440442 0)
+(10.1227 -0.0445113 0)
+(10.1215 -0.0449998 -9.84838e-23)
+(10.1203 -0.0455103 0)
+(10.1188 -0.0460437 0)
+(10.1172 -0.0466007 0)
+(10.1155 -0.0471822 1.10136e-19)
+(10.1135 -0.0477889 0)
+(10.1114 -0.0484215 0)
+(10.1091 -0.0490806 -2.22679e-19)
+(10.1065 -0.0497668 -1.11576e-19)
+(10.1038 -0.0504808 0)
+(10.1008 -0.0512231 0)
+(10.0976 -0.0519942 2.25327e-19)
+(10.0941 -0.0527945 0)
+(10.0904 -0.0536246 -1.13031e-19)
+(10.0864 -0.0544845 0)
+(10.0821 -0.0553747 0)
+(10.0775 -0.0562953 0)
+(10.0725 -0.0572464 -1.13997e-19)
+(10.0673 -0.0582281 2.27821e-19)
+(10.0617 -0.0592403 3.41671e-19)
+(10.0557 -0.0602828 0)
+(10.0494 -0.0613555 0)
+(10.0427 -0.0624581 0)
+(10.0355 -0.0635902 1.13463e-19)
+(10.028 -0.0647511 0)
+(10.02 -0.0659404 -2.26011e-19)
+(10.0115 -0.0671572 0)
+(10.0025 -0.0684007 4.49674e-19)
+(9.99305 -0.0696701 0)
+(9.98307 -0.0709643 0)
+(9.97255 -0.0722822 -2.21638e-19)
+(9.96146 -0.0736225 2.20776e-19)
+(9.94979 -0.0749839 -2.1894e-19)
+(9.93752 -0.0763649 0)
+(9.92461 -0.0777639 -2.16054e-19)
+(9.91106 -0.0791793 0)
+(9.89684 -0.080609 0)
+(9.88191 -0.082051 0)
+(9.86627 -0.0835031 -2.07418e-19)
+(9.84988 -0.0849633 0)
+(9.83272 -0.086429 0)
+(9.81477 -0.0878982 0)
+(9.79599 -0.0893681 -1.95756e-19)
+(9.77637 -0.0908366 4.41145e-22)
+(9.75588 -0.0923005 0)
+(9.73448 -0.0937566 0)
+(9.71216 -0.0952024 0)
+(9.68889 -0.0966349 -1.75912e-19)
+(9.66463 -0.098051 1.71332e-19)
+(9.63937 -0.0994475 0)
+(9.61307 -0.100821 0)
+(9.5857 -0.102169 3.12616e-19)
+(9.55725 -0.103487 0)
+(9.52768 -0.104772 0)
+(9.49698 -0.106022 4.16374e-19)
+(9.4651 -0.107231 -2.65047e-19)
+(9.43204 -0.108397 -1.25443e-19)
+(9.39775 -0.109519 3.56249e-19)
+(9.36224 -0.110589 0)
+(9.32546 -0.111607 -2.08209e-19)
+(9.2874 -0.112565 1.92571e-19)
+(9.24804 -0.113465 1.76352e-19)
+(9.20738 -0.114298 0)
+(9.16538 -0.115068 0)
+(9.12205 -0.115765 6.24253e-20)
+(9.07737 -0.116392 1.58124e-19)
+(9.03133 -0.116941 0)
+(8.98394 -0.117415 -3.30824e-20)
+(8.93518 -0.117804 2.2941e-20)
+(8.88507 -0.118115 2.55603e-20)
+(8.83361 -0.118337 -4.09623e-21)
+(8.78081 -0.118476 0)
+(8.72668 -0.118523 0)
+(8.67125 -0.118485 0)
+(8.61452 -0.118352 0)
+(8.55653 -0.118135 0)
+(8.49731 -0.117821 1.36397e-19)
+(8.43688 -0.117424 0)
+(8.37529 -0.116929 0)
+(8.31258 -0.116351 0)
+(8.24878 -0.115677 0)
+(8.18395 -0.11492 2.67839e-19)
+(8.11812 -0.114073 0)
+(8.05136 -0.113146 3.2331e-19)
+(7.9837 -0.112134 0)
+(7.91522 -0.111047 -3.80563e-19)
+(7.84595 -0.10988 -4.0978e-19)
+(7.77596 -0.108645 0)
+(7.70531 -0.107337 0)
+(7.63404 -0.105966 0)
+(7.56223 -0.104533 0)
+(7.48992 -0.103043 -8.29707e-23)
+(7.41717 -0.101503 0)
+(7.34404 -0.0999146 0)
+(7.27059 -0.0982913 6.52679e-19)
+(7.19686 -0.0966275 0)
+(7.12291 -0.0949456 0)
+(7.04878 -0.093235 -1.49332e-18)
+(6.97453 -0.0915258 0)
+(6.90019 -0.0898005 -8.09243e-19)
+(6.82581 -0.0880991 -1.68175e-18)
+(6.7514 -0.0863935 0)
+(6.677 -0.0847392 0)
+(6.60261 -0.0830954 0)
+(6.52825 -0.0815327 0)
+(6.45392 -0.0799979 0)
+(6.3796 -0.0785795 0)
+(6.30527 -0.0772104 2.11684e-18)
+(6.2309 -0.0760005 2.17831e-18)
+(6.15644 -0.0748701 0)
+(6.08182 -0.0739477 0)
+(6.00695 -0.0731412 -1.18023e-18)
+(5.93168 -0.0726028 -2.42143e-18)
+(5.8559 -0.072238 0)
+(5.77938 -0.0722265 -5.16701e-23)
+(5.70195 -0.0724842 -2.60291e-18)
+(5.62323 -0.0732236 0)
+(5.54297 -0.0743956 2.72542e-18)
+(5.46058 -0.0762821 0)
+(5.37557 -0.0789204 0)
+(5.28718 -0.082842 0)
+(5.19374 -0.0882228 0)
+(5.09611 -0.0969854 0)
+(4.9845 -0.109095 0)
+(4.88036 -0.135586 0)
+(4.7127 -0.169406 0)
+(10.0802 -0.0362247 -2.35143e-20)
+(10.0819 -0.0362792 -2.31876e-20)
+(10.0836 -0.0363429 4.671e-20)
+(10.0852 -0.0364082 0)
+(10.0868 -0.036469 0)
+(10.0883 -0.0365244 0)
+(10.0898 -0.0365755 -2.39955e-20)
+(10.0913 -0.0366228 -4.8319e-20)
+(10.0927 -0.0366667 0)
+(10.0941 -0.0367081 4.89779e-20)
+(10.0954 -0.0367485 1.3317e-23)
+(10.0967 -0.0367894 0)
+(10.0979 -0.0368318 0)
+(10.0991 -0.0368768 0)
+(10.1002 -0.0369249 5.06391e-20)
+(10.1012 -0.0369767 5.09875e-20)
+(10.1022 -0.0370326 0)
+(10.1032 -0.0370926 -5.16597e-20)
+(10.1041 -0.037157 -5.19824e-20)
+(10.1049 -0.0372258 -5.23204e-20)
+(10.1057 -0.037299 5.26591e-20)
+(10.1064 -0.0373764 -5.29987e-20)
+(10.107 -0.0374581 1.57171e-23)
+(10.1076 -0.0375441 5.36802e-20)
+(10.1081 -0.0376342 -5.40384e-20)
+(10.1086 -0.0377285 -1.656e-23)
+(10.1089 -0.0378269 5.47249e-20)
+(10.1093 -0.0379297 -5.50691e-20)
+(10.1095 -0.0380367 5.53965e-20)
+(10.1097 -0.0381483 1.77817e-23)
+(10.1098 -0.0382644 -5.60868e-20)
+(10.1098 -0.0383855 5.64509e-20)
+(10.1097 -0.0385116 0)
+(10.1096 -0.0386431 0)
+(10.1094 -0.0387803 5.74698e-20)
+(10.1091 -0.0389236 0)
+(10.1087 -0.0390733 0)
+(10.1082 -0.03923 1.17052e-19)
+(10.1076 -0.039394 -5.88484e-20)
+(10.1069 -0.0395658 1.18428e-19)
+(10.1061 -0.039746 0)
+(10.1052 -0.039935 -1.19794e-19)
+(10.1042 -0.0401333 6.0261e-20)
+(10.1031 -0.0403416 0)
+(10.1019 -0.0405605 0)
+(10.1005 -0.0407905 0)
+(10.099 -0.0410322 0)
+(10.0974 -0.0412863 6.18635e-20)
+(10.0956 -0.0415534 -6.2184e-20)
+(10.0937 -0.0418341 0)
+(10.0917 -0.0421291 -6.28115e-20)
+(10.0894 -0.0424391 -1.26306e-19)
+(10.087 -0.0427645 -1.26836e-19)
+(10.0844 -0.0431062 0)
+(10.0816 -0.0434647 -2.56074e-19)
+(10.0787 -0.0438406 1.28557e-19)
+(10.0755 -0.0442346 1.29099e-19)
+(10.0721 -0.0446472 0)
+(10.0685 -0.045079 1.3013e-19)
+(10.0646 -0.0455305 0)
+(10.0605 -0.0460022 0)
+(10.0562 -0.0464946 0)
+(10.0515 -0.0470082 1.32033e-19)
+(10.0466 -0.0475434 0)
+(10.0414 -0.0481005 0)
+(10.0359 -0.0486798 0)
+(10.03 -0.0492818 1.3329e-19)
+(10.0238 -0.0499066 1.33669e-19)
+(10.0173 -0.0505544 0)
+(10.0104 -0.0512252 -1.33949e-19)
+(10.003 -0.0519193 0)
+(9.99532 -0.0526366 -1.34317e-19)
+(9.98718 -0.053377 -1.3423e-19)
+(9.97859 -0.0541403 -2.686e-19)
+(9.96954 -0.0549263 0)
+(9.96002 -0.0557348 -1.34069e-19)
+(9.94999 -0.0565655 0)
+(9.93944 -0.0574178 -1.33834e-19)
+(9.92835 -0.0582911 -1.33392e-19)
+(9.9167 -0.0591848 2.66398e-19)
+(9.90446 -0.0600982 -1.32617e-19)
+(9.89161 -0.0610305 -2.64577e-19)
+(9.87814 -0.0619807 0)
+(9.86401 -0.0629479 0)
+(9.8492 -0.063931 2.60705e-19)
+(9.8337 -0.0649288 0)
+(9.81747 -0.0659401 1.28822e-19)
+(9.80049 -0.0669634 -1.27476e-19)
+(9.78273 -0.0679974 0)
+(9.76418 -0.069041 0)
+(9.7448 -0.0700915 1.23927e-19)
+(9.72457 -0.0711477 0)
+(9.70347 -0.0722072 0)
+(9.68147 -0.0732687 1.19442e-19)
+(9.65854 -0.0743297 0)
+(9.63467 -0.0753888 0)
+(9.60982 -0.076443 -1.13934e-19)
+(9.58397 -0.0774916 4.47797e-19)
+(9.55711 -0.0785307 0)
+(9.5292 -0.0795582 2.1464e-19)
+(9.50022 -0.0805724 0)
+(9.47016 -0.0815708 2.04876e-19)
+(9.43899 -0.0825509 -3.62525e-22)
+(9.40669 -0.0835101 1.93281e-19)
+(9.37325 -0.084446 1.8724e-19)
+(9.33865 -0.0853562 -3.49974e-22)
+(9.30286 -0.0862383 0)
+(9.26589 -0.0870898 0)
+(9.22772 -0.0879084 -3.32802e-22)
+(9.18833 -0.088691 0)
+(9.14772 -0.0894364 2.89844e-19)
+(9.10589 -0.0901451 -1.36921e-19)
+(9.06282 -0.0908078 1.28144e-19)
+(9.01852 -0.0914285 -1.19361e-19)
+(8.97298 -0.0919984 0)
+(8.9262 -0.0925229 0)
+(8.8782 -0.092992 -9.11085e-20)
+(8.82898 -0.0934124 0)
+(8.77855 -0.0937732 1.41602e-19)
+(8.72691 -0.0940834 -6.02196e-20)
+(8.67409 -0.0943289 4.89876e-20)
+(8.62011 -0.0945215 2.0623e-22)
+(8.56497 -0.0946464 -1.92458e-22)
+(8.5087 -0.0947158 -1.41108e-20)
+(8.45133 -0.0947155 1.8765e-21)
+(8.39288 -0.0946576 0)
+(8.33338 -0.0945278 0)
+(8.27286 -0.0943397 -3.66049e-20)
+(8.21135 -0.0940786 0)
+(8.1489 -0.0937599 -6.36783e-20)
+(8.08553 -0.0933678 7.76183e-20)
+(8.02128 -0.0929185 0)
+(7.95621 -0.0923955 0)
+(7.89034 -0.0918154 1.20962e-19)
+(7.82373 -0.0911622 0)
+(7.75642 -0.0904534 -1.51e-19)
+(7.68847 -0.0896756 0)
+(7.6199 -0.0888443 -1.81928e-19)
+(7.55078 -0.0879478 1.97666e-19)
+(7.48115 -0.0870003 0)
+(7.41106 -0.0859931 4.59414e-19)
+(7.34056 -0.0849372 0)
+(7.2697 -0.0838282 0)
+(7.19853 -0.0826754 -5.57367e-19)
+(7.1271 -0.0814787 0)
+(7.05547 -0.080242 -6.24043e-19)
+(6.98368 -0.0789733 6.5729e-19)
+(6.91178 -0.0776692 0)
+(6.83982 -0.0763464 -7.2481e-19)
+(6.76784 -0.0749919 7.58209e-19)
+(6.69588 -0.0736348 -7.91987e-19)
+(6.62397 -0.0722539 0)
+(6.55217 -0.0708903 0)
+(6.48049 -0.0695084 8.93456e-19)
+(6.40897 -0.0681642 0)
+(6.33762 -0.0668061 0)
+(6.26644 -0.0655087 0)
+(6.19545 -0.064205 0)
+(6.12464 -0.0629908 0)
+(6.054 -0.0617796 0)
+(5.9835 -0.0606904 0)
+(5.91312 -0.0596178 0)
+(5.84281 -0.058705 0)
+(5.77249 -0.057827 0)
+(5.70207 -0.0571507 -1.25552e-18)
+(5.63147 -0.0565372 1.28785e-18)
+(5.56054 -0.0561778 -1.31979e-18)
+(5.48914 -0.0559226 -1.35182e-18)
+(5.41703 -0.055993 -2.76874e-18)
+(5.34402 -0.0562437 2.83335e-18)
+(5.26974 -0.0569238 0)
+(5.19387 -0.0579201 0)
+(5.11585 -0.0595354 0)
+(5.03508 -0.0617271 0)
+(4.95084 -0.0650154 0)
+(4.86118 -0.0694716 0)
+(4.76721 -0.0769033 0)
+(4.65723 -0.0871703 0)
+(4.55554 -0.111331 0)
+(4.37912 -0.14337 0)
+(10.0808 -0.0382194 2.77453e-20)
+(10.0818 -0.0382267 4.82167e-24)
+(10.0828 -0.0382531 0)
+(10.0837 -0.0382691 0)
+(10.0845 -0.0382637 2.80774e-20)
+(10.0852 -0.0382453 0)
+(10.0859 -0.0382229 3.82575e-24)
+(10.0865 -0.0381995 5.74156e-20)
+(10.0871 -0.038175 0)
+(10.0875 -0.0381501 -5.82548e-20)
+(10.0878 -0.0381259 2.93429e-20)
+(10.0881 -0.038103 -2.95419e-20)
+(10.0883 -0.038082 2.97519e-20)
+(10.0883 -0.0380631 0)
+(10.0883 -0.0380465 -6.03592e-20)
+(10.0882 -0.0380326 0)
+(10.088 -0.0380216 -3.05936e-20)
+(10.0877 -0.0380136 0)
+(10.0873 -0.0380085 6.2048e-20)
+(10.0869 -0.0380066 6.24707e-20)
+(10.0863 -0.0380078 -6.28935e-20)
+(10.0856 -0.0380121 6.33164e-20)
+(10.0848 -0.0380194 6.37392e-20)
+(10.0839 -0.0380298 -6.4162e-20)
+(10.0829 -0.0380432 0)
+(10.0818 -0.0380595 -3.25139e-20)
+(10.0806 -0.0380788 0)
+(10.0792 -0.0381011 0)
+(10.0778 -0.0381264 -3.31464e-20)
+(10.0762 -0.0381548 2.22927e-23)
+(10.0745 -0.0381864 6.71098e-20)
+(10.0727 -0.0382212 0)
+(10.0708 -0.0382596 0)
+(10.0687 -0.0383014 0)
+(10.0665 -0.0383472 -2.38559e-23)
+(10.0641 -0.0383971 6.91598e-20)
+(10.0616 -0.0384515 0)
+(10.059 -0.0385105 -6.99752e-20)
+(10.0562 -0.0385746 7.04043e-20)
+(10.0532 -0.0386441 0)
+(10.0501 -0.0387193 0)
+(10.0468 -0.0388007 0)
+(10.0433 -0.0388886 2.72393e-23)
+(10.0397 -0.0389834 0)
+(10.0359 -0.0390857 0)
+(10.0319 -0.0391958 0)
+(10.0276 -0.0393141 0)
+(10.0232 -0.0394413 -7.38733e-20)
+(10.0186 -0.0395776 7.42332e-20)
+(10.0137 -0.0397237 0)
+(10.0086 -0.0398799 3.27707e-23)
+(10.0033 -0.0400467 0)
+(9.9977 -0.0402246 1.51201e-19)
+(9.99186 -0.0404141 0)
+(9.98575 -0.0406156 1.52465e-19)
+(9.97935 -0.0408295 -1.53067e-19)
+(9.97266 -0.0410563 -1.53647e-19)
+(9.96568 -0.0412964 0)
+(9.95837 -0.0415501 -1.54734e-19)
+(9.95074 -0.0418179 0)
+(9.94277 -0.0421 0)
+(9.93444 -0.0423969 0)
+(9.92575 -0.0427087 0)
+(9.91668 -0.0430358 0)
+(9.90721 -0.0433784 0)
+(9.89734 -0.0437367 0)
+(9.88703 -0.0441108 -7.89801e-20)
+(9.87629 -0.044501 -7.89889e-20)
+(9.86508 -0.0449073 -7.9075e-20)
+(9.85341 -0.0453298 2.37519e-19)
+(9.84124 -0.0457684 -7.9174e-20)
+(9.82856 -0.0462232 0)
+(9.81536 -0.0466939 1.58448e-19)
+(9.80161 -0.0471806 1.58356e-19)
+(9.7873 -0.0476827 0)
+(9.77241 -0.0482003 1.57983e-19)
+(9.75692 -0.0487331 0)
+(9.74081 -0.0492806 0)
+(9.72406 -0.0498423 1.56908e-19)
+(9.70666 -0.0504178 -1.5627e-19)
+(9.68857 -0.0510066 1.30216e-22)
+(9.66979 -0.0516078 0)
+(9.6503 -0.052221 0)
+(9.63007 -0.0528452 -1.53384e-19)
+(9.60908 -0.0534799 0)
+(9.58732 -0.054124 -1.51387e-19)
+(9.56476 -0.0547766 3.00613e-19)
+(9.5414 -0.0554368 1.49121e-19)
+(9.5172 -0.0561033 -1.47619e-19)
+(9.49215 -0.0567767 0)
+(9.46623 -0.0574531 -1.44691e-19)
+(9.43943 -0.0581332 1.42839e-19)
+(9.41172 -0.0588135 0)
+(9.38309 -0.0594955 -1.39181e-19)
+(9.35353 -0.0601748 0)
+(9.32302 -0.0608533 1.34724e-19)
+(9.29154 -0.061526 1.36657e-22)
+(9.25909 -0.0621955 -3.89842e-19)
+(9.22564 -0.0628565 0)
+(9.19119 -0.0635081 -1.24682e-19)
+(9.15572 -0.06415 0)
+(9.11923 -0.0647803 0)
+(9.08171 -0.0653972 -3.45631e-19)
+(9.04314 -0.0659989 -2.2368e-19)
+(9.00352 -0.0665837 -2.16533e-19)
+(8.96286 -0.06715 -1.04649e-19)
+(8.92113 -0.0676963 0)
+(8.87835 -0.0682205 0)
+(8.8345 -0.0687215 -1.84642e-19)
+(8.7896 -0.0691968 0)
+(8.74364 -0.0696443 -8.34335e-20)
+(8.69662 -0.0700725 0)
+(8.64855 -0.070461 -1.47307e-19)
+(8.59944 -0.0708269 2.05566e-19)
+(8.54929 -0.0711488 6.31943e-20)
+(8.49811 -0.0714471 0)
+(8.44592 -0.0716965 1.04403e-19)
+(8.39273 -0.0719208 4.63338e-20)
+(8.33855 -0.0720924 -8.08633e-20)
+(8.28341 -0.07224 0)
+(8.22732 -0.072329 -1.11807e-19)
+(8.17031 -0.0723933 8.58903e-20)
+(8.11239 -0.0723971 -2.97006e-20)
+(8.05358 -0.0723734 1.60771e-20)
+(7.99392 -0.0722877 -4.21993e-21)
+(7.93343 -0.0721726 0)
+(7.87214 -0.0719935 -2.67189e-20)
+(7.81008 -0.0717847 4.15655e-20)
+(7.74727 -0.0715102 0)
+(7.68376 -0.0712075 7.21853e-20)
+(7.61958 -0.0708382 -8.79131e-20)
+(7.55477 -0.0704413 1.03879e-19)
+(7.48936 -0.0699776 0)
+(7.42341 -0.0694871 -5.7695e-23)
+(7.35694 -0.0689311 0)
+(7.28999 -0.0683474 -1.7034e-19)
+(7.22262 -0.0677022 0)
+(7.15486 -0.0670285 2.04861e-19)
+(7.08675 -0.0662974 -4.44689e-19)
+(7.01833 -0.0655385 0)
+(6.94966 -0.0647295 0)
+(6.88077 -0.0638939 0)
+(6.81174 -0.0630163 -2.9393e-19)
+(6.74258 -0.0621114 6.2461e-19)
+(6.67336 -0.0611739 0)
+(6.60411 -0.06021 0)
+(6.53489 -0.0592252 -7.34898e-19)
+(6.46573 -0.0582113 0)
+(6.39665 -0.0571919 0)
+(6.32772 -0.0561437 -4.2313e-19)
+(6.25895 -0.055108 8.82895e-19)
+(6.19039 -0.0540412 4.59673e-19)
+(6.12205 -0.0530057 -4.78185e-19)
+(6.05393 -0.0519398 4.9657e-19)
+(5.98608 -0.0509277 0)
+(5.9185 -0.0498838 5.33271e-19)
+(5.8512 -0.0489201 0)
+(5.78418 -0.0479197 0)
+(5.71743 -0.0470282 0)
+(5.65093 -0.0461005 -6.05704e-19)
+(5.58464 -0.0453132 0)
+(5.51854 -0.044493 -6.4138e-19)
+(5.45254 -0.0438512 0)
+(5.38659 -0.043184 0)
+(5.32057 -0.0427313 1.38955e-18)
+(5.2544 -0.0422665 0)
+(5.18791 -0.0420639 2.91957e-18)
+(5.12096 -0.041877 2.98998e-18)
+(5.0533 -0.0420105 0)
+(4.9847 -0.0422185 0)
+(4.91483 -0.0428272 0)
+(4.84329 -0.0436185 0)
+(4.7696 -0.0449564 0)
+(4.69299 -0.0466891 0)
+(4.61291 -0.0493493 0)
+(4.52697 -0.0528932 1.7981e-18)
+(4.43674 -0.0589236 -1.84296e-18)
+(4.32847 -0.0673129 1.8892e-18)
+(4.22953 -0.0884458 0)
+(4.04253 -0.118037 0)
+(10.067 -0.0395184 -1.67529e-20)
+(10.0661 -0.0393441 3.33054e-20)
+(10.0651 -0.0392394 1.67726e-20)
+(10.064 -0.0391292 0)
+(10.0628 -0.0389785 -1.7032e-20)
+(10.0614 -0.0387947 0)
+(10.0599 -0.0385911 3.45671e-20)
+(10.0583 -0.0383761 1.74114e-20)
+(10.0565 -0.0381554 0)
+(10.0546 -0.0379348 0)
+(10.0525 -0.0377187 3.55715e-20)
+(10.0503 -0.0375097 3.58209e-20)
+(10.0479 -0.0373091 -7.21455e-20)
+(10.0454 -0.0371175 0)
+(10.0427 -0.0369349 3.65708e-20)
+(10.0399 -0.0367613 0)
+(10.0368 -0.0365962 -5.57363e-24)
+(10.0336 -0.0364393 0)
+(10.0303 -0.0362899 0)
+(10.0267 -0.0361478 3.77938e-20)
+(10.023 -0.0360124 0)
+(10.0191 -0.0358834 3.8277e-20)
+(10.015 -0.0357604 -3.85172e-20)
+(10.0108 -0.0356431 0)
+(10.0063 -0.0355313 3.89947e-20)
+(10.0017 -0.0354247 2.5794e-24)
+(9.99684 -0.0353232 -3.94678e-20)
+(9.99182 -0.0352266 3.97026e-20)
+(9.98659 -0.0351348 -3.99346e-20)
+(9.98117 -0.0350477 1.20503e-19)
+(9.97555 -0.0349652 0)
+(9.96972 -0.0348872 0)
+(9.96368 -0.0348137 -4.08563e-20)
+(9.95743 -0.0347446 0)
+(9.95097 -0.0346801 -8.26159e-20)
+(9.94429 -0.03462 -8.30621e-20)
+(9.93739 -0.0345646 0)
+(9.93026 -0.0345137 8.39429e-20)
+(9.9229 -0.0344675 0)
+(9.91531 -0.0344259 0)
+(9.90748 -0.0343892 0)
+(9.89941 -0.0343575 0)
+(9.89109 -0.0343308 8.60664e-20)
+(9.88251 -0.0343093 0)
+(9.87368 -0.0342932 0)
+(9.86458 -0.0342827 4.36316e-20)
+(9.85521 -0.034278 0)
+(9.84557 -0.0342793 0)
+(9.83564 -0.0342869 4.42035e-20)
+(9.82542 -0.034301 0)
+(9.81491 -0.0343218 8.91449e-20)
+(9.80409 -0.0343498 0)
+(9.79296 -0.0343851 -4.49064e-20)
+(9.78152 -0.034428 0)
+(9.76974 -0.0344789 0)
+(9.75763 -0.0345381 -9.07561e-20)
+(9.74518 -0.0346058 0)
+(9.73238 -0.0346824 0)
+(9.71922 -0.0347682 0)
+(9.70569 -0.0348634 9.18258e-20)
+(9.69177 -0.0349684 0)
+(9.67747 -0.0350835 0)
+(9.66277 -0.0352089 0)
+(9.64765 -0.0353449 0)
+(9.63212 -0.0354917 0)
+(9.61616 -0.0356495 0)
+(9.59975 -0.0358186 -9.30354e-20)
+(9.58288 -0.0359992 9.31143e-20)
+(9.56556 -0.0361913 9.31667e-20)
+(9.54775 -0.0363952 -9.31911e-20)
+(9.52945 -0.0366109 1.86339e-19)
+(9.51065 -0.0368385 0)
+(9.49133 -0.037078 9.30462e-20)
+(9.47148 -0.0373294 9.29424e-20)
+(9.4511 -0.0375924 0)
+(9.43015 -0.0378671 0)
+(9.40864 -0.0381535 0)
+(9.38655 -0.0384515 -9.21494e-20)
+(9.36386 -0.0387606 0)
+(9.34056 -0.0390805 9.15786e-20)
+(9.31663 -0.0394111 1.82294e-19)
+(9.29207 -0.0397518 0)
+(9.26685 -0.0401024 0)
+(9.24097 -0.0404622 1.79333e-19)
+(9.21441 -0.0408309 8.90259e-20)
+(9.18716 -0.0412078 1.76818e-19)
+(9.1592 -0.0415923 -2.63038e-19)
+(9.13051 -0.0419835 0)
+(9.10109 -0.0423814 1.72152e-19)
+(9.07093 -0.0427857 -8.51306e-20)
+(9.04 -0.0431942 0)
+(9.00829 -0.0436065 -8.31989e-20)
+(8.9758 -0.0440211 0)
+(8.94252 -0.0444381 8.08241e-20)
+(8.90842 -0.0448555 0)
+(8.8735 -0.0452735 -1.56538e-19)
+(8.83774 -0.0456896 1.53711e-19)
+(8.80115 -0.046105 1.50723e-19)
+(8.7637 -0.0465157 0)
+(8.7254 -0.0469211 -2.88439e-19)
+(8.68622 -0.0473212 0)
+(8.64617 -0.0477148 0)
+(8.60524 -0.0481003 1.33266e-19)
+(8.56343 -0.0484763 0)
+(8.52072 -0.0488416 0)
+(8.47712 -0.0491949 -2.41278e-19)
+(8.43262 -0.0495349 0)
+(8.38722 -0.0498599 1.11292e-19)
+(8.34093 -0.0501695 -1.06349e-19)
+(8.29375 -0.0504605 0)
+(8.24567 -0.0507344 -1.9182e-19)
+(8.1967 -0.0509955 -9.03697e-20)
+(8.14684 -0.051229 8.4661e-20)
+(8.09611 -0.0514468 -7.87793e-20)
+(8.04452 -0.0516336 -7.26774e-20)
+(7.99207 -0.0518059 6.63603e-20)
+(7.93879 -0.0519449 5.9877e-20)
+(7.88468 -0.0520673 -5.32026e-20)
+(7.82977 -0.0521522 0)
+(7.77407 -0.0522223 0)
+(7.7176 -0.052248 3.20079e-20)
+(7.66038 -0.0522587 -2.45658e-20)
+(7.60242 -0.0522245 0)
+(7.54374 -0.0521721 0)
+(7.48438 -0.0520753 3.60728e-21)
+(7.42435 -0.0519584 0)
+(7.36368 -0.0517951 3.05424e-20)
+(7.3024 -0.0516118 0)
+(7.24054 -0.0513805 0)
+(7.17813 -0.0511317 -4.11383e-20)
+(7.11521 -0.0508336 0)
+(7.05181 -0.0505195 -1.77648e-19)
+(6.98797 -0.0501542 0)
+(6.92372 -0.0497705 -1.55668e-19)
+(6.85909 -0.0493385 0)
+(6.79412 -0.0488901 0)
+(6.72885 -0.0483956 0)
+(6.66333 -0.0478836 1.16386e-19)
+(6.59758 -0.0473299 1.26517e-19)
+(6.53166 -0.0467597 -1.36316e-19)
+(6.46562 -0.0461534 0)
+(6.39949 -0.045531 1.56574e-19)
+(6.33333 -0.0448811 3.33878e-19)
+(6.26718 -0.0442165 0)
+(6.20109 -0.0435292 0)
+(6.13508 -0.0428255 0)
+(6.06921 -0.0421094 0)
+(6.00351 -0.0413724 -4.37378e-19)
+(5.93801 -0.0406332 0)
+(5.87275 -0.0398718 -4.79461e-19)
+(5.80774 -0.0391256 5.00141e-19)
+(5.74303 -0.0383571 -5.21292e-19)
+(5.6786 -0.0376159 5.42219e-19)
+(5.6145 -0.0368463 -5.63003e-19)
+(5.55071 -0.0361244 0)
+(5.48726 -0.0353718 -6.0452e-19)
+(5.42414 -0.0346899 0)
+(5.36135 -0.0339719 0)
+(5.29887 -0.0333472 0)
+(5.23668 -0.0326831 2.93433e-22)
+(5.17474 -0.0321394 0)
+(5.11301 -0.0315553 7.27405e-19)
+(5.05139 -0.0311199 0)
+(4.98985 -0.0306474 0)
+(4.92826 -0.0303551 0)
+(4.86652 -0.0300336 0)
+(4.80446 -0.0299283 -2.48674e-18)
+(4.74192 -0.0298102 -2.54792e-18)
+(4.67865 -0.0299523 0)
+(4.6144 -0.030125 -8.90785e-19)
+(4.54884 -0.0306166 0)
+(4.48155 -0.0312209 0)
+(4.41204 -0.0322499 0)
+(4.3395 -0.0335526 9.79472e-19)
+(4.26342 -0.0355641 0)
+(4.18114 -0.0382357 -2.05851e-18)
+(4.09466 -0.0428067 2.11349e-18)
+(3.98811 -0.049343 -2.17026e-18)
+(3.89254 -0.0666593 0)
+(3.6922 -0.0930079 1.17556e-18)
+(9.99744 -0.0364091 4.08987e-20)
+(9.9915 -0.0362169 0)
+(9.98551 -0.0360613 -4.10569e-20)
+(9.97953 -0.0359082 2.06668e-20)
+(9.97342 -0.0357607 -2.08109e-20)
+(9.96708 -0.0356225 0)
+(9.96049 -0.0354823 0)
+(9.95365 -0.0353281 -2.12244e-20)
+(9.94654 -0.0351563 0)
+(9.93915 -0.0349685 0)
+(9.93149 -0.0347672 0)
+(9.92355 -0.0345545 0)
+(9.91533 -0.0343325 2.19055e-20)
+(9.90683 -0.0341036 0)
+(9.89807 -0.0338699 -2.21703e-20)
+(9.88904 -0.033633 0)
+(9.87974 -0.0333943 4.48425e-20)
+(9.87019 -0.033155 0)
+(9.86038 -0.0329158 -2.26692e-20)
+(9.85032 -0.0326774 -4.56217e-20)
+(9.84002 -0.0324402 0)
+(9.82947 -0.0322044 -4.6137e-20)
+(9.81869 -0.0319703 4.63934e-20)
+(9.80767 -0.031738 0)
+(9.79643 -0.0315074 -2.34647e-20)
+(9.78496 -0.0312786 -2.35915e-20)
+(9.77327 -0.0310516 4.74098e-20)
+(9.76136 -0.0308263 -4.76615e-20)
+(9.74923 -0.0306029 2.39434e-20)
+(9.73689 -0.0303814 -4.81615e-20)
+(9.72433 -0.0301618 0)
+(9.71157 -0.0299442 0)
+(9.6986 -0.0297286 4.89021e-20)
+(9.68542 -0.0295152 -2.45614e-20)
+(9.67203 -0.0293044 0)
+(9.65844 -0.0290962 0)
+(9.64464 -0.0288909 0)
+(9.63064 -0.0286887 0)
+(9.61643 -0.02849 0)
+(9.60201 -0.028295 -2.52764e-20)
+(9.58739 -0.028104 0)
+(9.57257 -0.0279173 0)
+(9.55753 -0.0277353 0)
+(9.54228 -0.0275583 0)
+(9.52682 -0.0273866 0)
+(9.51115 -0.0272207 -5.19107e-20)
+(9.49526 -0.0270608 0)
+(9.47915 -0.0269073 0)
+(9.46282 -0.0267604 -1.05049e-19)
+(9.44626 -0.0266207 0)
+(9.42947 -0.0264883 0)
+(9.41245 -0.0263637 0)
+(9.39519 -0.0262471 5.32928e-20)
+(9.37769 -0.0261388 0)
+(9.35994 -0.0260391 0)
+(9.34194 -0.0259483 1.07598e-19)
+(9.32368 -0.0258667 -5.39415e-20)
+(9.30516 -0.0257945 0)
+(9.28637 -0.0257318 0)
+(9.26729 -0.025679 -1.63082e-19)
+(9.24794 -0.0256362 0)
+(9.22829 -0.0256036 0)
+(9.20834 -0.0255814 0)
+(9.18808 -0.0255697 -5.47601e-20)
+(9.1675 -0.0255686 5.48319e-20)
+(9.1466 -0.0255781 0)
+(9.12535 -0.0255984 0)
+(9.10377 -0.0256296 0)
+(9.08182 -0.0256716 0)
+(9.05951 -0.0257245 0)
+(9.03682 -0.0257883 -1.0993e-19)
+(9.01374 -0.0258629 0)
+(8.99025 -0.0259483 -1.64596e-19)
+(8.96635 -0.0260441 -1.64362e-19)
+(8.94203 -0.0261504 -5.4682e-20)
+(8.91726 -0.026267 0)
+(8.89205 -0.0263938 0)
+(8.86636 -0.0265305 5.42644e-20)
+(8.8402 -0.0266768 0)
+(8.81354 -0.0268325 5.38489e-20)
+(8.78638 -0.0269973 0)
+(8.7587 -0.0271707 -5.33074e-20)
+(8.73048 -0.0273524 5.3001e-20)
+(8.70171 -0.027542 0)
+(8.67238 -0.027739 -5.23091e-20)
+(8.64247 -0.027943 0)
+(8.61197 -0.0281535 5.14692e-20)
+(8.58086 -0.0283695 0)
+(8.54914 -0.0285921 -1.00951e-19)
+(8.51678 -0.0288188 9.98704e-20)
+(8.48377 -0.0290506 0)
+(8.45011 -0.0292847 -1.94891e-19)
+(8.41577 -0.0295227 -9.61101e-20)
+(8.38075 -0.0297615 -9.47022e-20)
+(8.34503 -0.0300032 9.31939e-20)
+(8.3086 -0.030244 0)
+(8.27145 -0.0304865 -8.99245e-20)
+(8.23357 -0.0307268 0)
+(8.19496 -0.0309659 8.62861e-20)
+(8.15559 -0.0312023 1.68647e-19)
+(8.11547 -0.0314354 0)
+(8.07459 -0.0316648 0)
+(8.03293 -0.0318894 7.78435e-20)
+(7.99051 -0.0321083 0)
+(7.9473 -0.0323206 7.30123e-20)
+(7.90331 -0.0325254 7.04159e-20)
+(7.85853 -0.0327215 0)
+(7.81297 -0.0329075 -6.49396e-20)
+(7.76662 -0.0330822 1.24115e-19)
+(7.71948 -0.0332452 0)
+(7.67156 -0.0334015 1.11862e-19)
+(7.62285 -0.0335445 1.05397e-19)
+(7.57338 -0.033681 -1.48112e-19)
+(7.52315 -0.0338 4.59384e-20)
+(7.47218 -0.0339098 0)
+(7.42048 -0.0339982 -7.73484e-20)
+(7.36805 -0.0340748 -1.04713e-19)
+(7.31491 -0.0341319 0)
+(7.26108 -0.0341765 0)
+(7.20656 -0.0342005 0)
+(7.15137 -0.0342094 5.60228e-20)
+(7.09554 -0.0341946 -2.86549e-20)
+(7.03907 -0.0341619 0)
+(6.982 -0.0341056 0)
+(6.92434 -0.0340339 -1.42518e-21)
+(6.86613 -0.0339375 0)
+(6.80738 -0.0338241 0)
+(6.74812 -0.0336853 -1.37496e-20)
+(6.68839 -0.0335274 -1.87795e-20)
+(6.62822 -0.0333464 2.40516e-20)
+(6.56764 -0.0331454 0)
+(6.50668 -0.0329223 1.03428e-19)
+(6.44539 -0.0326804 0)
+(6.38379 -0.0324149 0)
+(6.32191 -0.0321261 0)
+(6.25979 -0.0318168 0)
+(6.19748 -0.0314861 0)
+(6.135 -0.0311354 -1.81385e-22)
+(6.07241 -0.0307654 2.94841e-19)
+(6.00974 -0.03038 1.59247e-19)
+(5.94703 -0.0299782 0)
+(5.88433 -0.0295649 -1.83026e-19)
+(5.82166 -0.0291373 0)
+(5.75908 -0.0287001 0)
+(5.69663 -0.0282503 0)
+(5.63434 -0.0277919 0)
+(5.57224 -0.0273228 0)
+(5.51038 -0.0268453 5.12608e-19)
+(5.4488 -0.0263612 0)
+(5.3875 -0.0258714 0)
+(5.32651 -0.025381 -5.87214e-19)
+(5.26586 -0.0248879 0)
+(5.20557 -0.0243982 -3.18366e-19)
+(5.14564 -0.023909 -3.30829e-19)
+(5.08609 -0.0234319 3.43343e-19)
+(5.0269 -0.0229584 0)
+(4.96807 -0.0225088 3.68322e-19)
+(4.9096 -0.0220651 3.80761e-19)
+(4.85146 -0.0216536 0)
+(4.79362 -0.0212487 8.11803e-19)
+(4.73604 -0.0208886 0)
+(4.67867 -0.0205383 0)
+(4.62142 -0.0202481 -4.4323e-19)
+(4.56422 -0.0199758 0)
+(4.50696 -0.0197803 4.6841e-19)
+(4.44952 -0.0196098 0)
+(4.39174 -0.0195372 9.88203e-19)
+(4.33345 -0.0195023 5.07163e-19)
+(4.2744 -0.0195939 0)
+(4.21434 -0.0197521 5.33668e-19)
+(4.15293 -0.0200785 0)
+(4.08974 -0.0205241 0)
+(4.02429 -0.0212139 -5.75612e-19)
+(3.95574 -0.0221305 -1.18176e-18)
+(3.8836 -0.0234863 6.0671e-19)
+(3.80499 -0.0253564 -6.23486e-19)
+(3.72239 -0.0284499 1.28405e-18)
+(3.61768 -0.0332247 0)
+(3.52695 -0.0459728 1.36935e-18)
+(3.30774 -0.0675226 -2.91725e-18)
+(9.73052 -0.0282935 -2.51521e-20)
+(9.71692 -0.0282612 0)
+(9.70313 -0.027936 2.52577e-20)
+(9.68894 -0.0272915 -2.54058e-20)
+(9.6742 -0.0264937 0)
+(9.65892 -0.025661 0)
+(9.64316 -0.0248342 0)
+(9.62696 -0.0240253 1.30254e-20)
+(9.61037 -0.0232433 0)
+(9.59342 -0.0224951 1.31759e-20)
+(9.57617 -0.0217833 1.32512e-20)
+(9.55864 -0.0211081 0)
+(9.54088 -0.0204684 2.67608e-20)
+(9.52291 -0.0198633 -1.34774e-20)
+(9.50477 -0.0192917 -4.06173e-20)
+(9.48648 -0.0187525 0)
+(9.46806 -0.0182445 1.37044e-20)
+(9.44952 -0.0177668 0)
+(9.43089 -0.0173183 2.76732e-20)
+(9.41218 -0.0168979 -1.39321e-20)
+(9.39339 -0.0165048 1.4008e-20)
+(9.37453 -0.016138 0)
+(9.35562 -0.0157964 0)
+(9.33666 -0.0154791 0)
+(9.31764 -0.015185 -2.85872e-20)
+(9.29858 -0.0149132 -4.31259e-20)
+(9.27948 -0.0146625 -1.44624e-20)
+(9.26034 -0.014432 0)
+(9.24115 -0.0142206 -1.45798e-20)
+(9.22193 -0.0140273 0)
+(9.20267 -0.013851 0)
+(9.18336 -0.0136907 -1.48365e-20)
+(9.16402 -0.0135453 0)
+(9.14463 -0.013414 2.99381e-20)
+(9.1252 -0.0132957 0)
+(9.10572 -0.0131896 -1.51299e-20)
+(9.0862 -0.0130946 -1.52021e-20)
+(9.06663 -0.0130102 1.52737e-20)
+(9.047 -0.0129353 -1.53448e-20)
+(9.02733 -0.0128694 3.08039e-20)
+(9.00759 -0.0128115 0)
+(8.9878 -0.0127613 0)
+(8.96794 -0.0127178 1.56219e-20)
+(8.94801 -0.0126808 0)
+(8.92802 -0.0126497 1.57553e-20)
+(8.90795 -0.0126239 -1.58205e-20)
+(8.8878 -0.0126032 0)
+(8.86757 -0.0125871 0)
+(8.84725 -0.0125754 6.39913e-20)
+(8.82683 -0.0125678 0)
+(8.80632 -0.0125641 3.2255e-20)
+(8.7857 -0.0125641 3.23687e-20)
+(8.76497 -0.0125677 0)
+(8.74413 -0.0125747 0)
+(8.72316 -0.0125851 3.26879e-20)
+(8.70205 -0.0125988 0)
+(8.68081 -0.0126159 6.57204e-20)
+(8.65942 -0.0126364 0)
+(8.63788 -0.0126602 -3.30511e-20)
+(8.61617 -0.0126873 6.62203e-20)
+(8.59429 -0.012718 0)
+(8.57222 -0.0127523 0)
+(8.54996 -0.0127901 0)
+(8.5275 -0.0128317 6.67141e-20)
+(8.50482 -0.012877 -6.68015e-20)
+(8.48192 -0.0129262 0)
+(8.45878 -0.0129794 0)
+(8.4354 -0.0130366 0)
+(8.41175 -0.0130979 3.35072e-20)
+(8.38783 -0.0131634 3.35058e-20)
+(8.36363 -0.0132332 0)
+(8.33912 -0.0133074 0)
+(8.31431 -0.0133858 3.34024e-20)
+(8.28917 -0.0134687 6.6745e-20)
+(8.26369 -0.0135562 6.66259e-20)
+(8.23785 -0.013648 0)
+(8.21165 -0.0137441 0)
+(8.18506 -0.0138445 6.61027e-20)
+(8.15808 -0.0139493 0)
+(8.13069 -0.0140584 6.56036e-20)
+(8.10286 -0.0141716 0)
+(8.0746 -0.0142889 9.74754e-20)
+(8.04588 -0.0144101 -6.46031e-20)
+(8.01668 -0.014535 -3.21163e-20)
+(7.987 -0.0146635 -6.37527e-20)
+(7.95681 -0.0147954 0)
+(7.92611 -0.0149303 6.27429e-20)
+(7.89487 -0.0150686 0)
+(7.86309 -0.0152098 1.23125e-19)
+(7.83074 -0.0153526 0)
+(7.79782 -0.0154986 0)
+(7.76432 -0.0156457 1.18896e-19)
+(7.73021 -0.0157954 1.17292e-19)
+(7.69548 -0.0159451 0)
+(7.66014 -0.0160971 -1.13777e-19)
+(7.62415 -0.0162483 0)
+(7.58751 -0.0164014 1.09834e-19)
+(7.55021 -0.0165515 0)
+(7.51225 -0.0167022 -1.05443e-19)
+(7.47361 -0.0168527 5.15812e-20)
+(7.43428 -0.0170014 0)
+(7.39426 -0.0171481 0)
+(7.35354 -0.0172925 -1.42909e-19)
+(7.31212 -0.0174342 0)
+(7.26999 -0.0175726 -4.46497e-20)
+(7.22714 -0.0177067 8.6279e-20)
+(7.18359 -0.0178367 4.15657e-20)
+(7.13932 -0.0179596 -7.96495e-20)
+(7.09434 -0.0180762 3.81198e-20)
+(7.04863 -0.0181857 0)
+(7.00223 -0.0182904 0)
+(6.95512 -0.0183863 0)
+(6.90733 -0.0184861 9.11072e-20)
+(6.85885 -0.0185774 -5.64953e-20)
+(6.80972 -0.0186749 2.61327e-20)
+(6.75991 -0.0187557 0)
+(6.70944 -0.0188345 6.46229e-20)
+(6.65831 -0.0188894 0)
+(6.60655 -0.0189442 0)
+(6.55416 -0.0189687 0)
+(6.50115 -0.0190143 -2.31245e-20)
+(6.44761 -0.0190232 0)
+(6.39345 -0.0190356 0)
+(6.33881 -0.019025 0)
+(6.2836 -0.019001 0)
+(6.22794 -0.0189657 2.40257e-21)
+(6.17179 -0.0189204 0)
+(6.11522 -0.0188648 1.7118e-20)
+(6.05825 -0.0188063 2.34077e-20)
+(6.0009 -0.0187222 4.46871e-20)
+(5.94322 -0.0186366 0)
+(5.88523 -0.0185252 -4.30717e-20)
+(5.82698 -0.0184128 0)
+(5.7685 -0.018275 0)
+(5.70984 -0.0181348 3.18526e-20)
+(5.65101 -0.0179715 3.54332e-20)
+(5.59208 -0.0178048 -3.90674e-20)
+(5.53306 -0.017618 -1.71309e-19)
+(5.474 -0.017428 -1.86273e-19)
+(5.41493 -0.0172223 0)
+(5.3559 -0.0170136 0)
+(5.29694 -0.0167933 -1.16036e-19)
+(5.23808 -0.0165693 -1.23904e-19)
+(5.17935 -0.0163393 0)
+(5.12079 -0.0161031 0)
+(5.06243 -0.0158633 0)
+(5.0043 -0.0156139 0)
+(4.94643 -0.0153652 -1.64468e-19)
+(4.88885 -0.0151024 -1.72807e-19)
+(4.83159 -0.014845 0)
+(4.77466 -0.0145733 -1.89661e-19)
+(4.71808 -0.0143165 0)
+(4.66187 -0.0140415 4.13774e-19)
+(4.60604 -0.0137886 4.30988e-19)
+(4.55059 -0.0135144 -6.7243e-19)
+(4.49552 -0.0132714 -2.32758e-19)
+(4.44082 -0.0130082 -4.8338e-19)
+(4.38648 -0.0127863 -5.00981e-19)
+(4.33247 -0.0125429 0)
+(4.27876 -0.0123485 -2.68191e-19)
+(4.22529 -0.01213 -2.77238e-19)
+(4.17203 -0.0119685 0)
+(4.11887 -0.0117851 5.91203e-19)
+(4.06575 -0.0116725 -3.04681e-19)
+(4.01253 -0.011542 -9.4253e-19)
+(3.95913 -0.0114918 0)
+(3.90535 -0.0114299 0)
+(3.85105 -0.0114603 6.86198e-19)
+(3.79596 -0.0114929 0)
+(3.73985 -0.0116359 3.63531e-19)
+(3.68236 -0.0118075 0)
+(3.6231 -0.0121181 0)
+(3.56156 -0.012508 7.92875e-19)
+(3.49691 -0.0130998 4.08221e-19)
+(3.42869 -0.0138935 -1.26333e-18)
+(3.35382 -0.0150832 8.69298e-19)
+(3.27531 -0.0169207 -1.34939e-18)
+(3.17265 -0.0201194 4.65601e-19)
+(3.08862 -0.0285489 -1.94151e-18)
+(2.84163 -0.0423998 2.61238e-18)
+(8.54295 -0.0130577 0)
+(8.51609 -0.0138902 0)
+(8.48955 -0.0143822 0)
+(8.46357 -0.0144847 0)
+(8.4381 -0.01434 0)
+(8.41322 -0.014072 0)
+(8.38901 -0.0137459 0)
+(8.36549 -0.0133978 -1.84709e-20)
+(8.3426 -0.0130519 0)
+(8.32032 -0.0127247 -1.8698e-20)
+(8.29858 -0.0124253 -1.8809e-20)
+(8.27736 -0.0121574 0)
+(8.2566 -0.0119218 0)
+(8.23627 -0.0117171 1.91341e-20)
+(8.21631 -0.0115407 1.92402e-20)
+(8.1967 -0.0113896 0)
+(8.17739 -0.0112601 -1.945e-20)
+(8.15836 -0.0111485 0)
+(8.13957 -0.0110513 0)
+(8.12099 -0.0109652 1.97596e-20)
+(8.1026 -0.010887 -1.98618e-20)
+(8.08438 -0.0108141 0)
+(8.06631 -0.0107442 0)
+(8.04836 -0.0106751 0)
+(8.03051 -0.0106051 0)
+(8.01276 -0.0105331 2.0367e-20)
+(7.99509 -0.0104578 2.04672e-20)
+(7.97749 -0.0103785 0)
+(7.95993 -0.0102947 -2.0667e-20)
+(7.94242 -0.0102061 0)
+(7.92494 -0.0101126 0)
+(7.90747 -0.0100141 2.09651e-20)
+(7.89003 -0.00991101 0)
+(7.87258 -0.00980353 0)
+(7.85513 -0.00969207 0)
+(7.83767 -0.00957706 2.13595e-20)
+(7.82019 -0.00945902 2.14573e-20)
+(7.80269 -0.00933854 -2.15548e-20)
+(7.78515 -0.00921618 2.16519e-20)
+(7.76758 -0.00909255 0)
+(7.74996 -0.0089682 0)
+(7.7323 -0.00884375 0)
+(7.71457 -0.00871973 -2.20349e-20)
+(7.69679 -0.00859668 0)
+(7.67894 -0.0084751 -2.22223e-20)
+(7.66101 -0.00835551 2.23146e-20)
+(7.64301 -0.00823831 0)
+(7.62492 -0.00812391 0)
+(7.60673 -0.00801269 0)
+(7.58845 -0.00790502 0)
+(7.57007 -0.00780119 -4.55159e-20)
+(7.55157 -0.00770141 -4.56841e-20)
+(7.53296 -0.00760591 0)
+(7.51423 -0.00751489 0)
+(7.49536 -0.00742853 -4.61645e-20)
+(7.47635 -0.00734696 0)
+(7.4572 -0.00727025 0)
+(7.43789 -0.00719848 0)
+(7.41842 -0.00713167 4.6734e-20)
+(7.39878 -0.00706987 0)
+(7.37897 -0.00701315 0)
+(7.35896 -0.0069614 0)
+(7.33876 -0.00691456 0)
+(7.31835 -0.00687263 0)
+(7.29772 -0.00683556 0)
+(7.27686 -0.0068032 0)
+(7.25577 -0.00677547 0)
+(7.23443 -0.00675224 0)
+(7.21284 -0.00673342 -4.76058e-20)
+(7.19097 -0.00671884 -4.7633e-20)
+(7.16882 -0.00670841 0)
+(7.14637 -0.00670197 0)
+(7.12363 -0.00669925 4.76293e-20)
+(7.10056 -0.00670028 0)
+(7.07716 -0.00670507 0)
+(7.05342 -0.00671322 0)
+(7.02933 -0.00672443 0)
+(7.00486 -0.00673865 0)
+(6.98002 -0.00675571 0)
+(6.95478 -0.00677548 0)
+(6.92913 -0.00679774 0)
+(6.90306 -0.00682238 -4.66474e-20)
+(6.87656 -0.00684914 0)
+(6.84961 -0.00687784 4.61829e-20)
+(6.8222 -0.00690824 0)
+(6.79432 -0.00694011 0)
+(6.76595 -0.00697328 0)
+(6.73708 -0.00700804 0)
+(6.7077 -0.00704371 0)
+(6.6778 -0.00707931 0)
+(6.64736 -0.00711629 0)
+(6.61638 -0.0071531 0)
+(6.58484 -0.00719083 0)
+(6.55273 -0.00722772 0)
+(6.52004 -0.00726549 0)
+(6.48676 -0.00730193 0)
+(6.45289 -0.0073391 0)
+(6.41841 -0.00737316 0)
+(6.38332 -0.00740721 0)
+(6.34761 -0.00744078 -7.57104e-20)
+(6.31127 -0.00747306 0)
+(6.2743 -0.00750368 0)
+(6.23669 -0.00753265 7.03093e-20)
+(6.19844 -0.00755984 0)
+(6.15955 -0.00758481 -6.62299e-20)
+(6.12001 -0.00760775 0)
+(6.07982 -0.00762699 -6.17475e-20)
+(6.039 -0.00764311 0)
+(5.99753 -0.00765581 -5.68456e-20)
+(5.95548 -0.00766939 0)
+(5.91275 -0.00768257 0)
+(5.86945 -0.00768974 0)
+(5.82547 -0.00770111 -4.5717e-20)
+(5.78087 -0.00769745 0)
+(5.73561 -0.00769001 -3.94672e-20)
+(5.68972 -0.0076752 0)
+(5.64322 -0.00766756 -3.27433e-20)
+(5.59615 -0.00765266 0)
+(5.54846 -0.0076397 0)
+(5.50025 -0.00766064 0)
+(5.45151 -0.00758737 0)
+(5.40219 -0.00755338 0)
+(5.35246 -0.00753523 0)
+(5.30216 -0.00748403 0)
+(5.25148 -0.00749196 0)
+(5.20033 -0.00742833 -3.6928e-21)
+(5.1488 -0.00741098 0)
+(5.09687 -0.0073398 0)
+(5.04459 -0.00728702 0)
+(4.99199 -0.00722184 -2.32582e-20)
+(4.93908 -0.00716488 0)
+(4.88594 -0.00709529 0)
+(4.83255 -0.00703088 0)
+(4.77898 -0.0069529 0)
+(4.72525 -0.00688059 -5.06914e-20)
+(4.67142 -0.0067967 -5.65739e-20)
+(4.61751 -0.00671641 6.2584e-20)
+(4.56357 -0.00662706 0)
+(4.50963 -0.00654056 0)
+(4.45573 -0.00644755 0)
+(4.40189 -0.00635594 0)
+(4.34814 -0.00626042 1.89087e-19)
+(4.29452 -0.00616437 2.02615e-19)
+(4.24102 -0.00606737 0)
+(4.18769 -0.00596808 0)
+(4.13454 -0.0058707 0)
+(4.0816 -0.00576841 0)
+(4.02888 -0.00567153 2.7381e-19)
+(3.97643 -0.00556596 2.88749e-19)
+(3.92426 -0.00547267 0)
+(3.87242 -0.00536678 3.19268e-19)
+(3.82087 -0.00527863 0)
+(3.76968 -0.00517278 0)
+(3.71879 -0.00509028 0)
+(3.66827 -0.00498632 3.82894e-19)
+(3.61806 -0.0049123 3.99303e-19)
+(3.56822 -0.00481419 0)
+(3.51862 -0.00475344 0)
+(3.46931 -0.00466277 0)
+(3.42018 -0.00461571 4.67307e-19)
+(3.37127 -0.00453554 4.84972e-19)
+(3.32246 -0.00450722 0)
+(3.27375 -0.0044429 0)
+(3.22498 -0.00443752 5.39487e-19)
+(3.17612 -0.00439519 5.58412e-19)
+(3.12696 -0.00441911 0)
+(3.07744 -0.00440775 0)
+(3.0273 -0.00446985 0)
+(2.97643 -0.00450312 0)
+(2.92446 -0.00461482 6.59949e-19)
+(2.87119 -0.00471295 0)
+(2.81611 -0.00489787 0)
+(2.75883 -0.00509703 0)
+(2.69847 -0.00541225 -7.56293e-19)
+(2.63459 -0.0057944 7.84358e-19)
+(2.56393 -0.00642094 0)
+(2.48984 -0.00721276 -8.48604e-19)
+(2.38896 -0.00908263 -8.86342e-19)
+(2.30816 -0.0122289 0)
+(2.01172 -0.0187926 -1.01704e-18)
+(0.94105 0.0375542 7.20243e-17)
+(1.07357 0.0661188 -6.71546e-17)
+(1.20184 0.0840328 0)
+(1.31631 0.0978929 0)
+(1.43161 0.111377 1.14802e-16)
+(1.55169 0.124698 -1.08953e-16)
+(1.67619 0.137993 -1.03922e-16)
+(1.8057 0.151625 -9.8564e-17)
+(1.94106 0.165786 0)
+(2.08274 0.180554 -8.90385e-17)
+(2.2311 0.195999 8.40567e-17)
+(2.38643 0.212177 1.58743e-16)
+(2.54908 0.229127 0)
+(2.71922 0.246884 1.40108e-16)
+(2.89725 0.265457 0)
+(3.08308 0.284932 0)
+(3.27791 0.305197 0)
+(3.48017 0.326592 3.72438e-19)
+(3.69501 0.348447 0)
+(3.91257 0.372361 0)
+(4.15862 0.395095 0)
+(4.37821 0.423547 -1.1359e-16)
+(4.70564 0.443964 8.99941e-17)
+(4.84941 0.482732 1.03112e-16)
+(5.4883 0.496031 4.12118e-17)
+(1.20379 0.0317628 0)
+(1.31913 0.0561375 1.7504e-19)
+(1.435 0.0719318 -2.45996e-17)
+(1.54796 0.0862292 -4.7723e-17)
+(1.6656 0.100773 4.62791e-17)
+(1.78894 0.114928 2.81473e-19)
+(1.91754 0.129018 -4.32971e-17)
+(2.05195 0.143541 2.65941e-19)
+(2.19281 0.158672 0)
+(2.34058 0.174495 0)
+(2.49562 0.191105 -3.72885e-17)
+(2.65831 0.208573 -7.12349e-17)
+(2.82903 0.226948 0)
+(3.00805 0.246277 -1.27972e-16)
+(3.19587 0.266572 6.00558e-17)
+(3.39257 0.287959 -5.61905e-17)
+(3.59943 0.310251 0)
+(3.81515 0.333972 9.60937e-17)
+(4.04481 0.35806 0)
+(4.27943 0.385022 -3.83808e-17)
+(4.54343 0.409501 3.33365e-17)
+(4.78618 0.443192 5.44146e-17)
+(5.13241 0.460985 -4.43546e-17)
+(5.31212 0.513084 -8.87287e-19)
+(5.97017 0.498964 -2.06257e-17)
+(1.36633 0.00827773 0)
+(1.47326 0.0300547 2.90072e-17)
+(1.58199 0.0451165 1.41031e-17)
+(1.69267 0.0592791 2.74251e-17)
+(1.8094 0.0737395 -2.66576e-17)
+(1.93212 0.0878676 1.82261e-19)
+(2.06054 0.102002 2.5061e-17)
+(2.19511 0.116581 1.73686e-19)
+(2.33633 0.131772 0)
+(2.48462 0.147681 -2.23571e-17)
+(2.64034 0.164417 0)
+(2.80386 0.182058 0)
+(2.97559 0.200657 0)
+(3.15582 0.22027 3.73757e-17)
+(3.34508 0.240908 -3.52446e-17)
+(3.54353 0.262703 3.3005e-17)
+(3.75242 0.285432 0)
+(3.97065 0.309692 -2.74789e-19)
+(4.20307 0.334194 0)
+(4.44146 0.361922 4.48752e-17)
+(4.70867 0.386296 -1.96205e-17)
+(4.95808 0.421509 -5.33519e-19)
+(5.30498 0.436449 0)
+(5.50127 0.492339 -1.43314e-17)
+(6.13721 0.458821 0)
+(1.50359 -0.0206255 0)
+(1.60605 -0.0016064 -6.21054e-20)
+(1.71037 0.0129197 0)
+(1.81885 0.0268998 9.75777e-18)
+(1.93395 0.0411179 0)
+(2.05518 0.0551275 1.84831e-17)
+(2.18241 0.0692242 0)
+(2.316 0.0837741 3.44915e-17)
+(2.45636 0.0989459 0)
+(2.60383 0.114861 1.60451e-17)
+(2.75879 0.131637 0)
+(2.92159 0.149355 0)
+(3.09266 0.168075 0)
+(3.27229 0.187856 2.62835e-17)
+(3.46102 0.208708 0)
+(3.65906 0.230753 0)
+(3.86763 0.253767 0)
+(4.08577 0.278325 -1.81902e-19)
+(4.31812 0.303119 0)
+(4.55702 0.33112 -1.57258e-17)
+(4.82412 0.35561 0)
+(5.07571 0.390877 -2.19764e-17)
+(5.42002 0.40506 0)
+(5.62538 0.459448 0)
+(6.23767 0.417779 0)
+(1.63424 -0.0505833 0)
+(1.73392 -0.0338344 -8.40835e-18)
+(1.83521 -0.0199562 0)
+(1.94165 -0.00640547 -3.80504e-20)
+(2.05485 0.00738907 0)
+(2.17426 0.0211412 0)
+(2.29986 0.0350817 1.43053e-17)
+(2.43194 0.0495082 -2.76934e-17)
+(2.57084 0.0645837 0)
+(2.71688 0.0804352 -1.27725e-17)
+(2.87041 0.0971814 1.22274e-17)
+(3.0318 0.114908 -1.16623e-17)
+(3.20144 0.133678 0)
+(3.37967 0.15355 -1.37001e-19)
+(3.56703 0.174532 0)
+(3.76373 0.196736 1.83118e-17)
+(3.97099 0.219945 0)
+(4.18794 0.244678 -1.5552e-17)
+(4.4191 0.269693 0)
+(4.65715 0.297737 0)
+(4.92292 0.322441 -1.04961e-17)
+(5.17476 0.357114 0)
+(5.51559 0.371543 0)
+(5.72624 0.422241 0)
+(6.31694 0.378428 0)
+(1.76501 -0.0803318 0)
+(1.86264 -0.0653494 0)
+(1.96153 -0.0521693 0)
+(2.06601 -0.0391765 -1.35788e-17)
+(2.1772 -0.0258942 -6.56598e-18)
+(2.2946 -0.0125005 1.2712e-17)
+(2.41829 0.00118754 -1.23407e-17)
+(2.54851 0.0154106 2.37516e-17)
+(2.68557 0.0303211 0)
+(2.82977 0.0460454 1.09888e-17)
+(2.98145 0.0627006 -1.0509e-17)
+(3.14096 0.0803738 5.28242e-20)
+(3.30872 0.0991298 0)
+(3.48504 0.119028 -9.01175e-18)
+(3.67048 0.140072 0)
+(3.86528 0.162361 -1.56325e-17)
+(4.07063 0.185689 0)
+(4.28574 0.210503 0)
+(4.51502 0.235667 -1.16832e-17)
+(4.75144 0.26362 0)
+(5.01518 0.288529 1.76397e-17)
+(5.26614 0.32232 6.93134e-18)
+(5.60308 0.337382 0)
+(5.81667 0.383671 -5.43907e-18)
+(6.38794 0.340893 5.22406e-18)
+(1.89908 -0.109691 0)
+(1.99493 -0.0961227 0)
+(2.09169 -0.0836311 0)
+(2.19419 -0.0712227 6.09349e-18)
+(2.30328 -0.0584796 5.90353e-18)
+(2.41853 -0.0454959 -5.73356e-18)
+(2.54008 -0.0321218 0)
+(2.66818 -0.0181578 -4.26463e-20)
+(2.80309 -0.00346342 0)
+(2.94513 0.0120849 0)
+(3.09462 0.0286018 0)
+(3.25192 0.0461743 8.90895e-18)
+(3.41741 0.0648677 0)
+(3.59144 0.0847386 -7.95204e-18)
+(3.77455 0.105792 0)
+(3.96701 0.128106 0)
+(4.17 0.151493 0)
+(4.38279 0.176322 0)
+(4.60969 0.201576 2.06284e-17)
+(4.84392 0.229353 0)
+(5.10512 0.254439 -7.74417e-18)
+(5.3544 0.28721 -6.10223e-18)
+(5.68715 0.303058 4.85686e-18)
+(5.90204 0.344828 4.75825e-18)
+(6.45572 0.304892 -4.58264e-18)
+(2.03817 -0.138586 6.14823e-18)
+(2.13228 -0.126188 0)
+(2.22699 -0.114357 5.76069e-18)
+(2.32743 -0.102527 -5.58899e-18)
+(2.43433 -0.0903242 0)
+(2.54728 -0.0777774 -5.25243e-18)
+(2.66649 -0.0647582 -1.01062e-17)
+(2.79222 -0.0510949 -9.76707e-18)
+(2.92474 -0.0366559 0)
+(3.06434 -0.0213212 -8.95211e-18)
+(3.21134 -0.00497991 8.54332e-18)
+(3.36609 0.0124545 0)
+(3.529 0.0310469 0)
+(3.70039 0.0508504 0)
+(3.88083 0.071868 0)
+(4.07059 0.0941603 0)
+(4.27084 0.117556 0)
+(4.48091 0.142347 0)
+(4.70503 0.167637 -9.37668e-18)
+(4.93661 0.195177 0)
+(5.19483 0.220404 0)
+(5.44184 0.252089 -5.40595e-18)
+(5.77011 0.268784 -4.40049e-18)
+(5.98503 0.306153 0)
+(6.52263 0.270194 -4.12263e-18)
+(2.18325 -0.166921 -5.76931e-18)
+(2.27554 -0.155521 -5.55853e-18)
+(2.36816 -0.144321 -5.416e-18)
+(2.46645 -0.133056 5.25662e-18)
+(2.57103 -0.121383 5.07734e-18)
+(2.68152 -0.109286 0)
+(2.79821 -0.0966502 9.50268e-18)
+(2.92137 -0.08332 9.11944e-18)
+(3.05124 -0.0691696 8.75445e-18)
+(3.18814 -0.0540824 8.40716e-18)
+(3.33238 -0.0379506 -8.01894e-18)
+(3.48432 -0.0206888 0)
+(3.64434 -0.00223306 0)
+(3.81279 0.0174657 -6.74249e-18)
+(3.99023 0.038409 -6.2952e-18)
+(4.17695 0.060639 5.82956e-18)
+(4.37413 0.0839999 0)
+(4.58112 0.108707 9.6723e-18)
+(4.80208 0.133986 0)
+(5.03061 0.16124 0)
+(5.28547 0.186568 -6.37767e-18)
+(5.52972 0.217136 5.01775e-18)
+(5.85323 0.234692 0)
+(6.06718 0.267863 0)
+(6.58991 0.236629 1.90924e-18)
+(2.33491 -0.194612 -5.46295e-18)
+(2.42522 -0.184085 5.29285e-18)
+(2.51567 -0.173492 0)
+(2.61164 -0.162773 0)
+(2.71376 -0.151618 -9.67087e-18)
+(2.82164 -0.139978 0)
+(2.93563 -0.127745 4.50445e-18)
+(3.056 -0.114773 -4.35908e-18)
+(3.18301 -0.100939 -8.34341e-18)
+(3.31697 -0.0861288 7.95736e-18)
+(3.4582 -0.070237 0)
+(3.60704 -0.0531794 7.19863e-18)
+(3.7639 -0.0348935 0)
+(3.92913 -0.0153342 6.41098e-18)
+(4.10328 0.00549751 2.4966e-20)
+(4.28666 0.0276265 -2.48325e-20)
+(4.48043 0.0509103 0)
+(4.684 0.0754928 -4.87132e-20)
+(4.90146 0.100715 -8.11748e-18)
+(5.12659 0.127644 0)
+(5.37774 0.15303 6.02284e-18)
+(5.61879 0.182471 4.63764e-18)
+(5.93726 0.20088 0)
+(6.14945 0.230088 0)
+(6.65827 0.204064 1.78919e-18)
+(2.49349 -0.221589 5.25123e-18)
+(2.58163 -0.211843 0)
+(2.66975 -0.201835 -4.93306e-18)
+(2.76323 -0.19165 0)
+(2.86272 -0.181003 4.65343e-18)
+(2.96784 -0.169824 0)
+(3.07894 -0.158008 -4.34105e-18)
+(3.19632 -0.145415 -1.06789e-20)
+(3.32026 -0.131921 7.9936e-18)
+(3.45105 -0.117414 -7.66531e-18)
+(3.58902 -0.10179 0)
+(3.73453 -0.0849654 -2.20892e-20)
+(3.88797 -0.06688 0)
+(4.0497 -0.0474928 0)
+(4.22028 -0.0268074 5.72636e-18)
+(4.40001 -0.00481599 -5.29381e-18)
+(4.59008 0.0183512 0)
+(4.78992 0.042769 -8.74728e-18)
+(5.00357 0.0678902 7.77983e-18)
+(5.22495 0.0944591 6.68369e-18)
+(5.47204 0.119863 0)
+(5.70952 0.148177 -4.43155e-18)
+(6.02267 0.16742 0)
+(6.23244 0.192906 0)
+(6.72812 0.17239 0)
+(2.65915 -0.247791 0)
+(2.74491 -0.238757 4.90835e-18)
+(2.83052 -0.229321 4.78882e-18)
+(2.92133 -0.21966 0)
+(3.01801 -0.209518 0)
+(3.12018 -0.198803 0)
+(3.22821 -0.187416 0)
+(3.34242 -0.175218 -9.44652e-21)
+(3.46307 -0.162086 -7.7688e-18)
+(3.59047 -0.147905 0)
+(3.72497 -0.132574 0)
+(3.8669 -0.11601 -1.98285e-20)
+(4.01667 -0.0981542 0)
+(4.17464 -0.0789697 0)
+(4.34138 -0.0584633 0)
+(4.5172 -0.0366441 0)
+(4.70328 -0.0136312 0)
+(4.89909 0.0105846 0)
+(5.10862 0.0355632 7.4505e-18)
+(5.32593 0.061739 -6.46344e-18)
+(5.56865 0.0871186 0)
+(5.80218 0.114313 0)
+(6.10975 0.134363 0)
+(6.31655 0.156365 0)
+(6.79969 0.141518 0)
+(2.83196 -0.273163 0)
+(2.9151 -0.264791 -8.13668e-21)
+(2.99802 -0.255919 -4.66288e-18)
+(3.08595 -0.24678 -4.53391e-18)
+(3.17963 -0.237141 0)
+(3.27867 -0.226897 4.25138e-18)
+(3.38344 -0.215952 0)
+(3.49427 -0.204165 -3.95399e-18)
+(3.61143 -0.191413 0)
+(3.73525 -0.177581 0)
+(3.86604 -0.162567 0)
+(4.00417 -0.146289 -1.8064e-20)
+(4.15004 -0.128689 0)
+(4.304 -0.109736 0)
+(4.46664 -0.0894393 0)
+(4.63829 -0.0678252 0)
+(4.82011 -0.0450024 -4.52878e-18)
+(5.01161 -0.0210239 4.07834e-18)
+(5.21673 0.0037717 -7.26893e-18)
+(5.42966 0.0295248 0)
+(5.6677 0.0548377 5.27581e-18)
+(5.89696 0.0809259 4.05964e-18)
+(6.19868 0.10175 0)
+(6.40204 0.120493 1.39859e-18)
+(6.87313 0.111374 0)
+(3.01189 -0.297651 0)
+(3.09216 -0.289906 -4.70155e-18)
+(3.17218 -0.281598 4.58334e-18)
+(3.25703 -0.272984 8.91037e-18)
+(3.3475 -0.263854 0)
+(3.44322 -0.254091 -8.36041e-18)
+(3.54455 -0.2436 0)
+(3.65181 -0.232241 0)
+(3.76529 -0.219887 0)
+(3.88531 -0.206424 0)
+(4.01219 -0.191749 0)
+(4.1463 -0.17578 -6.42781e-18)
+(4.28803 -0.158462 0)
+(4.43776 -0.139768 5.66463e-18)
+(4.59607 -0.119712 0)
+(4.76328 -0.0983337 -4.86085e-18)
+(4.94058 -0.0757354 4.45308e-18)
+(5.12751 -0.0520279 -7.99985e-18)
+(5.32794 -0.0274541 0)
+(5.53621 -0.00215172 0)
+(5.76928 0.0230536 -5.17447e-18)
+(5.99395 0.0480508 -2.82951e-20)
+(6.28956 0.0696125 0)
+(6.48911 0.0853072 -1.83729e-20)
+(6.94849 0.0818968 1.53413e-18)
+(3.19887 -0.3212 0)
+(3.276 -0.314061 2.31444e-18)
+(3.3529 -0.306326 0)
+(3.43445 -0.298245 -4.39968e-18)
+(3.52152 -0.289636 0)
+(3.61372 -0.280369 6.63872e-21)
+(3.71141 -0.270347 3.97998e-18)
+(3.81491 -0.259432 -3.82929e-18)
+(3.92451 -0.247496 0)
+(4.04054 -0.234422 -3.50958e-18)
+(4.16331 -0.220107 0)
+(4.29319 -0.204471 0)
+(4.43057 -0.187459 0)
+(4.57584 -0.169049 -5.6061e-18)
+(4.72958 -0.14926 0)
+(4.89213 -0.128148 4.80853e-18)
+(5.06466 -0.105807 0)
+(5.24675 -0.0824035 7.87578e-18)
+(5.44223 -0.0580886 -3.47881e-18)
+(5.64559 -0.0332628 2.98917e-18)
+(5.87341 -0.00820469 2.52413e-18)
+(6.0932 0.0157171 -2.55811e-20)
+(6.38245 0.0379751 0)
+(6.57785 0.0508156 -1.32874e-18)
+(7.02581 0.053034 -3.00938e-18)
+(3.39273 -0.343753 0)
+(3.46646 -0.337214 -2.29547e-18)
+(3.54003 -0.330068 2.2369e-18)
+(3.61807 -0.322537 0)
+(3.70152 -0.314465 4.22717e-18)
+(3.79 -0.305711 8.18924e-18)
+(3.88385 -0.296177 -6.18017e-21)
+(3.9834 -0.285725 3.80675e-18)
+(4.08894 -0.274226 0)
+(4.20078 -0.261561 3.49017e-18)
+(4.31924 -0.247629 0)
+(4.44469 -0.232347 0)
+(4.57753 -0.215665 0)
+(4.71813 -0.197566 0)
+(4.86708 -0.178072 0)
+(5.02473 -0.157255 0)
+(5.19227 -0.135203 0)
+(5.36929 -0.112134 -1.47545e-20)
+(5.55957 -0.088114 3.45474e-18)
+(5.75775 -0.0637895 -2.96699e-18)
+(5.98005 -0.0389173 -4.99434e-18)
+(6.19472 -0.0160554 -3.83618e-18)
+(6.47737 0.00685594 -3.03542e-18)
+(6.66834 0.0170204 0)
+(7.10506 0.024741 1.48369e-18)
+(3.5933 -0.365249 0)
+(3.66335 -0.359318 0)
+(3.73336 -0.352789 -2.22908e-18)
+(3.80768 -0.345831 2.16886e-18)
+(3.88731 -0.338318 -4.21602e-18)
+(3.97187 -0.330101 -4.08236e-18)
+(4.06169 -0.321077 -3.94169e-18)
+(4.15711 -0.311112 3.78814e-18)
+(4.2584 -0.300072 0)
+(4.36586 -0.287837 3.47239e-18)
+(4.47983 -0.274309 0)
+(4.60066 -0.259403 0)
+(4.72874 -0.243074 0)
+(4.86447 -0.225308 0)
+(5.00841 -0.206135 0)
+(5.16096 -0.185641 4.72787e-18)
+(5.32328 -0.163909 0)
+(5.495 -0.141205 -1.40767e-20)
+(5.67985 -0.117514 3.41843e-18)
+(5.87262 -0.0937144 0)
+(6.08917 -0.0690664 2.48204e-18)
+(6.29846 -0.0472476 0)
+(6.57428 -0.0237286 3.02059e-18)
+(6.76057 -0.0160773 0)
+(7.18619 -0.00301779 0)
+(3.80037 -0.385644 2.34802e-18)
+(3.86647 -0.380338 0)
+(3.93271 -0.374458 0)
+(4.00309 -0.368099 -2.17076e-18)
+(4.07868 -0.361174 2.10579e-18)
+(4.15912 -0.353522 -2.03927e-18)
+(4.24472 -0.345036 -1.96912e-18)
+(4.3358 -0.33558 -3.79613e-18)
+(4.43264 -0.325022 3.6362e-18)
+(4.53554 -0.31324 -3.48104e-18)
+(4.64483 -0.300137 0)
+(4.76084 -0.285629 3.13227e-18)
+(4.88398 -0.269674 0)
+(5.01463 -0.252266 0)
+(5.15339 -0.23344 0)
+(5.30063 -0.213295 -4.74024e-18)
+(5.45752 -0.191911 0)
+(5.62374 -0.169602 -7.73948e-18)
+(5.80295 -0.146274 -3.42464e-18)
+(5.99009 -0.123022 -2.92367e-18)
+(6.20064 -0.0986354 -2.45957e-18)
+(6.40434 -0.077844 0)
+(6.67311 -0.053766 0)
+(6.85452 -0.0484793 0)
+(7.26914 -0.0302734 7.16956e-19)
+(4.01369 -0.404891 -2.35561e-18)
+(4.07553 -0.400229 0)
+(4.13776 -0.395037 0)
+(4.20398 -0.38931 0)
+(4.27532 -0.383005 -2.11577e-18)
+(4.35143 -0.37595 2.13281e-21)
+(4.4326 -0.368031 1.97972e-18)
+(4.51916 -0.359114 0)
+(4.61137 -0.349063 -3.65777e-18)
+(4.70952 -0.337758 0)
+(4.81394 -0.325102 -3.32187e-18)
+(4.92497 -0.311015 -6.34018e-21)
+(5.04299 -0.295457 0)
+(5.1684 -0.278432 0)
+(5.30178 -0.259977 0)
+(5.44353 -0.24021 0)
+(5.5948 -0.219204 0)
+(5.75533 -0.197318 1.94983e-18)
+(5.92869 -0.174386 0)
+(6.11001 -0.151703 2.93935e-18)
+(6.31435 -0.127614 1.15316e-20)
+(6.51226 -0.107835 0)
+(6.77378 -0.0832482 0)
+(6.95014 -0.0801905 0)
+(7.3538 -0.0570533 -7.18246e-19)
+(4.23283 -0.422934 0)
+(4.29014 -0.418943 0)
+(4.34812 -0.414482 -2.24867e-18)
+(4.40998 -0.409429 0)
+(4.47686 -0.403781 0)
+(4.54844 -0.397362 2.06537e-18)
+(4.625 -0.390046 0)
+(4.70686 -0.381698 0)
+(4.79427 -0.372185 0)
+(4.88752 -0.361384 0)
+(4.98691 -0.349201 5.80025e-21)
+(5.09278 -0.335558 -6.35094e-18)
+(5.20552 -0.320423 0)
+(5.32551 -0.303802 0)
+(5.45334 -0.285744 0)
+(5.58943 -0.26638 2.38955e-18)
+(5.73491 -0.245782 -2.17433e-18)
+(5.88958 -0.224345 1.95591e-18)
+(6.0569 -0.201841 0)
+(6.23221 -0.179749 0)
+(6.43016 -0.155992 4.95112e-18)
+(6.6221 -0.137212 1.88461e-18)
+(6.87618 -0.112169 0)
+(7.04734 -0.111216 0)
+(7.44007 -0.08338 7.04845e-19)
+(4.45741 -0.439725 0)
+(4.50991 -0.436436 1.16364e-18)
+(4.56344 -0.432755 2.27439e-18)
+(4.62074 -0.428425 2.21695e-18)
+(4.68297 -0.42348 0)
+(4.74984 -0.41774 -2.08771e-18)
+(4.82161 -0.411066 0)
+(4.8986 -0.403325 1.94221e-18)
+(4.98104 -0.39438 0)
+(5.06922 -0.384111 0)
+(5.16342 -0.372427 5.09072e-18)
+(5.26397 -0.359252 3.21649e-18)
+(5.37127 -0.344562 0)
+(5.48568 -0.32837 0)
+(5.60781 -0.310735 0)
+(5.73807 -0.291799 -2.42285e-18)
+(5.8776 -0.271636 2.20428e-18)
+(6.02623 -0.250678 1.96983e-18)
+(6.18736 -0.228633 0)
+(6.3565 -0.207151 0)
+(6.54787 -0.183763 -2.50038e-18)
+(6.7337 -0.165968 -1.90676e-18)
+(6.98016 -0.140523 0)
+(7.14601 -0.141562 -6.4224e-19)
+(7.52781 -0.109273 -1.02274e-20)
+(4.68702 -0.455212 0)
+(4.73446 -0.452667 -2.59768e-23)
+(4.78331 -0.449822 0)
+(4.83588 -0.446272 -2.25155e-18)
+(4.89326 -0.442077 0)
+(4.95524 -0.437062 2.12158e-18)
+(5.02204 -0.431074 0)
+(5.09399 -0.423977 -1.8815e-21)
+(5.1713 -0.415635 0)
+(5.25424 -0.405929 0)
+(5.3431 -0.394771 -1.72455e-18)
+(5.43819 -0.38209 0)
+(5.53989 -0.367869 0)
+(5.64858 -0.352131 0)
+(5.76485 -0.334943 -1.33342e-18)
+(5.88915 -0.316464 2.4525e-18)
+(6.02258 -0.296765 0)
+(6.16503 -0.276312 -6.04264e-21)
+(6.31981 -0.254756 1.75947e-18)
+(6.48264 -0.233906 0)
+(6.66728 -0.21092 1.2593e-18)
+(6.84686 -0.1941 0)
+(7.08556 -0.168309 0)
+(7.246 -0.171235 6.51133e-19)
+(7.61688 -0.13475 -7.09807e-19)
+(4.92114 -0.469345 0)
+(4.96329 -0.467592 -2.40696e-18)
+(5.00725 -0.465643 0)
+(5.05489 -0.462933 0)
+(5.10725 -0.459544 0)
+(5.16416 -0.455304 0)
+(5.22584 -0.450048 1.04448e-18)
+(5.29259 -0.443638 -2.01343e-18)
+(5.36462 -0.435936 0)
+(5.44218 -0.426826 0)
+(5.52555 -0.416223 0)
+(5.61503 -0.404063 1.66246e-18)
+(5.711 -0.390337 0)
+(5.81383 -0.375079 1.4641e-18)
+(5.92412 -0.358366 1.36185e-18)
+(6.04231 -0.34037 -2.50459e-18)
+(6.16953 -0.321163 0)
+(6.30568 -0.301243 -2.03921e-18)
+(6.45398 -0.280208 -1.79548e-18)
+(6.61037 -0.260008 0)
+(6.78814 -0.237461 -2.56254e-18)
+(6.96137 -0.221604 -9.75444e-19)
+(7.19218 -0.195525 0)
+(7.34715 -0.200242 0)
+(7.70709 -0.159826 0)
+(5.15914 -0.482072 -6.31392e-19)
+(5.19579 -0.481167 1.23128e-18)
+(5.23466 -0.48018 0)
+(5.27722 -0.478378 0)
+(5.32439 -0.475852 0)
+(5.37608 -0.472443 -1.10654e-18)
+(5.43248 -0.467971 -1.06979e-18)
+(5.49388 -0.462292 1.02975e-18)
+(5.56049 -0.455271 0)
+(5.63254 -0.446792 0)
+(5.71029 -0.436775 -8.98525e-19)
+(5.79404 -0.425164 -1.70412e-18)
+(5.88415 -0.41196 0)
+(5.98101 -0.397209 -1.5009e-18)
+(6.0852 -0.380998 -1.38973e-18)
+(6.19719 -0.363514 -1.27728e-18)
+(6.31807 -0.344828 0)
+(6.44782 -0.325468 1.03864e-18)
+(6.58954 -0.304984 0)
+(6.7394 -0.285456 0)
+(6.91019 -0.263382 1.30822e-18)
+(7.07698 -0.248481 9.97389e-19)
+(7.29979 -0.222171 0)
+(7.44923 -0.228592 -3.41118e-19)
+(7.79825 -0.184511 3.48571e-19)
+(5.40029 -0.493345 6.48487e-19)
+(5.43126 -0.493355 0)
+(5.46486 -0.493395 6.18861e-19)
+(5.50219 -0.492576 0)
+(5.54404 -0.490977 0)
+(5.59036 -0.488457 1.13769e-18)
+(5.64136 -0.484821 5.49609e-19)
+(5.69729 -0.479923 -1.05913e-18)
+(5.75836 -0.473625 0)
+(5.82478 -0.465814 0)
+(5.8968 -0.456416 9.2453e-19)
+(5.97471 -0.445384 0)
+(6.05886 -0.43273 0)
+(6.14964 -0.418515 -7.69218e-19)
+(6.24763 -0.402836 7.16535e-19)
+(6.35333 -0.385893 1.31411e-18)
+(6.46779 -0.367759 0)
+(6.59106 -0.348988 -1.06803e-18)
+(6.72612 -0.329085 9.36286e-19)
+(6.86937 -0.310249 0)
+(7.03309 -0.288682 -6.66538e-19)
+(7.19338 -0.274735 0)
+(7.40812 -0.248243 0)
+(7.55202 -0.256307 3.49438e-19)
+(7.89011 -0.208801 -5.31042e-19)
+(5.64368 -0.503122 0)
+(5.66884 -0.504119 3.26949e-19)
+(5.69701 -0.505259 -6.3871e-19)
+(5.72901 -0.5055 0)
+(5.76542 -0.504897 0)
+(5.80626 -0.503326 0)
+(5.85175 -0.500586 -5.67585e-19)
+(5.90212 -0.496519 0)
+(5.95755 -0.490989 -5.24191e-19)
+(6.01825 -0.483883 0)
+(6.08445 -0.475137 0)
+(6.15643 -0.464716 4.50919e-19)
+(6.23453 -0.452645 0)
+(6.31917 -0.438996 1.19135e-18)
+(6.4109 -0.42388 7.37039e-19)
+(6.51024 -0.407508 -3.37763e-19)
+(6.61823 -0.389957 0)
+(6.73496 -0.371803 0)
+(6.8633 -0.352511 -9.66016e-19)
+(6.99989 -0.33439 0)
+(7.15649 -0.31336 3.44681e-19)
+(7.31025 -0.30037 0)
+(7.51685 -0.273739 0)
+(7.65521 -0.283405 0)
+(7.9824 -0.232694 1.79125e-19)
+(5.88824 -0.511385 0)
+(5.9075 -0.513445 -3.48677e-19)
+(5.93014 -0.515758 0)
+(5.95671 -0.517143 0)
+(5.98761 -0.517605 0)
+(6.02291 -0.517046 0)
+(6.06281 -0.51526 0)
+(6.10755 -0.512077 0)
+(6.15728 -0.507358 5.61746e-19)
+(6.2122 -0.500996 0)
+(6.27252 -0.492937 0)
+(6.33851 -0.483159 -4.84061e-19)
+(6.41053 -0.471701 0)
+(6.48896 -0.458651 -4.26166e-19)
+(6.5744 -0.44413 0)
+(6.66735 -0.428362 3.63152e-19)
+(6.76885 -0.411425 0)
+(6.87901 -0.393915 0)
+(7.00061 -0.375267 0)
+(7.13052 -0.357873 0)
+(7.27997 -0.337433 3.67903e-19)
+(7.42721 -0.325362 0)
+(7.62564 -0.298723 0)
+(7.7585 -0.309786 0)
+(8.07483 -0.256347 0)
+(6.15697 -0.51876 0)
+(6.16976 -0.522091 3.59197e-19)
+(6.18623 -0.525769 0)
+(6.20681 -0.528506 0)
+(6.23163 -0.530221 0)
+(6.26079 -0.530846 0)
+(6.29454 -0.530174 0)
+(6.33307 -0.528022 6.15794e-19)
+(6.37653 -0.524245 0)
+(6.42507 -0.518744 5.68623e-19)
+(6.4789 -0.511479 -5.42781e-19)
+(6.53829 -0.502444 0)
+(6.6036 -0.491697 0)
+(6.67522 -0.479341 -4.56256e-19)
+(6.75375 -0.465511 0)
+(6.83969 -0.450438 7.81409e-19)
+(6.93405 -0.434214 0)
+(7.03702 -0.417435 6.37223e-19)
+(7.15121 -0.399546 5.60682e-19)
+(7.2738 -0.382936 0)
+(7.41539 -0.363266 0)
+(7.55548 -0.352027 3.06439e-19)
+(7.74495 -0.325813 0)
+(7.87182 -0.337649 0)
+(8.17628 -0.282567 1.9476e-19)
+(6.44713 -0.524476 0)
+(6.45298 -0.529373 3.88506e-19)
+(6.46275 -0.53464 0)
+(6.47687 -0.53897 0)
+(6.49512 -0.542168 0)
+(6.51768 -0.544187 0)
+(6.54479 -0.544823 1.37854e-18)
+(6.57663 -0.543872 6.6656e-19)
+(6.6133 -0.541188 0)
+(6.65494 -0.536684 6.15562e-19)
+(6.70176 -0.53034 5.88868e-19)
+(6.75401 -0.522169 0)
+(6.81207 -0.512254 0)
+(6.87634 -0.500709 1.48616e-18)
+(6.94742 -0.487687 0)
+(7.0258 -0.473422 -8.50276e-19)
+(7.11247 -0.458027 -1.54355e-18)
+(7.20767 -0.442078 6.89958e-19)
+(7.31389 -0.42508 -6.1033e-19)
+(7.42855 -0.409315 -1.04131e-18)
+(7.56167 -0.390634 0)
+(7.69403 -0.3801 -3.33382e-19)
+(7.87388 -0.354865 0)
+(7.99422 -0.366648 0)
+(8.28602 -0.311398 -2.11195e-19)
+(6.73051 -0.527894 0)
+(6.72975 -0.534556 -8.20572e-19)
+(6.73305 -0.541512 1.61745e-18)
+(6.74092 -0.547541 0)
+(6.75287 -0.552339 -1.54657e-18)
+(6.76908 -0.555852 1.50542e-18)
+(6.7898 -0.55788 1.09164e-21)
+(6.81517 -0.5582 -1.41126e-18)
+(6.84525 -0.556667 0)
+(6.88019 -0.553212 -1.3047e-18)
+(6.92019 -0.547841 0)
+(6.96551 -0.540588 0)
+(7.01653 -0.531559 0)
+(7.07365 -0.520878 -3.14301e-18)
+(7.13747 -0.508712 0)
+(7.20849 -0.495302 0)
+(7.28766 -0.48078 1.63376e-18)
+(7.37527 -0.465702 -1.46379e-18)
+(7.47367 -0.449638 0)
+(7.58057 -0.434748 1.10025e-18)
+(7.7054 -0.417109 -1.82226e-18)
+(7.83015 -0.407269 0)
+(8.00058 -0.383142 0)
+(8.11446 -0.394689 0)
+(8.39392 -0.339833 0)
+(7.00214 -0.52906 -1.78667e-18)
+(6.99538 -0.537688 1.75949e-18)
+(6.99273 -0.546438 -1.72411e-18)
+(6.99484 -0.554267 0)
+(7.00098 -0.56078 1.64864e-18)
+(7.01131 -0.565884 -1.60458e-18)
+(7.0261 -0.569375 -1.55652e-18)
+(7.04542 -0.571023 0)
+(7.06932 -0.570692 0)
+(7.09794 -0.56834 2.78022e-18)
+(7.1315 -0.563996 2.65386e-18)
+(7.17027 -0.557714 -2.52047e-18)
+(7.21463 -0.549623 0)
+(7.26496 -0.539856 2.23395e-18)
+(7.32187 -0.528593 0)
+(7.38584 -0.516082 -3.81372e-18)
+(7.45782 -0.502474 0)
+(7.53811 -0.488306 3.10254e-18)
+(7.62898 -0.47321 0)
+(7.72836 -0.459234 0)
+(7.84518 -0.442672 1.93534e-18)
+(7.96251 -0.433553 0)
+(8.12381 -0.410578 0)
+(8.23137 -0.421876 0)
+(8.49886 -0.367713 0)
+(7.25546 -0.528104 1.91715e-18)
+(7.24372 -0.538893 -3.78382e-18)
+(7.23604 -0.549527 0)
+(7.2332 -0.559249 -3.64379e-18)
+(7.23437 -0.567589 0)
+(7.23964 -0.574367 3.45454e-18)
+(7.24922 -0.579369 0)
+(7.26319 -0.582388 -3.23384e-18)
+(7.28157 -0.583307 0)
+(7.30454 -0.582108 -2.98546e-18)
+(7.33232 -0.578842 -5.69959e-18)
+(7.36517 -0.57358 2.70803e-18)
+(7.40348 -0.566471 0)
+(7.44756 -0.55766 0)
+(7.49808 -0.547342 0)
+(7.55545 -0.535765 4.09407e-18)
+(7.62068 -0.523107 0)
+(7.69408 -0.509885 -6.6463e-18)
+(7.77784 -0.495793 0)
+(7.87008 -0.482762 0)
+(7.97927 -0.467311 0)
+(8.08949 -0.458927 0)
+(8.24199 -0.437161 0)
+(8.34345 -0.448161 1.17214e-18)
+(8.59948 -0.39506 -8.72898e-19)
+(7.48182 -0.525268 0)
+(7.4667 -0.538394 2.0437e-18)
+(7.45546 -0.551018 0)
+(7.44905 -0.562683 3.93105e-18)
+(7.44651 -0.572896 -3.84592e-18)
+(7.44783 -0.581399 8.68903e-21)
+(7.45332 -0.587973 3.61694e-18)
+(7.46309 -0.592399 3.48967e-18)
+(7.47705 -0.594598 0)
+(7.49543 -0.594592 -3.22652e-18)
+(7.51843 -0.592443 3.0811e-18)
+(7.54631 -0.588238 -5.84777e-18)
+(7.57943 -0.582136 0)
+(7.61806 -0.574294 0)
+(7.66285 -0.564939 0)
+(7.71435 -0.554337 -4.41114e-18)
+(7.77346 -0.542658 0)
+(7.84059 -0.530414 3.58553e-18)
+(7.91777 -0.517355 0)
+(8.00344 -0.505305 0)
+(8.10552 -0.491004 0)
+(8.20902 -0.483355 0)
+(8.35321 -0.462882 0)
+(8.44888 -0.473498 -1.25554e-18)
+(8.6941 -0.421877 9.30964e-19)
+(7.67069 -0.520962 0)
+(7.65432 -0.536567 0)
+(7.64165 -0.551258 0)
+(7.6336 -0.564877 4.27782e-18)
+(7.62923 -0.576991 -1.38785e-20)
+(7.62839 -0.587242 1.08554e-20)
+(7.6315 -0.595381 -7.83911e-18)
+(7.63865 -0.601236 3.78871e-18)
+(7.64982 -0.604747 7.30288e-18)
+(7.6651 -0.605942 3.50211e-18)
+(7.6847 -0.60491 0)
+(7.70886 -0.601759 1.27049e-17)
+(7.7379 -0.596673 0)
+(7.77228 -0.589835 0)
+(7.81243 -0.581451 0)
+(7.85903 -0.571822 4.80241e-18)
+(7.9129 -0.561137 0)
+(7.97453 -0.54989 0)
+(8.04586 -0.537888 0)
+(8.12568 -0.526841 -5.80638e-18)
+(8.22119 -0.513695 0)
+(8.31852 -0.506781 0)
+(8.45506 -0.487703 0)
+(8.54539 -0.497835 1.37978e-18)
+(8.78067 -0.448139 9.39477e-19)
+(7.81165 -0.515899 0)
+(7.7965 -0.534035 0)
+(7.78495 -0.550836 0)
+(7.77766 -0.56635 -9.22928e-18)
+(7.77375 -0.580283 4.4955e-18)
+(7.7731 -0.59224 -4.37464e-18)
+(7.77603 -0.60192 -4.26167e-18)
+(7.78255 -0.609153 -4.10061e-18)
+(7.79278 -0.613927 -7.90958e-18)
+(7.80672 -0.616295 0)
+(7.82457 -0.616357 0)
+(7.8466 -0.614243 -6.90305e-18)
+(7.8731 -0.610141 0)
+(7.90464 -0.60428 6.11126e-18)
+(7.94159 -0.596879 5.6771e-18)
+(7.98459 -0.588226 0)
+(8.03442 -0.578534 0)
+(8.09168 -0.568289 8.475e-18)
+(8.15821 -0.557351 0)
+(8.23303 -0.547307 9.29638e-21)
+(8.32277 -0.535326 0)
+(8.41471 -0.529137 -4.00987e-18)
+(8.54448 -0.51156 0)
+(8.63004 -0.521087 -1.49871e-18)
+(8.85664 -0.473801 -1.01588e-18)
+(7.90055 -0.510792 0)
+(7.88847 -0.531423 -5.16363e-18)
+(7.88009 -0.550327 0)
+(7.87556 -0.56764 4.95036e-18)
+(7.8741 -0.583286 0)
+(7.87566 -0.596841 0)
+(7.88043 -0.607934 9.15686e-18)
+(7.88836 -0.616432 0)
+(7.89944 -0.622367 0)
+(7.91379 -0.625806 8.22486e-18)
+(7.93164 -0.626875 0)
+(7.95325 -0.62573 -7.48994e-18)
+(7.97891 -0.622584 0)
+(8.00914 -0.617661 -7.41782e-21)
+(8.04437 -0.611193 -6.1997e-18)
+(8.08526 -0.603485 0)
+(8.13251 -0.594759 0)
+(8.18681 -0.58551 -9.30099e-18)
+(8.24981 -0.57563 0)
+(8.32076 -0.566563 6.95125e-18)
+(8.40597 -0.555775 5.70171e-18)
+(8.49356 -0.550313 4.40584e-18)
+(8.61771 -0.534358 0)
+(8.69931 -0.543146 0)
+(8.91896 -0.498811 -2.09644e-18)
+(7.94275 -0.50602 0)
+(7.93419 -0.529169 -4.04711e-20)
+(7.92976 -0.550172 0)
+(7.92887 -0.569171 0)
+(7.9308 -0.586374 0)
+(7.9356 -0.60137 1.01827e-17)
+(7.94339 -0.613702 -9.89966e-18)
+(7.95397 -0.623278 9.59236e-18)
+(7.96723 -0.630206 0)
+(7.98331 -0.634584 6.34245e-21)
+(8.00245 -0.636542 0)
+(8.02493 -0.636261 8.16288e-18)
+(8.05103 -0.633972 0)
+(8.08125 -0.629909 -7.29556e-18)
+(8.11605 -0.62431 0)
+(8.15608 -0.617487 0)
+(8.20204 -0.60968 0)
+(8.25465 -0.601375 -1.02784e-17)
+(8.31542 -0.592514 9.00571e-18)
+(8.38378 -0.584406 -7.71325e-18)
+(8.46576 -0.574829 -1.26797e-17)
+(8.55024 -0.570076 -9.81825e-18)
+(8.67023 -0.555912 0)
+(8.74887 -0.563799 0)
+(8.9639 -0.523086 4.58626e-18)
+(7.94849 -0.501378 -5.93847e-18)
+(7.94268 -0.527182 1.17043e-17)
+(7.94178 -0.550311 0)
+(7.9442 -0.570927 0)
+(7.94927 -0.589582 0)
+(7.9572 -0.605889 4.41177e-20)
+(7.96802 -0.619298 2.12735e-17)
+(7.98138 -0.629776 -1.03308e-17)
+(7.99707 -0.637525 0)
+(8.01524 -0.642679 -9.68355e-18)
+(8.03609 -0.64538 0)
+(8.0599 -0.64583 0)
+(8.08697 -0.644277 0)
+(8.11777 -0.640967 0)
+(8.15276 -0.636146 0)
+(8.19265 -0.630127 0)
+(8.23807 -0.623166 1.27768e-17)
+(8.28984 -0.61574 1.15446e-17)
+(8.34931 -0.607843 -1.01423e-17)
+(8.41619 -0.600653 6.06287e-21)
+(8.49614 -0.592294 7.17001e-18)
+(8.5788 -0.588214 1.11385e-17)
+(8.69626 -0.576046 -8.07624e-18)
+(8.77318 -0.582806 0)
+(8.98662 -0.546555 -2.55531e-18)
+(7.92638 -0.496361 1.24639e-17)
+(7.92212 -0.525015 -1.8575e-17)
+(7.9237 -0.550265 1.22635e-17)
+(7.92828 -0.572439 0)
+(7.93528 -0.592471 -1.18812e-17)
+(7.94518 -0.609955 5.07543e-20)
+(7.95791 -0.624266 3.78494e-20)
+(7.97295 -0.635464 0)
+(7.99004 -0.643853 0)
+(8.00934 -0.649603 0)
+(8.03103 -0.652872 0)
+(8.05539 -0.653895 -1.94464e-17)
+(8.08269 -0.652932 0)
+(8.11349 -0.650247 0)
+(8.14818 -0.646092 1.6629e-17)
+(8.18762 -0.640792 0)
+(8.23236 -0.634607 -1.42788e-17)
+(8.28343 -0.628016 0)
+(8.34204 -0.621059 0)
+(8.40823 -0.614786 9.90542e-18)
+(8.48735 -0.607708 -1.63334e-17)
+(8.56967 -0.604298 -1.27827e-17)
+(8.68672 -0.59446 9.26724e-18)
+(8.76371 -0.599825 0)
+(8.97987 -0.56914 0)
+(7.8771 -0.490136 -6.56198e-18)
+(7.87342 -0.521864 1.30275e-17)
+(7.87657 -0.549159 -1.28819e-17)
+(7.8821 -0.572797 0)
+(7.88956 -0.594112 1.25309e-17)
+(7.89987 -0.612604 -1.2316e-17)
+(7.91284 -0.627599 4.27014e-20)
+(7.92774 -0.639304 -1.18341e-17)
+(7.94427 -0.648123 0)
+(7.9627 -0.654255 2.24278e-17)
+(7.98317 -0.657883 -2.17072e-17)
+(8.00604 -0.659285 4.19194e-17)
+(8.03155 -0.658733 0)
+(8.06041 -0.656521 0)
+(8.09305 -0.652905 -1.22124e-20)
+(8.13048 -0.648244 0)
+(8.17338 -0.642791 0)
+(8.22294 -0.63705 1.43312e-17)
+(8.28054 -0.631094 0)
+(8.34637 -0.625843 0)
+(8.42586 -0.620245 3.6747e-17)
+(8.50951 -0.617619 -6.87787e-21)
+(8.62893 -0.610631 0)
+(8.70855 -0.614389 -5.70896e-18)
+(8.93327 -0.59063 0)
+(7.78898 -0.481357 0)
+(7.78539 -0.516317 0)
+(7.78971 -0.545503 1.37211e-17)
+(7.79531 -0.570482 0)
+(7.80204 -0.592958 -1.33021e-17)
+(7.8114 -0.612221 1.30553e-17)
+(7.82299 -0.627616 4.6476e-20)
+(7.83587 -0.63957 1.24476e-17)
+(7.84981 -0.64857 2.43227e-17)
+(7.86516 -0.65484 -2.36355e-17)
+(7.88218 -0.658605 2.28955e-17)
+(7.90126 -0.660199 -4.4276e-17)
+(7.92285 -0.659912 0)
+(7.94771 -0.658078 2.03026e-17)
+(7.97661 -0.654963 -1.91988e-17)
+(8.01055 -0.650966 0)
+(8.05071 -0.646341 0)
+(8.09817 -0.641606 -1.52874e-17)
+(8.15495 -0.636876 2.72117e-17)
+(8.2209 -0.632903 0)
+(8.3022 -0.629133 -1.98959e-17)
+(8.38883 -0.627552 1.57896e-17)
+(8.51348 -0.624043 1.15937e-17)
+(8.59828 -0.626184 1.26917e-17)
+(8.83732 -0.610687 3.57879e-18)
+(7.63941 -0.468063 0)
+(7.63627 -0.506422 1.45788e-17)
+(7.64214 -0.537293 -1.42524e-17)
+(7.64758 -0.563451 0)
+(7.6531 -0.58689 -8.39903e-20)
+(7.66087 -0.606582 -1.35138e-17)
+(7.67031 -0.622042 -1.32045e-17)
+(7.68027 -0.633985 -2.58483e-17)
+(7.69076 -0.642955 -5.02181e-17)
+(7.70227 -0.649196 0)
+(7.71528 -0.653007 0)
+(7.73026 -0.654775 2.27239e-17)
+(7.74799 -0.654817 0)
+(7.76928 -0.6535 -3.40597e-21)
+(7.79527 -0.651105 1.96052e-17)
+(7.82694 -0.648055 -1.84007e-17)
+(7.86591 -0.644599 0)
+(7.91304 -0.641247 -3.11312e-17)
+(7.97085 -0.638141 -2.78185e-17)
+(8.03876 -0.635845 0)
+(8.12369 -0.634326 2.04626e-17)
+(8.21489 -0.63414 0)
+(8.34645 -0.634608 -1.20869e-17)
+(8.43736 -0.635409 -6.67163e-18)
+(8.6929 -0.628943 -6.76286e-21)
+(7.41208 -0.448921 0)
+(7.41063 -0.490695 -1.58735e-17)
+(7.41937 -0.523037 0)
+(7.4256 -0.550264 0)
+(7.43094 -0.574489 -8.35791e-20)
+(7.43836 -0.59433 0)
+(7.447 -0.609677 -2.87744e-17)
+(7.45558 -0.621564 2.78529e-17)
+(7.46445 -0.630543 2.69709e-17)
+(7.47433 -0.636881 0)
+(7.48588 -0.64096 -2.5098e-17)
+(7.49972 -0.643207 2.40694e-17)
+(7.51683 -0.643944 0)
+(7.53812 -0.643568 4.40395e-22)
+(7.56489 -0.642333 -2.04702e-17)
+(7.59814 -0.640698 1.91157e-17)
+(7.63962 -0.638841 0)
+(7.69004 -0.637285 3.2096e-17)
+(7.75202 -0.636141 -2.86265e-17)
+(7.82478 -0.635852 0)
+(7.91555 -0.636777 9.06061e-21)
+(8.01295 -0.638238 0)
+(8.15218 -0.642621 0)
+(8.2496 -0.642721 6.8758e-18)
+(8.52008 -0.644475 -1.19896e-17)
+(7.11848 -0.425305 0)
+(7.12194 -0.470411 0)
+(7.13647 -0.504071 0)
+(7.14607 -0.532383 0)
+(7.15406 -0.557333 -7.92659e-20)
+(7.16416 -0.577232 0)
+(7.17509 -0.592544 3.06368e-17)
+(7.18561 -0.604566 -2.96381e-17)
+(7.19642 -0.613801 0)
+(7.20842 -0.620546 2.73943e-17)
+(7.22236 -0.625249 2.61841e-17)
+(7.23903 -0.628352 -2.49791e-17)
+(7.25945 -0.630157 0)
+(7.28463 -0.631083 -4.47277e-17)
+(7.31587 -0.63133 2.0941e-17)
+(7.35422 -0.631391 3.89262e-17)
+(7.40124 -0.631345 0)
+(7.4578 -0.631751 0)
+(7.52623 -0.632637 5.77233e-17)
+(7.60584 -0.634413 -2.50787e-17)
+(7.70364 -0.637663 -4.22628e-17)
+(7.80801 -0.640888 0)
+(7.95521 -0.6486 -1.25607e-17)
+(8.05907 -0.648909 -6.89732e-18)
+(8.34258 -0.656967 8.09363e-18)
+(6.78157 -0.399801 1.89667e-17)
+(6.79357 -0.448223 -1.86376e-17)
+(6.81705 -0.483026 0)
+(6.83283 -0.512436 1.77846e-17)
+(6.84635 -0.538026 3.47047e-17)
+(6.86208 -0.557944 0)
+(6.87819 -0.573347 -3.22635e-17)
+(6.89364 -0.585687 3.09012e-17)
+(6.90942 -0.595377 0)
+(6.92657 -0.602759 -2.82918e-17)
+(6.94588 -0.608326 0)
+(6.96827 -0.612521 -2.55984e-17)
+(6.99479 -0.615586 0)
+(7.02642 -0.617967 2.27038e-17)
+(7.0644 -0.619796 -6.35624e-17)
+(7.10972 -0.621613 -7.84936e-17)
+(7.16392 -0.623375 0)
+(7.22783 -0.625718 3.25371e-17)
+(7.30379 -0.628545 -2.88973e-17)
+(7.3909 -0.63229 2.50499e-17)
+(7.49614 -0.637623 -2.5595e-20)
+(7.60745 -0.642572 1.67543e-17)
+(7.76252 -0.652999 2.51332e-17)
+(7.87196 -0.654256 -1.38154e-17)
+(8.16729 -0.666795 0)
+(6.4246 -0.374806 2.20005e-19)
+(6.44815 -0.426504 1.95949e-17)
+(6.48285 -0.462128 1.9079e-17)
+(6.50662 -0.492527 8.01336e-20)
+(6.52771 -0.518576 -1.80296e-17)
+(6.551 -0.53844 0)
+(6.57418 -0.554006 3.3421e-17)
+(6.59648 -0.566742 0)
+(6.61915 -0.57698 0)
+(6.64332 -0.58511 0)
+(6.66982 -0.591636 2.74982e-17)
+(6.69954 -0.596986 2.59982e-17)
+(6.73362 -0.601359 0)
+(6.77293 -0.605212 4.58763e-17)
+(6.8187 -0.608582 4.26783e-17)
+(6.87177 -0.612062 3.94218e-17)
+(6.93369 -0.615497 0)
+(7.00509 -0.619617 -3.25774e-17)
+(7.08852 -0.624176 0)
+(7.18278 -0.629695 0)
+(7.29515 -0.636805 -3.13873e-20)
+(7.41278 -0.64338 3.23656e-20)
+(7.57499 -0.655942 -1.26284e-17)
+(7.68888 -0.658592 -3.79502e-20)
+(7.99463 -0.674215 8.44292e-18)
+(6.0635 -0.351761 -2.12723e-17)
+(6.10072 -0.40663 -2.07743e-17)
+(6.14791 -0.442665 -1.98462e-17)
+(6.18067 -0.473825 -1.92517e-17)
+(6.21049 -0.500072 0)
+(6.24245 -0.519804 0)
+(6.27378 -0.535548 0)
+(6.30401 -0.548691 0)
+(6.3347 -0.559513 0)
+(6.36695 -0.568419 -2.95426e-17)
+(6.4016 -0.575911 -2.79086e-17)
+(6.4394 -0.582385 2.63468e-17)
+(6.48151 -0.587982 0)
+(6.5288 -0.593191 -9.2548e-17)
+(6.58243 -0.597948 0)
+(6.64317 -0.602917 0)
+(6.71247 -0.60781 0)
+(6.79089 -0.613478 0)
+(6.88094 -0.61951 0)
+(6.98143 -0.626554 0)
+(7.09984 -0.635127 -3.60949e-20)
+(7.22272 -0.64316 -1.69494e-17)
+(7.39089 -0.657322 0)
+(7.5078 -0.6616 1.41138e-17)
+(7.82231 -0.679263 9.1187e-20)
+(5.70678 -0.331285 0)
+(5.75917 -0.389065 2.166e-17)
+(5.81972 -0.425137 0)
+(5.86201 -0.456767 0)
+(5.90115 -0.482954 0)
+(5.94243 -0.502516 -3.68354e-17)
+(5.9826 -0.518455 0)
+(6.02145 -0.531975 3.35181e-17)
+(6.06075 -0.543356 0)
+(6.10151 -0.553006 -2.58878e-20)
+(6.14452 -0.561381 0)
+(6.19051 -0.568856 1.87018e-20)
+(6.24048 -0.57552 0)
+(6.29531 -0.581899 9.37214e-17)
+(6.35609 -0.587819 0)
+(6.42366 -0.594036 0)
+(6.49933 -0.60012 0)
+(6.58369 -0.607065 -3.32894e-17)
+(6.67915 -0.614277 2.9701e-17)
+(6.78458 -0.622583 0)
+(6.90756 -0.632299 2.18577e-17)
+(7.03427 -0.641591 -1.74164e-17)
+(7.20692 -0.656872 0)
+(7.32515 -0.662843 0)
+(7.6464 -0.681785 9.37512e-20)
+(5.35809 -0.313412 0)
+(5.42721 -0.373784 0)
+(5.50166 -0.409623 0)
+(5.55371 -0.441416 0)
+(5.60263 -0.467343 0)
+(5.65368 -0.486725 -5.64164e-20)
+(5.70312 -0.502847 0)
+(5.75095 -0.516694 3.8107e-20)
+(5.79894 -0.528564 3.24992e-17)
+(5.84806 -0.538838 3.06923e-17)
+(5.89902 -0.547937 -2.89735e-17)
+(5.95258 -0.556217 1.98867e-20)
+(6.0096 -0.563722 0)
+(6.07099 -0.571021 -9.57578e-17)
+(6.13775 -0.577841 0)
+(6.2108 -0.58503 0)
+(6.2914 -0.592021 0)
+(6.38024 -0.599954 -3.78043e-20)
+(6.47955 -0.608056 -3.0605e-17)
+(6.58836 -0.617348 -2.67067e-17)
+(6.71426 -0.627893 -2.27265e-17)
+(6.84303 -0.638214 1.811e-17)
+(7.01838 -0.654186 2.78123e-17)
+(7.13614 -0.661774 1.53643e-17)
+(7.46163 -0.681451 -9.58456e-18)
+(5.01764 -0.297929 -2.55601e-17)
+(5.10531 -0.360608 2.39864e-17)
+(5.1942 -0.396022 0)
+(5.25634 -0.427616 4.31416e-17)
+(5.31562 -0.453149 -4.11547e-17)
+(5.37674 -0.472378 3.90133e-17)
+(5.43554 -0.488628 0)
+(5.4922 -0.502673 -7.04467e-17)
+(5.54848 -0.514882 -3.34212e-17)
+(5.60525 -0.525583 0)
+(5.6632 -0.535183 2.98657e-17)
+(5.72312 -0.544015 -2.81458e-17)
+(5.78585 -0.552094 0)
+(5.85231 -0.560032 9.92317e-17)
+(5.92349 -0.567465 4.6325e-17)
+(6.00035 -0.575336 0)
+(6.08414 -0.582944 3.95074e-17)
+(6.17569 -0.591578 -4.17961e-20)
+(6.27708 -0.600273 3.21768e-17)
+(6.3874 -0.610269 5.62686e-17)
+(6.51443 -0.621341 -4.63943e-20)
+(6.64317 -0.632428 0)
+(6.81923 -0.648712 -2.95353e-17)
+(6.93456 -0.657714 -1.63259e-17)
+(7.26119 -0.677721 -1.0452e-17)
+(4.68335 -0.28444 2.7112e-17)
+(4.79167 -0.349186 -2.53403e-17)
+(4.8959 -0.384061 0)
+(4.9689 -0.41512 -4.51762e-17)
+(5.03896 -0.440173 8.60804e-17)
+(5.11025 -0.459209 4.08038e-17)
+(5.17811 -0.47544 0)
+(5.2429 -0.48947 7.35204e-17)
+(5.30642 -0.501792 0)
+(5.36954 -0.512654 0)
+(5.43295 -0.522478 0)
+(5.49754 -0.531574 2.96092e-17)
+(5.56421 -0.539936 0)
+(5.63388 -0.548213 4.28676e-20)
+(5.70756 -0.555964 4.17391e-20)
+(5.78627 -0.564218 0)
+(5.87127 -0.572152 -4.20823e-17)
+(5.96347 -0.581193 3.83432e-17)
+(6.06497 -0.590193 -3.44635e-17)
+(6.17464 -0.600598 -3.02703e-17)
+(6.30077 -0.611889 2.58584e-17)
+(6.42715 -0.623451 4.17747e-17)
+(6.60174 -0.639699 0)
+(6.71241 -0.649793 0)
+(7.0362 -0.669799 -9.93248e-20)
+(4.3518 -0.272445 0)
+(4.48315 -0.339115 0)
+(4.6041 -0.373388 0)
+(4.68895 -0.403596 -4.82428e-17)
+(4.76997 -0.428015 -4.57876e-17)
+(4.85097 -0.446696 -4.33637e-17)
+(4.9269 -0.462629 0)
+(4.99838 -0.476356 -7.83745e-17)
+(5.06738 -0.488479 0)
+(5.13492 -0.499195 3.54876e-17)
+(5.20175 -0.508927 0)
+(5.2689 -0.517977 -6.37824e-17)
+(5.33733 -0.526316 0)
+(5.40796 -0.534617 -5.68354e-17)
+(5.48192 -0.54239 -5.33522e-17)
+(5.56022 -0.550715 0)
+(5.64421 -0.558692 0)
+(5.73473 -0.567822 0)
+(5.83411 -0.576845 3.79189e-17)
+(5.94069 -0.587328 0)
+(6.06364 -0.59855 0)
+(6.18499 -0.61022 -4.60853e-17)
+(6.35559 -0.626131 0)
+(6.45898 -0.63685 1.98264e-17)
+(6.77519 -0.656565 2.54032e-17)
+(4.01754 -0.261503 0)
+(4.17502 -0.329944 -3.00423e-17)
+(4.3147 -0.363576 5.54761e-17)
+(4.41207 -0.392469 5.26686e-17)
+(4.50347 -0.415952 0)
+(4.59273 -0.433931 0)
+(4.67474 -0.449183 -4.52592e-17)
+(4.7506 -0.462211 4.30905e-17)
+(4.82258 -0.473786 0)
+(4.89203 -0.484002 -7.85054e-17)
+(4.95972 -0.493307 0)
+(5.02683 -0.501972 3.55011e-17)
+(5.0944 -0.509969 0)
+(5.16343 -0.517972 0)
+(5.2351 -0.525454 5.99415e-17)
+(5.31043 -0.533536 5.60197e-17)
+(5.39088 -0.541246 0)
+(5.47711 -0.550153 0)
+(5.57177 -0.558877 -8.56126e-17)
+(5.67256 -0.569112 -3.77782e-17)
+(5.78963 -0.579918 -6.46586e-17)
+(5.90303 -0.591341 0)
+(6.06654 -0.606564 0)
+(6.1596 -0.61736 1.15037e-19)
+(6.46302 -0.636509 -1.42912e-17)
+(3.67118 -0.251021 0)
+(3.8593 -0.321387 6.84882e-17)
+(4.02028 -0.353968 -6.30586e-17)
+(4.12976 -0.380779 0)
+(4.22931 -0.40266 -5.73033e-17)
+(4.32397 -0.41943 0)
+(4.40886 -0.433469 5.19416e-17)
+(4.4859 -0.445383 0)
+(4.5576 -0.455977 0)
+(4.62575 -0.46532 4.54344e-17)
+(4.69117 -0.473835 4.33814e-17)
+(4.75513 -0.48175 -8.26591e-17)
+(4.81877 -0.489081 0)
+(4.88322 -0.496415 0)
+(4.94966 -0.503324 -1.39961e-16)
+(5.01913 -0.510781 -6.54199e-17)
+(5.09314 -0.517963 6.06466e-17)
+(5.17217 -0.526231 0)
+(5.2591 -0.534402 4.99487e-17)
+(5.35111 -0.543942 4.39993e-17)
+(5.45897 -0.554053 7.5199e-17)
+(5.56135 -0.564738 0)
+(5.71408 -0.578954 0)
+(5.79338 -0.589172 -5.19122e-17)
+(6.07836 -0.607571 0)
+(3.29545 -0.238925 0)
+(3.52146 -0.311945 -4.17004e-17)
+(3.70521 -0.342798 7.71339e-17)
+(3.82365 -0.366247 0)
+(3.92657 -0.385442 7.02825e-17)
+(4.02191 -0.400359 6.70118e-17)
+(4.10515 -0.412567 0)
+(4.17895 -0.422903 -6.13762e-17)
+(4.24627 -0.432034 0)
+(4.30912 -0.440108 0)
+(4.36845 -0.447422 3.74009e-20)
+(4.42561 -0.454186 1.02268e-16)
+(4.48177 -0.460509 0)
+(4.53821 -0.466761 0)
+(4.59607 -0.472806 8.63924e-17)
+(4.65641 -0.479196 0)
+(4.72068 -0.48559 -7.45552e-17)
+(4.78925 -0.492728 0)
+(4.86502 -0.500094 0)
+(4.94488 -0.508394 0)
+(5.03977 -0.517541 0)
+(5.12767 -0.526883 7.35259e-17)
+(5.26538 -0.539762 0)
+(5.32716 -0.548624 3.12126e-17)
+(5.58758 -0.56616 0)
+(2.85114 -0.215212 0)
+(3.12469 -0.292202 -5.96133e-17)
+(3.3272 -0.322617 -1.10453e-16)
+(3.44538 -0.341847 0)
+(3.54345 -0.357177 0)
+(3.63238 -0.369495 -1.93319e-16)
+(3.70767 -0.379364 9.25958e-17)
+(3.77236 -0.387684 -6.4634e-20)
+(3.8302 -0.394921 0)
+(3.88298 -0.401316 0)
+(3.93167 -0.406996 4.86122e-20)
+(3.97778 -0.41221 -1.47505e-16)
+(4.02243 -0.417116 0)
+(4.067 -0.421887 0)
+(4.11254 -0.426657 0)
+(4.16007 -0.431561 -1.157e-16)
+(4.21095 -0.436731 0)
+(4.26539 -0.44227 -9.72945e-17)
+(4.32614 -0.44836 0)
+(4.38998 -0.454881 0)
+(4.46758 -0.462554 -1.29606e-16)
+(4.53696 -0.469902 1.86375e-19)
+(4.65453 -0.480967 0)
+(4.69457 -0.487488 0)
+(4.92292 -0.503625 -2.74958e-17)
+(2.12042 -0.156146 0)
+(2.45851 -0.22947 1.14585e-16)
+(2.65329 -0.259672 0)
+(2.74082 -0.274394 0)
+(2.81291 -0.285031 -1.94258e-16)
+(2.87773 -0.293539 1.85362e-16)
+(2.92885 -0.300122 6.29489e-20)
+(2.97001 -0.305395 1.69968e-16)
+(3.00407 -0.309673 0)
+(3.03274 -0.313113 1.55448e-16)
+(3.05751 -0.315997 -1.48258e-16)
+(3.08016 -0.318457 2.82212e-16)
+(3.10123 -0.320721 0)
+(3.1223 -0.322816 0)
+(3.14365 -0.324968 0)
+(3.16654 -0.327119 2.20325e-16)
+(3.19153 -0.329539 0)
+(3.21898 -0.332095 -7.16528e-20)
+(3.25087 -0.335137 0)
+(3.28427 -0.338331 0)
+(3.32855 -0.34244 2.43837e-16)
+(3.36331 -0.346132 1.53924e-19)
+(3.44158 -0.352696 0)
+(3.43994 -0.355123 -8.21166e-17)
+(3.61063 -0.366828 5.11281e-17)
 )
 ;
 
@@ -12254,26 +12255,23 @@ boundaryField
         type            fixedValue;
         value           uniform (10 0 0);
     }
-
     outlet
     {
         type            zeroGradient;
     }
-
     upperWall
     {
         type            noSlip;
     }
-
     lowerWall
     {
         type            noSlip;
     }
-
     frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/basic/scalarTransportFoam/pitzDaily/system/blockMeshDict b/tutorials/basic/scalarTransportFoam/pitzDaily/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/basic/scalarTransportFoam/pitzDaily/system/blockMeshDict
+++ b/tutorials/basic/scalarTransportFoam/pitzDaily/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict
+++ b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
diff --git a/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/system/blockMeshDict b/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/system/blockMeshDict
+++ b/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict
+++ b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/controlDict
index a8ea900b3c4..79d987bf353 100644
--- a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/controlDict
+++ b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/controlDict
@@ -23,13 +23,13 @@ startTime       0;
 
 stopAt          endTime;
 
-endTime         1;
+endTime         0.3;
 
 deltaT          0.0001;
 
 writeControl    adjustableRunTime;
 
-writeInterval   0.001;
+writeInterval   0.01;
 
 purgeWrite      0;
 
diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict b/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict
+++ b/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict
index 1727ab6e177..f5450fed6cc 100644
--- a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict
+++ b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict
@@ -18,71 +18,71 @@ convertToMeters 0.001;
 
 vertices
 (
-    (-70.0 0 -0.5)
-    (-70.0 3 -0.5)
-    (-70.0 12.7 -0.5)
-    (-70.0 25.4 -0.5)
+    (-70 0 -0.5)
+    (-70 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
-    (-70.0 0 0.5)
-    (-70.0 3 0.5)
-    (-70.0 12.7 0.5)
-    (-70.0 25.4 0.5)
+
+    (-70 0 0.5)
+    (-70 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
-blocks
+negY
 (
-    hex (0 6 7 1 22 28 29 23) (70 7 1) simpleGrading (1 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (70 10 1) simpleGrading (1 4 1)
-    hex (2 8 9 3 24 30 31 25) (70 13 1) simpleGrading (1 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    (2 4 1)
+    (1 3 0.3)
 );
 
-edges
+posY
 (
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+blocks
+(
+    hex (0 3 4 1 11 14 15 12)
+    (70 30 1)
+    simpleGrading (1 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 boundary
@@ -97,9 +97,7 @@ boundary
 
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -107,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -119,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -129,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -141,32 +135,16 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/system/blockMeshDict b/tutorials/incompressible/simpleFoam/pitzDaily/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/system/blockMeshDict
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/blockMeshDict b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/blockMeshDict
index 0e0fcf1c985..64be2e8a524 100644
--- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/blockMeshDict
+++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/blockMeshDict
@@ -19,66 +19,71 @@ convertToMeters 0.001;
 vertices
 (
     (-20.6 0 -0.5)
-    (-20.6 3 -0.5)
-    (-20.6 12.7 -0.5)
     (-20.6 25.4 -0.5)
     (0 -25.4 -0.5)
-    (0 -5 -0.5)
     (0 0 -0.5)
-    (0 3 -0.5)
-    (0 12.7 -0.5)
     (0 25.4 -0.5)
     (206 -25.4 -0.5)
-    (206 -8.5 -0.5)
     (206 0 -0.5)
-    (206 6.5 -0.5)
-    (206 17 -0.5)
     (206 25.4 -0.5)
     (290 -16.6 -0.5)
-    (290 -6.3 -0.5)
     (290 0 -0.5)
-    (290 4.5 -0.5)
-    (290 11 -0.5)
     (290 16.6 -0.5)
+
     (-20.6 0 0.5)
-    (-20.6 3 0.5)
-    (-20.6 12.7 0.5)
     (-20.6 25.4 0.5)
     (0 -25.4 0.5)
-    (0 -5 0.5)
     (0 0 0.5)
-    (0 3 0.5)
-    (0 12.7 0.5)
     (0 25.4 0.5)
     (206 -25.4 0.5)
-    (206 -8.5 0.5)
     (206 0 0.5)
-    (206 6.5 0.5)
-    (206 17 0.5)
     (206 25.4 0.5)
     (290 -16.6 0.5)
-    (290 -6.3 0.5)
     (290 0 0.5)
-    (290 4.5 0.5)
-    (290 11 0.5)
     (290 16.6 0.5)
 );
 
+negY
+(
+    (2 4 1)
+    (1 3 0.3)
+);
+
+posY
+(
+    (1 4 2)
+    (2 3 4)
+    (2 4 0.25)
+);
+
+posYR
+(
+    (2 1 1)
+    (1 1 0.25)
+);
+
+
 blocks
 (
-    hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
-    hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
-    hex (2 8 9 3 24 30 31 25) (18 13 1) simpleGrading (0.5 0.25 1)
-    hex (4 10 11 5 26 32 33 27) (180 18 1) simpleGrading (4 1 1)
-    hex (5 11 12 6 27 33 34 28) (180 9 1) edgeGrading (4 4 4 4 0.5 1 1 0.5 1 1 1 1)
-    hex (6 12 13 7 28 34 35 29) (180 7 1) edgeGrading (4 4 4 4 1.8 1 1 1.8 1 1 1 1)
-    hex (7 13 14 8 29 35 36 30) (180 10 1) edgeGrading (4 4 4 4 4 1 1 4 1 1 1 1)
-    hex (8 14 15 9 30 36 37 31) (180 13 1) simpleGrading (4 0.25 1)
-    hex (10 16 17 11 32 38 39 33) (25 18 1) simpleGrading (2.5 1 1)
-    hex (11 17 18 12 33 39 40 34) (25 9 1) simpleGrading (2.5 1 1)
-    hex (12 18 19 13 34 40 41 35) (25 7 1) simpleGrading (2.5 1 1)
-    hex (13 19 20 14 35 41 42 36) (25 10 1) simpleGrading (2.5 1 1)
-    hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
+    hex (0 3 4 1 11 14 15 12)
+    (18 30 1)
+    simpleGrading (0.5 $posY 1)
+
+    hex (2 5 6 3 13 16 17 14)
+    (180 27 1)
+    edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1)
+
+    hex (3 6 7 4 14 17 18 15)
+    (180 30 1)
+    edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1)
+
+    hex (5 8 9 6 16 19 20 17)
+    (25 27 1)
+    simpleGrading (2.5 1 1)
+
+    hex (6 9 10 7 17 20 21 18)
+    (25 30 1)
+    simpleGrading (2.5 $posYR 1)
 );
 
 edges
@@ -92,9 +97,7 @@ boundary
         type patch;
         faces
         (
-            (0 22 23 1)
-            (1 23 24 2)
-            (2 24 25 3)
+            (0 1 12 11)
         );
     }
     outlet
@@ -102,11 +105,8 @@ boundary
         type patch;
         faces
         (
-            (16 17 39 38)
-            (17 18 40 39)
-            (18 19 41 40)
-            (19 20 42 41)
-            (20 21 43 42)
+            (8 9 20 19)
+            (9 10 21 20)
         );
     }
     upperWall
@@ -114,9 +114,9 @@ boundary
         type wall;
         faces
         (
-            (3 25 31 9)
-            (9 31 37 15)
-            (15 37 43 21)
+            (1 4 15 12)
+            (4 7 18 15)
+            (7 10 21 18)
         );
     }
     lowerWall
@@ -124,11 +124,10 @@ boundary
         type wall;
         faces
         (
-            (0 6 28 22)
-            (6 5 27 28)
-            (5 4 26 27)
-            (4 10 32 26)
-            (10 16 38 32)
+            (0 3 14 11)
+            (3 2 13 14)
+            (2 5 16 13)
+            (5 8 19 16)
         );
     }
     frontAndBack
@@ -136,38 +135,18 @@ boundary
         type empty;
         faces
         (
-            (22 28 29 23)
-            (23 29 30 24)
-            (24 30 31 25)
-            (26 32 33 27)
-            (27 33 34 28)
-            (28 34 35 29)
-            (29 35 36 30)
-            (30 36 37 31)
-            (32 38 39 33)
-            (33 39 40 34)
-            (34 40 41 35)
-            (35 41 42 36)
-            (36 42 43 37)
-            (0 1 7 6)
-            (1 2 8 7)
-            (2 3 9 8)
-            (4 5 11 10)
-            (5 6 12 11)
-            (6 7 13 12)
-            (7 8 14 13)
-            (8 9 15 14)
-            (10 11 17 16)
-            (11 12 18 17)
-            (12 13 19 18)
-            (13 14 20 19)
-            (14 15 21 20)
+            (0 3 4 1)
+            (2 5 6 3)
+            (3 6 7 4)
+            (5 8 9 6)
+            (6 9 10 7)
+            (11 14 15 12)
+            (13 16 17 14)
+            (14 17 18 15)
+            (16 19 20 17)
+            (17 20 21 18)
         );
     }
 );
 
-mergePatchPairs
-(
-);
-
 // ************************************************************************* //
-- 
GitLab


From dc5a8671bdab8fbfb2a2467aefd6454c393b697b Mon Sep 17 00:00:00 2001
From: Will Bainbridge <http://cfd.direct>
Date: Fri, 17 Mar 2017 17:26:39 +0000
Subject: [PATCH 141/277] PatchInteractionModel: Skip application of patch
 interaction model for coupled patches, to prevent rebound/stick/etc... on
 these patches. Also added "none" interaction type to LocalInteraction, which
 reverts the patch interaction to the fundamental behaviour. This is primarily
 useful for non-coupled constraint types.

Resolves https://bugs.openfoam.org/view.php?id=2458
---
 .../parcels/Templates/KinematicParcel/KinematicParcel.C  | 5 +++++
 .../LocalInteraction/LocalInteraction.C                  | 4 ++++
 .../LocalInteraction/patchInteractionDataList.C          | 1 -
 .../PatchInteractionModel/PatchInteractionModel.C        | 9 +++++++++
 .../PatchInteractionModel/PatchInteractionModel.H        | 1 +
 .../StandardWallInteraction/StandardWallInteraction.C    | 4 ++++
 6 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index d159423646a..d2d44b92d33 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -410,6 +410,11 @@ bool Foam::KinematicParcel<ParcelType>::hitPatch
         // All interactions done
         return true;
     }
+    else if (pp.coupled())
+    {
+        // Don't apply the patchInteraction models to coupled boundaries
+        return false;
+    }
     else
     {
         // Invoke patch interaction model
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
index 42a47f4d45a..43eae8a83a2 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
@@ -191,6 +191,10 @@ bool Foam::LocalInteraction<CloudType>::correct
 
         switch (it)
         {
+            case PatchInteractionModel<CloudType>::itNone:
+            {
+                return false;
+            }
             case PatchInteractionModel<CloudType>::itEscape:
             {
                 scalar dm = p.mass()*p.nParticle();
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C
index 5a409811535..8bb4cd5b3b6 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C
@@ -74,7 +74,6 @@ Foam::patchInteractionDataList::patchInteractionDataList
         (
             !pp.coupled()
          && !isA<emptyPolyPatch>(pp)
-         && !isA<cyclicAMIPolyPatch>(pp)
          && applyToPatch(pp.index()) < 0
         )
         {
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
index e5788d4033d..94933828622 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
@@ -51,6 +51,11 @@ Foam::word Foam::PatchInteractionModel<CloudType>::interactionTypeToWord
 
     switch (itEnum)
     {
+        case itNone:
+        {
+            it = "none";
+            break;
+        }
         case itRebound:
         {
             it = "rebound";
@@ -82,6 +87,10 @@ Foam::PatchInteractionModel<CloudType>::wordToInteractionType
     const word& itWord
 )
 {
+    if (itWord == "none")
+    {
+        return itNone;
+    }
     if (itWord == "rebound")
     {
         return itRebound;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
index 3af6abee50d..ea761ebf874 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
@@ -65,6 +65,7 @@ public:
         // Interaction types
         enum interactionType
         {
+            itNone,
             itRebound,
             itStick,
             itEscape,
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
index 253a94c53bc..d7641ac389a 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
@@ -116,6 +116,10 @@ bool Foam::StandardWallInteraction<CloudType>::correct
     {
         switch (interactionType_)
         {
+            case PatchInteractionModel<CloudType>::itNone:
+            {
+                return false;
+            }
             case PatchInteractionModel<CloudType>::itEscape:
             {
                 keepParticle = false;
-- 
GitLab


From 98de22936506a8dbcff5a32ce94b10681caf9840 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 18 Mar 2017 17:10:48 +0000
Subject: [PATCH 142/277] Function1: Added "Ramp" to the names of the ramp
 functions to avoid conflict

with more general forms of those functions.
---
 src/OpenFOAM/Make/files                       | 10 +++---
 .../halfCosineRamp.C}                         | 10 +++---
 .../halfCosineRamp.H}                         | 20 ++++++------
 .../linear.C => linearRamp/linearRamp.C}      | 12 +++----
 .../linear.H => linearRamp/linearRamp.H}      | 24 +++++++-------
 .../quadraticRamp.C}                          | 10 +++---
 .../quadraticRamp.H}                          | 24 +++++++-------
 .../quarterCosineRamp.C}                      | 13 +++++---
 .../quarterCosineRamp.H}                      | 20 ++++++------
 .../quarterSineRamp.C}                        | 10 +++---
 .../quarterSineRamp.H}                        | 20 ++++++------
 .../oscillatingBox/0.orig/U                   | 31 ++++++++++++-------
 12 files changed, 108 insertions(+), 96 deletions(-)
 rename src/OpenFOAM/primitives/functions/Function1/{halfCosine/halfCosine.C => halfCosineRamp/halfCosineRamp.C} (87%)
 rename src/OpenFOAM/primitives/functions/Function1/{halfCosine/halfCosine.H => halfCosineRamp/halfCosineRamp.H} (88%)
 rename src/OpenFOAM/primitives/functions/Function1/{linear/linear.C => linearRamp/linearRamp.C} (86%)
 rename src/OpenFOAM/primitives/functions/Function1/{linear/linear.H => linearRamp/linearRamp.H} (84%)
 rename src/OpenFOAM/primitives/functions/Function1/{quadratic/quadratic.C => quadraticRamp/quadraticRamp.C} (87%)
 rename src/OpenFOAM/primitives/functions/Function1/{quadratic/quadratic.H => quadraticRamp/quadraticRamp.H} (85%)
 rename src/OpenFOAM/primitives/functions/Function1/{quarterCosine/quarterCosine.C => quarterCosineRamp/quarterCosineRamp.C} (86%)
 rename src/OpenFOAM/primitives/functions/Function1/{quarterCosine/quarterCosine.H => quarterCosineRamp/quarterCosineRamp.H} (87%)
 rename src/OpenFOAM/primitives/functions/Function1/{quarterSine/quarterSine.C => quarterSineRamp/quarterSineRamp.C} (87%)
 rename src/OpenFOAM/primitives/functions/Function1/{quarterSine/quarterSine.H => quarterSineRamp/quarterSineRamp.H} (87%)

diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index 32cdbee9caa..84f83567d01 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -79,11 +79,11 @@ primitives/triad/triad.C
 /* Run-time selectable functions */
 primitives/functions/Function1/makeDataEntries.C
 primitives/functions/Function1/ramp/ramp.C
-primitives/functions/Function1/linear/linear.C
-primitives/functions/Function1/quadratic/quadratic.C
-primitives/functions/Function1/quarterSine/quarterSine.C
-primitives/functions/Function1/quarterCosine/quarterCosine.C
-primitives/functions/Function1/halfCosine/halfCosine.C
+primitives/functions/Function1/linearRamp/linearRamp.C
+primitives/functions/Function1/quadraticRamp/quadraticRamp.C
+primitives/functions/Function1/quarterSineRamp/quarterSineRamp.C
+primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.C
+primitives/functions/Function1/halfCosineRamp/halfCosineRamp.C
 primitives/functions/Polynomial/polynomialFunction.C
 
 primitives/subModelBase/subModelBase.C
diff --git a/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.C b/src/OpenFOAM/primitives/functions/Function1/halfCosineRamp/halfCosineRamp.C
similarity index 87%
rename from src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.C
rename to src/OpenFOAM/primitives/functions/Function1/halfCosineRamp/halfCosineRamp.C
index 5abf42d10fb..7478be74123 100644
--- a/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.C
+++ b/src/OpenFOAM/primitives/functions/Function1/halfCosineRamp/halfCosineRamp.C
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "halfCosine.H"
+#include "halfCosineRamp.H"
 #include "mathematicalConstants.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -32,14 +32,14 @@ namespace Foam
 {
 namespace Function1Types
 {
-    makeScalarFunction1(halfCosine);
+    makeScalarFunction1(halfCosineRamp);
 }
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::Function1Types::halfCosine::halfCosine
+Foam::Function1Types::halfCosineRamp::halfCosineRamp
 (
     const word& entryName,
     const dictionary& dict
@@ -51,13 +51,13 @@ Foam::Function1Types::halfCosine::halfCosine
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::Function1Types::halfCosine::~halfCosine()
+Foam::Function1Types::halfCosineRamp::~halfCosineRamp()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::scalar Foam::Function1Types::halfCosine::value(const scalar t) const
+Foam::scalar Foam::Function1Types::halfCosineRamp::value(const scalar t) const
 {
     return 0.5*(1 - cos(constant::mathematical::pi*linearRamp(t)));
 }
diff --git a/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.H b/src/OpenFOAM/primitives/functions/Function1/halfCosineRamp/halfCosineRamp.H
similarity index 88%
rename from src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.H
rename to src/OpenFOAM/primitives/functions/Function1/halfCosineRamp/halfCosineRamp.H
index 774402adf34..452fb4d5486 100644
--- a/src/OpenFOAM/primitives/functions/Function1/halfCosine/halfCosine.H
+++ b/src/OpenFOAM/primitives/functions/Function1/halfCosineRamp/halfCosineRamp.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::Function1Types::halfCosine
+    Foam::Function1Types::halfCosineRamp
 
 Description
     Half-cosine ramp function starting from 0 and increasing to 1 from \c start
@@ -32,12 +32,12 @@ See also
     Foam::Function1Types::ramp
 
 SourceFiles
-    halfCosine.C
+    halfCosineRamp.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef halfCosine_H
-#define halfCosine_H
+#ifndef halfCosineRamp_H
+#define halfCosineRamp_H
 
 #include "ramp.H"
 
@@ -49,29 +49,29 @@ namespace Function1Types
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class halfCosine Declaration
+                           Class halfCosineRamp Declaration
 \*---------------------------------------------------------------------------*/
 
-class halfCosine
+class halfCosineRamp
 :
     public ramp
 {
     // Private Member Functions
 
         //- Disallow default bitwise assignment
-        void operator=(const halfCosine&);
+        void operator=(const halfCosineRamp&);
 
 
 public:
 
     // Runtime type information
-    TypeName("halfCosine");
+    TypeName("halfCosineRamp");
 
 
     // Constructors
 
         //- Construct from entry name and dictionary
-        halfCosine
+        halfCosineRamp
         (
             const word& entryName,
             const dictionary& dict
@@ -79,7 +79,7 @@ public:
 
 
     //- Destructor
-    virtual ~halfCosine();
+    virtual ~halfCosineRamp();
 
 
     // Member Functions
diff --git a/src/OpenFOAM/primitives/functions/Function1/linear/linear.C b/src/OpenFOAM/primitives/functions/Function1/linearRamp/linearRamp.C
similarity index 86%
rename from src/OpenFOAM/primitives/functions/Function1/linear/linear.C
rename to src/OpenFOAM/primitives/functions/Function1/linearRamp/linearRamp.C
index 658a64bf387..039e526f68e 100644
--- a/src/OpenFOAM/primitives/functions/Function1/linear/linear.C
+++ b/src/OpenFOAM/primitives/functions/Function1/linearRamp/linearRamp.C
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "linear.H"
+#include "linearRamp.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -31,14 +31,14 @@ namespace Foam
 {
 namespace Function1Types
 {
-    makeScalarFunction1(linear);
+    makeScalarFunction1(linearRamp);
 }
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::Function1Types::linear::linear
+Foam::Function1Types::linearRamp::linearRamp
 (
     const word& entryName,
     const dictionary& dict
@@ -50,15 +50,15 @@ Foam::Function1Types::linear::linear
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::Function1Types::linear::~linear()
+Foam::Function1Types::linearRamp::~linearRamp()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::scalar Foam::Function1Types::linear::value(const scalar t) const
+Foam::scalar Foam::Function1Types::linearRamp::value(const scalar t) const
 {
-    return linearRamp(t);
+    return ramp::linearRamp(t);
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/linear/linear.H b/src/OpenFOAM/primitives/functions/Function1/linearRamp/linearRamp.H
similarity index 84%
rename from src/OpenFOAM/primitives/functions/Function1/linear/linear.H
rename to src/OpenFOAM/primitives/functions/Function1/linearRamp/linearRamp.H
index 4d415193479..ae956c0995a 100644
--- a/src/OpenFOAM/primitives/functions/Function1/linear/linear.H
+++ b/src/OpenFOAM/primitives/functions/Function1/linearRamp/linearRamp.H
@@ -22,22 +22,22 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::Function1Types::linear
+    Foam::Function1Types::linearRamp
 
 Description
-    Linear ramp function starting from 0 and increasing linearly to 1 from \c
-    start over the \c duration and remaining at 1 thereafter.
+    Linear ramp function starting from 0 and increasing linearRamply to 1 from
+    \c start over the \c duration and remaining at 1 thereafter.
 
 See also
     Foam::Function1Types::ramp
 
 SourceFiles
-    linear.C
+    linearRamp.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef linear_H
-#define linear_H
+#ifndef linearRamp_H
+#define linearRamp_H
 
 #include "ramp.H"
 
@@ -49,29 +49,29 @@ namespace Function1Types
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class linear Declaration
+                           Class linearRamp Declaration
 \*---------------------------------------------------------------------------*/
 
-class linear
+class linearRamp
 :
     public ramp
 {
     // Private Member Functions
 
         //- Disallow default bitwise assignment
-        void operator=(const linear&);
+        void operator=(const linearRamp&);
 
 
 public:
 
     // Runtime type information
-    TypeName("linear");
+    TypeName("linearRamp");
 
 
     // Constructors
 
         //- Construct from entry name and dictionary
-        linear
+        linearRamp
         (
             const word& entryName,
             const dictionary& dict
@@ -79,7 +79,7 @@ public:
 
 
     //- Destructor
-    virtual ~linear();
+    virtual ~linearRamp();
 
 
     // Member Functions
diff --git a/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.C b/src/OpenFOAM/primitives/functions/Function1/quadraticRamp/quadraticRamp.C
similarity index 87%
rename from src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.C
rename to src/OpenFOAM/primitives/functions/Function1/quadraticRamp/quadraticRamp.C
index a35f82e79fd..96945a77172 100644
--- a/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.C
+++ b/src/OpenFOAM/primitives/functions/Function1/quadraticRamp/quadraticRamp.C
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "quadratic.H"
+#include "quadraticRamp.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -31,14 +31,14 @@ namespace Foam
 {
 namespace Function1Types
 {
-    makeScalarFunction1(quadratic);
+    makeScalarFunction1(quadraticRamp);
 }
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::Function1Types::quadratic::quadratic
+Foam::Function1Types::quadraticRamp::quadraticRamp
 (
     const word& entryName,
     const dictionary& dict
@@ -50,13 +50,13 @@ Foam::Function1Types::quadratic::quadratic
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::Function1Types::quadratic::~quadratic()
+Foam::Function1Types::quadraticRamp::~quadraticRamp()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::scalar Foam::Function1Types::quadratic::value(const scalar t) const
+Foam::scalar Foam::Function1Types::quadraticRamp::value(const scalar t) const
 {
     return sqr(linearRamp(t));
 }
diff --git a/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.H b/src/OpenFOAM/primitives/functions/Function1/quadraticRamp/quadraticRamp.H
similarity index 85%
rename from src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.H
rename to src/OpenFOAM/primitives/functions/Function1/quadraticRamp/quadraticRamp.H
index 39575bc5a74..e05de534253 100644
--- a/src/OpenFOAM/primitives/functions/Function1/quadratic/quadratic.H
+++ b/src/OpenFOAM/primitives/functions/Function1/quadraticRamp/quadraticRamp.H
@@ -22,22 +22,22 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::Function1Types::quadratic
+    Foam::Function1Types::quadraticRamp
 
 Description
-    Quadratic ramp function starting from 0 and increasing quadratically to 1
-    from \c t_0 over the \c duration and remaining at 1 thereafter.
+    Quadratic ramp function starting from 0 and increasing quadraticRampally
+    to 1 from \c t_0 over the \c duration and remaining at 1 thereafter.
 
 See also
     Foam::Function1Types::ramp
 
 SourceFiles
-    quadratic.C
+    quadraticRamp.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef quadratic_H
-#define quadratic_H
+#ifndef quadraticRamp_H
+#define quadraticRamp_H
 
 #include "ramp.H"
 
@@ -49,29 +49,29 @@ namespace Function1Types
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class quadratic Declaration
+                           Class quadraticRamp Declaration
 \*---------------------------------------------------------------------------*/
 
-class quadratic
+class quadraticRamp
 :
     public ramp
 {
     // Private Member Functions
 
         //- Disallow default bitwise assignment
-        void operator=(const quadratic&);
+        void operator=(const quadraticRamp&);
 
 
 public:
 
     // Runtime type information
-    TypeName("quadratic");
+    TypeName("quadraticRamp");
 
 
     // Constructors
 
         //- Construct from entry name and dictionary
-        quadratic
+        quadraticRamp
         (
             const word& entryName,
             const dictionary& dict
@@ -79,7 +79,7 @@ public:
 
 
     //- Destructor
-    virtual ~quadratic();
+    virtual ~quadraticRamp();
 
 
     // Member Functions
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.C b/src/OpenFOAM/primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.C
similarity index 86%
rename from src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.C
rename to src/OpenFOAM/primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.C
index 025df283f66..21b438b748e 100644
--- a/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.C
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.C
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "quarterCosine.H"
+#include "quarterCosineRamp.H"
 #include "mathematicalConstants.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -32,14 +32,14 @@ namespace Foam
 {
 namespace Function1Types
 {
-    makeScalarFunction1(quarterCosine);
+    makeScalarFunction1(quarterCosineRamp);
 }
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::Function1Types::quarterCosine::quarterCosine
+Foam::Function1Types::quarterCosineRamp::quarterCosineRamp
 (
     const word& entryName,
     const dictionary& dict
@@ -51,13 +51,16 @@ Foam::Function1Types::quarterCosine::quarterCosine
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::Function1Types::quarterCosine::~quarterCosine()
+Foam::Function1Types::quarterCosineRamp::~quarterCosineRamp()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::scalar Foam::Function1Types::quarterCosine::value(const scalar t) const
+Foam::scalar Foam::Function1Types::quarterCosineRamp::value
+(
+    const scalar t
+) const
 {
     return 1 - cos(0.5*constant::mathematical::pi*linearRamp(t));
 }
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.H b/src/OpenFOAM/primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.H
similarity index 87%
rename from src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.H
rename to src/OpenFOAM/primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.H
index a96db22bf16..4fa84529475 100644
--- a/src/OpenFOAM/primitives/functions/Function1/quarterCosine/quarterCosine.H
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::Function1Types::quarterCosine
+    Foam::Function1Types::quarterCosineRamp
 
 Description
     Quarter-cosine ramp function starting from 0 and increasing to 1 from \c
@@ -32,12 +32,12 @@ See also
     Foam::Function1Types::ramp
 
 SourceFiles
-    quarterCosine.C
+    quarterCosineRamp.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef quarterCosine_H
-#define quarterCosine_H
+#ifndef quarterCosineRamp_H
+#define quarterCosineRamp_H
 
 #include "ramp.H"
 
@@ -49,29 +49,29 @@ namespace Function1Types
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class quarterCosine Declaration
+                           Class quarterCosineRamp Declaration
 \*---------------------------------------------------------------------------*/
 
-class quarterCosine
+class quarterCosineRamp
 :
     public ramp
 {
     // Private Member Functions
 
         //- Disallow default bitwise assignment
-        void operator=(const quarterCosine&);
+        void operator=(const quarterCosineRamp&);
 
 
 public:
 
     // Runtime type information
-    TypeName("quarterCosine");
+    TypeName("quarterCosineRamp");
 
 
     // Constructors
 
         //- Construct from entry name and dictionary
-        quarterCosine
+        quarterCosineRamp
         (
             const word& entryName,
             const dictionary& dict
@@ -79,7 +79,7 @@ public:
 
 
     //- Destructor
-    virtual ~quarterCosine();
+    virtual ~quarterCosineRamp();
 
 
     // Member Functions
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.C b/src/OpenFOAM/primitives/functions/Function1/quarterSineRamp/quarterSineRamp.C
similarity index 87%
rename from src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.C
rename to src/OpenFOAM/primitives/functions/Function1/quarterSineRamp/quarterSineRamp.C
index ad144a40578..d6b73876d12 100644
--- a/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.C
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterSineRamp/quarterSineRamp.C
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "quarterSine.H"
+#include "quarterSineRamp.H"
 #include "mathematicalConstants.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -32,14 +32,14 @@ namespace Foam
 {
 namespace Function1Types
 {
-    makeScalarFunction1(quarterSine);
+    makeScalarFunction1(quarterSineRamp);
 }
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::Function1Types::quarterSine::quarterSine
+Foam::Function1Types::quarterSineRamp::quarterSineRamp
 (
     const word& entryName,
     const dictionary& dict
@@ -51,13 +51,13 @@ Foam::Function1Types::quarterSine::quarterSine
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::Function1Types::quarterSine::~quarterSine()
+Foam::Function1Types::quarterSineRamp::~quarterSineRamp()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::scalar Foam::Function1Types::quarterSine::value(const scalar t) const
+Foam::scalar Foam::Function1Types::quarterSineRamp::value(const scalar t) const
 {
     return sin(0.5*constant::mathematical::pi*linearRamp(t));
 }
diff --git a/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.H b/src/OpenFOAM/primitives/functions/Function1/quarterSineRamp/quarterSineRamp.H
similarity index 87%
rename from src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.H
rename to src/OpenFOAM/primitives/functions/Function1/quarterSineRamp/quarterSineRamp.H
index 3e2d41368cc..95ef17d734c 100644
--- a/src/OpenFOAM/primitives/functions/Function1/quarterSine/quarterSine.H
+++ b/src/OpenFOAM/primitives/functions/Function1/quarterSineRamp/quarterSineRamp.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::Function1Types::quarterSine
+    Foam::Function1Types::quarterSineRamp
 
 Description
     Quarter-sine ramp function starting from 0 and increasing to 1 from \c start
@@ -32,12 +32,12 @@ See also
     Foam::Function1Types::ramp
 
 SourceFiles
-    quarterSine.C
+    quarterSineRamp.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef quarterSine_H
-#define quarterSine_H
+#ifndef quarterSineRamp_H
+#define quarterSineRamp_H
 
 #include "ramp.H"
 
@@ -49,29 +49,29 @@ namespace Function1Types
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class quarterSine Declaration
+                           Class quarterSineRamp Declaration
 \*---------------------------------------------------------------------------*/
 
-class quarterSine
+class quarterSineRamp
 :
     public ramp
 {
     // Private Member Functions
 
         //- Disallow default bitwise assignment
-        void operator=(const quarterSine&);
+        void operator=(const quarterSineRamp&);
 
 
 public:
 
     // Runtime type information
-    TypeName("quarterSine");
+    TypeName("quarterSineRamp");
 
 
     // Constructors
 
         //- Construct from entry name and dictionary
-        quarterSine
+        quarterSineRamp
         (
             const word& entryName,
             const dictionary& dict
@@ -79,7 +79,7 @@ public:
 
 
     //- Destructor
-    virtual ~quarterSine();
+    virtual ~quarterSineRamp();
 
 
     // Member Functions
diff --git a/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.orig/U b/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.orig/U
index e66d1ae65ea..9994b73763d 100644
--- a/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.orig/U
+++ b/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.orig/U
@@ -41,18 +41,27 @@ boundaryField
         normalVelocity
         {
             type            uniformFixedValue;
-            uniformValue    sine;
-            uniformValueCoeffs
+
+            uniformValue
             {
-                frequency 1;
-                amplitude table
-                (
-                    (   0     0)
-                    (  10 0.025)
-                    (1000 0.025)
-                );
-                scale     (0 1 0);
-                level     (0 0 0);
+                type        scale;
+
+                value
+                {
+                    type sine;
+
+                    frequency   1;
+                    amplitude   0.025;
+                    scale       (0 1 0);
+                    level       (0 0 0);
+                }
+
+                scale
+                {
+                    type linearRamp;
+
+                    duration 10;
+                }
             }
         }
 
-- 
GitLab


From 14601aa8c2f1df5904a8b0f2e4704272ff5efc3d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 18 Mar 2017 17:11:11 +0000
Subject: [PATCH 143/277] Function1::Scale: New function to scale a given
 function by a scalar function, e.g. a ramp

For example in the potentialFreeSurfaceFoam/oscillatingBox tutorial it is
cleaner to apply the "linearRamp" function to the "sine" function rather than
using an amplitude table:

    floatingObject
    {
        type            fixedNormalInletOutletVelocity;

        fixTangentialInflow false;

        normalVelocity
        {
            type            uniformFixedValue;

            uniformValue
            {
                type        scale;

                value
                {
                    type sine;

                    frequency   1;
                    amplitude   0.025;
                    scale       (0 1 0);
                    level       (0 0 0);
                }

                scale
                {
                    type linearRamp;

                    duration 10;
                }
            }
        }

        value           uniform (0 0 0);
    }
---
 .../functions/Function1/Scale/Scale.C         |  89 ++++++++++
 .../functions/Function1/Scale/Scale.H         | 165 ++++++++++++++++++
 .../functions/Function1/makeDataEntries.C     |   4 +-
 3 files changed, 257 insertions(+), 1 deletion(-)
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/Scale/Scale.C
 create mode 100644 src/OpenFOAM/primitives/functions/Function1/Scale/Scale.H

diff --git a/src/OpenFOAM/primitives/functions/Function1/Scale/Scale.C b/src/OpenFOAM/primitives/functions/Function1/Scale/Scale.C
new file mode 100644
index 00000000000..37342b2e575
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/Scale/Scale.C
@@ -0,0 +1,89 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "Scale.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Type>
+void Foam::Function1Types::Scale<Type>::read(const dictionary& coeffs)
+{
+    scale_ = Function1<scalar>::New("scale", coeffs);
+    value_ = Function1<Type>::New("value", coeffs);
+}
+
+
+template<class Type>
+Foam::Function1Types::Scale<Type>::Scale
+(
+    const word& entryName,
+    const dictionary& dict
+)
+:
+    Function1<Type>(entryName)
+{
+    read(dict);
+}
+
+
+template<class Type>
+Foam::Function1Types::Scale<Type>::Scale(const Scale<Type>& se)
+:
+    Function1<Type>(se),
+    scale_(se.scale_, false),
+    value_(se.value_, false)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::Function1Types::Scale<Type>::~Scale()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Type>
+Type Foam::Function1Types::Scale<Type>::value(const scalar t) const
+{
+    return scale_->value(t)*value_->value(t);
+}
+
+
+template<class Type>
+void Foam::Function1Types::Scale<Type>::writeData(Ostream& os) const
+{
+    Function1<Type>::writeData(os);
+    os  << token::END_STATEMENT << nl;
+    os  << indent << word(this->name() + "Coeffs") << nl;
+    os  << indent << token::BEGIN_BLOCK << incrIndent << nl;
+    scale_->writeData(os);
+    value_->writeData(os);
+    os  << decrIndent << indent << token::END_BLOCK << endl;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/Scale/Scale.H b/src/OpenFOAM/primitives/functions/Function1/Scale/Scale.H
new file mode 100644
index 00000000000..80f5f639bdb
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/Function1/Scale/Scale.H
@@ -0,0 +1,165 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Function1Types::Scale
+
+Description
+    Function1 which scales a given 'value' function by a scalar 'scale'
+    function.
+
+    This is particularly useful to ramp a time-varying value by one of the
+    monotonic ramp functions.
+
+    Usage for a vector:
+    \verbatim
+        <entryName>
+        {
+            type      scale;
+
+            scale
+            {
+                type        linearRamp;
+
+                start       0;
+                duration    10;
+            }
+
+            value
+            {
+                type        sine;
+
+                frequency   10;
+                amplitude   1;
+                scale       (1 0.1 0);
+                level       (10 1 0);
+            }
+        }
+    \endverbatim
+
+    Where:
+    \table
+        Property | Description                                  | Required
+        value    | Function of type Function1<Type>             | yes
+        scale    | Scaling function of type Function1<scalar>   | yes
+    \endtable
+
+SourceFiles
+    Scale.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Scale_H
+#define Scale_H
+
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace Function1Types
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class Scale Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Type>
+class Scale
+:
+    public Function1<Type>
+{
+    // Private data
+
+        //- Scalar scaling function
+        autoPtr<Function1<scalar>> scale_;
+
+        //- Value function
+        autoPtr<Function1<Type>> value_;
+
+
+    // Private Member Functions
+
+        //- Read the coefficients from the given dictionary
+        void read(const dictionary& coeffs);
+
+        //- Disallow default bitwise assignment
+        void operator=(const Scale<Type>&);
+
+
+public:
+
+    // Runtime type information
+    TypeName("scale");
+
+
+    // Constructors
+
+        //- Construct from entry name and dictionary
+        Scale
+        (
+            const word& entryName,
+            const dictionary& dict
+        );
+
+        //- Copy constructor
+        Scale(const Scale<Type>& se);
+
+        //- Construct and return a clone
+        virtual tmp<Function1<Type>> clone() const
+        {
+            return tmp<Function1<Type>>(new Scale<Type>(*this));
+        }
+
+
+    //- Destructor
+    virtual ~Scale();
+
+
+    // Member Functions
+
+        //- Return value for time t
+        Type value(const scalar t) const;
+
+        //- Write in dictionary format
+        virtual void writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Function1Types
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "Scale.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C b/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C
index 6c8db2ed8a0..b7c93ca1b3d 100644
--- a/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C
+++ b/src/OpenFOAM/primitives/functions/Function1/makeDataEntries.C
@@ -32,6 +32,7 @@ License
 #include "CSV.H"
 #include "Table.H"
 #include "TableFile.H"
+#include "Scale.H"
 
 #include "fieldTypes.H"
 
@@ -47,7 +48,8 @@ License
     makeFunction1Type(Square, Type);                                           \
     makeFunction1Type(CSV, Type);                                              \
     makeFunction1Type(Table, Type);                                            \
-    makeFunction1Type(TableFile, Type);
+    makeFunction1Type(TableFile, Type);                                        \
+    makeFunction1Type(Scale, Type);
 
 namespace Foam
 {
-- 
GitLab


From 864fc239c8cc8013b9d9dc3f5bd69ca67d28097b Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 18 Mar 2017 17:15:58 +0000
Subject: [PATCH 144/277] tutorials/combustion/reactingFoam/RAS/DLR_A_LTS:
 Reduced the endTime

---
 .../combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
index b84dd7ab135..c9d5097f2c4 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
@@ -23,7 +23,7 @@ startTime       0;
 
 stopAt          endTime;
 
-endTime         70000;
+endTime         10000;
 
 deltaT          1;
 
-- 
GitLab


From c9831529b37a7e59f006621232d25de3122040ab Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Mon, 20 Mar 2017 12:27:07 +0000
Subject: [PATCH 145/277] Case templates: updated dynamicMeshDict for syntax
 change to solid body motion

---
 etc/templates/closedVolumeRotating/constant/dynamicMeshDict | 6 ++++--
 .../inflowOutflowRotating/constant/dynamicMeshDict          | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/etc/templates/closedVolumeRotating/constant/dynamicMeshDict b/etc/templates/closedVolumeRotating/constant/dynamicMeshDict
index b269d757d53..d9f8d72a77a 100644
--- a/etc/templates/closedVolumeRotating/constant/dynamicMeshDict
+++ b/etc/templates/closedVolumeRotating/constant/dynamicMeshDict
@@ -14,9 +14,11 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh   solidBodyMotionFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solidBodyMotionFvMeshCoeffs
+solver solidBody;
+
+solidBodyCoeffs
 {
     cellZone        rotatingZone;
 
diff --git a/etc/templates/inflowOutflowRotating/constant/dynamicMeshDict b/etc/templates/inflowOutflowRotating/constant/dynamicMeshDict
index b269d757d53..d9f8d72a77a 100644
--- a/etc/templates/inflowOutflowRotating/constant/dynamicMeshDict
+++ b/etc/templates/inflowOutflowRotating/constant/dynamicMeshDict
@@ -14,9 +14,11 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh   solidBodyMotionFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solidBodyMotionFvMeshCoeffs
+solver solidBody;
+
+solidBodyCoeffs
 {
     cellZone        rotatingZone;
 
-- 
GitLab


From bf43e16dca2048d31a85105dda5d9d4adc7e67e7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 20 Mar 2017 17:57:06 +0000
Subject: [PATCH 146/277] setTimeStepFunctionObject: Corrected typo

Resolves bug-report https://bugs.openfoam.org/view.php?id=2507
---
 .../utilities/setTimeStep/setTimeStepFunctionObject.H         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H b/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H
index a20797d80fc..d6e621dcd8f 100644
--- a/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H
+++ b/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,7 @@ Description
     Overrides the timeStep. Can only be used with
     solvers with adjustTimeStep control (e.g. pimpleFoam). Makes no attempt
     to cooperate with other timeStep 'controllers' (maxCo, other
-    functionObjects). Supports 'enabled' flag but none of othe other ones
+    functionObjects). Supports 'enabled' flag but none of the other ones
     'timeStart', 'timeEnd', 'writeControl' etc.
 
 SourceFiles
-- 
GitLab


From eaf1e6263fa66a9996051708f0b8e740c15c9ed9 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 21 Mar 2017 15:07:13 +0000
Subject: [PATCH 147/277] applyBoundaryLayer: Provide non-const access to nut,
 k and epsilon

---
 .../applyBoundaryLayer/applyBoundaryLayer.C              | 8 ++++----
 .../turbulenceModels/eddyViscosity/eddyViscosity.H       | 9 +--------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
index d7515817919..f2584cb93f6 100644
--- a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -133,7 +133,7 @@ int main(int argc, char *argv[])
         // Calculate nut - reference nut is calculated by the turbulence model
         // on its construction
         tmp<volScalarField> tnut = turbulence->nut();
-        volScalarField& nut = tnut.ref();
+        volScalarField& nut = const_cast<volScalarField&>(tnut());
         volScalarField S(mag(dev(symm(fvc::grad(U)))));
         nut = (1 - mask)*nut + mask*sqr(kappa*min(y, ybl))*::sqrt(2)*S;
 
@@ -151,7 +151,7 @@ int main(int argc, char *argv[])
 
         // Turbulence k
         tmp<volScalarField> tk = turbulence->k();
-        volScalarField& k = tk.ref();
+        volScalarField& k = const_cast<volScalarField&>(tk());
         scalar ck0 = pow025(Cmu)*kappa;
         k = (1 - mask)*k + mask*sqr(nut/(ck0*min(y, ybl)));
 
@@ -165,7 +165,7 @@ int main(int argc, char *argv[])
 
         // Turbulence epsilon
         tmp<volScalarField> tepsilon = turbulence->epsilon();
-        volScalarField& epsilon = tepsilon.ref();
+        volScalarField& epsilon = const_cast<volScalarField&>(tepsilon());
         scalar ce0 = ::pow(Cmu, 0.75)/kappa;
         epsilon = (1 - mask)*epsilon + mask*ce0*k*sqrt(k)/min(y, ybl);
 
diff --git a/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.H b/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.H
index c214b9930b9..3d3b2c96d84 100644
--- a/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.H
+++ b/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -102,13 +102,6 @@ public:
         //- Re-read model coefficients if they have changed
         virtual bool read() = 0;
 
-        //- Return non-const access to the turbulence viscosity
-        //  to allow modification by means other than derivation
-        volScalarField& evNut()
-        {
-            return nut_;
-        }
-
         //- Return the turbulence viscosity
         virtual tmp<volScalarField> nut() const
         {
-- 
GitLab


From 406a2c5d20fde679ff699b33396425f81af81596 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 22 Mar 2017 10:08:37 +0000
Subject: [PATCH 148/277] applyBoundaryLayer: Ensure nut is up-to-date with the
 current turbulence fields

Resolves bug-report https://bugs.openfoam.org/view.php?id=2511
---
 .../applyBoundaryLayer/applyBoundaryLayer.C      | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
index f2584cb93f6..d8922828b9a 100644
--- a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
@@ -42,7 +42,7 @@ Description
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// turbulence constants - file-scope
+// Turbulence constants - file-scope
 static const scalar Cmu(0.09);
 static const scalar kappa(0.41);
 
@@ -130,14 +130,14 @@ int main(int argc, char *argv[])
 
     if (isA<incompressible::RASModel>(turbulence()))
     {
-        // Calculate nut - reference nut is calculated by the turbulence model
-        // on its construction
+        // Calculate nut
+        turbulence->validate();
         tmp<volScalarField> tnut = turbulence->nut();
         volScalarField& nut = const_cast<volScalarField&>(tnut());
         volScalarField S(mag(dev(symm(fvc::grad(U)))));
         nut = (1 - mask)*nut + mask*sqr(kappa*min(y, ybl))*::sqrt(2)*S;
 
-        // do not correct BC - wall functions will 'undo' manipulation above
+        // Do not correct BC - wall functions will 'undo' manipulation above
         // by using nut from turbulence model
 
         if (args.optionFound("writenut"))
@@ -155,7 +155,7 @@ int main(int argc, char *argv[])
         scalar ck0 = pow025(Cmu)*kappa;
         k = (1 - mask)*k + mask*sqr(nut/(ck0*min(y, ybl)));
 
-        // do not correct BC - operation may use inconsistent fields wrt these
+        // Do not correct BC - operation may use inconsistent fields wrt these
         // local manipulations
         // k.correctBoundaryConditions();
 
@@ -169,7 +169,7 @@ int main(int argc, char *argv[])
         scalar ce0 = ::pow(Cmu, 0.75)/kappa;
         epsilon = (1 - mask)*epsilon + mask*ce0*k*sqrt(k)/min(y, ybl);
 
-        // do not correct BC - wall functions will use non-updated k from
+        // Do not correct BC - wall functions will use non-updated k from
         // turbulence model
         // epsilon.correctBoundaryConditions();
 
@@ -193,7 +193,7 @@ int main(int argc, char *argv[])
             dimensionedScalar k0("VSMALL", k.dimensions(), VSMALL);
             omega = (1 - mask)*omega + mask*epsilon/(Cmu*k + k0);
 
-            // do not correct BC - wall functions will use non-updated k from
+            // Do not correct BC - wall functions will use non-updated k from
             // turbulence model
             // omega.correctBoundaryConditions();
 
@@ -217,7 +217,7 @@ int main(int argc, char *argv[])
             volScalarField nuTilda(nuTildaHeader, mesh);
             nuTilda = nut;
 
-            // do not correct BC
+            // Do not correct BC
             // nuTilda.correctBoundaryConditions();
 
             Info<< "Writing nuTilda\n" << endl;
-- 
GitLab


From 0be6269add80fd3037e64de38bcd9d5a64e6d1cf Mon Sep 17 00:00:00 2001
From: Will Bainbridge <http://cfd.direct>
Date: Wed, 22 Mar 2017 15:11:54 +0000
Subject: [PATCH 149/277] Added robust primitive cubic/quadratic/linear
 equation solutions. Applied to eigen-value calculations. Fixed
 repeated-eigen-value issues in eigen-vector generation.

---
 applications/test/cubicEqn/Make/files         |   3 +
 applications/test/cubicEqn/Make/options       |   3 +
 applications/test/cubicEqn/Test-cubicEqn.C    | 101 ++++++++
 src/OpenFOAM/Make/files                       |   3 +
 .../primitives/Tensor/tensor/tensor.C         | 229 +++++++-----------
 .../primitives/Tensor/tensor/tensor.H         |  30 ++-
 .../primitives/Tensor2D/tensor2D/tensor2D.C   | 130 +++++-----
 .../primitives/Tensor2D/tensor2D/tensor2D.H   |  10 +-
 .../primitives/polynomialEqns/Roots.H         | 131 ++++++++++
 .../primitives/polynomialEqns/RootsI.H        | 136 +++++++++++
 .../polynomialEqns/cubicEqn/cubicEqn.C        | 164 +++++++++++++
 .../polynomialEqns/cubicEqn/cubicEqn.H        | 115 +++++++++
 .../polynomialEqns/cubicEqn/cubicEqnI.H       | 115 +++++++++
 .../polynomialEqns/linearEqn/linearEqn.H      | 104 ++++++++
 .../polynomialEqns/linearEqn/linearEqnI.H     | 111 +++++++++
 .../quadraticEqn/quadraticEqn.C               |  88 +++++++
 .../quadraticEqn/quadraticEqn.H               | 107 ++++++++
 .../quadraticEqn/quadraticEqnI.H              | 101 ++++++++
 .../polyTopoChange/edgeCollapser.C            |   4 +-
 19 files changed, 1473 insertions(+), 212 deletions(-)
 create mode 100644 applications/test/cubicEqn/Make/files
 create mode 100644 applications/test/cubicEqn/Make/options
 create mode 100644 applications/test/cubicEqn/Test-cubicEqn.C
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/Roots.H
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/RootsI.H
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.C
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.H
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqnI.H
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqn.H
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqnI.H
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.C
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.H
 create mode 100644 src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqnI.H

diff --git a/applications/test/cubicEqn/Make/files b/applications/test/cubicEqn/Make/files
new file mode 100644
index 00000000000..91b9e84dcc8
--- /dev/null
+++ b/applications/test/cubicEqn/Make/files
@@ -0,0 +1,3 @@
+Test-cubicEqn.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-cubicEqn
diff --git a/applications/test/cubicEqn/Make/options b/applications/test/cubicEqn/Make/options
new file mode 100644
index 00000000000..4c3dd783cb4
--- /dev/null
+++ b/applications/test/cubicEqn/Make/options
@@ -0,0 +1,3 @@
+EXE_INC =
+
+EXE_LIBS =
diff --git a/applications/test/cubicEqn/Test-cubicEqn.C b/applications/test/cubicEqn/Test-cubicEqn.C
new file mode 100644
index 00000000000..d0ab6066662
--- /dev/null
+++ b/applications/test/cubicEqn/Test-cubicEqn.C
@@ -0,0 +1,101 @@
+#include <ctime>
+#include <random>
+
+#include "cubicEqn.H"
+#include "IOstreams.H"
+#include "stringList.H"
+
+using namespace Foam;
+
+scalar randomScalar(const scalar min, const scalar max)
+{
+    static_assert
+    (
+        sizeof(long) == sizeof(scalar),
+        "Scalar and long are not the same size"
+    );
+    static std::default_random_engine generator(std::time(0));
+    static std::uniform_int_distribution<long>
+        distribution
+        (
+            std::numeric_limits<long>::min(),
+            std::numeric_limits<long>::max()
+        );
+    scalar x;
+    do
+    {
+        long i = distribution(generator);
+        x = reinterpret_cast<scalar&>(i);
+    }
+    while (min > mag(x) || mag(x) > max || !std::isfinite(x));
+    return x;
+};
+
+template <class Type>
+void test(const Type& polynomialEqn, const scalar tol)
+{
+    Roots<Type::nComponents - 1> r = polynomialEqn.roots();
+
+    const scalar nan = std::numeric_limits<scalar>::quiet_NaN();
+    const scalar inf = std::numeric_limits<scalar>::infinity();
+
+    FixedList<label, Type::nComponents - 1> t;
+    FixedList<scalar, Type::nComponents - 1> v(nan);
+    FixedList<scalar, Type::nComponents - 1> e(nan);
+    bool ok = true;
+    forAll(r, i)
+    {
+        t[i] = r.type(i);
+        switch (t[i])
+        {
+            case roots::real:
+                v[i] = polynomialEqn.value(r[i]);
+                e[i] = polynomialEqn.error(r[i]);
+                ok = ok && mag(v[i]) < tol*mag(e[i]);
+                break;
+            case roots::posInf:
+                v[i] = + inf;
+                e[i] = nan;
+                break;
+            case roots::negInf:
+                v[i] = - inf;
+                e[i] = nan;
+                break;
+            default:
+                v[i] = e[i] = nan;
+                break;
+        }
+    }
+
+    if (!ok)
+    {
+        Info<< "Coeffs: " << polynomialEqn << endl
+            << " Types: " << t << endl
+            << " Roots: " << r << endl
+            << "Values: " << v << endl
+            << "Errors: " << e << endl << endl;
+    }
+}
+
+int main()
+{
+    const int nTests = 1000000;
+    for (int t = 0; t < nTests; ++ t)
+    {
+        test
+        (
+            cubicEqn
+            (
+                randomScalar(1e-50, 1e+50),
+                randomScalar(1e-50, 1e+50),
+                randomScalar(1e-50, 1e+50),
+                randomScalar(1e-50, 1e+50)
+            ),
+            100
+        );
+    }
+
+    Info << nTests << " cubics tested" << endl;
+
+    return 0;
+}
diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index 84f83567d01..44ef405e419 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -125,6 +125,9 @@ $(spatialVectorAlgebra)/SpatialVector/spatialVector/spatialVector.C
 $(spatialVectorAlgebra)/SpatialTensor/spatialTensor/spatialTensor.C
 $(spatialVectorAlgebra)/CompactSpatialTensor/compactSpatialTensor/compactSpatialTensor.C
 
+primitives/polynomialEqns/cubicEqn/cubicEqn.C
+primitives/polynomialEqns/quadraticEqn/quadraticEqn.C
+
 containers/HashTables/HashTable/HashTableCore.C
 containers/HashTables/StaticHashTable/StaticHashTableCore.C
 containers/Lists/SortableList/ParSortableListName.C
diff --git a/src/OpenFOAM/primitives/Tensor/tensor/tensor.C b/src/OpenFOAM/primitives/Tensor/tensor/tensor.C
index 2d8da5e71ca..0914c279a4d 100644
--- a/src/OpenFOAM/primitives/Tensor/tensor/tensor.C
+++ b/src/OpenFOAM/primitives/Tensor/tensor/tensor.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "tensor.H"
+#include "cubicEqn.H"
 #include "mathematicalConstants.H"
 
 using namespace Foam::constant::mathematical;
@@ -72,137 +73,76 @@ const Foam::tensor Foam::tensor::I
 
 Foam::vector Foam::eigenValues(const tensor& t)
 {
-    // The eigenvalues
-    scalar i, ii, iii;
-
-    // diagonal matrix
-    if
-    (
-        (
-            mag(t.xy()) + mag(t.xz()) + mag(t.yx())
-            + mag(t.yz()) + mag(t.zx()) + mag(t.zy())
-        )
-        < SMALL
-    )
-    {
-        i = t.xx();
-        ii = t.yy();
-        iii = t.zz();
-    }
-
-    // non-diagonal matrix
-    else
+    // Coefficients of the characteristic cubic polynomial (a = 1)
+    const scalar b =
+      - t.xx() - t.yy() - t.zz();
+    const scalar c =
+        t.xx()*t.yy() + t.xx()*t.zz() + t.yy()*t.zz()
+      - t.xy()*t.yx() - t.yz()*t.zy() - t.zx()*t.xz();
+    const scalar d =
+      - t.xx()*t.yy()*t.zz()
+      - t.xy()*t.yz()*t.zx() - t.xz()*t.zy()*t.yx()
+      + t.xx()*t.yz()*t.zy() + t.yy()*t.zx()*t.xz() + t.zz()*t.xy()*t.yx();
+
+    // Solve
+    Roots<3> roots = cubicEqn(1, b, c, d).roots();
+
+    // Check the root types
+    vector lambda = vector::zero;
+    forAll(roots, i)
     {
-        // Coefficients of the characteristic polynmial
-        // x^3 + a*x^2 + b*x + c = 0
-        scalar a =
-           - t.xx() - t.yy() - t.zz();
-
-        scalar b =
-            t.xx()*t.yy() + t.xx()*t.zz() + t.yy()*t.zz()
-          - t.xy()*t.yx() - t.yz()*t.zy() - t.zx()*t.xz();
-
-        scalar c =
-          - t.xx()*t.yy()*t.zz()
-          - t.xy()*t.yz()*t.zx() - t.xz()*t.zy()*t.yx()
-          + t.xx()*t.yz()*t.zy() + t.yy()*t.zx()*t.xz() + t.zz()*t.xy()*t.yx();
-
-        // Auxillary variables
-        scalar aBy3 = a/3;
-
-        scalar P = (a*a - 3*b)/9; // == -p_wikipedia/3
-        scalar PPP = P*P*P;
-
-        scalar Q = (2*a*a*a - 9*a*b + 27*c)/54; // == q_wikipedia/2
-        scalar QQ = Q*Q;
-
-        // Three identical roots
-        if (mag(P) < SMALL && mag(Q) < SMALL)
+        switch (roots.type(i))
         {
-            return vector(- aBy3, - aBy3, - aBy3);
-        }
-
-        // Two identical roots and one distinct root
-        else if (mag(QQ) > SMALL && mag(PPP/QQ - 1) < SMALL)
-        {
-            scalar sqrtP = sqrt(P);
-            scalar signQ = sign(Q);
-
-            i = ii = signQ*sqrtP - aBy3;
-            iii = - 2*signQ*sqrtP - aBy3;
-        }
-
-        // Three distinct roots
-        else if (PPP > QQ)
-        {
-            scalar sqrtP = sqrt(P);
-            scalar value = cos(acos(Q/sqrt(PPP))/3);
-            scalar delta = sqrt(3 - 3*value*value);
-
-            i = - 2*sqrtP*value - aBy3;
-            ii = sqrtP*(value + delta) - aBy3;
-            iii = sqrtP*(value - delta) - aBy3;
-        }
-
-        // One real root, two imaginary roots
-        // based on the above logic, PPP must be less than QQ
-        else
-        {
-            WarningInFunction
-                << "complex eigenvalues detected for tensor: " << t
-                << endl;
-
-            if (mag(P) < SMALL)
-            {
-                i = cbrt(QQ/2);
-            }
-            else
-            {
-                scalar w = cbrt(- Q - sqrt(QQ - PPP));
-                i = w + P/w - aBy3;
-            }
-
-            return vector(-VGREAT, i, VGREAT);
+            case roots::real:
+                lambda[i] = roots[i];
+                break;
+            case roots::complex:
+                WarningInFunction
+                    << "Complex eigenvalues detected for tensor: " << t
+                    << endl;
+                lambda[i] = 0;
+                break;
+            case roots::posInf:
+                lambda[i] = VGREAT;
+                break;
+            case roots::negInf:
+                lambda[i] = - VGREAT;
+                break;
+            case roots::nan:
+                FatalErrorInFunction
+                    << "Eigenvalue calculation failed for tensor: " << t
+                    << exit(FatalError);
         }
     }
 
     // Sort the eigenvalues into ascending order
-    if (i > ii)
+    if (lambda.x() > lambda.y())
     {
-        Swap(i, ii);
+        Swap(lambda.x(), lambda.y());
     }
-
-    if (ii > iii)
+    if (lambda.y() > lambda.z())
     {
-        Swap(ii, iii);
+        Swap(lambda.y(), lambda.z());
     }
-
-    if (i > ii)
+    if (lambda.x() > lambda.y())
     {
-        Swap(i, ii);
+        Swap(lambda.x(), lambda.y());
     }
 
-    return vector(i, ii, iii);
+    return lambda;
 }
 
 
 Foam::vector Foam::eigenVector
 (
-    const tensor& t,
-    const scalar lambda
+    const tensor& T,
+    const scalar lambda,
+    const vector& direction1,
+    const vector& direction2
 )
 {
-    // Constantly rotating direction ensures different eigenvectors are
-    // generated when called sequentially with a multiple eigenvalue
-    static vector direction(1,0,0);
-    vector oldDirection(direction);
-    scalar temp = direction[2];
-    direction[2] = direction[1];
-    direction[1] = direction[0];
-    direction[0] = temp;
-
     // Construct the linear system for this eigenvalue
-    tensor A(t - lambda*I);
+    tensor A(T - lambda*I);
 
     // Determinants of the 2x2 sub-matrices used to find the eigenvectors
     scalar sd0, sd1, sd2;
@@ -252,9 +192,9 @@ Foam::vector Foam::eigenVector
     }
 
     // Sub-determinants for a repeated eigenvalue
-    sd0 = A.yy()*direction.z() - A.yz()*direction.y();
-    sd1 = A.zz()*direction.x() - A.zx()*direction.z();
-    sd2 = A.xx()*direction.y() - A.xy()*direction.x();
+    sd0 = A.yy()*direction1.z() - A.yz()*direction1.y();
+    sd1 = A.zz()*direction1.x() - A.zx()*direction1.z();
+    sd2 = A.xx()*direction1.y() - A.xy()*direction1.x();
     magSd0 = mag(sd0);
     magSd1 = mag(sd1);
     magSd2 = mag(sd2);
@@ -265,8 +205,8 @@ Foam::vector Foam::eigenVector
         vector ev
         (
             1,
-            (A.yz()*direction.x() - direction.z()*A.yx())/sd0,
-            (direction.y()*A.yx() - A.yy()*direction.x())/sd0
+            (A.yz()*direction1.x() - direction1.z()*A.yx())/sd0,
+            (direction1.y()*A.yx() - A.yy()*direction1.x())/sd0
         );
 
         return ev/mag(ev);
@@ -275,9 +215,9 @@ Foam::vector Foam::eigenVector
     {
         vector ev
         (
-            (direction.z()*A.zy() - A.zz()*direction.y())/sd1,
+            (direction1.z()*A.zy() - A.zz()*direction1.y())/sd1,
             1,
-            (A.zx()*direction.y() - direction.x()*A.zy())/sd1
+            (A.zx()*direction1.y() - direction1.x()*A.zy())/sd1
         );
 
         return ev/mag(ev);
@@ -286,8 +226,8 @@ Foam::vector Foam::eigenVector
     {
         vector ev
         (
-            (A.xy()*direction.z() - direction.y()*A.xz())/sd2,
-            (direction.x()*A.xz() - A.xx()*direction.z())/sd2,
+            (A.xy()*direction1.z() - direction1.y()*A.xz())/sd2,
+            (direction1.x()*A.xz() - A.xx()*direction1.z())/sd2,
             1
         );
 
@@ -295,40 +235,57 @@ Foam::vector Foam::eigenVector
     }
 
     // Triple eigenvalue
-    return oldDirection;
+    return direction1^direction2;
+}
+
+
+Foam::tensor Foam::eigenVectors(const tensor& T, const vector& lambdas)
+{
+    vector Ux(1, 0, 0), Uy(0, 1, 0), Uz(0, 0, 1);
+
+    Ux = eigenVector(T, lambdas.x(), Uy, Uz);
+    Uy = eigenVector(T, lambdas.y(), Uz, Ux);
+    Uz = eigenVector(T, lambdas.z(), Ux, Uy);
+
+    return tensor(Ux, Uy, Uz);
 }
 
 
-Foam::tensor Foam::eigenVectors(const tensor& t)
+Foam::tensor Foam::eigenVectors(const tensor& T)
 {
-    vector evals(eigenValues(t));
+    const vector lambdas(eigenValues(T));
+
+    return eigenVectors(T, lambdas);
+}
 
-    tensor evs
-    (
-        eigenVector(t, evals.x()),
-        eigenVector(t, evals.y()),
-        eigenVector(t, evals.z())
-    );
 
-    return evs;
+Foam::vector Foam::eigenValues(const symmTensor& T)
+{
+    return eigenValues(tensor(T));
 }
 
 
-Foam::vector Foam::eigenValues(const symmTensor& t)
+Foam::vector Foam::eigenVector
+(
+    const symmTensor& T,
+    const scalar lambda,
+    const vector& direction1,
+    const vector& direction2
+)
 {
-    return eigenValues(tensor(t));
+    return eigenVector(tensor(T), lambda, direction1, direction2);
 }
 
 
-Foam::vector Foam::eigenVector(const symmTensor& t, const scalar lambda)
+Foam::tensor Foam::eigenVectors(const symmTensor& T, const vector& lambdas)
 {
-    return eigenVector(tensor(t), lambda);
+    return eigenVectors(tensor(T), lambdas);
 }
 
 
-Foam::tensor Foam::eigenVectors(const symmTensor& t)
+Foam::tensor Foam::eigenVectors(const symmTensor& T)
 {
-    return eigenVectors(tensor(t));
+    return eigenVectors(tensor(T));
 }
 
 
diff --git a/src/OpenFOAM/primitives/Tensor/tensor/tensor.H b/src/OpenFOAM/primitives/Tensor/tensor/tensor.H
index b92cc8e64a1..89966a9f72a 100644
--- a/src/OpenFOAM/primitives/Tensor/tensor/tensor.H
+++ b/src/OpenFOAM/primitives/Tensor/tensor/tensor.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,13 +50,27 @@ namespace Foam
 
 typedef Tensor<scalar> tensor;
 
-vector eigenValues(const tensor&);
-vector eigenVector(const tensor&, const scalar lambda);
-tensor eigenVectors(const tensor&);
-
-vector eigenValues(const symmTensor&);
-vector eigenVector(const symmTensor&, const scalar lambda);
-tensor eigenVectors(const symmTensor&);
+vector eigenValues(const tensor& T);
+vector eigenVector
+(
+    const tensor& T,
+    const scalar lambda,
+    const vector& direction1,
+    const vector& direction2
+);
+tensor eigenVectors(const tensor& T, const vector& lambdas);
+tensor eigenVectors(const tensor& T);
+
+vector eigenValues(const symmTensor& T);
+vector eigenVector
+(
+    const symmTensor& T,
+    const scalar lambda,
+    const vector& direction1,
+    const vector& direction2
+);
+tensor eigenVectors(const symmTensor& T, const vector& lambdas);
+tensor eigenVectors(const symmTensor& T);
 
 //- Data associated with tensor type are contiguous
 template<>
diff --git a/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.C b/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.C
index 36f97252558..bf5a12aa7f5 100644
--- a/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.C
+++ b/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "tensor2D.H"
+#include "quadraticEqn.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -85,95 +86,96 @@ const Foam::tensor2D Foam::tensor2D::I
 
 Foam::vector2D Foam::eigenValues(const tensor2D& t)
 {
-    scalar i = 0;
-    scalar ii = 0;
+    // Coefficients of the characteristic quadratic polynomial (a = 1)
+    const scalar b = - t.xx() - t.yy();
+    const scalar c = t.xx()*t.yy() - t.xy()*t.yx();
 
-    if (mag(t.xy()) < SMALL && mag(t.yx()) < SMALL)
-    {
-        i = t.xx();
-        ii = t.yy();
-    }
-    else
-    {
-        scalar mb = t.xx() + t.yy();
-        scalar c = t.xx()*t.yy() - t.xy()*t.yx();
+    // Solve
+    Roots<2> roots = quadraticEqn(1, b, c).roots();
 
-        // If there is a zero root
-        if (mag(c) < SMALL)
-        {
-            i = 0;
-            ii = mb;
-        }
-        else
+    // Check the root types
+    vector2D lambda = vector2D::zero;
+    forAll(roots, i)
+    {
+        switch (roots.type(i))
         {
-            scalar disc = sqr(mb) - 4*c;
-
-            if (disc > 0)
-            {
-                scalar q = sqrt(disc);
-
-                i = 0.5*(mb - q);
-                ii = 0.5*(mb + q);
-            }
-            else
-            {
+            case roots::real:
+                lambda[i] = roots[i];
+                break;
+            case roots::complex:
+                WarningInFunction
+                    << "Complex eigenvalues detected for tensor: " << t
+                    << endl;
+                lambda[i] = 0;
+                break;
+            case roots::posInf:
+                lambda[i] = VGREAT;
+                break;
+            case roots::negInf:
+                lambda[i] = - VGREAT;
+                break;
+            case roots::nan:
                 FatalErrorInFunction
-                    << "zero and complex eigenvalues in tensor2D: " << t
-                    << abort(FatalError);
-            }
+                    << "Eigenvalue calculation failed for tensor: " << t
+                    << exit(FatalError);
         }
     }
 
     // Sort the eigenvalues into ascending order
-    if (i > ii)
+    if (lambda.x() > lambda.y())
     {
-        Swap(i, ii);
+        Swap(lambda.x(), lambda.y());
     }
 
-    return vector2D(i, ii);
+    return lambda;
 }
 
 
-Foam::vector2D Foam::eigenVector(const tensor2D& t, const scalar lambda)
+Foam::vector2D Foam::eigenVector
+(
+    const tensor2D& T,
+    const scalar lambda,
+    const vector2D& direction1
+)
 {
-    if (lambda < SMALL)
-    {
-        return vector2D::zero;
-    }
+    // Construct the linear system for this eigenvalue
+    tensor2D A(T - lambda*tensor2D::I);
 
-    if (mag(t.xy()) < SMALL && mag(t.yx()) < SMALL)
+    // Evaluate the eigenvector using the largest divisor
+    if (mag(A.yy()) > mag(A.xx()) && mag(A.yy()) > SMALL)
     {
-        if (lambda > min(t.xx(), t.yy()))
-        {
-            return vector2D(1, 0);
-        }
-        else
-        {
-            return vector2D(0, 1);
-        }
-    }
-    else if (mag(t.xy()) < SMALL)
-    {
-        return vector2D(lambda - t.yy(), t.yx());
+        vector2D ev(1, - A.yx()/A.yy());
+
+        return ev/mag(ev);
     }
-    else
+    else if (mag(A.xx()) > SMALL)
     {
-        return vector2D(t.xy(), lambda - t.yy());
+        vector2D ev(- A.xy()/A.xx(), 1);
+
+        return ev/mag(ev);
     }
+
+    // Repeated eigenvalue
+    return vector2D(- direction1.y(), direction1.x());
 }
 
 
-Foam::tensor2D Foam::eigenVectors(const tensor2D& t)
+Foam::tensor2D Foam::eigenVectors(const tensor2D& T, const vector2D& lambdas)
 {
-    vector2D evals(eigenValues(t));
+    vector2D Ux(1, 0), Uy(0, 1);
+
+    Ux = eigenVector(T, lambdas.x(), Uy);
+    Uy = eigenVector(T, lambdas.y(), Ux);
+
+    return tensor2D(Ux, Uy);
+}
+
 
-    tensor2D evs
-    (
-        eigenVector(t, evals.x()),
-        eigenVector(t, evals.y())
-    );
+Foam::tensor2D Foam::eigenVectors(const tensor2D& T)
+{
+    const vector2D lambdas(eigenValues(T));
 
-    return evs;
+    return eigenVectors(T, lambdas);
 }
 
 
diff --git a/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.H b/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.H
index 1b7cf2f6007..feb7f0e2756 100644
--- a/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.H
+++ b/src/OpenFOAM/primitives/Tensor2D/tensor2D/tensor2D.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,13 @@ namespace Foam
 typedef Tensor2D<scalar> tensor2D;
 
 vector2D eigenValues(const tensor2D& t);
-vector2D eigenVector(const tensor2D& t, const scalar lambda);
+vector2D eigenVector
+(
+    const tensor2D& t,
+    const scalar lambda,
+    const vector2D& direction1
+);
+tensor2D eigenVectors(const tensor2D& t, const vector2D& lambdas);
 tensor2D eigenVectors(const tensor2D& t);
 
 //- Data associated with tensor2D type are contiguous
diff --git a/src/OpenFOAM/primitives/polynomialEqns/Roots.H b/src/OpenFOAM/primitives/polynomialEqns/Roots.H
new file mode 100644
index 00000000000..27829eee46b
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/Roots.H
@@ -0,0 +1,131 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::Roots
+
+Description
+    Templated storage for the roots of polynomial equations, plus flags to
+    indicate the nature of the roots.
+
+SourceFiles
+    RootsI.H
+    Roots.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Roots_H
+#define Roots_H
+
+#include "VectorSpace.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace roots
+{
+
+//- Types of root
+enum type
+{
+    real = 0,
+    complex,
+    posInf,
+    negInf,
+    nan
+};
+
+}
+
+/*---------------------------------------------------------------------------*\
+                         Class Roots Declaration
+\*---------------------------------------------------------------------------*/
+
+template<direction N>
+class Roots
+:
+    public VectorSpace<Roots<N>, scalar, N>
+{
+    // Private data
+
+        //- Root types, encoded into a single integer
+        label types_;
+
+public:
+
+    // Constructors
+
+        //- Construct null
+        inline Roots();
+
+        //- Construct with a uniform value
+        inline Roots(const roots::type t, const scalar x);
+
+        //- Construct by concatenation
+        inline Roots
+        (
+            const roots::type t,
+            const scalar x,
+            const Roots<N - 1>& xs
+        );
+
+        //- Construct by concatenation
+        inline Roots
+        (
+            const Roots<N - 1>& xs,
+            const roots::type t,
+            const scalar x
+        );
+
+        //- Construct by concatenation
+        template <direction M>
+        inline Roots(const Roots<M>& xs, const Roots<N - M>& ys);
+
+
+    // Member Functions
+
+        //- Set the type of the i-th root
+        inline void type(const direction i, const roots::type t);
+
+        //- Return the type of the i-th root
+        inline roots::type type(const direction i) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "RootsI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/RootsI.H b/src/OpenFOAM/primitives/polynomialEqns/RootsI.H
new file mode 100644
index 00000000000..dd1052f0afd
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/RootsI.H
@@ -0,0 +1,136 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template <Foam::direction N>
+inline Foam::Roots<N>::Roots()
+:
+    types_(0)
+{
+    forAll(*this, i)
+    {
+        type(i, roots::nan);
+    }
+}
+
+
+template <Foam::direction N>
+inline Foam::Roots<N>::Roots(const roots::type t, const scalar x)
+:
+    types_(0)
+{
+    forAll(*this, i)
+    {
+        this->v_[i] = x;
+        type(i, t);
+    }
+}
+
+
+template <Foam::direction N>
+inline Foam::Roots<N>::Roots
+(
+    const roots::type t,
+    const scalar x,
+    const Roots<N - 1>& xs
+)
+:
+    types_(0)
+{
+    this->v_[0] = x;
+    type(0, t);
+    forAll(xs, i)
+    {
+        this->v_[i+1] = xs[i];
+        type(i + 1, xs.type(i));
+    }
+}
+
+
+template <Foam::direction N>
+inline Foam::Roots<N>::Roots
+(
+    const Roots<N - 1>& xs,
+    const roots::type t,
+    const scalar x
+)
+:
+    types_(0)
+{
+    forAll(xs, i)
+    {
+        this->v_[i] = xs[i];
+        type(i, xs.type(i));
+    }
+    this->v_[N-1] = x;
+    type(N - 1, t);
+}
+
+
+template <Foam::direction N>
+template <Foam::direction M>
+inline Foam::Roots<N>::Roots
+(
+    const Roots<M>& xs,
+    const Roots<N - M>& ys
+)
+:
+    types_(0)
+{
+    forAll(xs, i)
+    {
+        this->v_[i] = xs[i];
+        type(i, xs.type(i));
+    }
+    forAll(ys, i)
+    {
+        this->v_[i + M] = ys[i];
+        type(i + M, ys.type(i));
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template <Foam::direction N>
+inline void Foam::Roots<N>::type
+(
+    const direction i,
+    const roots::type t
+)
+{
+    types_ += (t - type(i)) << 3*i;
+}
+
+
+template <Foam::direction N>
+inline Foam::roots::type Foam::Roots<N>::type(const direction i) const
+{
+    return static_cast<roots::type>((types_ >> 3*i) & 7);
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.C b/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.C
new file mode 100644
index 00000000000..c46b794c38e
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.C
@@ -0,0 +1,164 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "linearEqn.H"
+#include "quadraticEqn.H"
+#include "cubicEqn.H"
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::Roots<3> Foam::cubicEqn::roots() const
+{
+    /*
+
+    This function solves a cubic equation of the following form:
+
+        a*x^3 + b*x^2 + c*x + d = 0
+          x^3 + B*x^2 + C*x + D = 0
+
+    The following two substitutions are used:
+
+        x = t - B/3
+        t = w - P/3/w
+
+    This reduces the problem to a quadratic in w^3.
+
+        w^6 + Q*w^3 - P = 0
+
+    Where Q and P are given in the code below.
+
+    The properties of the cubic can be related to the properties of this
+    quadratic in w^3. If it has a repeated root a zero, the cubic has a tripl
+    root. If it has a repeated root not at zero, the cubic has two real roots,
+    one repeated and one not. If it has two complex roots, the cubic has three
+    real roots. If it has two real roots, then the cubic has one real root and
+    two complex roots.
+
+    This is solved for the most numerically accurate value of w^3. See the
+    quadratic function for details on how to pick a value. This single value of
+    w^3 can yield up to three cube roots for w, which relate to the three
+    solutions for x.
+
+    Only a single root, or pair of conjugate roots, is directly evaluated; the
+    one, or ones with the lowest relative numerical error. Root identities are
+    then used to recover the remaining roots, possibly utilising a quadratic
+    and/or linear solution. This seems to be a good way of maintaining the
+    accuracy of roots at very different magnitudes.
+
+    */
+
+    const scalar a = this->a();
+    const scalar b = this->b();
+    const scalar c = this->c();
+    const scalar d = this->d();
+
+    if (a == 0)
+    {
+        return Roots<3>(quadraticEqn(b, c, d).roots(), roots::nan, 0);
+    }
+
+    // This is assumed not to over- or under-flow. If it does, all bets are off.
+    const scalar p = c*a - b*b/3;
+    const scalar q = b*b*b*(2.0/27.0) - b*c*a/3 + d*a*a;
+    const scalar disc = p*p*p/27 + q*q/4;
+
+    // How many roots of what types are available?
+    const bool oneReal = disc == 0 && p == 0;
+    const bool twoReal = disc == 0 && p != 0;
+    const bool threeReal = disc < 0;
+    //const bool oneRealTwoComplex = disc > 0;
+
+    static const scalar sqrt3 = sqrt(3.0);
+
+    scalar x;
+
+    if (oneReal)
+    {
+        const Roots<1> r = linearEqn(- a, b/3).roots();
+        return Roots<3>(r.type(0), r[0]);
+    }
+    else if (twoReal)
+    {
+        if (q*b > 0)
+        {
+            x = - 2*cbrt(q/2) - b/3;
+        }
+        else
+        {
+            x = cbrt(q/2) - b/3;
+            const Roots<1> r = linearEqn(- a, x).roots();
+            return Roots<3>(Roots<2>(r, r), linearEqn(x*x, a*d).roots());
+        }
+    }
+    else if (threeReal)
+    {
+        const scalar wCbRe = - q/2, wCbIm = sqrt(- disc);
+        const scalar wAbs = cbrt(hypot(wCbRe, wCbIm));
+        const scalar wArg = atan2(wCbIm, wCbRe)/3;
+        const scalar wRe = wAbs*cos(wArg), wIm = wAbs*sin(wArg);
+        if (b > 0)
+        {
+            x = - wRe - mag(wIm)*sqrt3 - b/3;
+        }
+        else
+        {
+            x = 2*wRe - b/3;
+        }
+    }
+    else // if (oneRealTwoComplex)
+    {
+        const scalar wCb = - q/2 - sign(q)*sqrt(disc);
+        const scalar w = cbrt(wCb);
+        const scalar t = w - p/(3*w);
+        if (p + t*b < 0)
+        {
+            x = t - b/3;
+        }
+        else
+        {
+            const scalar xRe = - t/2 - b/3, xIm = sqrt3/2*(w + p/3/w);
+            x = - a*a*d/(xRe*xRe + xIm*xIm);
+
+            // This form of solving for the remaining roots seems more stable
+            // for this case. This has been determined by trial and error.
+            return
+                Roots<3>
+                (
+                    linearEqn(- a, x).roots(),
+                    quadraticEqn(a*x, x*x + b*x, - a*d).roots()
+                );
+        }
+    }
+
+    return
+        Roots<3>
+        (
+            linearEqn(- a, x).roots(),
+            quadraticEqn(- x*x, c*x + a*d, d*x).roots()
+        );
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.H b/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.H
new file mode 100644
index 00000000000..db923761452
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqn.H
@@ -0,0 +1,115 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::cubicEqn
+
+Description
+    Cubic equation of the form a*x^3 + b*x^2 + c*x + d = 0
+
+SourceFiles
+    cubicEqnI.H
+    cubicEqn.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef cubicEqn_H
+#define cubicEqn_H
+
+#include "Roots.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                         Class cubicEqn Declaration
+\*---------------------------------------------------------------------------*/
+
+class cubicEqn
+:
+    public VectorSpace<cubicEqn, scalar, 4>
+{
+public:
+
+    //- Component labeling enumeration
+    enum components { A, B, C, D };
+
+
+    // Constructors
+
+        //- Construct null
+        inline cubicEqn();
+
+        //- Construct initialized to zero
+        inline cubicEqn(const Foam::zero);
+
+        //- Construct from components
+        inline cubicEqn
+        (
+            const scalar a,
+            const scalar b,
+            const scalar c,
+            const scalar d
+        );
+
+
+    // Member Functions
+
+        // Access
+
+            inline scalar a() const;
+            inline scalar b() const;
+            inline scalar c() const;
+            inline scalar d() const;
+
+            inline scalar& a();
+            inline scalar& b();
+            inline scalar& c();
+            inline scalar& d();
+
+        //- Evaluate at x
+        inline scalar value(const scalar x) const;
+
+        //- Estimate the error of evaluation at x
+        inline scalar error(const scalar x) const;
+
+        //- Get the roots
+        Roots<3> roots() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "cubicEqnI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqnI.H b/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqnI.H
new file mode 100644
index 00000000000..eb6a3283e45
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/cubicEqn/cubicEqnI.H
@@ -0,0 +1,115 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+inline Foam::cubicEqn::cubicEqn()
+{}
+
+
+inline Foam::cubicEqn::cubicEqn(const Foam::zero)
+:
+    VectorSpace<cubicEqn, scalar, 4>(Foam::zero())
+{}
+
+
+inline Foam::cubicEqn::cubicEqn
+(
+    const scalar a,
+    const scalar b,
+    const scalar c,
+    const scalar d
+)
+{
+    this->v_[A] = a;
+    this->v_[B] = b;
+    this->v_[C] = c;
+    this->v_[D] = d;
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+inline Foam::scalar Foam::cubicEqn::a() const
+{
+    return this->v_[A];
+}
+
+
+inline Foam::scalar Foam::cubicEqn::b() const
+{
+    return this->v_[B];
+}
+
+
+inline Foam::scalar Foam::cubicEqn::c() const
+{
+    return this->v_[C];
+}
+
+
+inline Foam::scalar Foam::cubicEqn::d() const
+{
+    return this->v_[D];
+}
+
+
+inline Foam::scalar& Foam::cubicEqn::a()
+{
+    return this->v_[A];
+}
+
+
+inline Foam::scalar& Foam::cubicEqn::b()
+{
+    return this->v_[B];
+}
+
+
+inline Foam::scalar& Foam::cubicEqn::c()
+{
+    return this->v_[C];
+}
+
+
+inline Foam::scalar& Foam::cubicEqn::d()
+{
+    return this->v_[D];
+}
+
+
+inline Foam::scalar Foam::cubicEqn::value(const scalar x) const
+{
+    return x*(x*(x*a() + b()) + c()) + d();
+}
+
+
+inline Foam::scalar Foam::cubicEqn::error(const scalar x) const
+{
+    return mag(SMALL*x*(x*(x*3*a() + 2*b()) + c()));
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqn.H b/src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqn.H
new file mode 100644
index 00000000000..debc52cc01d
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqn.H
@@ -0,0 +1,104 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::linearEqn
+
+Description
+    Linear equation of the form a*x + b = 0
+
+SourceFiles
+    linearEqnI.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef linearEqn_H
+#define linearEqn_H
+
+#include "Roots.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                         Class linearEqn Declaration
+\*---------------------------------------------------------------------------*/
+
+class linearEqn
+:
+    public VectorSpace<linearEqn, scalar, 2>
+{
+public:
+
+    //- Component labeling enumeration
+    enum components { A, B };
+
+
+    // Constructors
+
+        //- Construct null
+        inline linearEqn();
+
+        //- Construct initialized to zero
+        inline linearEqn(const Foam::zero);
+
+        //- Construct from components
+        inline linearEqn(const scalar a, const scalar b);
+
+
+    // Member Functions
+
+        // Access
+
+            inline scalar a() const;
+            inline scalar b() const;
+
+            inline scalar& a();
+            inline scalar& b();
+
+        //- Evaluate at x
+        inline scalar value(const scalar x) const;
+
+        //- Estimate the error of evaluation at x
+        inline scalar error(const scalar x) const;
+
+        //- Get the roots
+        inline Roots<1> roots() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "linearEqnI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqnI.H b/src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqnI.H
new file mode 100644
index 00000000000..e86ccbdd0a6
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/linearEqn/linearEqnI.H
@@ -0,0 +1,111 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+inline Foam::linearEqn::linearEqn()
+{}
+
+
+inline Foam::linearEqn::linearEqn(const Foam::zero)
+:
+    VectorSpace<linearEqn, scalar, 2>(Foam::zero())
+{}
+
+
+inline Foam::linearEqn::linearEqn(const scalar a, const scalar b)
+{
+    this->v_[A] = a;
+    this->v_[B] = b;
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+inline Foam::scalar Foam::linearEqn::a() const
+{
+    return this->v_[A];
+}
+
+
+inline Foam::scalar Foam::linearEqn::b() const
+{
+    return this->v_[B];
+}
+
+
+inline Foam::scalar& Foam::linearEqn::a()
+{
+    return this->v_[A];
+}
+
+
+inline Foam::scalar& Foam::linearEqn::b()
+{
+    return this->v_[B];
+}
+
+
+inline Foam::scalar Foam::linearEqn::value(const scalar x) const
+{
+    return x*a() + b();
+}
+
+
+inline Foam::scalar Foam::linearEqn::error(const scalar x) const
+{
+    return mag(SMALL*x*a());
+}
+
+
+inline Foam::Roots<1> Foam::linearEqn::roots() const
+{
+    /*
+
+    This function solves a linear equation of the following form:
+
+        a*x + b = 0
+          x + B = 0
+
+    */
+
+    const scalar a = this->a();
+    const scalar b = this->b();
+
+    if (a == 0)
+    {
+        return Roots<1>(roots::nan, 0);
+    }
+
+    if (mag(b/VGREAT) >= mag(a))
+    {
+        return Roots<1>(sign(a) == sign(b) ? roots::negInf : roots::posInf, 0);
+    }
+
+    return Roots<1>(roots::real, - b/a);
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.C b/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.C
new file mode 100644
index 00000000000..d84c2928c25
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.C
@@ -0,0 +1,88 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "linearEqn.H"
+#include "quadraticEqn.H"
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::Roots<2> Foam::quadraticEqn::roots() const
+{
+    /*
+
+    This function solves a quadraticEqn equation of the following form:
+
+        a*x^2 + b*x + c = 0
+          x^2 + B*x + C = 0
+
+    The quadraticEqn formula is as follows:
+
+        x = - B/2 +- sqrt(B*B - 4*C)/2
+
+    If the sqrt generates a complex number, this provides the result. If not
+    then the real root with the smallest floating point error is calculated.
+
+        x0 = - B/2 - sign(B)*sqrt(B*B - 4*C)/2
+
+    The other root is the obtained using an identity.
+
+        x1 = C/x0
+
+    */
+
+    const scalar a = this->a();
+    const scalar b = this->b();
+    const scalar c = this->c();
+
+    if (a == 0)
+    {
+        return Roots<2>(linearEqn(b, c).roots(), roots::nan, 0);
+    }
+
+    // This is assumed not to over- or under-flow. If it does, all bets are off.
+    const scalar disc = b*b/4 - a*c;
+
+    // How many roots of what types are available?
+    const bool oneReal = disc == 0;
+    const bool twoReal = disc > 0;
+    //const bool twoComplex = disc < 0;
+
+    if (oneReal)
+    {
+        const Roots<1> r = linearEqn(- a, b/2).roots();
+        return Roots<2>(r, r);
+    }
+    else if (twoReal)
+    {
+        const scalar x = - b/2 - sign(b)*sqrt(disc);
+        return Roots<2>(linearEqn(- a, x).roots(), linearEqn(- x, c).roots());
+    }
+    else // if (twoComplex)
+    {
+        return Roots<2>(roots::complex, 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.H b/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.H
new file mode 100644
index 00000000000..1327dc15c94
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqn.H
@@ -0,0 +1,107 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::quadraticEqn
+
+Description
+    Quadratic equation of the form a*x^2 + b*x + c = 0
+
+SourceFiles
+    quadraticEqnI.H
+    quadraticEqn.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef quadraticEqn_H
+#define quadraticEqn_H
+
+#include "Roots.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                         Class quadraticEqn Declaration
+\*---------------------------------------------------------------------------*/
+
+class quadraticEqn
+:
+    public VectorSpace<quadraticEqn, scalar, 3>
+{
+public:
+
+    //- Component labeling enumeration
+    enum components { A, B, C };
+
+
+    // Constructors
+
+        //- Construct null
+        inline quadraticEqn();
+
+        //- Construct initialized to zero
+        inline quadraticEqn(const Foam::zero);
+
+        //- Construct from components
+        inline quadraticEqn(const scalar a, const scalar b, const scalar c);
+
+
+    // Member Functions
+
+        // Access
+
+            inline scalar a() const;
+            inline scalar b() const;
+            inline scalar c() const;
+
+            inline scalar& a();
+            inline scalar& b();
+            inline scalar& c();
+
+        //- Evaluate at x
+        inline scalar value(const scalar x) const;
+
+        //- Estimate the error of evaluation at x
+        inline scalar error(const scalar x) const;
+
+        //- Get the roots
+        Roots<2> roots() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "quadraticEqnI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqnI.H b/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqnI.H
new file mode 100644
index 00000000000..4b4aacae614
--- /dev/null
+++ b/src/OpenFOAM/primitives/polynomialEqns/quadraticEqn/quadraticEqnI.H
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+inline Foam::quadraticEqn::quadraticEqn()
+{}
+
+
+inline Foam::quadraticEqn::quadraticEqn(const Foam::zero)
+:
+    VectorSpace<quadraticEqn, scalar, 3>(Foam::zero())
+{}
+
+
+inline Foam::quadraticEqn::quadraticEqn
+(
+    const scalar a,
+    const scalar b,
+    const scalar c
+)
+{
+    this->v_[A] = a;
+    this->v_[B] = b;
+    this->v_[C] = c;
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+inline Foam::scalar Foam::quadraticEqn::a() const
+{
+    return this->v_[A];
+}
+
+
+inline Foam::scalar Foam::quadraticEqn::b() const
+{
+    return this->v_[B];
+}
+
+
+inline Foam::scalar Foam::quadraticEqn::c() const
+{
+    return this->v_[C];
+}
+
+
+inline Foam::scalar& Foam::quadraticEqn::a()
+{
+    return this->v_[A];
+}
+
+
+inline Foam::scalar& Foam::quadraticEqn::b()
+{
+    return this->v_[B];
+}
+
+
+inline Foam::scalar& Foam::quadraticEqn::c()
+{
+    return this->v_[C];
+}
+
+
+inline Foam::scalar Foam::quadraticEqn::value(const scalar x) const
+{
+    return x*(x*a() + b()) + c();
+}
+
+
+inline Foam::scalar Foam::quadraticEqn::error(const scalar x) const
+{
+    return mag(SMALL*x*(x*2*a() + b()));
+}
+
+
+// ************************************************************************* //
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
index c0eb30678cb..9933c780d48 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -458,7 +458,7 @@ void Foam::edgeCollapser::faceCollapseAxisAndAspectRatio
             // normal, as it has the greatest value.  The minimum eigenvalue
             // is the dominant collapse axis for high aspect ratio faces.
 
-            collapseAxis = eigenVector(J, eVals.x());
+            collapseAxis = eigenVectors(J, eVals).x();
 
             // The inertia calculation describes the mass distribution as a
             // function of distance squared to the axis, so the square root of
-- 
GitLab


From ad65ac255a8b473cd1eca8297bb1d378cd534b34 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 22 Mar 2017 17:13:53 +0000
Subject: [PATCH 150/277] Diffusion number: Corrected in chtMultiRegionFoam and
 pyrolysisModels::reactingOneDim

Resolves bug-report https://bugs.openfoam.org/view.php?id=2512
---
 .../solid/solidRegionDiffNo.C                 | 23 ++++++++-----------
 .../reactingOneDim/reactingOneDim.C           | 21 ++++++-----------
 2 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solidRegionDiffNo.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solidRegionDiffNo.C
index de5307c11bc..e1c501f1b9f 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solidRegionDiffNo.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solidRegionDiffNo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,7 +24,9 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "solidRegionDiffNo.H"
-#include "fvc.H"
+#include "surfaceInterpolate.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 Foam::scalar Foam::solidRegionDiffNo
 (
@@ -34,21 +36,16 @@ Foam::scalar Foam::solidRegionDiffNo
     const volScalarField& kappa
 )
 {
-    scalar DiNum = 0.0;
-    scalar meanDiNum = 0.0;
-
-    //- Take care: can have fluid domains with 0 cells so do not test for
-    //  zero internal faces.
     surfaceScalarField kapparhoCpbyDelta
     (
-        mesh.surfaceInterpolation::deltaCoeffs()
-      * fvc::interpolate(kappa)
-      / fvc::interpolate(Cprho)
+        sqr(mesh.surfaceInterpolation::deltaCoeffs())
+       *fvc::interpolate(kappa)
+       /fvc::interpolate(Cprho)
     );
 
-    DiNum = max(kapparhoCpbyDelta).value()*runTime.deltaT().value();
-
-    meanDiNum = (average(kapparhoCpbyDelta)).value()*runTime.deltaT().value();
+    const scalar DiNum = max(kapparhoCpbyDelta).value()*runTime.deltaTValue();
+    const scalar meanDiNum =
+        average(kapparhoCpbyDelta).value()*runTime.deltaTValue();
 
     Info<< "Region: " << mesh.name() << " Diffusion Number mean: " << meanDiNum
         << " max: " << DiNum << endl;
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
index be8584b5dac..6d6b1aaf18a 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,13 +25,11 @@ License
 
 #include "reactingOneDim.H"
 #include "addToRunTimeSelectionTable.H"
-#include "surfaceInterpolate.H"
 #include "fvm.H"
 #include "fvcDiv.H"
 #include "fvcVolumeIntegrate.H"
-#include "fvMatrices.H"
-#include "absorptionEmissionModel.H"
 #include "fvcLaplacian.H"
+#include "absorptionEmissionModel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -63,7 +61,6 @@ void reactingOneDim::readReactingOneDimControls()
     coeffs().lookup("QrHSource") >> QrHSource_;
     useChemistrySolvers_ =
         coeffs().lookupOrDefault<bool>("useChemistrySolvers", true);
-
 }
 
 
@@ -251,9 +248,7 @@ void reactingOneDim::solveContinuity()
 
     fvScalarMatrix rhoEqn
     (
-        fvm::ddt(rho_)
-        ==
-      - solidChemistry_->RRg()
+        fvm::ddt(rho_) == -solidChemistry_->RRg()
     );
 
     if (regionMesh().moving())
@@ -287,9 +282,7 @@ void reactingOneDim::solveSpeciesMass()
 
         fvScalarMatrix YiEqn
         (
-            fvm::ddt(rho_, Yi)
-         ==
-            solidChemistry_->RRs(i)
+            fvm::ddt(rho_, Yi) == solidChemistry_->RRs(i)
         );
 
         if (regionMesh().moving())
@@ -624,9 +617,9 @@ scalar reactingOneDim::solidRegionDiffNo() const
     {
         surfaceScalarField KrhoCpbyDelta
         (
-            regionMesh().surfaceInterpolation::deltaCoeffs()
-          * fvc::interpolate(kappa())
-          / fvc::interpolate(Cp()*rho_)
+            sqr(regionMesh().surfaceInterpolation::deltaCoeffs())
+           *fvc::interpolate(kappa())
+           /fvc::interpolate(Cp()*rho_)
         );
 
         DiNum = max(KrhoCpbyDelta.primitiveField())*time().deltaTValue();
-- 
GitLab


From aae3705bdc5bb3b0a41c5cb7205b3d197cd63b51 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 22 Mar 2017 18:30:51 +0000
Subject: [PATCH 151/277] functionObjects::fieldAverage: Initialize totalTime_
 for new fields following restart

Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2510
---
 .../field/fieldAverage/fieldAverage.C            | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/functionObjects/field/fieldAverage/fieldAverage.C b/src/functionObjects/field/fieldAverage/fieldAverage.C
index 43ab2397529..d337b0db571 100644
--- a/src/functionObjects/field/fieldAverage/fieldAverage.C
+++ b/src/functionObjects/field/fieldAverage/fieldAverage.C
@@ -76,6 +76,17 @@ void Foam::functionObjects::fieldAverage::initialize()
     {
         totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue());
     }
+    else
+    {
+        // Check if totalTime_ has been set otherwise initialize
+        forAll(totalTime_, fieldi)
+        {
+            if (totalTime_[fieldi] < 0)
+            {
+                totalTime_[fieldi] = obr_.time().deltaTValue();
+            }
+        }
+    }
 
     resetFields();
 
@@ -242,7 +253,10 @@ void Foam::functionObjects::fieldAverage::readAveragingProperties()
         Log << "    Restarting averaging for fields:" << nl;
 
         totalIter_.setSize(faItems_.size(), 1);
-        totalTime_.setSize(faItems_.size());
+
+        // Initialize totalTime with negative values
+        // to indicate that it has not been set
+        totalTime_.setSize(faItems_.size(), -1);
 
         forAll(faItems_, fieldi)
         {
-- 
GitLab


From 92b6f3dcfa0053a050e68acf22efc7e92ade867d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 22 Mar 2017 22:27:47 +0000
Subject: [PATCH 152/277] CrankNicolsonDdtScheme: Added option "ramp" function
 to smoothly transition from Euler

    Off-centering is specified via the mandatory coefficient \c ocCoeff in the
    range [0,1] following the scheme name e.g.
    \verbatim
    ddtSchemes
    {
        default         CrankNicolson 0.9;
    }
    \endverbatim
    or with an optional "ramp" function to transition from the Euler scheme to
    Crank-Nicolson over a initial period to avoid start-up problems, e.g.
    \verbatim
    ddtSchemes
    {
        default         CrankNicolson
        ocCoeff
        {
            type scale;
            scale linearRamp;
            duration 0.01;
            value 0.9;
        };
    }
    \endverbatim

Note this functionality is experimental and the specification and implementation
may change if issues arise.
---
 .../CrankNicolsonDdtScheme.C                  |  8 +--
 .../CrankNicolsonDdtScheme.H                  | 57 +++++++++++++++----
 2 files changed, 49 insertions(+), 16 deletions(-)

diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index dd12b2552f1..341cf88b09d 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -200,7 +200,7 @@ scalar CrankNicolsonDdtScheme<Type>::coef_
 {
     if (mesh().time().timeIndex() > ddt0.startTimeIndex())
     {
-        return 1 + ocCoeff_;
+        return 1 + ocCoeff();
     }
     else
     {
@@ -218,7 +218,7 @@ scalar CrankNicolsonDdtScheme<Type>::coef0_
 {
     if (mesh().time().timeIndex() > ddt0.startTimeIndex() + 1)
     {
-        return 1 + ocCoeff_;
+        return 1 + ocCoeff();
     }
     else
     {
@@ -256,9 +256,9 @@ tmp<GeoField> CrankNicolsonDdtScheme<Type>::offCentre_
     const GeoField& ddt0
 ) const
 {
-    if (ocCoeff_ < 1)
+    if (ocCoeff() < 1)
     {
-        return ocCoeff_*ddt0;
+        return ocCoeff()*ddt0;
     }
     else
     {
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
index 78c343c3b4c..4b002fd45b3 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
@@ -32,13 +32,28 @@ Description
     geometries and it is necessary to "off-centre" the scheme to stabilize it
     while retaining greater temporal accuracy than the first-order
     Euler-implicit scheme.  Off-centering is specified via the mandatory
-    coefficient in the range [0,1] following the scheme name e.g.
+    coefficient \c ocCoeff in the range [0,1] following the scheme name e.g.
     \verbatim
     ddtSchemes
     {
         default         CrankNicolson 0.9;
     }
     \endverbatim
+    or with an optional "ramp" function to transition from the Euler scheme to
+    Crank-Nicolson over a initial period to avoid start-up problems, e.g.
+    \verbatim
+    ddtSchemes
+    {
+        default         CrankNicolson
+        ocCoeff
+        {
+            type scale;
+            scale linearRamp;
+            duration 0.01;
+            value 0.9;
+        };
+    }
+    \endverbatim
     With a coefficient of 1 the scheme is fully centred and second-order,
     with a coefficient of 0 the scheme is equivalent to Euler-implicit.
     A coefficient of 0.9 has been found to be suitable for a range of cases for
@@ -76,6 +91,7 @@ SourceFiles
 #define CrankNicolsonDdtScheme_H
 
 #include "ddtScheme.H"
+#include "Constant.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -138,7 +154,7 @@ class CrankNicolsonDdtScheme
 
 
         //- Off-centering coefficient, 1 -> CN, less than one blends with EI
-        scalar ocCoeff_;
+        autoPtr<Function1<scalar>> ocCoeff_;
 
 
     // Private Member Functions
@@ -197,7 +213,7 @@ public:
         CrankNicolsonDdtScheme(const fvMesh& mesh)
         :
             ddtScheme<Type>(mesh),
-            ocCoeff_(1.0)
+            ocCoeff_(new Function1Types::Constant<scalar>("ocCoeff", 1))
         {
             // Ensure the old-old-time cell volumes are available
             // for moving meshes
@@ -210,17 +226,34 @@ public:
         //- Construct from mesh and Istream
         CrankNicolsonDdtScheme(const fvMesh& mesh, Istream& is)
         :
-            ddtScheme<Type>(mesh, is),
-            ocCoeff_(readScalar(is))
+            ddtScheme<Type>(mesh, is)
         {
-            if (ocCoeff_ < 0 || ocCoeff_ > 1)
+            token firstToken(is);
+
+            if (firstToken.isNumber())
             {
-                FatalIOErrorInFunction
+                const scalar ocCoeff = firstToken.scalarToken();
+                if (ocCoeff < 0 || ocCoeff > 1)
+                {
+                    FatalIOErrorInFunction
+                    (
+                        is
+                    )   << "Off-centreing coefficient = " << ocCoeff
+                        << " should be >= 0 and <= 1"
+                        << exit(FatalIOError);
+                }
+
+                ocCoeff_ = new Function1Types::Constant<scalar>
                 (
-                    is
-                )   << "Off-centreing coefficient = " << ocCoeff_
-                    << " should be >= 0 and <= 1"
-                    << exit(FatalIOError);
+                    "ocCoeff",
+                    ocCoeff
+                );
+            }
+            else
+            {
+                is.putBack(firstToken);
+                dictionary dict(is);
+                ocCoeff_ = Function1<scalar>::New("ocCoeff", dict);
             }
 
             // Ensure the old-old-time cell volumes are available
@@ -243,7 +276,7 @@ public:
         //- Return the off-centreing coefficient
         scalar ocCoeff() const
         {
-            return ocCoeff_;
+            return ocCoeff_->value(mesh().time().value());
         }
 
         tmp<GeometricField<Type, fvPatchField, volMesh>> fvcDdt
-- 
GitLab


From 1fc82434ba2720b640cc4f70a9dfe1246cd6e1ae Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 23 Mar 2017 12:11:24 +0000
Subject: [PATCH 153/277] CrankNicolsonDdtScheme: Reorganized the code to
 simplify maintenance

---
 .../CrankNicolsonDdtScheme.C                  | 66 ++++++++++++++++++-
 .../CrankNicolsonDdtScheme.H                  | 60 ++---------------
 2 files changed, 71 insertions(+), 55 deletions(-)

diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index 341cf88b09d..bfbc7cf9dee 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -27,6 +27,7 @@ License
 #include "surfaceInterpolate.H"
 #include "fvcDiv.H"
 #include "fvMatrices.H"
+#include "Constant.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -277,7 +278,70 @@ const FieldField<fvPatchField, Type>& ff
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Type>
+CrankNicolsonDdtScheme<Type>::CrankNicolsonDdtScheme(const fvMesh& mesh)
+:
+    ddtScheme<Type>(mesh),
+    ocCoeff_(new Function1Types::Constant<scalar>("ocCoeff", 1))
+{
+    // Ensure the old-old-time cell volumes are available
+    // for moving meshes
+    if (mesh.moving())
+    {
+        mesh.V00();
+    }
+}
+
+
+template<class Type>
+CrankNicolsonDdtScheme<Type>::CrankNicolsonDdtScheme
+(
+    const fvMesh& mesh,
+    Istream& is
+)
+:
+    ddtScheme<Type>(mesh, is)
+{
+    token firstToken(is);
+
+    if (firstToken.isNumber())
+    {
+        const scalar ocCoeff = firstToken.scalarToken();
+        if (ocCoeff < 0 || ocCoeff > 1)
+        {
+            FatalIOErrorInFunction
+            (
+                is
+            )   << "Off-centreing coefficient = " << ocCoeff
+                << " should be >= 0 and <= 1"
+                << exit(FatalIOError);
+        }
+
+        ocCoeff_ = new Function1Types::Constant<scalar>
+        (
+            "ocCoeff",
+            ocCoeff
+        );
+    }
+    else
+    {
+        is.putBack(firstToken);
+        dictionary dict(is);
+        ocCoeff_ = Function1<scalar>::New("ocCoeff", dict);
+    }
+
+    // Ensure the old-old-time cell volumes are available
+    // for moving meshes
+    if (mesh.moving())
+    {
+        mesh.V00();
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class Type>
 tmp<GeometricField<Type, fvPatchField, volMesh>>
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
index 4b002fd45b3..fb3380138ab 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H
@@ -91,7 +91,7 @@ SourceFiles
 #define CrankNicolsonDdtScheme_H
 
 #include "ddtScheme.H"
-#include "Constant.H"
+#include "Function1.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -153,7 +153,8 @@ class CrankNicolsonDdtScheme
         };
 
 
-        //- Off-centering coefficient, 1 -> CN, less than one blends with EI
+        //- Off-centering coefficient function
+        //  1 -> CN, less than one blends with EI
         autoPtr<Function1<scalar>> ocCoeff_;
 
 
@@ -210,59 +211,10 @@ public:
     // Constructors
 
         //- Construct from mesh
-        CrankNicolsonDdtScheme(const fvMesh& mesh)
-        :
-            ddtScheme<Type>(mesh),
-            ocCoeff_(new Function1Types::Constant<scalar>("ocCoeff", 1))
-        {
-            // Ensure the old-old-time cell volumes are available
-            // for moving meshes
-            if (mesh.moving())
-            {
-                mesh.V00();
-            }
-        }
+        CrankNicolsonDdtScheme(const fvMesh& mesh);
 
         //- Construct from mesh and Istream
-        CrankNicolsonDdtScheme(const fvMesh& mesh, Istream& is)
-        :
-            ddtScheme<Type>(mesh, is)
-        {
-            token firstToken(is);
-
-            if (firstToken.isNumber())
-            {
-                const scalar ocCoeff = firstToken.scalarToken();
-                if (ocCoeff < 0 || ocCoeff > 1)
-                {
-                    FatalIOErrorInFunction
-                    (
-                        is
-                    )   << "Off-centreing coefficient = " << ocCoeff
-                        << " should be >= 0 and <= 1"
-                        << exit(FatalIOError);
-                }
-
-                ocCoeff_ = new Function1Types::Constant<scalar>
-                (
-                    "ocCoeff",
-                    ocCoeff
-                );
-            }
-            else
-            {
-                is.putBack(firstToken);
-                dictionary dict(is);
-                ocCoeff_ = Function1<scalar>::New("ocCoeff", dict);
-            }
-
-            // Ensure the old-old-time cell volumes are available
-            // for moving meshes
-            if (mesh.moving())
-            {
-                mesh.V00();
-            }
-        }
+        CrankNicolsonDdtScheme(const fvMesh& mesh, Istream& is);
 
 
     // Member Functions
@@ -273,7 +225,7 @@ public:
             return fv::ddtScheme<Type>::mesh();
         }
 
-        //- Return the off-centreing coefficient
+        //- Return the current off-centreing coefficient
         scalar ocCoeff() const
         {
             return ocCoeff_->value(mesh().time().value());
-- 
GitLab


From 3b983739d2082bf777965f0088f042b485d181fa Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Fri, 24 Mar 2017 11:40:36 +0000
Subject: [PATCH 154/277] postProcessing: changed isosurface to use
 isoSurfaceCell algorithm

---
 etc/caseDicts/postProcessing/visualization/surfaces.cfg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/etc/caseDicts/postProcessing/visualization/surfaces.cfg b/etc/caseDicts/postProcessing/visualization/surfaces.cfg
index 573885089d9..cad26c9bfad 100644
--- a/etc/caseDicts/postProcessing/visualization/surfaces.cfg
+++ b/etc/caseDicts/postProcessing/visualization/surfaces.cfg
@@ -33,7 +33,7 @@ cuttingPlane
 
 isosurface
 {
-    type            isoSurface;
+    type            isoSurfaceCell;
     interpolate     true;
 }
 
-- 
GitLab


From f3feb1aa0a23c6a2ef87db13a74b366bc7c08733 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Fri, 24 Mar 2017 12:33:37 +0000
Subject: [PATCH 155/277] tutorials: moved laminar interDyMFoam examples into
 "laminar" directory

---
 .../interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/U | 0
 .../{RAS => laminar}/damBreakWithObstacle/0.orig/alpha.water    | 0
 .../damBreakWithObstacle/0.orig/alpha.water.orig                | 0
 .../interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/k | 0
 .../{RAS => laminar}/damBreakWithObstacle/0.orig/nut            | 0
 .../{RAS => laminar}/damBreakWithObstacle/0.orig/omega          | 0
 .../{RAS => laminar}/damBreakWithObstacle/0.orig/p_rgh          | 0
 .../interDyMFoam/{RAS => laminar}/damBreakWithObstacle/Allclean | 0
 .../interDyMFoam/{RAS => laminar}/damBreakWithObstacle/Allrun   | 0
 .../damBreakWithObstacle/constant/dynamicMeshDict               | 0
 .../{RAS => laminar}/damBreakWithObstacle/constant/g            | 0
 .../damBreakWithObstacle/constant/transportProperties           | 0
 .../damBreakWithObstacle/constant/turbulenceProperties          | 0
 .../{RAS => laminar}/damBreakWithObstacle/createObstacle.setSet | 0
 .../{RAS => laminar}/damBreakWithObstacle/system/blockMeshDict  | 0
 .../{RAS => laminar}/damBreakWithObstacle/system/controlDict    | 0
 .../damBreakWithObstacle/system/decomposeParDict                | 0
 .../{RAS => laminar}/damBreakWithObstacle/system/fvSchemes      | 0
 .../{RAS => laminar}/damBreakWithObstacle/system/fvSolution     | 0
 .../{RAS => laminar}/damBreakWithObstacle/system/setFieldsDict  | 0
 .../{RAS => laminar}/damBreakWithObstacle/system/topoSetDict    | 0
 .../multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/0/U | 0
 .../{RAS => laminar}/sloshingTank2D/0/alpha.water.orig          | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D/0/p_rgh        | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D/Allclean       | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D/Allrun         | 0
 .../{RAS => laminar}/sloshingTank2D/constant/dynamicMeshDict    | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D/constant/g     | 0
 .../sloshingTank2D/constant/transportProperties                 | 0
 .../sloshingTank2D/constant/turbulenceProperties                | 0
 .../{RAS => laminar}/sloshingTank2D/system/blockMeshDict.m4     | 0
 .../{RAS => laminar}/sloshingTank2D/system/controlDict          | 0
 .../{RAS => laminar}/sloshingTank2D/system/decomposeParDict     | 0
 .../{RAS => laminar}/sloshingTank2D/system/fvSchemes            | 0
 .../{RAS => laminar}/sloshingTank2D/system/fvSolution           | 0
 .../{RAS => laminar}/sloshingTank2D/system/setFieldsDict        | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/0/U        | 0
 .../{RAS => laminar}/sloshingTank2D3DoF/0/alpha.water.orig      | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/0/p_rgh    | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/Allclean   | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/Allrun     | 0
 .../sloshingTank2D3DoF/constant/dynamicMeshDict                 | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/constant/g | 0
 .../sloshingTank2D3DoF/constant/transportProperties             | 0
 .../sloshingTank2D3DoF/constant/turbulenceProperties            | 0
 .../{RAS => laminar}/sloshingTank2D3DoF/system/blockMeshDict.m4 | 0
 .../{RAS => laminar}/sloshingTank2D3DoF/system/controlDict      | 0
 .../{RAS => laminar}/sloshingTank2D3DoF/system/decomposeParDict | 0
 .../{RAS => laminar}/sloshingTank2D3DoF/system/fvSchemes        | 0
 .../{RAS => laminar}/sloshingTank2D3DoF/system/fvSolution       | 0
 .../{RAS => laminar}/sloshingTank2D3DoF/system/setFieldsDict    | 0
 .../multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/0/U | 0
 .../{RAS => laminar}/sloshingTank3D/0/alpha.water.orig          | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D/0/p_rgh        | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D/Allclean       | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D/Allrun         | 0
 .../{RAS => laminar}/sloshingTank3D/constant/dynamicMeshDict    | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D/constant/g     | 0
 .../sloshingTank3D/constant/transportProperties                 | 0
 .../sloshingTank3D/constant/turbulenceProperties                | 0
 .../{RAS => laminar}/sloshingTank3D/system/blockMeshDict.m4     | 0
 .../{RAS => laminar}/sloshingTank3D/system/controlDict          | 0
 .../{RAS => laminar}/sloshingTank3D/system/decomposeParDict     | 0
 .../{RAS => laminar}/sloshingTank3D/system/fvSchemes            | 0
 .../{RAS => laminar}/sloshingTank3D/system/fvSolution           | 0
 .../{RAS => laminar}/sloshingTank3D/system/setFieldsDict        | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/0/U        | 0
 .../{RAS => laminar}/sloshingTank3D3DoF/0/alpha.water.orig      | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/0/p_rgh    | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/Allclean   | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/Allrun     | 0
 .../sloshingTank3D3DoF/constant/dynamicMeshDict                 | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/constant/g | 0
 .../sloshingTank3D3DoF/constant/transportProperties             | 0
 .../sloshingTank3D3DoF/constant/turbulenceProperties            | 0
 .../{RAS => laminar}/sloshingTank3D3DoF/system/blockMeshDict.m4 | 0
 .../{RAS => laminar}/sloshingTank3D3DoF/system/controlDict      | 0
 .../{RAS => laminar}/sloshingTank3D3DoF/system/decomposeParDict | 0
 .../{RAS => laminar}/sloshingTank3D3DoF/system/fvSchemes        | 0
 .../{RAS => laminar}/sloshingTank3D3DoF/system/fvSolution       | 0
 .../{RAS => laminar}/sloshingTank3D3DoF/system/setFieldsDict    | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/0/U        | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/0/alpha.water.orig      | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/0/p_rgh    | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/Allclean   | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/Allrun     | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/constant/6DoF.dat       | 0
 .../sloshingTank3D6DoF/constant/dynamicMeshDict                 | 0
 .../interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/constant/g | 0
 .../sloshingTank3D6DoF/constant/transportProperties             | 0
 .../sloshingTank3D6DoF/constant/turbulenceProperties            | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/gen6DoF/Make/files      | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/gen6DoF/Make/options    | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/gen6DoF/gen6DoF.C       | 2 +-
 .../{RAS => laminar}/sloshingTank3D6DoF/system/blockMeshDict.m4 | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/system/controlDict      | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/system/decomposeParDict | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/system/fvSchemes        | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/system/fvSolution       | 0
 .../{RAS => laminar}/sloshingTank3D6DoF/system/setFieldsDict    | 0
 .../multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/0/U  | 0
 .../{RAS => laminar}/testTubeMixer/0/alpha.water.orig           | 0
 .../interDyMFoam/{RAS => laminar}/testTubeMixer/0/p_rgh         | 0
 .../interDyMFoam/{RAS => laminar}/testTubeMixer/Allclean        | 0
 .../interDyMFoam/{RAS => laminar}/testTubeMixer/Allrun          | 0
 .../{RAS => laminar}/testTubeMixer/constant/dynamicMeshDict     | 0
 .../interDyMFoam/{RAS => laminar}/testTubeMixer/constant/g      | 0
 .../{RAS => laminar}/testTubeMixer/constant/transportProperties | 0
 .../testTubeMixer/constant/turbulenceProperties                 | 0
 .../{RAS => laminar}/testTubeMixer/system/blockMeshDict         | 0
 .../{RAS => laminar}/testTubeMixer/system/controlDict           | 0
 .../{RAS => laminar}/testTubeMixer/system/decomposeParDict      | 0
 .../{RAS => laminar}/testTubeMixer/system/fvSchemes             | 0
 .../{RAS => laminar}/testTubeMixer/system/fvSolution            | 0
 .../{RAS => laminar}/testTubeMixer/system/setFieldsDict         | 0
 115 files changed, 1 insertion(+), 1 deletion(-)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/U (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/alpha.water (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/alpha.water.orig (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/k (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/nut (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/omega (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/0.orig/p_rgh (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/Allclean (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/Allrun (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/constant/dynamicMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/constant/g (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/constant/transportProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/constant/turbulenceProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/createObstacle.setSet (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/system/blockMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/system/controlDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/system/decomposeParDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/system/fvSchemes (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/system/fvSolution (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/system/setFieldsDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/damBreakWithObstacle/system/topoSetDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/0/U (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/0/alpha.water.orig (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/0/p_rgh (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/Allclean (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/Allrun (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/constant/dynamicMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/constant/g (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/constant/transportProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/constant/turbulenceProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/system/blockMeshDict.m4 (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/system/controlDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/system/decomposeParDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/system/fvSchemes (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/system/fvSolution (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D/system/setFieldsDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/0/U (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/0/alpha.water.orig (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/0/p_rgh (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/Allclean (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/Allrun (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/constant/dynamicMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/constant/g (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/constant/transportProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/constant/turbulenceProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/system/blockMeshDict.m4 (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/system/controlDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/system/decomposeParDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/system/fvSchemes (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/system/fvSolution (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank2D3DoF/system/setFieldsDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/0/U (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/0/alpha.water.orig (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/0/p_rgh (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/Allclean (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/Allrun (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/constant/dynamicMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/constant/g (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/constant/transportProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/constant/turbulenceProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/system/blockMeshDict.m4 (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/system/controlDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/system/decomposeParDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/system/fvSchemes (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/system/fvSolution (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D/system/setFieldsDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/0/U (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/0/alpha.water.orig (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/0/p_rgh (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/Allclean (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/Allrun (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/constant/dynamicMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/constant/g (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/constant/transportProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/constant/turbulenceProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/system/blockMeshDict.m4 (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/system/controlDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/system/decomposeParDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/system/fvSchemes (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/system/fvSolution (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D3DoF/system/setFieldsDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/0/U (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/0/alpha.water.orig (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/0/p_rgh (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/Allclean (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/Allrun (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/constant/6DoF.dat (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/constant/dynamicMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/constant/g (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/constant/transportProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/constant/turbulenceProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/gen6DoF/Make/files (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/gen6DoF/Make/options (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/gen6DoF/gen6DoF.C (97%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/system/blockMeshDict.m4 (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/system/controlDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/system/decomposeParDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/system/fvSchemes (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/system/fvSolution (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/sloshingTank3D6DoF/system/setFieldsDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/0/U (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/0/alpha.water.orig (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/0/p_rgh (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/Allclean (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/Allrun (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/constant/dynamicMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/constant/g (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/constant/transportProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/constant/turbulenceProperties (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/system/blockMeshDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/system/controlDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/system/decomposeParDict (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/system/fvSchemes (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/system/fvSolution (100%)
 rename tutorials/multiphase/interDyMFoam/{RAS => laminar}/testTubeMixer/system/setFieldsDict (100%)

diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/U b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/U
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/U
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/alpha.water
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/alpha.water
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/k b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/k
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/k
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/k
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/nut b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/nut
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/nut
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/omega b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/omega
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/omega
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/omega
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/0.orig/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allclean b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allclean
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allrun b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allrun
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/g b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/g
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/createObstacle.setSet b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/createObstacle.setSet
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/createObstacle.setSet
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/createObstacle.setSet
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/controlDict
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/topoSetDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/topoSetDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/topoSetDict
rename to tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/topoSetDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/U b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/U
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/U
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allclean
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allrun
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/g
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/controlDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/U b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/U
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/U
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/g
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/U b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/U
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/U
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allclean
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allrun
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/g
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/controlDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/U b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/U
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/U
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/g
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/U b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/U
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/U
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/6DoF.dat b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/6DoF.dat
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/6DoF.dat
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/6DoF.dat
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/g
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/files b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/files
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/files
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/files
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/options b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/options
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/options
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/options
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/gen6DoF.C b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
similarity index 97%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
index fc7a3fbabc3..c574cd2068f 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/U b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/U
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/U
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allclean b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allclean
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allrun b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allrun
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/g b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/g
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/controlDict
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/setFieldsDict
-- 
GitLab


From 4c52f8ff1d69c9932236103b36ddef28874abb0f Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Fri, 24 Mar 2017 14:43:53 +0000
Subject: [PATCH 156/277] sloshingCylinder tutorial: sloshing in cylinder under
 zero gravity

Demonstrates meshing a cylinder with hemispehrical ends using snappyHexMesh with
a polar background mesh that uses the point and edge projection feature of blockMesh.
The case prescribes a multiMotion on the cylinder, combining an oscillatingLinearMotion
and transverse rotatingMotion.
---
 .../interDyMFoam/laminar/sloshingCylinder/0/U |    32 +
 .../sloshingCylinder/0/alpha.water.orig       |    31 +
 .../laminar/sloshingCylinder/0/p_rgh          |    31 +
 .../laminar/sloshingCylinder/Allclean         |     7 +
 .../laminar/sloshingCylinder/Allrun           |    13 +
 .../sloshingCylinder/constant/dynamicMeshDict |    52 +
 .../laminar/sloshingCylinder/constant/g       |    22 +
 .../constant/transportProperties              |    36 +
 .../constant/triSurface/sloshingCylinder.obj  | 48510 ++++++++++++++++
 .../constant/turbulenceProperties             |    21 +
 .../sloshingCylinder/system/blockMeshDict     |    95 +
 .../sloshingCylinder/system/controlDict       |    60 +
 .../laminar/sloshingCylinder/system/fvSchemes |    51 +
 .../sloshingCylinder/system/fvSolution        |    89 +
 .../sloshingCylinder/system/meshQualityDict   |    19 +
 .../sloshingCylinder/system/setFieldsDict     |    36 +
 .../sloshingCylinder/system/snappyHexMeshDict |    83 +
 17 files changed, 49188 insertions(+)
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh
 create mode 100755 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allclean
 create mode 100755 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allrun
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/triSurface/sloshingCylinder.obj
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict
 create mode 100644 tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict

diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U
new file mode 100644
index 00000000000..42e8f649aa2
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    wall
+    {
+        type            movingWallVelocity;
+        value           uniform (0 0 0);
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig
new file mode 100644
index 00000000000..d3dbf1efc60
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig
@@ -0,0 +1,31 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.water;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wall
+    {
+        type            zeroGradient;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh
new file mode 100644
index 00000000000..66d6e43ed1f
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh
@@ -0,0 +1,31 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    wall
+    {
+        type            fixedFluxPressure;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allclean
new file mode 100755
index 00000000000..dc74ee4df5c
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allclean
@@ -0,0 +1,7 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+foamCleanTutorials cases
+rm -rf 0/alpha.water 0/alpha.water.gz probes wallPressure pRefProbe
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allrun
new file mode 100755
index 00000000000..44bb710e510
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/Allrun
@@ -0,0 +1,13 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication snappyHexMesh -overwrite
+cp 0/alpha.water.orig 0/alpha.water
+runApplication setFields
+runApplication `getApplication`
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
new file mode 100644
index 00000000000..4d43baaaea0
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      dynamicMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dynamicFvMesh   dynamicMotionSolverFvMesh;
+
+solver solidBody;
+
+solidBodyCoeffs
+{
+    solidBodyMotionFunction multiMotion;
+
+    multiMotionCoeffs
+    {
+        oscillation
+        {
+            solidBodyMotionFunction oscillatingLinearMotion;
+            oscillatingLinearMotionCoeffs
+            {
+                amplitude     (0.1 0 0);
+                omega         18.8945578;
+            }
+        }
+
+        rotation
+        {
+            solidBodyMotionFunction  rotatingMotion;
+            rotatingMotionCoeffs
+            {
+                origin        (0 0.02 0);
+                axis          (0 0 1);
+                omega         18.8945578;
+            }
+        }
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g
new file mode 100644
index 00000000000..508d6584943
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g
@@ -0,0 +1,22 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 0 0);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
new file mode 100644
index 00000000000..6c7844de681
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+phases (water air);
+
+water
+{
+    transportModel  Newtonian;
+    nu              [0 2 -1 0 0 0 0] 1e-06;
+    rho             [1 -3 0 0 0 0 0] 998.2;
+}
+
+air
+{
+    transportModel  Newtonian;
+    nu              [0 2 -1 0 0 0 0] 1.48e-05;
+    rho             [1 -3 0 0 0 0 0] 1;
+}
+
+sigma           [1 0 -2 0 0 0 0] 0.07;
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/triSurface/sloshingCylinder.obj b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/triSurface/sloshingCylinder.obj
new file mode 100644
index 00000000000..dfd72e6f23c
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/triSurface/sloshingCylinder.obj
@@ -0,0 +1,48510 @@
+# Wavefront OBJ file written 2017-03-10T19:07:52
+o sloshingCylinderOpen
+
+# points : 16416
+# faces  : 32080
+# zones  : 1
+#   0  zone0  (nFaces: 32080)
+
+# <points count="16416">
+v 0.0565685 0.0565685 0.07
+v 0.0565685 0.0565685 -0.07
+v -0.0565685 0.0565685 0.07
+v -0.0565685 0.0565685 -0.07
+v -0.0565685 -0.0565685 0.07
+v -0.0565685 -0.0565685 -0.07
+v 0.0565685 -0.0565685 0.07
+v 0.0565685 -0.0565685 -0.07
+v -0.0560671 -0.0570655 -0.07
+v -0.0560671 0.0570655 -0.07
+v 0.0560671 -0.0570655 -0.07
+v 0.0560671 0.0570655 -0.07
+v 0.0560671 -0.0570655 0.07
+v 0.0560671 0.0570655 0.07
+v -0.0560671 -0.0570655 0.07
+v -0.0560671 0.0570655 0.07
+v -0.016817 -0.0782124 -0.07
+v -0.016817 0.0782124 -0.07
+v 0.016817 -0.0782124 -0.07
+v 0.016817 0.0782124 -0.07
+v 0.016817 -0.0782124 0.07
+v 0.016817 0.0782124 0.07
+v -0.016817 -0.0782124 0.07
+v -0.016817 0.0782124 0.07
+v 0.0675462 0.0428661 0.07
+v 0.0675462 0.0428661 -0.07
+v 0.0428661 0.0675462 0.07
+v 0.0428661 0.0675462 -0.07
+v -0.0428661 0.0675462 0.07
+v -0.0428661 0.0675462 -0.07
+v -0.0675462 0.0428661 0.07
+v -0.0675462 0.0428661 -0.07
+v -0.0675462 -0.0428661 0.07
+v -0.0675462 -0.0428661 -0.07
+v -0.0428661 -0.0675462 0.07
+v -0.0428661 -0.0675462 -0.07
+v 0.0428661 -0.0675462 0.07
+v 0.0428661 -0.0675462 -0.07
+v 0.0675462 -0.0428661 0.07
+v 0.0675462 -0.0428661 -0.07
+v -0.0617848 -0.0508196 -0.07
+v -0.0617848 0.0508196 -0.07
+v 0.0617848 -0.0508196 -0.07
+v 0.0617848 0.0508196 -0.07
+v 0.0617848 -0.0508196 0.07
+v 0.0617848 0.0508196 0.07
+v -0.0617848 -0.0508196 0.07
+v -0.0617848 0.0508196 0.07
+v -0.0799875 -0.00141188 -0.07
+v -0.0799875 0.00141188 -0.07
+v 0.0799875 -0.00141188 -0.07
+v 0.0799875 0.00141188 -0.07
+v 0.0799875 -0.00141188 0.07
+v 0.0799875 0.00141188 0.07
+v -0.0799875 -0.00141188 0.07
+v -0.0799875 0.00141188 0.07
+v -0.0710872 -0.0366961 -0.07
+v -0.0710872 0.0366961 -0.07
+v 0.0710872 -0.0366961 -0.07
+v 0.0710872 0.0366961 -0.07
+v 0.0710872 -0.0366961 0.07
+v 0.0710872 0.0366961 0.07
+v -0.0710872 -0.0366961 0.07
+v -0.0710872 0.0366961 0.07
+v 0.00502324 0.0798421 0.07
+v 0.00502324 0.0798421 -0.07
+v -0.00502324 0.0798421 0.07
+v -0.00502324 0.0798421 -0.07
+v -0.00502324 -0.0798421 0.07
+v -0.00502324 -0.0798421 -0.07
+v 0.00502324 -0.0798421 0.07
+v 0.00502324 -0.0798421 -0.07
+v 0.0798421 0.00502324 0.07
+v 0.0798421 0.00502324 -0.07
+v -0.0798421 0.00502324 0.07
+v -0.0798421 0.00502324 -0.07
+v -0.0798421 -0.00502324 0.07
+v -0.0798421 -0.00502324 -0.07
+v 0.0798421 -0.00502324 0.07
+v 0.0798421 -0.00502324 -0.07
+v 0.0712805 0.0363192 0.07
+v 0.0712805 0.0363192 -0.07
+v 0.0363192 0.0712805 0.07
+v 0.0363192 0.0712805 -0.07
+v -0.0363192 0.0712805 0.07
+v -0.0363192 0.0712805 -0.07
+v -0.0712805 0.0363192 0.07
+v -0.0712805 0.0363192 -0.07
+v -0.0712805 -0.0363192 0.07
+v -0.0712805 -0.0363192 -0.07
+v -0.0363192 -0.0712805 0.07
+v -0.0363192 -0.0712805 -0.07
+v 0.0363192 -0.0712805 0.07
+v 0.0363192 -0.0712805 -0.07
+v 0.0712805 -0.0363192 0.07
+v 0.0712805 -0.0363192 -0.07
+v -0.0772128 -0.0209327 -0.07
+v -0.0772128 0.0209327 -0.07
+v 0.0772128 -0.0209327 -0.07
+v 0.0772128 0.0209327 -0.07
+v 0.0772128 -0.0209327 0.07
+v 0.0772128 0.0209327 0.07
+v -0.0772128 -0.0209327 0.07
+v -0.0772128 0.0209327 0.07
+v -0.0793902 -0.00985854 -0.07
+v -0.0793902 0.00985854 -0.07
+v 0.0793902 -0.00985854 -0.07
+v 0.0793902 0.00985854 -0.07
+v 0.0793902 -0.00985854 0.07
+v 0.0793902 0.00985854 0.07
+v -0.0793902 -0.00985854 0.07
+v -0.0793902 0.00985854 0.07
+v -0.0276562 -0.0750675 -0.07
+v -0.0276562 0.0750675 -0.07
+v 0.0276562 -0.0750675 -0.07
+v 0.0276562 0.0750675 -0.07
+v 0.0276562 -0.0750675 0.07
+v 0.0276562 0.0750675 0.07
+v -0.0276562 -0.0750675 0.07
+v -0.0276562 0.0750675 0.07
+v 0.0780733 0.0174515 0.07
+v 0.0780733 0.0174515 -0.07
+v -0.0780733 0.0174515 0.07
+v -0.0780733 0.0174515 -0.07
+v -0.0780733 -0.0174515 0.07
+v -0.0780733 -0.0174515 -0.07
+v 0.0780733 -0.0174515 0.07
+v 0.0780733 -0.0174515 -0.07
+v 0.0174515 0.0780733 0.07
+v 0.0174515 0.0780733 -0.07
+v -0.0174515 0.0780733 0.07
+v -0.0174515 0.0780733 -0.07
+v -0.0174515 -0.0780733 0.07
+v -0.0174515 -0.0780733 -0.07
+v 0.0174515 -0.0780733 0.07
+v 0.0174515 -0.0780733 -0.07
+v -0.0140463 -0.0787572 -0.07
+v -0.0140463 0.0787572 -0.07
+v 0.0140463 -0.0787572 -0.07
+v 0.0140463 0.0787572 -0.07
+v 0.0140463 -0.0787572 0.07
+v 0.0140463 0.0787572 0.07
+v -0.0140463 -0.0787572 0.07
+v -0.0140463 0.0787572 0.07
+v -0.0635398 -0.0486075 -0.07
+v -0.0635398 0.0486075 -0.07
+v 0.0635398 -0.0486075 -0.07
+v 0.0635398 0.0486075 -0.07
+v 0.0635398 -0.0486075 0.07
+v 0.0635398 0.0486075 0.07
+v -0.0635398 -0.0486075 0.07
+v -0.0635398 0.0486075 0.07
+v -0.0580461 -0.0550513 -0.07
+v -0.0580461 0.0550513 -0.07
+v 0.0580461 -0.0550513 -0.07
+v 0.0580461 0.0550513 -0.07
+v 0.0580461 -0.0550513 0.07
+v 0.0580461 0.0550513 0.07
+v -0.0580461 -0.0550513 0.07
+v -0.0580461 0.0550513 0.07
+v -0.0519021 -0.0608783 -0.07
+v -0.0519021 0.0608783 -0.07
+v 0.0519021 -0.0608783 -0.07
+v 0.0519021 0.0608783 -0.07
+v 0.0519021 -0.0608783 0.07
+v 0.0519021 0.0608783 0.07
+v -0.0519021 -0.0608783 0.07
+v -0.0519021 0.0608783 0.07
+v -0.0195668 -0.0775702 -0.07
+v -0.0195668 0.0775702 -0.07
+v 0.0195668 -0.0775702 -0.07
+v 0.0195668 0.0775702 -0.07
+v 0.0195668 -0.0775702 0.07
+v 0.0195668 0.0775702 0.07
+v -0.0195668 -0.0775702 0.07
+v -0.0195668 0.0775702 0.07
+v 0.0701045 0.0385403 0.07
+v 0.0701045 0.0385403 -0.07
+v -0.0701045 0.0385403 0.07
+v -0.0701045 0.0385403 -0.07
+v -0.0701045 -0.0385403 0.07
+v -0.0701045 -0.0385403 -0.07
+v 0.0701045 -0.0385403 0.07
+v 0.0701045 -0.0385403 -0.07
+v 0.0385403 0.0701045 0.07
+v 0.0385403 0.0701045 -0.07
+v -0.0385403 0.0701045 0.07
+v -0.0385403 0.0701045 -0.07
+v -0.0385403 -0.0701045 0.07
+v -0.0385403 -0.0701045 -0.07
+v 0.0385403 -0.0701045 0.07
+v 0.0385403 -0.0701045 -0.07
+v 0.0799605 0.00251286 0.07
+v 0.0799605 0.00251286 -0.07
+v 0.00251286 0.0799605 0.07
+v 0.00251286 0.0799605 -0.07
+v -0.00251286 0.0799605 0.07
+v -0.00251286 0.0799605 -0.07
+v -0.0799605 0.00251286 0.07
+v -0.0799605 0.00251286 -0.07
+v -0.0799605 -0.00251286 0.07
+v -0.0799605 -0.00251286 -0.07
+v -0.00251286 -0.0799605 0.07
+v -0.00251286 -0.0799605 -0.07
+v 0.00251286 -0.0799605 0.07
+v 0.00251286 -0.0799605 -0.07
+v 0.0799605 -0.00251286 0.07
+v 0.0799605 -0.00251286 -0.07
+v 0.0600089 0.0529049 0.07
+v 0.0600089 0.0529049 -0.07
+v 0.0529049 0.0600089 0.07
+v 0.0529049 0.0600089 -0.07
+v -0.0529049 0.0600089 0.07
+v -0.0529049 0.0600089 -0.07
+v -0.0600089 0.0529049 0.07
+v -0.0600089 0.0529049 -0.07
+v -0.0600089 -0.0529049 0.07
+v -0.0600089 -0.0529049 -0.07
+v -0.0529049 -0.0600089 0.07
+v -0.0529049 -0.0600089 -0.07
+v 0.0529049 -0.0600089 0.07
+v 0.0529049 -0.0600089 -0.07
+v 0.0600089 -0.0529049 0.07
+v 0.0600089 -0.0529049 -0.07
+v -0.00564312 -0.0798007 -0.07
+v -0.00564312 0.0798007 -0.07
+v 0.00564312 -0.0798007 -0.07
+v 0.00564312 0.0798007 -0.07
+v 0.00564312 -0.0798007 0.07
+v 0.00564312 0.0798007 0.07
+v -0.00564312 -0.0798007 0.07
+v -0.00564312 0.0798007 0.07
+v 0.0661664 0.0449667 0.07
+v 0.0661664 0.0449667 -0.07
+v 0.0449667 0.0661664 0.07
+v 0.0449667 0.0661664 -0.07
+v -0.0449667 0.0661664 0.07
+v -0.0449667 0.0661664 -0.07
+v -0.0661664 0.0449667 0.07
+v -0.0661664 0.0449667 -0.07
+v -0.0661664 -0.0449667 0.07
+v -0.0661664 -0.0449667 -0.07
+v -0.0449667 -0.0661664 0.07
+v -0.0449667 -0.0661664 -0.07
+v 0.0449667 -0.0661664 0.07
+v 0.0449667 -0.0661664 -0.07
+v 0.0661664 -0.0449667 0.07
+v 0.0661664 -0.0449667 -0.07
+v -0.037945 -0.0704285 -0.07
+v -0.037945 0.0704285 -0.07
+v 0.037945 -0.0704285 -0.07
+v 0.037945 0.0704285 -0.07
+v 0.037945 -0.0704285 0.07
+v 0.037945 0.0704285 0.07
+v -0.037945 -0.0704285 0.07
+v -0.037945 0.0704285 0.07
+v -0.0745677 -0.0289768 -0.07
+v -0.0745677 0.0289768 -0.07
+v 0.0745677 -0.0289768 -0.07
+v 0.0745677 0.0289768 -0.07
+v 0.0745677 -0.0289768 0.07
+v 0.0745677 0.0289768 0.07
+v -0.0745677 -0.0289768 0.07
+v -0.0745677 0.0289768 0.07
+v -0.0755439 -0.0263271 -0.07
+v -0.0755439 0.0263271 -0.07
+v 0.0755439 -0.0263271 -0.07
+v 0.0755439 0.0263271 -0.07
+v 0.0755439 -0.0263271 0.07
+v 0.0755439 0.0263271 0.07
+v -0.0755439 -0.0263271 0.07
+v -0.0755439 0.0263271 0.07
+v -0.0404069 -0.0690455 -0.07
+v -0.0404069 0.0690455 -0.07
+v 0.0404069 -0.0690455 -0.07
+v 0.0404069 0.0690455 -0.07
+v 0.0404069 -0.0690455 0.07
+v 0.0404069 0.0690455 0.07
+v -0.0404069 -0.0690455 0.07
+v -0.0404069 0.0690455 0.07
+v -0.0302883 -0.0740447 -0.07
+v -0.0302883 0.0740447 -0.07
+v 0.0302883 -0.0740447 -0.07
+v 0.0302883 0.0740447 -0.07
+v 0.0302883 -0.0740447 0.07
+v 0.0302883 0.0740447 0.07
+v -0.0302883 -0.0740447 0.07
+v -0.0302883 0.0740447 0.07
+v -0.0428184 -0.0675765 -0.07
+v -0.0428184 0.0675765 -0.07
+v 0.0428184 -0.0675765 -0.07
+v 0.0428184 0.0675765 -0.07
+v 0.0428184 -0.0675765 0.07
+v 0.0428184 0.0675765 0.07
+v -0.0428184 -0.0675765 0.07
+v -0.0428184 0.0675765 0.07
+v 0.0247214 0.0760845 0.07
+v 0.0247214 0.0760845 -0.07
+v -0.0247214 0.0760845 0.07
+v -0.0247214 0.0760845 -0.07
+v -0.0247214 -0.0760845 0.07
+v -0.0247214 -0.0760845 -0.07
+v 0.0247214 -0.0760845 0.07
+v 0.0247214 -0.0760845 -0.07
+v 0.0760845 0.0247214 0.07
+v 0.0760845 0.0247214 -0.07
+v -0.0760845 0.0247214 0.07
+v -0.0760845 0.0247214 -0.07
+v -0.0760845 -0.0247214 0.07
+v -0.0760845 -0.0247214 -0.07
+v 0.0760845 -0.0247214 0.07
+v 0.0760845 -0.0247214 -0.07
+v -0.0683216 -0.0416192 -0.07
+v -0.0683216 0.0416192 -0.07
+v 0.0683216 -0.0416192 -0.07
+v 0.0683216 0.0416192 -0.07
+v 0.0683216 -0.0416192 0.07
+v 0.0683216 0.0416192 0.07
+v -0.0683216 -0.0416192 0.07
+v -0.0683216 0.0416192 0.07
+v 0.0743821 0.02945 0.07
+v 0.0743821 0.02945 -0.07
+v 0.02945 0.0743821 0.07
+v 0.02945 0.0743821 -0.07
+v -0.02945 0.0743821 0.07
+v -0.02945 0.0743821 -0.07
+v -0.0743821 0.02945 0.07
+v -0.0743821 0.02945 -0.07
+v -0.0743821 -0.02945 0.07
+v -0.0743821 -0.02945 -0.07
+v -0.02945 -0.0743821 0.07
+v -0.02945 -0.0743821 -0.07
+v 0.02945 -0.0743821 0.07
+v 0.02945 -0.0743821 -0.07
+v 0.0743821 -0.02945 0.07
+v 0.0743821 -0.02945 -0.07
+v -0.072338 -0.0341645 -0.07
+v -0.072338 0.0341645 -0.07
+v 0.072338 -0.0341645 -0.07
+v 0.072338 0.0341645 -0.07
+v 0.072338 -0.0341645 0.07
+v 0.072338 0.0341645 0.07
+v -0.072338 -0.0341645 0.07
+v -0.072338 0.0341645 0.07
+v -0.0497213 -0.0626721 -0.07
+v -0.0497213 0.0626721 -0.07
+v 0.0497213 -0.0626721 -0.07
+v 0.0497213 0.0626721 -0.07
+v 0.0497213 -0.0626721 0.07
+v 0.0497213 0.0626721 0.07
+v -0.0497213 -0.0626721 0.07
+v -0.0497213 0.0626721 0.07
+v -0.0796887 -0.0070506 -0.07
+v -0.0796887 0.0070506 -0.07
+v 0.0796887 -0.0070506 -0.07
+v 0.0796887 0.0070506 -0.07
+v 0.0796887 -0.0070506 0.07
+v 0.0796887 0.0070506 0.07
+v -0.0796887 -0.0070506 0.07
+v -0.0796887 0.0070506 0.07
+v -0.0328825 -0.0729297 -0.07
+v -0.0328825 0.0729297 -0.07
+v 0.0328825 -0.0729297 -0.07
+v 0.0328825 0.0729297 -0.07
+v 0.0328825 -0.0729297 0.07
+v 0.0328825 0.0729297 0.07
+v -0.0328825 -0.0729297 0.07
+v -0.0328825 0.0729297 0.07
+v -1.46958e-17 -0.08 -0.07
+v -1.2865e-17 0.08 -0.07
+v -1.46958e-17 -0.08 0.07
+v -1.2865e-17 0.08 0.07
+v 0.08 1.55431e-17 0.07
+v 0.08 -1.55431e-17 -0.07
+v -0.08 -1.01869e-17 0.07
+v -0.08 -4.12731e-17 -0.07
+v -0.0599528 -0.0529685 -0.07
+v -0.0599528 0.0529685 -0.07
+v 0.0599528 -0.0529685 -0.07
+v 0.0599528 0.0529685 -0.07
+v 0.0599528 -0.0529685 0.07
+v 0.0599528 0.0529685 0.07
+v -0.0599528 -0.0529685 0.07
+v -0.0599528 0.0529685 0.07
+v -0.0652157 -0.0463348 -0.07
+v -0.0652157 0.0463348 -0.07
+v 0.0652157 -0.0463348 -0.07
+v 0.0652157 0.0463348 -0.07
+v 0.0652157 -0.0463348 0.07
+v 0.0652157 0.0463348 0.07
+v -0.0652157 -0.0463348 0.07
+v -0.0652157 0.0463348 0.07
+v 0.0768235 0.0223193 0.07
+v 0.0768235 0.0223193 -0.07
+v 0.0223193 0.0768235 0.07
+v 0.0223193 0.0768235 -0.07
+v -0.0223193 0.0768235 0.07
+v -0.0223193 0.0768235 -0.07
+v -0.0768235 0.0223193 0.07
+v -0.0768235 0.0223193 -0.07
+v -0.0768235 -0.0223193 0.07
+v -0.0768235 -0.0223193 -0.07
+v -0.0223193 -0.0768235 0.07
+v -0.0223193 -0.0768235 -0.07
+v 0.0223193 -0.0768235 0.07
+v 0.0223193 -0.0768235 -0.07
+v 0.0768235 -0.0223193 0.07
+v 0.0768235 -0.0223193 -0.07
+v -0.0451766 -0.0660233 -0.07
+v -0.0451766 0.0660233 -0.07
+v 0.0451766 -0.0660233 -0.07
+v 0.0451766 0.0660233 -0.07
+v 0.0451766 -0.0660233 0.07
+v 0.0451766 0.0660233 0.07
+v -0.0451766 -0.0660233 0.07
+v -0.0451766 0.0660233 0.07
+v 0.0340623 0.0723862 0.07
+v 0.0340623 0.0723862 -0.07
+v -0.0340623 0.0723862 0.07
+v -0.0340623 0.0723862 -0.07
+v -0.0340623 -0.0723862 0.07
+v -0.0340623 -0.0723862 -0.07
+v 0.0340623 -0.0723862 0.07
+v 0.0340623 -0.0723862 -0.07
+v 0.0723862 0.0340623 0.07
+v 0.0723862 0.0340623 -0.07
+v -0.0723862 0.0340623 0.07
+v -0.0723862 0.0340623 -0.07
+v -0.0723862 -0.0340623 0.07
+v -0.0723862 -0.0340623 -0.07
+v 0.0723862 -0.0340623 0.07
+v 0.0723862 -0.0340623 -0.07
+v -0.0798879 -0.00423388 -0.07
+v -0.0798879 0.00423388 -0.07
+v 0.0798879 -0.00423388 -0.07
+v 0.0798879 0.00423388 -0.07
+v 0.0798879 -0.00423388 0.07
+v 0.0798879 0.00423388 0.07
+v -0.0798879 -0.00423388 0.07
+v -0.0798879 0.00423388 0.07
+v 0.0734204 0.0317718 0.07
+v 0.0734204 0.0317718 -0.07
+v 0.0317718 0.0734204 0.07
+v 0.0317718 0.0734204 -0.07
+v -0.0317718 0.0734204 0.07
+v -0.0317718 0.0734204 -0.07
+v -0.0734204 0.0317718 0.07
+v -0.0734204 0.0317718 -0.07
+v -0.0734204 -0.0317718 0.07
+v -0.0734204 -0.0317718 -0.07
+v -0.0317718 -0.0734204 0.07
+v -0.0317718 -0.0734204 -0.07
+v 0.0317718 -0.0734204 0.07
+v 0.0317718 -0.0734204 -0.07
+v 0.0734204 -0.0317718 0.07
+v 0.0734204 -0.0317718 -0.07
+v -0.0779035 -0.0181947 -0.07
+v -0.0779035 0.0181947 -0.07
+v 0.0779035 -0.0181947 -0.07
+v 0.0779035 0.0181947 -0.07
+v 0.0779035 -0.0181947 0.07
+v 0.0779035 0.0181947 0.07
+v -0.0779035 -0.0181947 0.07
+v -0.0779035 0.0181947 0.07
+v -0.0112581 -0.0792039 -0.07
+v -0.0112581 0.0792039 -0.07
+v 0.0112581 -0.0792039 -0.07
+v 0.0112581 0.0792039 -0.07
+v 0.0112581 -0.0792039 0.07
+v 0.0112581 0.0792039 0.07
+v -0.0112581 -0.0792039 0.07
+v -0.0112581 0.0792039 0.07
+v 0.0149905 0.078583 0.07
+v 0.0149905 0.078583 -0.07
+v -0.0149905 0.078583 0.07
+v -0.0149905 0.078583 -0.07
+v -0.0149905 -0.078583 0.07
+v -0.0149905 -0.078583 -0.07
+v 0.0149905 -0.078583 0.07
+v 0.0149905 -0.078583 -0.07
+v 0.078583 0.0149905 0.07
+v 0.078583 0.0149905 -0.07
+v -0.078583 0.0149905 0.07
+v -0.078583 0.0149905 -0.07
+v -0.078583 -0.0149905 0.07
+v -0.078583 -0.0149905 -0.07
+v 0.078583 -0.0149905 0.07
+v 0.078583 -0.0149905 -0.07
+v 0.0616411 0.0509939 0.07
+v 0.0616411 0.0509939 -0.07
+v 0.0509939 0.0616411 0.07
+v 0.0509939 0.0616411 -0.07
+v -0.0509939 0.0616411 0.07
+v -0.0509939 0.0616411 -0.07
+v -0.0616411 0.0509939 0.07
+v -0.0616411 0.0509939 -0.07
+v -0.0616411 -0.0509939 0.07
+v -0.0616411 -0.0509939 -0.07
+v -0.0509939 -0.0616411 0.07
+v -0.0509939 -0.0616411 -0.07
+v 0.0509939 -0.0616411 0.07
+v 0.0509939 -0.0616411 -0.07
+v 0.0616411 -0.0509939 0.07
+v 0.0616411 -0.0509939 -0.07
+v 0.0647214 0.0470228 0.07
+v 0.0647214 0.0470228 -0.07
+v 0.0470228 0.0647214 0.07
+v 0.0470228 0.0647214 -0.07
+v -0.0470228 0.0647214 0.07
+v -0.0470228 0.0647214 -0.07
+v -0.0647214 0.0470228 0.07
+v -0.0647214 0.0470228 -0.07
+v -0.0647214 -0.0470228 0.07
+v -0.0647214 -0.0470228 -0.07
+v -0.0470228 -0.0647214 0.07
+v -0.0470228 -0.0647214 -0.07
+v 0.0470228 -0.0647214 0.07
+v 0.0470228 -0.0647214 -0.07
+v 0.0647214 -0.0470228 0.07
+v 0.0647214 -0.0470228 -0.07
+v 0.0632124 0.0490326 0.07
+v 0.0632124 0.0490326 -0.07
+v 0.0490326 0.0632124 0.07
+v 0.0490326 0.0632124 -0.07
+v -0.0490326 0.0632124 0.07
+v -0.0490326 0.0632124 -0.07
+v -0.0632124 0.0490326 0.07
+v -0.0632124 0.0490326 -0.07
+v -0.0632124 -0.0490326 0.07
+v -0.0632124 -0.0490326 -0.07
+v -0.0490326 -0.0632124 0.07
+v -0.0490326 -0.0632124 -0.07
+v 0.0490326 -0.0632124 0.07
+v 0.0490326 -0.0632124 -0.07
+v 0.0632124 -0.0490326 0.07
+v 0.0632124 -0.0490326 -0.07
+v -0.0668103 -0.0440044 -0.07
+v -0.0668103 0.0440044 -0.07
+v 0.0668103 -0.0440044 -0.07
+v 0.0668103 0.0440044 -0.07
+v 0.0668103 -0.0440044 0.07
+v 0.0668103 0.0440044 0.07
+v -0.0668103 -0.0440044 0.07
+v -0.0668103 0.0440044 0.07
+v -0.0540183 -0.0590087 -0.07
+v -0.0540183 0.0590087 -0.07
+v 0.0540183 -0.0590087 -0.07
+v 0.0540183 0.0590087 -0.07
+v 0.0540183 -0.0590087 0.07
+v 0.0540183 0.0590087 0.07
+v -0.0540183 -0.0590087 0.07
+v -0.0540183 0.0590087 0.07
+v -0.0249898 -0.0759968 -0.07
+v -0.0249898 0.0759968 -0.07
+v 0.0249898 -0.0759968 -0.07
+v 0.0249898 0.0759968 -0.07
+v 0.0249898 -0.0759968 0.07
+v 0.0249898 0.0759968 0.07
+v -0.0249898 -0.0759968 0.07
+v -0.0249898 0.0759968 0.07
+v 0.027099 0.0752705 0.07
+v 0.027099 0.0752705 -0.07
+v -0.027099 0.0752705 0.07
+v -0.027099 0.0752705 -0.07
+v -0.027099 -0.0752705 0.07
+v -0.027099 -0.0752705 -0.07
+v 0.027099 -0.0752705 0.07
+v 0.027099 -0.0752705 -0.07
+v 0.0752705 0.027099 0.07
+v 0.0752705 0.027099 -0.07
+v -0.0752705 0.027099 0.07
+v -0.0752705 0.027099 -0.07
+v -0.0752705 -0.027099 0.07
+v -0.0752705 -0.027099 -0.07
+v 0.0752705 -0.027099 0.07
+v 0.0752705 -0.027099 -0.07
+v 0.0688594 0.0407233 0.07
+v 0.0688594 0.0407233 -0.07
+v 0.0407233 0.0688594 0.07
+v 0.0407233 0.0688594 -0.07
+v -0.0407233 0.0688594 0.07
+v -0.0407233 0.0688594 -0.07
+v -0.0688594 0.0407233 0.07
+v -0.0688594 0.0407233 -0.07
+v -0.0688594 -0.0407233 0.07
+v -0.0688594 -0.0407233 -0.07
+v -0.0407233 -0.0688594 0.07
+v -0.0407233 -0.0688594 -0.07
+v 0.0407233 -0.0688594 0.07
+v 0.0407233 -0.0688594 -0.07
+v 0.0688594 -0.0407233 0.07
+v 0.0688594 -0.0407233 -0.07
+v 0.0583175 0.0547638 0.07
+v 0.0583175 0.0547638 -0.07
+v -0.0583175 0.0547638 0.07
+v -0.0583175 0.0547638 -0.07
+v -0.0583175 -0.0547638 0.07
+v -0.0583175 -0.0547638 -0.07
+v 0.0583175 -0.0547638 0.07
+v 0.0583175 -0.0547638 -0.07
+v 0.0547638 0.0583175 0.07
+v 0.0547638 0.0583175 -0.07
+v -0.0547638 0.0583175 0.07
+v -0.0547638 0.0583175 -0.07
+v -0.0547638 -0.0583175 0.07
+v -0.0547638 -0.0583175 -0.07
+v 0.0547638 -0.0583175 0.07
+v 0.0547638 -0.0583175 -0.07
+v 0.0793692 0.0100267 0.07
+v 0.0793692 0.0100267 -0.07
+v 0.0100267 0.0793692 0.07
+v 0.0100267 0.0793692 -0.07
+v -0.0100267 0.0793692 0.07
+v -0.0100267 0.0793692 -0.07
+v -0.0793692 0.0100267 0.07
+v -0.0793692 0.0100267 -0.07
+v -0.0793692 -0.0100267 0.07
+v -0.0793692 -0.0100267 -0.07
+v -0.0100267 -0.0793692 0.07
+v -0.0100267 -0.0793692 -0.07
+v 0.0100267 -0.0793692 0.07
+v 0.0100267 -0.0793692 -0.07
+v 0.0793692 -0.0100267 0.07
+v 0.0793692 -0.0100267 -0.07
+v -0.076426 -0.0236447 -0.07
+v -0.076426 0.0236447 -0.07
+v 0.076426 -0.0236447 -0.07
+v 0.076426 0.0236447 -0.07
+v 0.076426 -0.0236447 0.07
+v 0.076426 0.0236447 0.07
+v -0.076426 -0.0236447 0.07
+v -0.076426 0.0236447 0.07
+v -0.00282332 -0.0799502 -0.07
+v -0.00282332 0.0799502 -0.07
+v 0.00282332 -0.0799502 -0.07
+v 0.00282332 0.0799502 -0.07
+v 0.00282332 -0.0799502 0.07
+v 0.00282332 0.0799502 0.07
+v -0.00282332 -0.0799502 0.07
+v -0.00282332 0.0799502 0.07
+v -0.0734987 -0.0315903 -0.07
+v -0.0734987 0.0315903 -0.07
+v 0.0734987 -0.0315903 -0.07
+v 0.0734987 0.0315903 -0.07
+v 0.0734987 -0.0315903 0.07
+v 0.0734987 0.0315903 0.07
+v -0.0734987 -0.0315903 0.07
+v -0.0734987 0.0315903 0.07
+v -0.0784971 -0.0154341 -0.07
+v -0.0784971 0.0154341 -0.07
+v 0.0784971 -0.0154341 -0.07
+v 0.0784971 0.0154341 -0.07
+v 0.0784971 -0.0154341 0.07
+v 0.0784971 0.0154341 0.07
+v -0.0784971 -0.0154341 0.07
+v -0.0784971 0.0154341 0.07
+v -0.0222922 -0.0768314 -0.07
+v -0.0222922 0.0768314 -0.07
+v 0.0222922 -0.0768314 -0.07
+v 0.0222922 0.0768314 -0.07
+v 0.0222922 -0.0768314 0.07
+v 0.0222922 0.0768314 0.07
+v -0.0222922 -0.0768314 0.07
+v -0.0222922 0.0768314 0.07
+v -0.0474786 -0.0643878 -0.07
+v -0.0474786 0.0643878 -0.07
+v 0.0474786 -0.0643878 -0.07
+v 0.0474786 0.0643878 -0.07
+v 0.0474786 -0.0643878 0.07
+v 0.0474786 0.0643878 0.07
+v -0.0474786 -0.0643878 0.07
+v -0.0474786 0.0643878 0.07
+v 0.0790151 0.0125148 0.07
+v 0.0790151 0.0125148 -0.07
+v 0.0125148 0.0790151 0.07
+v 0.0125148 0.0790151 -0.07
+v -0.0125148 0.0790151 0.07
+v -0.0125148 0.0790151 -0.07
+v -0.0790151 0.0125148 0.07
+v -0.0790151 0.0125148 -0.07
+v -0.0790151 -0.0125148 0.07
+v -0.0790151 -0.0125148 -0.07
+v -0.0125148 -0.0790151 0.07
+v -0.0125148 -0.0790151 -0.07
+v 0.0125148 -0.0790151 0.07
+v 0.0125148 -0.0790151 -0.07
+v 0.0790151 -0.0125148 0.07
+v 0.0790151 -0.0125148 -0.07
+v -0.0354359 -0.0717238 -0.07
+v -0.0354359 0.0717238 -0.07
+v 0.0354359 -0.0717238 -0.07
+v 0.0354359 0.0717238 -0.07
+v 0.0354359 -0.0717238 0.07
+v 0.0354359 0.0717238 0.07
+v -0.0354359 -0.0717238 0.07
+v -0.0354359 0.0717238 0.07
+v -0.0697479 -0.0391821 -0.07
+v -0.0697479 0.0391821 -0.07
+v 0.0697479 -0.0391821 -0.07
+v 0.0697479 0.0391821 -0.07
+v 0.0697479 -0.0391821 0.07
+v 0.0697479 0.0391821 0.07
+v -0.0697479 -0.0391821 0.07
+v -0.0697479 0.0391821 0.07
+v -0.00845589 -0.0795519 -0.07
+v -0.00845589 0.0795519 -0.07
+v 0.00845589 -0.0795519 -0.07
+v 0.00845589 0.0795519 -0.07
+v 0.00845589 -0.0795519 0.07
+v 0.00845589 0.0795519 0.07
+v -0.00845589 -0.0795519 0.07
+v -0.00845589 0.0795519 0.07
+v 0.079645 0.00752867 0.07
+v 0.079645 0.00752867 -0.07
+v 0.00752867 0.079645 0.07
+v 0.00752867 0.079645 -0.07
+v -0.00752867 0.079645 0.07
+v -0.00752867 0.079645 -0.07
+v -0.079645 0.00752867 0.07
+v -0.079645 0.00752867 -0.07
+v -0.079645 -0.00752867 0.07
+v -0.079645 -0.00752867 -0.07
+v -0.00752867 -0.079645 0.07
+v -0.00752867 -0.079645 -0.07
+v 0.00752867 -0.079645 0.07
+v 0.00752867 -0.079645 -0.07
+v 0.079645 -0.00752867 0.07
+v 0.079645 -0.00752867 -0.07
+v -0.0789929 -0.0126542 -0.07
+v -0.0789929 0.0126542 -0.07
+v 0.0789929 -0.0126542 -0.07
+v 0.0789929 0.0126542 -0.07
+v 0.0789929 -0.0126542 0.07
+v 0.0789929 0.0126542 0.07
+v -0.0789929 -0.0126542 0.07
+v -0.0789929 0.0126542 0.07
+v 0.0774867 0.0198952 0.07
+v 0.0774867 0.0198952 -0.07
+v -0.0774867 0.0198952 0.07
+v -0.0774867 0.0198952 -0.07
+v -0.0774867 -0.0198952 0.07
+v -0.0774867 -0.0198952 -0.07
+v 0.0774867 -0.0198952 0.07
+v 0.0774867 -0.0198952 -0.07
+v 0.0198952 0.0774867 0.07
+v 0.0198952 0.0774867 -0.07
+v -0.0198952 0.0774867 0.07
+v -0.0198952 0.0774867 -0.07
+v -0.0198952 -0.0774867 0.07
+v -0.0198952 -0.0774867 -0.07
+v 0.0198952 -0.0774867 0.07
+v 0.0198952 -0.0774867 -0.07
+v -0.0028216 -0.0799502 -0.0700985
+v -0.0028216 0.0799502 -0.0700985
+v 0.0028216 -0.0799502 -0.0700985
+v 0.0028216 0.0799502 -0.0700985
+v 0.0028216 -0.0799502 0.0700985
+v 0.0028216 0.0799502 0.0700985
+v -0.0028216 -0.0799502 0.0700985
+v -0.0028216 0.0799502 0.0700985
+v -0.00563968 -0.0798007 -0.0701969
+v -0.00563968 0.0798007 -0.0701969
+v 0.00563968 -0.0798007 -0.0701969
+v 0.00563968 0.0798007 -0.0701969
+v 0.00563968 -0.0798007 0.0701969
+v 0.00563968 0.0798007 0.0701969
+v -0.00563968 -0.0798007 0.0701969
+v -0.00563968 0.0798007 0.0701969
+v -0.00281644 -0.0799502 -0.0701969
+v -0.00281644 0.0799502 -0.0701969
+v 0.00281644 -0.0799502 -0.0701969
+v 0.00281644 0.0799502 -0.0701969
+v 0.00281644 -0.0799502 0.0701969
+v 0.00281644 0.0799502 0.0701969
+v -0.00281644 -0.0799502 0.0701969
+v -0.00281644 0.0799502 0.0701969
+v -0.00280785 -0.0799502 -0.0702951
+v -0.00280785 0.0799502 -0.0702951
+v 0.00280785 -0.0799502 -0.0702951
+v 0.00280785 0.0799502 -0.0702951
+v 0.00280785 -0.0799502 0.0702951
+v 0.00280785 0.0799502 0.0702951
+v -0.00280785 -0.0799502 0.0702951
+v -0.00280785 0.0799502 0.0702951
+v -0.00845073 -0.0795519 -0.0702951
+v -0.00845073 0.0795519 -0.0702951
+v 0.00845073 -0.0795519 -0.0702951
+v 0.00845073 0.0795519 -0.0702951
+v 0.00845073 -0.0795519 0.0702951
+v 0.00845073 0.0795519 0.0702951
+v -0.00845073 -0.0795519 0.0702951
+v -0.00845073 0.0795519 0.0702951
+v -0.0112513 -0.0792039 -0.0703929
+v -0.0112513 0.0792039 -0.0703929
+v 0.0112513 -0.0792039 -0.0703929
+v 0.0112513 0.0792039 -0.0703929
+v 0.0112513 -0.0792039 0.0703929
+v 0.0112513 0.0792039 0.0703929
+v -0.0112513 -0.0792039 0.0703929
+v -0.0112513 0.0792039 0.0703929
+v -0.00279584 -0.0799502 -0.0703929
+v -0.00279584 0.0799502 -0.0703929
+v 0.00279584 -0.0799502 -0.0703929
+v 0.00279584 0.0799502 -0.0703929
+v 0.00279584 -0.0799502 0.0703929
+v 0.00279584 0.0799502 0.0703929
+v -0.00279584 -0.0799502 0.0703929
+v -0.00279584 0.0799502 0.0703929
+v -0.00562937 -0.0798007 -0.0703936
+v -0.00562937 0.0798007 -0.0703936
+v 0.00562937 -0.0798007 -0.0703936
+v 0.00562937 0.0798007 -0.0703936
+v 0.00562937 -0.0798007 0.0703936
+v 0.00562937 0.0798007 0.0703936
+v -0.00562937 -0.0798007 0.0703936
+v -0.00562937 0.0798007 0.0703936
+v -0.0140378 -0.0787572 -0.0704902
+v -0.0140378 0.0787572 -0.0704902
+v 0.0140378 -0.0787572 -0.0704902
+v 0.0140378 0.0787572 -0.0704902
+v 0.0140378 -0.0787572 0.0704902
+v 0.0140378 0.0787572 0.0704902
+v -0.0140378 -0.0787572 0.0704902
+v -0.0140378 0.0787572 0.0704902
+v -0.00278042 -0.0799502 -0.0704903
+v -0.00278042 0.0799502 -0.0704903
+v 0.00278042 -0.0799502 -0.0704903
+v 0.00278042 0.0799502 -0.0704903
+v 0.00278042 -0.0799502 0.0704903
+v 0.00278042 0.0799502 0.0704903
+v -0.00278042 -0.0799502 0.0704903
+v -0.00278042 0.0799502 0.0704903
+v -0.0168068 -0.0782124 -0.0705869
+v -0.0168068 0.0782124 -0.0705869
+v 0.0168068 -0.0782124 -0.0705869
+v 0.0168068 0.0782124 -0.0705869
+v 0.0168068 -0.0782124 0.0705869
+v 0.0168068 0.0782124 0.0705869
+v -0.0168068 -0.0782124 0.0705869
+v -0.0168068 0.0782124 0.0705869
+v -0.00276162 -0.0799502 -0.070587
+v -0.00276162 0.0799502 -0.070587
+v 0.00276162 -0.0799502 -0.070587
+v 0.00276162 0.0799502 -0.070587
+v 0.00276162 -0.0799502 0.070587
+v 0.00276162 0.0799502 0.070587
+v -0.00276162 -0.0799502 0.070587
+v -0.00276162 0.0799502 0.070587
+v -0.0056122 -0.0798007 -0.0705899
+v -0.0056122 0.0798007 -0.0705899
+v 0.0056122 -0.0798007 -0.0705899
+v 0.0056122 0.0798007 -0.0705899
+v 0.0056122 -0.0798007 0.0705899
+v 0.0056122 0.0798007 0.0705899
+v -0.0056122 -0.0798007 0.0705899
+v -0.0056122 0.0798007 0.0705899
+v -0.00843529 -0.0795519 -0.0705899
+v -0.00843529 0.0795519 -0.0705899
+v 0.00843529 -0.0795519 -0.0705899
+v 0.00843529 0.0795519 -0.0705899
+v 0.00843529 -0.0795519 0.0705899
+v 0.00843529 0.0795519 0.0705899
+v -0.00843529 -0.0795519 0.0705899
+v -0.00843529 0.0795519 0.0705899
+v -0.0195549 -0.0775702 -0.0706829
+v -0.0195549 0.0775702 -0.0706829
+v 0.0195549 -0.0775702 -0.0706829
+v 0.0195549 0.0775702 -0.0706829
+v 0.0195549 -0.0775702 0.0706829
+v 0.0195549 0.0775702 0.0706829
+v -0.0195549 -0.0775702 0.0706829
+v -0.0195549 0.0775702 0.0706829
+v -0.00273945 -0.0799502 -0.070683
+v -0.00273945 0.0799502 -0.070683
+v 0.00273945 -0.0799502 -0.070683
+v 0.00273945 0.0799502 -0.070683
+v 0.00273945 -0.0799502 0.070683
+v 0.00273945 0.0799502 0.070683
+v -0.00273945 -0.0799502 0.070683
+v -0.00273945 0.0799502 0.070683
+v -0.0222786 -0.0768314 -0.070778
+v -0.0222786 0.0768314 -0.070778
+v 0.0222786 -0.0768314 -0.070778
+v 0.0222786 0.0768314 -0.070778
+v 0.0222786 -0.0768314 0.070778
+v 0.0222786 0.0768314 0.070778
+v -0.0222786 -0.0768314 0.070778
+v -0.0222786 0.0768314 0.070778
+v -0.00271395 -0.0799502 -0.0707782
+v -0.00271395 0.0799502 -0.0707782
+v 0.00271395 -0.0799502 -0.0707782
+v 0.00271395 0.0799502 -0.0707782
+v 0.00271395 -0.0799502 0.0707782
+v 0.00271395 0.0799502 0.0707782
+v -0.00271395 -0.0799502 0.0707782
+v -0.00271395 0.0799502 0.0707782
+v -0.0112307 -0.0792039 -0.0707853
+v -0.0112307 0.0792039 -0.0707853
+v 0.0112307 -0.0792039 -0.0707853
+v 0.0112307 0.0792039 -0.0707853
+v 0.0112307 -0.0792039 0.0707853
+v 0.0112307 0.0792039 0.0707853
+v -0.0112307 -0.0792039 0.0707853
+v -0.0112307 0.0792039 0.0707853
+v -0.0055882 -0.0798007 -0.0707854
+v -0.0055882 0.0798007 -0.0707854
+v 0.0055882 -0.0798007 -0.0707854
+v 0.0055882 0.0798007 -0.0707854
+v 0.0055882 -0.0798007 0.0707854
+v 0.0055882 0.0798007 0.0707854
+v -0.0055882 -0.0798007 0.0707854
+v -0.0055882 0.0798007 0.0707854
+v -0.0249746 -0.0759968 -0.0708721
+v -0.0249746 0.0759968 -0.0708721
+v 0.0249746 -0.0759968 -0.0708721
+v 0.0249746 0.0759968 -0.0708721
+v 0.0249746 -0.0759968 0.0708721
+v 0.0249746 0.0759968 0.0708721
+v -0.0249746 -0.0759968 0.0708721
+v -0.0249746 0.0759968 0.0708721
+v -0.00268513 -0.0799502 -0.0708725
+v -0.00268513 0.0799502 -0.0708725
+v 0.00268513 -0.0799502 -0.0708725
+v 0.00268513 0.0799502 -0.0708725
+v 0.00268513 -0.0799502 0.0708725
+v 0.00268513 0.0799502 0.0708725
+v -0.00268513 -0.0799502 0.0708725
+v -0.00268513 0.0799502 0.0708725
+v -0.00840956 -0.0795519 -0.0708839
+v -0.00840956 0.0795519 -0.0708839
+v 0.00840956 -0.0795519 -0.0708839
+v 0.00840956 0.0795519 -0.0708839
+v 0.00840956 -0.0795519 0.0708839
+v 0.00840956 0.0795519 0.0708839
+v -0.00840956 -0.0795519 0.0708839
+v -0.00840956 0.0795519 0.0708839
+v -0.0276394 -0.0750675 -0.0709652
+v -0.0276394 0.0750675 -0.0709652
+v 0.0276394 -0.0750675 -0.0709652
+v 0.0276394 0.0750675 -0.0709652
+v 0.0276394 -0.0750675 0.0709652
+v 0.0276394 0.0750675 0.0709652
+v -0.0276394 -0.0750675 0.0709652
+v -0.0276394 0.0750675 0.0709652
+v -0.00265305 -0.0799502 -0.0709656
+v -0.00265305 0.0799502 -0.0709656
+v 0.00265305 -0.0799502 -0.0709656
+v 0.00265305 0.0799502 -0.0709656
+v 0.00265305 -0.0799502 0.0709656
+v 0.00265305 0.0799502 0.0709656
+v -0.00265305 -0.0799502 0.0709656
+v -0.00265305 0.0799502 0.0709656
+v -0.0140121 -0.0787572 -0.0709798
+v -0.0140121 0.0787572 -0.0709798
+v 0.0140121 -0.0787572 -0.0709798
+v 0.0140121 0.0787572 -0.0709798
+v 0.0140121 -0.0787572 0.0709798
+v 0.0140121 0.0787572 0.0709798
+v -0.0140121 -0.0787572 0.0709798
+v -0.0140121 0.0787572 0.0709798
+v -0.00555739 -0.0798007 -0.0709799
+v -0.00555739 0.0798007 -0.0709799
+v 0.00555739 -0.0798007 -0.0709799
+v 0.00555739 0.0798007 -0.0709799
+v 0.00555739 -0.0798007 0.0709799
+v 0.00555739 0.0798007 0.0709799
+v -0.00555739 -0.0798007 0.0709799
+v -0.00555739 0.0798007 0.0709799
+v -0.0302698 -0.0740447 -0.071057
+v -0.0302698 0.0740447 -0.071057
+v 0.0302698 -0.0740447 -0.071057
+v 0.0302698 0.0740447 -0.071057
+v 0.0302698 -0.0740447 0.071057
+v 0.0302698 0.0740447 0.071057
+v -0.0302698 -0.0740447 0.071057
+v -0.0302698 0.0740447 0.071057
+v -0.00261773 -0.0799502 -0.0710576
+v -0.00261773 0.0799502 -0.0710576
+v 0.00261773 -0.0799502 -0.0710576
+v 0.00261773 0.0799502 -0.0710576
+v 0.00261773 -0.0799502 0.0710576
+v 0.00261773 0.0799502 0.0710576
+v -0.00261773 -0.0799502 0.0710576
+v -0.00261773 0.0799502 0.0710576
+v -0.0328625 -0.0729297 -0.0711476
+v -0.0328625 0.0729297 -0.0711476
+v 0.0328625 -0.0729297 -0.0711476
+v 0.0328625 0.0729297 -0.0711476
+v 0.0328625 -0.0729297 0.0711476
+v 0.0328625 0.0729297 0.0711476
+v -0.0328625 -0.0729297 0.0711476
+v -0.0328625 0.0729297 0.0711476
+v -0.00257923 -0.0799502 -0.0711483
+v -0.00257923 0.0799502 -0.0711483
+v 0.00257923 -0.0799502 -0.0711483
+v 0.00257923 0.0799502 -0.0711483
+v 0.00257923 -0.0799502 0.0711483
+v 0.00257923 0.0799502 0.0711483
+v -0.00257923 -0.0799502 0.0711483
+v -0.00257923 0.0799502 0.0711483
+v -0.0167761 -0.0782124 -0.0711731
+v -0.0167761 0.0782124 -0.0711731
+v 0.0167761 -0.0782124 -0.0711731
+v 0.0167761 0.0782124 -0.0711731
+v 0.0167761 -0.0782124 0.0711731
+v 0.0167761 0.0782124 0.0711731
+v -0.0167761 -0.0782124 0.0711731
+v -0.0167761 0.0782124 0.0711731
+v -0.0055198 -0.0798007 -0.0711733
+v -0.0055198 0.0798007 -0.0711733
+v 0.0055198 -0.0798007 -0.0711733
+v 0.0055198 0.0798007 -0.0711733
+v 0.0055198 -0.0798007 0.0711733
+v 0.0055198 0.0798007 0.0711733
+v -0.0055198 -0.0798007 0.0711733
+v -0.0055198 0.0798007 0.0711733
+v -0.0111964 -0.0792039 -0.0711768
+v -0.0111964 0.0792039 -0.0711768
+v 0.0111964 -0.0792039 -0.0711768
+v 0.0111964 0.0792039 -0.0711768
+v 0.0111964 -0.0792039 0.0711768
+v 0.0111964 0.0792039 0.0711768
+v -0.0111964 -0.0792039 0.0711768
+v -0.0111964 0.0792039 0.0711768
+v -0.00837359 -0.0795519 -0.0711768
+v -0.00837359 0.0795519 -0.0711768
+v 0.00837359 -0.0795519 -0.0711768
+v 0.00837359 0.0795519 -0.0711768
+v 0.00837359 -0.0795519 0.0711768
+v 0.00837359 0.0795519 0.0711768
+v -0.00837359 -0.0795519 0.0711768
+v -0.00837359 0.0795519 0.0711768
+v -0.0354143 -0.0717238 -0.0712367
+v -0.0354143 0.0717238 -0.0712367
+v 0.0354143 -0.0717238 -0.0712367
+v 0.0354143 0.0717238 -0.0712367
+v 0.0354143 -0.0717238 0.0712367
+v 0.0354143 0.0717238 0.0712367
+v -0.0354143 -0.0717238 0.0712367
+v -0.0354143 0.0717238 0.0712367
+v -0.00253758 -0.0799502 -0.0712377
+v -0.00253758 0.0799502 -0.0712377
+v 0.00253758 -0.0799502 -0.0712377
+v 0.00253758 0.0799502 -0.0712377
+v 0.00253758 -0.0799502 0.0712377
+v 0.00253758 0.0799502 0.0712377
+v -0.00253758 -0.0799502 0.0712377
+v -0.00253758 0.0799502 0.0712377
+v -0.0379219 -0.0704285 -0.0713243
+v -0.0379219 0.0704285 -0.0713243
+v 0.0379219 -0.0704285 -0.0713243
+v 0.0379219 0.0704285 -0.0713243
+v 0.0379219 -0.0704285 0.0713243
+v 0.0379219 0.0704285 0.0713243
+v -0.0379219 -0.0704285 0.0713243
+v -0.0379219 0.0704285 0.0713243
+v -0.00249284 -0.0799502 -0.0713255
+v -0.00249284 0.0799502 -0.0713255
+v 0.00249284 -0.0799502 -0.0713255
+v 0.00249284 0.0799502 -0.0713255
+v 0.00249284 -0.0799502 0.0713255
+v 0.00249284 0.0799502 0.0713255
+v -0.00249284 -0.0799502 0.0713255
+v -0.00249284 0.0799502 0.0713255
+v -0.0195191 -0.0775702 -0.0713649
+v -0.0195191 0.0775702 -0.0713649
+v 0.0195191 -0.0775702 -0.0713649
+v 0.0195191 0.0775702 -0.0713649
+v 0.0195191 -0.0775702 0.0713649
+v 0.0195191 0.0775702 0.0713649
+v -0.0195191 -0.0775702 0.0713649
+v -0.0195191 0.0775702 0.0713649
+v -0.00547549 -0.0798007 -0.0713652
+v -0.00547549 0.0798007 -0.0713652
+v 0.00547549 -0.0798007 -0.0713652
+v 0.00547549 0.0798007 -0.0713652
+v 0.00547549 -0.0798007 0.0713652
+v 0.00547549 0.0798007 0.0713652
+v -0.00547549 -0.0798007 0.0713652
+v -0.00547549 0.0798007 0.0713652
+v -0.0403823 -0.0690455 -0.0714102
+v -0.0403823 0.0690455 -0.0714102
+v 0.0403823 -0.0690455 -0.0714102
+v 0.0403823 0.0690455 -0.0714102
+v 0.0403823 -0.0690455 0.0714102
+v 0.0403823 0.0690455 0.0714102
+v -0.0403823 -0.0690455 0.0714102
+v -0.0403823 0.0690455 0.0714102
+v -0.00244506 -0.0799502 -0.0714117
+v -0.00244506 0.0799502 -0.0714117
+v 0.00244506 -0.0799502 -0.0714117
+v 0.00244506 0.0799502 -0.0714117
+v 0.00244506 -0.0799502 0.0714117
+v 0.00244506 0.0799502 0.0714117
+v -0.00244506 -0.0799502 0.0714117
+v -0.00244506 0.0799502 0.0714117
+v -0.0139694 -0.0787572 -0.0714682
+v -0.0139694 0.0787572 -0.0714682
+v 0.0139694 -0.0787572 -0.0714682
+v 0.0139694 0.0787572 -0.0714682
+v 0.0139694 -0.0787572 0.0714682
+v 0.0139694 0.0787572 0.0714682
+v -0.0139694 -0.0787572 0.0714682
+v -0.0139694 0.0787572 0.0714682
+v -0.00832742 -0.0795519 -0.0714683
+v -0.00832742 0.0795519 -0.0714683
+v 0.00832742 -0.0795519 -0.0714683
+v 0.00832742 0.0795519 -0.0714683
+v 0.00832742 -0.0795519 0.0714683
+v 0.00832742 0.0795519 0.0714683
+v -0.00832742 -0.0795519 0.0714683
+v -0.00832742 0.0795519 0.0714683
+v -0.0427924 -0.0675765 -0.0714943
+v -0.0427924 0.0675765 -0.0714943
+v 0.0427924 -0.0675765 -0.0714943
+v 0.0427924 0.0675765 -0.0714943
+v 0.0427924 -0.0675765 0.0714943
+v 0.0427924 0.0675765 0.0714943
+v -0.0427924 -0.0675765 0.0714943
+v -0.0427924 0.0675765 0.0714943
+v -0.00239431 -0.0799502 -0.0714961
+v -0.00239431 0.0799502 -0.0714961
+v 0.00239431 -0.0799502 -0.0714961
+v 0.00239431 0.0799502 -0.0714961
+v 0.00239431 -0.0799502 0.0714961
+v 0.00239431 0.0799502 0.0714961
+v -0.00239431 -0.0799502 0.0714961
+v -0.00239431 0.0799502 0.0714961
+v -0.0222379 -0.0768314 -0.071555
+v -0.0222379 0.0768314 -0.071555
+v 0.0222379 -0.0768314 -0.071555
+v 0.0222379 0.0768314 -0.071555
+v 0.0222379 -0.0768314 0.071555
+v 0.0222379 0.0768314 0.071555
+v -0.0222379 -0.0768314 0.071555
+v -0.0222379 0.0768314 0.071555
+v -0.00542451 -0.0798007 -0.0715555
+v -0.00542451 0.0798007 -0.0715555
+v 0.00542451 -0.0798007 -0.0715555
+v 0.00542451 0.0798007 -0.0715555
+v 0.00542451 -0.0798007 0.0715555
+v 0.00542451 0.0798007 0.0715555
+v -0.00542451 -0.0798007 0.0715555
+v -0.00542451 0.0798007 0.0715555
+v -0.0111486 -0.0792039 -0.0715668
+v -0.0111486 0.0792039 -0.0715668
+v 0.0111486 -0.0792039 -0.0715668
+v 0.0111486 0.0792039 -0.0715668
+v 0.0111486 -0.0792039 0.0715668
+v 0.0111486 0.0792039 0.0715668
+v -0.0111486 -0.0792039 0.0715668
+v -0.0111486 0.0792039 0.0715668
+v -0.0451491 -0.0660233 -0.0715766
+v -0.0451491 0.0660233 -0.0715766
+v 0.0451491 -0.0660233 -0.0715766
+v 0.0451491 0.0660233 -0.0715766
+v 0.0451491 -0.0660233 0.0715766
+v 0.0451491 0.0660233 0.0715766
+v -0.0451491 -0.0660233 0.0715766
+v -0.0451491 0.0660233 0.0715766
+v -0.00234064 -0.0799502 -0.0715788
+v -0.00234064 0.0799502 -0.0715788
+v 0.00234064 -0.0799502 -0.0715788
+v 0.00234064 0.0799502 -0.0715788
+v 0.00234064 -0.0799502 0.0715788
+v 0.00234064 0.0799502 0.0715788
+v -0.00234064 -0.0799502 0.0715788
+v -0.00234064 0.0799502 0.0715788
+v -0.0474496 -0.0643878 -0.071657
+v -0.0474496 0.0643878 -0.071657
+v 0.0474496 -0.0643878 -0.071657
+v 0.0474496 0.0643878 -0.071657
+v 0.0474496 -0.0643878 0.071657
+v 0.0474496 0.0643878 0.071657
+v -0.0474496 -0.0643878 0.071657
+v -0.0474496 0.0643878 0.071657
+v -0.00228411 -0.0799502 -0.0716595
+v -0.00228411 0.0799502 -0.0716595
+v 0.00228411 -0.0799502 -0.0716595
+v 0.00228411 0.0799502 -0.0716595
+v 0.00228411 -0.0799502 0.0716595
+v 0.00228411 0.0799502 0.0716595
+v -0.00228411 -0.0799502 0.0716595
+v -0.00228411 0.0799502 0.0716595
+v -0.049691 -0.0626721 -0.0717352
+v -0.049691 0.0626721 -0.0717352
+v 0.049691 -0.0626721 -0.0717352
+v 0.049691 0.0626721 -0.0717352
+v 0.049691 -0.0626721 0.0717352
+v 0.049691 0.0626721 0.0717352
+v -0.049691 -0.0626721 0.0717352
+v -0.049691 0.0626721 0.0717352
+v -0.0022248 -0.0799502 -0.0717382
+v -0.0022248 0.0799502 -0.0717382
+v 0.0022248 -0.0799502 -0.0717382
+v 0.0022248 0.0799502 -0.0717382
+v 0.0022248 -0.0799502 0.0717382
+v 0.0022248 0.0799502 0.0717382
+v -0.0022248 -0.0799502 0.0717382
+v -0.0022248 0.0799502 0.0717382
+v -0.0249289 -0.0759968 -0.0717432
+v -0.0249289 0.0759968 -0.0717432
+v 0.0249289 -0.0759968 -0.0717432
+v 0.0249289 0.0759968 -0.0717432
+v 0.0249289 -0.0759968 0.0717432
+v 0.0249289 0.0759968 0.0717432
+v -0.0249289 -0.0759968 0.0717432
+v -0.0249289 0.0759968 0.0717432
+v -0.00536692 -0.0798007 -0.0717438
+v -0.00536692 0.0798007 -0.0717438
+v 0.00536692 -0.0798007 -0.0717438
+v 0.00536692 0.0798007 -0.0717438
+v 0.00536692 -0.0798007 0.0717438
+v 0.00536692 0.0798007 0.0717438
+v -0.00536692 -0.0798007 0.0717438
+v -0.00536692 0.0798007 0.0717438
+v -0.0167249 -0.0782124 -0.0717579
+v -0.0167249 0.0782124 -0.0717579
+v 0.0167249 -0.0782124 -0.0717579
+v 0.0167249 0.0782124 -0.0717579
+v 0.0167249 -0.0782124 0.0717579
+v 0.0167249 0.0782124 0.0717579
+v -0.0167249 -0.0782124 0.0717579
+v -0.0167249 0.0782124 0.0717579
+v -0.0082711 -0.0795519 -0.0717581
+v -0.0082711 0.0795519 -0.0717581
+v 0.0082711 -0.0795519 -0.0717581
+v 0.0082711 0.0795519 -0.0717581
+v 0.0082711 -0.0795519 0.0717581
+v 0.0082711 0.0795519 0.0717581
+v -0.0082711 -0.0795519 0.0717581
+v -0.0082711 0.0795519 0.0717581
+v -0.0518705 -0.0608783 -0.0718114
+v -0.0518705 0.0608783 -0.0718114
+v 0.0518705 -0.0608783 -0.0718114
+v 0.0518705 0.0608783 -0.0718114
+v 0.0518705 -0.0608783 0.0718114
+v 0.0518705 0.0608783 0.0718114
+v -0.0518705 -0.0608783 0.0718114
+v -0.0518705 0.0608783 0.0718114
+v -0.00216279 -0.0799502 -0.0718148
+v -0.00216279 0.0799502 -0.0718148
+v 0.00216279 -0.0799502 -0.0718148
+v 0.00216279 0.0799502 -0.0718148
+v 0.00216279 -0.0799502 0.0718148
+v 0.00216279 0.0799502 0.0718148
+v -0.00216279 -0.0799502 0.0718148
+v -0.00216279 0.0799502 0.0718148
+v -0.0539854 -0.0590087 -0.0718852
+v -0.0539854 0.0590087 -0.0718852
+v 0.0539854 -0.0590087 -0.0718852
+v 0.0539854 0.0590087 -0.0718852
+v 0.0539854 -0.0590087 0.0718852
+v 0.0539854 0.0590087 0.0718852
+v -0.0539854 -0.0590087 0.0718852
+v -0.0539854 0.0590087 0.0718852
+v -0.00209813 -0.0799502 -0.0718892
+v -0.00209813 0.0799502 -0.0718892
+v 0.00209813 -0.0799502 -0.0718892
+v 0.00209813 0.0799502 -0.0718892
+v 0.00209813 -0.0799502 0.0718892
+v 0.00209813 0.0799502 0.0718892
+v -0.00209813 -0.0799502 0.0718892
+v -0.00209813 0.0799502 0.0718892
+v -0.0275889 -0.0750675 -0.0719292
+v -0.0275889 0.0750675 -0.0719292
+v 0.0275889 -0.0750675 -0.0719292
+v 0.0275889 0.0750675 -0.0719292
+v 0.0275889 -0.0750675 0.0719292
+v 0.0275889 0.0750675 0.0719292
+v -0.0275889 -0.0750675 0.0719292
+v -0.0275889 0.0750675 0.0719292
+v -0.0053028 -0.0798007 -0.0719301
+v -0.0053028 0.0798007 -0.0719301
+v 0.0053028 -0.0798007 -0.0719301
+v 0.0053028 0.0798007 -0.0719301
+v 0.0053028 -0.0798007 0.0719301
+v 0.0053028 0.0798007 0.0719301
+v -0.0053028 -0.0798007 0.0719301
+v -0.0053028 0.0798007 0.0719301
+v -0.0139096 -0.0787572 -0.0719549
+v -0.0139096 0.0787572 -0.0719549
+v 0.0139096 -0.0787572 -0.0719549
+v 0.0139096 0.0787572 -0.0719549
+v 0.0139096 -0.0787572 0.0719549
+v 0.0139096 0.0787572 0.0719549
+v -0.0139096 -0.0787572 0.0719549
+v -0.0139096 0.0787572 0.0719549
+v -0.0110871 -0.0792039 -0.071955
+v -0.0110871 0.0792039 -0.071955
+v 0.0110871 -0.0792039 -0.071955
+v 0.0110871 0.0792039 -0.071955
+v 0.0110871 -0.0792039 0.071955
+v 0.0110871 0.0792039 0.071955
+v -0.0110871 -0.0792039 0.071955
+v -0.0110871 0.0792039 0.071955
+v -0.056033 -0.0570655 -0.0719567
+v -0.056033 0.0570655 -0.0719567
+v 0.056033 -0.0570655 -0.0719567
+v 0.056033 0.0570655 -0.0719567
+v 0.056033 -0.0570655 0.0719567
+v 0.056033 0.0570655 0.0719567
+v -0.056033 -0.0570655 0.0719567
+v -0.056033 0.0570655 0.0719567
+v -0.00203092 -0.0799502 -0.0719612
+v -0.00203092 0.0799502 -0.0719612
+v 0.00203092 -0.0799502 -0.0719612
+v 0.00203092 0.0799502 -0.0719612
+v 0.00203092 -0.0799502 0.0719612
+v 0.00203092 0.0799502 0.0719612
+v -0.00203092 -0.0799502 0.0719612
+v -0.00203092 0.0799502 0.0719612
+v -0.0580108 -0.0550513 -0.0720258
+v -0.0580108 0.0550513 -0.0720258
+v 0.0580108 -0.0550513 -0.0720258
+v 0.0580108 0.0550513 -0.0720258
+v 0.0580108 -0.0550513 0.0720258
+v 0.0580108 0.0550513 0.0720258
+v -0.0580108 -0.0550513 0.0720258
+v -0.0580108 0.0550513 0.0720258
+v -0.00196124 -0.0799502 -0.0720309
+v -0.00196124 0.0799502 -0.0720309
+v 0.00196124 -0.0799502 -0.0720309
+v 0.00196124 0.0799502 -0.0720309
+v 0.00196124 -0.0799502 0.0720309
+v 0.00196124 0.0799502 0.0720309
+v -0.00196124 -0.0799502 0.0720309
+v -0.00196124 0.0799502 0.0720309
+v -0.0194596 -0.0775702 -0.0720453
+v -0.0194596 0.0775702 -0.0720453
+v 0.0194596 -0.0775702 -0.0720453
+v 0.0194596 0.0775702 -0.0720453
+v 0.0194596 -0.0775702 0.0720453
+v 0.0194596 0.0775702 0.0720453
+v -0.0194596 -0.0775702 0.0720453
+v -0.0194596 0.0775702 0.0720453
+v -0.00820471 -0.0795519 -0.0720457
+v -0.00820471 0.0795519 -0.0720457
+v 0.00820471 -0.0795519 -0.0720457
+v 0.00820471 0.0795519 -0.0720457
+v 0.00820471 -0.0795519 0.0720457
+v 0.00820471 0.0795519 0.0720457
+v -0.00820471 -0.0795519 0.0720457
+v -0.00820471 0.0795519 0.0720457
+v -0.0599163 -0.0529685 -0.0720923
+v -0.0599163 0.0529685 -0.0720923
+v 0.0599163 -0.0529685 -0.0720923
+v 0.0599163 0.0529685 -0.0720923
+v 0.0599163 -0.0529685 0.0720923
+v 0.0599163 0.0529685 0.0720923
+v -0.0599163 -0.0529685 0.0720923
+v -0.0599163 0.0529685 0.0720923
+v -0.00188917 -0.0799502 -0.0720981
+v -0.00188917 0.0799502 -0.0720981
+v 0.00188917 -0.0799502 -0.0720981
+v 0.00188917 0.0799502 -0.0720981
+v 0.00188917 -0.0799502 0.0720981
+v 0.00188917 0.0799502 0.0720981
+v -0.00188917 -0.0799502 0.0720981
+v -0.00188917 0.0799502 0.0720981
+v -0.0302145 -0.0740447 -0.0721128
+v -0.0302145 0.0740447 -0.0721128
+v 0.0302145 -0.0740447 -0.0721128
+v 0.0302145 0.0740447 -0.0721128
+v 0.0302145 -0.0740447 0.0721128
+v 0.0302145 0.0740447 0.0721128
+v -0.0302145 -0.0740447 0.0721128
+v -0.0302145 0.0740447 0.0721128
+v -0.00523221 -0.0798007 -0.0721139
+v -0.00523221 0.0798007 -0.0721139
+v 0.00523221 -0.0798007 -0.0721139
+v 0.00523221 0.0798007 -0.0721139
+v 0.00523221 -0.0798007 0.0721139
+v 0.00523221 0.0798007 0.0721139
+v -0.00523221 -0.0798007 0.0721139
+v -0.00523221 0.0798007 0.0721139
+v -0.0617472 -0.0508196 -0.0721563
+v -0.0617472 0.0508196 -0.0721563
+v 0.0617472 -0.0508196 -0.0721563
+v 0.0617472 0.0508196 -0.0721563
+v 0.0617472 -0.0508196 0.0721563
+v 0.0617472 0.0508196 0.0721563
+v -0.0617472 -0.0508196 0.0721563
+v -0.0617472 0.0508196 0.0721563
+v -0.00181479 -0.0799502 -0.0721628
+v -0.00181479 0.0799502 -0.0721628
+v 0.00181479 -0.0799502 -0.0721628
+v 0.00181479 0.0799502 -0.0721628
+v 0.00181479 -0.0799502 0.0721628
+v 0.00181479 0.0799502 0.0721628
+v -0.00181479 -0.0799502 0.0721628
+v -0.00181479 0.0799502 0.0721628
+v -0.0635011 -0.0486075 -0.0722175
+v -0.0635011 0.0486075 -0.0722175
+v 0.0635011 -0.0486075 -0.0722175
+v 0.0635011 0.0486075 -0.0722175
+v 0.0635011 -0.0486075 0.0722175
+v 0.0635011 0.0486075 0.0722175
+v -0.0635011 -0.0486075 0.0722175
+v -0.0635011 0.0486075 0.0722175
+v -0.00173821 -0.0799502 -0.0722248
+v -0.00173821 0.0799502 -0.0722248
+v 0.00173821 -0.0799502 -0.0722248
+v 0.00173821 0.0799502 -0.0722248
+v 0.00173821 -0.0799502 0.0722248
+v 0.00173821 0.0799502 0.0722248
+v -0.00173821 -0.0799502 0.0722248
+v -0.00173821 0.0799502 0.0722248
+v -0.065176 -0.0463348 -0.072276
+v -0.065176 0.0463348 -0.072276
+v 0.065176 -0.0463348 -0.072276
+v 0.065176 0.0463348 -0.072276
+v 0.065176 -0.0463348 0.072276
+v 0.065176 0.0463348 0.072276
+v -0.065176 -0.0463348 0.072276
+v -0.065176 0.0463348 0.072276
+v -0.0016595 -0.0799502 -0.0722841
+v -0.0016595 0.0799502 -0.0722841
+v 0.0016595 -0.0799502 -0.0722841
+v 0.0016595 0.0799502 -0.0722841
+v 0.0016595 -0.0799502 0.0722841
+v 0.0016595 0.0799502 0.0722841
+v -0.0016595 -0.0799502 0.0722841
+v -0.0016595 0.0799502 0.0722841
+v -0.0328024 -0.0729297 -0.0722938
+v -0.0328024 0.0729297 -0.0722938
+v 0.0328024 -0.0729297 -0.0722938
+v 0.0328024 0.0729297 -0.0722938
+v 0.0328024 -0.0729297 0.0722938
+v 0.0328024 0.0729297 0.0722938
+v -0.0328024 -0.0729297 0.0722938
+v -0.0328024 0.0729297 0.0722938
+v -0.00515524 -0.0798007 -0.0722953
+v -0.00515524 0.0798007 -0.0722953
+v 0.00515524 -0.0798007 -0.0722953
+v 0.00515524 0.0798007 -0.0722953
+v 0.00515524 -0.0798007 0.0722953
+v 0.00515524 0.0798007 0.0722953
+v -0.00515524 -0.0798007 0.0722953
+v -0.00515524 0.0798007 0.0722953
+v -0.0221701 -0.0768314 -0.0723302
+v -0.0221701 0.0768314 -0.0723302
+v 0.0221701 -0.0768314 -0.0723302
+v 0.0221701 0.0768314 -0.0723302
+v 0.0221701 -0.0768314 0.0723302
+v 0.0221701 0.0768314 0.0723302
+v -0.0221701 -0.0768314 0.0723302
+v -0.0221701 0.0768314 0.0723302
+v -0.00812832 -0.0795519 -0.0723308
+v -0.00812832 0.0795519 -0.0723308
+v 0.00812832 -0.0795519 -0.0723308
+v 0.00812832 0.0795519 -0.0723308
+v 0.00812832 -0.0795519 0.0723308
+v 0.00812832 0.0795519 0.0723308
+v -0.00812832 -0.0795519 0.0723308
+v -0.00812832 0.0795519 0.0723308
+v -0.0667696 -0.0440044 -0.0723316
+v -0.0667696 0.0440044 -0.0723316
+v 0.0667696 -0.0440044 -0.0723316
+v 0.0667696 0.0440044 -0.0723316
+v 0.0667696 -0.0440044 0.0723316
+v 0.0667696 0.0440044 0.0723316
+v -0.0667696 -0.0440044 0.0723316
+v -0.0667696 0.0440044 0.0723316
+v -0.0166534 -0.0782124 -0.0723405
+v -0.0166534 0.0782124 -0.0723405
+v 0.0166534 -0.0782124 -0.0723405
+v 0.0166534 0.0782124 -0.0723405
+v 0.0166534 -0.0782124 0.0723405
+v 0.0166534 0.0782124 0.0723405
+v -0.0166534 -0.0782124 0.0723405
+v -0.0166534 0.0782124 0.0723405
+v -0.00157878 -0.0799502 -0.0723406
+v -0.00157878 0.0799502 -0.0723406
+v 0.00157878 -0.0799502 -0.0723406
+v 0.00157878 0.0799502 -0.0723406
+v 0.00157878 -0.0799502 0.0723406
+v 0.00157878 0.0799502 0.0723406
+v -0.00157878 -0.0799502 0.0723406
+v -0.00157878 0.0799502 0.0723406
+v -0.0110121 -0.0792039 -0.0723407
+v -0.0110121 0.0792039 -0.0723407
+v 0.0110121 -0.0792039 -0.0723407
+v 0.0110121 0.0792039 -0.0723407
+v 0.0110121 -0.0792039 0.0723407
+v 0.0110121 0.0792039 0.0723407
+v -0.0110121 -0.0792039 0.0723407
+v -0.0110121 0.0792039 0.0723407
+v -0.06828 -0.0416192 -0.0723844
+v -0.06828 0.0416192 -0.0723844
+v 0.06828 -0.0416192 -0.0723844
+v 0.06828 0.0416192 -0.0723844
+v 0.06828 -0.0416192 0.0723844
+v 0.06828 0.0416192 0.0723844
+v -0.06828 -0.0416192 0.0723844
+v -0.06828 0.0416192 0.0723844
+v -0.00149613 -0.0799502 -0.0723943
+v -0.00149613 0.0799502 -0.0723943
+v 0.00149613 -0.0799502 -0.0723943
+v 0.00149613 0.0799502 -0.0723943
+v 0.00149613 -0.0799502 0.0723943
+v 0.00149613 0.0799502 0.0723943
+v -0.00149613 -0.0799502 0.0723943
+v -0.00149613 0.0799502 0.0723943
+v -0.0697054 -0.0391821 -0.0724342
+v -0.0697054 0.0391821 -0.0724342
+v 0.0697054 -0.0391821 -0.0724342
+v 0.0697054 0.0391821 -0.0724342
+v 0.0697054 -0.0391821 0.0724342
+v 0.0697054 0.0391821 0.0724342
+v -0.0697054 -0.0391821 0.0724342
+v -0.0697054 0.0391821 0.0724342
+v -0.0138329 -0.0787572 -0.0724391
+v -0.0138329 0.0787572 -0.0724391
+v 0.0138329 -0.0787572 -0.0724391
+v 0.0138329 0.0787572 -0.0724391
+v 0.0138329 -0.0787572 0.0724391
+v 0.0138329 0.0787572 0.0724391
+v -0.0138329 -0.0787572 0.0724391
+v -0.0138329 0.0787572 0.0724391
+v -0.00141166 -0.0799502 -0.0724451
+v -0.00141166 0.0799502 -0.0724451
+v 0.00141166 -0.0799502 -0.0724451
+v 0.00141166 0.0799502 -0.0724451
+v 0.00141166 -0.0799502 0.0724451
+v 0.00141166 0.0799502 0.0724451
+v -0.00141166 -0.0799502 0.0724451
+v -0.00141166 0.0799502 0.0724451
+v -0.0353495 -0.0717238 -0.0724719
+v -0.0353495 0.0717238 -0.0724719
+v 0.0353495 -0.0717238 -0.0724719
+v 0.0353495 0.0717238 -0.0724719
+v 0.0353495 -0.0717238 0.0724719
+v 0.0353495 0.0717238 0.0724719
+v -0.0353495 -0.0717238 0.0724719
+v -0.0353495 0.0717238 0.0724719
+v -0.005072 -0.0798007 -0.0724738
+v -0.005072 0.0798007 -0.0724738
+v 0.005072 -0.0798007 -0.0724738
+v 0.005072 0.0798007 -0.0724738
+v 0.005072 -0.0798007 0.0724738
+v 0.005072 0.0798007 0.0724738
+v -0.005072 -0.0798007 0.0724738
+v -0.005072 0.0798007 0.0724738
+v -0.0710439 -0.0366961 -0.0724809
+v -0.0710439 0.0366961 -0.0724809
+v 0.0710439 -0.0366961 -0.0724809
+v 0.0710439 0.0366961 -0.0724809
+v 0.0710439 -0.0366961 0.0724809
+v 0.0710439 0.0366961 0.0724809
+v -0.0710439 -0.0366961 0.0724809
+v -0.0710439 0.0366961 0.0724809
+v -0.00132547 -0.0799502 -0.0724928
+v -0.00132547 0.0799502 -0.0724928
+v 0.00132547 -0.0799502 -0.0724928
+v 0.00132547 0.0799502 -0.0724928
+v 0.00132547 -0.0799502 0.0724928
+v 0.00132547 0.0799502 0.0724928
+v -0.00132547 -0.0799502 0.0724928
+v -0.00132547 0.0799502 0.0724928
+v -0.0722939 -0.0341645 -0.0725246
+v -0.0722939 0.0341645 -0.0725246
+v 0.0722939 -0.0341645 -0.0725246
+v 0.0722939 0.0341645 -0.0725246
+v 0.0722939 -0.0341645 0.0725246
+v 0.0722939 0.0341645 0.0725246
+v -0.0722939 -0.0341645 0.0725246
+v -0.0722939 0.0341645 0.0725246
+v -0.00123766 -0.0799502 -0.0725376
+v -0.00123766 0.0799502 -0.0725376
+v 0.00123766 -0.0799502 -0.0725376
+v 0.00123766 0.0799502 -0.0725376
+v 0.00123766 -0.0799502 0.0725376
+v 0.00123766 0.0799502 0.0725376
+v -0.00123766 -0.0799502 0.0725376
+v -0.00123766 0.0799502 0.0725376
+v -0.0734539 -0.0315903 -0.0725651
+v -0.0734539 0.0315903 -0.0725651
+v 0.0734539 -0.0315903 -0.0725651
+v 0.0734539 0.0315903 -0.0725651
+v 0.0734539 -0.0315903 0.0725651
+v 0.0734539 0.0315903 0.0725651
+v -0.0734539 -0.0315903 0.0725651
+v -0.0734539 0.0315903 0.0725651
+v -0.00114835 -0.0799502 -0.0725792
+v -0.00114835 0.0799502 -0.0725792
+v 0.00114835 -0.0799502 -0.0725792
+v 0.00114835 0.0799502 -0.0725792
+v 0.00114835 -0.0799502 0.0725792
+v 0.00114835 0.0799502 0.0725792
+v -0.00114835 -0.0799502 0.0725792
+v -0.00114835 0.0799502 0.0725792
+v -0.0745223 -0.0289768 -0.0726024
+v -0.0745223 0.0289768 -0.0726024
+v 0.0745223 -0.0289768 -0.0726024
+v 0.0745223 0.0289768 -0.0726024
+v 0.0745223 -0.0289768 0.0726024
+v 0.0745223 0.0289768 0.0726024
+v -0.0745223 -0.0289768 0.0726024
+v -0.0745223 0.0289768 0.0726024
+v -0.0248529 -0.0759968 -0.0726121
+v -0.0248529 0.0759968 -0.0726121
+v 0.0248529 -0.0759968 -0.0726121
+v 0.0248529 0.0759968 -0.0726121
+v 0.0248529 -0.0759968 0.0726121
+v 0.0248529 0.0759968 0.0726121
+v -0.0248529 -0.0759968 0.0726121
+v -0.0248529 0.0759968 0.0726121
+v -0.00804203 -0.0795519 -0.072613
+v -0.00804203 0.0795519 -0.072613
+v 0.00804203 -0.0795519 -0.072613
+v 0.00804203 0.0795519 -0.072613
+v 0.00804203 -0.0795519 0.072613
+v 0.00804203 0.0795519 0.072613
+v -0.00804203 -0.0795519 0.072613
+v -0.00804203 0.0795519 0.072613
+v -0.00105763 -0.0799502 -0.0726177
+v -0.00105763 0.0799502 -0.0726177
+v 0.00105763 -0.0799502 -0.0726177
+v 0.00105763 0.0799502 -0.0726177
+v 0.00105763 -0.0799502 0.0726177
+v 0.00105763 0.0799502 0.0726177
+v -0.00105763 -0.0799502 0.0726177
+v -0.00105763 0.0799502 0.0726177
+v -0.0754979 -0.0263271 -0.0726364
+v -0.0754979 0.0263271 -0.0726364
+v 0.0754979 -0.0263271 -0.0726364
+v 0.0754979 0.0263271 -0.0726364
+v 0.0754979 -0.0263271 0.0726364
+v 0.0754979 0.0263271 0.0726364
+v -0.0754979 -0.0263271 0.0726364
+v -0.0754979 0.0263271 0.0726364
+v -0.0378526 -0.0704285 -0.0726469
+v -0.0378526 0.0704285 -0.0726469
+v 0.0378526 -0.0704285 -0.0726469
+v 0.0378526 0.0704285 -0.0726469
+v 0.0378526 -0.0704285 0.0726469
+v 0.0378526 0.0704285 0.0726469
+v -0.0378526 -0.0704285 0.0726469
+v -0.0378526 0.0704285 0.0726469
+v -0.00498258 -0.0798007 -0.0726493
+v -0.00498258 0.0798007 -0.0726493
+v 0.00498258 -0.0798007 -0.0726493
+v 0.00498258 0.0798007 -0.0726493
+v 0.00498258 -0.0798007 0.0726493
+v 0.00498258 0.0798007 0.0726493
+v -0.00498258 -0.0798007 0.0726493
+v -0.00498258 0.0798007 0.0726493
+v -0.000965631 -0.0799502 -0.072653
+v -0.000965631 0.0799502 -0.072653
+v 0.000965631 -0.0799502 -0.072653
+v 0.000965631 0.0799502 -0.072653
+v 0.000965631 -0.0799502 0.072653
+v 0.000965631 0.0799502 0.072653
+v -0.000965631 -0.0799502 0.072653
+v -0.000965631 0.0799502 0.072653
+v -0.0763794 -0.0236447 -0.0726672
+v -0.0763794 0.0236447 -0.0726672
+v 0.0763794 -0.0236447 -0.0726672
+v 0.0763794 0.0236447 -0.0726672
+v 0.0763794 -0.0236447 0.0726672
+v 0.0763794 0.0236447 0.0726672
+v -0.0763794 -0.0236447 0.0726672
+v -0.0763794 0.0236447 0.0726672
+v -0.000872453 -0.0799502 -0.0726851
+v -0.000872453 0.0799502 -0.0726851
+v 0.000872453 -0.0799502 -0.0726851
+v 0.000872453 0.0799502 -0.0726851
+v 0.000872453 -0.0799502 0.0726851
+v 0.000872453 0.0799502 0.0726851
+v -0.000872453 -0.0799502 0.0726851
+v -0.000872453 0.0799502 0.0726851
+v -0.0771658 -0.0209327 -0.0726947
+v -0.0771658 0.0209327 -0.0726947
+v 0.0771658 -0.0209327 -0.0726947
+v 0.0771658 0.0209327 -0.0726947
+v 0.0771658 -0.0209327 0.0726947
+v 0.0771658 0.0209327 0.0726947
+v -0.0771658 -0.0209327 0.0726947
+v -0.0771658 0.0209327 0.0726947
+v -0.000778212 -0.0799502 -0.0727139
+v -0.000778212 0.0799502 -0.0727139
+v 0.000778212 -0.0799502 -0.0727139
+v 0.000778212 0.0799502 -0.0727139
+v 0.000778212 -0.0799502 0.0727139
+v 0.000778212 0.0799502 0.0727139
+v -0.000778212 -0.0799502 0.0727139
+v -0.000778212 0.0799502 0.0727139
+v -0.077856 -0.0181947 -0.0727188
+v -0.077856 0.0181947 -0.0727188
+v 0.077856 -0.0181947 -0.0727188
+v 0.077856 0.0181947 -0.0727188
+v 0.077856 -0.0181947 0.0727188
+v 0.077856 0.0181947 0.0727188
+v -0.077856 -0.0181947 0.0727188
+v -0.077856 0.0181947 0.0727188
+v -0.0193764 -0.0775702 -0.0727232
+v -0.0193764 0.0775702 -0.0727232
+v 0.0193764 -0.0775702 -0.0727232
+v 0.0193764 0.0775702 -0.0727232
+v 0.0193764 -0.0775702 0.0727232
+v 0.0193764 0.0775702 0.0727232
+v -0.0193764 -0.0775702 0.0727232
+v -0.0193764 0.0775702 0.0727232
+v -0.0109237 -0.0792039 -0.0727236
+v -0.0109237 0.0792039 -0.0727236
+v 0.0109237 -0.0792039 -0.0727236
+v 0.0109237 0.0792039 -0.0727236
+v 0.0109237 -0.0792039 0.0727236
+v 0.0109237 0.0792039 0.0727236
+v -0.0109237 -0.0792039 0.0727236
+v -0.0109237 0.0792039 0.0727236
+v -0.0784492 -0.0154341 -0.0727395
+v -0.0784492 0.0154341 -0.0727395
+v 0.0784492 -0.0154341 -0.0727395
+v 0.0784492 0.0154341 -0.0727395
+v 0.0784492 -0.0154341 0.0727395
+v 0.0784492 0.0154341 0.0727395
+v -0.0784492 -0.0154341 0.0727395
+v -0.0784492 0.0154341 0.0727395
+v -0.000683022 -0.0799502 -0.0727395
+v -0.000683022 0.0799502 -0.0727395
+v 0.000683022 -0.0799502 -0.0727395
+v 0.000683022 0.0799502 -0.0727395
+v 0.000683022 -0.0799502 0.0727395
+v 0.000683022 0.0799502 0.0727395
+v -0.000683022 -0.0799502 0.0727395
+v -0.000683022 0.0799502 0.0727395
+v -0.0789447 -0.0126542 -0.0727568
+v -0.0789447 0.0126542 -0.0727568
+v 0.0789447 -0.0126542 -0.0727568
+v 0.0789447 0.0126542 -0.0727568
+v 0.0789447 -0.0126542 0.0727568
+v 0.0789447 0.0126542 0.0727568
+v -0.0789447 -0.0126542 0.0727568
+v -0.0789447 0.0126542 0.0727568
+v -0.000587001 -0.0799502 -0.0727616
+v -0.000587001 0.0799502 -0.0727616
+v 0.000587001 -0.0799502 -0.0727616
+v 0.000587001 0.0799502 -0.0727616
+v 0.000587001 -0.0799502 0.0727616
+v 0.000587001 0.0799502 0.0727616
+v -0.000587001 -0.0799502 0.0727616
+v -0.000587001 0.0799502 0.0727616
+v -0.0793419 -0.00985854 -0.0727707
+v -0.0793419 0.00985854 -0.0727707
+v 0.0793419 -0.00985854 -0.0727707
+v 0.0793419 0.00985854 -0.0727707
+v 0.0793419 -0.00985854 0.0727707
+v 0.0793419 0.00985854 0.0727707
+v -0.0793419 -0.00985854 0.0727707
+v -0.0793419 0.00985854 0.0727707
+v -0.000490264 -0.0799502 -0.0727804
+v -0.000490264 0.0799502 -0.0727804
+v 0.000490264 -0.0799502 -0.0727804
+v 0.000490264 0.0799502 -0.0727804
+v 0.000490264 -0.0799502 0.0727804
+v 0.000490264 0.0799502 0.0727804
+v -0.000490264 -0.0799502 0.0727804
+v -0.000490264 0.0799502 0.0727804
+v -0.0796402 -0.0070506 -0.0727811
+v -0.0796402 0.0070506 -0.0727811
+v 0.0796402 -0.0070506 -0.0727811
+v 0.0796402 0.0070506 -0.0727811
+v 0.0796402 -0.0070506 0.0727811
+v 0.0796402 0.0070506 0.0727811
+v -0.0796402 -0.0070506 0.0727811
+v -0.0796402 0.0070506 0.0727811
+v -0.0798392 -0.00423388 -0.072788
+v -0.0798392 0.00423388 -0.072788
+v 0.0798392 -0.00423388 -0.072788
+v 0.0798392 0.00423388 -0.072788
+v 0.0798392 -0.00423388 0.072788
+v 0.0798392 0.00423388 0.072788
+v -0.0798392 -0.00423388 0.072788
+v -0.0798392 0.00423388 0.072788
+v -0.0799388 -0.00141188 -0.0727915
+v -0.0799388 0.00141188 -0.0727915
+v 0.0799388 -0.00141188 -0.0727915
+v 0.0799388 0.00141188 -0.0727915
+v 0.0799388 -0.00141188 0.0727915
+v 0.0799388 0.00141188 0.0727915
+v -0.0799388 -0.00141188 0.0727915
+v -0.0799388 0.00141188 0.0727915
+v -0.00039293 -0.0799502 -0.0727958
+v -0.00039293 0.0799502 -0.0727958
+v 0.00039293 -0.0799502 -0.0727958
+v 0.00039293 0.0799502 -0.0727958
+v 0.00039293 -0.0799502 0.0727958
+v 0.00039293 0.0799502 0.0727958
+v -0.00039293 -0.0799502 0.0727958
+v -0.00039293 0.0799502 0.0727958
+v -0.000295117 -0.0799502 -0.0728078
+v -0.000295117 0.0799502 -0.0728078
+v 0.000295117 -0.0799502 -0.0728078
+v 0.000295117 0.0799502 -0.0728078
+v 0.000295117 -0.0799502 0.0728078
+v 0.000295117 0.0799502 0.0728078
+v -0.000295117 -0.0799502 0.0728078
+v -0.000295117 0.0799502 0.0728078
+v -0.000196945 -0.0799502 -0.0728164
+v -0.000196945 0.0799502 -0.0728164
+v 0.000196945 -0.0799502 -0.0728164
+v 0.000196945 0.0799502 -0.0728164
+v 0.000196945 -0.0799502 0.0728164
+v 0.000196945 0.0799502 0.0728164
+v -0.000196945 -0.0799502 0.0728164
+v -0.000196945 0.0799502 0.0728164
+v -0.0403085 -0.0690455 -0.0728186
+v -0.0403085 0.0690455 -0.0728186
+v 0.0403085 -0.0690455 -0.0728186
+v 0.0403085 0.0690455 -0.0728186
+v 0.0403085 -0.0690455 0.0728186
+v 0.0403085 0.0690455 0.0728186
+v -0.0403085 -0.0690455 0.0728186
+v -0.0403085 0.0690455 0.0728186
+v -0.00488708 -0.0798007 -0.0728216
+v -0.00488708 0.0798007 -0.0728216
+v 0.00488708 -0.0798007 -0.0728216
+v 0.00488708 0.0798007 -0.0728216
+v 0.00488708 -0.0798007 0.0728216
+v 0.00488708 0.0798007 0.0728216
+v -0.00488708 -0.0798007 0.0728216
+v -0.00488708 0.0798007 0.0728216
+v -9.85323e-05 -0.0799502 -0.0728216
+v -9.85323e-05 0.0799502 -0.0728216
+v 9.85323e-05 -0.0799502 -0.0728216
+v 9.85323e-05 0.0799502 -0.0728216
+v 9.85323e-05 -0.0799502 0.0728216
+v 9.85323e-05 0.0799502 0.0728216
+v -9.85323e-05 -0.0799502 0.0728216
+v -9.85323e-05 0.0799502 0.0728216
+v -5.18635e-19 -0.0799502 -0.0728233
+v -5.18635e-19 0.0799502 -0.0728233
+v 1.72878e-19 -0.0799502 0.0728233
+v 1.72878e-19 0.0799502 0.0728233
+v -0.0275047 -0.0750675 -0.0728909
+v -0.0275047 0.0750675 -0.0728909
+v 0.0275047 -0.0750675 -0.0728909
+v 0.0275047 0.0750675 -0.0728909
+v 0.0275047 -0.0750675 0.0728909
+v 0.0275047 0.0750675 0.0728909
+v -0.0275047 -0.0750675 0.0728909
+v -0.0275047 0.0750675 0.0728909
+v -0.00794593 -0.0795519 -0.0728921
+v -0.00794593 0.0795519 -0.0728921
+v 0.00794593 -0.0795519 -0.0728921
+v 0.00794593 0.0795519 -0.0728921
+v 0.00794593 -0.0795519 0.0728921
+v 0.00794593 0.0795519 0.0728921
+v -0.00794593 -0.0795519 0.0728921
+v -0.00794593 0.0795519 0.0728921
+v -0.0165615 -0.0782124 -0.0729202
+v -0.0165615 0.0782124 -0.0729202
+v 0.0165615 -0.0782124 -0.0729202
+v 0.0165615 0.0782124 -0.0729202
+v 0.0165615 -0.0782124 0.0729202
+v 0.0165615 0.0782124 0.0729202
+v -0.0165615 -0.0782124 0.0729202
+v -0.0165615 0.0782124 0.0729202
+v -0.0137394 -0.0787572 -0.0729204
+v -0.0137394 0.0787572 -0.0729204
+v 0.0137394 -0.0787572 -0.0729204
+v 0.0137394 0.0787572 -0.0729204
+v 0.0137394 -0.0787572 0.0729204
+v 0.0137394 0.0787572 0.0729204
+v -0.0137394 -0.0787572 0.0729204
+v -0.0137394 0.0787572 0.0729204
+v -0.0427141 -0.0675765 -0.0729869
+v -0.0427141 0.0675765 -0.0729869
+v 0.0427141 -0.0675765 -0.0729869
+v 0.0427141 0.0675765 -0.0729869
+v 0.0427141 -0.0675765 0.0729869
+v 0.0427141 0.0675765 0.0729869
+v -0.0427141 -0.0675765 0.0729869
+v -0.0427141 0.0675765 0.0729869
+v -0.00478563 -0.0798007 -0.0729904
+v -0.00478563 0.0798007 -0.0729904
+v 0.00478563 -0.0798007 -0.0729904
+v 0.00478563 0.0798007 -0.0729904
+v 0.00478563 -0.0798007 0.0729904
+v 0.00478563 0.0798007 0.0729904
+v -0.00478563 -0.0798007 0.0729904
+v -0.00478563 0.0798007 0.0729904
+v -0.0220752 -0.0768314 -0.0731025
+v -0.0220752 0.0768314 -0.0731025
+v 0.0220752 -0.0768314 -0.0731025
+v 0.0220752 0.0768314 -0.0731025
+v 0.0220752 -0.0768314 0.0731025
+v 0.0220752 0.0768314 0.0731025
+v -0.0220752 -0.0768314 0.0731025
+v -0.0220752 0.0768314 0.0731025
+v -0.010822 -0.0792039 -0.0731032
+v -0.010822 0.0792039 -0.0731032
+v 0.010822 -0.0792039 -0.0731032
+v 0.010822 0.0792039 -0.0731032
+v 0.010822 -0.0792039 0.0731032
+v 0.010822 0.0792039 0.0731032
+v -0.010822 -0.0792039 0.0731032
+v -0.010822 0.0792039 0.0731032
+v -0.0450666 -0.0660233 -0.0731514
+v -0.0450666 0.0660233 -0.0731514
+v 0.0450666 -0.0660233 -0.0731514
+v 0.0450666 0.0660233 -0.0731514
+v 0.0450666 -0.0660233 0.0731514
+v 0.0450666 0.0660233 0.0731514
+v -0.0450666 -0.0660233 0.0731514
+v -0.0450666 0.0660233 0.0731514
+v -0.00467836 -0.0798007 -0.0731556
+v -0.00467836 0.0798007 -0.0731556
+v 0.00467836 -0.0798007 -0.0731556
+v 0.00467836 0.0798007 -0.0731556
+v 0.00467836 -0.0798007 0.0731556
+v 0.00467836 0.0798007 0.0731556
+v -0.00467836 -0.0798007 0.0731556
+v -0.00467836 0.0798007 0.0731556
+v -0.0301223 -0.0740447 -0.073166
+v -0.0301223 0.0740447 -0.073166
+v 0.0301223 -0.0740447 -0.073166
+v 0.0301223 0.0740447 -0.073166
+v 0.0301223 -0.0740447 0.073166
+v 0.0301223 0.0740447 0.073166
+v -0.0301223 -0.0740447 0.073166
+v -0.0301223 0.0740447 0.073166
+v -0.00784016 -0.0795519 -0.0731676
+v -0.00784016 0.0795519 -0.0731676
+v 0.00784016 -0.0795519 -0.0731676
+v 0.00784016 0.0795519 -0.0731676
+v 0.00784016 -0.0795519 0.0731676
+v 0.00784016 0.0795519 0.0731676
+v -0.00784016 -0.0795519 0.0731676
+v -0.00784016 0.0795519 0.0731676
+v -0.0473629 -0.0643878 -0.0733119
+v -0.0473629 0.0643878 -0.0733119
+v 0.0473629 -0.0643878 -0.0733119
+v 0.0473629 0.0643878 -0.0733119
+v 0.0473629 -0.0643878 0.0733119
+v 0.0473629 0.0643878 0.0733119
+v -0.0473629 -0.0643878 0.0733119
+v -0.0473629 0.0643878 0.0733119
+v -0.00456538 -0.0798007 -0.0733169
+v -0.00456538 0.0798007 -0.0733169
+v 0.00456538 -0.0798007 -0.0733169
+v 0.00456538 0.0798007 -0.0733169
+v 0.00456538 -0.0798007 0.0733169
+v 0.00456538 0.0798007 0.0733169
+v -0.00456538 -0.0798007 0.0733169
+v -0.00456538 0.0798007 0.0733169
+v -0.0192695 -0.0775702 -0.0733977
+v -0.0192695 0.0775702 -0.0733977
+v 0.0192695 -0.0775702 -0.0733977
+v 0.0192695 0.0775702 -0.0733977
+v 0.0192695 -0.0775702 0.0733977
+v 0.0192695 0.0775702 0.0733977
+v -0.0192695 -0.0775702 0.0733977
+v -0.0192695 0.0775702 0.0733977
+v -0.0136291 -0.0787572 -0.0733981
+v -0.0136291 0.0787572 -0.0733981
+v 0.0136291 -0.0787572 -0.0733981
+v 0.0136291 0.0787572 -0.0733981
+v 0.0136291 -0.0787572 0.0733981
+v 0.0136291 0.0787572 0.0733981
+v -0.0136291 -0.0787572 0.0733981
+v -0.0136291 0.0787572 0.0733981
+v -0.0327024 -0.0729297 -0.0734372
+v -0.0327024 0.0729297 -0.0734372
+v 0.0327024 -0.0729297 -0.0734372
+v 0.0327024 0.0729297 -0.0734372
+v 0.0327024 -0.0729297 0.0734372
+v 0.0327024 0.0729297 0.0734372
+v -0.0327024 -0.0729297 0.0734372
+v -0.0327024 0.0729297 0.0734372
+v -0.00772484 -0.0795519 -0.0734393
+v -0.00772484 0.0795519 -0.0734393
+v 0.00772484 -0.0795519 -0.0734393
+v 0.00772484 0.0795519 -0.0734393
+v 0.00772484 -0.0795519 0.0734393
+v 0.00772484 0.0795519 0.0734393
+v -0.00772484 -0.0795519 0.0734393
+v -0.00772484 0.0795519 0.0734393
+v -0.0496002 -0.0626721 -0.0734684
+v -0.0496002 0.0626721 -0.0734684
+v 0.0496002 -0.0626721 -0.0734684
+v 0.0496002 0.0626721 -0.0734684
+v 0.0496002 -0.0626721 0.0734684
+v 0.0496002 0.0626721 0.0734684
+v -0.0496002 -0.0626721 0.0734684
+v -0.0496002 0.0626721 0.0734684
+v -0.00444684 -0.0798007 -0.0734743
+v -0.00444684 0.0798007 -0.0734743
+v 0.00444684 -0.0798007 -0.0734743
+v 0.00444684 0.0798007 -0.0734743
+v 0.00444684 -0.0798007 0.0734743
+v 0.00444684 0.0798007 0.0734743
+v -0.00444684 -0.0798007 0.0734743
+v -0.00444684 0.0798007 0.0734743
+v -0.0247466 -0.0759968 -0.0734779
+v -0.0247466 0.0759968 -0.0734779
+v 0.0247466 -0.0759968 -0.0734779
+v 0.0247466 0.0759968 -0.0734779
+v 0.0247466 -0.0759968 0.0734779
+v 0.0247466 0.0759968 0.0734779
+v -0.0247466 -0.0759968 0.0734779
+v -0.0247466 0.0759968 0.0734779
+v -0.0107071 -0.0792039 -0.073479
+v -0.0107071 0.0792039 -0.073479
+v 0.0107071 -0.0792039 -0.073479
+v 0.0107071 0.0792039 -0.073479
+v 0.0107071 -0.0792039 0.073479
+v 0.0107071 0.0792039 0.073479
+v -0.0107071 -0.0792039 0.073479
+v -0.0107071 0.0792039 0.073479
+v -0.0164495 -0.0782124 -0.0734965
+v -0.0164495 0.0782124 -0.0734965
+v 0.0164495 -0.0782124 -0.0734965
+v 0.0164495 0.0782124 -0.0734965
+v 0.0164495 -0.0782124 0.0734965
+v 0.0164495 0.0782124 0.0734965
+v -0.0164495 -0.0782124 0.0734965
+v -0.0164495 0.0782124 0.0734965
+v -0.0517757 -0.0608783 -0.0736205
+v -0.0517757 0.0608783 -0.0736205
+v 0.0517757 -0.0608783 -0.0736205
+v 0.0517757 0.0608783 -0.0736205
+v 0.0517757 -0.0608783 0.0736205
+v 0.0517757 0.0608783 0.0736205
+v -0.0517757 -0.0608783 0.0736205
+v -0.0517757 0.0608783 0.0736205
+v -0.00432288 -0.0798007 -0.0736273
+v -0.00432288 0.0798007 -0.0736273
+v 0.00432288 -0.0798007 -0.0736273
+v 0.00432288 0.0798007 -0.0736273
+v 0.00432288 -0.0798007 0.0736273
+v 0.00432288 0.0798007 0.0736273
+v -0.00432288 -0.0798007 0.0736273
+v -0.00432288 0.0798007 0.0736273
+v -0.0352417 -0.0717238 -0.0737041
+v -0.0352417 0.0717238 -0.0737041
+v 0.0352417 -0.0717238 -0.0737041
+v 0.0352417 0.0717238 -0.0737041
+v 0.0352417 -0.0717238 0.0737041
+v 0.0352417 0.0717238 0.0737041
+v -0.0352417 -0.0717238 0.0737041
+v -0.0352417 0.0717238 0.0737041
+v -0.0076001 -0.0795519 -0.0737068
+v -0.0076001 0.0795519 -0.0737068
+v 0.0076001 -0.0795519 -0.0737068
+v 0.0076001 0.0795519 -0.0737068
+v 0.0076001 -0.0795519 0.0737068
+v 0.0076001 0.0795519 0.0737068
+v -0.0076001 -0.0795519 0.0737068
+v -0.0076001 0.0795519 0.0737068
+v -0.0538867 -0.0590087 -0.0737681
+v -0.0538867 0.0590087 -0.0737681
+v 0.0538867 -0.0590087 -0.0737681
+v 0.0538867 0.0590087 -0.0737681
+v 0.0538867 -0.0590087 0.0737681
+v 0.0538867 0.0590087 0.0737681
+v -0.0538867 -0.0590087 0.0737681
+v -0.0538867 0.0590087 0.0737681
+v -0.00419365 -0.0798007 -0.073776
+v -0.00419365 0.0798007 -0.073776
+v 0.00419365 -0.0798007 -0.073776
+v 0.00419365 0.0798007 -0.073776
+v 0.00419365 -0.0798007 0.073776
+v 0.00419365 0.0798007 0.073776
+v -0.00419365 -0.0798007 0.073776
+v -0.00419365 0.0798007 0.073776
+v -0.0273871 -0.0750675 -0.073849
+v -0.0273871 0.0750675 -0.073849
+v 0.0273871 -0.0750675 -0.073849
+v 0.0273871 0.0750675 -0.073849
+v 0.0273871 -0.0750675 0.073849
+v 0.0273871 0.0750675 0.073849
+v -0.0273871 -0.0750675 0.073849
+v -0.0273871 0.0750675 0.073849
+v -0.0105792 -0.0792039 -0.0738505
+v -0.0105792 0.0792039 -0.0738505
+v 0.0105792 -0.0792039 -0.0738505
+v 0.0105792 0.0792039 -0.0738505
+v 0.0105792 -0.0792039 0.0738505
+v 0.0105792 0.0792039 0.0738505
+v -0.0105792 -0.0792039 0.0738505
+v -0.0105792 0.0792039 0.0738505
+v -0.0219535 -0.0768314 -0.073871
+v -0.0219535 0.0768314 -0.073871
+v 0.0219535 -0.0768314 -0.073871
+v 0.0219535 0.0768314 -0.073871
+v 0.0219535 -0.0768314 0.073871
+v 0.0219535 0.0768314 0.073871
+v -0.0219535 -0.0768314 0.073871
+v -0.0219535 0.0768314 0.073871
+v -0.0135022 -0.0787572 -0.0738717
+v -0.0135022 0.0787572 -0.0738717
+v 0.0135022 -0.0787572 -0.0738717
+v 0.0135022 0.0787572 -0.0738717
+v 0.0135022 -0.0787572 0.0738717
+v 0.0135022 0.0787572 0.0738717
+v -0.0135022 -0.0787572 0.0738717
+v -0.0135022 0.0787572 0.0738717
+v -0.0559306 -0.0570655 -0.073911
+v -0.0559306 0.0570655 -0.073911
+v 0.0559306 -0.0570655 -0.073911
+v 0.0559306 0.0570655 -0.073911
+v 0.0559306 -0.0570655 0.073911
+v 0.0559306 0.0570655 0.073911
+v -0.0559306 -0.0570655 0.073911
+v -0.0559306 0.0570655 0.073911
+v -0.00405932 -0.0798007 -0.07392
+v -0.00405932 0.0798007 -0.07392
+v 0.00405932 -0.0798007 -0.07392
+v 0.00405932 0.0798007 -0.07392
+v 0.00405932 -0.0798007 0.07392
+v 0.00405932 0.0798007 0.07392
+v -0.00405932 -0.0798007 0.07392
+v -0.00405932 0.0798007 0.07392
+v -0.0377371 -0.0704285 -0.0739663
+v -0.0377371 0.0704285 -0.0739663
+v 0.0377371 -0.0704285 -0.0739663
+v 0.0377371 0.0704285 -0.0739663
+v 0.0377371 -0.0704285 0.0739663
+v 0.0377371 0.0704285 0.0739663
+v -0.0377371 -0.0704285 0.0739663
+v -0.0377371 0.0704285 0.0739663
+v -0.0074661 -0.0795519 -0.0739698
+v -0.0074661 0.0795519 -0.0739698
+v 0.0074661 -0.0795519 -0.0739698
+v 0.0074661 0.0795519 -0.0739698
+v 0.0074661 -0.0795519 0.0739698
+v 0.0074661 0.0795519 0.0739698
+v -0.0074661 -0.0795519 0.0739698
+v -0.0074661 0.0795519 0.0739698
+v -0.0579048 -0.0550513 -0.0740491
+v -0.0579048 0.0550513 -0.0740491
+v 0.0579048 -0.0550513 -0.0740491
+v 0.0579048 0.0550513 -0.0740491
+v 0.0579048 -0.0550513 0.0740491
+v 0.0579048 0.0550513 0.0740491
+v -0.0579048 -0.0550513 0.0740491
+v -0.0579048 0.0550513 0.0740491
+v -0.00392004 -0.0798007 -0.0740593
+v -0.00392004 0.0798007 -0.0740593
+v 0.00392004 -0.0798007 -0.0740593
+v 0.00392004 0.0798007 -0.0740593
+v 0.00392004 -0.0798007 0.0740593
+v 0.00392004 0.0798007 0.0740593
+v -0.00392004 -0.0798007 0.0740593
+v -0.00392004 0.0798007 0.0740593
+v -0.0191392 -0.0775702 -0.0740682
+v -0.0191392 0.0775702 -0.0740682
+v 0.0191392 -0.0775702 -0.0740682
+v 0.0191392 0.0775702 -0.0740682
+v 0.0191392 -0.0775702 0.0740682
+v 0.0191392 0.0775702 0.0740682
+v -0.0191392 -0.0775702 0.0740682
+v -0.0191392 0.0775702 0.0740682
+v -0.0163175 -0.0782124 -0.0740684
+v -0.0163175 0.0782124 -0.0740684
+v 0.0163175 -0.0782124 -0.0740684
+v 0.0163175 0.0782124 -0.0740684
+v 0.0163175 -0.0782124 0.0740684
+v 0.0163175 0.0782124 0.0740684
+v -0.0163175 -0.0782124 0.0740684
+v -0.0163175 0.0782124 0.0740684
+v -0.0598068 -0.0529685 -0.0741821
+v -0.0598068 0.0529685 -0.0741821
+v 0.0598068 -0.0529685 -0.0741821
+v 0.0598068 0.0529685 -0.0741821
+v 0.0598068 -0.0529685 0.0741821
+v 0.0598068 0.0529685 0.0741821
+v -0.0598068 -0.0529685 0.0741821
+v -0.0598068 0.0529685 0.0741821
+v -0.00377598 -0.0798007 -0.0741937
+v -0.00377598 0.0798007 -0.0741937
+v 0.00377598 -0.0798007 -0.0741937
+v 0.00377598 0.0798007 -0.0741937
+v 0.00377598 -0.0798007 0.0741937
+v 0.00377598 0.0798007 0.0741937
+v -0.00377598 -0.0798007 0.0741937
+v -0.00377598 0.0798007 0.0741937
+v -0.0299935 -0.0740447 -0.0742153
+v -0.0299935 0.0740447 -0.0742153
+v 0.0299935 -0.0740447 -0.0742153
+v 0.0299935 0.0740447 -0.0742153
+v 0.0299935 -0.0740447 0.0742153
+v 0.0299935 0.0740447 0.0742153
+v -0.0299935 -0.0740447 0.0742153
+v -0.0299935 0.0740447 0.0742153
+v -0.0104383 -0.0792039 -0.0742174
+v -0.0104383 0.0792039 -0.0742174
+v 0.0104383 -0.0792039 -0.0742174
+v 0.0104383 0.0792039 -0.0742174
+v 0.0104383 -0.0792039 0.0742174
+v 0.0104383 0.0792039 0.0742174
+v -0.0104383 -0.0792039 0.0742174
+v -0.0104383 0.0792039 0.0742174
+v -0.0401855 -0.0690455 -0.0742237
+v -0.0401855 0.0690455 -0.0742237
+v 0.0401855 -0.0690455 -0.0742237
+v 0.0401855 0.0690455 -0.0742237
+v 0.0401855 -0.0690455 0.0742237
+v 0.0401855 0.0690455 0.0742237
+v -0.0401855 -0.0690455 0.0742237
+v -0.0401855 0.0690455 0.0742237
+v -0.00732301 -0.0795519 -0.0742279
+v -0.00732301 0.0795519 -0.0742279
+v 0.00732301 -0.0795519 -0.0742279
+v 0.00732301 0.0795519 -0.0742279
+v 0.00732301 -0.0795519 0.0742279
+v 0.00732301 0.0795519 0.0742279
+v -0.00732301 -0.0795519 0.0742279
+v -0.00732301 0.0795519 0.0742279
+v -0.0616343 -0.0508196 -0.0743099
+v -0.0616343 0.0508196 -0.0743099
+v 0.0616343 -0.0508196 -0.0743099
+v 0.0616343 0.0508196 -0.0743099
+v 0.0616343 -0.0508196 0.0743099
+v 0.0616343 0.0508196 0.0743099
+v -0.0616343 -0.0508196 0.0743099
+v -0.0616343 0.0508196 0.0743099
+v -0.00362733 -0.0798007 -0.0743229
+v -0.00362733 0.0798007 -0.0743229
+v 0.00362733 -0.0798007 -0.0743229
+v 0.00362733 0.0798007 -0.0743229
+v 0.00362733 -0.0798007 0.0743229
+v 0.00362733 0.0798007 0.0743229
+v -0.00362733 -0.0798007 0.0743229
+v -0.00362733 0.0798007 0.0743229
+v -0.0246101 -0.0759968 -0.0743394
+v -0.0246101 0.0759968 -0.0743394
+v 0.0246101 -0.0759968 -0.0743394
+v 0.0246101 0.0759968 -0.0743394
+v 0.0246101 -0.0759968 0.0743394
+v 0.0246101 0.0759968 0.0743394
+v -0.0246101 -0.0759968 0.0743394
+v -0.0246101 0.0759968 0.0743394
+v -0.0133589 -0.0787572 -0.0743406
+v -0.0133589 0.0787572 -0.0743406
+v 0.0133589 -0.0787572 -0.0743406
+v 0.0133589 0.0787572 -0.0743406
+v 0.0133589 -0.0787572 0.0743406
+v 0.0133589 0.0787572 0.0743406
+v -0.0133589 -0.0787572 0.0743406
+v -0.0133589 0.0787572 0.0743406
+v -0.063385 -0.0486075 -0.0744323
+v -0.063385 0.0486075 -0.0744323
+v 0.063385 -0.0486075 -0.0744323
+v 0.063385 0.0486075 -0.0744323
+v 0.063385 -0.0486075 0.0744323
+v 0.063385 0.0486075 0.0744323
+v -0.063385 -0.0486075 0.0744323
+v -0.063385 0.0486075 0.0744323
+v -0.00347425 -0.0798007 -0.0744468
+v -0.00347425 0.0798007 -0.0744468
+v 0.00347425 -0.0798007 -0.0744468
+v 0.00347425 0.0798007 -0.0744468
+v 0.00347425 -0.0798007 0.0744468
+v 0.00347425 0.0798007 0.0744468
+v -0.00347425 -0.0798007 0.0744468
+v -0.00347425 0.0798007 0.0744468
+v -0.0425839 -0.0675765 -0.0744757
+v -0.0425839 0.0675765 -0.0744757
+v 0.0425839 -0.0675765 -0.0744757
+v 0.0425839 0.0675765 -0.0744757
+v 0.0425839 -0.0675765 0.0744757
+v 0.0425839 0.0675765 0.0744757
+v -0.0425839 -0.0675765 0.0744757
+v -0.0425839 0.0675765 0.0744757
+v -0.007171 -0.0795519 -0.0744809
+v -0.007171 0.0795519 -0.0744809
+v 0.007171 -0.0795519 -0.0744809
+v 0.007171 0.0795519 -0.0744809
+v 0.007171 -0.0795519 0.0744809
+v 0.007171 0.0795519 0.0744809
+v -0.007171 -0.0795519 0.0744809
+v -0.007171 0.0795519 0.0744809
+v -0.0650568 -0.0463348 -0.0745492
+v -0.0650568 0.0463348 -0.0745492
+v 0.0650568 -0.0463348 -0.0745492
+v 0.0650568 0.0463348 -0.0745492
+v 0.0650568 -0.0463348 0.0745492
+v 0.0650568 0.0463348 0.0745492
+v -0.0650568 -0.0463348 0.0745492
+v -0.0650568 0.0463348 0.0745492
+v -0.00331694 -0.0798007 -0.0745654
+v -0.00331694 0.0798007 -0.0745654
+v 0.00331694 -0.0798007 -0.0745654
+v 0.00331694 0.0798007 -0.0745654
+v 0.00331694 -0.0798007 0.0745654
+v 0.00331694 0.0798007 0.0745654
+v -0.00331694 -0.0798007 0.0745654
+v -0.00331694 0.0798007 0.0745654
+v -0.0325625 -0.0729297 -0.0745764
+v -0.0325625 0.0729297 -0.0745764
+v 0.0325625 -0.0729297 -0.0745764
+v 0.0325625 0.0729297 -0.0745764
+v 0.0325625 -0.0729297 0.0745764
+v 0.0325625 0.0729297 0.0745764
+v -0.0325625 -0.0729297 0.0745764
+v -0.0325625 0.0729297 0.0745764
+v -0.0102848 -0.0792039 -0.0745791
+v -0.0102848 0.0792039 -0.0745791
+v 0.0102848 -0.0792039 -0.0745791
+v 0.0102848 0.0792039 -0.0745791
+v 0.0102848 -0.0792039 0.0745791
+v 0.0102848 0.0792039 0.0745791
+v -0.0102848 -0.0792039 0.0745791
+v -0.0102848 0.0792039 0.0745791
+v -0.021805 -0.0768314 -0.0746348
+v -0.021805 0.0768314 -0.0746348
+v 0.021805 -0.0768314 -0.0746348
+v 0.021805 0.0768314 -0.0746348
+v 0.021805 -0.0768314 0.0746348
+v 0.021805 0.0768314 0.0746348
+v -0.021805 -0.0768314 0.0746348
+v -0.021805 0.0768314 0.0746348
+v -0.0161656 -0.0782124 -0.0746354
+v -0.0161656 0.0782124 -0.0746354
+v 0.0161656 -0.0782124 -0.0746354
+v 0.0161656 0.0782124 -0.0746354
+v 0.0161656 -0.0782124 0.0746354
+v 0.0161656 0.0782124 0.0746354
+v -0.0161656 -0.0782124 0.0746354
+v -0.0161656 0.0782124 0.0746354
+v -0.0666475 -0.0440044 -0.0746605
+v -0.0666475 0.0440044 -0.0746605
+v 0.0666475 -0.0440044 -0.0746605
+v 0.0666475 0.0440044 -0.0746605
+v 0.0666475 -0.0440044 0.0746605
+v 0.0666475 0.0440044 0.0746605
+v -0.0666475 -0.0440044 0.0746605
+v -0.0666475 0.0440044 0.0746605
+v -0.00315559 -0.0798007 -0.0746784
+v -0.00315559 0.0798007 -0.0746784
+v 0.00315559 -0.0798007 -0.0746784
+v 0.00315559 0.0798007 -0.0746784
+v 0.00315559 -0.0798007 0.0746784
+v 0.00315559 0.0798007 0.0746784
+v -0.00315559 -0.0798007 0.0746784
+v -0.00315559 0.0798007 0.0746784
+v -0.0449292 -0.0660233 -0.0747222
+v -0.0449292 0.0660233 -0.0747222
+v 0.0449292 -0.0660233 -0.0747222
+v 0.0449292 0.0660233 -0.0747222
+v 0.0449292 -0.0660233 0.0747222
+v 0.0449292 0.0660233 0.0747222
+v -0.0449292 -0.0660233 0.0747222
+v -0.0449292 0.0660233 0.0747222
+v -0.00701025 -0.0795519 -0.0747285
+v -0.00701025 0.0795519 -0.0747285
+v 0.00701025 -0.0795519 -0.0747285
+v 0.00701025 0.0795519 -0.0747285
+v 0.00701025 -0.0795519 0.0747285
+v 0.00701025 0.0795519 0.0747285
+v -0.00701025 -0.0795519 0.0747285
+v -0.00701025 0.0795519 0.0747285
+v -0.0189856 -0.0775702 -0.0747336
+v -0.0189856 0.0775702 -0.0747336
+v 0.0189856 -0.0775702 -0.0747336
+v 0.0189856 0.0775702 -0.0747336
+v 0.0189856 -0.0775702 0.0747336
+v 0.0189856 0.0775702 0.0747336
+v -0.0189856 -0.0775702 0.0747336
+v -0.0189856 0.0775702 0.0747336
+v -0.0681552 -0.0416192 -0.0747659
+v -0.0681552 0.0416192 -0.0747659
+v 0.0681552 -0.0416192 -0.0747659
+v 0.0681552 0.0416192 -0.0747659
+v 0.0681552 -0.0416192 0.0747659
+v 0.0681552 0.0416192 0.0747659
+v -0.0681552 -0.0416192 0.0747659
+v -0.0681552 0.0416192 0.0747659
+v -0.0029904 -0.0798007 -0.0747856
+v -0.0029904 0.0798007 -0.0747856
+v 0.0029904 -0.0798007 -0.0747856
+v 0.0029904 0.0798007 -0.0747856
+v 0.0029904 -0.0798007 0.0747856
+v 0.0029904 0.0798007 0.0747856
+v -0.0029904 -0.0798007 0.0747856
+v -0.0029904 0.0798007 0.0747856
+v -0.0272361 -0.0750675 -0.0748025
+v -0.0272361 0.0750675 -0.0748025
+v 0.0272361 -0.0750675 -0.0748025
+v 0.0272361 0.0750675 -0.0748025
+v 0.0272361 -0.0750675 0.0748025
+v 0.0272361 0.0750675 0.0748025
+v -0.0272361 -0.0750675 0.0748025
+v -0.0272361 0.0750675 0.0748025
+v -0.0131992 -0.0787572 -0.0748041
+v -0.0131992 0.0787572 -0.0748041
+v 0.0131992 -0.0787572 -0.0748041
+v 0.0131992 0.0787572 -0.0748041
+v 0.0131992 -0.0787572 0.0748041
+v 0.0131992 0.0787572 0.0748041
+v -0.0131992 -0.0787572 0.0748041
+v -0.0131992 0.0787572 0.0748041
+v -0.069578 -0.0391821 -0.0748654
+v -0.069578 0.0391821 -0.0748654
+v 0.069578 -0.0391821 -0.0748654
+v 0.069578 0.0391821 -0.0748654
+v 0.069578 -0.0391821 0.0748654
+v 0.069578 0.0391821 0.0748654
+v -0.069578 -0.0391821 0.0748654
+v -0.069578 0.0391821 0.0748654
+v -0.00282156 -0.0798007 -0.0748871
+v -0.00282156 0.0798007 -0.0748871
+v 0.00282156 -0.0798007 -0.0748871
+v 0.00282156 0.0798007 -0.0748871
+v 0.00282156 -0.0798007 0.0748871
+v 0.00282156 0.0798007 0.0748871
+v -0.00282156 -0.0798007 0.0748871
+v -0.00282156 0.0798007 0.0748871
+v -0.035091 -0.0717238 -0.0749317
+v -0.035091 0.0717238 -0.0749317
+v 0.035091 -0.0717238 -0.0749317
+v 0.035091 0.0717238 -0.0749317
+v 0.035091 -0.0717238 0.0749317
+v 0.035091 0.0717238 0.0749317
+v -0.035091 -0.0717238 0.0749317
+v -0.035091 0.0717238 0.0749317
+v -0.0101187 -0.0792039 -0.0749352
+v -0.0101187 0.0792039 -0.0749352
+v 0.0101187 -0.0792039 -0.0749352
+v 0.0101187 0.0792039 -0.0749352
+v 0.0101187 -0.0792039 0.0749352
+v 0.0101187 0.0792039 0.0749352
+v -0.0101187 -0.0792039 0.0749352
+v -0.0101187 0.0792039 0.0749352
+v -0.0709141 -0.0366961 -0.0749588
+v -0.0709141 0.0366961 -0.0749588
+v 0.0709141 -0.0366961 -0.0749588
+v 0.0709141 0.0366961 -0.0749588
+v 0.0709141 -0.0366961 0.0749588
+v 0.0709141 0.0366961 0.0749588
+v -0.0709141 -0.0366961 0.0749588
+v -0.0709141 0.0366961 0.0749588
+v -0.0472185 -0.0643878 -0.0749629
+v -0.0472185 0.0643878 -0.0749629
+v 0.0472185 -0.0643878 -0.0749629
+v 0.0472185 0.0643878 -0.0749629
+v 0.0472185 -0.0643878 0.0749629
+v 0.0472185 0.0643878 0.0749629
+v -0.0472185 -0.0643878 0.0749629
+v -0.0472185 0.0643878 0.0749629
+v -0.00684096 -0.0795519 -0.0749702
+v -0.00684096 0.0795519 -0.0749702
+v 0.00684096 -0.0795519 -0.0749702
+v 0.00684096 0.0795519 -0.0749702
+v 0.00684096 -0.0795519 0.0749702
+v 0.00684096 0.0795519 0.0749702
+v -0.00684096 -0.0795519 0.0749702
+v -0.00684096 0.0795519 0.0749702
+v -0.00264928 -0.0798007 -0.0749826
+v -0.00264928 0.0798007 -0.0749826
+v 0.00264928 -0.0798007 -0.0749826
+v 0.00264928 0.0798007 -0.0749826
+v 0.00264928 -0.0798007 0.0749826
+v 0.00264928 0.0798007 0.0749826
+v -0.00264928 -0.0798007 0.0749826
+v -0.00264928 0.0798007 0.0749826
+v -0.0721618 -0.0341645 -0.075046
+v -0.0721618 0.0341645 -0.075046
+v 0.0721618 -0.0341645 -0.075046
+v 0.0721618 0.0341645 -0.075046
+v 0.0721618 -0.0341645 0.075046
+v 0.0721618 0.0341645 0.075046
+v -0.0721618 -0.0341645 0.075046
+v -0.0721618 0.0341645 0.075046
+v -0.00247378 -0.0798007 -0.075072
+v -0.00247378 0.0798007 -0.075072
+v 0.00247378 -0.0798007 -0.075072
+v 0.00247378 0.0798007 -0.075072
+v 0.00247378 -0.0798007 0.075072
+v 0.00247378 0.0798007 0.075072
+v -0.00247378 -0.0798007 0.075072
+v -0.00247378 0.0798007 0.075072
+v -0.0733196 -0.0315903 -0.075127
+v -0.0733196 0.0315903 -0.075127
+v 0.0733196 -0.0315903 -0.075127
+v 0.0733196 0.0315903 -0.075127
+v 0.0733196 -0.0315903 0.075127
+v 0.0733196 0.0315903 0.075127
+v -0.0733196 -0.0315903 0.075127
+v -0.0733196 0.0315903 0.075127
+v -0.00229526 -0.0798007 -0.0751552
+v -0.00229526 0.0798007 -0.0751552
+v 0.00229526 -0.0798007 -0.0751552
+v 0.00229526 0.0798007 -0.0751552
+v 0.00229526 -0.0798007 0.0751552
+v 0.00229526 0.0798007 0.0751552
+v -0.00229526 -0.0798007 0.0751552
+v -0.00229526 0.0798007 0.0751552
+v -0.0244437 -0.0759968 -0.0751957
+v -0.0244437 0.0759968 -0.0751957
+v 0.0244437 -0.0759968 -0.0751957
+v 0.0244437 0.0759968 -0.0751957
+v 0.0244437 -0.0759968 0.0751957
+v 0.0244437 0.0759968 0.0751957
+v -0.0244437 -0.0759968 0.0751957
+v -0.0244437 0.0759968 0.0751957
+v -0.015994 -0.0782124 -0.0751968
+v -0.015994 0.0782124 -0.0751968
+v 0.015994 -0.0782124 -0.0751968
+v 0.015994 0.0782124 -0.0751968
+v 0.015994 -0.0782124 0.0751968
+v 0.015994 0.0782124 0.0751968
+v -0.015994 -0.0782124 0.0751968
+v -0.015994 0.0782124 0.0751968
+v -0.0494489 -0.0626721 -0.0751973
+v -0.0494489 0.0626721 -0.0751973
+v 0.0494489 -0.0626721 -0.0751973
+v 0.0494489 0.0626721 -0.0751973
+v 0.0494489 -0.0626721 0.0751973
+v 0.0494489 0.0626721 0.0751973
+v -0.0494489 -0.0626721 0.0751973
+v -0.0494489 0.0626721 0.0751973
+v -0.0743861 -0.0289768 -0.0752016
+v -0.0743861 0.0289768 -0.0752016
+v 0.0743861 -0.0289768 -0.0752016
+v 0.0743861 0.0289768 -0.0752016
+v 0.0743861 -0.0289768 0.0752016
+v 0.0743861 0.0289768 0.0752016
+v -0.0743861 -0.0289768 0.0752016
+v -0.0743861 0.0289768 0.0752016
+v -0.00666333 -0.0795519 -0.075206
+v -0.00666333 0.0795519 -0.075206
+v 0.00666333 -0.0795519 -0.075206
+v 0.00666333 0.0795519 -0.075206
+v 0.00666333 -0.0795519 0.075206
+v 0.00666333 0.0795519 0.075206
+v -0.00666333 -0.0795519 0.075206
+v -0.00666333 0.0795519 0.075206
+v -0.00211395 -0.0798007 -0.0752322
+v -0.00211395 0.0798007 -0.0752322
+v 0.00211395 -0.0798007 -0.0752322
+v 0.00211395 0.0798007 -0.0752322
+v 0.00211395 -0.0798007 0.0752322
+v 0.00211395 0.0798007 0.0752322
+v -0.00211395 -0.0798007 0.0752322
+v -0.00211395 0.0798007 0.0752322
+v -0.0298281 -0.0740447 -0.0752595
+v -0.0298281 0.0740447 -0.0752595
+v 0.0298281 -0.0740447 -0.0752595
+v 0.0298281 0.0740447 -0.0752595
+v 0.0298281 -0.0740447 0.0752595
+v 0.0298281 0.0740447 0.0752595
+v -0.0298281 -0.0740447 0.0752595
+v -0.0298281 0.0740447 0.0752595
+v -0.0130235 -0.0787572 -0.0752618
+v -0.0130235 0.0787572 -0.0752618
+v 0.0130235 -0.0787572 -0.0752618
+v 0.0130235 0.0787572 -0.0752618
+v 0.0130235 -0.0787572 0.0752618
+v 0.0130235 0.0787572 0.0752618
+v -0.0130235 -0.0787572 0.0752618
+v -0.0130235 0.0787572 0.0752618
+v -0.0753599 -0.0263271 -0.0752697
+v -0.0753599 0.0263271 -0.0752697
+v 0.0753599 -0.0263271 -0.0752697
+v 0.0753599 0.0263271 -0.0752697
+v 0.0753599 -0.0263271 0.0752697
+v 0.0753599 0.0263271 0.0752697
+v -0.0753599 -0.0263271 0.0752697
+v -0.0753599 0.0263271 0.0752697
+v -0.0375757 -0.0704285 -0.0752809
+v -0.0375757 0.0704285 -0.0752809
+v 0.0375757 -0.0704285 -0.0752809
+v 0.0375757 0.0704285 -0.0752809
+v 0.0375757 -0.0704285 0.0752809
+v 0.0375757 0.0704285 0.0752809
+v -0.0375757 -0.0704285 0.0752809
+v -0.0375757 0.0704285 0.0752809
+v -0.00994033 -0.0792039 -0.0752854
+v -0.00994033 0.0792039 -0.0752854
+v 0.00994033 -0.0792039 -0.0752854
+v 0.00994033 0.0792039 -0.0752854
+v 0.00994033 -0.0792039 0.0752854
+v 0.00994033 0.0792039 0.0752854
+v -0.00994033 -0.0792039 0.0752854
+v -0.00994033 0.0792039 0.0752854
+v -0.00193006 -0.0798007 -0.0753028
+v -0.00193006 0.0798007 -0.0753028
+v 0.00193006 -0.0798007 -0.0753028
+v 0.00193006 0.0798007 -0.0753028
+v 0.00193006 -0.0798007 0.0753028
+v 0.00193006 0.0798007 0.0753028
+v -0.00193006 -0.0798007 0.0753028
+v -0.00193006 0.0798007 0.0753028
+v -0.0762398 -0.0236447 -0.0753312
+v -0.0762398 0.0236447 -0.0753312
+v 0.0762398 -0.0236447 -0.0753312
+v 0.0762398 0.0236447 -0.0753312
+v 0.0762398 -0.0236447 0.0753312
+v 0.0762398 0.0236447 0.0753312
+v -0.0762398 -0.0236447 0.0753312
+v -0.0762398 0.0236447 0.0753312
+v -0.00174382 -0.0798007 -0.0753669
+v -0.00174382 0.0798007 -0.0753669
+v 0.00174382 -0.0798007 -0.0753669
+v 0.00174382 0.0798007 -0.0753669
+v 0.00174382 -0.0798007 0.0753669
+v 0.00174382 0.0798007 0.0753669
+v -0.00174382 -0.0798007 0.0753669
+v -0.00174382 0.0798007 0.0753669
+v -0.0770247 -0.0209327 -0.0753861
+v -0.0770247 0.0209327 -0.0753861
+v 0.0770247 -0.0209327 -0.0753861
+v 0.0770247 0.0209327 -0.0753861
+v 0.0770247 -0.0209327 0.0753861
+v 0.0770247 0.0209327 0.0753861
+v -0.0770247 -0.0209327 0.0753861
+v -0.0770247 0.0209327 0.0753861
+v -0.02163 -0.0768314 -0.075393
+v -0.02163 0.0768314 -0.075393
+v 0.02163 -0.0768314 -0.075393
+v 0.02163 0.0768314 -0.075393
+v 0.02163 -0.0768314 0.075393
+v 0.02163 0.0768314 0.075393
+v -0.02163 -0.0768314 0.075393
+v -0.02163 0.0768314 0.075393
+v -0.0188088 -0.0775702 -0.0753933
+v -0.0188088 0.0775702 -0.0753933
+v 0.0188088 -0.0775702 -0.0753933
+v 0.0188088 0.0775702 -0.0753933
+v 0.0188088 -0.0775702 0.0753933
+v 0.0188088 0.0775702 0.0753933
+v -0.0188088 -0.0775702 0.0753933
+v -0.0188088 0.0775702 0.0753933
+v -0.00155545 -0.0798007 -0.0754245
+v -0.00155545 0.0798007 -0.0754245
+v 0.00155545 -0.0798007 -0.0754245
+v 0.00155545 0.0798007 -0.0754245
+v 0.00155545 -0.0798007 0.0754245
+v 0.00155545 0.0798007 0.0754245
+v -0.00155545 -0.0798007 0.0754245
+v -0.00155545 0.0798007 0.0754245
+v -0.0516178 -0.0608783 -0.0754253
+v -0.0516178 0.0608783 -0.0754253
+v 0.0516178 -0.0608783 -0.0754253
+v 0.0516178 0.0608783 -0.0754253
+v 0.0516178 -0.0608783 0.0754253
+v 0.0516178 0.0608783 0.0754253
+v -0.0516178 -0.0608783 0.0754253
+v -0.0516178 0.0608783 0.0754253
+v -0.0777137 -0.0181947 -0.0754343
+v -0.0777137 0.0181947 -0.0754343
+v 0.0777137 -0.0181947 -0.0754343
+v 0.0777137 0.0181947 -0.0754343
+v 0.0777137 -0.0181947 0.0754343
+v 0.0777137 0.0181947 0.0754343
+v -0.0777137 -0.0181947 0.0754343
+v -0.0777137 0.0181947 0.0754343
+v -0.00647758 -0.0795519 -0.0754353
+v -0.00647758 0.0795519 -0.0754353
+v 0.00647758 -0.0795519 -0.0754353
+v 0.00647758 0.0795519 -0.0754353
+v 0.00647758 -0.0795519 0.0754353
+v 0.00647758 0.0795519 0.0754353
+v -0.00647758 -0.0795519 0.0754353
+v -0.00647758 0.0795519 0.0754353
+v -0.00136519 -0.0798007 -0.0754755
+v -0.00136519 0.0798007 -0.0754755
+v 0.00136519 -0.0798007 -0.0754755
+v 0.00136519 0.0798007 -0.0754755
+v 0.00136519 -0.0798007 0.0754755
+v 0.00136519 0.0798007 0.0754755
+v -0.00136519 -0.0798007 0.0754755
+v -0.00136519 0.0798007 0.0754755
+v -0.0783058 -0.0154341 -0.0754757
+v -0.0783058 0.0154341 -0.0754757
+v 0.0783058 -0.0154341 -0.0754757
+v 0.0783058 0.0154341 -0.0754757
+v 0.0783058 -0.0154341 0.0754757
+v 0.0783058 0.0154341 0.0754757
+v -0.0783058 -0.0154341 0.0754757
+v -0.0783058 0.0154341 0.0754757
+v -0.0788004 -0.0126542 -0.0755103
+v -0.0788004 0.0126542 -0.0755103
+v 0.0788004 -0.0126542 -0.0755103
+v 0.0788004 0.0126542 -0.0755103
+v 0.0788004 -0.0126542 0.0755103
+v 0.0788004 0.0126542 0.0755103
+v -0.0788004 -0.0126542 0.0755103
+v -0.0788004 0.0126542 0.0755103
+v -0.00117327 -0.0798007 -0.0755198
+v -0.00117327 0.0798007 -0.0755198
+v 0.00117327 -0.0798007 -0.0755198
+v 0.00117327 0.0798007 -0.0755198
+v 0.00117327 -0.0798007 0.0755198
+v 0.00117327 0.0798007 0.0755198
+v -0.00117327 -0.0798007 0.0755198
+v -0.00117327 0.0798007 0.0755198
+v -0.0791968 -0.00985854 -0.075538
+v -0.0791968 0.00985854 -0.075538
+v 0.0791968 -0.00985854 -0.075538
+v 0.0791968 0.00985854 -0.075538
+v 0.0791968 -0.00985854 0.075538
+v 0.0791968 0.00985854 0.075538
+v -0.0791968 -0.00985854 0.075538
+v -0.0791968 0.00985854 0.075538
+v -0.000979917 -0.0798007 -0.0755574
+v -0.000979917 0.0798007 -0.0755574
+v 0.000979917 -0.0798007 -0.0755574
+v 0.000979917 0.0798007 -0.0755574
+v 0.000979917 -0.0798007 0.0755574
+v 0.000979917 0.0798007 0.0755574
+v -0.000979917 -0.0798007 0.0755574
+v -0.000979917 0.0798007 0.0755574
+v -0.0794946 -0.0070506 -0.0755588
+v -0.0794946 0.0070506 -0.0755588
+v 0.0794946 -0.0070506 -0.0755588
+v 0.0794946 0.0070506 -0.0755588
+v 0.0794946 -0.0070506 0.0755588
+v 0.0794946 0.0070506 0.0755588
+v -0.0794946 -0.0070506 0.0755588
+v -0.0794946 0.0070506 0.0755588
+v -0.0796933 -0.00423388 -0.0755727
+v -0.0796933 0.00423388 -0.0755727
+v 0.0796933 -0.00423388 -0.0755727
+v 0.0796933 0.00423388 -0.0755727
+v 0.0796933 -0.00423388 0.0755727
+v 0.0796933 0.00423388 0.0755727
+v -0.0796933 -0.00423388 0.0755727
+v -0.0796933 0.00423388 0.0755727
+v -0.0797927 -0.00141188 -0.0755797
+v -0.0797927 0.00141188 -0.0755797
+v 0.0797927 -0.00141188 -0.0755797
+v 0.0797927 0.00141188 -0.0755797
+v 0.0797927 -0.00141188 0.0755797
+v 0.0797927 0.00141188 0.0755797
+v -0.0797927 -0.00141188 0.0755797
+v -0.0797927 0.00141188 0.0755797
+v -0.00078537 -0.0798007 -0.0755882
+v -0.00078537 0.0798007 -0.0755882
+v 0.00078537 -0.0798007 -0.0755882
+v 0.00078537 0.0798007 -0.0755882
+v 0.00078537 -0.0798007 0.0755882
+v 0.00078537 0.0798007 0.0755882
+v -0.00078537 -0.0798007 0.0755882
+v -0.00078537 0.0798007 0.0755882
+v -0.000589866 -0.0798007 -0.0756122
+v -0.000589866 0.0798007 -0.0756122
+v 0.000589866 -0.0798007 -0.0756122
+v 0.000589866 0.0798007 -0.0756122
+v 0.000589866 -0.0798007 0.0756122
+v 0.000589866 0.0798007 0.0756122
+v -0.000589866 -0.0798007 0.0756122
+v -0.000589866 0.0798007 0.0756122
+v -0.0400137 -0.0690455 -0.0756236
+v -0.0400137 0.0690455 -0.0756236
+v 0.0400137 -0.0690455 -0.0756236
+v 0.0400137 0.0690455 -0.0756236
+v 0.0400137 -0.0690455 0.0756236
+v 0.0400137 0.0690455 0.0756236
+v -0.0400137 -0.0690455 0.0756236
+v -0.0400137 0.0690455 0.0756236
+v -0.00974982 -0.0792039 -0.0756291
+v -0.00974982 0.0792039 -0.0756291
+v 0.00974982 -0.0792039 -0.0756291
+v 0.00974982 0.0792039 -0.0756291
+v 0.00974982 -0.0792039 0.0756291
+v 0.00974982 0.0792039 0.0756291
+v -0.00974982 -0.0792039 0.0756291
+v -0.00974982 0.0792039 0.0756291
+v -0.000393644 -0.0798007 -0.0756294
+v -0.000393644 0.0798007 -0.0756294
+v 0.000393644 -0.0798007 -0.0756294
+v 0.000393644 0.0798007 -0.0756294
+v 0.000393644 -0.0798007 0.0756294
+v 0.000393644 0.0798007 0.0756294
+v -0.000393644 -0.0798007 0.0756294
+v -0.000393644 0.0798007 0.0756294
+v -0.000196942 -0.0798007 -0.0756397
+v -0.000196942 0.0798007 -0.0756397
+v 0.000196942 -0.0798007 -0.0756397
+v 0.000196942 0.0798007 -0.0756397
+v 0.000196942 -0.0798007 0.0756397
+v 0.000196942 0.0798007 0.0756397
+v -0.000196942 -0.0798007 0.0756397
+v -0.000196942 0.0798007 0.0756397
+v -1.03662e-18 -0.0798007 -0.0756431
+v -1.03662e-18 0.0798007 -0.0756431
+v 3.45541e-19 -0.0798007 0.0756431
+v 3.45541e-19 0.0798007 0.0756431
+v -0.0537224 -0.0590087 -0.0756465
+v -0.0537224 0.0590087 -0.0756465
+v 0.0537224 -0.0590087 -0.0756465
+v 0.0537224 0.0590087 -0.0756465
+v 0.0537224 -0.0590087 0.0756465
+v 0.0537224 0.0590087 0.0756465
+v -0.0537224 -0.0590087 0.0756465
+v -0.0537224 0.0590087 0.0756465
+v -0.00628395 -0.0795519 -0.0756581
+v -0.00628395 0.0795519 -0.0756581
+v 0.00628395 -0.0795519 -0.0756581
+v 0.00628395 0.0795519 -0.0756581
+v 0.00628395 -0.0795519 0.0756581
+v 0.00628395 0.0795519 0.0756581
+v -0.00628395 -0.0795519 0.0756581
+v -0.00628395 0.0795519 0.0756581
+v -0.032383 -0.0729297 -0.07571
+v -0.032383 0.0729297 -0.07571
+v 0.032383 -0.0729297 -0.07571
+v 0.032383 0.0729297 -0.07571
+v 0.032383 -0.0729297 0.07571
+v 0.032383 0.0729297 0.07571
+v -0.032383 -0.0729297 0.07571
+v -0.032383 0.0729297 0.07571
+v -0.012832 -0.0787572 -0.0757132
+v -0.012832 0.0787572 -0.0757132
+v 0.012832 -0.0787572 -0.0757132
+v 0.012832 0.0787572 -0.0757132
+v 0.012832 -0.0787572 0.0757132
+v 0.012832 0.0787572 0.0757132
+v -0.012832 -0.0787572 0.0757132
+v -0.012832 0.0787572 0.0757132
+v -0.0270519 -0.0750675 -0.0757501
+v -0.0270519 0.0750675 -0.0757501
+v 0.0270519 -0.0750675 -0.0757501
+v 0.0270519 0.0750675 -0.0757501
+v 0.0270519 -0.0750675 0.0757501
+v 0.0270519 0.0750675 0.0757501
+v -0.0270519 -0.0750675 0.0757501
+v -0.0270519 0.0750675 0.0757501
+v -0.0158028 -0.0782124 -0.0757518
+v -0.0158028 0.0782124 -0.0757518
+v 0.0158028 -0.0782124 -0.0757518
+v 0.0158028 0.0782124 -0.0757518
+v 0.0158028 -0.0782124 0.0757518
+v 0.0158028 0.0782124 0.0757518
+v -0.0158028 -0.0782124 0.0757518
+v -0.0158028 0.0782124 0.0757518
+v -0.05576 -0.0570655 -0.0758606
+v -0.05576 0.0570655 -0.0758606
+v 0.05576 -0.0570655 -0.0758606
+v 0.05576 0.0570655 -0.0758606
+v 0.05576 -0.0570655 0.0758606
+v 0.05576 0.0570655 0.0758606
+v -0.05576 -0.0570655 0.0758606
+v -0.05576 0.0570655 0.0758606
+v -0.00608265 -0.0795519 -0.0758739
+v -0.00608265 0.0795519 -0.0758739
+v 0.00608265 -0.0795519 -0.0758739
+v 0.00608265 0.0795519 -0.0758739
+v 0.00608265 -0.0795519 0.0758739
+v 0.00608265 0.0795519 0.0758739
+v -0.00608265 -0.0795519 0.0758739
+v -0.00608265 0.0795519 0.0758739
+v -0.0424017 -0.0675765 -0.0759592
+v -0.0424017 0.0675765 -0.0759592
+v 0.0424017 -0.0675765 -0.0759592
+v 0.0424017 0.0675765 -0.0759592
+v 0.0424017 -0.0675765 0.0759592
+v 0.0424017 0.0675765 0.0759592
+v -0.0424017 -0.0675765 0.0759592
+v -0.0424017 0.0675765 0.0759592
+v -0.00954743 -0.0792039 -0.0759659
+v -0.00954743 0.0792039 -0.0759659
+v 0.00954743 -0.0792039 -0.0759659
+v 0.00954743 0.0792039 -0.0759659
+v 0.00954743 -0.0792039 0.0759659
+v 0.00954743 0.0792039 0.0759659
+v -0.00954743 -0.0792039 0.0759659
+v -0.00954743 0.0792039 0.0759659
+v -0.0242475 -0.0759968 -0.0760456
+v -0.0242475 0.0759968 -0.0760456
+v 0.0242475 -0.0759968 -0.0760456
+v 0.0242475 0.0759968 -0.0760456
+v 0.0242475 -0.0759968 0.0760456
+v 0.0242475 0.0759968 0.0760456
+v -0.0242475 -0.0759968 0.0760456
+v -0.0242475 0.0759968 0.0760456
+v -0.0186091 -0.0775702 -0.0760465
+v -0.0186091 0.0775702 -0.0760465
+v 0.0186091 -0.0775702 -0.0760465
+v 0.0186091 0.0775702 -0.0760465
+v 0.0186091 -0.0775702 0.0760465
+v 0.0186091 0.0775702 0.0760465
+v -0.0186091 -0.0775702 0.0760465
+v -0.0186091 0.0775702 0.0760465
+v -0.0577282 -0.0550513 -0.0760675
+v -0.0577282 0.0550513 -0.0760675
+v 0.0577282 -0.0550513 -0.0760675
+v 0.0577282 0.0550513 -0.0760675
+v 0.0577282 -0.0550513 0.0760675
+v 0.0577282 0.0550513 0.0760675
+v -0.0577282 -0.0550513 0.0760675
+v -0.0577282 0.0550513 0.0760675
+v -0.00587395 -0.0795519 -0.0760827
+v -0.00587395 0.0795519 -0.0760827
+v 0.00587395 -0.0795519 -0.0760827
+v 0.00587395 0.0795519 -0.0760827
+v 0.00587395 -0.0795519 0.0760827
+v 0.00587395 0.0795519 0.0760827
+v -0.00587395 -0.0795519 0.0760827
+v -0.00587395 0.0795519 0.0760827
+v -0.0214286 -0.0768314 -0.0761446
+v -0.0214286 0.0768314 -0.0761446
+v 0.0214286 -0.0768314 -0.0761446
+v 0.0214286 0.0768314 -0.0761446
+v 0.0214286 -0.0768314 0.0761446
+v 0.0214286 0.0768314 0.0761446
+v -0.0214286 -0.0768314 0.0761446
+v -0.0214286 0.0768314 0.0761446
+v -0.0348975 -0.0717238 -0.0761534
+v -0.0348975 0.0717238 -0.0761534
+v 0.0348975 -0.0717238 -0.0761534
+v 0.0348975 0.0717238 -0.0761534
+v 0.0348975 -0.0717238 0.0761534
+v 0.0348975 0.0717238 0.0761534
+v -0.0348975 -0.0717238 0.0761534
+v -0.0348975 0.0717238 0.0761534
+v -0.0126248 -0.0787572 -0.0761575
+v -0.0126248 0.0787572 -0.0761575
+v 0.0126248 -0.0787572 -0.0761575
+v 0.0126248 0.0787572 -0.0761575
+v 0.0126248 -0.0787572 0.0761575
+v 0.0126248 0.0787572 0.0761575
+v -0.0126248 -0.0787572 0.0761575
+v -0.0126248 0.0787572 0.0761575
+v -0.0596244 -0.0529685 -0.0762668
+v -0.0596244 0.0529685 -0.0762668
+v 0.0596244 -0.0529685 -0.0762668
+v 0.0596244 0.0529685 -0.0762668
+v 0.0596244 -0.0529685 0.0762668
+v 0.0596244 0.0529685 0.0762668
+v -0.0596244 -0.0529685 0.0762668
+v -0.0596244 0.0529685 0.0762668
+v -0.00565809 -0.0795519 -0.0762839
+v -0.00565809 0.0795519 -0.0762839
+v 0.00565809 -0.0795519 -0.0762839
+v 0.00565809 0.0795519 -0.0762839
+v 0.00565809 -0.0795519 0.0762839
+v 0.00565809 0.0795519 0.0762839
+v -0.00565809 -0.0795519 0.0762839
+v -0.00565809 0.0795519 0.0762839
+v -0.044737 -0.0660233 -0.0762874
+v -0.044737 0.0660233 -0.0762874
+v 0.044737 -0.0660233 -0.0762874
+v 0.044737 0.0660233 -0.0762874
+v 0.044737 -0.0660233 0.0762874
+v 0.044737 0.0660233 0.0762874
+v -0.044737 -0.0660233 0.0762874
+v -0.044737 0.0660233 0.0762874
+v -0.0093334 -0.0792039 -0.0762955
+v -0.0093334 0.0792039 -0.0762955
+v 0.0093334 -0.0792039 -0.0762955
+v 0.0093334 0.0792039 -0.0762955
+v 0.0093334 -0.0792039 0.0762955
+v 0.0093334 0.0792039 0.0762955
+v -0.0093334 -0.0792039 0.0762955
+v -0.0093334 0.0792039 0.0762955
+v -0.0296264 -0.0740447 -0.0762973
+v -0.0296264 0.0740447 -0.0762973
+v 0.0296264 -0.0740447 -0.0762973
+v 0.0296264 0.0740447 -0.0762973
+v 0.0296264 -0.0740447 0.0762973
+v 0.0296264 0.0740447 0.0762973
+v -0.0296264 -0.0740447 0.0762973
+v -0.0296264 0.0740447 0.0762973
+v -0.0155925 -0.0782124 -0.0762998
+v -0.0155925 0.0782124 -0.0762998
+v 0.0155925 -0.0782124 -0.0762998
+v 0.0155925 0.0782124 -0.0762998
+v 0.0155925 -0.0782124 0.0762998
+v 0.0155925 0.0782124 0.0762998
+v -0.0155925 -0.0782124 0.0762998
+v -0.0155925 0.0782124 0.0762998
+v -0.0614464 -0.0508196 -0.0764583
+v -0.0614464 0.0508196 -0.0764583
+v 0.0614464 -0.0508196 -0.0764583
+v 0.0614464 0.0508196 -0.0764583
+v 0.0614464 -0.0508196 0.0764583
+v 0.0614464 0.0508196 0.0764583
+v -0.0614464 -0.0508196 0.0764583
+v -0.0614464 0.0508196 0.0764583
+v -0.00543534 -0.0795519 -0.0764776
+v -0.00543534 0.0795519 -0.0764776
+v 0.00543534 -0.0795519 -0.0764776
+v 0.00543534 0.0795519 -0.0764776
+v 0.00543534 -0.0795519 0.0764776
+v 0.00543534 0.0795519 0.0764776
+v -0.00543534 -0.0795519 0.0764776
+v -0.00543534 0.0795519 0.0764776
+v -0.0373685 -0.0704285 -0.0765891
+v -0.0373685 0.0704285 -0.0765891
+v 0.0373685 -0.0704285 -0.0765891
+v 0.0373685 0.0704285 -0.0765891
+v 0.0373685 -0.0704285 0.0765891
+v 0.0373685 0.0704285 0.0765891
+v -0.0373685 -0.0704285 0.0765891
+v -0.0373685 0.0704285 0.0765891
+v -0.0124022 -0.0787572 -0.0765944
+v -0.0124022 0.0787572 -0.0765944
+v 0.0124022 -0.0787572 -0.0765944
+v 0.0124022 0.0787572 -0.0765944
+v 0.0124022 -0.0787572 0.0765944
+v 0.0124022 0.0787572 0.0765944
+v -0.0124022 -0.0787572 0.0765944
+v -0.0124022 0.0787572 0.0765944
+v -0.0470165 -0.0643878 -0.0766077
+v -0.0470165 0.0643878 -0.0766077
+v 0.0470165 -0.0643878 -0.0766077
+v 0.0470165 0.0643878 -0.0766077
+v 0.0470165 -0.0643878 0.0766077
+v 0.0470165 0.0643878 0.0766077
+v -0.0470165 -0.0643878 0.0766077
+v -0.0470165 0.0643878 0.0766077
+v -0.00910801 -0.0792039 -0.0766174
+v -0.00910801 0.0792039 -0.0766174
+v 0.00910801 -0.0792039 -0.0766174
+v 0.00910801 0.0792039 -0.0766174
+v 0.00910801 -0.0792039 0.0766174
+v 0.00910801 0.0792039 0.0766174
+v -0.00910801 -0.0792039 0.0766174
+v -0.00910801 0.0792039 0.0766174
+v -0.0631917 -0.0486075 -0.0766417
+v -0.0631917 0.0486075 -0.0766417
+v 0.0631917 -0.0486075 -0.0766417
+v 0.0631917 0.0486075 -0.0766417
+v 0.0631917 -0.0486075 0.0766417
+v 0.0631917 0.0486075 0.0766417
+v -0.0631917 -0.0486075 0.0766417
+v -0.0631917 0.0486075 0.0766417
+v -0.00520596 -0.0795519 -0.0766633
+v -0.00520596 0.0795519 -0.0766633
+v 0.00520596 -0.0795519 -0.0766633
+v 0.00520596 0.0795519 -0.0766633
+v 0.00520596 -0.0795519 0.0766633
+v 0.00520596 0.0795519 0.0766633
+v -0.00520596 -0.0795519 0.0766633
+v -0.00520596 0.0795519 0.0766633
+v -0.0268347 -0.0750675 -0.0766907
+v -0.0268347 0.0750675 -0.0766907
+v 0.0268347 -0.0750675 -0.0766907
+v 0.0268347 0.0750675 -0.0766907
+v 0.0268347 -0.0750675 0.0766907
+v 0.0268347 0.0750675 0.0766907
+v -0.0268347 -0.0750675 0.0766907
+v -0.0268347 0.0750675 0.0766907
+v -0.0183868 -0.0775702 -0.0766922
+v -0.0183868 0.0775702 -0.0766922
+v 0.0183868 -0.0775702 -0.0766922
+v 0.0183868 0.0775702 -0.0766922
+v 0.0183868 -0.0775702 0.0766922
+v 0.0183868 0.0775702 0.0766922
+v -0.0183868 -0.0775702 0.0766922
+v -0.0183868 0.0775702 0.0766922
+v -0.0648584 -0.0463348 -0.0768169
+v -0.0648584 0.0463348 -0.0768169
+v 0.0648584 -0.0463348 -0.0768169
+v 0.0648584 0.0463348 -0.0768169
+v 0.0648584 -0.0463348 0.0768169
+v 0.0648584 0.0463348 0.0768169
+v -0.0648584 -0.0463348 0.0768169
+v -0.0648584 0.0463348 0.0768169
+v -0.032164 -0.0729297 -0.0768367
+v -0.032164 0.0729297 -0.0768367
+v 0.032164 -0.0729297 -0.0768367
+v 0.032164 0.0729297 -0.0768367
+v 0.032164 -0.0729297 0.0768367
+v 0.032164 0.0729297 0.0768367
+v -0.032164 -0.0729297 0.0768367
+v -0.032164 0.0729297 0.0768367
+v -0.0153631 -0.0782124 -0.0768401
+v -0.0153631 0.0782124 -0.0768401
+v 0.0153631 -0.0782124 -0.0768401
+v 0.0153631 0.0782124 -0.0768401
+v 0.0153631 -0.0782124 0.0768401
+v 0.0153631 0.0782124 0.0768401
+v -0.0153631 -0.0782124 0.0768401
+v -0.0153631 0.0782124 0.0768401
+v -0.00497025 -0.0795519 -0.076841
+v -0.00497025 0.0795519 -0.076841
+v 0.00497025 -0.0795519 -0.076841
+v 0.00497025 0.0795519 -0.076841
+v 0.00497025 -0.0795519 0.076841
+v 0.00497025 0.0795519 0.076841
+v -0.00497025 -0.0795519 0.076841
+v -0.00497025 0.0795519 0.076841
+v -0.0240217 -0.0759968 -0.0768881
+v -0.0240217 0.0759968 -0.0768881
+v 0.0240217 -0.0759968 -0.0768881
+v 0.0240217 0.0759968 -0.0768881
+v 0.0240217 -0.0759968 0.0768881
+v 0.0240217 0.0759968 0.0768881
+v -0.0240217 -0.0759968 0.0768881
+v -0.0240217 0.0759968 0.0768881
+v -0.0212011 -0.0768314 -0.0768887
+v -0.0212011 0.0768314 -0.0768887
+v 0.0212011 -0.0768314 -0.0768887
+v 0.0212011 0.0768314 -0.0768887
+v 0.0212011 -0.0768314 0.0768887
+v 0.0212011 0.0768314 0.0768887
+v -0.0212011 -0.0768314 0.0768887
+v -0.0212011 0.0768314 0.0768887
+v -0.0492374 -0.0626721 -0.0769199
+v -0.0492374 0.0626721 -0.0769199
+v 0.0492374 -0.0626721 -0.0769199
+v 0.0492374 0.0626721 -0.0769199
+v 0.0492374 -0.0626721 0.0769199
+v 0.0492374 0.0626721 0.0769199
+v -0.0492374 -0.0626721 0.0769199
+v -0.0492374 0.0626721 0.0769199
+v -0.00887152 -0.0792039 -0.0769312
+v -0.00887152 0.0792039 -0.0769312
+v 0.00887152 -0.0792039 -0.0769312
+v 0.00887152 0.0792039 -0.0769312
+v 0.00887152 -0.0792039 0.0769312
+v 0.00887152 0.0792039 0.0769312
+v -0.00887152 -0.0792039 0.0769312
+v -0.00887152 0.0792039 0.0769312
+v -0.0664443 -0.0440044 -0.0769836
+v -0.0664443 0.0440044 -0.0769836
+v 0.0664443 -0.0440044 -0.0769836
+v 0.0664443 0.0440044 -0.0769836
+v 0.0664443 -0.0440044 0.0769836
+v 0.0664443 0.0440044 0.0769836
+v -0.0664443 -0.0440044 0.0769836
+v -0.0664443 0.0440044 0.0769836
+v -0.00472847 -0.0795519 -0.0770102
+v -0.00472847 0.0795519 -0.0770102
+v 0.00472847 -0.0795519 -0.0770102
+v 0.00472847 0.0795519 -0.0770102
+v 0.00472847 -0.0795519 0.0770102
+v 0.00472847 0.0795519 0.0770102
+v -0.00472847 -0.0795519 0.0770102
+v -0.00472847 0.0795519 0.0770102
+v -0.039793 -0.0690455 -0.0770166
+v -0.039793 0.0690455 -0.0770166
+v 0.039793 -0.0690455 -0.0770166
+v 0.039793 0.0690455 -0.0770166
+v 0.039793 -0.0690455 0.0770166
+v 0.039793 0.0690455 0.0770166
+v -0.039793 -0.0690455 0.0770166
+v -0.039793 0.0690455 0.0770166
+v -0.0121645 -0.0787572 -0.0770232
+v -0.0121645 0.0787572 -0.0770232
+v 0.0121645 -0.0787572 -0.0770232
+v 0.0121645 0.0787572 -0.0770232
+v 0.0121645 -0.0787572 0.0770232
+v 0.0121645 0.0787572 0.0770232
+v -0.0121645 -0.0787572 0.0770232
+v -0.0121645 0.0787572 0.0770232
+v -0.0679474 -0.0416192 -0.0771416
+v -0.0679474 0.0416192 -0.0771416
+v 0.0679474 -0.0416192 -0.0771416
+v 0.0679474 0.0416192 -0.0771416
+v 0.0679474 -0.0416192 0.0771416
+v 0.0679474 0.0416192 0.0771416
+v -0.0679474 -0.0416192 0.0771416
+v -0.0679474 0.0416192 0.0771416
+v -0.00448094 -0.0795519 -0.077171
+v -0.00448094 0.0795519 -0.077171
+v 0.00448094 -0.0795519 -0.077171
+v 0.00448094 0.0795519 -0.077171
+v 0.00448094 -0.0795519 0.077171
+v 0.00448094 0.0795519 0.077171
+v -0.00448094 -0.0795519 0.077171
+v -0.00448094 0.0795519 0.077171
+v -0.051397 -0.0608783 -0.0772234
+v -0.051397 0.0608783 -0.0772234
+v 0.051397 -0.0608783 -0.0772234
+v 0.051397 0.0608783 -0.0772234
+v 0.051397 -0.0608783 0.0772234
+v 0.051397 0.0608783 0.0772234
+v -0.051397 -0.0608783 0.0772234
+v -0.051397 0.0608783 0.0772234
+v -0.00862422 -0.0792039 -0.0772366
+v -0.00862422 0.0792039 -0.0772366
+v 0.00862422 -0.0792039 -0.0772366
+v 0.00862422 0.0792039 -0.0772366
+v 0.00862422 -0.0792039 0.0772366
+v 0.00862422 0.0792039 0.0772366
+v -0.00862422 -0.0792039 0.0772366
+v -0.00862422 0.0792039 0.0772366
+v -0.0693658 -0.0391821 -0.0772906
+v -0.0693658 0.0391821 -0.0772906
+v 0.0693658 -0.0391821 -0.0772906
+v 0.0693658 0.0391821 -0.0772906
+v 0.0693658 -0.0391821 0.0772906
+v 0.0693658 0.0391821 0.0772906
+v -0.0693658 -0.0391821 0.0772906
+v -0.0693658 0.0391821 0.0772906
+v -0.00422794 -0.0795519 -0.077323
+v -0.00422794 0.0795519 -0.077323
+v 0.00422794 -0.0795519 -0.077323
+v 0.00422794 0.0795519 -0.077323
+v 0.00422794 -0.0795519 0.077323
+v 0.00422794 0.0795519 0.077323
+v -0.00422794 -0.0795519 0.077323
+v -0.00422794 0.0795519 0.077323
+v -0.0293886 -0.0740447 -0.0773274
+v -0.0293886 0.0740447 -0.0773274
+v 0.0293886 -0.0740447 -0.0773274
+v 0.0293886 0.0740447 -0.0773274
+v 0.0293886 -0.0740447 0.0773274
+v 0.0293886 0.0740447 0.0773274
+v -0.0293886 -0.0740447 0.0773274
+v -0.0293886 0.0740447 0.0773274
+v -0.018142 -0.0775702 -0.0773299
+v -0.018142 0.0775702 -0.0773299
+v 0.018142 -0.0775702 -0.0773299
+v 0.018142 0.0775702 -0.0773299
+v 0.018142 -0.0775702 0.0773299
+v 0.018142 0.0775702 0.0773299
+v -0.018142 -0.0775702 0.0773299
+v -0.018142 0.0775702 0.0773299
+v -0.0346615 -0.0717238 -0.0773675
+v -0.0346615 0.0717238 -0.0773675
+v 0.0346615 -0.0717238 -0.0773675
+v 0.0346615 0.0717238 -0.0773675
+v 0.0346615 -0.0717238 0.0773675
+v 0.0346615 0.0717238 0.0773675
+v -0.0346615 -0.0717238 0.0773675
+v -0.0346615 0.0717238 0.0773675
+v -0.0151151 -0.0782124 -0.0773721
+v -0.0151151 0.0782124 -0.0773721
+v 0.0151151 -0.0782124 -0.0773721
+v 0.0151151 0.0782124 -0.0773721
+v 0.0151151 -0.0782124 0.0773721
+v 0.0151151 0.0782124 0.0773721
+v -0.0151151 -0.0782124 0.0773721
+v -0.0151151 0.0782124 0.0773721
+v -0.0706978 -0.0366961 -0.0774306
+v -0.0706978 0.0366961 -0.0774306
+v 0.0706978 -0.0366961 -0.0774306
+v 0.0706978 0.0366961 -0.0774306
+v 0.0706978 -0.0366961 0.0774306
+v 0.0706978 0.0366961 0.0774306
+v -0.0706978 -0.0366961 0.0774306
+v -0.0706978 0.0366961 0.0774306
+v -0.0421679 -0.0675765 -0.0774353
+v -0.0421679 0.0675765 -0.0774353
+v 0.0421679 -0.0675765 -0.0774353
+v 0.0421679 0.0675765 -0.0774353
+v 0.0421679 -0.0675765 0.0774353
+v 0.0421679 0.0675765 0.0774353
+v -0.0421679 -0.0675765 0.0774353
+v -0.0421679 0.0675765 0.0774353
+v -0.011912 -0.0787572 -0.0774434
+v -0.011912 0.0787572 -0.0774434
+v 0.011912 -0.0787572 -0.0774434
+v 0.011912 0.0787572 -0.0774434
+v 0.011912 -0.0787572 0.0774434
+v 0.011912 0.0787572 0.0774434
+v -0.011912 -0.0787572 0.0774434
+v -0.011912 0.0787572 0.0774434
+v -0.0039698 -0.0795519 -0.0774661
+v -0.0039698 0.0795519 -0.0774661
+v 0.0039698 -0.0795519 -0.0774661
+v 0.0039698 0.0795519 -0.0774661
+v 0.0039698 -0.0795519 0.0774661
+v 0.0039698 0.0795519 0.0774661
+v -0.0039698 -0.0795519 0.0774661
+v -0.0039698 0.0795519 0.0774661
+v -0.0534926 -0.0590087 -0.0775179
+v -0.0534926 0.0590087 -0.0775179
+v 0.0534926 -0.0590087 -0.0775179
+v 0.0534926 0.0590087 -0.0775179
+v 0.0534926 -0.0590087 0.0775179
+v 0.0534926 0.0590087 0.0775179
+v -0.0534926 -0.0590087 0.0775179
+v -0.0534926 0.0590087 0.0775179
+v -0.00836641 -0.0792039 -0.0775332
+v -0.00836641 0.0792039 -0.0775332
+v 0.00836641 -0.0792039 -0.0775332
+v 0.00836641 0.0792039 -0.0775332
+v 0.00836641 -0.0792039 0.0775332
+v 0.00836641 0.0792039 0.0775332
+v -0.00836641 -0.0792039 0.0775332
+v -0.00836641 0.0792039 0.0775332
+v -0.0719417 -0.0341645 -0.0775614
+v -0.0719417 0.0341645 -0.0775614
+v 0.0719417 -0.0341645 -0.0775614
+v 0.0719417 0.0341645 -0.0775614
+v 0.0719417 -0.0341645 0.0775614
+v 0.0719417 0.0341645 0.0775614
+v -0.0719417 -0.0341645 0.0775614
+v -0.0719417 0.0341645 0.0775614
+v -0.00370682 -0.0795519 -0.0776001
+v -0.00370682 0.0795519 -0.0776001
+v 0.00370682 -0.0795519 -0.0776001
+v 0.00370682 0.0795519 -0.0776001
+v 0.00370682 -0.0795519 0.0776001
+v 0.00370682 0.0795519 0.0776001
+v -0.00370682 -0.0795519 0.0776001
+v -0.00370682 0.0795519 0.0776001
+v -0.0265849 -0.0750675 -0.0776231
+v -0.0265849 0.0750675 -0.0776231
+v 0.0265849 -0.0750675 -0.0776231
+v 0.0265849 0.0750675 -0.0776231
+v 0.0265849 -0.0750675 0.0776231
+v 0.0265849 0.0750675 0.0776231
+v -0.0265849 -0.0750675 0.0776231
+v -0.0265849 0.0750675 0.0776231
+v -0.0209478 -0.0768314 -0.0776244
+v -0.0209478 0.0768314 -0.0776244
+v 0.0209478 -0.0768314 -0.0776244
+v 0.0209478 0.0768314 -0.0776244
+v 0.0209478 -0.0768314 0.0776244
+v 0.0209478 0.0768314 0.0776244
+v -0.0209478 -0.0768314 0.0776244
+v -0.0209478 0.0768314 0.0776244
+v -0.073096 -0.0315903 -0.0776827
+v -0.073096 0.0315903 -0.0776827
+v 0.073096 -0.0315903 -0.0776827
+v 0.073096 0.0315903 -0.0776827
+v 0.073096 -0.0315903 0.0776827
+v 0.073096 0.0315903 0.0776827
+v -0.073096 -0.0315903 0.0776827
+v -0.073096 0.0315903 0.0776827
+v -0.0237667 -0.0759968 -0.0777223
+v -0.0237667 0.0759968 -0.0777223
+v 0.0237667 -0.0759968 -0.0777223
+v 0.0237667 0.0759968 -0.0777223
+v 0.0237667 -0.0759968 0.0777223
+v 0.0237667 0.0759968 0.0777223
+v -0.0237667 -0.0759968 0.0777223
+v -0.0237667 0.0759968 0.0777223
+v -0.00343932 -0.0795519 -0.0777248
+v -0.00343932 0.0795519 -0.0777248
+v 0.00343932 -0.0795519 -0.0777248
+v 0.00343932 0.0795519 -0.0777248
+v 0.00343932 -0.0795519 0.0777248
+v 0.00343932 0.0795519 0.0777248
+v -0.00343932 -0.0795519 0.0777248
+v -0.00343932 0.0795519 0.0777248
+v -0.0741592 -0.0289768 -0.0777944
+v -0.0741592 0.0289768 -0.0777944
+v 0.0741592 -0.0289768 -0.0777944
+v 0.0741592 0.0289768 -0.0777944
+v 0.0741592 -0.0289768 0.0777944
+v 0.0741592 0.0289768 0.0777944
+v -0.0741592 -0.0289768 0.0777944
+v -0.0741592 0.0289768 0.0777944
+v -0.0555215 -0.0570655 -0.077803
+v -0.0555215 0.0570655 -0.077803
+v 0.0555215 -0.0570655 -0.077803
+v 0.0555215 0.0570655 -0.077803
+v 0.0555215 -0.0570655 0.077803
+v 0.0555215 0.0570655 0.077803
+v -0.0555215 -0.0570655 0.077803
+v -0.0555215 0.0570655 0.077803
+v -0.00809841 -0.0792039 -0.0778205
+v -0.00809841 0.0792039 -0.0778205
+v 0.00809841 -0.0792039 -0.0778205
+v 0.00809841 0.0792039 -0.0778205
+v 0.00809841 -0.0792039 0.0778205
+v 0.00809841 0.0792039 0.0778205
+v -0.00809841 -0.0792039 0.0778205
+v -0.00809841 0.0792039 0.0778205
+v -0.00316763 -0.0795519 -0.0778402
+v -0.00316763 0.0795519 -0.0778402
+v 0.00316763 -0.0795519 -0.0778402
+v 0.00316763 0.0795519 -0.0778402
+v 0.00316763 -0.0795519 0.0778402
+v 0.00316763 0.0795519 0.0778402
+v -0.00316763 -0.0795519 0.0778402
+v -0.00316763 0.0795519 0.0778402
+v -0.0444903 -0.0660233 -0.0778448
+v -0.0444903 0.0660233 -0.0778448
+v 0.0444903 -0.0660233 -0.0778448
+v 0.0444903 0.0660233 -0.0778448
+v 0.0444903 -0.0660233 0.0778448
+v 0.0444903 0.0660233 0.0778448
+v -0.0444903 -0.0660233 0.0778448
+v -0.0444903 0.0660233 0.0778448
+v -0.0116449 -0.0787572 -0.0778546
+v -0.0116449 0.0787572 -0.0778546
+v 0.0116449 -0.0787572 -0.0778546
+v 0.0116449 0.0787572 -0.0778546
+v 0.0116449 -0.0787572 0.0778546
+v 0.0116449 0.0787572 0.0778546
+v -0.0116449 -0.0787572 0.0778546
+v -0.0116449 0.0787572 0.0778546
+v -0.0371158 -0.0704285 -0.0778892
+v -0.0371158 0.0704285 -0.0778892
+v 0.0371158 -0.0704285 -0.0778892
+v 0.0371158 0.0704285 -0.0778892
+v 0.0371158 -0.0704285 0.0778892
+v 0.0371158 0.0704285 0.0778892
+v -0.0371158 -0.0704285 0.0778892
+v -0.0371158 0.0704285 0.0778892
+v -0.0148486 -0.0782124 -0.0778951
+v -0.0148486 0.0782124 -0.0778951
+v 0.0148486 -0.0782124 -0.0778951
+v 0.0148486 0.0782124 -0.0778951
+v 0.0148486 -0.0782124 0.0778951
+v 0.0148486 0.0782124 0.0778951
+v -0.0148486 -0.0782124 0.0778951
+v -0.0148486 0.0782124 0.0778951
+v -0.0751301 -0.0263271 -0.0778965
+v -0.0751301 0.0263271 -0.0778965
+v 0.0751301 -0.0263271 -0.0778965
+v 0.0751301 0.0263271 -0.0778965
+v 0.0751301 -0.0263271 0.0778965
+v 0.0751301 0.0263271 0.0778965
+v -0.0751301 -0.0263271 0.0778965
+v -0.0751301 0.0263271 0.0778965
+v -0.00289208 -0.0795519 -0.0779459
+v -0.00289208 0.0795519 -0.0779459
+v 0.00289208 -0.0795519 -0.0779459
+v 0.00289208 0.0795519 -0.0779459
+v 0.00289208 -0.0795519 0.0779459
+v 0.00289208 0.0795519 0.0779459
+v -0.00289208 -0.0795519 0.0779459
+v -0.00289208 0.0795519 0.0779459
+v -0.0319058 -0.0729297 -0.077955
+v -0.0319058 0.0729297 -0.077955
+v 0.0319058 -0.0729297 -0.077955
+v 0.0319058 0.0729297 -0.077955
+v 0.0319058 -0.0729297 0.077955
+v 0.0319058 0.0729297 0.077955
+v -0.0319058 -0.0729297 0.077955
+v -0.0319058 0.0729297 0.077955
+v -0.0178752 -0.0775702 -0.0779585
+v -0.0178752 0.0775702 -0.0779585
+v 0.0178752 -0.0775702 -0.0779585
+v 0.0178752 0.0775702 -0.0779585
+v 0.0178752 -0.0775702 0.0779585
+v 0.0178752 0.0775702 0.0779585
+v -0.0178752 -0.0775702 0.0779585
+v -0.0178752 0.0775702 0.0779585
+v -0.0760073 -0.0236447 -0.0779887
+v -0.0760073 0.0236447 -0.0779887
+v 0.0760073 -0.0236447 -0.0779887
+v 0.0760073 0.0236447 -0.0779887
+v 0.0760073 -0.0236447 0.0779887
+v 0.0760073 0.0236447 0.0779887
+v -0.0760073 -0.0236447 0.0779887
+v -0.0760073 0.0236447 0.0779887
+v -0.00261301 -0.0795519 -0.078042
+v -0.00261301 0.0795519 -0.078042
+v 0.00261301 -0.0795519 -0.078042
+v 0.00261301 0.0795519 -0.078042
+v 0.00261301 -0.0795519 0.078042
+v 0.00261301 0.0795519 0.078042
+v -0.00261301 -0.0795519 0.078042
+v -0.00261301 0.0795519 0.078042
+v -0.0767898 -0.0209327 -0.0780709
+v -0.0767898 0.0209327 -0.0780709
+v 0.0767898 -0.0209327 -0.0780709
+v 0.0767898 0.0209327 -0.0780709
+v 0.0767898 -0.0209327 0.0780709
+v 0.0767898 0.0209327 0.0780709
+v -0.0767898 -0.0209327 0.0780709
+v -0.0767898 0.0209327 0.0780709
+v -0.0574812 -0.0550513 -0.0780785
+v -0.0574812 0.0550513 -0.0780785
+v 0.0574812 -0.0550513 -0.0780785
+v 0.0574812 0.0550513 -0.0780785
+v 0.0574812 -0.0550513 0.0780785
+v 0.0574812 0.0550513 0.0780785
+v -0.0574812 -0.0550513 0.0780785
+v -0.0574812 0.0550513 0.0780785
+v -0.00782055 -0.0792039 -0.0780984
+v -0.00782055 0.0792039 -0.0780984
+v 0.00782055 -0.0792039 -0.0780984
+v 0.00782055 0.0792039 -0.0780984
+v 0.00782055 -0.0792039 0.0780984
+v 0.00782055 0.0792039 0.0780984
+v -0.00782055 -0.0792039 0.0780984
+v -0.00782055 0.0792039 0.0780984
+v -0.00233076 -0.0795519 -0.0781283
+v -0.00233076 0.0795519 -0.0781283
+v 0.00233076 -0.0795519 -0.0781283
+v 0.00233076 0.0795519 -0.0781283
+v 0.00233076 -0.0795519 0.0781283
+v 0.00233076 0.0795519 0.0781283
+v -0.00233076 -0.0795519 0.0781283
+v -0.00233076 0.0795519 0.0781283
+v -0.0774767 -0.0181947 -0.0781431
+v -0.0774767 0.0181947 -0.0781431
+v 0.0774767 -0.0181947 -0.0781431
+v 0.0774767 0.0181947 -0.0781431
+v 0.0774767 -0.0181947 0.0781431
+v 0.0774767 0.0181947 0.0781431
+v -0.0774767 -0.0181947 0.0781431
+v -0.0774767 0.0181947 0.0781431
+v -0.00204566 -0.0795519 -0.0782047
+v -0.00204566 0.0795519 -0.0782047
+v 0.00204566 -0.0795519 -0.0782047
+v 0.00204566 0.0795519 -0.0782047
+v 0.00204566 -0.0795519 0.0782047
+v 0.00204566 0.0795519 0.0782047
+v -0.00204566 -0.0795519 0.0782047
+v -0.00204566 0.0795519 0.0782047
+v -0.078067 -0.0154341 -0.0782052
+v -0.078067 0.0154341 -0.0782052
+v 0.078067 -0.0154341 -0.0782052
+v 0.078067 0.0154341 -0.0782052
+v 0.078067 -0.0154341 0.0782052
+v 0.078067 0.0154341 0.0782052
+v -0.078067 -0.0154341 0.0782052
+v -0.078067 0.0154341 0.0782052
+v -0.0467573 -0.0643878 -0.0782446
+v -0.0467573 0.0643878 -0.0782446
+v 0.0467573 -0.0643878 -0.0782446
+v 0.0467573 0.0643878 -0.0782446
+v 0.0467573 -0.0643878 0.0782446
+v 0.0467573 0.0643878 0.0782446
+v -0.0467573 -0.0643878 0.0782446
+v -0.0467573 0.0643878 0.0782446
+v -0.0113637 -0.0787572 -0.0782562
+v -0.0113637 0.0787572 -0.0782562
+v 0.0113637 -0.0787572 -0.0782562
+v 0.0113637 0.0787572 -0.0782562
+v 0.0113637 -0.0787572 0.0782562
+v 0.0113637 0.0787572 0.0782562
+v -0.0113637 -0.0787572 0.0782562
+v -0.0113637 0.0787572 0.0782562
+v -0.0785601 -0.0126542 -0.078257
+v -0.0785601 0.0126542 -0.078257
+v 0.0785601 -0.0126542 -0.078257
+v 0.0785601 0.0126542 -0.078257
+v 0.0785601 -0.0126542 0.078257
+v 0.0785601 0.0126542 0.078257
+v -0.0785601 -0.0126542 0.078257
+v -0.0785601 0.0126542 0.078257
+v -0.00175808 -0.0795519 -0.0782711
+v -0.00175808 0.0795519 -0.0782711
+v 0.00175808 -0.0795519 -0.0782711
+v 0.00175808 0.0795519 -0.0782711
+v 0.00175808 -0.0795519 0.0782711
+v 0.00175808 0.0795519 0.0782711
+v -0.00175808 -0.0795519 0.0782711
+v -0.00175808 0.0795519 0.0782711
+v -0.0789553 -0.00985854 -0.0782985
+v -0.0789553 0.00985854 -0.0782985
+v 0.0789553 -0.00985854 -0.0782985
+v 0.0789553 0.00985854 -0.0782985
+v 0.0789553 -0.00985854 0.0782985
+v 0.0789553 0.00985854 0.0782985
+v -0.0789553 -0.00985854 0.0782985
+v -0.0789553 0.00985854 0.0782985
+v -0.00146835 -0.0795519 -0.0783274
+v -0.00146835 0.0795519 -0.0783274
+v 0.00146835 -0.0795519 -0.0783274
+v 0.00146835 0.0795519 -0.0783274
+v 0.00146835 -0.0795519 0.0783274
+v 0.00146835 0.0795519 0.0783274
+v -0.00146835 -0.0795519 0.0783274
+v -0.00146835 0.0795519 0.0783274
+v -0.0792522 -0.0070506 -0.0783297
+v -0.0792522 0.0070506 -0.0783297
+v 0.0792522 -0.0070506 -0.0783297
+v 0.0792522 0.0070506 -0.0783297
+v 0.0792522 -0.0070506 0.0783297
+v 0.0792522 0.0070506 0.0783297
+v -0.0792522 -0.0070506 0.0783297
+v -0.0792522 0.0070506 0.0783297
+v -0.0593694 -0.0529685 -0.0783438
+v -0.0593694 0.0529685 -0.0783438
+v 0.0593694 -0.0529685 -0.0783438
+v 0.0593694 0.0529685 -0.0783438
+v 0.0593694 -0.0529685 0.0783438
+v 0.0593694 0.0529685 0.0783438
+v -0.0593694 -0.0529685 0.0783438
+v -0.0593694 0.0529685 0.0783438
+v -0.0291149 -0.0740447 -0.0783486
+v -0.0291149 0.0740447 -0.0783486
+v 0.0291149 -0.0740447 -0.0783486
+v 0.0291149 0.0740447 -0.0783486
+v 0.0291149 -0.0740447 0.0783486
+v 0.0291149 0.0740447 0.0783486
+v -0.0291149 -0.0740447 0.0783486
+v -0.0291149 0.0740447 0.0783486
+v -0.0794502 -0.00423388 -0.0783506
+v -0.0794502 0.00423388 -0.0783506
+v 0.0794502 -0.00423388 -0.0783506
+v 0.0794502 0.00423388 -0.0783506
+v 0.0794502 -0.00423388 0.0783506
+v 0.0794502 0.00423388 0.0783506
+v -0.0794502 -0.00423388 0.0783506
+v -0.0794502 0.00423388 0.0783506
+v -0.0206689 -0.0768314 -0.0783508
+v -0.0206689 0.0768314 -0.0783508
+v 0.0206689 -0.0768314 -0.0783508
+v 0.0206689 0.0768314 -0.0783508
+v 0.0206689 -0.0768314 0.0783508
+v 0.0206689 0.0768314 0.0783508
+v -0.0206689 -0.0768314 0.0783508
+v -0.0206689 0.0768314 0.0783508
+v -0.0795494 -0.00141188 -0.078361
+v -0.0795494 0.00141188 -0.078361
+v 0.0795494 -0.00141188 -0.078361
+v 0.0795494 0.00141188 -0.078361
+v 0.0795494 -0.00141188 0.078361
+v 0.0795494 0.00141188 0.078361
+v -0.0795494 -0.00141188 0.078361
+v -0.0795494 0.00141188 0.078361
+v -0.00753315 -0.0792039 -0.0783664
+v -0.00753315 0.0792039 -0.0783664
+v 0.00753315 -0.0792039 -0.0783664
+v 0.00753315 0.0792039 -0.0783664
+v 0.00753315 -0.0792039 0.0783664
+v 0.00753315 0.0792039 0.0783664
+v -0.00753315 -0.0792039 0.0783664
+v -0.00753315 0.0792039 0.0783664
+v -0.00117683 -0.0795519 -0.0783736
+v -0.00117683 0.0795519 -0.0783736
+v 0.00117683 -0.0795519 -0.0783736
+v 0.00117683 0.0795519 -0.0783736
+v 0.00117683 -0.0795519 0.0783736
+v 0.00117683 0.0795519 0.0783736
+v -0.00117683 -0.0795519 0.0783736
+v -0.00117683 0.0795519 0.0783736
+v -0.0395239 -0.0690455 -0.0784011
+v -0.0395239 0.0690455 -0.0784011
+v 0.0395239 -0.0690455 -0.0784011
+v 0.0395239 0.0690455 -0.0784011
+v 0.0395239 -0.0690455 0.0784011
+v 0.0395239 0.0690455 0.0784011
+v -0.0395239 -0.0690455 0.0784011
+v -0.0395239 0.0690455 0.0784011
+v -0.014564 -0.0782124 -0.0784085
+v -0.014564 0.0782124 -0.0784085
+v 0.014564 -0.0782124 -0.0784085
+v 0.014564 0.0782124 -0.0784085
+v 0.014564 -0.0782124 0.0784085
+v 0.014564 0.0782124 0.0784085
+v -0.014564 -0.0782124 0.0784085
+v -0.014564 0.0782124 0.0784085
+v -0.000883881 -0.0795519 -0.0784096
+v -0.000883881 0.0795519 -0.0784096
+v 0.000883881 -0.0795519 -0.0784096
+v 0.000883881 0.0795519 -0.0784096
+v 0.000883881 -0.0795519 0.0784096
+v 0.000883881 0.0795519 0.0784096
+v -0.000883881 -0.0795519 0.0784096
+v -0.000883881 0.0795519 0.0784096
+v -0.000589853 -0.0795519 -0.0784353
+v -0.000589853 0.0795519 -0.0784353
+v 0.000589853 -0.0795519 -0.0784353
+v 0.000589853 0.0795519 -0.0784353
+v 0.000589853 -0.0795519 0.0784353
+v 0.000589853 0.0795519 0.0784353
+v -0.000589853 -0.0795519 0.0784353
+v -0.000589853 0.0795519 0.0784353
+v -0.000295106 -0.0795519 -0.0784507
+v -0.000295106 0.0795519 -0.0784507
+v 0.000295106 -0.0795519 -0.0784507
+v 0.000295106 0.0795519 -0.0784507
+v 0.000295106 -0.0795519 0.0784507
+v 0.000295106 0.0795519 0.0784507
+v -0.000295106 -0.0795519 0.0784507
+v -0.000295106 0.0795519 0.0784507
+v -1.55332e-18 -0.0795519 -0.0784559
+v -1.55332e-18 0.0795519 -0.0784559
+v 5.17774e-19 -0.0795519 0.0784559
+v 5.17774e-19 0.0795519 0.0784559
+v -0.0263027 -0.0750675 -0.0785462
+v -0.0263027 0.0750675 -0.0785462
+v 0.0263027 -0.0750675 -0.0785462
+v 0.0263027 0.0750675 -0.0785462
+v 0.0263027 -0.0750675 0.0785462
+v 0.0263027 0.0750675 0.0785462
+v -0.0263027 -0.0750675 0.0785462
+v -0.0263027 0.0750675 0.0785462
+v -0.0234827 -0.0759968 -0.078547
+v -0.0234827 0.0759968 -0.078547
+v 0.0234827 -0.0759968 -0.078547
+v 0.0234827 0.0759968 -0.078547
+v 0.0234827 -0.0759968 0.078547
+v 0.0234827 0.0759968 0.078547
+v -0.0234827 -0.0759968 0.078547
+v -0.0234827 0.0759968 0.078547
+v -0.0343833 -0.0717238 -0.0785727
+v -0.0343833 0.0717238 -0.0785727
+v 0.0343833 -0.0717238 -0.0785727
+v 0.0343833 0.0717238 -0.0785727
+v 0.0343833 -0.0717238 0.0785727
+v 0.0343833 0.0717238 0.0785727
+v -0.0343833 -0.0717238 0.0785727
+v -0.0343833 0.0717238 0.0785727
+v -0.0175865 -0.0775702 -0.0785775
+v -0.0175865 0.0775702 -0.0785775
+v 0.0175865 -0.0775702 -0.0785775
+v 0.0175865 0.0775702 -0.0785775
+v 0.0175865 -0.0775702 0.0785775
+v 0.0175865 0.0775702 0.0785775
+v -0.0175865 -0.0775702 0.0785775
+v -0.0175865 0.0775702 0.0785775
+v -0.0611835 -0.0508196 -0.0785988
+v -0.0611835 0.0508196 -0.0785988
+v 0.0611835 -0.0508196 -0.0785988
+v 0.0611835 0.0508196 -0.0785988
+v 0.0611835 -0.0508196 0.0785988
+v 0.0611835 0.0508196 0.0785988
+v -0.0611835 -0.0508196 0.0785988
+v -0.0611835 0.0508196 0.0785988
+v -0.00723658 -0.0792039 -0.0786242
+v -0.00723658 0.0792039 -0.0786242
+v 0.00723658 -0.0792039 -0.0786242
+v 0.00723658 0.0792039 -0.0786242
+v 0.00723658 -0.0792039 0.0786242
+v 0.00723658 0.0792039 0.0786242
+v -0.00723658 -0.0792039 0.0786242
+v -0.00723658 0.0792039 0.0786242
+v -0.0489659 -0.0626721 -0.078634
+v -0.0489659 0.0626721 -0.078634
+v 0.0489659 -0.0626721 -0.078634
+v 0.0489659 0.0626721 -0.078634
+v 0.0489659 -0.0626721 0.078634
+v 0.0489659 0.0626721 0.078634
+v -0.0489659 -0.0626721 0.078634
+v -0.0489659 0.0626721 0.078634
+v -0.0110687 -0.0787572 -0.0786478
+v -0.0110687 0.0787572 -0.0786478
+v 0.0110687 -0.0787572 -0.0786478
+v 0.0110687 0.0787572 -0.0786478
+v 0.0110687 -0.0787572 0.0786478
+v 0.0110687 0.0787572 0.0786478
+v -0.0110687 -0.0787572 0.0786478
+v -0.0110687 0.0787572 0.0786478
+v -0.0629215 -0.0486075 -0.078843
+v -0.0629215 0.0486075 -0.078843
+v 0.0629215 -0.0486075 -0.078843
+v 0.0629215 0.0486075 -0.078843
+v 0.0629215 -0.0486075 0.078843
+v 0.0629215 0.0486075 0.078843
+v -0.0629215 -0.0486075 0.078843
+v -0.0629215 0.0486075 0.078843
+v -0.00693119 -0.0792039 -0.0788715
+v -0.00693119 0.0792039 -0.0788715
+v 0.00693119 -0.0792039 -0.0788715
+v 0.00693119 0.0792039 -0.0788715
+v 0.00693119 -0.0792039 0.0788715
+v 0.00693119 0.0792039 0.0788715
+v -0.00693119 -0.0792039 0.0788715
+v -0.00693119 0.0792039 0.0788715
+v -0.0418828 -0.0675765 -0.0789025
+v -0.0418828 0.0675765 -0.0789025
+v 0.0418828 -0.0675765 -0.0789025
+v 0.0418828 0.0675765 -0.0789025
+v 0.0418828 -0.0675765 0.0789025
+v 0.0418828 0.0675765 0.0789025
+v -0.0418828 -0.0675765 0.0789025
+v -0.0418828 0.0675765 0.0789025
+v -0.0142617 -0.0782124 -0.0789117
+v -0.0142617 0.0782124 -0.0789117
+v 0.0142617 -0.0782124 -0.0789117
+v 0.0142617 0.0782124 -0.0789117
+v 0.0142617 -0.0782124 0.0789117
+v 0.0142617 0.0782124 0.0789117
+v -0.0142617 -0.0782124 0.0789117
+v -0.0142617 0.0782124 0.0789117
+v -0.0511136 -0.0608783 -0.0790127
+v -0.0511136 0.0608783 -0.0790127
+v 0.0511136 -0.0608783 -0.0790127
+v 0.0511136 0.0608783 -0.0790127
+v 0.0511136 -0.0608783 0.0790127
+v 0.0511136 0.0608783 0.0790127
+v -0.0511136 -0.0608783 0.0790127
+v -0.0511136 0.0608783 0.0790127
+v -0.0107601 -0.0787572 -0.0790288
+v -0.0107601 0.0787572 -0.0790288
+v 0.0107601 -0.0787572 -0.0790288
+v 0.0107601 0.0787572 -0.0790288
+v 0.0107601 -0.0787572 0.0790288
+v 0.0107601 0.0787572 0.0790288
+v -0.0107601 -0.0787572 0.0790288
+v -0.0107601 0.0787572 0.0790288
+v -0.0316087 -0.0729297 -0.0790637
+v -0.0316087 0.0729297 -0.0790637
+v 0.0316087 -0.0729297 -0.0790637
+v 0.0316087 0.0729297 -0.0790637
+v 0.0316087 -0.0729297 0.0790637
+v 0.0316087 0.0729297 0.0790637
+v -0.0316087 -0.0729297 0.0790637
+v -0.0316087 0.0729297 0.0790637
+v -0.0203649 -0.0768314 -0.079067
+v -0.0203649 0.0768314 -0.079067
+v 0.0203649 -0.0768314 -0.079067
+v 0.0203649 0.0768314 -0.079067
+v 0.0203649 -0.0768314 0.079067
+v 0.0203649 0.0768314 0.079067
+v -0.0203649 -0.0768314 0.079067
+v -0.0203649 0.0768314 0.079067
+v -0.064581 -0.0463348 -0.0790763
+v -0.064581 0.0463348 -0.0790763
+v 0.064581 -0.0463348 -0.0790763
+v 0.064581 0.0463348 -0.0790763
+v 0.064581 -0.0463348 0.0790763
+v 0.064581 0.0463348 0.0790763
+v -0.064581 -0.0463348 0.0790763
+v -0.064581 0.0463348 0.0790763
+v -0.00661736 -0.0792039 -0.079108
+v -0.00661736 0.0792039 -0.079108
+v 0.00661736 -0.0792039 -0.079108
+v 0.00661736 0.0792039 -0.079108
+v 0.00661736 -0.0792039 0.079108
+v 0.00661736 0.0792039 0.079108
+v -0.00661736 -0.0792039 0.079108
+v -0.00661736 0.0792039 0.079108
+v -0.0368179 -0.0704285 -0.0791797
+v -0.0368179 0.0704285 -0.0791797
+v 0.0368179 -0.0704285 -0.0791797
+v 0.0368179 0.0704285 -0.0791797
+v 0.0368179 -0.0704285 0.0791797
+v 0.0368179 0.0704285 0.0791797
+v -0.0368179 -0.0704285 0.0791797
+v -0.0368179 0.0704285 0.0791797
+v -0.0172765 -0.0775702 -0.0791861
+v -0.0172765 0.0775702 -0.0791861
+v 0.0172765 -0.0775702 -0.0791861
+v 0.0172765 0.0775702 -0.0791861
+v 0.0172765 -0.0775702 0.0791861
+v 0.0172765 0.0775702 0.0791861
+v -0.0172765 -0.0775702 0.0791861
+v -0.0172765 0.0775702 0.0791861
+v -0.0661601 -0.0440044 -0.0792982
+v -0.0661601 0.0440044 -0.0792982
+v 0.0661601 -0.0440044 -0.0792982
+v 0.0661601 0.0440044 -0.0792982
+v 0.0661601 -0.0440044 0.0792982
+v 0.0661601 0.0440044 0.0792982
+v -0.0661601 -0.0440044 0.0792982
+v -0.0661601 0.0440044 0.0792982
+v -0.00629546 -0.0792039 -0.0793334
+v -0.00629546 0.0792039 -0.0793334
+v 0.00629546 -0.0792039 -0.0793334
+v 0.00629546 0.0792039 -0.0793334
+v 0.00629546 -0.0792039 0.0793334
+v 0.00629546 0.0792039 0.0793334
+v -0.00629546 -0.0792039 0.0793334
+v -0.00629546 0.0792039 0.0793334
+v -0.0288058 -0.0740447 -0.0793596
+v -0.0288058 0.0740447 -0.0793596
+v 0.0288058 -0.0740447 -0.0793596
+v 0.0288058 0.0740447 -0.0793596
+v 0.0288058 -0.0740447 0.0793596
+v 0.0288058 0.0740447 0.0793596
+v -0.0288058 -0.0740447 0.0793596
+v -0.0288058 0.0740447 0.0793596
+v -0.0231701 -0.0759968 -0.0793613
+v -0.0231701 0.0759968 -0.0793613
+v 0.0231701 -0.0759968 -0.0793613
+v 0.0231701 0.0759968 -0.0793613
+v 0.0231701 -0.0759968 0.0793613
+v 0.0231701 0.0759968 0.0793613
+v -0.0231701 -0.0759968 0.0793613
+v -0.0231701 0.0759968 0.0793613
+v -0.0531976 -0.0590087 -0.0793802
+v -0.0531976 0.0590087 -0.0793802
+v 0.0531976 -0.0590087 -0.0793802
+v 0.0531976 0.0590087 -0.0793802
+v 0.0531976 -0.0590087 0.0793802
+v 0.0531976 0.0590087 0.0793802
+v -0.0531976 -0.0590087 0.0793802
+v -0.0531976 0.0590087 0.0793802
+v -0.0441894 -0.0660233 -0.0793928
+v -0.0441894 0.0660233 -0.0793928
+v 0.0441894 -0.0660233 -0.0793928
+v 0.0441894 0.0660233 -0.0793928
+v 0.0441894 -0.0660233 0.0793928
+v 0.0441894 0.0660233 0.0793928
+v -0.0441894 -0.0660233 0.0793928
+v -0.0441894 0.0660233 0.0793928
+v -0.0104385 -0.0787572 -0.0793988
+v -0.0104385 0.0787572 -0.0793988
+v 0.0104385 -0.0787572 -0.0793988
+v 0.0104385 0.0787572 -0.0793988
+v 0.0104385 -0.0787572 0.0793988
+v 0.0104385 0.0787572 0.0793988
+v -0.0104385 -0.0787572 0.0793988
+v -0.0104385 0.0787572 0.0793988
+v -0.013942 -0.0782124 -0.079404
+v -0.013942 0.0782124 -0.079404
+v 0.013942 -0.0782124 -0.079404
+v 0.013942 0.0782124 -0.079404
+v 0.013942 -0.0782124 0.079404
+v 0.013942 0.0782124 0.079404
+v -0.013942 -0.0782124 0.079404
+v -0.013942 0.0782124 0.079404
+v -0.0259884 -0.0750675 -0.079459
+v -0.0259884 0.0750675 -0.079459
+v 0.0259884 -0.0750675 -0.079459
+v 0.0259884 0.0750675 -0.079459
+v 0.0259884 -0.0750675 0.079459
+v 0.0259884 0.0750675 0.079459
+v -0.0259884 -0.0750675 0.079459
+v -0.0259884 0.0750675 0.079459
+v -0.0676567 -0.0416192 -0.0795085
+v -0.0676567 0.0416192 -0.0795085
+v 0.0676567 -0.0416192 -0.0795085
+v 0.0676567 0.0416192 -0.0795085
+v 0.0676567 -0.0416192 0.0795085
+v 0.0676567 0.0416192 0.0795085
+v -0.0676567 -0.0416192 0.0795085
+v -0.0676567 0.0416192 0.0795085
+v -0.00596589 -0.0792039 -0.0795474
+v -0.00596589 0.0792039 -0.0795474
+v 0.00596589 -0.0792039 -0.0795474
+v 0.00596589 0.0792039 -0.0795474
+v 0.00596589 -0.0792039 0.0795474
+v 0.00596589 0.0792039 0.0795474
+v -0.00596589 -0.0792039 0.0795474
+v -0.00596589 0.0792039 0.0795474
+v -0.0690691 -0.0391821 -0.079707
+v -0.0690691 0.0391821 -0.079707
+v 0.0690691 -0.0391821 -0.079707
+v 0.0690691 0.0391821 -0.079707
+v 0.0690691 -0.0391821 0.079707
+v 0.0690691 0.0391821 0.079707
+v -0.0690691 -0.0391821 0.079707
+v -0.0690691 0.0391821 0.079707
+v -0.0552154 -0.0570655 -0.079736
+v -0.0552154 0.0570655 -0.079736
+v 0.0552154 -0.0570655 -0.079736
+v 0.0552154 0.0570655 -0.079736
+v 0.0552154 -0.0570655 0.079736
+v 0.0552154 0.0570655 0.079736
+v -0.0552154 -0.0570655 0.079736
+v -0.0552154 0.0570655 0.079736
+v -0.00562906 -0.0792039 -0.0797498
+v -0.00562906 0.0792039 -0.0797498
+v 0.00562906 -0.0792039 -0.0797498
+v 0.00562906 0.0792039 -0.0797498
+v 0.00562906 -0.0792039 0.0797498
+v 0.00562906 0.0792039 0.0797498
+v -0.00562906 -0.0792039 0.0797498
+v -0.00562906 0.0792039 0.0797498
+v -0.0101041 -0.0787572 -0.0797574
+v -0.0101041 0.0787572 -0.0797574
+v 0.0101041 -0.0787572 -0.0797574
+v 0.0101041 0.0787572 -0.0797574
+v 0.0101041 -0.0787572 0.0797574
+v 0.0101041 0.0787572 0.0797574
+v -0.0101041 -0.0787572 0.0797574
+v -0.0101041 0.0787572 0.0797574
+v -0.0340631 -0.0717238 -0.0797674
+v -0.0340631 0.0717238 -0.0797674
+v 0.0340631 -0.0717238 -0.0797674
+v 0.0340631 0.0717238 -0.0797674
+v 0.0340631 -0.0717238 0.0797674
+v 0.0340631 0.0717238 0.0797674
+v -0.0340631 -0.0717238 0.0797674
+v -0.0340631 0.0717238 0.0797674
+v -0.0200361 -0.0768314 -0.0797722
+v -0.0200361 0.0768314 -0.0797722
+v 0.0200361 -0.0768314 -0.0797722
+v 0.0200361 0.0768314 -0.0797722
+v 0.0200361 -0.0768314 0.0797722
+v 0.0200361 0.0768314 0.0797722
+v -0.0200361 -0.0768314 0.0797722
+v -0.0200361 0.0768314 0.0797722
+v -0.0392066 -0.0690455 -0.0797753
+v -0.0392066 0.0690455 -0.0797753
+v 0.0392066 -0.0690455 -0.0797753
+v 0.0392066 0.0690455 -0.0797753
+v 0.0392066 -0.0690455 0.0797753
+v 0.0392066 0.0690455 0.0797753
+v -0.0392066 -0.0690455 0.0797753
+v -0.0392066 0.0690455 0.0797753
+v -0.0169453 -0.0775702 -0.0797834
+v -0.0169453 0.0775702 -0.0797834
+v 0.0169453 -0.0775702 -0.0797834
+v 0.0169453 0.0775702 -0.0797834
+v 0.0169453 -0.0775702 0.0797834
+v 0.0169453 0.0775702 0.0797834
+v -0.0169453 -0.0775702 0.0797834
+v -0.0169453 0.0775702 0.0797834
+v -0.046441 -0.0643878 -0.0798713
+v -0.046441 0.0643878 -0.0798713
+v 0.046441 -0.0643878 -0.0798713
+v 0.046441 0.0643878 -0.0798713
+v 0.046441 -0.0643878 0.0798713
+v 0.046441 0.0643878 0.0798713
+v -0.046441 -0.0643878 0.0798713
+v -0.046441 0.0643878 0.0798713
+v -0.0136053 -0.0782124 -0.0798848
+v -0.0136053 0.0782124 -0.0798848
+v 0.0136053 -0.0782124 -0.0798848
+v 0.0136053 0.0782124 -0.0798848
+v 0.0136053 -0.0782124 0.0798848
+v 0.0136053 0.0782124 0.0798848
+v -0.0136053 -0.0782124 0.0798848
+v -0.0136053 0.0782124 0.0798848
+v -0.0703954 -0.0366961 -0.0798934
+v -0.0703954 0.0366961 -0.0798934
+v 0.0703954 -0.0366961 -0.0798934
+v 0.0703954 0.0366961 -0.0798934
+v 0.0703954 -0.0366961 0.0798934
+v 0.0703954 0.0366961 0.0798934
+v -0.0703954 -0.0366961 0.0798934
+v -0.0703954 0.0366961 0.0798934
+v -0.00528537 -0.0792039 -0.0799403
+v -0.00528537 0.0792039 -0.0799403
+v 0.00528537 -0.0792039 -0.0799403
+v 0.00528537 0.0792039 -0.0799403
+v 0.00528537 -0.0792039 0.0799403
+v 0.00528537 0.0792039 0.0799403
+v -0.00528537 -0.0792039 0.0799403
+v -0.00528537 0.0792039 0.0799403
+v -0.071634 -0.0341645 -0.0800675
+v -0.071634 0.0341645 -0.0800675
+v 0.071634 -0.0341645 -0.0800675
+v 0.071634 0.0341645 -0.0800675
+v 0.071634 -0.0341645 0.0800675
+v 0.071634 0.0341645 0.0800675
+v -0.071634 -0.0341645 0.0800675
+v -0.071634 0.0341645 0.0800675
+v -0.0571643 -0.0550513 -0.0800796
+v -0.0571643 0.0550513 -0.0800796
+v 0.0571643 -0.0550513 -0.0800796
+v 0.0571643 0.0550513 -0.0800796
+v 0.0571643 -0.0550513 0.0800796
+v 0.0571643 0.0550513 0.0800796
+v -0.0571643 -0.0550513 0.0800796
+v -0.0571643 0.0550513 0.0800796
+v -0.0097574 -0.0787572 -0.0801041
+v -0.0097574 0.0787572 -0.0801041
+v 0.0097574 -0.0787572 -0.0801041
+v 0.0097574 0.0787572 -0.0801041
+v 0.0097574 -0.0787572 0.0801041
+v 0.0097574 0.0787572 0.0801041
+v -0.0097574 -0.0787572 0.0801041
+v -0.0097574 0.0787572 0.0801041
+v -0.00493523 -0.0792039 -0.0801187
+v -0.00493523 0.0792039 -0.0801187
+v 0.00493523 -0.0792039 -0.0801187
+v 0.00493523 0.0792039 -0.0801187
+v 0.00493523 -0.0792039 0.0801187
+v 0.00493523 0.0792039 0.0801187
+v -0.00493523 -0.0792039 0.0801187
+v -0.00493523 0.0792039 0.0801187
+v -0.0312732 -0.0729297 -0.0801613
+v -0.0312732 0.0729297 -0.0801613
+v 0.0312732 -0.0729297 -0.0801613
+v 0.0312732 0.0729297 -0.0801613
+v 0.0312732 -0.0729297 0.0801613
+v 0.0312732 0.0729297 0.0801613
+v -0.0312732 -0.0729297 0.0801613
+v -0.0312732 0.0729297 0.0801613
+v -0.0228293 -0.0759968 -0.0801643
+v -0.0228293 0.0759968 -0.0801643
+v 0.0228293 -0.0759968 -0.0801643
+v 0.0228293 0.0759968 -0.0801643
+v 0.0228293 -0.0759968 0.0801643
+v 0.0228293 0.0759968 0.0801643
+v -0.0228293 -0.0759968 0.0801643
+v -0.0228293 0.0759968 0.0801643
+v -0.0727834 -0.0315903 -0.080229
+v -0.0727834 0.0315903 -0.080229
+v 0.0727834 -0.0315903 -0.080229
+v 0.0727834 0.0315903 -0.080229
+v 0.0727834 -0.0315903 0.080229
+v 0.0727834 0.0315903 0.080229
+v -0.0727834 -0.0315903 0.080229
+v -0.0727834 0.0315903 0.080229
+v -0.00457909 -0.0792039 -0.0802848
+v -0.00457909 0.0792039 -0.0802848
+v 0.00457909 -0.0792039 -0.0802848
+v 0.00457909 0.0792039 -0.0802848
+v 0.00457909 -0.0792039 0.0802848
+v 0.00457909 0.0792039 0.0802848
+v -0.00457909 -0.0792039 0.0802848
+v -0.00457909 0.0792039 0.0802848
+v -0.0486348 -0.0626721 -0.0803376
+v -0.0486348 0.0626721 -0.0803376
+v 0.0486348 -0.0626721 -0.0803376
+v 0.0486348 0.0626721 -0.0803376
+v 0.0486348 -0.0626721 0.0803376
+v 0.0486348 0.0626721 0.0803376
+v -0.0486348 -0.0626721 0.0803376
+v -0.0486348 0.0626721 0.0803376
+v -0.013252 -0.0782124 -0.0803536
+v -0.013252 0.0782124 -0.0803536
+v 0.013252 -0.0782124 -0.0803536
+v 0.013252 0.0782124 -0.0803536
+v 0.013252 -0.0782124 0.0803536
+v 0.013252 0.0782124 0.0803536
+v -0.013252 -0.0782124 0.0803536
+v -0.013252 0.0782124 0.0803536
+v -0.0415466 -0.0675765 -0.0803587
+v -0.0415466 0.0675765 -0.0803587
+v 0.0415466 -0.0675765 -0.0803587
+v 0.0415466 0.0675765 -0.0803587
+v 0.0415466 -0.0675765 0.0803587
+v 0.0415466 0.0675765 0.0803587
+v -0.0415466 -0.0675765 0.0803587
+v -0.0415466 0.0675765 0.0803587
+v -0.0284617 -0.0740447 -0.0803592
+v -0.0284617 0.0740447 -0.0803592
+v 0.0284617 -0.0740447 -0.0803592
+v 0.0284617 0.0740447 -0.0803592
+v 0.0284617 -0.0740447 0.0803592
+v 0.0284617 0.0740447 0.0803592
+v -0.0284617 -0.0740447 0.0803592
+v -0.0284617 0.0740447 0.0803592
+v -0.0256424 -0.0750675 -0.0803602
+v -0.0256424 0.0750675 -0.0803602
+v 0.0256424 -0.0750675 -0.0803602
+v 0.0256424 0.0750675 -0.0803602
+v 0.0256424 -0.0750675 0.0803602
+v 0.0256424 0.0750675 0.0803602
+v -0.0256424 -0.0750675 0.0803602
+v -0.0256424 0.0750675 0.0803602
+v -0.0165936 -0.0775702 -0.0803688
+v -0.0165936 0.0775702 -0.0803688
+v 0.0165936 -0.0775702 -0.0803688
+v 0.0165936 0.0775702 -0.0803688
+v 0.0165936 -0.0775702 0.0803688
+v 0.0165936 0.0775702 0.0803688
+v -0.0165936 -0.0775702 0.0803688
+v -0.0165936 0.0775702 0.0803688
+v -0.073842 -0.0289768 -0.0803778
+v -0.073842 0.0289768 -0.0803778
+v 0.073842 -0.0289768 -0.0803778
+v 0.073842 0.0289768 -0.0803778
+v 0.073842 -0.0289768 0.0803778
+v 0.073842 0.0289768 0.0803778
+v -0.073842 -0.0289768 0.0803778
+v -0.073842 0.0289768 0.0803778
+v -0.059042 -0.0529685 -0.0804107
+v -0.059042 0.0529685 -0.0804107
+v 0.059042 -0.0529685 -0.0804107
+v 0.059042 0.0529685 -0.0804107
+v 0.059042 -0.0529685 0.0804107
+v 0.059042 0.0529685 0.0804107
+v -0.059042 -0.0529685 0.0804107
+v -0.059042 0.0529685 0.0804107
+v -0.00421737 -0.0792039 -0.0804383
+v -0.00421737 0.0792039 -0.0804383
+v 0.00421737 -0.0792039 -0.0804383
+v 0.00421737 0.0792039 -0.0804383
+v 0.00421737 -0.0792039 0.0804383
+v 0.00421737 0.0792039 0.0804383
+v -0.00421737 -0.0792039 0.0804383
+v -0.00421737 0.0792039 0.0804383
+v -0.00939883 -0.0787572 -0.0804385
+v -0.00939883 0.0787572 -0.0804385
+v 0.00939883 -0.0787572 -0.0804385
+v 0.00939883 0.0787572 -0.0804385
+v 0.00939883 -0.0787572 0.0804385
+v 0.00939883 0.0787572 0.0804385
+v -0.00939883 -0.0787572 0.0804385
+v -0.00939883 0.0787572 0.0804385
+v -0.0364751 -0.0704285 -0.0804591
+v -0.0364751 0.0704285 -0.0804591
+v 0.0364751 -0.0704285 -0.0804591
+v 0.0364751 0.0704285 -0.0804591
+v 0.0364751 -0.0704285 0.0804591
+v 0.0364751 0.0704285 0.0804591
+v -0.0364751 -0.0704285 0.0804591
+v -0.0364751 0.0704285 0.0804591
+v -0.0196828 -0.0768314 -0.0804655
+v -0.0196828 0.0768314 -0.0804655
+v 0.0196828 -0.0768314 -0.0804655
+v 0.0196828 0.0768314 -0.0804655
+v 0.0196828 -0.0768314 0.0804655
+v 0.0196828 0.0768314 0.0804655
+v -0.0196828 -0.0768314 0.0804655
+v -0.0196828 0.0768314 0.0804655
+v -0.0748087 -0.0263271 -0.0805137
+v -0.0748087 0.0263271 -0.0805137
+v 0.0748087 -0.0263271 -0.0805137
+v 0.0748087 0.0263271 -0.0805137
+v 0.0748087 -0.0263271 0.0805137
+v 0.0748087 0.0263271 0.0805137
+v -0.0748087 -0.0263271 0.0805137
+v -0.0748087 0.0263271 0.0805137
+v -0.0038505 -0.0792039 -0.0805792
+v -0.0038505 0.0792039 -0.0805792
+v 0.0038505 -0.0792039 -0.0805792
+v 0.0038505 0.0792039 -0.0805792
+v 0.0038505 -0.0792039 0.0805792
+v 0.0038505 0.0792039 0.0805792
+v -0.0038505 -0.0792039 0.0805792
+v -0.0038505 0.0792039 0.0805792
+v -0.0756822 -0.0236447 -0.0806364
+v -0.0756822 0.0236447 -0.0806364
+v 0.0756822 -0.0236447 -0.0806364
+v 0.0756822 0.0236447 -0.0806364
+v 0.0756822 -0.0236447 0.0806364
+v 0.0756822 0.0236447 0.0806364
+v -0.0756822 -0.0236447 0.0806364
+v -0.0756822 0.0236447 0.0806364
+v -0.00347895 -0.0792039 -0.0807071
+v -0.00347895 0.0792039 -0.0807071
+v 0.00347895 -0.0792039 -0.0807071
+v 0.00347895 0.0792039 -0.0807071
+v 0.00347895 -0.0792039 0.0807071
+v 0.00347895 0.0792039 0.0807071
+v -0.00347895 -0.0792039 0.0807071
+v -0.00347895 0.0792039 0.0807071
+v -0.0608462 -0.0508196 -0.0807288
+v -0.0608462 0.0508196 -0.0807288
+v 0.0608462 -0.0508196 -0.0807288
+v 0.0608462 0.0508196 -0.0807288
+v 0.0608462 -0.0508196 0.0807288
+v 0.0608462 0.0508196 0.0807288
+v -0.0608462 -0.0508196 0.0807288
+v -0.0608462 0.0508196 0.0807288
+v -0.0764614 -0.0209327 -0.080746
+v -0.0764614 0.0209327 -0.080746
+v 0.0764614 -0.0209327 -0.080746
+v 0.0764614 0.0209327 -0.080746
+v 0.0764614 -0.0209327 0.080746
+v 0.0764614 0.0209327 0.080746
+v -0.0764614 -0.0209327 0.080746
+v -0.0764614 0.0209327 0.080746
+v -0.00902881 -0.0787572 -0.0807601
+v -0.00902881 0.0787572 -0.0807601
+v 0.00902881 -0.0787572 -0.0807601
+v 0.00902881 0.0787572 -0.0807601
+v 0.00902881 -0.0787572 0.0807601
+v 0.00902881 0.0787572 0.0807601
+v -0.00902881 -0.0787572 0.0807601
+v -0.00902881 0.0787572 0.0807601
+v -0.050768 -0.0608783 -0.0807911
+v -0.050768 0.0608783 -0.0807911
+v 0.050768 -0.0608783 -0.0807911
+v 0.050768 0.0608783 -0.0807911
+v 0.050768 -0.0608783 0.0807911
+v 0.050768 0.0608783 0.0807911
+v -0.050768 -0.0608783 0.0807911
+v -0.050768 0.0608783 0.0807911
+v -0.0128826 -0.0782124 -0.0808098
+v -0.0128826 0.0782124 -0.0808098
+v 0.0128826 -0.0782124 -0.0808098
+v 0.0128826 0.0782124 -0.0808098
+v 0.0128826 -0.0782124 0.0808098
+v 0.0128826 0.0782124 0.0808098
+v -0.0128826 -0.0782124 0.0808098
+v -0.0128826 0.0782124 0.0808098
+v -0.00310316 -0.0792039 -0.080822
+v -0.00310316 0.0792039 -0.080822
+v 0.00310316 -0.0792039 -0.080822
+v 0.00310316 0.0792039 -0.080822
+v 0.00310316 -0.0792039 0.080822
+v 0.00310316 0.0792039 0.080822
+v -0.00310316 -0.0792039 0.080822
+v -0.00310316 0.0792039 0.080822
+v -0.0771453 -0.0181947 -0.0808421
+v -0.0771453 0.0181947 -0.0808421
+v 0.0771453 -0.0181947 -0.0808421
+v 0.0771453 0.0181947 -0.0808421
+v 0.0771453 -0.0181947 0.0808421
+v 0.0771453 0.0181947 0.0808421
+v -0.0771453 -0.0181947 0.0808421
+v -0.0771453 0.0181947 0.0808421
+v -0.00272359 -0.0792039 -0.0809237
+v -0.00272359 0.0792039 -0.0809237
+v 0.00272359 -0.0792039 -0.0809237
+v 0.00272359 0.0792039 -0.0809237
+v 0.00272359 -0.0792039 0.0809237
+v 0.00272359 0.0792039 0.0809237
+v -0.00272359 -0.0792039 0.0809237
+v -0.00272359 0.0792039 0.0809237
+v -0.0777331 -0.0154341 -0.0809247
+v -0.0777331 0.0154341 -0.0809247
+v 0.0777331 -0.0154341 -0.0809247
+v 0.0777331 0.0154341 -0.0809247
+v 0.0777331 -0.0154341 0.0809247
+v 0.0777331 0.0154341 0.0809247
+v -0.0777331 -0.0154341 0.0809247
+v -0.0777331 0.0154341 0.0809247
+v -0.0438347 -0.0660233 -0.0809292
+v -0.0438347 0.0660233 -0.0809292
+v 0.0438347 -0.0660233 -0.0809292
+v 0.0438347 0.0660233 -0.0809292
+v 0.0438347 -0.0660233 0.0809292
+v 0.0438347 0.0660233 0.0809292
+v -0.0438347 -0.0660233 0.0809292
+v -0.0438347 0.0660233 0.0809292
+v -0.0162216 -0.0775702 -0.0809416
+v -0.0162216 0.0775702 -0.0809416
+v 0.0162216 -0.0775702 -0.0809416
+v 0.0162216 0.0775702 -0.0809416
+v 0.0162216 -0.0775702 0.0809416
+v 0.0162216 0.0775702 0.0809416
+v -0.0162216 -0.0775702 0.0809416
+v -0.0162216 0.0775702 0.0809416
+v -0.0337015 -0.0717238 -0.0809503
+v -0.0337015 0.0717238 -0.0809503
+v 0.0337015 -0.0717238 -0.0809503
+v 0.0337015 0.0717238 -0.0809503
+v 0.0337015 -0.0717238 0.0809503
+v 0.0337015 0.0717238 0.0809503
+v -0.0337015 -0.0717238 0.0809503
+v -0.0337015 0.0717238 0.0809503
+v -0.0224607 -0.0759968 -0.0809548
+v -0.0224607 0.0759968 -0.0809548
+v 0.0224607 -0.0759968 -0.0809548
+v 0.0224607 0.0759968 -0.0809548
+v 0.0224607 -0.0759968 0.0809548
+v 0.0224607 0.0759968 0.0809548
+v -0.0224607 -0.0759968 0.0809548
+v -0.0224607 0.0759968 0.0809548
+v -0.0782241 -0.0126542 -0.0809937
+v -0.0782241 0.0126542 -0.0809937
+v 0.0782241 -0.0126542 -0.0809937
+v 0.0782241 0.0126542 -0.0809937
+v 0.0782241 -0.0126542 0.0809937
+v 0.0782241 0.0126542 0.0809937
+v -0.0782241 -0.0126542 0.0809937
+v -0.0782241 0.0126542 0.0809937
+v -0.00234069 -0.0792039 -0.0810121
+v -0.00234069 0.0792039 -0.0810121
+v 0.00234069 -0.0792039 -0.0810121
+v 0.00234069 0.0792039 -0.0810121
+v 0.00234069 -0.0792039 0.0810121
+v 0.00234069 0.0792039 0.0810121
+v -0.00234069 -0.0792039 0.0810121
+v -0.00234069 0.0792039 0.0810121
+v -0.0625745 -0.0486075 -0.0810336
+v -0.0625745 0.0486075 -0.0810336
+v 0.0625745 -0.0486075 -0.0810336
+v 0.0625745 0.0486075 -0.0810336
+v 0.0625745 -0.0486075 0.0810336
+v 0.0625745 0.0486075 0.0810336
+v -0.0625745 -0.0486075 0.0810336
+v -0.0625745 0.0486075 0.0810336
+v -0.0786176 -0.00985854 -0.081049
+v -0.0786176 0.00985854 -0.081049
+v 0.0786176 -0.00985854 -0.081049
+v 0.0786176 0.00985854 -0.081049
+v 0.0786176 -0.00985854 0.081049
+v 0.0786176 0.00985854 0.081049
+v -0.0786176 -0.00985854 0.081049
+v -0.0786176 0.00985854 0.081049
+v -0.00864778 -0.0787572 -0.0810687
+v -0.00864778 0.0787572 -0.0810687
+v 0.00864778 -0.0787572 -0.0810687
+v 0.00864778 0.0787572 -0.0810687
+v 0.00864778 -0.0787572 0.0810687
+v 0.00864778 0.0787572 0.0810687
+v -0.00864778 -0.0787572 0.0810687
+v -0.00864778 0.0787572 0.0810687
+v -0.00195495 -0.0792039 -0.0810871
+v -0.00195495 0.0792039 -0.0810871
+v 0.00195495 -0.0792039 -0.0810871
+v 0.00195495 0.0792039 -0.0810871
+v 0.00195495 -0.0792039 0.0810871
+v 0.00195495 0.0792039 0.0810871
+v -0.00195495 -0.0792039 0.0810871
+v -0.00195495 0.0792039 0.0810871
+v -0.0789132 -0.0070506 -0.0810905
+v -0.0789132 0.0070506 -0.0810905
+v 0.0789132 -0.0070506 -0.0810905
+v 0.0789132 0.0070506 -0.0810905
+v 0.0789132 -0.0070506 0.0810905
+v 0.0789132 0.0070506 0.0810905
+v -0.0789132 -0.0070506 0.0810905
+v -0.0789132 0.0070506 0.0810905
+v -0.0791104 -0.00423388 -0.0811182
+v -0.0791104 0.00423388 -0.0811182
+v 0.0791104 -0.00423388 -0.0811182
+v 0.0791104 0.00423388 -0.0811182
+v 0.0791104 -0.00423388 0.0811182
+v 0.0791104 0.00423388 0.0811182
+v -0.0791104 -0.00423388 0.0811182
+v -0.0791104 0.00423388 0.0811182
+v -0.0792091 -0.00141188 -0.0811321
+v -0.0792091 0.00141188 -0.0811321
+v 0.0792091 -0.00141188 -0.0811321
+v 0.0792091 0.00141188 -0.0811321
+v 0.0792091 -0.00141188 0.0811321
+v 0.0792091 0.00141188 0.0811321
+v -0.0792091 -0.00141188 0.0811321
+v -0.0792091 0.00141188 0.0811321
+v -0.0388416 -0.0690455 -0.0811376
+v -0.0388416 0.0690455 -0.0811376
+v 0.0388416 -0.0690455 -0.0811376
+v 0.0388416 0.0690455 -0.0811376
+v 0.0388416 -0.0690455 0.0811376
+v 0.0388416 0.0690455 0.0811376
+v -0.0388416 -0.0690455 0.0811376
+v -0.0388416 0.0690455 0.0811376
+v -0.0193056 -0.0768314 -0.0811461
+v -0.0193056 0.0768314 -0.0811461
+v 0.0193056 -0.0768314 -0.0811461
+v 0.0193056 0.0768314 -0.0811461
+v 0.0193056 -0.0768314 0.0811461
+v 0.0193056 0.0768314 0.0811461
+v -0.0193056 -0.0768314 0.0811461
+v -0.0193056 0.0768314 0.0811461
+v -0.00156683 -0.0792039 -0.0811486
+v -0.00156683 0.0792039 -0.0811486
+v 0.00156683 -0.0792039 -0.0811486
+v 0.00156683 0.0792039 -0.0811486
+v 0.00156683 -0.0792039 0.0811486
+v 0.00156683 0.0792039 0.0811486
+v -0.00156683 -0.0792039 0.0811486
+v -0.00156683 0.0792039 0.0811486
+v -0.00117679 -0.0792039 -0.0811964
+v -0.00117679 0.0792039 -0.0811964
+v 0.00117679 -0.0792039 -0.0811964
+v 0.00117679 0.0792039 -0.0811964
+v 0.00117679 -0.0792039 0.0811964
+v 0.00117679 0.0792039 0.0811964
+v -0.00117679 -0.0792039 0.0811964
+v -0.00117679 0.0792039 0.0811964
+v -0.000785327 -0.0792039 -0.0812307
+v -0.000785327 0.0792039 -0.0812307
+v 0.000785327 -0.0792039 -0.0812307
+v 0.000785327 0.0792039 -0.0812307
+v 0.000785327 -0.0792039 0.0812307
+v 0.000785327 0.0792039 0.0812307
+v -0.000785327 -0.0792039 0.0812307
+v -0.000785327 0.0792039 0.0812307
+v -0.0528379 -0.0590087 -0.081231
+v -0.0528379 0.0590087 -0.081231
+v 0.0528379 -0.0590087 -0.081231
+v 0.0528379 0.0590087 -0.081231
+v 0.0528379 -0.0590087 0.081231
+v 0.0528379 0.0590087 0.081231
+v -0.0528379 -0.0590087 0.081231
+v -0.0528379 0.0590087 0.081231
+v -0.0308995 -0.0729297 -0.0812465
+v -0.0308995 0.0729297 -0.0812465
+v 0.0308995 -0.0729297 -0.0812465
+v 0.0308995 0.0729297 -0.0812465
+v 0.0308995 -0.0729297 0.0812465
+v 0.0308995 0.0729297 0.0812465
+v -0.0308995 -0.0729297 0.0812465
+v -0.0308995 0.0729297 0.0812465
+v -0.0252652 -0.0750675 -0.0812488
+v -0.0252652 0.0750675 -0.0812488
+v 0.0252652 -0.0750675 -0.0812488
+v 0.0252652 0.0750675 -0.0812488
+v 0.0252652 -0.0750675 0.0812488
+v 0.0252652 0.0750675 0.0812488
+v -0.0252652 -0.0750675 0.0812488
+v -0.0252652 0.0750675 0.0812488
+v -0.000392903 -0.0792039 -0.0812513
+v -0.000392903 0.0792039 -0.0812513
+v 0.000392903 -0.0792039 -0.0812513
+v 0.000392903 0.0792039 -0.0812513
+v 0.000392903 -0.0792039 0.0812513
+v 0.000392903 0.0792039 0.0812513
+v -0.000392903 -0.0792039 0.0812513
+v -0.000392903 0.0792039 0.0812513
+v -0.0124975 -0.0782124 -0.0812528
+v -0.0124975 0.0782124 -0.0812528
+v 0.0124975 -0.0782124 -0.0812528
+v 0.0124975 0.0782124 -0.0812528
+v 0.0124975 -0.0782124 0.0812528
+v 0.0124975 0.0782124 0.0812528
+v -0.0124975 -0.0782124 0.0812528
+v -0.0124975 0.0782124 0.0812528
+v -2.06808e-18 -0.0792039 -0.0812581
+v -2.06808e-18 0.0792039 -0.0812581
+v 6.89361e-19 -0.0792039 0.0812581
+v 6.89361e-19 0.0792039 0.0812581
+v -0.0642249 -0.0463348 -0.0813246
+v -0.0642249 0.0463348 -0.0813246
+v 0.0642249 -0.0463348 -0.0813246
+v 0.0642249 0.0463348 -0.0813246
+v 0.0642249 -0.0463348 0.0813246
+v 0.0642249 0.0463348 0.0813246
+v -0.0642249 -0.0463348 0.0813246
+v -0.0642249 0.0463348 0.0813246
+v -0.0280828 -0.0740447 -0.0813462
+v -0.0280828 0.0740447 -0.0813462
+v 0.0280828 -0.0740447 -0.0813462
+v 0.0280828 0.0740447 -0.0813462
+v 0.0280828 -0.0740447 0.0813462
+v 0.0280828 0.0740447 0.0813462
+v -0.0280828 -0.0740447 0.0813462
+v -0.0280828 0.0740447 0.0813462
+v -0.00825622 -0.0787572 -0.0813637
+v -0.00825622 0.0787572 -0.0813637
+v 0.00825622 -0.0787572 -0.0813637
+v 0.00825622 0.0787572 -0.0813637
+v 0.00825622 -0.0787572 0.0813637
+v 0.00825622 0.0787572 0.0813637
+v -0.00825622 -0.0787572 0.0813637
+v -0.00825622 0.0787572 0.0813637
+v -0.0460682 -0.0643878 -0.0814861
+v -0.0460682 0.0643878 -0.0814861
+v 0.0460682 -0.0643878 -0.0814861
+v 0.0460682 0.0643878 -0.0814861
+v 0.0460682 -0.0643878 0.0814861
+v 0.0460682 0.0643878 0.0814861
+v -0.0460682 -0.0643878 0.0814861
+v -0.0460682 0.0643878 0.0814861
+v -0.0158299 -0.0775702 -0.0815011
+v -0.0158299 0.0775702 -0.0815011
+v 0.0158299 -0.0775702 -0.0815011
+v 0.0158299 0.0775702 -0.0815011
+v 0.0158299 -0.0775702 0.0815011
+v 0.0158299 0.0775702 0.0815011
+v -0.0158299 -0.0775702 0.0815011
+v -0.0158299 0.0775702 0.0815011
+v -0.0657953 -0.0440044 -0.0816015
+v -0.0657953 0.0440044 -0.0816015
+v 0.0657953 -0.0440044 -0.0816015
+v 0.0657953 0.0440044 -0.0816015
+v 0.0657953 -0.0440044 0.0816015
+v 0.0657953 0.0440044 0.0816015
+v -0.0657953 -0.0440044 0.0816015
+v -0.0657953 0.0440044 0.0816015
+v -0.00785461 -0.0787572 -0.0816449
+v -0.00785461 0.0787572 -0.0816449
+v 0.00785461 -0.0787572 -0.0816449
+v 0.00785461 0.0787572 -0.0816449
+v 0.00785461 -0.0787572 0.0816449
+v 0.00785461 0.0787572 0.0816449
+v -0.00785461 -0.0787572 0.0816449
+v -0.00785461 0.0787572 0.0816449
+v -0.0548419 -0.0570655 -0.081657
+v -0.0548419 0.0570655 -0.081657
+v 0.0548419 -0.0570655 -0.081657
+v 0.0548419 0.0570655 -0.081657
+v 0.0548419 -0.0570655 0.081657
+v 0.0548419 0.0570655 0.081657
+v -0.0548419 -0.0570655 0.081657
+v -0.0548419 0.0570655 0.081657
+v -0.0120972 -0.0782124 -0.0816821
+v -0.0120972 0.0782124 -0.0816821
+v 0.0120972 -0.0782124 -0.0816821
+v 0.0120972 0.0782124 -0.0816821
+v 0.0120972 -0.0782124 0.0816821
+v 0.0120972 0.0782124 0.0816821
+v -0.0120972 -0.0782124 0.0816821
+v -0.0120972 0.0782124 0.0816821
+v -0.0360879 -0.0704285 -0.0817257
+v -0.0360879 0.0704285 -0.0817257
+v 0.0360879 -0.0704285 -0.0817257
+v 0.0360879 0.0704285 -0.0817257
+v 0.0360879 -0.0704285 0.0817257
+v 0.0360879 0.0704285 0.0817257
+v -0.0360879 -0.0704285 0.0817257
+v -0.0360879 0.0704285 0.0817257
+v -0.0220647 -0.0759968 -0.081732
+v -0.0220647 0.0759968 -0.081732
+v 0.0220647 -0.0759968 -0.081732
+v 0.0220647 0.0759968 -0.081732
+v 0.0220647 -0.0759968 0.081732
+v 0.0220647 0.0759968 0.081732
+v -0.0220647 -0.0759968 0.081732
+v -0.0220647 0.0759968 0.081732
+v -0.0411597 -0.0675765 -0.0818024
+v -0.0411597 0.0675765 -0.0818024
+v 0.0411597 -0.0675765 -0.0818024
+v 0.0411597 0.0675765 -0.0818024
+v 0.0411597 -0.0675765 0.0818024
+v 0.0411597 0.0675765 0.0818024
+v -0.0411597 -0.0675765 0.0818024
+v -0.0411597 0.0675765 0.0818024
+v -0.0189048 -0.0768314 -0.0818131
+v -0.0189048 0.0768314 -0.0818131
+v 0.0189048 -0.0768314 -0.0818131
+v 0.0189048 0.0768314 -0.0818131
+v 0.0189048 -0.0768314 0.0818131
+v 0.0189048 0.0768314 0.0818131
+v -0.0189048 -0.0768314 0.0818131
+v -0.0189048 0.0768314 0.0818131
+v -0.0672837 -0.0416192 -0.0818639
+v -0.0672837 0.0416192 -0.0818639
+v 0.0672837 -0.0416192 -0.0818639
+v 0.0672837 0.0416192 -0.0818639
+v 0.0672837 -0.0416192 0.0818639
+v 0.0672837 0.0416192 0.0818639
+v -0.0672837 -0.0416192 0.0818639
+v -0.0672837 0.0416192 0.0818639
+v -0.00744342 -0.0787572 -0.081912
+v -0.00744342 0.0787572 -0.081912
+v 0.00744342 -0.0787572 -0.081912
+v 0.00744342 0.0787572 -0.081912
+v 0.00744342 -0.0787572 0.081912
+v 0.00744342 0.0787572 0.081912
+v -0.00744342 -0.0787572 0.081912
+v -0.00744342 0.0787572 0.081912
+v -0.0482444 -0.0626721 -0.0820287
+v -0.0482444 0.0626721 -0.0820287
+v 0.0482444 -0.0626721 -0.0820287
+v 0.0482444 0.0626721 -0.0820287
+v 0.0482444 -0.0626721 0.0820287
+v 0.0482444 0.0626721 0.0820287
+v -0.0482444 -0.0626721 0.0820287
+v -0.0482444 0.0626721 0.0820287
+v -0.0154188 -0.0775702 -0.0820465
+v -0.0154188 0.0775702 -0.0820465
+v 0.0154188 -0.0775702 -0.0820465
+v 0.0154188 0.0775702 -0.0820465
+v 0.0154188 -0.0775702 0.0820465
+v 0.0154188 0.0775702 0.0820465
+v -0.0154188 -0.0775702 0.0820465
+v -0.0154188 0.0775702 0.0820465
+v -0.0567777 -0.0550513 -0.0820685
+v -0.0567777 0.0550513 -0.0820685
+v 0.0567777 -0.0550513 -0.0820685
+v 0.0567777 0.0550513 -0.0820685
+v 0.0567777 -0.0550513 0.0820685
+v 0.0567777 0.0550513 0.0820685
+v -0.0567777 -0.0550513 0.0820685
+v -0.0567777 0.0550513 0.0820685
+v -0.0116821 -0.0782124 -0.0820972
+v -0.0116821 0.0782124 -0.0820972
+v 0.0116821 -0.0782124 -0.0820972
+v 0.0116821 0.0782124 -0.0820972
+v 0.0116821 -0.0782124 0.0820972
+v 0.0116821 0.0782124 0.0820972
+v -0.0116821 -0.0782124 0.0820972
+v -0.0116821 0.0782124 0.0820972
+v -0.0686883 -0.0391821 -0.0821116
+v -0.0686883 0.0391821 -0.0821116
+v 0.0686883 -0.0391821 -0.0821116
+v 0.0686883 0.0391821 -0.0821116
+v 0.0686883 -0.0391821 0.0821116
+v 0.0686883 0.0391821 0.0821116
+v -0.0686883 -0.0391821 0.0821116
+v -0.0686883 0.0391821 0.0821116
+v -0.0332988 -0.0717238 -0.0821198
+v -0.0332988 0.0717238 -0.0821198
+v 0.0332988 -0.0717238 -0.0821198
+v 0.0332988 0.0717238 -0.0821198
+v 0.0332988 -0.0717238 0.0821198
+v 0.0332988 0.0717238 0.0821198
+v -0.0332988 -0.0717238 0.0821198
+v -0.0332988 0.0717238 0.0821198
+v -0.0248573 -0.0750675 -0.0821237
+v -0.0248573 0.0750675 -0.0821237
+v 0.0248573 -0.0750675 -0.0821237
+v 0.0248573 0.0750675 -0.0821237
+v 0.0248573 -0.0750675 0.0821237
+v 0.0248573 0.0750675 0.0821237
+v -0.0248573 -0.0750675 0.0821237
+v -0.0248573 0.0750675 0.0821237
+v -0.00702316 -0.0787572 -0.0821645
+v -0.00702316 0.0787572 -0.0821645
+v 0.00702316 -0.0787572 -0.0821645
+v 0.00702316 0.0787572 -0.0821645
+v 0.00702316 -0.0787572 0.0821645
+v 0.00702316 0.0787572 0.0821645
+v -0.00702316 -0.0787572 0.0821645
+v -0.00702316 0.0787572 0.0821645
+v -0.0304882 -0.0729297 -0.082318
+v -0.0304882 0.0729297 -0.082318
+v 0.0304882 -0.0729297 -0.082318
+v 0.0304882 0.0729297 -0.082318
+v 0.0304882 -0.0729297 0.082318
+v 0.0304882 0.0729297 0.082318
+v -0.0304882 -0.0729297 0.082318
+v -0.0304882 0.0729297 0.082318
+v -0.0276697 -0.0740447 -0.0823193
+v -0.0276697 0.0740447 -0.0823193
+v 0.0276697 -0.0740447 -0.0823193
+v 0.0276697 0.0740447 -0.0823193
+v 0.0276697 -0.0740447 0.0823193
+v 0.0276697 0.0740447 0.0823193
+v -0.0276697 -0.0740447 0.0823193
+v -0.0276697 0.0740447 0.0823193
+v -0.0700072 -0.0366961 -0.0823442
+v -0.0700072 0.0366961 -0.0823442
+v 0.0700072 -0.0366961 -0.0823442
+v 0.0700072 0.0366961 -0.0823442
+v 0.0700072 -0.0366961 0.0823442
+v 0.0700072 0.0366961 0.0823442
+v -0.0700072 -0.0366961 0.0823442
+v -0.0700072 0.0366961 0.0823442
+v -0.00659435 -0.0787572 -0.0824022
+v -0.00659435 0.0787572 -0.0824022
+v 0.00659435 -0.0787572 -0.0824022
+v 0.00659435 0.0787572 -0.0824022
+v 0.00659435 -0.0787572 0.0824022
+v 0.00659435 0.0787572 0.0824022
+v -0.00659435 -0.0787572 0.0824022
+v -0.00659435 0.0787572 0.0824022
+v -0.0434266 -0.0660233 -0.0824524
+v -0.0434266 0.0660233 -0.0824524
+v 0.0434266 -0.0660233 -0.0824524
+v 0.0434266 0.0660233 -0.0824524
+v 0.0434266 -0.0660233 0.0824524
+v 0.0434266 0.0660233 0.0824524
+v -0.0434266 -0.0660233 0.0824524
+v -0.0434266 0.0660233 0.0824524
+v -0.0586427 -0.0529685 -0.0824649
+v -0.0586427 0.0529685 -0.0824649
+v 0.0586427 -0.0529685 -0.0824649
+v 0.0586427 0.0529685 -0.0824649
+v 0.0586427 -0.0529685 0.0824649
+v 0.0586427 0.0529685 0.0824649
+v -0.0586427 -0.0529685 0.0824649
+v -0.0586427 0.0529685 0.0824649
+v -0.018481 -0.0768314 -0.0824656
+v -0.018481 0.0768314 -0.0824656
+v 0.018481 -0.0768314 -0.0824656
+v 0.018481 0.0768314 -0.0824656
+v 0.018481 -0.0768314 0.0824656
+v 0.018481 0.0768314 0.0824656
+v -0.018481 -0.0768314 0.0824656
+v -0.018481 0.0768314 0.0824656
+v -0.0384292 -0.0690455 -0.0824864
+v -0.0384292 0.0690455 -0.0824864
+v 0.0384292 -0.0690455 -0.0824864
+v 0.0384292 0.0690455 -0.0824864
+v 0.0384292 -0.0690455 0.0824864
+v 0.0384292 0.0690455 0.0824864
+v -0.0384292 -0.0690455 0.0824864
+v -0.0384292 0.0690455 0.0824864
+v -0.0216418 -0.0759968 -0.0824949
+v -0.0216418 0.0759968 -0.0824949
+v 0.0216418 -0.0759968 -0.0824949
+v 0.0216418 0.0759968 -0.0824949
+v 0.0216418 -0.0759968 0.0824949
+v 0.0216418 0.0759968 0.0824949
+v -0.0216418 -0.0759968 0.0824949
+v -0.0216418 0.0759968 0.0824949
+v -0.0112528 -0.0782124 -0.0824975
+v -0.0112528 0.0782124 -0.0824975
+v 0.0112528 -0.0782124 -0.0824975
+v 0.0112528 0.0782124 -0.0824975
+v 0.0112528 -0.0782124 0.0824975
+v 0.0112528 0.0782124 0.0824975
+v -0.0112528 -0.0782124 0.0824975
+v -0.0112528 0.0782124 0.0824975
+v -0.0503604 -0.0608783 -0.0825563
+v -0.0503604 0.0608783 -0.0825563
+v 0.0503604 -0.0608783 -0.0825563
+v 0.0503604 0.0608783 -0.0825563
+v 0.0503604 -0.0608783 0.0825563
+v 0.0503604 0.0608783 0.0825563
+v -0.0503604 -0.0608783 0.0825563
+v -0.0503604 0.0608783 0.0825563
+v -0.071239 -0.0341645 -0.0825614
+v -0.071239 0.0341645 -0.0825614
+v 0.071239 -0.0341645 -0.0825614
+v 0.071239 0.0341645 -0.0825614
+v 0.071239 -0.0341645 0.0825614
+v 0.071239 0.0341645 0.0825614
+v -0.071239 -0.0341645 0.0825614
+v -0.071239 0.0341645 0.0825614
+v -0.014989 -0.0775702 -0.0825773
+v -0.014989 0.0775702 -0.0825773
+v 0.014989 -0.0775702 -0.0825773
+v 0.014989 0.0775702 -0.0825773
+v 0.014989 -0.0775702 0.0825773
+v 0.014989 0.0775702 0.0825773
+v -0.014989 -0.0775702 0.0825773
+v -0.014989 0.0775702 0.0825773
+v -0.0061575 -0.0787572 -0.0826248
+v -0.0061575 0.0787572 -0.0826248
+v 0.0061575 -0.0787572 -0.0826248
+v 0.0061575 0.0787572 -0.0826248
+v 0.0061575 -0.0787572 0.0826248
+v 0.0061575 0.0787572 0.0826248
+v -0.0061575 -0.0787572 0.0826248
+v -0.0061575 0.0787572 0.0826248
+v -0.072382 -0.0315903 -0.0827629
+v -0.072382 0.0315903 -0.0827629
+v 0.072382 -0.0315903 -0.0827629
+v 0.072382 0.0315903 -0.0827629
+v 0.072382 -0.0315903 0.0827629
+v 0.072382 0.0315903 0.0827629
+v -0.072382 -0.0315903 0.0827629
+v -0.072382 0.0315903 0.0827629
+v -0.00571316 -0.0787572 -0.082832
+v -0.00571316 0.0787572 -0.082832
+v 0.00571316 -0.0787572 -0.082832
+v 0.00571316 0.0787572 -0.082832
+v 0.00571316 -0.0787572 0.082832
+v 0.00571316 0.0787572 0.082832
+v -0.00571316 -0.0787572 0.082832
+v -0.00571316 0.0787572 0.082832
+v -0.0604347 -0.0508196 -0.0828458
+v -0.0604347 0.0508196 -0.0828458
+v 0.0604347 -0.0508196 -0.0828458
+v 0.0604347 0.0508196 -0.0828458
+v 0.0604347 -0.0508196 0.0828458
+v 0.0604347 0.0508196 0.0828458
+v -0.0604347 -0.0508196 0.0828458
+v -0.0604347 0.0508196 0.0828458
+v -0.0108098 -0.0782124 -0.0828826
+v -0.0108098 0.0782124 -0.0828826
+v 0.0108098 -0.0782124 -0.0828826
+v 0.0108098 0.0782124 -0.0828826
+v 0.0108098 -0.0782124 0.0828826
+v 0.0108098 0.0782124 0.0828826
+v -0.0108098 -0.0782124 0.0828826
+v -0.0108098 0.0782124 0.0828826
+v -0.0734349 -0.0289768 -0.0829486
+v -0.0734349 0.0289768 -0.0829486
+v 0.0734349 -0.0289768 -0.0829486
+v 0.0734349 0.0289768 -0.0829486
+v 0.0734349 -0.0289768 0.0829486
+v 0.0734349 0.0289768 0.0829486
+v -0.0734349 -0.0289768 0.0829486
+v -0.0734349 0.0289768 0.0829486
+v -0.0356566 -0.0704285 -0.082978
+v -0.0356566 0.0704285 -0.082978
+v 0.0356566 -0.0704285 -0.082978
+v 0.0356566 0.0704285 -0.082978
+v 0.0356566 -0.0704285 0.082978
+v 0.0356566 0.0704285 0.082978
+v -0.0356566 -0.0704285 0.082978
+v -0.0356566 0.0704285 0.082978
+v -0.024419 -0.0750675 -0.0829838
+v -0.024419 0.0750675 -0.0829838
+v 0.024419 -0.0750675 -0.0829838
+v 0.024419 0.0750675 -0.0829838
+v 0.024419 -0.0750675 0.0829838
+v 0.024419 0.0750675 0.0829838
+v -0.024419 -0.0750675 0.0829838
+v -0.024419 0.0750675 0.0829838
+v -0.00526185 -0.0787572 -0.0830235
+v -0.00526185 0.0787572 -0.0830235
+v 0.00526185 -0.0787572 -0.0830235
+v 0.00526185 0.0787572 -0.0830235
+v 0.00526185 -0.0787572 0.0830235
+v 0.00526185 0.0787572 0.0830235
+v -0.00526185 -0.0787572 0.0830235
+v -0.00526185 0.0787572 0.0830235
+v -0.0524137 -0.0590087 -0.0830682
+v -0.0524137 0.0590087 -0.0830682
+v 0.0524137 -0.0590087 -0.0830682
+v 0.0524137 0.0590087 -0.0830682
+v 0.0524137 -0.0590087 0.0830682
+v 0.0524137 0.0590087 0.0830682
+v -0.0524137 -0.0590087 0.0830682
+v -0.0524137 0.0590087 0.0830682
+v -0.0456393 -0.0643878 -0.0830869
+v -0.0456393 0.0643878 -0.0830869
+v 0.0456393 -0.0643878 -0.0830869
+v 0.0456393 0.0643878 -0.0830869
+v 0.0456393 -0.0643878 0.0830869
+v 0.0456393 0.0643878 0.0830869
+v -0.0456393 -0.0643878 0.0830869
+v -0.0456393 0.0643878 0.0830869
+v -0.014541 -0.0775702 -0.0830927
+v -0.014541 0.0775702 -0.0830927
+v 0.014541 -0.0775702 -0.0830927
+v 0.014541 0.0775702 -0.0830927
+v 0.014541 -0.0775702 0.0830927
+v 0.014541 0.0775702 0.0830927
+v -0.014541 -0.0775702 0.0830927
+v -0.014541 0.0775702 0.0830927
+v -0.0180347 -0.0768314 -0.083103
+v -0.0180347 0.0768314 -0.083103
+v 0.0180347 -0.0768314 -0.083103
+v 0.0180347 0.0768314 -0.083103
+v 0.0180347 -0.0768314 0.083103
+v 0.0180347 0.0768314 0.083103
+v -0.0180347 -0.0768314 0.083103
+v -0.0180347 0.0768314 0.083103
+v -0.0743962 -0.0263271 -0.0831181
+v -0.0743962 0.0263271 -0.0831181
+v 0.0743962 -0.0263271 -0.0831181
+v 0.0743962 0.0263271 -0.0831181
+v 0.0743962 -0.0263271 0.0831181
+v 0.0743962 0.0263271 0.0831181
+v -0.0743962 -0.0263271 0.0831181
+v -0.0743962 0.0263271 0.0831181
+v -0.00480413 -0.0787572 -0.0831992
+v -0.00480413 0.0787572 -0.0831992
+v 0.00480413 -0.0787572 -0.0831992
+v 0.00480413 0.0787572 -0.0831992
+v 0.00480413 -0.0787572 0.0831992
+v 0.00480413 0.0787572 0.0831992
+v -0.00480413 -0.0787572 0.0831992
+v -0.00480413 0.0787572 0.0831992
+v -0.0621513 -0.0486075 -0.0832107
+v -0.0621513 0.0486075 -0.0832107
+v 0.0621513 -0.0486075 -0.0832107
+v 0.0621513 0.0486075 -0.0832107
+v 0.0621513 -0.0486075 0.0832107
+v 0.0621513 0.0486075 0.0832107
+v -0.0621513 -0.0486075 0.0832107
+v -0.0621513 0.0486075 0.0832107
+v -0.0407228 -0.0675765 -0.0832316
+v -0.0407228 0.0675765 -0.0832316
+v 0.0407228 -0.0675765 -0.0832316
+v 0.0407228 0.0675765 -0.0832316
+v 0.0407228 -0.0675765 0.0832316
+v 0.0407228 0.0675765 0.0832316
+v -0.0407228 -0.0675765 0.0832316
+v -0.0407228 0.0675765 0.0832316
+v -0.0211925 -0.0759968 -0.0832426
+v -0.0211925 0.0759968 -0.0832426
+v 0.0211925 -0.0759968 -0.0832426
+v 0.0211925 0.0759968 -0.0832426
+v 0.0211925 -0.0759968 0.0832426
+v 0.0211925 0.0759968 0.0832426
+v -0.0211925 -0.0759968 0.0832426
+v -0.0211925 0.0759968 0.0832426
+v -0.0103536 -0.0782124 -0.083252
+v -0.0103536 0.0782124 -0.083252
+v 0.0103536 -0.0782124 -0.083252
+v 0.0103536 0.0782124 -0.083252
+v 0.0103536 -0.0782124 0.083252
+v 0.0103536 0.0782124 0.083252
+v -0.0103536 -0.0782124 0.083252
+v -0.0103536 0.0782124 0.083252
+v -0.0752649 -0.0236447 -0.0832712
+v -0.0752649 0.0236447 -0.0832712
+v 0.0752649 -0.0236447 -0.0832712
+v 0.0752649 0.0236447 -0.0832712
+v 0.0752649 -0.0236447 0.0832712
+v 0.0752649 0.0236447 0.0832712
+v -0.0752649 -0.0236447 0.0832712
+v -0.0752649 0.0236447 0.0832712
+v -0.0328555 -0.0717238 -0.0832745
+v -0.0328555 0.0717238 -0.0832745
+v 0.0328555 -0.0717238 -0.0832745
+v 0.0328555 0.0717238 -0.0832745
+v 0.0328555 -0.0717238 0.0832745
+v 0.0328555 0.0717238 0.0832745
+v -0.0328555 -0.0717238 0.0832745
+v -0.0328555 0.0717238 0.0832745
+v -0.0272229 -0.0740447 -0.0832775
+v -0.0272229 0.0740447 -0.0832775
+v 0.0272229 -0.0740447 -0.0832775
+v 0.0272229 0.0740447 -0.0832775
+v 0.0272229 -0.0740447 0.0832775
+v 0.0272229 0.0740447 0.0832775
+v -0.0272229 -0.0740447 0.0832775
+v -0.0272229 0.0740447 0.0832775
+v -0.00434055 -0.0787572 -0.0833589
+v -0.00434055 0.0787572 -0.0833589
+v 0.00434055 -0.0787572 -0.0833589
+v 0.00434055 0.0787572 -0.0833589
+v 0.00434055 -0.0787572 0.0833589
+v 0.00434055 0.0787572 0.0833589
+v -0.00434055 -0.0787572 0.0833589
+v -0.00434055 0.0787572 0.0833589
+v -0.0300397 -0.0729297 -0.0833745
+v -0.0300397 0.0729297 -0.0833745
+v 0.0300397 -0.0729297 -0.0833745
+v 0.0300397 0.0729297 -0.0833745
+v 0.0300397 -0.0729297 0.0833745
+v 0.0300397 0.0729297 0.0833745
+v -0.0300397 -0.0729297 0.0833745
+v -0.0300397 0.0729297 0.0833745
+v -0.0760398 -0.0209327 -0.0834079
+v -0.0760398 0.0209327 -0.0834079
+v 0.0760398 -0.0209327 -0.0834079
+v 0.0760398 0.0209327 -0.0834079
+v 0.0760398 -0.0209327 0.0834079
+v 0.0760398 0.0209327 0.0834079
+v -0.0760398 -0.0209327 0.0834079
+v -0.0760398 0.0209327 0.0834079
+v -0.00387169 -0.0787572 -0.0835022
+v -0.00387169 0.0787572 -0.0835022
+v 0.00387169 -0.0787572 -0.0835022
+v 0.00387169 0.0787572 -0.0835022
+v 0.00387169 -0.0787572 0.0835022
+v 0.00387169 0.0787572 0.0835022
+v -0.00387169 -0.0787572 0.0835022
+v -0.00387169 0.0787572 0.0835022
+v -0.0767199 -0.0181947 -0.0835278
+v -0.0767199 0.0181947 -0.0835278
+v 0.0767199 -0.0181947 -0.0835278
+v 0.0767199 0.0181947 -0.0835278
+v 0.0767199 -0.0181947 0.0835278
+v 0.0767199 0.0181947 0.0835278
+v -0.0767199 -0.0181947 0.0835278
+v -0.0767199 0.0181947 0.0835278
+v -0.0637906 -0.0463348 -0.0835591
+v -0.0637906 0.0463348 -0.0835591
+v 0.0637906 -0.0463348 -0.0835591
+v 0.0637906 0.0463348 -0.0835591
+v 0.0637906 -0.0463348 0.0835591
+v 0.0637906 0.0463348 0.0835591
+v -0.0637906 -0.0463348 0.0835591
+v -0.0637906 0.0463348 0.0835591
+v -0.0544017 -0.0570655 -0.0835639
+v -0.0544017 0.0570655 -0.0835639
+v 0.0544017 -0.0570655 -0.0835639
+v 0.0544017 0.0570655 -0.0835639
+v 0.0544017 -0.0570655 0.0835639
+v 0.0544017 0.0570655 0.0835639
+v -0.0544017 -0.0570655 0.0835639
+v -0.0544017 0.0570655 0.0835639
+v -0.0140752 -0.0775702 -0.0835922
+v -0.0140752 0.0775702 -0.0835922
+v 0.0140752 -0.0775702 -0.0835922
+v 0.0140752 0.0775702 -0.0835922
+v 0.0140752 -0.0775702 0.0835922
+v 0.0140752 0.0775702 0.0835922
+v -0.0140752 -0.0775702 0.0835922
+v -0.0140752 0.0775702 0.0835922
+v -0.00988481 -0.0782124 -0.0836053
+v -0.00988481 0.0782124 -0.0836053
+v 0.00988481 -0.0782124 -0.0836053
+v 0.00988481 0.0782124 -0.0836053
+v 0.00988481 -0.0782124 0.0836053
+v 0.00988481 0.0782124 0.0836053
+v -0.00988481 -0.0782124 0.0836053
+v -0.00988481 0.0782124 0.0836053
+v -0.00339811 -0.0787572 -0.0836291
+v -0.00339811 0.0787572 -0.0836291
+v 0.00339811 -0.0787572 -0.0836291
+v 0.00339811 0.0787572 -0.0836291
+v 0.00339811 -0.0787572 0.0836291
+v 0.00339811 0.0787572 0.0836291
+v -0.00339811 -0.0787572 0.0836291
+v -0.00339811 0.0787572 0.0836291
+v -0.0773045 -0.0154341 -0.0836309
+v -0.0773045 0.0154341 -0.0836309
+v 0.0773045 -0.0154341 -0.0836309
+v 0.0773045 0.0154341 -0.0836309
+v 0.0773045 -0.0154341 0.0836309
+v 0.0773045 0.0154341 0.0836309
+v -0.0773045 -0.0154341 0.0836309
+v -0.0773045 0.0154341 0.0836309
+v -0.0477952 -0.0626721 -0.0837051
+v -0.0477952 0.0626721 -0.0837051
+v 0.0477952 -0.0626721 -0.0837051
+v 0.0477952 0.0626721 -0.0837051
+v 0.0477952 -0.0626721 0.0837051
+v 0.0477952 0.0626721 0.0837051
+v -0.0477952 -0.0626721 0.0837051
+v -0.0477952 0.0626721 0.0837051
+v -0.0777928 -0.0126542 -0.083717
+v -0.0777928 0.0126542 -0.083717
+v 0.0777928 -0.0126542 -0.083717
+v 0.0777928 0.0126542 -0.083717
+v 0.0777928 -0.0126542 0.083717
+v 0.0777928 0.0126542 0.083717
+v -0.0777928 -0.0126542 0.083717
+v -0.0777928 0.0126542 0.083717
+v -0.0175665 -0.0768314 -0.0837244
+v -0.0175665 0.0768314 -0.0837244
+v 0.0175665 -0.0768314 -0.0837244
+v 0.0175665 0.0768314 -0.0837244
+v 0.0175665 -0.0768314 0.0837244
+v 0.0175665 0.0768314 0.0837244
+v -0.0175665 -0.0768314 0.0837244
+v -0.0175665 0.0768314 0.0837244
+v -0.0029204 -0.0787572 -0.0837394
+v -0.0029204 0.0787572 -0.0837394
+v 0.0029204 -0.0787572 -0.0837394
+v 0.0029204 0.0787572 -0.0837394
+v 0.0029204 -0.0787572 0.0837394
+v 0.0029204 0.0787572 0.0837394
+v -0.0029204 -0.0787572 0.0837394
+v -0.0029204 0.0787572 0.0837394
+v -0.0781841 -0.00985854 -0.083786
+v -0.0781841 0.00985854 -0.083786
+v 0.0781841 -0.00985854 -0.083786
+v 0.0781841 0.00985854 -0.083786
+v 0.0781841 -0.00985854 0.083786
+v 0.0781841 0.00985854 0.083786
+v -0.0781841 -0.00985854 0.083786
+v -0.0781841 0.00985854 0.083786
+v -0.0379701 -0.0690455 -0.08382
+v -0.0379701 0.0690455 -0.08382
+v 0.0379701 -0.0690455 -0.08382
+v 0.0379701 0.0690455 -0.08382
+v 0.0379701 -0.0690455 0.08382
+v 0.0379701 0.0690455 0.08382
+v -0.0379701 -0.0690455 0.08382
+v -0.0379701 0.0690455 0.08382
+v -0.023951 -0.0750675 -0.0838281
+v -0.023951 0.0750675 -0.0838281
+v 0.023951 -0.0750675 -0.0838281
+v 0.023951 0.0750675 -0.0838281
+v 0.023951 -0.0750675 0.0838281
+v 0.023951 0.0750675 0.0838281
+v -0.023951 -0.0750675 0.0838281
+v -0.023951 0.0750675 0.0838281
+v -0.00243912 -0.0787572 -0.0838329
+v -0.00243912 0.0787572 -0.0838329
+v 0.00243912 -0.0787572 -0.0838329
+v 0.00243912 0.0787572 -0.0838329
+v 0.00243912 -0.0787572 0.0838329
+v 0.00243912 0.0787572 0.0838329
+v -0.00243912 -0.0787572 0.0838329
+v -0.00243912 0.0787572 0.0838329
+v -0.0784781 -0.0070506 -0.0838378
+v -0.0784781 0.0070506 -0.0838378
+v 0.0784781 -0.0070506 -0.0838378
+v 0.0784781 0.0070506 -0.0838378
+v 0.0784781 -0.0070506 0.0838378
+v 0.0784781 0.0070506 0.0838378
+v -0.0784781 -0.0070506 0.0838378
+v -0.0784781 0.0070506 0.0838378
+v -0.0786742 -0.00423388 -0.0838724
+v -0.0786742 0.00423388 -0.0838724
+v 0.0786742 -0.00423388 -0.0838724
+v 0.0786742 0.00423388 -0.0838724
+v 0.0786742 -0.00423388 0.0838724
+v 0.0786742 0.00423388 0.0838724
+v -0.0786742 -0.00423388 0.0838724
+v -0.0786742 0.00423388 0.0838724
+v -0.0787724 -0.00141188 -0.0838897
+v -0.0787724 0.00141188 -0.0838897
+v 0.0787724 -0.00141188 -0.0838897
+v 0.0787724 0.00141188 -0.0838897
+v 0.0787724 -0.00141188 0.0838897
+v 0.0787724 0.00141188 0.0838897
+v -0.0787724 -0.00141188 0.0838897
+v -0.0787724 0.00141188 0.0838897
+v -0.0653503 -0.0440044 -0.0838906
+v -0.0653503 0.0440044 -0.0838906
+v 0.0653503 -0.0440044 -0.0838906
+v 0.0653503 0.0440044 -0.0838906
+v 0.0653503 -0.0440044 0.0838906
+v 0.0653503 0.0440044 0.0838906
+v -0.0653503 -0.0440044 0.0838906
+v -0.0653503 0.0440044 0.0838906
+v -0.00195487 -0.0787572 -0.0839096
+v -0.00195487 0.0787572 -0.0839096
+v 0.00195487 -0.0787572 -0.0839096
+v 0.00195487 0.0787572 -0.0839096
+v 0.00195487 -0.0787572 0.0839096
+v 0.00195487 0.0787572 0.0839096
+v -0.00195487 -0.0787572 0.0839096
+v -0.00195487 0.0787572 0.0839096
+v -0.00940397 -0.0782124 -0.083942
+v -0.00940397 0.0782124 -0.083942
+v 0.00940397 -0.0782124 -0.083942
+v 0.00940397 0.0782124 -0.083942
+v 0.00940397 -0.0782124 0.083942
+v 0.00940397 0.0782124 0.083942
+v -0.00940397 -0.0782124 0.083942
+v -0.00940397 0.0782124 0.083942
+v -0.0429655 -0.0660233 -0.0839604
+v -0.0429655 0.0660233 -0.0839604
+v 0.0429655 -0.0660233 -0.0839604
+v 0.0429655 0.0660233 -0.0839604
+v 0.0429655 -0.0660233 0.0839604
+v 0.0429655 0.0660233 0.0839604
+v -0.0429655 -0.0660233 0.0839604
+v -0.0429655 0.0660233 0.0839604
+v -0.00146824 -0.0787572 -0.0839694
+v -0.00146824 0.0787572 -0.0839694
+v 0.00146824 -0.0787572 -0.0839694
+v 0.00146824 0.0787572 -0.0839694
+v 0.00146824 -0.0787572 0.0839694
+v 0.00146824 0.0787572 0.0839694
+v -0.00146824 -0.0787572 0.0839694
+v -0.00146824 0.0787572 0.0839694
+v -0.0207175 -0.0759968 -0.0839741
+v -0.0207175 0.0759968 -0.0839741
+v 0.0207175 -0.0759968 -0.0839741
+v 0.0207175 0.0759968 -0.0839741
+v 0.0207175 -0.0759968 0.0839741
+v 0.0207175 0.0759968 0.0839741
+v -0.0207175 -0.0759968 0.0839741
+v -0.0207175 0.0759968 0.0839741
+v -0.000979822 -0.0787572 -0.0840121
+v -0.000979822 0.0787572 -0.0840121
+v 0.000979822 -0.0787572 -0.0840121
+v 0.000979822 0.0787572 -0.0840121
+v 0.000979822 -0.0787572 0.0840121
+v 0.000979822 0.0787572 0.0840121
+v -0.000979822 -0.0787572 0.0840121
+v -0.000979822 0.0787572 0.0840121
+v -0.00049021 -0.0787572 -0.0840378
+v -0.00049021 0.0787572 -0.0840378
+v 0.00049021 -0.0787572 -0.0840378
+v 0.00049021 0.0787572 -0.0840378
+v 0.00049021 -0.0787572 0.0840378
+v 0.00049021 0.0787572 0.0840378
+v -0.00049021 -0.0787572 0.0840378
+v -0.00049021 0.0787572 0.0840378
+v -0.0563219 -0.0550513 -0.0840426
+v -0.0563219 0.0550513 -0.0840426
+v 0.0563219 -0.0550513 -0.0840426
+v 0.0563219 0.0550513 -0.0840426
+v 0.0563219 -0.0550513 0.0840426
+v 0.0563219 0.0550513 0.0840426
+v -0.0563219 -0.0550513 0.0840426
+v -0.0563219 0.0550513 0.0840426
+v -2.58027e-18 -0.0787572 -0.0840463
+v -2.58027e-18 0.0787572 -0.0840463
+v 8.60089e-19 -0.0787572 0.0840463
+v 8.60089e-19 0.0787572 0.0840463
+v -0.0135922 -0.0775702 -0.0840752
+v -0.0135922 0.0775702 -0.0840752
+v 0.0135922 -0.0775702 -0.0840752
+v 0.0135922 0.0775702 -0.0840752
+v 0.0135922 -0.0775702 0.0840752
+v 0.0135922 0.0775702 0.0840752
+v -0.0135922 -0.0775702 0.0840752
+v -0.0135922 0.0775702 0.0840752
+v -0.0668286 -0.0416192 -0.0842049
+v -0.0668286 0.0416192 -0.0842049
+v 0.0668286 -0.0416192 -0.0842049
+v 0.0668286 0.0416192 -0.0842049
+v 0.0668286 -0.0416192 0.0842049
+v 0.0668286 0.0416192 0.0842049
+v -0.0668286 -0.0416192 0.0842049
+v -0.0668286 0.0416192 0.0842049
+v -0.035182 -0.0704285 -0.0842144
+v -0.035182 0.0704285 -0.0842144
+v 0.035182 -0.0704285 -0.0842144
+v 0.035182 0.0704285 -0.0842144
+v 0.035182 -0.0704285 0.0842144
+v 0.035182 0.0704285 0.0842144
+v -0.035182 -0.0704285 0.0842144
+v -0.035182 0.0704285 0.0842144
+v -0.0267429 -0.0740447 -0.0842195
+v -0.0267429 0.0740447 -0.0842195
+v 0.0267429 -0.0740447 -0.0842195
+v 0.0267429 0.0740447 -0.0842195
+v 0.0267429 -0.0740447 0.0842195
+v 0.0267429 0.0740447 0.0842195
+v -0.0267429 -0.0740447 0.0842195
+v -0.0267429 0.0740447 0.0842195
+v -0.00891167 -0.0782124 -0.0842617
+v -0.00891167 0.0782124 -0.0842617
+v 0.00891167 -0.0782124 -0.0842617
+v 0.00891167 0.0782124 -0.0842617
+v 0.00891167 -0.0782124 0.0842617
+v 0.00891167 0.0782124 0.0842617
+v -0.00891167 -0.0782124 0.0842617
+v -0.00891167 0.0782124 0.0842617
+v -0.0498915 -0.0608783 -0.0843062
+v -0.0498915 0.0608783 -0.0843062
+v 0.0498915 -0.0608783 -0.0843062
+v 0.0498915 0.0608783 -0.0843062
+v 0.0498915 -0.0608783 0.0843062
+v 0.0498915 0.0608783 0.0843062
+v -0.0498915 -0.0608783 0.0843062
+v -0.0498915 0.0608783 0.0843062
+v -0.0170768 -0.0768314 -0.0843291
+v -0.0170768 0.0768314 -0.0843291
+v 0.0170768 -0.0768314 -0.0843291
+v 0.0170768 0.0768314 -0.0843291
+v 0.0170768 -0.0768314 0.0843291
+v 0.0170768 0.0768314 0.0843291
+v -0.0170768 -0.0768314 0.0843291
+v -0.0170768 0.0768314 0.0843291
+v -0.0323723 -0.0717238 -0.0844131
+v -0.0323723 0.0717238 -0.0844131
+v 0.0323723 -0.0717238 -0.0844131
+v 0.0323723 0.0717238 -0.0844131
+v 0.0323723 -0.0717238 0.0844131
+v 0.0323723 0.0717238 0.0844131
+v -0.0323723 -0.0717238 0.0844131
+v -0.0323723 0.0717238 0.0844131
+v -0.0295546 -0.0729297 -0.0844148
+v -0.0295546 0.0729297 -0.0844148
+v 0.0295546 -0.0729297 -0.0844148
+v 0.0295546 0.0729297 -0.0844148
+v 0.0295546 -0.0729297 0.0844148
+v 0.0295546 0.0729297 0.0844148
+v -0.0295546 -0.0729297 0.0844148
+v -0.0295546 0.0729297 0.0844148
+v -0.0682237 -0.0391821 -0.0845014
+v -0.0682237 0.0391821 -0.0845014
+v 0.0682237 -0.0391821 -0.0845014
+v 0.0682237 0.0391821 -0.0845014
+v 0.0682237 -0.0391821 0.0845014
+v 0.0682237 0.0391821 0.0845014
+v -0.0682237 -0.0391821 0.0845014
+v -0.0682237 0.0391821 0.0845014
+v -0.058172 -0.0529685 -0.0845039
+v -0.058172 0.0529685 -0.0845039
+v 0.058172 -0.0529685 -0.0845039
+v 0.058172 0.0529685 -0.0845039
+v 0.058172 -0.0529685 0.0845039
+v 0.058172 0.0529685 0.0845039
+v -0.058172 -0.0529685 0.0845039
+v -0.058172 0.0529685 0.0845039
+v -0.0130927 -0.0775702 -0.084541
+v -0.0130927 0.0775702 -0.084541
+v 0.0130927 -0.0775702 -0.084541
+v 0.0130927 0.0775702 -0.084541
+v 0.0130927 -0.0775702 0.084541
+v 0.0130927 0.0775702 0.084541
+v -0.0130927 -0.0775702 0.084541
+v -0.0130927 0.0775702 0.084541
+v -0.00840852 -0.0782124 -0.084564
+v -0.00840852 0.0782124 -0.084564
+v 0.00840852 -0.0782124 -0.084564
+v 0.00840852 0.0782124 -0.084564
+v 0.00840852 -0.0782124 0.084564
+v 0.00840852 0.0782124 0.084564
+v -0.00840852 -0.0782124 0.084564
+v -0.00840852 0.0782124 0.084564
+v -0.0402362 -0.0675765 -0.0846448
+v -0.0402362 0.0675765 -0.0846448
+v 0.0402362 -0.0675765 -0.0846448
+v 0.0402362 0.0675765 -0.0846448
+v 0.0402362 -0.0675765 0.0846448
+v 0.0402362 0.0675765 0.0846448
+v -0.0402362 -0.0675765 0.0846448
+v -0.0402362 0.0675765 0.0846448
+v -0.0234538 -0.0750675 -0.0846556
+v -0.0234538 0.0750675 -0.0846556
+v 0.0234538 -0.0750675 -0.0846556
+v 0.0234538 0.0750675 -0.0846556
+v 0.0234538 -0.0750675 0.0846556
+v 0.0234538 0.0750675 0.0846556
+v -0.0234538 -0.0750675 0.0846556
+v -0.0234538 0.0750675 0.0846556
+v -0.0451548 -0.0643878 -0.0846717
+v -0.0451548 0.0643878 -0.0846717
+v 0.0451548 -0.0643878 -0.0846717
+v 0.0451548 0.0643878 -0.0846717
+v 0.0451548 -0.0643878 0.0846717
+v 0.0451548 0.0643878 0.0846717
+v -0.0451548 -0.0643878 0.0846717
+v -0.0451548 0.0643878 0.0846717
+v -0.0202172 -0.0759968 -0.0846886
+v -0.0202172 0.0759968 -0.0846886
+v 0.0202172 -0.0759968 -0.0846886
+v 0.0202172 0.0759968 -0.0846886
+v 0.0202172 -0.0759968 0.0846886
+v 0.0202172 0.0759968 0.0846886
+v -0.0202172 -0.0759968 0.0846886
+v -0.0202172 0.0759968 0.0846886
+v -0.0695338 -0.0366961 -0.0847799
+v -0.0695338 0.0366961 -0.0847799
+v 0.0695338 -0.0366961 -0.0847799
+v 0.0695338 0.0366961 -0.0847799
+v 0.0695338 -0.0366961 0.0847799
+v 0.0695338 0.0366961 0.0847799
+v -0.0695338 -0.0366961 0.0847799
+v -0.0695338 0.0366961 0.0847799
+v -0.00789512 -0.0782124 -0.0848486
+v -0.00789512 0.0782124 -0.0848486
+v 0.00789512 -0.0782124 -0.0848486
+v 0.00789512 0.0782124 -0.0848486
+v 0.00789512 -0.0782124 0.0848486
+v 0.00789512 0.0782124 0.0848486
+v -0.00789512 -0.0782124 0.0848486
+v -0.00789512 0.0782124 0.0848486
+v -0.0519257 -0.0590087 -0.0848895
+v -0.0519257 0.0590087 -0.0848895
+v 0.0519257 -0.0590087 -0.0848895
+v 0.0519257 0.0590087 -0.0848895
+v 0.0519257 -0.0590087 0.0848895
+v 0.0519257 0.0590087 0.0848895
+v -0.0519257 -0.0590087 0.0848895
+v -0.0519257 0.0590087 0.0848895
+v -0.0165663 -0.0768314 -0.0849164
+v -0.0165663 0.0768314 -0.0849164
+v 0.0165663 -0.0768314 -0.0849164
+v 0.0165663 0.0768314 -0.0849164
+v 0.0165663 -0.0768314 0.0849164
+v 0.0165663 0.0768314 0.0849164
+v -0.0165663 -0.0768314 0.0849164
+v -0.0165663 0.0768314 0.0849164
+v -0.0599495 -0.0508196 -0.0849471
+v -0.0599495 0.0508196 -0.0849471
+v 0.0599495 -0.0508196 -0.0849471
+v 0.0599495 0.0508196 -0.0849471
+v 0.0599495 -0.0508196 0.0849471
+v 0.0599495 0.0508196 0.0849471
+v -0.0599495 -0.0508196 0.0849471
+v -0.0599495 0.0508196 0.0849471
+v -0.0125773 -0.0775702 -0.084989
+v -0.0125773 0.0775702 -0.084989
+v 0.0125773 -0.0775702 -0.084989
+v 0.0125773 0.0775702 -0.084989
+v 0.0125773 -0.0775702 0.084989
+v 0.0125773 0.0775702 0.084989
+v -0.0125773 -0.0775702 0.084989
+v -0.0125773 0.0775702 0.084989
+v -0.0707572 -0.0341645 -0.0850399
+v -0.0707572 0.0341645 -0.0850399
+v 0.0707572 -0.0341645 -0.0850399
+v 0.0707572 0.0341645 -0.0850399
+v 0.0707572 -0.0341645 0.0850399
+v 0.0707572 0.0341645 0.0850399
+v -0.0707572 -0.0341645 0.0850399
+v -0.0707572 0.0341645 0.0850399
+v -0.0073721 -0.0782124 -0.0851151
+v -0.0073721 0.0782124 -0.0851151
+v 0.0073721 -0.0782124 -0.0851151
+v 0.0073721 0.0782124 -0.0851151
+v 0.0073721 -0.0782124 0.0851151
+v 0.0073721 0.0782124 0.0851151
+v -0.0073721 -0.0782124 0.0851151
+v -0.0073721 0.0782124 0.0851151
+v -0.0374646 -0.0690455 -0.0851367
+v -0.0374646 0.0690455 -0.0851367
+v 0.0374646 -0.0690455 -0.0851367
+v 0.0374646 0.0690455 -0.0851367
+v 0.0374646 -0.0690455 0.0851367
+v 0.0374646 0.0690455 0.0851367
+v -0.0374646 -0.0690455 0.0851367
+v -0.0374646 0.0690455 0.0851367
+v -0.0262304 -0.0740447 -0.0851441
+v -0.0262304 0.0740447 -0.0851441
+v 0.0262304 -0.0740447 -0.0851441
+v 0.0262304 0.0740447 -0.0851441
+v 0.0262304 -0.0740447 0.0851441
+v 0.0262304 0.0740447 0.0851441
+v -0.0262304 -0.0740447 0.0851441
+v -0.0262304 0.0740447 0.0851441
+v -0.0718925 -0.0315903 -0.0852812
+v -0.0718925 0.0315903 -0.0852812
+v 0.0718925 -0.0315903 -0.0852812
+v 0.0718925 0.0315903 -0.0852812
+v 0.0718925 -0.0315903 0.0852812
+v 0.0718925 0.0315903 0.0852812
+v -0.0718925 -0.0315903 0.0852812
+v -0.0718925 0.0315903 0.0852812
+v -0.0068401 -0.0782124 -0.0853631
+v -0.0068401 0.0782124 -0.0853631
+v 0.0068401 -0.0782124 -0.0853631
+v 0.0068401 0.0782124 -0.0853631
+v 0.0068401 -0.0782124 0.0853631
+v 0.0068401 0.0782124 0.0853631
+v -0.0068401 -0.0782124 0.0853631
+v -0.0068401 0.0782124 0.0853631
+v -0.0472878 -0.0626721 -0.0853647
+v -0.0472878 0.0626721 -0.0853647
+v 0.0472878 -0.0626721 -0.0853647
+v 0.0472878 0.0626721 -0.0853647
+v 0.0472878 -0.0626721 0.0853647
+v 0.0472878 0.0626721 0.0853647
+v -0.0472878 -0.0626721 0.0853647
+v -0.0472878 0.0626721 0.0853647
+v -0.0616524 -0.0486075 -0.0853717
+v -0.0616524 0.0486075 -0.0853717
+v 0.0616524 -0.0486075 -0.0853717
+v 0.0616524 0.0486075 -0.0853717
+v 0.0616524 -0.0486075 0.0853717
+v 0.0616524 0.0486075 0.0853717
+v -0.0616524 -0.0486075 0.0853717
+v -0.0616524 0.0486075 0.0853717
+v -0.0196922 -0.0759968 -0.0853852
+v -0.0196922 0.0759968 -0.0853852
+v 0.0196922 -0.0759968 -0.0853852
+v 0.0196922 0.0759968 -0.0853852
+v 0.0196922 -0.0759968 0.0853852
+v 0.0196922 0.0759968 0.0853852
+v -0.0196922 -0.0759968 0.0853852
+v -0.0196922 0.0759968 0.0853852
+v -0.0120465 -0.0775702 -0.0854188
+v -0.0120465 0.0775702 -0.0854188
+v 0.0120465 -0.0775702 -0.0854188
+v 0.0120465 0.0775702 -0.0854188
+v 0.0120465 -0.0775702 0.0854188
+v 0.0120465 0.0775702 0.0854188
+v -0.0120465 -0.0775702 0.0854188
+v -0.0120465 0.0775702 0.0854188
+v -0.0346645 -0.0704285 -0.0854336
+v -0.0346645 0.0704285 -0.0854336
+v 0.0346645 -0.0704285 -0.0854336
+v 0.0346645 0.0704285 -0.0854336
+v 0.0346645 -0.0704285 0.0854336
+v 0.0346645 0.0704285 0.0854336
+v -0.0346645 -0.0704285 0.0854336
+v -0.0346645 0.0704285 0.0854336
+v -0.0290336 -0.0729297 -0.0854374
+v -0.0290336 0.0729297 -0.0854374
+v 0.0290336 -0.0729297 -0.0854374
+v 0.0290336 0.0729297 -0.0854374
+v 0.0290336 -0.0729297 0.0854374
+v 0.0290336 0.0729297 0.0854374
+v -0.0290336 -0.0729297 0.0854374
+v -0.0290336 0.0729297 0.0854374
+v -0.0424522 -0.0660233 -0.0854513
+v -0.0424522 0.0660233 -0.0854513
+v 0.0424522 -0.0660233 -0.0854513
+v 0.0424522 0.0660233 -0.0854513
+v 0.0424522 -0.0660233 0.0854513
+v 0.0424522 0.0660233 0.0854513
+v -0.0424522 -0.0660233 0.0854513
+v -0.0424522 0.0660233 0.0854513
+v -0.0538952 -0.0570655 -0.0854542
+v -0.0538952 0.0570655 -0.0854542
+v 0.0538952 -0.0570655 -0.0854542
+v 0.0538952 0.0570655 -0.0854542
+v 0.0538952 -0.0570655 0.0854542
+v 0.0538952 0.0570655 0.0854542
+v -0.0538952 -0.0570655 0.0854542
+v -0.0538952 0.0570655 0.0854542
+v -0.0229281 -0.0750675 -0.0854652
+v -0.0229281 0.0750675 -0.0854652
+v 0.0229281 -0.0750675 -0.0854652
+v 0.0229281 0.0750675 -0.0854652
+v 0.0229281 -0.0750675 0.0854652
+v 0.0229281 0.0750675 0.0854652
+v -0.0229281 -0.0750675 0.0854652
+v -0.0229281 0.0750675 0.0854652
+v -0.0160356 -0.0768314 -0.0854854
+v -0.0160356 0.0768314 -0.0854854
+v 0.0160356 -0.0768314 -0.0854854
+v 0.0160356 0.0768314 -0.0854854
+v 0.0160356 -0.0768314 0.0854854
+v 0.0160356 0.0768314 0.0854854
+v -0.0160356 -0.0768314 0.0854854
+v -0.0160356 0.0768314 0.0854854
+v -0.0729382 -0.0289768 -0.0855035
+v -0.0729382 0.0289768 -0.0855035
+v 0.0729382 -0.0289768 -0.0855035
+v 0.0729382 0.0289768 -0.0855035
+v 0.0729382 -0.0289768 0.0855035
+v 0.0729382 0.0289768 0.0855035
+v -0.0729382 -0.0289768 0.0855035
+v -0.0729382 0.0289768 0.0855035
+v -0.0318495 -0.0717238 -0.0855341
+v -0.0318495 0.0717238 -0.0855341
+v 0.0318495 -0.0717238 -0.0855341
+v 0.0318495 0.0717238 -0.0855341
+v 0.0318495 -0.0717238 0.0855341
+v 0.0318495 0.0717238 0.0855341
+v -0.0318495 -0.0717238 0.0855341
+v -0.0318495 0.0717238 0.0855341
+v -0.00629977 -0.0782124 -0.0855925
+v -0.00629977 0.0782124 -0.0855925
+v 0.00629977 -0.0782124 -0.0855925
+v 0.00629977 0.0782124 -0.0855925
+v 0.00629977 -0.0782124 0.0855925
+v 0.00629977 0.0782124 0.0855925
+v -0.00629977 -0.0782124 0.0855925
+v -0.00629977 0.0782124 0.0855925
+v -0.0738931 -0.0263271 -0.0857065
+v -0.0738931 0.0263271 -0.0857065
+v 0.0738931 -0.0263271 -0.0857065
+v 0.0738931 0.0263271 -0.0857065
+v 0.0738931 -0.0263271 0.0857065
+v 0.0738931 0.0263271 0.0857065
+v -0.0738931 -0.0263271 0.0857065
+v -0.0738931 0.0263271 0.0857065
+v -0.0632785 -0.0463348 -0.0857771
+v -0.0632785 0.0463348 -0.0857771
+v 0.0632785 -0.0463348 -0.0857771
+v 0.0632785 0.0463348 -0.0857771
+v 0.0632785 -0.0463348 0.0857771
+v 0.0632785 0.0463348 0.0857771
+v -0.0632785 -0.0463348 0.0857771
+v -0.0632785 0.0463348 0.0857771
+v -0.00575176 -0.0782124 -0.0858028
+v -0.00575176 0.0782124 -0.0858028
+v 0.00575176 -0.0782124 -0.0858028
+v 0.00575176 0.0782124 -0.0858028
+v 0.00575176 -0.0782124 0.0858028
+v 0.00575176 0.0782124 0.0858028
+v -0.00575176 -0.0782124 0.0858028
+v -0.00575176 0.0782124 0.0858028
+v -0.0115011 -0.0775702 -0.0858299
+v -0.0115011 0.0775702 -0.0858299
+v 0.0115011 -0.0775702 -0.0858299
+v 0.0115011 0.0775702 -0.0858299
+v 0.0115011 -0.0775702 0.0858299
+v 0.0115011 0.0775702 0.0858299
+v -0.0115011 -0.0775702 0.0858299
+v -0.0115011 0.0775702 0.0858299
+v -0.0747559 -0.0236447 -0.0858899
+v -0.0747559 0.0236447 -0.0858899
+v 0.0747559 -0.0236447 -0.0858899
+v 0.0747559 0.0236447 -0.0858899
+v 0.0747559 -0.0236447 0.0858899
+v 0.0747559 0.0236447 0.0858899
+v -0.0747559 -0.0236447 0.0858899
+v -0.0747559 0.0236447 0.0858899
+v -0.00519675 -0.0782124 -0.085994
+v -0.00519675 0.0782124 -0.085994
+v 0.00519675 -0.0782124 -0.085994
+v 0.00519675 0.0782124 -0.085994
+v 0.00519675 -0.0782124 0.085994
+v 0.00519675 0.0782124 0.085994
+v -0.00519675 -0.0782124 0.085994
+v -0.00519675 0.0782124 0.085994
+v -0.0557975 -0.0550513 -0.0859997
+v -0.0557975 0.0550513 -0.0859997
+v 0.0557975 -0.0550513 -0.0859997
+v 0.0557975 0.0550513 -0.0859997
+v 0.0557975 -0.0550513 0.0859997
+v 0.0557975 0.0550513 0.0859997
+v -0.0557975 -0.0550513 0.0859997
+v -0.0557975 0.0550513 0.0859997
+v -0.0154854 -0.0768314 -0.0860356
+v -0.0154854 0.0768314 -0.0860356
+v 0.0154854 -0.0768314 -0.0860356
+v 0.0154854 0.0768314 -0.0860356
+v 0.0154854 -0.0768314 0.0860356
+v 0.0154854 0.0768314 0.0860356
+v -0.0154854 -0.0768314 0.0860356
+v -0.0154854 0.0768314 0.0860356
+v -0.0493619 -0.0608783 -0.0860386
+v -0.0493619 0.0608783 -0.0860386
+v 0.0493619 -0.0608783 -0.0860386
+v 0.0493619 0.0608783 -0.0860386
+v 0.0493619 -0.0608783 0.0860386
+v 0.0493619 0.0608783 0.0860386
+v -0.0493619 -0.0608783 0.0860386
+v -0.0493619 0.0608783 0.0860386
+v -0.0397006 -0.0675765 -0.0860401
+v -0.0397006 0.0675765 -0.0860401
+v 0.0397006 -0.0675765 -0.0860401
+v 0.0397006 0.0675765 -0.0860401
+v 0.0397006 -0.0675765 0.0860401
+v 0.0397006 0.0675765 0.0860401
+v -0.0397006 -0.0675765 0.0860401
+v -0.0397006 0.0675765 0.0860401
+v -0.0256859 -0.0740447 -0.0860503
+v -0.0256859 0.0740447 -0.0860503
+v 0.0256859 -0.0740447 -0.0860503
+v 0.0256859 0.0740447 -0.0860503
+v 0.0256859 -0.0740447 0.0860503
+v 0.0256859 0.0740447 0.0860503
+v -0.0256859 -0.0740447 0.0860503
+v -0.0256859 0.0740447 0.0860503
+v -0.0755255 -0.0209327 -0.0860534
+v -0.0755255 0.0209327 -0.0860534
+v 0.0755255 -0.0209327 -0.0860534
+v 0.0755255 0.0209327 -0.0860534
+v 0.0755255 -0.0209327 0.0860534
+v 0.0755255 0.0209327 0.0860534
+v -0.0755255 -0.0209327 0.0860534
+v -0.0755255 0.0209327 0.0860534
+v -0.0191433 -0.0759968 -0.0860631
+v -0.0191433 0.0759968 -0.0860631
+v 0.0191433 -0.0759968 -0.0860631
+v 0.0191433 0.0759968 -0.0860631
+v 0.0191433 -0.0759968 0.0860631
+v 0.0191433 0.0759968 0.0860631
+v -0.0191433 -0.0759968 0.0860631
+v -0.0191433 0.0759968 0.0860631
+v -0.0648257 -0.0440044 -0.0861629
+v -0.0648257 0.0440044 -0.0861629
+v 0.0648257 -0.0440044 -0.0861629
+v 0.0648257 0.0440044 -0.0861629
+v 0.0648257 -0.0440044 0.0861629
+v 0.0648257 0.0440044 0.0861629
+v -0.0648257 -0.0440044 0.0861629
+v -0.0648257 0.0440044 0.0861629
+v -0.0046354 -0.0782124 -0.0861656
+v -0.0046354 0.0782124 -0.0861656
+v 0.0046354 -0.0782124 -0.0861656
+v 0.0046354 0.0782124 -0.0861656
+v 0.0046354 -0.0782124 0.0861656
+v 0.0046354 0.0782124 0.0861656
+v -0.0046354 -0.0782124 0.0861656
+v -0.0046354 0.0782124 0.0861656
+v -0.0762011 -0.0181947 -0.086197
+v -0.0762011 0.0181947 -0.086197
+v 0.0762011 -0.0181947 -0.086197
+v 0.0762011 0.0181947 -0.086197
+v 0.0762011 -0.0181947 0.086197
+v 0.0762011 0.0181947 0.086197
+v -0.0762011 -0.0181947 0.086197
+v -0.0762011 0.0181947 0.086197
+v -0.0109416 -0.0775702 -0.0862216
+v -0.0109416 0.0775702 -0.0862216
+v 0.0109416 -0.0775702 -0.0862216
+v 0.0109416 0.0775702 -0.0862216
+v 0.0109416 -0.0775702 0.0862216
+v 0.0109416 0.0775702 0.0862216
+v -0.0109416 -0.0775702 0.0862216
+v -0.0109416 0.0775702 0.0862216
+v -0.0446153 -0.0643878 -0.0862386
+v -0.0446153 0.0643878 -0.0862386
+v 0.0446153 -0.0643878 -0.0862386
+v 0.0446153 0.0643878 -0.0862386
+v 0.0446153 -0.0643878 0.0862386
+v 0.0446153 0.0643878 0.0862386
+v -0.0446153 -0.0643878 0.0862386
+v -0.0446153 0.0643878 0.0862386
+v -0.0223744 -0.0750675 -0.0862559
+v -0.0223744 0.0750675 -0.0862559
+v 0.0223744 -0.0750675 -0.0862559
+v 0.0223744 0.0750675 -0.0862559
+v 0.0223744 -0.0750675 0.0862559
+v 0.0223744 0.0750675 0.0862559
+v -0.0223744 -0.0750675 0.0862559
+v -0.0223744 0.0750675 0.0862559
+v -0.00406841 -0.0782124 -0.0863175
+v -0.00406841 0.0782124 -0.0863175
+v 0.00406841 -0.0782124 -0.0863175
+v 0.00406841 0.0782124 -0.0863175
+v 0.00406841 -0.0782124 0.0863175
+v 0.00406841 0.0782124 0.0863175
+v -0.00406841 -0.0782124 0.0863175
+v -0.00406841 0.0782124 0.0863175
+v -0.0767817 -0.0154341 -0.0863205
+v -0.0767817 0.0154341 -0.0863205
+v 0.0767817 -0.0154341 -0.0863205
+v 0.0767817 0.0154341 -0.0863205
+v 0.0767817 -0.0154341 0.0863205
+v 0.0767817 0.0154341 0.0863205
+v -0.0767817 -0.0154341 0.0863205
+v -0.0767817 0.0154341 0.0863205
+v -0.0772667 -0.0126542 -0.0864235
+v -0.0772667 0.0126542 -0.0864235
+v 0.0772667 -0.0126542 -0.0864235
+v 0.0772667 0.0126542 -0.0864235
+v 0.0772667 -0.0126542 0.0864235
+v 0.0772667 0.0126542 0.0864235
+v -0.0772667 -0.0126542 0.0864235
+v -0.0772667 0.0126542 0.0864235
+v -0.0369135 -0.0690455 -0.086435
+v -0.0369135 0.0690455 -0.086435
+v 0.0369135 -0.0690455 -0.086435
+v 0.0369135 0.0690455 -0.086435
+v 0.0369135 -0.0690455 0.086435
+v 0.0369135 0.0690455 0.086435
+v -0.0369135 -0.0690455 0.086435
+v -0.0369135 0.0690455 0.086435
+v -0.0284771 -0.0729297 -0.0864413
+v -0.0284771 0.0729297 -0.0864413
+v 0.0284771 -0.0729297 -0.0864413
+v 0.0284771 0.0729297 -0.0864413
+v 0.0284771 -0.0729297 0.0864413
+v 0.0284771 0.0729297 0.0864413
+v -0.0284771 -0.0729297 0.0864413
+v -0.0284771 0.0729297 0.0864413
+v -0.00349646 -0.0782124 -0.0864495
+v -0.00349646 0.0782124 -0.0864495
+v 0.00349646 -0.0782124 -0.0864495
+v 0.00349646 0.0782124 -0.0864495
+v 0.00349646 -0.0782124 0.0864495
+v 0.00349646 0.0782124 0.0864495
+v -0.00349646 -0.0782124 0.0864495
+v -0.00349646 0.0782124 0.0864495
+v -0.0776554 -0.00985854 -0.0865062
+v -0.0776554 0.00985854 -0.0865062
+v 0.0776554 -0.00985854 -0.0865062
+v 0.0776554 0.00985854 -0.0865062
+v 0.0776554 -0.00985854 0.0865062
+v 0.0776554 0.00985854 0.0865062
+v -0.0776554 -0.00985854 0.0865062
+v -0.0776554 0.00985854 0.0865062
+v -0.0576304 -0.0529685 -0.0865252
+v -0.0576304 0.0529685 -0.0865252
+v 0.0576304 -0.0529685 -0.0865252
+v 0.0576304 0.0529685 -0.0865252
+v 0.0576304 -0.0529685 0.0865252
+v 0.0576304 0.0529685 0.0865252
+v -0.0576304 -0.0529685 0.0865252
+v -0.0576304 0.0529685 0.0865252
+v -0.0662922 -0.0416192 -0.0865285
+v -0.0662922 0.0416192 -0.0865285
+v 0.0662922 -0.0416192 -0.0865285
+v 0.0662922 0.0416192 -0.0865285
+v 0.0662922 -0.0416192 0.0865285
+v 0.0662922 0.0416192 0.0865285
+v -0.0662922 -0.0416192 0.0865285
+v -0.0662922 0.0416192 0.0865285
+v -0.00292025 -0.0782124 -0.0865615
+v -0.00292025 0.0782124 -0.0865615
+v 0.00292025 -0.0782124 -0.0865615
+v 0.00292025 0.0782124 -0.0865615
+v 0.00292025 -0.0782124 0.0865615
+v 0.00292025 0.0782124 0.0865615
+v -0.00292025 -0.0782124 0.0865615
+v -0.00292025 0.0782124 0.0865615
+v -0.0149164 -0.0768314 -0.0865663
+v -0.0149164 0.0768314 -0.0865663
+v 0.0149164 -0.0768314 -0.0865663
+v 0.0149164 0.0768314 -0.0865663
+v 0.0149164 -0.0768314 0.0865663
+v 0.0149164 0.0768314 0.0865663
+v -0.0149164 -0.0768314 0.0865663
+v -0.0149164 0.0768314 0.0865663
+v -0.0779473 -0.0070506 -0.0865682
+v -0.0779473 0.0070506 -0.0865682
+v 0.0779473 -0.0070506 -0.0865682
+v 0.0779473 0.0070506 -0.0865682
+v 0.0779473 -0.0070506 0.0865682
+v 0.0779473 0.0070506 0.0865682
+v -0.0779473 -0.0070506 0.0865682
+v -0.0779473 0.0070506 0.0865682
+v -0.0103688 -0.0775702 -0.0865936
+v -0.0103688 0.0775702 -0.0865936
+v 0.0103688 -0.0775702 -0.0865936
+v 0.0103688 0.0775702 -0.0865936
+v 0.0103688 -0.0775702 0.0865936
+v 0.0103688 0.0775702 0.0865936
+v -0.0103688 -0.0775702 0.0865936
+v -0.0103688 0.0775702 0.0865936
+v -0.0781421 -0.00423388 -0.0866096
+v -0.0781421 0.00423388 -0.0866096
+v 0.0781421 -0.00423388 -0.0866096
+v 0.0781421 0.00423388 -0.0866096
+v 0.0781421 -0.00423388 0.0866096
+v 0.0781421 0.00423388 0.0866096
+v -0.0781421 -0.00423388 0.0866096
+v -0.0781421 0.00423388 0.0866096
+v -0.0782396 -0.00141188 -0.0866303
+v -0.0782396 0.00141188 -0.0866303
+v 0.0782396 -0.00141188 -0.0866303
+v 0.0782396 0.00141188 -0.0866303
+v 0.0782396 -0.00141188 0.0866303
+v 0.0782396 0.00141188 0.0866303
+v -0.0782396 -0.00141188 0.0866303
+v -0.0782396 0.00141188 0.0866303
+v -0.0341048 -0.0704285 -0.086634
+v -0.0341048 0.0704285 -0.086634
+v 0.0341048 -0.0704285 -0.086634
+v 0.0341048 0.0704285 -0.086634
+v 0.0341048 -0.0704285 0.086634
+v 0.0341048 0.0704285 0.086634
+v -0.0341048 -0.0704285 0.086634
+v -0.0341048 0.0704285 0.086634
+v -0.031288 -0.0717238 -0.0866361
+v -0.031288 0.0717238 -0.0866361
+v 0.031288 -0.0717238 -0.0866361
+v 0.031288 0.0717238 -0.0866361
+v 0.031288 -0.0717238 0.0866361
+v 0.031288 0.0717238 0.0866361
+v -0.031288 -0.0717238 0.0866361
+v -0.031288 0.0717238 0.0866361
+v -0.00234048 -0.0782124 -0.0866534
+v -0.00234048 0.0782124 -0.0866534
+v 0.00234048 -0.0782124 -0.0866534
+v 0.00234048 0.0782124 -0.0866534
+v 0.00234048 -0.0782124 0.0866534
+v 0.00234048 0.0782124 0.0866534
+v -0.00234048 -0.0782124 0.0866534
+v -0.00234048 0.0782124 0.0866534
+v -0.0513745 -0.0590087 -0.0866926
+v -0.0513745 0.0590087 -0.0866926
+v 0.0513745 -0.0590087 -0.0866926
+v 0.0513745 0.0590087 -0.0866926
+v 0.0513745 -0.0590087 0.0866926
+v 0.0513745 0.0590087 0.0866926
+v -0.0513745 -0.0590087 0.0866926
+v -0.0513745 0.0590087 0.0866926
+v -0.018571 -0.0759968 -0.0867214
+v -0.018571 0.0759968 -0.0867214
+v 0.018571 -0.0759968 -0.0867214
+v 0.018571 0.0759968 -0.0867214
+v 0.018571 -0.0759968 0.0867214
+v 0.018571 0.0759968 0.0867214
+v -0.018571 -0.0759968 0.0867214
+v -0.018571 0.0759968 0.0867214
+v -0.00175786 -0.0782124 -0.0867249
+v -0.00175786 0.0782124 -0.0867249
+v 0.00175786 -0.0782124 -0.0867249
+v 0.00175786 0.0782124 -0.0867249
+v 0.00175786 -0.0782124 0.0867249
+v 0.00175786 0.0782124 0.0867249
+v -0.00175786 -0.0782124 0.0867249
+v -0.00175786 0.0782124 0.0867249
+v -0.0011731 -0.0782124 -0.0867761
+v -0.0011731 0.0782124 -0.0867761
+v 0.0011731 -0.0782124 -0.0867761
+v 0.0011731 0.0782124 -0.0867761
+v 0.0011731 -0.0782124 0.0867761
+v 0.0011731 0.0782124 0.0867761
+v -0.0011731 -0.0782124 0.0867761
+v -0.0011731 0.0782124 0.0867761
+v -0.000586906 -0.0782124 -0.0868068
+v -0.000586906 0.0782124 -0.0868068
+v 0.000586906 -0.0782124 -0.0868068
+v 0.000586906 0.0782124 -0.0868068
+v 0.000586906 -0.0782124 0.0868068
+v 0.000586906 0.0782124 0.0868068
+v -0.000586906 -0.0782124 0.0868068
+v -0.000586906 0.0782124 0.0868068
+v -3.08924e-18 -0.0782124 -0.086817
+v -3.08924e-18 0.0782124 -0.086817
+v 1.02975e-18 -0.0782124 0.086817
+v 1.02975e-18 0.0782124 0.086817
+v -0.0676761 -0.0391821 -0.0868735
+v -0.0676761 0.0391821 -0.0868735
+v 0.0676761 -0.0391821 -0.0868735
+v 0.0676761 0.0391821 -0.0868735
+v 0.0676761 -0.0391821 0.0868735
+v 0.0676761 0.0391821 0.0868735
+v -0.0676761 -0.0391821 0.0868735
+v -0.0676761 0.0391821 0.0868735
+v -0.0418871 -0.0660233 -0.0869235
+v -0.0418871 0.0660233 -0.0869235
+v 0.0418871 -0.0660233 -0.0869235
+v 0.0418871 0.0660233 -0.0869235
+v 0.0418871 -0.0660233 0.0869235
+v 0.0418871 0.0660233 0.0869235
+v -0.0418871 -0.0660233 0.0869235
+v -0.0418871 0.0660233 0.0869235
+v -0.0251101 -0.0740447 -0.086937
+v -0.0251101 0.0740447 -0.086937
+v 0.0251101 -0.0740447 -0.086937
+v 0.0251101 0.0740447 -0.086937
+v 0.0251101 -0.0740447 0.086937
+v 0.0251101 0.0740447 0.086937
+v -0.0251101 -0.0740447 0.086937
+v -0.0251101 0.0740447 0.086937
+v -0.0097834 -0.0775702 -0.0869453
+v -0.0097834 0.0775702 -0.0869453
+v 0.0097834 -0.0775702 -0.0869453
+v 0.0097834 0.0775702 -0.0869453
+v 0.0097834 -0.0775702 0.0869453
+v 0.0097834 0.0775702 0.0869453
+v -0.0097834 -0.0775702 0.0869453
+v -0.0097834 0.0775702 0.0869453
+v -0.0467228 -0.0626721 -0.0870057
+v -0.0467228 0.0626721 -0.0870057
+v 0.0467228 -0.0626721 -0.0870057
+v 0.0467228 0.0626721 -0.0870057
+v 0.0467228 -0.0626721 0.0870057
+v 0.0467228 0.0626721 0.0870057
+v -0.0467228 -0.0626721 0.0870057
+v -0.0467228 0.0626721 0.0870057
+v -0.0217934 -0.0750675 -0.0870269
+v -0.0217934 0.0750675 -0.0870269
+v 0.0217934 -0.0750675 -0.0870269
+v 0.0217934 0.0750675 -0.0870269
+v 0.0217934 -0.0750675 0.0870269
+v 0.0217934 0.0750675 0.0870269
+v -0.0217934 -0.0750675 0.0870269
+v -0.0217934 0.0750675 0.0870269
+v -0.0593914 -0.0508196 -0.0870302
+v -0.0593914 0.0508196 -0.0870302
+v 0.0593914 -0.0508196 -0.0870302
+v 0.0593914 0.0508196 -0.0870302
+v 0.0593914 -0.0508196 0.0870302
+v 0.0593914 0.0508196 0.0870302
+v -0.0593914 -0.0508196 0.0870302
+v -0.0593914 0.0508196 0.0870302
+v -0.0143291 -0.0768314 -0.0870768
+v -0.0143291 0.0768314 -0.0870768
+v 0.0143291 -0.0768314 -0.0870768
+v 0.0143291 0.0768314 -0.0870768
+v 0.0143291 -0.0768314 0.0870768
+v 0.0143291 0.0768314 0.0870768
+v -0.0143291 -0.0768314 0.0870768
+v -0.0143291 0.0768314 0.0870768
+v -0.0689756 -0.0366961 -0.0871976
+v -0.0689756 0.0366961 -0.0871976
+v 0.0689756 -0.0366961 -0.0871976
+v 0.0689756 0.0366961 -0.0871976
+v 0.0689756 -0.0366961 0.0871976
+v 0.0689756 0.0366961 0.0871976
+v -0.0689756 -0.0366961 0.0871976
+v -0.0689756 0.0366961 0.0871976
+v -0.00918605 -0.0775702 -0.0872765
+v -0.00918605 0.0775702 -0.0872765
+v 0.00918605 -0.0775702 -0.0872765
+v 0.00918605 0.0775702 -0.0872765
+v 0.00918605 -0.0775702 0.0872765
+v 0.00918605 0.0775702 0.0872765
+v -0.00918605 -0.0775702 0.0872765
+v -0.00918605 0.0775702 0.0872765
+v -0.053323 -0.0570655 -0.0873257
+v -0.053323 0.0570655 -0.0873257
+v 0.053323 -0.0570655 -0.0873257
+v 0.053323 0.0570655 -0.0873257
+v 0.053323 -0.0570655 0.0873257
+v 0.053323 0.0570655 0.0873257
+v -0.053323 -0.0570655 0.0873257
+v -0.053323 0.0570655 0.0873257
+v -0.0179761 -0.0759968 -0.0873594
+v -0.0179761 0.0759968 -0.0873594
+v 0.0179761 -0.0759968 -0.0873594
+v 0.0179761 0.0759968 -0.0873594
+v 0.0179761 -0.0759968 0.0873594
+v 0.0179761 0.0759968 0.0873594
+v -0.0179761 -0.0759968 0.0873594
+v -0.0179761 0.0759968 0.0873594
+v -0.0391166 -0.0675765 -0.0874158
+v -0.0391166 0.0675765 -0.0874158
+v 0.0391166 -0.0675765 -0.0874158
+v 0.0391166 0.0675765 -0.0874158
+v 0.0391166 -0.0675765 0.0874158
+v 0.0391166 0.0675765 0.0874158
+v -0.0391166 -0.0675765 0.0874158
+v -0.0391166 0.0675765 0.0874158
+v -0.027886 -0.0729297 -0.0874251
+v -0.027886 0.0729297 -0.0874251
+v 0.027886 -0.0729297 -0.0874251
+v 0.027886 0.0729297 -0.0874251
+v 0.027886 -0.0729297 0.0874251
+v 0.027886 0.0729297 0.0874251
+v -0.027886 -0.0729297 0.0874251
+v -0.027886 0.0729297 0.0874251
+v -0.0701893 -0.0341645 -0.0875001
+v -0.0701893 0.0341645 -0.0875001
+v 0.0701893 -0.0341645 -0.0875001
+v 0.0701893 0.0341645 -0.0875001
+v 0.0701893 -0.0341645 0.0875001
+v 0.0701893 0.0341645 0.0875001
+v -0.0701893 -0.0341645 0.0875001
+v -0.0701893 0.0341645 0.0875001
+v -0.0610784 -0.0486075 -0.087514
+v -0.0610784 0.0486075 -0.087514
+v 0.0610784 -0.0486075 -0.087514
+v 0.0610784 0.0486075 -0.087514
+v 0.0610784 -0.0486075 0.087514
+v 0.0610784 0.0486075 0.087514
+v -0.0610784 -0.0486075 0.087514
+v -0.0610784 0.0486075 0.087514
+v -0.0137244 -0.0768314 -0.0875665
+v -0.0137244 0.0768314 -0.0875665
+v 0.0137244 -0.0768314 -0.0875665
+v 0.0137244 0.0768314 -0.0875665
+v 0.0137244 -0.0768314 0.0875665
+v 0.0137244 0.0768314 0.0875665
+v -0.0137244 -0.0768314 0.0875665
+v -0.0137244 0.0768314 0.0875665
+v -0.00857752 -0.0775702 -0.0875865
+v -0.00857752 0.0775702 -0.0875865
+v 0.00857752 -0.0775702 -0.0875865
+v 0.00857752 0.0775702 -0.0875865
+v 0.00857752 -0.0775702 0.0875865
+v 0.00857752 0.0775702 0.0875865
+v -0.00857752 -0.0775702 0.0875865
+v -0.00857752 0.0775702 0.0875865
+v -0.0363175 -0.0690455 -0.0877132
+v -0.0363175 0.0690455 -0.0877132
+v 0.0363175 -0.0690455 -0.0877132
+v 0.0363175 0.0690455 -0.0877132
+v 0.0363175 -0.0690455 0.0877132
+v 0.0363175 0.0690455 0.0877132
+v -0.0363175 -0.0690455 0.0877132
+v -0.0363175 0.0690455 0.0877132
+v -0.0306883 -0.0717238 -0.0877179
+v -0.0306883 0.0717238 -0.0877179
+v 0.0306883 -0.0717238 -0.0877179
+v 0.0306883 0.0717238 -0.0877179
+v 0.0306883 -0.0717238 0.0877179
+v 0.0306883 0.0717238 0.0877179
+v -0.0306883 -0.0717238 0.0877179
+v -0.0306883 0.0717238 0.0877179
+v -0.0487721 -0.0608783 -0.0877516
+v -0.0487721 0.0608783 -0.0877516
+v 0.0487721 -0.0608783 -0.0877516
+v 0.0487721 0.0608783 -0.0877516
+v 0.0487721 -0.0608783 0.0877516
+v 0.0487721 0.0608783 0.0877516
+v -0.0487721 -0.0608783 0.0877516
+v -0.0487721 0.0608783 0.0877516
+v -0.0211859 -0.0750675 -0.0877771
+v -0.0211859 0.0750675 -0.0877771
+v 0.0211859 -0.0750675 -0.0877771
+v 0.0211859 0.0750675 -0.0877771
+v 0.0211859 -0.0750675 0.0877771
+v 0.0211859 0.0750675 0.0877771
+v -0.0211859 -0.0750675 0.0877771
+v -0.0211859 0.0750675 0.0877771
+v -0.0713154 -0.0315903 -0.0877809
+v -0.0713154 0.0315903 -0.0877809
+v 0.0713154 -0.0315903 -0.0877809
+v 0.0713154 0.0315903 -0.0877809
+v 0.0713154 -0.0315903 0.0877809
+v 0.0713154 0.0315903 0.0877809
+v -0.0713154 -0.0315903 0.0877809
+v -0.0713154 0.0315903 0.0877809
+v -0.0440214 -0.0643878 -0.0877858
+v -0.0440214 0.0643878 -0.0877858
+v 0.0440214 -0.0643878 -0.0877858
+v 0.0440214 0.0643878 -0.0877858
+v 0.0440214 -0.0643878 0.0877858
+v 0.0440214 0.0643878 0.0877858
+v -0.0440214 -0.0643878 0.0877858
+v -0.0440214 0.0643878 0.0877858
+v -0.0245037 -0.0740447 -0.087803
+v -0.0245037 0.0740447 -0.087803
+v 0.0245037 -0.0740447 -0.087803
+v 0.0245037 0.0740447 -0.087803
+v 0.0245037 -0.0740447 0.087803
+v 0.0245037 0.0740447 0.087803
+v -0.0245037 -0.0740447 0.087803
+v -0.0245037 0.0740447 0.087803
+v -0.0335035 -0.0704285 -0.0878141
+v -0.0335035 0.0704285 -0.0878141
+v 0.0335035 -0.0704285 -0.0878141
+v 0.0335035 0.0704285 -0.0878141
+v 0.0335035 -0.0704285 0.0878141
+v 0.0335035 0.0704285 0.0878141
+v -0.0335035 -0.0704285 0.0878141
+v -0.0335035 0.0704285 0.0878141
+v -0.00795853 -0.0775702 -0.0878752
+v -0.00795853 0.0775702 -0.0878752
+v 0.00795853 -0.0775702 -0.0878752
+v 0.00795853 0.0775702 -0.0878752
+v 0.00795853 -0.0775702 0.0878752
+v 0.00795853 0.0775702 0.0878752
+v -0.00795853 -0.0775702 0.0878752
+v -0.00795853 0.0775702 0.0878752
+v -0.0552052 -0.0550513 -0.0879372
+v -0.0552052 0.0550513 -0.0879372
+v 0.0552052 -0.0550513 -0.0879372
+v 0.0552052 0.0550513 -0.0879372
+v 0.0552052 -0.0550513 0.0879372
+v 0.0552052 0.0550513 0.0879372
+v -0.0552052 -0.0550513 0.0879372
+v -0.0552052 0.0550513 0.0879372
+v -0.0626893 -0.0463348 -0.0879759
+v -0.0626893 0.0463348 -0.0879759
+v 0.0626893 -0.0463348 -0.0879759
+v 0.0626893 0.0463348 -0.0879759
+v 0.0626893 -0.0463348 0.0879759
+v 0.0626893 0.0463348 0.0879759
+v -0.0626893 -0.0463348 0.0879759
+v -0.0626893 0.0463348 0.0879759
+v -0.0173594 -0.0759968 -0.0879761
+v -0.0173594 0.0759968 -0.0879761
+v 0.0173594 -0.0759968 -0.0879761
+v 0.0173594 0.0759968 -0.0879761
+v 0.0173594 -0.0759968 0.0879761
+v 0.0173594 0.0759968 0.0879761
+v -0.0173594 -0.0759968 0.0879761
+v -0.0173594 0.0759968 0.0879761
+v -0.013103 -0.0768314 -0.0880347
+v -0.013103 0.0768314 -0.0880347
+v 0.013103 -0.0768314 -0.0880347
+v 0.013103 0.0768314 -0.0880347
+v 0.013103 -0.0768314 0.0880347
+v 0.013103 0.0768314 0.0880347
+v -0.013103 -0.0768314 0.0880347
+v -0.013103 0.0768314 0.0880347
+v -0.0723528 -0.0289768 -0.0880396
+v -0.0723528 0.0289768 -0.0880396
+v 0.0723528 -0.0289768 -0.0880396
+v 0.0723528 0.0289768 -0.0880396
+v 0.0723528 -0.0289768 0.0880396
+v 0.0723528 0.0289768 0.0880396
+v -0.0723528 -0.0289768 0.0880396
+v -0.0723528 0.0289768 0.0880396
+v -0.00732985 -0.0775702 -0.088142
+v -0.00732985 0.0775702 -0.088142
+v 0.00732985 -0.0775702 -0.088142
+v 0.00732985 0.0775702 -0.088142
+v 0.00732985 -0.0775702 0.088142
+v 0.00732985 0.0775702 0.088142
+v -0.00732985 -0.0775702 0.088142
+v -0.00732985 0.0775702 0.088142
+v -0.0732999 -0.0263271 -0.0882757
+v -0.0732999 0.0263271 -0.0882757
+v 0.0732999 -0.0263271 -0.0882757
+v 0.0732999 0.0263271 -0.0882757
+v 0.0732999 -0.0263271 0.0882757
+v 0.0732999 0.0263271 0.0882757
+v -0.0732999 -0.0263271 0.0882757
+v -0.0732999 0.0263271 0.0882757
+v -0.0412709 -0.0660233 -0.088375
+v -0.0412709 0.0660233 -0.088375
+v 0.0412709 -0.0660233 -0.088375
+v 0.0412709 0.0660233 -0.088375
+v 0.0412709 -0.0660233 0.088375
+v 0.0412709 0.0660233 0.088375
+v -0.0412709 -0.0660233 0.088375
+v -0.0412709 0.0660233 0.088375
+v -0.00669224 -0.0775702 -0.0883868
+v -0.00669224 0.0775702 -0.0883868
+v 0.00669224 -0.0775702 -0.0883868
+v 0.00669224 0.0775702 -0.0883868
+v 0.00669224 -0.0775702 0.0883868
+v 0.00669224 0.0775702 0.0883868
+v -0.00669224 -0.0775702 0.0883868
+v -0.00669224 0.0775702 0.0883868
+v -0.0272609 -0.0729297 -0.0883877
+v -0.0272609 0.0729297 -0.0883877
+v 0.0272609 -0.0729297 -0.0883877
+v 0.0272609 0.0729297 -0.0883877
+v 0.0272609 -0.0729297 0.0883877
+v 0.0272609 0.0729297 0.0883877
+v -0.0272609 -0.0729297 0.0883877
+v -0.0272609 0.0729297 0.0883877
+v -0.0642222 -0.0440044 -0.0884154
+v -0.0642222 0.0440044 -0.0884154
+v 0.0642222 -0.0440044 -0.0884154
+v 0.0642222 0.0440044 -0.0884154
+v 0.0642222 -0.0440044 0.0884154
+v 0.0642222 0.0440044 0.0884154
+v -0.0642222 -0.0440044 0.0884154
+v -0.0642222 0.0440044 0.0884154
+v -0.0507606 -0.0590087 -0.0884753
+v -0.0507606 0.0590087 -0.0884753
+v 0.0507606 -0.0590087 -0.0884753
+v 0.0507606 0.0590087 -0.0884753
+v 0.0507606 -0.0590087 0.0884753
+v 0.0507606 0.0590087 0.0884753
+v -0.0507606 -0.0590087 0.0884753
+v -0.0507606 0.0590087 0.0884753
+v -0.0124656 -0.0768314 -0.088481
+v -0.0124656 0.0768314 -0.088481
+v 0.0124656 -0.0768314 -0.088481
+v 0.0124656 0.0768314 -0.088481
+v 0.0124656 -0.0768314 0.088481
+v 0.0124656 0.0768314 0.088481
+v -0.0124656 -0.0768314 0.088481
+v -0.0124656 0.0768314 0.088481
+v -0.0741558 -0.0236447 -0.0884891
+v -0.0741558 0.0236447 -0.0884891
+v 0.0741558 -0.0236447 -0.0884891
+v 0.0741558 0.0236447 -0.0884891
+v 0.0741558 -0.0236447 0.0884891
+v 0.0741558 0.0236447 0.0884891
+v -0.0741558 -0.0236447 0.0884891
+v -0.0741558 0.0236447 0.0884891
+v -0.0205526 -0.0750675 -0.0885056
+v -0.0205526 0.0750675 -0.0885056
+v 0.0205526 -0.0750675 -0.0885056
+v 0.0205526 0.0750675 -0.0885056
+v 0.0205526 -0.0750675 0.0885056
+v 0.0205526 0.0750675 0.0885056
+v -0.0205526 -0.0750675 0.0885056
+v -0.0205526 0.0750675 0.0885056
+v -0.0570185 -0.0529685 -0.0885264
+v -0.0570185 0.0529685 -0.0885264
+v 0.0570185 -0.0529685 -0.0885264
+v 0.0570185 0.0529685 -0.0885264
+v 0.0570185 -0.0529685 0.0885264
+v 0.0570185 0.0529685 0.0885264
+v -0.0570185 -0.0529685 0.0885264
+v -0.0570185 0.0529685 0.0885264
+v -0.0167214 -0.0759968 -0.088571
+v -0.0167214 0.0759968 -0.088571
+v 0.0167214 -0.0759968 -0.088571
+v 0.0167214 0.0759968 -0.088571
+v 0.0167214 -0.0759968 0.088571
+v 0.0167214 0.0759968 0.088571
+v -0.0167214 -0.0759968 0.088571
+v -0.0167214 0.0759968 0.088571
+v -0.00604647 -0.0775702 -0.0886091
+v -0.00604647 0.0775702 -0.0886091
+v 0.00604647 -0.0775702 -0.0886091
+v 0.00604647 0.0775702 -0.0886091
+v 0.00604647 -0.0775702 0.0886091
+v 0.00604647 0.0775702 0.0886091
+v -0.00604647 -0.0775702 0.0886091
+v -0.00604647 0.0775702 0.0886091
+v -0.0461008 -0.0626721 -0.0886259
+v -0.0461008 0.0626721 -0.0886259
+v 0.0461008 -0.0626721 -0.0886259
+v 0.0461008 0.0626721 -0.0886259
+v 0.0461008 -0.0626721 0.0886259
+v 0.0461008 0.0626721 0.0886259
+v -0.0461008 -0.0626721 0.0886259
+v -0.0461008 0.0626721 0.0886259
+v -0.0238675 -0.0740447 -0.0886473
+v -0.0238675 0.0740447 -0.0886473
+v 0.0238675 -0.0740447 -0.0886473
+v 0.0238675 0.0740447 -0.0886473
+v 0.0238675 -0.0740447 0.0886473
+v 0.0238675 0.0740447 0.0886473
+v -0.0238675 -0.0740447 0.0886473
+v -0.0238675 0.0740447 0.0886473
+v -0.0749193 -0.0209327 -0.0886795
+v -0.0749193 0.0209327 -0.0886795
+v 0.0749193 -0.0209327 -0.0886795
+v 0.0749193 0.0209327 -0.0886795
+v 0.0749193 -0.0209327 0.0886795
+v 0.0749193 0.0209327 0.0886795
+v -0.0749193 -0.0209327 0.0886795
+v -0.0749193 0.0209327 0.0886795
+v -0.038485 -0.0675765 -0.0887704
+v -0.038485 0.0675765 -0.0887704
+v 0.038485 -0.0675765 -0.0887704
+v 0.038485 0.0675765 -0.0887704
+v 0.038485 -0.0675765 0.0887704
+v 0.038485 0.0675765 0.0887704
+v -0.038485 -0.0675765 0.0887704
+v -0.038485 0.0675765 0.0887704
+v -0.0300513 -0.0717238 -0.0887781
+v -0.0300513 0.0717238 -0.0887781
+v 0.0300513 -0.0717238 -0.0887781
+v 0.0300513 0.0717238 -0.0887781
+v 0.0300513 -0.0717238 0.0887781
+v 0.0300513 0.0717238 0.0887781
+v -0.0300513 -0.0717238 0.0887781
+v -0.0300513 0.0717238 0.0887781
+v -0.00539334 -0.0775702 -0.0888088
+v -0.00539334 0.0775702 -0.0888088
+v 0.00539334 -0.0775702 -0.0888088
+v 0.00539334 0.0775702 -0.0888088
+v 0.00539334 -0.0775702 0.0888088
+v 0.00539334 0.0775702 0.0888088
+v -0.00539334 -0.0775702 0.0888088
+v -0.00539334 0.0775702 0.0888088
+v -0.065675 -0.0416192 -0.088832
+v -0.065675 0.0416192 -0.088832
+v 0.065675 -0.0416192 -0.088832
+v 0.065675 0.0416192 -0.088832
+v 0.065675 -0.0416192 0.088832
+v 0.065675 0.0416192 0.088832
+v -0.065675 -0.0416192 0.088832
+v -0.065675 0.0416192 0.088832
+v -0.0755894 -0.0181947 -0.0888466
+v -0.0755894 0.0181947 -0.0888466
+v 0.0755894 -0.0181947 -0.0888466
+v 0.0755894 0.0181947 -0.0888466
+v 0.0755894 -0.0181947 0.0888466
+v 0.0755894 0.0181947 0.0888466
+v -0.0755894 -0.0181947 0.0888466
+v -0.0755894 0.0181947 0.0888466
+v -0.0118131 -0.0768314 -0.0889048
+v -0.0118131 0.0768314 -0.0889048
+v 0.0118131 -0.0768314 -0.0889048
+v 0.0118131 0.0768314 -0.0889048
+v 0.0118131 -0.0768314 0.0889048
+v 0.0118131 0.0768314 0.0889048
+v -0.0118131 -0.0768314 0.0889048
+v -0.0118131 0.0768314 0.0889048
+v -0.0356772 -0.0690455 -0.0889699
+v -0.0356772 0.0690455 -0.0889699
+v 0.0356772 -0.0690455 -0.0889699
+v 0.0356772 0.0690455 -0.0889699
+v 0.0356772 -0.0690455 0.0889699
+v 0.0356772 0.0690455 0.0889699
+v -0.0356772 -0.0690455 0.0889699
+v -0.0356772 0.0690455 0.0889699
+v -0.0328613 -0.0704285 -0.0889725
+v -0.0328613 0.0704285 -0.0889725
+v 0.0328613 -0.0704285 -0.0889725
+v 0.0328613 0.0704285 -0.0889725
+v 0.0328613 -0.0704285 0.0889725
+v 0.0328613 0.0704285 0.0889725
+v -0.0328613 -0.0704285 0.0889725
+v -0.0328613 0.0704285 0.0889725
+v -0.00473364 -0.0775702 -0.0889856
+v -0.00473364 0.0775702 -0.0889856
+v 0.00473364 -0.0775702 -0.0889856
+v 0.00473364 0.0775702 -0.0889856
+v 0.00473364 -0.0775702 0.0889856
+v 0.00473364 0.0775702 0.0889856
+v -0.00473364 -0.0775702 0.0889856
+v -0.00473364 0.0775702 0.0889856
+v -0.0761654 -0.0154341 -0.0889902
+v -0.0761654 0.0154341 -0.0889902
+v 0.0761654 -0.0154341 -0.0889902
+v 0.0761654 0.0154341 -0.0889902
+v 0.0761654 -0.0154341 0.0889902
+v 0.0761654 0.0154341 0.0889902
+v -0.0761654 -0.0154341 0.0889902
+v -0.0761654 0.0154341 0.0889902
+v -0.0587609 -0.0508196 -0.0890926
+v -0.0587609 0.0508196 -0.0890926
+v 0.0587609 -0.0508196 -0.0890926
+v 0.0587609 0.0508196 -0.0890926
+v 0.0587609 -0.0508196 0.0890926
+v 0.0587609 0.0508196 0.0890926
+v -0.0587609 -0.0508196 0.0890926
+v -0.0587609 0.0508196 0.0890926
+v -0.0766464 -0.0126542 -0.0891101
+v -0.0766464 0.0126542 -0.0891101
+v 0.0766464 -0.0126542 -0.0891101
+v 0.0766464 0.0126542 -0.0891101
+v 0.0766464 -0.0126542 0.0891101
+v 0.0766464 0.0126542 0.0891101
+v -0.0766464 -0.0126542 0.0891101
+v -0.0766464 0.0126542 0.0891101
+v -0.00406816 -0.0775702 -0.0891392
+v -0.00406816 0.0775702 -0.0891392
+v 0.00406816 -0.0775702 -0.0891392
+v 0.00406816 0.0775702 -0.0891392
+v 0.00406816 -0.0775702 0.0891392
+v 0.00406816 0.0775702 0.0891392
+v -0.00406816 -0.0775702 0.0891392
+v -0.00406816 0.0775702 0.0891392
+v -0.0160631 -0.0759968 -0.0891433
+v -0.0160631 0.0759968 -0.0891433
+v 0.0160631 -0.0759968 -0.0891433
+v 0.0160631 0.0759968 -0.0891433
+v 0.0160631 -0.0759968 0.0891433
+v 0.0160631 0.0759968 0.0891433
+v -0.0160631 -0.0759968 0.0891433
+v -0.0160631 0.0759968 0.0891433
+v -0.0526859 -0.0570655 -0.0891761
+v -0.0526859 0.0570655 -0.0891761
+v 0.0526859 -0.0570655 -0.0891761
+v 0.0526859 0.0570655 -0.0891761
+v 0.0526859 -0.0570655 0.0891761
+v 0.0526859 0.0570655 0.0891761
+v -0.0526859 -0.0570655 0.0891761
+v -0.0526859 0.0570655 0.0891761
+v -0.077032 -0.00985854 -0.0892062
+v -0.077032 0.00985854 -0.0892062
+v 0.077032 -0.00985854 -0.0892062
+v 0.077032 0.00985854 -0.0892062
+v 0.077032 -0.00985854 0.0892062
+v 0.077032 0.00985854 0.0892062
+v -0.077032 -0.00985854 0.0892062
+v -0.077032 0.00985854 0.0892062
+v -0.0198942 -0.0750675 -0.0892116
+v -0.0198942 0.0750675 -0.0892116
+v 0.0198942 -0.0750675 -0.0892116
+v 0.0198942 0.0750675 -0.0892116
+v 0.0198942 -0.0750675 0.0892116
+v 0.0198942 0.0750675 0.0892116
+v -0.0198942 -0.0750675 0.0892116
+v -0.0198942 0.0750675 0.0892116
+v -0.067046 -0.0391821 -0.0892251
+v -0.067046 0.0391821 -0.0892251
+v 0.067046 -0.0391821 -0.0892251
+v 0.067046 0.0391821 -0.0892251
+v 0.067046 -0.0391821 0.0892251
+v 0.067046 0.0391821 0.0892251
+v -0.067046 -0.0391821 0.0892251
+v -0.067046 0.0391821 0.0892251
+v -0.00339774 -0.0775702 -0.0892695
+v -0.00339774 0.0775702 -0.0892695
+v 0.00339774 -0.0775702 -0.0892695
+v 0.00339774 0.0775702 -0.0892695
+v 0.00339774 -0.0775702 0.0892695
+v 0.00339774 0.0775702 0.0892695
+v -0.00339774 -0.0775702 0.0892695
+v -0.00339774 0.0775702 0.0892695
+v -0.0773216 -0.0070506 -0.0892784
+v -0.0773216 0.0070506 -0.0892784
+v 0.0773216 -0.0070506 -0.0892784
+v 0.0773216 0.0070506 -0.0892784
+v 0.0773216 -0.0070506 0.0892784
+v 0.0773216 0.0070506 0.0892784
+v -0.0773216 -0.0070506 0.0892784
+v -0.0773216 0.0070506 0.0892784
+v -0.0111461 -0.0768314 -0.0893056
+v -0.0111461 0.0768314 -0.0893056
+v 0.0111461 -0.0768314 -0.0893056
+v 0.0111461 0.0768314 -0.0893056
+v 0.0111461 -0.0768314 0.0893056
+v 0.0111461 0.0768314 0.0893056
+v -0.0111461 -0.0768314 0.0893056
+v -0.0111461 0.0768314 0.0893056
+v -0.0433738 -0.0643878 -0.0893113
+v -0.0433738 0.0643878 -0.0893113
+v 0.0433738 -0.0643878 -0.0893113
+v 0.0433738 0.0643878 -0.0893113
+v 0.0433738 -0.0643878 0.0893113
+v 0.0433738 0.0643878 0.0893113
+v -0.0433738 -0.0643878 0.0893113
+v -0.0433738 0.0643878 0.0893113
+v -0.0775149 -0.00423388 -0.0893266
+v -0.0775149 0.00423388 -0.0893266
+v 0.0775149 -0.00423388 -0.0893266
+v 0.0775149 0.00423388 -0.0893266
+v 0.0775149 -0.00423388 0.0893266
+v 0.0775149 0.00423388 0.0893266
+v -0.0775149 -0.00423388 0.0893266
+v -0.0775149 0.00423388 0.0893266
+v -0.0266025 -0.0729297 -0.0893279
+v -0.0266025 0.0729297 -0.0893279
+v 0.0266025 -0.0729297 -0.0893279
+v 0.0266025 0.0729297 -0.0893279
+v 0.0266025 -0.0729297 0.0893279
+v 0.0266025 0.0729297 0.0893279
+v -0.0266025 -0.0729297 0.0893279
+v -0.0266025 0.0729297 0.0893279
+v -0.0776116 -0.00141188 -0.0893507
+v -0.0776116 0.00141188 -0.0893507
+v 0.0776116 -0.00141188 -0.0893507
+v 0.0776116 0.00141188 -0.0893507
+v 0.0776116 -0.00141188 0.0893507
+v 0.0776116 0.00141188 0.0893507
+v -0.0776116 -0.00141188 0.0893507
+v -0.0776116 0.00141188 0.0893507
+v -0.00272317 -0.0775702 -0.0893764
+v -0.00272317 0.0775702 -0.0893764
+v 0.00272317 -0.0775702 -0.0893764
+v 0.00272317 0.0775702 -0.0893764
+v 0.00272317 -0.0775702 0.0893764
+v 0.00272317 0.0775702 0.0893764
+v -0.00272317 -0.0775702 0.0893764
+v -0.00272317 0.0775702 0.0893764
+v -0.0481228 -0.0608783 -0.0894429
+v -0.0481228 0.0608783 -0.0894429
+v 0.0481228 -0.0608783 -0.0894429
+v 0.0481228 0.0608783 -0.0894429
+v 0.0481228 -0.0608783 0.0894429
+v 0.0481228 0.0608783 0.0894429
+v -0.0481228 -0.0608783 0.0894429
+v -0.0481228 0.0608783 0.0894429
+v -0.00204529 -0.0775702 -0.0894596
+v -0.00204529 0.0775702 -0.0894596
+v 0.00204529 -0.0775702 -0.0894596
+v 0.00204529 0.0775702 -0.0894596
+v 0.00204529 -0.0775702 0.0894596
+v 0.00204529 0.0775702 0.0894596
+v -0.00204529 -0.0775702 0.0894596
+v -0.00204529 0.0775702 0.0894596
+v -0.0232022 -0.0740447 -0.0894689
+v -0.0232022 0.0740447 -0.0894689
+v 0.0232022 -0.0740447 -0.0894689
+v 0.0232022 0.0740447 -0.0894689
+v 0.0232022 -0.0740447 0.0894689
+v 0.0232022 0.0740447 0.0894689
+v -0.0232022 -0.0740447 0.0894689
+v -0.0232022 0.0740447 0.0894689
+v -0.00136491 -0.0775702 -0.0895191
+v -0.00136491 0.0775702 -0.0895191
+v 0.00136491 -0.0775702 -0.0895191
+v 0.00136491 0.0775702 -0.0895191
+v 0.00136491 -0.0775702 0.0895191
+v 0.00136491 0.0775702 0.0895191
+v -0.00136491 -0.0775702 0.0895191
+v -0.00136491 0.0775702 0.0895191
+v -0.000682871 -0.0775702 -0.0895549
+v -0.000682871 0.0775702 -0.0895549
+v 0.000682871 -0.0775702 -0.0895549
+v 0.000682871 0.0775702 -0.0895549
+v 0.000682871 -0.0775702 0.0895549
+v 0.000682871 0.0775702 0.0895549
+v -0.000682871 -0.0775702 0.0895549
+v -0.000682871 0.0775702 0.0895549
+v -3.59436e-18 -0.0775702 -0.0895668
+v -3.59436e-18 0.0775702 -0.0895668
+v 1.19812e-18 -0.0775702 0.0895668
+v 1.19812e-18 0.0775702 0.0895668
+v -0.0683334 -0.0366961 -0.0895943
+v -0.0683334 0.0366961 -0.0895943
+v 0.0683334 -0.0366961 -0.0895943
+v 0.0683334 0.0366961 -0.0895943
+v 0.0683334 -0.0366961 0.0895943
+v 0.0683334 0.0366961 0.0895943
+v -0.0683334 -0.0366961 0.0895943
+v -0.0683334 0.0366961 0.0895943
+v -0.06043 -0.0486075 -0.0896349
+v -0.06043 0.0486075 -0.0896349
+v 0.06043 -0.0486075 -0.0896349
+v 0.06043 0.0486075 -0.0896349
+v 0.06043 -0.0486075 0.0896349
+v 0.06043 0.0486075 0.0896349
+v -0.06043 -0.0486075 0.0896349
+v -0.06043 0.0486075 0.0896349
+v -0.0104655 -0.0768314 -0.0896828
+v -0.0104655 0.0768314 -0.0896828
+v 0.0104655 -0.0768314 -0.0896828
+v 0.0104655 0.0768314 -0.0896828
+v 0.0104655 -0.0768314 0.0896828
+v 0.0104655 0.0768314 0.0896828
+v -0.0104655 -0.0768314 0.0896828
+v -0.0104655 0.0768314 0.0896828
+v -0.0153852 -0.0759968 -0.0896922
+v -0.0153852 0.0759968 -0.0896922
+v 0.0153852 -0.0759968 -0.0896922
+v 0.0153852 0.0759968 -0.0896922
+v 0.0153852 -0.0759968 0.0896922
+v 0.0153852 0.0759968 0.0896922
+v -0.0153852 -0.0759968 0.0896922
+v -0.0153852 0.0759968 0.0896922
+v -0.0406045 -0.0660233 -0.0898041
+v -0.0406045 0.0660233 -0.0898041
+v 0.0406045 -0.0660233 -0.0898041
+v 0.0406045 0.0660233 -0.0898041
+v 0.0406045 -0.0660233 0.0898041
+v 0.0406045 0.0660233 0.0898041
+v -0.0406045 -0.0660233 0.0898041
+v -0.0406045 0.0660233 0.0898041
+v -0.0293777 -0.0717238 -0.0898155
+v -0.0293777 0.0717238 -0.0898155
+v 0.0293777 -0.0717238 -0.0898155
+v 0.0293777 0.0717238 -0.0898155
+v 0.0293777 -0.0717238 0.0898155
+v 0.0293777 0.0717238 0.0898155
+v -0.0293777 -0.0717238 0.0898155
+v -0.0293777 0.0717238 0.0898155
+v -0.0545455 -0.0550513 -0.089853
+v -0.0545455 0.0550513 -0.089853
+v 0.0545455 -0.0550513 -0.089853
+v 0.0545455 0.0550513 -0.089853
+v 0.0545455 -0.0550513 0.089853
+v 0.0545455 0.0550513 0.089853
+v -0.0545455 -0.0550513 0.089853
+v -0.0545455 0.0550513 0.089853
+v -0.0192116 -0.0750675 -0.0898942
+v -0.0192116 0.0750675 -0.0898942
+v 0.0192116 -0.0750675 -0.0898942
+v 0.0192116 0.0750675 -0.0898942
+v 0.0192116 -0.0750675 0.0898942
+v 0.0192116 0.0750675 0.0898942
+v -0.0192116 -0.0750675 0.0898942
+v -0.0192116 0.0750675 0.0898942
+v -0.0695357 -0.0341645 -0.0899391
+v -0.0695357 0.0341645 -0.0899391
+v 0.0695357 -0.0341645 -0.0899391
+v 0.0695357 0.0341645 -0.0899391
+v 0.0695357 -0.0341645 0.0899391
+v 0.0695357 0.0341645 0.0899391
+v -0.0695357 -0.0341645 0.0899391
+v -0.0695357 0.0341645 0.0899391
+v -0.00977224 -0.0768314 -0.0900361
+v -0.00977224 0.0768314 -0.0900361
+v 0.00977224 -0.0768314 -0.0900361
+v 0.00977224 0.0768314 -0.0900361
+v 0.00977224 -0.0768314 0.0900361
+v 0.00977224 0.0768314 0.0900361
+v -0.00977224 -0.0768314 0.0900361
+v -0.00977224 0.0768314 0.0900361
+v -0.0378064 -0.0675765 -0.090102
+v -0.0378064 0.0675765 -0.090102
+v 0.0378064 -0.0675765 -0.090102
+v 0.0378064 0.0675765 -0.090102
+v 0.0378064 -0.0675765 0.090102
+v 0.0378064 0.0675765 0.090102
+v -0.0378064 -0.0675765 0.090102
+v -0.0378064 0.0675765 0.090102
+v -0.0321792 -0.0704285 -0.0901078
+v -0.0321792 0.0704285 -0.0901078
+v 0.0321792 -0.0704285 -0.0901078
+v 0.0321792 0.0704285 -0.0901078
+v 0.0321792 -0.0704285 0.0901078
+v 0.0321792 0.0704285 0.0901078
+v -0.0321792 -0.0704285 0.0901078
+v -0.0321792 0.0704285 0.0901078
+v -0.0620238 -0.0463348 -0.0901528
+v -0.0620238 0.0463348 -0.0901528
+v 0.0620238 -0.0463348 -0.0901528
+v 0.0620238 0.0463348 -0.0901528
+v 0.0620238 -0.0463348 0.0901528
+v 0.0620238 0.0463348 0.0901528
+v -0.0620238 -0.0463348 0.0901528
+v -0.0620238 0.0463348 0.0901528
+v -0.0349934 -0.0690455 -0.0902034
+v -0.0349934 0.0690455 -0.0902034
+v 0.0349934 -0.0690455 -0.0902034
+v 0.0349934 0.0690455 -0.0902034
+v 0.0349934 -0.0690455 0.0902034
+v 0.0349934 0.0690455 0.0902034
+v -0.0349934 -0.0690455 0.0902034
+v -0.0349934 0.0690455 0.0902034
+v -0.0146886 -0.0759968 -0.0902172
+v -0.0146886 0.0759968 -0.0902172
+v 0.0146886 -0.0759968 -0.0902172
+v 0.0146886 0.0759968 -0.0902172
+v 0.0146886 -0.0759968 0.0902172
+v 0.0146886 0.0759968 0.0902172
+v -0.0146886 -0.0759968 0.0902172
+v -0.0146886 0.0759968 0.0902172
+v -0.0454227 -0.0626721 -0.0902235
+v -0.0454227 0.0626721 -0.0902235
+v 0.0454227 -0.0626721 -0.0902235
+v 0.0454227 0.0626721 -0.0902235
+v 0.0454227 -0.0626721 0.0902235
+v 0.0454227 0.0626721 0.0902235
+v -0.0454227 -0.0626721 0.0902235
+v -0.0454227 0.0626721 0.0902235
+v -0.0500849 -0.0590087 -0.0902356
+v -0.0500849 0.0590087 -0.0902356
+v 0.0500849 -0.0590087 -0.0902356
+v 0.0500849 0.0590087 -0.0902356
+v 0.0500849 -0.0590087 0.0902356
+v 0.0500849 0.0590087 0.0902356
+v -0.0500849 -0.0590087 0.0902356
+v -0.0500849 0.0590087 0.0902356
+v -0.0259118 -0.0729297 -0.0902445
+v -0.0259118 0.0729297 -0.0902445
+v 0.0259118 -0.0729297 -0.0902445
+v 0.0259118 0.0729297 -0.0902445
+v 0.0259118 -0.0729297 0.0902445
+v 0.0259118 0.0729297 0.0902445
+v -0.0259118 -0.0729297 0.0902445
+v -0.0259118 0.0729297 0.0902445
+v -0.0706514 -0.0315903 -0.090259
+v -0.0706514 0.0315903 -0.090259
+v 0.0706514 -0.0315903 -0.090259
+v 0.0706514 0.0315903 -0.090259
+v 0.0706514 -0.0315903 0.090259
+v 0.0706514 0.0315903 0.090259
+v -0.0706514 -0.0315903 0.090259
+v -0.0706514 0.0315903 0.090259
+v -0.0225086 -0.0740447 -0.0902668
+v -0.0225086 0.0740447 -0.0902668
+v 0.0225086 -0.0740447 -0.0902668
+v 0.0225086 0.0740447 -0.0902668
+v 0.0225086 -0.0740447 0.0902668
+v 0.0225086 0.0740447 0.0902668
+v -0.0225086 -0.0740447 0.0902668
+v -0.0225086 0.0740447 0.0902668
+v -0.00906704 -0.0768314 -0.0903649
+v -0.00906704 0.0768314 -0.0903649
+v 0.00906704 -0.0768314 -0.0903649
+v 0.00906704 0.0768314 -0.0903649
+v 0.00906704 -0.0768314 0.0903649
+v 0.00906704 0.0768314 0.0903649
+v -0.00906704 -0.0768314 0.0903649
+v -0.00906704 0.0768314 0.0903649
+v -0.0563372 -0.0529685 -0.0905051
+v -0.0563372 0.0529685 -0.0905051
+v 0.0563372 -0.0529685 -0.0905051
+v 0.0563372 0.0529685 -0.0905051
+v 0.0563372 -0.0529685 0.0905051
+v 0.0563372 0.0529685 0.0905051
+v -0.0563372 -0.0529685 0.0905051
+v -0.0563372 0.0529685 0.0905051
+v -0.0185056 -0.0750675 -0.0905526
+v -0.0185056 0.0750675 -0.0905526
+v 0.0185056 -0.0750675 -0.0905526
+v 0.0185056 0.0750675 -0.0905526
+v 0.0185056 -0.0750675 0.0905526
+v 0.0185056 0.0750675 0.0905526
+v -0.0185056 -0.0750675 0.0905526
+v -0.0185056 0.0750675 0.0905526
+v -0.0716791 -0.0289768 -0.0905537
+v -0.0716791 0.0289768 -0.0905537
+v 0.0716791 -0.0289768 -0.0905537
+v 0.0716791 0.0289768 -0.0905537
+v 0.0716791 -0.0289768 0.0905537
+v 0.0716791 0.0289768 0.0905537
+v -0.0716791 -0.0289768 0.0905537
+v -0.0716791 0.0289768 0.0905537
+v -0.0635403 -0.0440044 -0.0906455
+v -0.0635403 0.0440044 -0.0906455
+v 0.0635403 -0.0440044 -0.0906455
+v 0.0635403 0.0440044 -0.0906455
+v 0.0635403 -0.0440044 0.0906455
+v 0.0635403 0.0440044 0.0906455
+v -0.0635403 -0.0440044 0.0906455
+v -0.0635403 0.0440044 0.0906455
+v -0.00835079 -0.0768314 -0.0906689
+v -0.00835079 0.0768314 -0.0906689
+v 0.00835079 -0.0768314 -0.0906689
+v 0.00835079 0.0768314 -0.0906689
+v 0.00835079 -0.0768314 0.0906689
+v 0.00835079 0.0768314 0.0906689
+v -0.00835079 -0.0768314 0.0906689
+v -0.00835079 0.0768314 0.0906689
+v -0.0139741 -0.0759968 -0.0907175
+v -0.0139741 0.0759968 -0.0907175
+v 0.0139741 -0.0759968 -0.0907175
+v 0.0139741 0.0759968 -0.0907175
+v 0.0139741 -0.0759968 0.0907175
+v 0.0139741 0.0759968 0.0907175
+v -0.0139741 -0.0759968 0.0907175
+v -0.0139741 0.0759968 0.0907175
+v -0.0426734 -0.0643878 -0.0908132
+v -0.0426734 0.0643878 -0.0908132
+v 0.0426734 -0.0643878 -0.0908132
+v 0.0426734 0.0643878 -0.0908132
+v 0.0426734 -0.0643878 0.0908132
+v 0.0426734 0.0643878 0.0908132
+v -0.0426734 -0.0643878 0.0908132
+v -0.0426734 0.0643878 0.0908132
+v -0.0726175 -0.0263271 -0.0908227
+v -0.0726175 0.0263271 -0.0908227
+v 0.0726175 -0.0263271 -0.0908227
+v 0.0726175 0.0263271 -0.0908227
+v 0.0726175 -0.0263271 0.0908227
+v 0.0726175 0.0263271 0.0908227
+v -0.0726175 -0.0263271 0.0908227
+v -0.0726175 0.0263271 0.0908227
+v -0.0286682 -0.0717238 -0.0908287
+v -0.0286682 0.0717238 -0.0908287
+v 0.0286682 -0.0717238 -0.0908287
+v 0.0286682 0.0717238 -0.0908287
+v 0.0286682 -0.0717238 0.0908287
+v 0.0286682 0.0717238 0.0908287
+v -0.0286682 -0.0717238 0.0908287
+v -0.0286682 0.0717238 0.0908287
+v -0.00762437 -0.0768314 -0.0909478
+v -0.00762437 0.0768314 -0.0909478
+v 0.00762437 -0.0768314 -0.0909478
+v 0.00762437 0.0768314 -0.0909478
+v 0.00762437 -0.0768314 0.0909478
+v 0.00762437 0.0768314 0.0909478
+v -0.00762437 -0.0768314 0.0909478
+v -0.00762437 0.0768314 0.0909478
+v -0.0519846 -0.0570655 -0.0910031
+v -0.0519846 0.0570655 -0.0910031
+v 0.0519846 -0.0570655 -0.0910031
+v 0.0519846 0.0570655 -0.0910031
+v 0.0519846 -0.0570655 0.0910031
+v 0.0519846 0.0570655 0.0910031
+v -0.0519846 -0.0570655 0.0910031
+v -0.0519846 0.0570655 0.0910031
+v -0.0217876 -0.0740447 -0.09104
+v -0.0217876 0.0740447 -0.09104
+v 0.0217876 -0.0740447 -0.09104
+v 0.0217876 0.0740447 -0.09104
+v 0.0217876 -0.0740447 0.09104
+v 0.0217876 0.0740447 0.09104
+v -0.0217876 -0.0740447 0.09104
+v -0.0217876 0.0740447 0.09104
+v -0.0734654 -0.0236447 -0.0910659
+v -0.0734654 0.0236447 -0.0910659
+v 0.0734654 -0.0236447 -0.0910659
+v 0.0734654 0.0236447 -0.0910659
+v 0.0734654 -0.0236447 0.0910659
+v 0.0734654 0.0236447 0.0910659
+v -0.0734654 -0.0236447 0.0910659
+v -0.0734654 0.0236447 0.0910659
+v -0.047415 -0.0608783 -0.0911105
+v -0.047415 0.0608783 -0.0911105
+v 0.047415 -0.0608783 -0.0911105
+v 0.047415 0.0608783 -0.0911105
+v 0.047415 -0.0608783 0.0911105
+v 0.047415 0.0608783 0.0911105
+v -0.047415 -0.0608783 0.0911105
+v -0.047415 0.0608783 0.0911105
+v -0.0649777 -0.0416192 -0.0911125
+v -0.0649777 0.0416192 -0.0911125
+v 0.0649777 -0.0416192 -0.0911125
+v 0.0649777 0.0416192 -0.0911125
+v 0.0649777 -0.0416192 0.0911125
+v 0.0649777 0.0416192 0.0911125
+v -0.0649777 -0.0416192 0.0911125
+v -0.0649777 0.0416192 0.0911125
+v -0.0580587 -0.0508196 -0.0911316
+v -0.0580587 0.0508196 -0.0911316
+v 0.0580587 -0.0508196 -0.0911316
+v 0.0580587 0.0508196 -0.0911316
+v 0.0580587 -0.0508196 0.0911316
+v 0.0580587 0.0508196 0.0911316
+v -0.0580587 -0.0508196 0.0911316
+v -0.0580587 0.0508196 0.0911316
+v -0.0251895 -0.0729297 -0.0911365
+v -0.0251895 0.0729297 -0.0911365
+v 0.0251895 -0.0729297 -0.0911365
+v 0.0251895 0.0729297 -0.0911365
+v 0.0251895 -0.0729297 0.0911365
+v 0.0251895 0.0729297 0.0911365
+v -0.0251895 -0.0729297 0.0911365
+v -0.0251895 0.0729297 0.0911365
+v -0.0177771 -0.0750675 -0.0911859
+v -0.0177771 0.0750675 -0.0911859
+v 0.0177771 -0.0750675 -0.0911859
+v 0.0177771 0.0750675 -0.0911859
+v 0.0177771 -0.0750675 0.0911859
+v 0.0177771 0.0750675 0.0911859
+v -0.0177771 -0.0750675 0.0911859
+v -0.0177771 0.0750675 0.0911859
+v -0.0132426 -0.0759968 -0.0911925
+v -0.0132426 0.0759968 -0.0911925
+v 0.0132426 -0.0759968 -0.0911925
+v 0.0132426 0.0759968 -0.0911925
+v 0.0132426 -0.0759968 0.0911925
+v 0.0132426 0.0759968 0.0911925
+v -0.0132426 -0.0759968 0.0911925
+v -0.0132426 0.0759968 0.0911925
+v -0.00688866 -0.0768314 -0.0912011
+v -0.00688866 0.0768314 -0.0912011
+v 0.00688866 -0.0768314 -0.0912011
+v 0.00688866 0.0768314 -0.0912011
+v 0.00688866 -0.0768314 0.0912011
+v 0.00688866 0.0768314 0.0912011
+v -0.00688866 -0.0768314 0.0912011
+v -0.00688866 0.0768314 0.0912011
+v -0.0398886 -0.0660233 -0.0912092
+v -0.0398886 0.0660233 -0.0912092
+v 0.0398886 -0.0660233 -0.0912092
+v 0.0398886 0.0660233 -0.0912092
+v 0.0398886 -0.0660233 0.0912092
+v 0.0398886 0.0660233 0.0912092
+v -0.0398886 -0.0660233 0.0912092
+v -0.0398886 0.0660233 0.0912092
+v -0.0314578 -0.0704285 -0.0912186
+v -0.0314578 0.0704285 -0.0912186
+v 0.0314578 -0.0704285 -0.0912186
+v 0.0314578 0.0704285 -0.0912186
+v 0.0314578 -0.0704285 0.0912186
+v 0.0314578 0.0704285 0.0912186
+v -0.0314578 -0.0704285 0.0912186
+v -0.0314578 0.0704285 0.0912186
+v -0.0742217 -0.0209327 -0.0912827
+v -0.0742217 0.0209327 -0.0912827
+v 0.0742217 -0.0209327 -0.0912827
+v 0.0742217 0.0209327 -0.0912827
+v 0.0742217 -0.0209327 0.0912827
+v 0.0742217 0.0209327 0.0912827
+v -0.0742217 -0.0209327 0.0912827
+v -0.0742217 0.0209327 0.0912827
+v -0.0370819 -0.0675765 -0.0914092
+v -0.0370819 0.0675765 -0.0914092
+v 0.0370819 -0.0675765 -0.0914092
+v 0.0370819 0.0675765 -0.0914092
+v 0.0370819 -0.0675765 0.0914092
+v 0.0370819 0.0675765 0.0914092
+v -0.0370819 -0.0675765 0.0914092
+v -0.0370819 0.0675765 0.0914092
+v -0.034267 -0.0690455 -0.0914124
+v -0.034267 0.0690455 -0.0914124
+v 0.034267 -0.0690455 -0.0914124
+v 0.034267 0.0690455 -0.0914124
+v 0.034267 -0.0690455 0.0914124
+v 0.034267 0.0690455 0.0914124
+v -0.034267 -0.0690455 0.0914124
+v -0.034267 0.0690455 0.0914124
+v -0.00614455 -0.0768314 -0.0914286
+v -0.00614455 0.0768314 -0.0914286
+v 0.00614455 -0.0768314 -0.0914286
+v 0.00614455 0.0768314 -0.0914286
+v 0.00614455 -0.0768314 0.0914286
+v 0.00614455 0.0768314 0.0914286
+v -0.00614455 -0.0768314 0.0914286
+v -0.00614455 0.0768314 0.0914286
+v -0.0748856 -0.0181947 -0.0914731
+v -0.0748856 0.0181947 -0.0914731
+v 0.0748856 -0.0181947 -0.0914731
+v 0.0748856 0.0181947 -0.0914731
+v 0.0748856 -0.0181947 0.0914731
+v 0.0748856 0.0181947 0.0914731
+v -0.0748856 -0.0181947 0.0914731
+v -0.0748856 0.0181947 0.0914731
+v -0.0663342 -0.0391821 -0.0915533
+v -0.0663342 0.0391821 -0.0915533
+v 0.0663342 -0.0391821 -0.0915533
+v 0.0663342 0.0391821 -0.0915533
+v 0.0663342 -0.0391821 0.0915533
+v 0.0663342 0.0391821 0.0915533
+v -0.0663342 -0.0391821 0.0915533
+v -0.0663342 0.0391821 0.0915533
+v -0.00539296 -0.0768314 -0.09163
+v -0.00539296 0.0768314 -0.09163
+v 0.00539296 -0.0768314 -0.09163
+v 0.00539296 0.0768314 -0.09163
+v 0.00539296 -0.0768314 0.09163
+v 0.00539296 0.0768314 0.09163
+v -0.00539296 -0.0768314 0.09163
+v -0.00539296 0.0768314 0.09163
+v -0.0754562 -0.0154341 -0.0916367
+v -0.0754562 0.0154341 -0.0916367
+v 0.0754562 -0.0154341 -0.0916367
+v 0.0754562 0.0154341 -0.0916367
+v 0.0754562 -0.0154341 0.0916367
+v 0.0754562 0.0154341 0.0916367
+v -0.0754562 -0.0154341 0.0916367
+v -0.0754562 0.0154341 0.0916367
+v -0.0124949 -0.0759968 -0.0916418
+v -0.0124949 0.0759968 -0.0916418
+v 0.0124949 -0.0759968 -0.0916418
+v 0.0124949 0.0759968 -0.0916418
+v 0.0124949 -0.0759968 0.0916418
+v 0.0124949 0.0759968 0.0916418
+v -0.0124949 -0.0759968 0.0916418
+v -0.0124949 0.0759968 0.0916418
+v -0.0597079 -0.0486075 -0.0917319
+v -0.0597079 0.0486075 -0.0917319
+v 0.0597079 -0.0486075 -0.0917319
+v 0.0597079 0.0486075 -0.0917319
+v 0.0597079 -0.0486075 0.0917319
+v 0.0597079 0.0486075 0.0917319
+v -0.0597079 -0.0486075 0.0917319
+v -0.0597079 0.0486075 0.0917319
+v -0.0538194 -0.0550513 -0.0917445
+v -0.0538194 0.0550513 -0.0917445
+v 0.0538194 -0.0550513 -0.0917445
+v 0.0538194 0.0550513 -0.0917445
+v 0.0538194 -0.0550513 0.0917445
+v 0.0538194 0.0550513 0.0917445
+v -0.0538194 -0.0550513 0.0917445
+v -0.0538194 0.0550513 0.0917445
+v -0.0759328 -0.0126542 -0.0917734
+v -0.0759328 0.0126542 -0.0917734
+v 0.0759328 -0.0126542 -0.0917734
+v 0.0759328 0.0126542 -0.0917734
+v 0.0759328 -0.0126542 0.0917734
+v 0.0759328 0.0126542 0.0917734
+v -0.0759328 -0.0126542 0.0917734
+v -0.0759328 0.0126542 0.0917734
+v -0.02104 -0.0740447 -0.0917875
+v -0.02104 0.0740447 -0.0917875
+v 0.02104 -0.0740447 -0.0917875
+v 0.02104 0.0740447 -0.0917875
+v 0.02104 -0.0740447 0.0917875
+v 0.02104 0.0740447 0.0917875
+v -0.02104 -0.0740447 0.0917875
+v -0.02104 0.0740447 0.0917875
+v -0.0170269 -0.0750675 -0.0917934
+v -0.0170269 0.0750675 -0.0917934
+v 0.0170269 -0.0750675 -0.0917934
+v 0.0170269 0.0750675 -0.0917934
+v 0.0170269 -0.0750675 0.0917934
+v 0.0170269 0.0750675 0.0917934
+v -0.0170269 -0.0750675 0.0917934
+v -0.0170269 0.0750675 0.0917934
+v -0.0446892 -0.0626721 -0.0917964
+v -0.0446892 0.0626721 -0.0917964
+v 0.0446892 -0.0626721 -0.0917964
+v 0.0446892 0.0626721 -0.0917964
+v 0.0446892 -0.0626721 0.0917964
+v 0.0446892 0.0626721 0.0917964
+v -0.0446892 -0.0626721 0.0917964
+v -0.0446892 0.0626721 0.0917964
+v -0.0046348 -0.0768314 -0.091805
+v -0.0046348 0.0768314 -0.091805
+v 0.0046348 -0.0768314 -0.091805
+v 0.0046348 0.0768314 -0.091805
+v 0.0046348 -0.0768314 0.091805
+v 0.0046348 0.0768314 0.091805
+v -0.0046348 -0.0768314 0.091805
+v -0.0046348 0.0768314 0.091805
+v -0.0279238 -0.0717238 -0.0918165
+v -0.0279238 0.0717238 -0.0918165
+v 0.0279238 -0.0717238 -0.0918165
+v 0.0279238 0.0717238 -0.0918165
+v 0.0279238 -0.0717238 0.0918165
+v 0.0279238 0.0717238 0.0918165
+v -0.0279238 -0.0717238 0.0918165
+v -0.0279238 0.0717238 0.0918165
+v -0.0763148 -0.00985854 -0.0918829
+v -0.0763148 0.00985854 -0.0918829
+v 0.0763148 -0.00985854 -0.0918829
+v 0.0763148 0.00985854 -0.0918829
+v 0.0763148 -0.00985854 0.0918829
+v 0.0763148 0.00985854 0.0918829
+v -0.0763148 -0.00985854 0.0918829
+v -0.0763148 0.00985854 0.0918829
+v -0.00387099 -0.0768314 -0.0919535
+v -0.00387099 0.0768314 -0.0919535
+v 0.00387099 -0.0768314 -0.0919535
+v 0.00387099 0.0768314 -0.0919535
+v 0.00387099 -0.0768314 0.0919535
+v 0.00387099 0.0768314 0.0919535
+v -0.00387099 -0.0768314 0.0919535
+v -0.00387099 0.0768314 0.0919535
+v -0.0766017 -0.0070506 -0.0919652
+v -0.0766017 0.0070506 -0.0919652
+v 0.0766017 -0.0070506 -0.0919652
+v 0.0766017 0.0070506 -0.0919652
+v 0.0766017 -0.0070506 0.0919652
+v 0.0766017 0.0070506 0.0919652
+v -0.0766017 -0.0070506 0.0919652
+v -0.0766017 0.0070506 0.0919652
+v -0.067608 -0.0366961 -0.0919672
+v -0.067608 0.0366961 -0.0919672
+v 0.067608 -0.0366961 -0.0919672
+v 0.067608 0.0366961 -0.0919672
+v 0.067608 -0.0366961 0.0919672
+v 0.067608 0.0366961 0.0919672
+v -0.067608 -0.0366961 0.0919672
+v -0.067608 0.0366961 0.0919672
+v -0.0493482 -0.0590087 -0.0919712
+v -0.0493482 0.0590087 -0.0919712
+v 0.0493482 -0.0590087 -0.0919712
+v 0.0493482 0.0590087 -0.0919712
+v 0.0493482 -0.0590087 0.0919712
+v 0.0493482 0.0590087 0.0919712
+v -0.0493482 -0.0590087 0.0919712
+v -0.0493482 0.0590087 0.0919712
+v -0.0244365 -0.0729297 -0.0920027
+v -0.0244365 0.0729297 -0.0920027
+v 0.0244365 -0.0729297 -0.0920027
+v 0.0244365 0.0729297 -0.0920027
+v 0.0244365 -0.0729297 0.0920027
+v 0.0244365 0.0729297 0.0920027
+v -0.0244365 -0.0729297 0.0920027
+v -0.0244365 0.0729297 0.0920027
+v -0.0767932 -0.00423388 -0.0920201
+v -0.0767932 0.00423388 -0.0920201
+v 0.0767932 -0.00423388 -0.0920201
+v 0.0767932 0.00423388 -0.0920201
+v 0.0767932 -0.00423388 0.0920201
+v 0.0767932 0.00423388 0.0920201
+v -0.0767932 -0.00423388 0.0920201
+v -0.0767932 0.00423388 0.0920201
+v -0.076889 -0.00141188 -0.0920476
+v -0.076889 0.00141188 -0.0920476
+v 0.076889 -0.00141188 -0.0920476
+v 0.076889 0.00141188 -0.0920476
+v 0.076889 -0.00141188 0.0920476
+v 0.076889 0.00141188 0.0920476
+v -0.076889 -0.00141188 0.0920476
+v -0.076889 0.00141188 0.0920476
+v -0.011732 -0.0759968 -0.0920647
+v -0.011732 0.0759968 -0.0920647
+v 0.011732 -0.0759968 -0.0920647
+v 0.011732 0.0759968 -0.0920647
+v 0.011732 -0.0759968 0.0920647
+v 0.011732 0.0759968 0.0920647
+v -0.011732 -0.0759968 0.0920647
+v -0.011732 0.0759968 0.0920647
+v -0.00310247 -0.0768314 -0.0920752
+v -0.00310247 0.0768314 -0.0920752
+v 0.00310247 -0.0768314 -0.0920752
+v 0.00310247 0.0768314 -0.0920752
+v 0.00310247 -0.0768314 0.0920752
+v 0.00310247 0.0768314 0.0920752
+v -0.00310247 -0.0768314 0.0920752
+v -0.00310247 0.0768314 0.0920752
+v -0.00233017 -0.0768314 -0.0921701
+v -0.00233017 0.0768314 -0.0921701
+v 0.00233017 -0.0768314 -0.0921701
+v 0.00233017 0.0768314 -0.0921701
+v 0.00233017 -0.0768314 0.0921701
+v 0.00233017 0.0768314 0.0921701
+v -0.00233017 -0.0768314 0.0921701
+v -0.00233017 0.0768314 0.0921701
+v -0.00155502 -0.0768314 -0.0922379
+v -0.00155502 0.0768314 -0.0922379
+v 0.00155502 -0.0768314 -0.0922379
+v 0.00155502 0.0768314 -0.0922379
+v 0.00155502 -0.0768314 0.0922379
+v 0.00155502 0.0768314 0.0922379
+v -0.00155502 -0.0768314 0.0922379
+v -0.00155502 0.0768314 0.0922379
+v -0.000777985 -0.0768314 -0.0922786
+v -0.000777985 0.0768314 -0.0922786
+v 0.000777985 -0.0768314 -0.0922786
+v 0.000777985 0.0768314 -0.0922786
+v 0.000777985 -0.0768314 0.0922786
+v 0.000777985 0.0768314 0.0922786
+v -0.000777985 -0.0768314 0.0922786
+v -0.000777985 0.0768314 0.0922786
+v -0.0419211 -0.0643878 -0.0922898
+v -0.0419211 0.0643878 -0.0922898
+v 0.0419211 -0.0643878 -0.0922898
+v 0.0419211 0.0643878 -0.0922898
+v 0.0419211 -0.0643878 0.0922898
+v 0.0419211 0.0643878 0.0922898
+v -0.0419211 -0.0643878 0.0922898
+v -0.0419211 0.0643878 0.0922898
+v -4.09501e-18 -0.0768314 -0.0922922
+v -4.09501e-18 0.0768314 -0.0922922
+v 1.365e-18 -0.0768314 0.0922922
+v 1.365e-18 0.0768314 0.0922922
+v -0.0306982 -0.0704285 -0.0923035
+v -0.0306982 0.0704285 -0.0923035
+v 0.0306982 -0.0704285 -0.0923035
+v 0.0306982 0.0704285 -0.0923035
+v 0.0306982 -0.0704285 0.0923035
+v 0.0306982 0.0704285 0.0923035
+v -0.0306982 -0.0704285 0.0923035
+v -0.0306982 0.0704285 0.0923035
+v -0.0612827 -0.0463348 -0.0923051
+v -0.0612827 0.0463348 -0.0923051
+v 0.0612827 -0.0463348 -0.0923051
+v 0.0612827 0.0463348 -0.0923051
+v 0.0612827 -0.0463348 0.0923051
+v 0.0612827 0.0463348 0.0923051
+v -0.0612827 -0.0463348 0.0923051
+v -0.0612827 0.0463348 0.0923051
+v -0.0687975 -0.0341645 -0.0923537
+v -0.0687975 0.0341645 -0.0923537
+v 0.0687975 -0.0341645 -0.0923537
+v 0.0687975 0.0341645 -0.0923537
+v 0.0687975 -0.0341645 0.0923537
+v 0.0687975 0.0341645 0.0923537
+v -0.0687975 -0.0341645 0.0923537
+v -0.0687975 0.0341645 0.0923537
+v -0.0162559 -0.0750675 -0.0923744
+v -0.0162559 0.0750675 -0.0923744
+v 0.0162559 -0.0750675 -0.0923744
+v 0.0162559 0.0750675 -0.0923744
+v 0.0162559 -0.0750675 0.0923744
+v 0.0162559 0.0750675 0.0923744
+v -0.0162559 -0.0750675 0.0923744
+v -0.0162559 0.0750675 0.0923744
+v -0.0555873 -0.0529685 -0.0924587
+v -0.0555873 0.0529685 -0.0924587
+v 0.0555873 -0.0529685 -0.0924587
+v 0.0555873 0.0529685 -0.0924587
+v 0.0555873 -0.0529685 0.0924587
+v 0.0555873 0.0529685 0.0924587
+v -0.0555873 -0.0529685 0.0924587
+v -0.0555873 0.0529685 0.0924587
+v -0.0109548 -0.0759968 -0.0924607
+v -0.0109548 0.0759968 -0.0924607
+v 0.0109548 -0.0759968 -0.0924607
+v 0.0109548 0.0759968 -0.0924607
+v 0.0109548 -0.0759968 0.0924607
+v 0.0109548 0.0759968 0.0924607
+v -0.0109548 -0.0759968 0.0924607
+v -0.0109548 0.0759968 0.0924607
+v -0.0202668 -0.0740447 -0.0925086
+v -0.0202668 0.0740447 -0.0925086
+v 0.0202668 -0.0740447 -0.0925086
+v 0.0202668 0.0740447 -0.0925086
+v 0.0202668 -0.0740447 0.0925086
+v 0.0202668 0.0740447 0.0925086
+v -0.0202668 -0.0740447 0.0925086
+v -0.0202668 0.0740447 0.0925086
+v -0.0391241 -0.0660233 -0.0925883
+v -0.0391241 0.0660233 -0.0925883
+v 0.0391241 -0.0660233 -0.0925883
+v 0.0391241 0.0660233 -0.0925883
+v 0.0391241 -0.0660233 0.0925883
+v 0.0391241 0.0660233 0.0925883
+v -0.0391241 -0.0660233 0.0925883
+v -0.0391241 0.0660233 0.0925883
+v -0.0334988 -0.0690455 -0.0925952
+v -0.0334988 0.0690455 -0.0925952
+v 0.0334988 -0.0690455 -0.0925952
+v 0.0334988 0.0690455 -0.0925952
+v 0.0334988 -0.0690455 0.0925952
+v 0.0334988 0.0690455 0.0925952
+v -0.0334988 -0.0690455 0.0925952
+v -0.0334988 0.0690455 0.0925952
+v -0.0363121 -0.0675765 -0.0926903
+v -0.0363121 0.0675765 -0.0926903
+v 0.0363121 -0.0675765 -0.0926903
+v 0.0363121 0.0675765 -0.0926903
+v 0.0363121 -0.0675765 0.0926903
+v 0.0363121 0.0675765 0.0926903
+v -0.0363121 -0.0675765 0.0926903
+v -0.0363121 0.0675765 0.0926903
+v -0.0699014 -0.0315903 -0.0927123
+v -0.0699014 0.0315903 -0.0927123
+v 0.0699014 -0.0315903 -0.0927123
+v 0.0699014 0.0315903 -0.0927123
+v 0.0699014 -0.0315903 0.0927123
+v 0.0699014 0.0315903 0.0927123
+v -0.0699014 -0.0315903 0.0927123
+v -0.0699014 0.0315903 0.0927123
+v -0.0466493 -0.0608783 -0.0927524
+v -0.0466493 0.0608783 -0.0927524
+v 0.0466493 -0.0608783 -0.0927524
+v 0.0466493 0.0608783 -0.0927524
+v 0.0466493 -0.0608783 0.0927524
+v 0.0466493 0.0608783 0.0927524
+v -0.0466493 -0.0608783 0.0927524
+v -0.0466493 0.0608783 0.0927524
+v -0.0271454 -0.0717238 -0.0927777
+v -0.0271454 0.0717238 -0.0927777
+v 0.0271454 -0.0717238 -0.0927777
+v 0.0271454 0.0717238 -0.0927777
+v 0.0271454 -0.0717238 0.0927777
+v 0.0271454 0.0717238 0.0927777
+v -0.0271454 -0.0717238 0.0927777
+v -0.0271454 0.0717238 0.0927777
+v -0.0512199 -0.0570655 -0.0928046
+v -0.0512199 0.0570655 -0.0928046
+v 0.0512199 -0.0570655 -0.0928046
+v 0.0512199 0.0570655 -0.0928046
+v 0.0512199 -0.0570655 0.0928046
+v 0.0512199 0.0570655 0.0928046
+v -0.0512199 -0.0570655 0.0928046
+v -0.0512199 0.0570655 0.0928046
+v -0.0101643 -0.0759968 -0.0928293
+v -0.0101643 0.0759968 -0.0928293
+v 0.0101643 -0.0759968 -0.0928293
+v 0.0101643 0.0759968 -0.0928293
+v 0.0101643 -0.0759968 0.0928293
+v 0.0101643 0.0759968 0.0928293
+v -0.0101643 -0.0759968 0.0928293
+v -0.0101643 0.0759968 0.0928293
+v -0.0236537 -0.0729297 -0.0928421
+v -0.0236537 0.0729297 -0.0928421
+v 0.0236537 -0.0729297 -0.0928421
+v 0.0236537 0.0729297 -0.0928421
+v 0.0236537 -0.0729297 0.0928421
+v 0.0236537 0.0729297 0.0928421
+v -0.0236537 -0.0729297 0.0928421
+v -0.0236537 0.0729297 0.0928421
+v -0.0627811 -0.0440044 -0.0928505
+v -0.0627811 0.0440044 -0.0928505
+v 0.0627811 -0.0440044 -0.0928505
+v 0.0627811 0.0440044 -0.0928505
+v 0.0627811 -0.0440044 0.0928505
+v 0.0627811 0.0440044 0.0928505
+v -0.0627811 -0.0440044 0.0928505
+v -0.0627811 0.0440044 0.0928505
+v -0.0154652 -0.0750675 -0.0929281
+v -0.0154652 0.0750675 -0.0929281
+v 0.0154652 -0.0750675 -0.0929281
+v 0.0154652 0.0750675 -0.0929281
+v 0.0154652 -0.0750675 0.0929281
+v 0.0154652 0.0750675 0.0929281
+v -0.0154652 -0.0750675 0.0929281
+v -0.0154652 0.0750675 0.0929281
+v -0.0709181 -0.0289768 -0.0930427
+v -0.0709181 0.0289768 -0.0930427
+v 0.0709181 -0.0289768 -0.0930427
+v 0.0709181 0.0289768 -0.0930427
+v 0.0709181 -0.0289768 0.0930427
+v 0.0709181 0.0289768 0.0930427
+v -0.0709181 -0.0289768 0.0930427
+v -0.0709181 0.0289768 0.0930427
+v -0.0572859 -0.0508196 -0.093145
+v -0.0572859 0.0508196 -0.093145
+v 0.0572859 -0.0508196 -0.093145
+v 0.0572859 0.0508196 -0.093145
+v 0.0572859 -0.0508196 0.093145
+v 0.0572859 0.0508196 0.093145
+v -0.0572859 -0.0508196 0.093145
+v -0.0572859 0.0508196 0.093145
+v -0.00936133 -0.0759968 -0.0931701
+v -0.00936133 0.0759968 -0.0931701
+v 0.00936133 -0.0759968 -0.0931701
+v 0.00936133 0.0759968 -0.0931701
+v 0.00936133 -0.0759968 0.0931701
+v 0.00936133 0.0759968 0.0931701
+v -0.00936133 -0.0759968 0.0931701
+v -0.00936133 0.0759968 0.0931701
+v -0.0194689 -0.0740447 -0.0932022
+v -0.0194689 0.0740447 -0.0932022
+v 0.0194689 -0.0740447 -0.0932022
+v 0.0194689 0.0740447 -0.0932022
+v 0.0194689 -0.0740447 0.0932022
+v 0.0194689 0.0740447 0.0932022
+v -0.0194689 -0.0740447 0.0932022
+v -0.0194689 0.0740447 0.0932022
+v -0.0439013 -0.0626721 -0.0933428
+v -0.0439013 0.0626721 -0.0933428
+v 0.0439013 -0.0626721 -0.0933428
+v 0.0439013 0.0626721 -0.0933428
+v 0.0439013 -0.0626721 0.0933428
+v 0.0439013 0.0626721 0.0933428
+v -0.0439013 -0.0626721 0.0933428
+v -0.0439013 0.0626721 0.0933428
+v -0.0718465 -0.0263271 -0.0933444
+v -0.0718465 0.0263271 -0.0933444
+v 0.0718465 -0.0263271 -0.0933444
+v 0.0718465 0.0263271 -0.0933444
+v 0.0718465 -0.0263271 0.0933444
+v 0.0718465 0.0263271 0.0933444
+v -0.0718465 -0.0263271 0.0933444
+v -0.0718465 0.0263271 0.0933444
+v -0.0299011 -0.0704285 -0.0933613
+v -0.0299011 0.0704285 -0.0933613
+v 0.0299011 -0.0704285 -0.0933613
+v 0.0299011 0.0704285 -0.0933613
+v 0.0299011 -0.0704285 0.0933613
+v 0.0299011 0.0704285 0.0933613
+v -0.0299011 -0.0704285 0.0933613
+v -0.0299011 0.0704285 0.0933613
+v -0.0642013 -0.0416192 -0.0933674
+v -0.0642013 0.0416192 -0.0933674
+v 0.0642013 -0.0416192 -0.0933674
+v 0.0642013 0.0416192 -0.0933674
+v 0.0642013 -0.0416192 0.0933674
+v 0.0642013 0.0416192 0.0933674
+v -0.0642013 -0.0416192 0.0933674
+v -0.0642013 0.0416192 0.0933674
+v -0.0146556 -0.0750675 -0.0934538
+v -0.0146556 0.0750675 -0.0934538
+v 0.0146556 -0.0750675 -0.0934538
+v 0.0146556 0.0750675 -0.0934538
+v 0.0146556 -0.0750675 0.0934538
+v 0.0146556 0.0750675 0.0934538
+v -0.0146556 -0.0750675 0.0934538
+v -0.0146556 0.0750675 0.0934538
+v -0.00854701 -0.0759968 -0.0934827
+v -0.00854701 0.0759968 -0.0934827
+v 0.00854701 -0.0759968 -0.0934827
+v 0.00854701 0.0759968 -0.0934827
+v 0.00854701 -0.0759968 0.0934827
+v 0.00854701 0.0759968 0.0934827
+v -0.00854701 -0.0759968 0.0934827
+v -0.00854701 0.0759968 0.0934827
+v -0.0530278 -0.0550513 -0.0936095
+v -0.0530278 0.0550513 -0.0936095
+v 0.0530278 -0.0550513 -0.0936095
+v 0.0530278 0.0550513 -0.0936095
+v 0.0530278 -0.0550513 0.0936095
+v 0.0530278 0.0550513 0.0936095
+v -0.0530278 -0.0550513 0.0936095
+v -0.0530278 0.0550513 0.0936095
+v -0.0726854 -0.0236447 -0.0936169
+v -0.0726854 0.0236447 -0.0936169
+v 0.0726854 -0.0236447 -0.0936169
+v 0.0726854 0.0236447 -0.0936169
+v 0.0726854 -0.0236447 0.0936169
+v 0.0726854 0.0236447 0.0936169
+v -0.0726854 -0.0236447 0.0936169
+v -0.0726854 0.0236447 0.0936169
+v -0.0228421 -0.0729297 -0.0936537
+v -0.0228421 0.0729297 -0.0936537
+v 0.0228421 -0.0729297 -0.0936537
+v 0.0228421 0.0729297 -0.0936537
+v 0.0228421 -0.0729297 0.0936537
+v 0.0228421 0.0729297 0.0936537
+v -0.0228421 -0.0729297 0.0936537
+v -0.0228421 0.0729297 0.0936537
+v -0.0485513 -0.0590087 -0.0936801
+v -0.0485513 0.0590087 -0.0936801
+v 0.0485513 -0.0590087 -0.0936801
+v 0.0485513 0.0590087 -0.0936801
+v 0.0485513 -0.0590087 0.0936801
+v 0.0485513 0.0590087 0.0936801
+v -0.0485513 -0.0590087 0.0936801
+v -0.0485513 0.0590087 0.0936801
+v -0.026334 -0.0717238 -0.0937112
+v -0.026334 0.0717238 -0.0937112
+v 0.026334 -0.0717238 -0.0937112
+v 0.026334 0.0717238 -0.0937112
+v 0.026334 -0.0717238 0.0937112
+v 0.026334 0.0717238 0.0937112
+v -0.026334 -0.0717238 0.0937112
+v -0.026334 0.0717238 0.0937112
+v -0.0411176 -0.0643878 -0.0937393
+v -0.0411176 0.0643878 -0.0937393
+v 0.0411176 -0.0643878 -0.0937393
+v 0.0411176 0.0643878 -0.0937393
+v 0.0411176 -0.0643878 0.0937393
+v 0.0411176 0.0643878 0.0937393
+v -0.0411176 -0.0643878 0.0937393
+v -0.0411176 0.0643878 0.0937393
+v -0.0326899 -0.0690455 -0.0937506
+v -0.0326899 0.0690455 -0.0937506
+v 0.0326899 -0.0690455 -0.0937506
+v 0.0326899 0.0690455 -0.0937506
+v 0.0326899 -0.0690455 0.0937506
+v 0.0326899 0.0690455 0.0937506
+v -0.0326899 -0.0690455 0.0937506
+v -0.0326899 0.0690455 0.0937506
+v -0.00772227 -0.0759968 -0.0937667
+v -0.00772227 0.0759968 -0.0937667
+v 0.00772227 -0.0759968 -0.0937667
+v 0.00772227 0.0759968 -0.0937667
+v 0.00772227 -0.0759968 0.0937667
+v 0.00772227 0.0759968 0.0937667
+v -0.00772227 -0.0759968 0.0937667
+v -0.00772227 0.0759968 0.0937667
+v -0.0589131 -0.0486075 -0.0938024
+v -0.0589131 0.0486075 -0.0938024
+v 0.0589131 -0.0486075 -0.0938024
+v 0.0589131 0.0486075 -0.0938024
+v 0.0589131 -0.0486075 0.0938024
+v 0.0589131 0.0486075 0.0938024
+v -0.0589131 -0.0486075 0.0938024
+v -0.0589131 0.0486075 0.0938024
+v -0.0655416 -0.0391821 -0.0938552
+v -0.0655416 0.0391821 -0.0938552
+v 0.0655416 -0.0391821 -0.0938552
+v 0.0655416 0.0391821 -0.0938552
+v 0.0655416 -0.0391821 0.0938552
+v 0.0655416 0.0391821 0.0938552
+v -0.0655416 -0.0391821 0.0938552
+v -0.0655416 0.0391821 0.0938552
+v -0.0734338 -0.0209327 -0.0938601
+v -0.0734338 0.0209327 -0.0938601
+v 0.0734338 -0.0209327 -0.0938601
+v 0.0734338 0.0209327 -0.0938601
+v 0.0734338 -0.0209327 0.0938601
+v 0.0734338 0.0209327 0.0938601
+v -0.0734338 -0.0209327 0.0938601
+v -0.0734338 0.0209327 0.0938601
+v -0.0186473 -0.0740447 -0.0938675
+v -0.0186473 0.0740447 -0.0938675
+v 0.0186473 -0.0740447 -0.0938675
+v 0.0186473 0.0740447 -0.0938675
+v 0.0186473 -0.0740447 0.0938675
+v 0.0186473 0.0740447 0.0938675
+v -0.0186473 -0.0740447 0.0938675
+v -0.0186473 0.0740447 0.0938675
+v -0.038312 -0.0660233 -0.09394
+v -0.038312 0.0660233 -0.09394
+v 0.038312 -0.0660233 -0.09394
+v 0.038312 0.0660233 -0.09394
+v 0.038312 -0.0660233 0.09394
+v 0.038312 0.0660233 0.09394
+v -0.038312 -0.0660233 0.09394
+v -0.038312 0.0660233 0.09394
+v -0.0354981 -0.0675765 -0.0939438
+v -0.0354981 0.0675765 -0.0939438
+v 0.0354981 -0.0675765 -0.0939438
+v 0.0354981 0.0675765 -0.0939438
+v 0.0354981 -0.0675765 0.0939438
+v 0.0354981 0.0675765 0.0939438
+v -0.0354981 -0.0675765 0.0939438
+v -0.0354981 0.0675765 0.0939438
+v -0.0138281 -0.0750675 -0.093951
+v -0.0138281 0.0750675 -0.093951
+v 0.0138281 -0.0750675 -0.093951
+v 0.0138281 0.0750675 -0.093951
+v 0.0138281 -0.0750675 0.093951
+v 0.0138281 0.0750675 0.093951
+v -0.0138281 -0.0750675 0.093951
+v -0.0138281 0.0750675 0.093951
+v -0.00688812 -0.0759968 -0.0940217
+v -0.00688812 0.0759968 -0.0940217
+v 0.00688812 -0.0759968 -0.0940217
+v 0.00688812 0.0759968 -0.0940217
+v 0.00688812 -0.0759968 0.0940217
+v 0.00688812 0.0759968 0.0940217
+v -0.00688812 -0.0759968 0.0940217
+v -0.00688812 0.0759968 0.0940217
+v -0.0740906 -0.0181947 -0.0940735
+v -0.0740906 0.0181947 -0.0940735
+v 0.0740906 -0.0181947 -0.0940735
+v 0.0740906 0.0181947 -0.0940735
+v 0.0740906 -0.0181947 0.0940735
+v 0.0740906 0.0181947 0.0940735
+v -0.0740906 -0.0181947 0.0940735
+v -0.0740906 0.0181947 0.0940735
+v -0.00604557 -0.0759968 -0.0942475
+v -0.00604557 0.0759968 -0.0942475
+v 0.00604557 -0.0759968 -0.0942475
+v 0.00604557 0.0759968 -0.0942475
+v 0.00604557 -0.0759968 0.0942475
+v 0.00604557 0.0759968 0.0942475
+v -0.00604557 -0.0759968 0.0942475
+v -0.00604557 0.0759968 0.0942475
+v -0.0746551 -0.0154341 -0.0942569
+v -0.0746551 0.0154341 -0.0942569
+v 0.0746551 -0.0154341 -0.0942569
+v 0.0746551 0.0154341 -0.0942569
+v 0.0746551 -0.0154341 0.0942569
+v 0.0746551 0.0154341 0.0942569
+v -0.0746551 -0.0154341 0.0942569
+v -0.0746551 0.0154341 0.0942569
+v -0.0668001 -0.0366961 -0.0943133
+v -0.0668001 0.0366961 -0.0943133
+v 0.0668001 -0.0366961 -0.0943133
+v 0.0668001 0.0366961 -0.0943133
+v 0.0668001 -0.0366961 0.0943133
+v 0.0668001 0.0366961 0.0943133
+v -0.0668001 -0.0366961 0.0943133
+v -0.0668001 0.0366961 0.0943133
+v -0.0458269 -0.0608783 -0.0943666
+v -0.0458269 0.0608783 -0.0943666
+v 0.0458269 -0.0608783 -0.0943666
+v 0.0458269 0.0608783 -0.0943666
+v 0.0458269 -0.0608783 0.0943666
+v 0.0458269 0.0608783 0.0943666
+v -0.0458269 -0.0608783 0.0943666
+v -0.0458269 0.0608783 0.0943666
+v -0.0547696 -0.0529685 -0.094385
+v -0.0547696 0.0529685 -0.094385
+v 0.0547696 -0.0529685 -0.094385
+v 0.0547696 0.0529685 -0.094385
+v 0.0547696 -0.0529685 0.094385
+v 0.0547696 0.0529685 0.094385
+v -0.0547696 -0.0529685 0.094385
+v -0.0547696 0.0529685 0.094385
+v -0.0290676 -0.0704285 -0.0943906
+v -0.0290676 0.0704285 -0.0943906
+v 0.0290676 -0.0704285 -0.0943906
+v 0.0290676 0.0704285 -0.0943906
+v 0.0290676 -0.0704285 0.0943906
+v 0.0290676 0.0704285 0.0943906
+v -0.0290676 -0.0704285 0.0943906
+v -0.0290676 0.0704285 0.0943906
+v -0.0751267 -0.0126542 -0.0944101
+v -0.0751267 0.0126542 -0.0944101
+v 0.0751267 -0.0126542 -0.0944101
+v 0.0751267 0.0126542 -0.0944101
+v 0.0751267 -0.0126542 0.0944101
+v 0.0751267 0.0126542 0.0944101
+v -0.0751267 -0.0126542 0.0944101
+v -0.0751267 0.0126542 0.0944101
+v -0.0129838 -0.0750675 -0.094419
+v -0.0129838 0.0750675 -0.094419
+v 0.0129838 -0.0750675 -0.094419
+v 0.0129838 0.0750675 -0.094419
+v 0.0129838 -0.0750675 0.094419
+v 0.0129838 0.0750675 0.094419
+v -0.0129838 -0.0750675 0.094419
+v -0.0129838 0.0750675 0.094419
+v -0.0604669 -0.0463348 -0.0944302
+v -0.0604669 0.0463348 -0.0944302
+v 0.0604669 -0.0463348 -0.0944302
+v 0.0604669 0.0463348 -0.0944302
+v 0.0604669 -0.0463348 0.0944302
+v 0.0604669 0.0463348 0.0944302
+v -0.0604669 -0.0463348 0.0944302
+v -0.0604669 0.0463348 0.0944302
+v -0.0220027 -0.0729297 -0.0944365
+v -0.0220027 0.0729297 -0.0944365
+v 0.0220027 -0.0729297 -0.0944365
+v 0.0220027 0.0729297 -0.0944365
+v 0.0220027 -0.0729297 0.0944365
+v 0.0220027 0.0729297 0.0944365
+v -0.0220027 -0.0729297 0.0944365
+v -0.0220027 0.0729297 0.0944365
+v -0.00519567 -0.0759968 -0.0944437
+v -0.00519567 0.0759968 -0.0944437
+v 0.00519567 -0.0759968 -0.0944437
+v 0.00519567 0.0759968 -0.0944437
+v 0.00519567 -0.0759968 0.0944437
+v 0.00519567 0.0759968 0.0944437
+v -0.00519567 -0.0759968 0.0944437
+v -0.00519567 0.0759968 0.0944437
+v -0.017803 -0.0740447 -0.0945037
+v -0.017803 0.0740447 -0.0945037
+v 0.017803 -0.0740447 -0.0945037
+v 0.017803 0.0740447 -0.0945037
+v 0.017803 -0.0740447 0.0945037
+v 0.017803 0.0740447 0.0945037
+v -0.017803 -0.0740447 0.0945037
+v -0.017803 0.0740447 0.0945037
+v -0.0755046 -0.00985854 -0.0945329
+v -0.0755046 0.00985854 -0.0945329
+v 0.0755046 -0.00985854 -0.0945329
+v 0.0755046 0.00985854 -0.0945329
+v 0.0755046 -0.00985854 0.0945329
+v 0.0755046 0.00985854 0.0945329
+v -0.0755046 -0.00985854 0.0945329
+v -0.0755046 0.00985854 0.0945329
+v -0.0503928 -0.0570655 -0.0945782
+v -0.0503928 0.0570655 -0.0945782
+v 0.0503928 -0.0570655 -0.0945782
+v 0.0503928 0.0570655 -0.0945782
+v 0.0503928 -0.0570655 0.0945782
+v 0.0503928 0.0570655 0.0945782
+v -0.0503928 -0.0570655 0.0945782
+v -0.0503928 0.0570655 0.0945782
+v -0.00433943 -0.0759968 -0.0946101
+v -0.00433943 0.0759968 -0.0946101
+v 0.00433943 -0.0759968 -0.0946101
+v 0.00433943 0.0759968 -0.0946101
+v 0.00433943 -0.0759968 0.0946101
+v 0.00433943 0.0759968 0.0946101
+v -0.00433943 -0.0759968 0.0946101
+v -0.00433943 0.0759968 0.0946101
+v -0.0254904 -0.0717238 -0.0946158
+v -0.0254904 0.0717238 -0.0946158
+v 0.0254904 -0.0717238 -0.0946158
+v 0.0254904 0.0717238 -0.0946158
+v 0.0254904 -0.0717238 0.0946158
+v 0.0254904 0.0717238 0.0946158
+v -0.0254904 -0.0717238 0.0946158
+v -0.0254904 0.0717238 0.0946158
+v -0.0757885 -0.0070506 -0.0946252
+v -0.0757885 0.0070506 -0.0946252
+v 0.0757885 -0.0070506 -0.0946252
+v 0.0757885 0.0070506 -0.0946252
+v 0.0757885 -0.0070506 0.0946252
+v 0.0757885 0.0070506 0.0946252
+v -0.0757885 -0.0070506 0.0946252
+v -0.0757885 0.0070506 0.0946252
+v -0.0759779 -0.00423388 -0.0946867
+v -0.0759779 0.00423388 -0.0946867
+v 0.0759779 -0.00423388 -0.0946867
+v 0.0759779 0.00423388 -0.0946867
+v 0.0759779 -0.00423388 0.0946867
+v 0.0759779 0.00423388 0.0946867
+v -0.0759779 -0.00423388 0.0946867
+v -0.0759779 0.00423388 0.0946867
+v -0.0760727 -0.00141188 -0.0947175
+v -0.0760727 0.00141188 -0.0947175
+v 0.0760727 -0.00141188 -0.0947175
+v 0.0760727 0.00141188 -0.0947175
+v 0.0760727 -0.00141188 0.0947175
+v 0.0760727 0.00141188 0.0947175
+v -0.0760727 -0.00141188 0.0947175
+v -0.0760727 0.00141188 0.0947175
+v -0.0679755 -0.0341645 -0.0947411
+v -0.0679755 0.0341645 -0.0947411
+v 0.0679755 -0.0341645 -0.0947411
+v 0.0679755 0.0341645 -0.0947411
+v 0.0679755 -0.0341645 0.0947411
+v 0.0679755 0.0341645 0.0947411
+v -0.0679755 -0.0341645 0.0947411
+v -0.0679755 0.0341645 0.0947411
+v -0.0034779 -0.0759968 -0.0947466
+v -0.0034779 0.0759968 -0.0947466
+v 0.0034779 -0.0759968 -0.0947466
+v 0.0034779 0.0759968 -0.0947466
+v 0.0034779 -0.0759968 0.0947466
+v 0.0034779 0.0759968 0.0947466
+v -0.0034779 -0.0759968 0.0947466
+v -0.0034779 0.0759968 0.0947466
+v -0.00261214 -0.0759968 -0.0948529
+v -0.00261214 0.0759968 -0.0948529
+v 0.00261214 -0.0759968 -0.0948529
+v 0.00261214 0.0759968 -0.0948529
+v 0.00261214 -0.0759968 0.0948529
+v 0.00261214 0.0759968 0.0948529
+v -0.00261214 -0.0759968 0.0948529
+v -0.00261214 0.0759968 0.0948529
+v -0.0121237 -0.0750675 -0.0948573
+v -0.0121237 0.0750675 -0.0948573
+v 0.0121237 -0.0750675 -0.0948573
+v 0.0121237 0.0750675 -0.0948573
+v 0.0121237 -0.0750675 0.0948573
+v 0.0121237 0.0750675 0.0948573
+v -0.0121237 -0.0750675 0.0948573
+v -0.0121237 0.0750675 0.0948573
+v -0.0430599 -0.0626721 -0.0948607
+v -0.0430599 0.0626721 -0.0948607
+v 0.0430599 -0.0626721 -0.0948607
+v 0.0430599 0.0626721 -0.0948607
+v 0.0430599 -0.0626721 0.0948607
+v 0.0430599 0.0626721 0.0948607
+v -0.0430599 -0.0626721 0.0948607
+v -0.0430599 0.0626721 0.0948607
+v -0.0318411 -0.0690455 -0.094877
+v -0.0318411 0.0690455 -0.094877
+v 0.0318411 -0.0690455 -0.094877
+v 0.0318411 0.0690455 -0.094877
+v 0.0318411 -0.0690455 0.094877
+v 0.0318411 0.0690455 0.094877
+v -0.0318411 -0.0690455 0.094877
+v -0.0318411 0.0690455 0.094877
+v -0.0017432 -0.0759968 -0.0949289
+v -0.0017432 0.0759968 -0.0949289
+v 0.0017432 -0.0759968 -0.0949289
+v 0.0017432 0.0759968 -0.0949289
+v 0.0017432 -0.0759968 0.0949289
+v 0.0017432 0.0759968 0.0949289
+v -0.0017432 -0.0759968 0.0949289
+v -0.0017432 0.0759968 0.0949289
+v -0.000872131 -0.0759968 -0.0949745
+v -0.000872131 0.0759968 -0.0949745
+v 0.000872131 -0.0759968 -0.0949745
+v 0.000872131 0.0759968 -0.0949745
+v 0.000872131 -0.0759968 0.0949745
+v 0.000872131 0.0759968 0.0949745
+v -0.000872131 -0.0759968 0.0949745
+v -0.000872131 0.0759968 0.0949745
+v -4.59055e-18 -0.0759968 -0.0949898
+v -4.59055e-18 0.0759968 -0.0949898
+v 1.53018e-18 -0.0759968 0.0949898
+v 1.53018e-18 0.0759968 0.0949898
+v -0.0619454 -0.0440044 -0.0950276
+v -0.0619454 0.0440044 -0.0950276
+v 0.0619454 -0.0440044 -0.0950276
+v 0.0619454 0.0440044 -0.0950276
+v 0.0619454 -0.0440044 0.0950276
+v 0.0619454 0.0440044 0.0950276
+v -0.0619454 -0.0440044 0.0950276
+v -0.0619454 0.0440044 0.0950276
+v -0.016937 -0.0740447 -0.0951101
+v -0.016937 0.0740447 -0.0951101
+v 0.016937 -0.0740447 -0.0951101
+v 0.016937 0.0740447 -0.0951101
+v 0.016937 -0.0740447 0.0951101
+v 0.016937 0.0740447 0.0951101
+v -0.016937 -0.0740447 0.0951101
+v -0.016937 0.0740447 0.0951101
+v -0.0564432 -0.0508196 -0.0951301
+v -0.0564432 0.0508196 -0.0951301
+v 0.0564432 -0.0508196 -0.0951301
+v 0.0564432 0.0508196 -0.0951301
+v 0.0564432 -0.0508196 0.0951301
+v 0.0564432 0.0508196 0.0951301
+v -0.0564432 -0.0508196 0.0951301
+v -0.0564432 0.0508196 0.0951301
+v -0.0690661 -0.0315903 -0.095138
+v -0.0690661 0.0315903 -0.095138
+v 0.0690661 -0.0315903 -0.095138
+v 0.0690661 0.0315903 -0.095138
+v 0.0690661 -0.0315903 0.095138
+v 0.0690661 0.0315903 0.095138
+v -0.0690661 -0.0315903 0.095138
+v -0.0690661 0.0315903 0.095138
+v -0.0402641 -0.0643878 -0.0951598
+v -0.0402641 0.0643878 -0.0951598
+v 0.0402641 -0.0643878 -0.0951598
+v 0.0402641 0.0643878 -0.0951598
+v 0.0402641 -0.0643878 0.0951598
+v 0.0402641 0.0643878 0.0951598
+v -0.0402641 -0.0643878 0.0951598
+v -0.0402641 0.0643878 0.0951598
+v -0.0346409 -0.0675765 -0.0951681
+v -0.0346409 0.0675765 -0.0951681
+v 0.0346409 -0.0675765 -0.0951681
+v 0.0346409 0.0675765 -0.0951681
+v 0.0346409 -0.0675765 0.0951681
+v 0.0346409 0.0675765 0.0951681
+v -0.0346409 -0.0675765 0.0951681
+v -0.0346409 0.0675765 0.0951681
+v -0.0211365 -0.0729297 -0.0951895
+v -0.0211365 0.0729297 -0.0951895
+v 0.0211365 -0.0729297 -0.0951895
+v 0.0211365 0.0729297 -0.0951895
+v 0.0211365 -0.0729297 0.0951895
+v 0.0211365 0.0729297 0.0951895
+v -0.0211365 -0.0729297 0.0951895
+v -0.0211365 0.0729297 0.0951895
+v -0.0374531 -0.0660233 -0.0952625
+v -0.0374531 0.0660233 -0.0952625
+v 0.0374531 -0.0660233 -0.0952625
+v 0.0374531 0.0660233 -0.0952625
+v 0.0374531 -0.0660233 0.0952625
+v 0.0374531 0.0660233 0.0952625
+v -0.0374531 -0.0660233 0.0952625
+v -0.0374531 0.0660233 0.0952625
+v -0.0112488 -0.0750675 -0.0952652
+v -0.0112488 0.0750675 -0.0952652
+v 0.0112488 -0.0750675 -0.0952652
+v 0.0112488 0.0750675 -0.0952652
+v 0.0112488 -0.0750675 0.0952652
+v 0.0112488 0.0750675 0.0952652
+v -0.0112488 -0.0750675 0.0952652
+v -0.0112488 0.0750675 0.0952652
+v -0.0476953 -0.0590087 -0.0953601
+v -0.0476953 0.0590087 -0.0953601
+v 0.0476953 -0.0590087 -0.0953601
+v 0.0476953 0.0590087 -0.0953601
+v 0.0476953 -0.0590087 0.0953601
+v 0.0476953 0.0590087 0.0953601
+v -0.0476953 -0.0590087 0.0953601
+v -0.0476953 0.0590087 0.0953601
+v -0.0281986 -0.0704285 -0.0953902
+v -0.0281986 0.0704285 -0.0953902
+v 0.0281986 -0.0704285 -0.0953902
+v 0.0281986 0.0704285 -0.0953902
+v 0.0281986 -0.0704285 0.0953902
+v 0.0281986 0.0704285 0.0953902
+v -0.0281986 -0.0704285 0.0953902
+v -0.0281986 0.0704285 0.0953902
+v -0.0521715 -0.0550513 -0.0954458
+v -0.0521715 0.0550513 -0.0954458
+v 0.0521715 -0.0550513 -0.0954458
+v 0.0521715 0.0550513 -0.0954458
+v 0.0521715 -0.0550513 0.0954458
+v 0.0521715 0.0550513 0.0954458
+v -0.0521715 -0.0550513 0.0954458
+v -0.0521715 0.0550513 0.0954458
+v -0.0246158 -0.0717238 -0.0954904
+v -0.0246158 0.0717238 -0.0954904
+v 0.0246158 -0.0717238 -0.0954904
+v 0.0246158 0.0717238 -0.0954904
+v 0.0246158 -0.0717238 0.0954904
+v 0.0246158 0.0717238 0.0954904
+v -0.0246158 -0.0717238 0.0954904
+v -0.0246158 0.0717238 0.0954904
+v -0.0700708 -0.0289768 -0.0955037
+v -0.0700708 0.0289768 -0.0955037
+v 0.0700708 -0.0289768 -0.0955037
+v 0.0700708 0.0289768 -0.0955037
+v 0.0700708 -0.0289768 0.0955037
+v 0.0700708 0.0289768 0.0955037
+v -0.0700708 -0.0289768 0.0955037
+v -0.0700708 0.0289768 0.0955037
+v -0.0633467 -0.0416192 -0.0955937
+v -0.0633467 0.0416192 -0.0955937
+v 0.0633467 -0.0416192 -0.0955937
+v 0.0633467 0.0416192 -0.0955937
+v 0.0633467 -0.0416192 0.0955937
+v 0.0633467 0.0416192 0.0955937
+v -0.0633467 -0.0416192 0.0955937
+v -0.0633467 0.0416192 0.0955937
+v -0.0103602 -0.0750675 -0.0956424
+v -0.0103602 0.0750675 -0.0956424
+v 0.0103602 -0.0750675 -0.0956424
+v 0.0103602 0.0750675 -0.0956424
+v 0.0103602 -0.0750675 0.0956424
+v 0.0103602 0.0750675 0.0956424
+v -0.0103602 -0.0750675 0.0956424
+v -0.0103602 0.0750675 0.0956424
+v -0.0160503 -0.0740447 -0.0956859
+v -0.0160503 0.0740447 -0.0956859
+v 0.0160503 -0.0740447 -0.0956859
+v 0.0160503 0.0740447 -0.0956859
+v 0.0160503 -0.0740447 0.0956859
+v 0.0160503 0.0740447 0.0956859
+v -0.0160503 -0.0740447 0.0956859
+v -0.0160503 0.0740447 0.0956859
+v -0.0709881 -0.0263271 -0.0958375
+v -0.0709881 0.0263271 -0.0958375
+v 0.0709881 -0.0263271 -0.0958375
+v 0.0709881 0.0263271 -0.0958375
+v 0.0709881 -0.0263271 0.0958375
+v 0.0709881 0.0263271 0.0958375
+v -0.0709881 -0.0263271 0.0958375
+v -0.0709881 0.0263271 0.0958375
+v -0.0580465 -0.0486075 -0.095844
+v -0.0580465 0.0486075 -0.095844
+v 0.0580465 -0.0486075 -0.095844
+v 0.0580465 0.0486075 -0.095844
+v 0.0580465 -0.0486075 0.095844
+v 0.0580465 0.0486075 0.095844
+v -0.0580465 -0.0486075 0.095844
+v -0.0580465 0.0486075 0.095844
+v -0.0202445 -0.0729297 -0.0959118
+v -0.0202445 0.0729297 -0.0959118
+v 0.0202445 -0.0729297 -0.0959118
+v 0.0202445 0.0729297 -0.0959118
+v 0.0202445 -0.0729297 0.0959118
+v 0.0202445 0.0729297 0.0959118
+v -0.0202445 -0.0729297 0.0959118
+v -0.0202445 0.0729297 0.0959118
+v -0.0449486 -0.0608783 -0.0959511
+v -0.0449486 0.0608783 -0.0959511
+v 0.0449486 -0.0608783 -0.0959511
+v 0.0449486 0.0608783 -0.0959511
+v 0.0449486 -0.0608783 0.0959511
+v 0.0449486 0.0608783 0.0959511
+v -0.0449486 -0.0608783 0.0959511
+v -0.0449486 0.0608783 0.0959511
+v -0.0309535 -0.0690455 -0.0959731
+v -0.0309535 0.0690455 -0.0959731
+v 0.0309535 -0.0690455 -0.0959731
+v 0.0309535 0.0690455 -0.0959731
+v 0.0309535 -0.0690455 0.0959731
+v 0.0309535 0.0690455 0.0959731
+v -0.0309535 -0.0690455 0.0959731
+v -0.0309535 0.0690455 0.0959731
+v -0.00945899 -0.0750675 -0.0959884
+v -0.00945899 0.0750675 -0.0959884
+v 0.00945899 -0.0750675 -0.0959884
+v 0.00945899 0.0750675 -0.0959884
+v 0.00945899 -0.0750675 0.0959884
+v 0.00945899 0.0750675 0.0959884
+v -0.00945899 -0.0750675 0.0959884
+v -0.00945899 0.0750675 0.0959884
+v -0.0646691 -0.0391821 -0.096128
+v -0.0646691 0.0391821 -0.096128
+v 0.0646691 -0.0391821 -0.096128
+v 0.0646691 0.0391821 -0.096128
+v 0.0646691 -0.0391821 0.096128
+v 0.0646691 0.0391821 0.096128
+v -0.0646691 -0.0391821 0.096128
+v -0.0646691 0.0391821 0.096128
+v -0.0718169 -0.0236447 -0.0961392
+v -0.0718169 0.0236447 -0.0961392
+v 0.0718169 -0.0236447 -0.0961392
+v 0.0718169 0.0236447 -0.0961392
+v 0.0718169 -0.0236447 0.0961392
+v 0.0718169 0.0236447 0.0961392
+v -0.0718169 -0.0236447 0.0961392
+v -0.0718169 0.0236447 0.0961392
+v -0.0151441 -0.0740447 -0.0962304
+v -0.0151441 0.0740447 -0.0962304
+v 0.0151441 -0.0740447 -0.0962304
+v 0.0151441 0.0740447 -0.0962304
+v 0.0151441 -0.0740447 0.0962304
+v 0.0151441 0.0740447 0.0962304
+v -0.0151441 -0.0740447 0.0962304
+v -0.0151441 0.0740447 0.0962304
+v -0.0538852 -0.0529685 -0.0962816
+v -0.0538852 0.0529685 -0.0962816
+v 0.0538852 -0.0529685 -0.0962816
+v 0.0538852 0.0529685 -0.0962816
+v 0.0538852 -0.0529685 0.0962816
+v 0.0538852 0.0529685 0.0962816
+v -0.0538852 -0.0529685 0.0962816
+v -0.0538852 0.0529685 0.0962816
+v -0.00854625 -0.0750675 -0.0963027
+v -0.00854625 0.0750675 -0.0963027
+v 0.00854625 -0.0750675 -0.0963027
+v 0.00854625 0.0750675 -0.0963027
+v 0.00854625 -0.0750675 0.0963027
+v 0.00854625 0.0750675 0.0963027
+v -0.00854625 -0.0750675 0.0963027
+v -0.00854625 0.0750675 0.0963027
+v -0.0495044 -0.0570655 -0.0963219
+v -0.0495044 0.0570655 -0.0963219
+v 0.0495044 -0.0570655 -0.0963219
+v 0.0495044 0.0570655 -0.0963219
+v 0.0495044 -0.0570655 0.0963219
+v 0.0495044 0.0570655 0.0963219
+v -0.0495044 -0.0570655 0.0963219
+v -0.0495044 0.0570655 0.0963219
+v -0.0237112 -0.0717238 -0.096334
+v -0.0237112 0.0717238 -0.096334
+v 0.0237112 -0.0717238 -0.096334
+v 0.0237112 0.0717238 -0.096334
+v 0.0237112 -0.0717238 0.096334
+v 0.0237112 0.0717238 0.096334
+v -0.0237112 -0.0717238 0.096334
+v -0.0237112 0.0717238 0.096334
+v -0.0421661 -0.0626721 -0.0963483
+v -0.0421661 0.0626721 -0.0963483
+v 0.0421661 -0.0626721 -0.0963483
+v 0.0421661 0.0626721 -0.0963483
+v 0.0421661 -0.0626721 0.0963483
+v 0.0421661 0.0626721 0.0963483
+v -0.0421661 -0.0626721 0.0963483
+v -0.0421661 0.0626721 0.0963483
+v -0.0272954 -0.0704285 -0.0963588
+v -0.0272954 0.0704285 -0.0963588
+v 0.0272954 -0.0704285 -0.0963588
+v 0.0272954 0.0704285 -0.0963588
+v 0.0272954 -0.0704285 0.0963588
+v 0.0272954 0.0704285 0.0963588
+v -0.0272954 -0.0704285 0.0963588
+v -0.0272954 0.0704285 0.0963588
+v -0.0337414 -0.0675765 -0.0963617
+v -0.0337414 0.0675765 -0.0963617
+v 0.0337414 -0.0675765 -0.0963617
+v 0.0337414 0.0675765 -0.0963617
+v 0.0337414 -0.0675765 0.0963617
+v 0.0337414 0.0675765 0.0963617
+v -0.0337414 -0.0675765 0.0963617
+v -0.0337414 0.0675765 0.0963617
+v -0.0725563 -0.0209327 -0.0964083
+v -0.0725563 0.0209327 -0.0964083
+v 0.0725563 -0.0209327 -0.0964083
+v 0.0725563 0.0209327 -0.0964083
+v 0.0725563 -0.0209327 0.0964083
+v 0.0725563 0.0209327 0.0964083
+v -0.0725563 -0.0209327 0.0964083
+v -0.0725563 0.0209327 0.0964083
+v -0.0595775 -0.0463348 -0.0965256
+v -0.0595775 0.0463348 -0.0965256
+v 0.0595775 -0.0463348 -0.0965256
+v 0.0595775 0.0463348 -0.0965256
+v 0.0595775 -0.0463348 0.0965256
+v 0.0595775 0.0463348 0.0965256
+v -0.0595775 -0.0463348 0.0965256
+v -0.0595775 0.0463348 0.0965256
+v -0.0393615 -0.0643878 -0.0965497
+v -0.0393615 0.0643878 -0.0965497
+v 0.0393615 -0.0643878 -0.0965497
+v 0.0393615 0.0643878 -0.0965497
+v 0.0393615 -0.0643878 0.0965497
+v 0.0393615 0.0643878 0.0965497
+v -0.0393615 -0.0643878 0.0965497
+v -0.0393615 0.0643878 0.0965497
+v -0.0365487 -0.0660233 -0.0965542
+v -0.0365487 0.0660233 -0.0965542
+v 0.0365487 -0.0660233 -0.0965542
+v 0.0365487 0.0660233 -0.0965542
+v 0.0365487 -0.0660233 0.0965542
+v 0.0365487 0.0660233 0.0965542
+v -0.0365487 -0.0660233 0.0965542
+v -0.0365487 0.0660233 0.0965542
+v -0.00762309 -0.0750675 -0.0965849
+v -0.00762309 0.0750675 -0.0965849
+v 0.00762309 -0.0750675 -0.0965849
+v 0.00762309 0.0750675 -0.0965849
+v 0.00762309 -0.0750675 0.0965849
+v 0.00762309 0.0750675 0.0965849
+v -0.00762309 -0.0750675 0.0965849
+v -0.00762309 0.0750675 0.0965849
+v -0.0193279 -0.0729297 -0.0966025
+v -0.0193279 0.0729297 -0.0966025
+v 0.0193279 -0.0729297 -0.0966025
+v 0.0193279 0.0729297 -0.0966025
+v 0.0193279 -0.0729297 0.0966025
+v 0.0193279 0.0729297 0.0966025
+v -0.0193279 -0.0729297 0.0966025
+v -0.0193279 0.0729297 0.0966025
+v -0.0659109 -0.0366961 -0.0966297
+v -0.0659109 0.0366961 -0.0966297
+v 0.0659109 -0.0366961 -0.0966297
+v 0.0659109 0.0366961 -0.0966297
+v 0.0659109 -0.0366961 0.0966297
+v 0.0659109 0.0366961 0.0966297
+v -0.0659109 -0.0366961 0.0966297
+v -0.0659109 0.0366961 0.0966297
+v -0.0732053 -0.0181947 -0.0966446
+v -0.0732053 0.0181947 -0.0966446
+v 0.0732053 -0.0181947 -0.0966446
+v 0.0732053 0.0181947 -0.0966446
+v 0.0732053 -0.0181947 0.0966446
+v 0.0732053 0.0181947 0.0966446
+v -0.0732053 -0.0181947 0.0966446
+v -0.0732053 0.0181947 0.0966446
+v -0.0142195 -0.0740447 -0.0967429
+v -0.0142195 0.0740447 -0.0967429
+v 0.0142195 -0.0740447 -0.0967429
+v 0.0142195 0.0740447 -0.0967429
+v 0.0142195 -0.0740447 0.0967429
+v 0.0142195 0.0740447 0.0967429
+v -0.0142195 -0.0740447 0.0967429
+v -0.0142195 0.0740447 0.0967429
+v -0.00669065 -0.0750675 -0.0968347
+v -0.00669065 0.0750675 -0.0968347
+v 0.00669065 -0.0750675 -0.0968347
+v 0.00669065 0.0750675 -0.0968347
+v 0.00669065 -0.0750675 0.0968347
+v 0.00669065 0.0750675 0.0968347
+v -0.00669065 -0.0750675 0.0968347
+v -0.00669065 0.0750675 0.0968347
+v -0.0737631 -0.0154341 -0.0968476
+v -0.0737631 0.0154341 -0.0968476
+v 0.0737631 -0.0154341 -0.0968476
+v 0.0737631 0.0154341 -0.0968476
+v 0.0737631 -0.0154341 0.0968476
+v 0.0737631 0.0154341 0.0968476
+v -0.0737631 -0.0154341 0.0968476
+v -0.0737631 0.0154341 0.0968476
+v -0.0467812 -0.0590087 -0.0970091
+v -0.0467812 0.0590087 -0.0970091
+v 0.0467812 -0.0590087 -0.0970091
+v 0.0467812 0.0590087 -0.0970091
+v 0.0467812 -0.0590087 0.0970091
+v 0.0467812 0.0590087 0.0970091
+v -0.0467812 -0.0590087 0.0970091
+v -0.0467812 0.0590087 0.0970091
+v -0.074229 -0.0126542 -0.0970171
+v -0.074229 0.0126542 -0.0970171
+v 0.074229 -0.0126542 -0.0970171
+v 0.074229 0.0126542 -0.0970171
+v 0.074229 -0.0126542 0.0970171
+v 0.074229 0.0126542 0.0970171
+v -0.074229 -0.0126542 0.0970171
+v -0.074229 0.0126542 0.0970171
+v -0.0300282 -0.0690455 -0.0970375
+v -0.0300282 0.0690455 -0.0970375
+v 0.0300282 -0.0690455 -0.0970375
+v 0.0300282 0.0690455 -0.0970375
+v 0.0300282 -0.0690455 0.0970375
+v 0.0300282 0.0690455 0.0970375
+v -0.0300282 -0.0690455 0.0970375
+v -0.0300282 0.0690455 0.0970375
+v -0.00575006 -0.0750675 -0.0970519
+v -0.00575006 0.0750675 -0.0970519
+v 0.00575006 -0.0750675 -0.0970519
+v 0.00575006 0.0750675 -0.0970519
+v 0.00575006 -0.0750675 0.0970519
+v 0.00575006 0.0750675 0.0970519
+v -0.00575006 -0.0750675 0.0970519
+v -0.00575006 0.0750675 0.0970519
+v -0.0555318 -0.0508196 -0.0970847
+v -0.0555318 0.0508196 -0.0970847
+v 0.0555318 -0.0508196 -0.0970847
+v 0.0555318 0.0508196 -0.0970847
+v 0.0555318 -0.0508196 0.0970847
+v 0.0555318 0.0508196 0.0970847
+v -0.0555318 -0.0508196 0.0970847
+v -0.0555318 0.0508196 0.0970847
+v -0.0670706 -0.0341645 -0.0970983
+v -0.0670706 0.0341645 -0.0970983
+v 0.0670706 -0.0341645 -0.0970983
+v 0.0670706 0.0341645 -0.0970983
+v 0.0670706 -0.0341645 0.0970983
+v 0.0670706 0.0341645 0.0970983
+v -0.0670706 -0.0341645 0.0970983
+v -0.0670706 0.0341645 0.0970983
+v -0.0227777 -0.0717238 -0.0971454
+v -0.0227777 0.0717238 -0.0971454
+v 0.0227777 -0.0717238 -0.0971454
+v 0.0227777 0.0717238 -0.0971454
+v 0.0227777 -0.0717238 0.0971454
+v 0.0227777 0.0717238 0.0971454
+v -0.0227777 -0.0717238 0.0971454
+v -0.0227777 0.0717238 0.0971454
+v -0.0746024 -0.00985854 -0.0971531
+v -0.0746024 0.00985854 -0.0971531
+v 0.0746024 -0.00985854 -0.0971531
+v 0.0746024 0.00985854 -0.0971531
+v 0.0746024 -0.00985854 0.0971531
+v 0.0746024 0.00985854 0.0971531
+v -0.0746024 -0.00985854 0.0971531
+v -0.0746024 0.00985854 0.0971531
+v -0.0610342 -0.0440044 -0.0971742
+v -0.0610342 0.0440044 -0.0971742
+v 0.0610342 -0.0440044 -0.0971742
+v 0.0610342 0.0440044 -0.0971742
+v 0.0610342 -0.0440044 0.0971742
+v 0.0610342 0.0440044 0.0971742
+v -0.0610342 -0.0440044 0.0971742
+v -0.0610342 0.0440044 0.0971742
+v -0.0132775 -0.0740447 -0.0972229
+v -0.0132775 0.0740447 -0.0972229
+v 0.0132775 -0.0740447 -0.0972229
+v 0.0132775 0.0740447 -0.0972229
+v 0.0132775 -0.0740447 0.0972229
+v 0.0132775 0.0740447 0.0972229
+v -0.0132775 -0.0740447 0.0972229
+v -0.0132775 0.0740447 0.0972229
+v -0.00480246 -0.0750675 -0.0972361
+v -0.00480246 0.0750675 -0.0972361
+v 0.00480246 -0.0750675 -0.0972361
+v 0.00480246 0.0750675 -0.0972361
+v 0.00480246 -0.0750675 0.0972361
+v 0.00480246 0.0750675 0.0972361
+v -0.00480246 -0.0750675 0.0972361
+v -0.00480246 0.0750675 0.0972361
+v -0.0512517 -0.0550513 -0.097251
+v -0.0512517 0.0550513 -0.097251
+v 0.0512517 -0.0550513 -0.097251
+v 0.0512517 0.0550513 -0.097251
+v 0.0512517 -0.0550513 0.097251
+v 0.0512517 0.0550513 0.097251
+v -0.0512517 -0.0550513 0.097251
+v -0.0512517 0.0550513 0.097251
+v -0.0748829 -0.0070506 -0.0972551
+v -0.0748829 0.0070506 -0.0972551
+v 0.0748829 -0.0070506 -0.0972551
+v 0.0748829 0.0070506 -0.0972551
+v 0.0748829 -0.0070506 0.0972551
+v 0.0748829 0.0070506 0.0972551
+v -0.0748829 -0.0070506 0.0972551
+v -0.0748829 0.0070506 0.0972551
+v -0.0183877 -0.0729297 -0.0972609
+v -0.0183877 0.0729297 -0.0972609
+v 0.0183877 -0.0729297 -0.0972609
+v 0.0183877 0.0729297 -0.0972609
+v 0.0183877 -0.0729297 0.0972609
+v 0.0183877 0.0729297 0.0972609
+v -0.0183877 -0.0729297 0.0972609
+v -0.0183877 0.0729297 0.0972609
+v -0.0263588 -0.0704285 -0.0972954
+v -0.0263588 0.0704285 -0.0972954
+v 0.0263588 -0.0704285 -0.0972954
+v 0.0263588 0.0704285 -0.0972954
+v 0.0263588 -0.0704285 0.0972954
+v 0.0263588 0.0704285 0.0972954
+v -0.0263588 -0.0704285 0.0972954
+v -0.0263588 0.0704285 0.0972954
+v -0.0750701 -0.00423388 -0.0973233
+v -0.0750701 0.00423388 -0.0973233
+v 0.0750701 -0.00423388 -0.0973233
+v 0.0750701 0.00423388 -0.0973233
+v 0.0750701 -0.00423388 0.0973233
+v 0.0750701 0.00423388 0.0973233
+v -0.0750701 -0.00423388 0.0973233
+v -0.0750701 0.00423388 0.0973233
+v -0.0751637 -0.00141188 -0.0973573
+v -0.0751637 0.00141188 -0.0973573
+v 0.0751637 -0.00141188 -0.0973573
+v 0.0751637 0.00141188 -0.0973573
+v 0.0751637 -0.00141188 0.0973573
+v 0.0751637 0.00141188 0.0973573
+v -0.0751637 -0.00141188 0.0973573
+v -0.0751637 0.00141188 0.0973573
+v -0.00384901 -0.0750675 -0.0973871
+v -0.00384901 0.0750675 -0.0973871
+v 0.00384901 -0.0750675 -0.0973871
+v 0.00384901 0.0750675 -0.0973871
+v 0.00384901 -0.0750675 0.0973871
+v 0.00384901 0.0750675 0.0973871
+v -0.00384901 -0.0750675 0.0973871
+v -0.00384901 0.0750675 0.0973871
+v -0.0440155 -0.0608783 -0.0975039
+v -0.0440155 0.0608783 -0.0975039
+v 0.0440155 -0.0608783 -0.0975039
+v 0.0440155 0.0608783 -0.0975039
+v 0.0440155 -0.0608783 0.0975039
+v 0.0440155 0.0608783 0.0975039
+v -0.0440155 -0.0608783 0.0975039
+v -0.0440155 0.0608783 0.0975039
+v -0.00289086 -0.0750675 -0.0975047
+v -0.00289086 0.0750675 -0.0975047
+v 0.00289086 -0.0750675 -0.0975047
+v 0.00289086 0.0750675 -0.0975047
+v 0.00289086 -0.0750675 0.0975047
+v 0.00289086 0.0750675 0.0975047
+v -0.00289086 -0.0750675 0.0975047
+v -0.00289086 0.0750675 0.0975047
+v -0.0328008 -0.0675765 -0.0975232
+v -0.0328008 0.0675765 -0.0975232
+v 0.0328008 -0.0675765 -0.0975232
+v 0.0328008 0.0675765 -0.0975232
+v 0.0328008 -0.0675765 0.0975232
+v 0.0328008 0.0675765 0.0975232
+v -0.0328008 -0.0675765 0.0975232
+v -0.0328008 0.0675765 0.0975232
+v -0.0681468 -0.0315903 -0.0975331
+v -0.0681468 0.0315903 -0.0975331
+v 0.0681468 -0.0315903 -0.0975331
+v 0.0681468 0.0315903 -0.0975331
+v 0.0681468 -0.0315903 0.0975331
+v 0.0681468 0.0315903 0.0975331
+v -0.0681468 -0.0315903 0.0975331
+v -0.0681468 0.0315903 0.0975331
+v -0.0019292 -0.0750675 -0.0975889
+v -0.0019292 0.0750675 -0.0975889
+v 0.0019292 -0.0750675 -0.0975889
+v 0.0019292 0.0750675 -0.0975889
+v 0.0019292 -0.0750675 0.0975889
+v 0.0019292 0.0750675 0.0975889
+v -0.0019292 -0.0750675 0.0975889
+v -0.0019292 0.0750675 0.0975889
+v -0.000965189 -0.0750675 -0.0976394
+v -0.000965189 0.0750675 -0.0976394
+v 0.000965189 -0.0750675 -0.0976394
+v 0.000965189 0.0750675 -0.0976394
+v 0.000965189 -0.0750675 0.0976394
+v 0.000965189 0.0750675 0.0976394
+v -0.000965189 -0.0750675 0.0976394
+v -0.000965189 0.0750675 0.0976394
+v -5.08037e-18 -0.0750675 -0.0976562
+v -5.08037e-18 0.0750675 -0.0976562
+v 1.69346e-18 -0.0750675 0.0976562
+v 1.69346e-18 0.0750675 0.0976562
+v -0.0123193 -0.0740447 -0.0976697
+v -0.0123193 0.0740447 -0.0976697
+v 0.0123193 -0.0740447 -0.0976697
+v 0.0123193 0.0740447 -0.0976697
+v 0.0123193 -0.0740447 0.0976697
+v 0.0123193 0.0740447 0.0976697
+v -0.0123193 -0.0740447 0.0976697
+v -0.0123193 0.0740447 0.0976697
+v -0.0624149 -0.0416192 -0.0977889
+v -0.0624149 0.0416192 -0.0977889
+v 0.0624149 -0.0416192 -0.0977889
+v 0.0624149 0.0416192 -0.0977889
+v 0.0624149 -0.0416192 0.0977889
+v 0.0624149 0.0416192 0.0977889
+v -0.0624149 -0.0416192 0.0977889
+v -0.0624149 0.0416192 0.0977889
+v -0.0412208 -0.0626721 -0.0978038
+v -0.0412208 0.0626721 -0.0978038
+v 0.0412208 -0.0626721 -0.0978038
+v 0.0412208 0.0626721 -0.0978038
+v 0.0412208 -0.0626721 0.0978038
+v 0.0412208 0.0626721 0.0978038
+v -0.0412208 -0.0626721 0.0978038
+v -0.0412208 0.0626721 0.0978038
+v -0.0355997 -0.0660233 -0.0978135
+v -0.0355997 0.0660233 -0.0978135
+v 0.0355997 -0.0660233 -0.0978135
+v 0.0355997 0.0660233 -0.0978135
+v 0.0355997 -0.0660233 0.0978135
+v 0.0355997 0.0660233 0.0978135
+v -0.0355997 -0.0660233 0.0978135
+v -0.0355997 0.0660233 0.0978135
+v -0.0571092 -0.0486075 -0.097854
+v -0.0571092 0.0486075 -0.097854
+v 0.0571092 -0.0486075 -0.097854
+v 0.0571092 0.0486075 -0.097854
+v 0.0571092 -0.0486075 0.097854
+v 0.0571092 0.0486075 0.097854
+v -0.0571092 -0.0486075 0.097854
+v -0.0571092 0.0486075 0.097854
+v -0.0174251 -0.0729297 -0.097886
+v -0.0174251 0.0729297 -0.097886
+v 0.0174251 -0.0729297 -0.097886
+v 0.0174251 0.0729297 -0.097886
+v 0.0174251 -0.0729297 0.097886
+v 0.0174251 0.0729297 0.097886
+v -0.0174251 -0.0729297 0.097886
+v -0.0174251 0.0729297 0.097886
+v -0.038411 -0.0643878 -0.0979072
+v -0.038411 0.0643878 -0.0979072
+v 0.038411 -0.0643878 -0.0979072
+v 0.038411 0.0643878 -0.0979072
+v 0.038411 -0.0643878 0.0979072
+v 0.038411 0.0643878 0.0979072
+v -0.038411 -0.0643878 0.0979072
+v -0.038411 0.0643878 0.0979072
+v -0.0218165 -0.0717238 -0.0979238
+v -0.0218165 0.0717238 -0.0979238
+v 0.0218165 -0.0717238 -0.0979238
+v 0.0218165 0.0717238 -0.0979238
+v 0.0218165 -0.0717238 0.0979238
+v 0.0218165 0.0717238 0.0979238
+v -0.0218165 -0.0717238 0.0979238
+v -0.0218165 0.0717238 0.0979238
+v -0.069138 -0.0289768 -0.0979336
+v -0.069138 0.0289768 -0.0979336
+v 0.069138 -0.0289768 -0.0979336
+v 0.069138 0.0289768 -0.0979336
+v 0.069138 -0.0289768 0.0979336
+v 0.069138 0.0289768 0.0979336
+v -0.069138 -0.0289768 0.0979336
+v -0.069138 0.0289768 0.0979336
+v -0.0485556 -0.0570655 -0.0980336
+v -0.0485556 0.0570655 -0.0980336
+v 0.0485556 -0.0570655 -0.0980336
+v 0.0485556 0.0570655 -0.0980336
+v 0.0485556 -0.0570655 0.0980336
+v 0.0485556 0.0570655 0.0980336
+v -0.0485556 -0.0570655 0.0980336
+v -0.0485556 0.0570655 0.0980336
+v -0.0290663 -0.0690455 -0.098069
+v -0.0290663 0.0690455 -0.098069
+v 0.0290663 -0.0690455 -0.098069
+v 0.0290663 0.0690455 -0.098069
+v 0.0290663 -0.0690455 0.098069
+v 0.0290663 0.0690455 0.098069
+v -0.0290663 -0.0690455 0.098069
+v -0.0290663 0.0690455 0.098069
+v -0.0113462 -0.0740447 -0.0980828
+v -0.0113462 0.0740447 -0.0980828
+v 0.0113462 -0.0740447 -0.0980828
+v 0.0113462 0.0740447 -0.0980828
+v 0.0113462 -0.0740447 0.0980828
+v 0.0113462 0.0740447 0.0980828
+v -0.0113462 -0.0740447 0.0980828
+v -0.0113462 0.0740447 0.0980828
+v -0.0529352 -0.0529685 -0.0981461
+v -0.0529352 0.0529685 -0.0981461
+v 0.0529352 -0.0529685 -0.0981461
+v 0.0529352 0.0529685 -0.0981461
+v 0.0529352 -0.0529685 0.0981461
+v 0.0529352 0.0529685 0.0981461
+v -0.0529352 -0.0529685 0.0981461
+v -0.0529352 0.0529685 0.0981461
+v -0.0253902 -0.0704285 -0.0981986
+v -0.0253902 0.0704285 -0.0981986
+v 0.0253902 -0.0704285 -0.0981986
+v 0.0253902 0.0704285 -0.0981986
+v 0.0253902 -0.0704285 0.0981986
+v 0.0253902 0.0704285 0.0981986
+v -0.0253902 -0.0704285 0.0981986
+v -0.0253902 0.0704285 0.0981986
+v -0.0700431 -0.0263271 -0.0982993
+v -0.0700431 0.0263271 -0.0982993
+v 0.0700431 -0.0263271 -0.0982993
+v 0.0700431 0.0263271 -0.0982993
+v 0.0700431 -0.0263271 0.0982993
+v 0.0700431 0.0263271 0.0982993
+v -0.0700431 -0.0263271 0.0982993
+v -0.0700431 0.0263271 0.0982993
+v -0.0637179 -0.0391821 -0.098369
+v -0.0637179 0.0391821 -0.098369
+v 0.0637179 -0.0391821 -0.098369
+v 0.0637179 0.0391821 -0.098369
+v 0.0637179 -0.0391821 0.098369
+v 0.0637179 0.0391821 0.098369
+v -0.0637179 -0.0391821 0.098369
+v -0.0637179 0.0391821 0.098369
+v -0.0103592 -0.0740447 -0.0984617
+v -0.0103592 0.0740447 -0.0984617
+v 0.0103592 -0.0740447 -0.0984617
+v 0.0103592 0.0740447 -0.0984617
+v 0.0103592 -0.0740447 0.0984617
+v 0.0103592 0.0740447 0.0984617
+v -0.0103592 -0.0740447 0.0984617
+v -0.0103592 0.0740447 0.0984617
+v -0.0164413 -0.0729297 -0.0984771
+v -0.0164413 0.0729297 -0.0984771
+v 0.0164413 -0.0729297 -0.0984771
+v 0.0164413 0.0729297 -0.0984771
+v 0.0164413 -0.0729297 0.0984771
+v 0.0164413 0.0729297 0.0984771
+v -0.0164413 -0.0729297 0.0984771
+v -0.0164413 0.0729297 0.0984771
+v -0.0586155 -0.0463348 -0.0985887
+v -0.0586155 0.0463348 -0.0985887
+v 0.0586155 -0.0463348 -0.0985887
+v 0.0586155 0.0463348 -0.0985887
+v 0.0586155 -0.0463348 0.0985887
+v 0.0586155 0.0463348 0.0985887
+v -0.0586155 -0.0463348 0.0985887
+v -0.0586155 0.0463348 0.0985887
+v -0.0458101 -0.0590087 -0.0986253
+v -0.0458101 0.0590087 -0.0986253
+v 0.0458101 -0.0590087 -0.0986253
+v 0.0458101 0.0590087 -0.0986253
+v 0.0458101 -0.0590087 0.0986253
+v 0.0458101 0.0590087 0.0986253
+v -0.0458101 -0.0590087 0.0986253
+v -0.0458101 0.0590087 0.0986253
+v -0.0708609 -0.0236447 -0.0986297
+v -0.0708609 0.0236447 -0.0986297
+v 0.0708609 -0.0236447 -0.0986297
+v 0.0708609 0.0236447 -0.0986297
+v 0.0708609 -0.0236447 0.0986297
+v 0.0708609 0.0236447 0.0986297
+v -0.0708609 -0.0236447 0.0986297
+v -0.0708609 0.0236447 0.0986297
+v -0.0318203 -0.0675765 -0.0986511
+v -0.0318203 0.0675765 -0.0986511
+v 0.0318203 -0.0675765 -0.0986511
+v 0.0318203 0.0675765 -0.0986511
+v 0.0318203 -0.0675765 0.0986511
+v 0.0318203 0.0675765 0.0986511
+v -0.0318203 -0.0675765 0.0986511
+v -0.0318203 0.0675765 0.0986511
+v -0.0208287 -0.0717238 -0.0986682
+v -0.0208287 0.0717238 -0.0986682
+v 0.0208287 -0.0717238 -0.0986682
+v 0.0208287 0.0717238 -0.0986682
+v 0.0208287 -0.0717238 0.0986682
+v 0.0208287 0.0717238 0.0986682
+v -0.0208287 -0.0717238 0.0986682
+v -0.0208287 0.0717238 0.0986682
+v -0.00935959 -0.0740447 -0.0988058
+v -0.00935959 0.0740447 -0.0988058
+v 0.00935959 -0.0740447 -0.0988058
+v 0.00935959 0.0740447 -0.0988058
+v 0.00935959 -0.0740447 0.0988058
+v 0.00935959 0.0740447 0.0988058
+v -0.00935959 -0.0740447 0.0988058
+v -0.00935959 0.0740447 0.0988058
+v -0.0649414 -0.0366961 -0.0989138
+v -0.0649414 0.0366961 -0.0989138
+v 0.0649414 -0.0366961 -0.0989138
+v 0.0649414 0.0366961 -0.0989138
+v 0.0649414 -0.0366961 0.0989138
+v 0.0649414 0.0366961 0.0989138
+v -0.0649414 -0.0366961 0.0989138
+v -0.0649414 0.0366961 0.0989138
+v -0.0715905 -0.0209327 -0.0989244
+v -0.0715905 0.0209327 -0.0989244
+v 0.0715905 -0.0209327 -0.0989244
+v 0.0715905 0.0209327 -0.0989244
+v 0.0715905 -0.0209327 0.0989244
+v 0.0715905 0.0209327 0.0989244
+v -0.0715905 -0.0209327 0.0989244
+v -0.0715905 0.0209327 0.0989244
+v -0.0545528 -0.0508196 -0.0990062
+v -0.0545528 0.0508196 -0.0990062
+v 0.0545528 -0.0508196 -0.0990062
+v 0.0545528 0.0508196 -0.0990062
+v 0.0545528 -0.0508196 0.0990062
+v 0.0545528 0.0508196 0.0990062
+v -0.0545528 -0.0508196 0.0990062
+v -0.0545528 0.0508196 0.0990062
+v -0.0502694 -0.0550513 -0.0990231
+v -0.0502694 0.0550513 -0.0990231
+v 0.0502694 -0.0550513 -0.0990231
+v 0.0502694 0.0550513 -0.0990231
+v 0.0502694 -0.0550513 0.0990231
+v 0.0502694 0.0550513 0.0990231
+v -0.0502694 -0.0550513 0.0990231
+v -0.0502694 0.0550513 0.0990231
+v -0.0430288 -0.0608783 -0.0990233
+v -0.0430288 0.0608783 -0.0990233
+v 0.0430288 -0.0608783 -0.0990233
+v 0.0430288 0.0608783 -0.0990233
+v 0.0430288 -0.0608783 0.0990233
+v 0.0430288 0.0608783 0.0990233
+v -0.0430288 -0.0608783 0.0990233
+v -0.0430288 0.0608783 0.0990233
+v -0.0154374 -0.0729297 -0.0990336
+v -0.0154374 0.0729297 -0.0990336
+v 0.0154374 -0.0729297 -0.0990336
+v 0.0154374 0.0729297 -0.0990336
+v 0.0154374 -0.0729297 0.0990336
+v 0.0154374 0.0729297 0.0990336
+v -0.0154374 -0.0729297 0.0990336
+v -0.0154374 0.0729297 0.0990336
+v -0.0346073 -0.0660233 -0.099039
+v -0.0346073 0.0660233 -0.099039
+v 0.0346073 -0.0660233 -0.099039
+v 0.0346073 0.0660233 -0.099039
+v 0.0346073 -0.0660233 0.099039
+v 0.0346073 0.0660233 0.099039
+v -0.0346073 -0.0660233 0.099039
+v -0.0346073 0.0660233 0.099039
+v -0.028069 -0.0690455 -0.0990663
+v -0.028069 0.0690455 -0.0990663
+v 0.028069 -0.0690455 -0.0990663
+v 0.028069 0.0690455 -0.0990663
+v 0.028069 -0.0690455 0.0990663
+v 0.028069 0.0690455 0.0990663
+v -0.028069 -0.0690455 0.0990663
+v -0.028069 0.0690455 0.0990663
+v -0.0243906 -0.0704285 -0.0990676
+v -0.0243906 0.0704285 -0.0990676
+v 0.0243906 -0.0704285 -0.0990676
+v 0.0243906 0.0704285 -0.0990676
+v 0.0243906 -0.0704285 0.0990676
+v 0.0243906 0.0704285 0.0990676
+v -0.0243906 -0.0704285 0.0990676
+v -0.0243906 0.0704285 0.0990676
+v -0.00834858 -0.0740447 -0.0991149
+v -0.00834858 0.0740447 -0.0991149
+v 0.00834858 -0.0740447 -0.0991149
+v 0.00834858 0.0740447 -0.0991149
+v 0.00834858 -0.0740447 0.0991149
+v 0.00834858 0.0740447 0.0991149
+v -0.00834858 -0.0740447 0.0991149
+v -0.00834858 0.0740447 0.0991149
+v -0.0722308 -0.0181947 -0.0991832
+v -0.0722308 0.0181947 -0.0991832
+v 0.0722308 -0.0181947 -0.0991832
+v 0.0722308 0.0181947 -0.0991832
+v 0.0722308 -0.0181947 0.0991832
+v 0.0722308 0.0181947 0.0991832
+v -0.0722308 -0.0181947 0.0991832
+v -0.0722308 0.0181947 0.0991832
+v -0.0402254 -0.0626721 -0.0992255
+v -0.0402254 0.0626721 -0.0992255
+v 0.0402254 -0.0626721 -0.0992255
+v 0.0402254 0.0626721 -0.0992255
+v 0.0402254 -0.0626721 0.0992255
+v 0.0402254 0.0626721 0.0992255
+v -0.0402254 -0.0626721 0.0992255
+v -0.0402254 0.0626721 0.0992255
+v -0.0374136 -0.0643878 -0.0992307
+v -0.0374136 0.0643878 -0.0992307
+v 0.0374136 -0.0643878 -0.0992307
+v 0.0374136 0.0643878 -0.0992307
+v 0.0374136 -0.0643878 0.0992307
+v 0.0374136 0.0643878 0.0992307
+v -0.0374136 -0.0643878 0.0992307
+v -0.0374136 0.0643878 0.0992307
+v -0.0600487 -0.0440044 -0.0992877
+v -0.0600487 0.0440044 -0.0992877
+v 0.0600487 -0.0440044 -0.0992877
+v 0.0600487 0.0440044 -0.0992877
+v 0.0600487 -0.0440044 0.0992877
+v 0.0600487 0.0440044 0.0992877
+v -0.0600487 -0.0440044 0.0992877
+v -0.0600487 0.0440044 0.0992877
+v -0.0198155 -0.0717238 -0.0993777
+v -0.0198155 0.0717238 -0.0993777
+v 0.0198155 -0.0717238 -0.0993777
+v 0.0198155 0.0717238 -0.0993777
+v 0.0198155 -0.0717238 0.0993777
+v 0.0198155 0.0717238 0.0993777
+v -0.0198155 -0.0717238 0.0993777
+v -0.0198155 0.0717238 0.0993777
+v -0.00732739 -0.0740447 -0.0993886
+v -0.00732739 0.0740447 -0.0993886
+v 0.00732739 -0.0740447 -0.0993886
+v 0.00732739 0.0740447 -0.0993886
+v 0.00732739 -0.0740447 0.0993886
+v 0.00732739 0.0740447 0.0993886
+v -0.00732739 -0.0740447 0.0993886
+v -0.00732739 0.0740447 0.0993886
+v -0.0727812 -0.0154341 -0.0994055
+v -0.0727812 0.0154341 -0.0994055
+v 0.0727812 -0.0154341 -0.0994055
+v 0.0727812 0.0154341 -0.0994055
+v 0.0727812 -0.0154341 0.0994055
+v 0.0727812 0.0154341 0.0994055
+v -0.0727812 -0.0154341 0.0994055
+v -0.0727812 0.0154341 0.0994055
+v -0.066084 -0.0341645 -0.0994225
+v -0.066084 0.0341645 -0.0994225
+v 0.066084 -0.0341645 -0.0994225
+v 0.066084 0.0341645 -0.0994225
+v 0.066084 -0.0341645 0.0994225
+v 0.066084 0.0341645 0.0994225
+v -0.066084 -0.0341645 0.0994225
+v -0.066084 0.0341645 0.0994225
+v -0.0144148 -0.0729297 -0.0995546
+v -0.0144148 0.0729297 -0.0995546
+v 0.0144148 -0.0729297 -0.0995546
+v 0.0144148 0.0729297 -0.0995546
+v 0.0144148 -0.0729297 0.0995546
+v 0.0144148 0.0729297 0.0995546
+v -0.0144148 -0.0729297 0.0995546
+v -0.0144148 0.0729297 0.0995546
+v -0.0732409 -0.0126542 -0.0995912
+v -0.0732409 0.0126542 -0.0995912
+v 0.0732409 -0.0126542 -0.0995912
+v 0.0732409 0.0126542 -0.0995912
+v 0.0732409 -0.0126542 0.0995912
+v 0.0732409 0.0126542 0.0995912
+v -0.0732409 -0.0126542 0.0995912
+v -0.0732409 0.0126542 0.0995912
+v -0.00629728 -0.0740447 -0.0996264
+v -0.00629728 0.0740447 -0.0996264
+v 0.00629728 -0.0740447 -0.0996264
+v 0.00629728 0.0740447 -0.0996264
+v 0.00629728 -0.0740447 0.0996264
+v 0.00629728 0.0740447 0.0996264
+v -0.00629728 -0.0740447 0.0996264
+v -0.00629728 0.0740447 0.0996264
+v -0.0475476 -0.0570655 -0.0997111
+v -0.0475476 0.0570655 -0.0997111
+v 0.0475476 -0.0570655 -0.0997111
+v 0.0475476 0.0570655 -0.0997111
+v 0.0475476 -0.0570655 0.0997111
+v 0.0475476 0.0570655 0.0997111
+v -0.0475476 -0.0570655 0.0997111
+v -0.0475476 0.0570655 0.0997111
+v -0.0736093 -0.00985854 -0.0997401
+v -0.0736093 0.00985854 -0.0997401
+v 0.0736093 -0.00985854 -0.0997401
+v 0.0736093 0.00985854 -0.0997401
+v 0.0736093 -0.00985854 0.0997401
+v 0.0736093 0.00985854 0.0997401
+v -0.0736093 -0.00985854 0.0997401
+v -0.0736093 0.00985854 0.0997401
+v -0.030801 -0.0675765 -0.0997442
+v -0.030801 0.0675765 -0.0997442
+v 0.030801 -0.0675765 -0.0997442
+v 0.030801 0.0675765 -0.0997442
+v 0.030801 -0.0675765 0.0997442
+v 0.030801 0.0675765 0.0997442
+v -0.030801 -0.0675765 0.0997442
+v -0.030801 0.0675765 0.0997442
+v -0.0052595 -0.0740447 -0.0998281
+v -0.0052595 0.0740447 -0.0998281
+v 0.0052595 -0.0740447 -0.0998281
+v 0.0052595 0.0740447 -0.0998281
+v 0.0052595 -0.0740447 0.0998281
+v 0.0052595 0.0740447 0.0998281
+v -0.0052595 -0.0740447 0.0998281
+v -0.0052595 0.0740447 0.0998281
+v -0.0561023 -0.0486075 -0.0998301
+v -0.0561023 0.0486075 -0.0998301
+v 0.0561023 -0.0486075 -0.0998301
+v 0.0561023 0.0486075 -0.0998301
+v 0.0561023 -0.0486075 0.0998301
+v 0.0561023 0.0486075 0.0998301
+v -0.0561023 -0.0486075 0.0998301
+v -0.0561023 0.0486075 0.0998301
+v -0.0738861 -0.0070506 -0.0998519
+v -0.0738861 0.0070506 -0.0998519
+v 0.0738861 -0.0070506 -0.0998519
+v 0.0738861 0.0070506 -0.0998519
+v 0.0738861 -0.0070506 0.0998519
+v 0.0738861 0.0070506 0.0998519
+v -0.0738861 -0.0070506 0.0998519
+v -0.0738861 0.0070506 0.0998519
+v -0.0671444 -0.0315903 -0.0998946
+v -0.0671444 0.0315903 -0.0998946
+v 0.0671444 -0.0315903 -0.0998946
+v 0.0671444 0.0315903 -0.0998946
+v 0.0671444 -0.0315903 0.0998946
+v 0.0671444 0.0315903 0.0998946
+v -0.0671444 -0.0315903 0.0998946
+v -0.0671444 0.0315903 0.0998946
+v -0.0233613 -0.0704285 -0.0999011
+v -0.0233613 0.0704285 -0.0999011
+v 0.0233613 -0.0704285 -0.0999011
+v 0.0233613 0.0704285 -0.0999011
+v 0.0233613 -0.0704285 0.0999011
+v 0.0233613 0.0704285 0.0999011
+v -0.0233613 -0.0704285 0.0999011
+v -0.0233613 0.0704285 0.0999011
+v -0.0740708 -0.00423388 -0.0999265
+v -0.0740708 0.00423388 -0.0999265
+v 0.0740708 -0.00423388 -0.0999265
+v 0.0740708 0.00423388 -0.0999265
+v 0.0740708 -0.00423388 0.0999265
+v 0.0740708 0.00423388 0.0999265
+v -0.0740708 -0.00423388 0.0999265
+v -0.0740708 0.00423388 0.0999265
+v -0.0614071 -0.0416192 -0.0999502
+v -0.0614071 0.0416192 -0.0999502
+v 0.0614071 -0.0416192 -0.0999502
+v 0.0614071 0.0416192 -0.0999502
+v 0.0614071 -0.0416192 0.0999502
+v 0.0614071 0.0416192 0.0999502
+v -0.0614071 -0.0416192 0.0999502
+v -0.0614071 0.0416192 0.0999502
+v -0.0741632 -0.00141188 -0.0999639
+v -0.0741632 0.00141188 -0.0999639
+v 0.0741632 -0.00141188 -0.0999639
+v 0.0741632 0.00141188 -0.0999639
+v 0.0741632 -0.00141188 0.0999639
+v 0.0741632 0.00141188 0.0999639
+v -0.0741632 -0.00141188 0.0999639
+v -0.0741632 0.00141188 0.0999639
+v -0.0519207 -0.0529685 -0.0999764
+v -0.0519207 0.0529685 -0.0999764
+v 0.0519207 -0.0529685 -0.0999764
+v 0.0519207 0.0529685 -0.0999764
+v 0.0519207 -0.0529685 0.0999764
+v 0.0519207 0.0529685 0.0999764
+v -0.0519207 -0.0529685 0.0999764
+v -0.0519207 0.0529685 0.0999764
+v -0.00421531 -0.0740447 -0.0999935
+v -0.00421531 0.0740447 -0.0999935
+v 0.00421531 -0.0740447 -0.0999935
+v 0.00421531 0.0740447 -0.0999935
+v 0.00421531 -0.0740447 0.0999935
+v 0.00421531 0.0740447 0.0999935
+v -0.00421531 -0.0740447 0.0999935
+v -0.00421531 0.0740447 0.0999935
+v -0.0270375 -0.0690455 -0.100028
+v -0.0270375 0.0690455 -0.100028
+v 0.0270375 -0.0690455 -0.100028
+v 0.0270375 0.0690455 -0.100028
+v 0.0270375 -0.0690455 0.100028
+v 0.0270375 0.0690455 0.100028
+v -0.0270375 -0.0690455 0.100028
+v -0.0270375 0.0690455 0.100028
+v -0.0133745 -0.0729297 -0.10004
+v -0.0133745 0.0729297 -0.10004
+v 0.0133745 -0.0729297 -0.10004
+v 0.0133745 0.0729297 -0.10004
+v 0.0133745 -0.0729297 0.10004
+v 0.0133745 0.0729297 0.10004
+v -0.0133745 -0.0729297 0.10004
+v -0.0133745 0.0729297 0.10004
+v -0.0187781 -0.0717238 -0.100051
+v -0.0187781 0.0717238 -0.100051
+v 0.0187781 -0.0717238 -0.100051
+v 0.0187781 0.0717238 -0.100051
+v 0.0187781 -0.0717238 0.100051
+v 0.0187781 0.0717238 0.100051
+v -0.0187781 -0.0717238 0.100051
+v -0.0187781 0.0717238 0.100051
+v -0.00316599 -0.0740447 -0.100122
+v -0.00316599 0.0740447 -0.100122
+v 0.00316599 -0.0740447 -0.100122
+v 0.00316599 0.0740447 -0.100122
+v 0.00316599 -0.0740447 0.100122
+v 0.00316599 0.0740447 0.100122
+v -0.00316599 -0.0740447 0.100122
+v -0.00316599 0.0740447 0.100122
+v -0.0447832 -0.0590087 -0.100207
+v -0.0447832 0.0590087 -0.100207
+v 0.0447832 -0.0590087 -0.100207
+v 0.0447832 0.0590087 -0.100207
+v 0.0447832 -0.0590087 0.100207
+v 0.0447832 0.0590087 0.100207
+v -0.0447832 -0.0590087 0.100207
+v -0.0447832 0.0590087 0.100207
+v -0.0021128 -0.0740447 -0.100214
+v -0.0021128 0.0740447 -0.100214
+v 0.0021128 -0.0740447 -0.100214
+v 0.0021128 0.0740447 -0.100214
+v 0.0021128 -0.0740447 0.100214
+v 0.0021128 0.0740447 0.100214
+v -0.0021128 -0.0740447 0.100214
+v -0.0021128 0.0740447 0.100214
+v -0.0335728 -0.0660233 -0.100229
+v -0.0335728 0.0660233 -0.100229
+v 0.0335728 -0.0660233 -0.100229
+v 0.0335728 0.0660233 -0.100229
+v 0.0335728 -0.0660233 0.100229
+v 0.0335728 0.0660233 0.100229
+v -0.0335728 -0.0660233 0.100229
+v -0.0335728 0.0660233 0.100229
+v -0.00105704 -0.0740447 -0.10027
+v -0.00105704 0.0740447 -0.10027
+v 0.00105704 -0.0740447 -0.10027
+v 0.00105704 0.0740447 -0.10027
+v 0.00105704 -0.0740447 0.10027
+v 0.00105704 0.0740447 0.10027
+v -0.00105704 -0.0740447 0.10027
+v -0.00105704 0.0740447 0.10027
+v -5.56386e-18 -0.0740447 -0.100288
+v -5.56386e-18 0.0740447 -0.100288
+v 1.85462e-18 -0.0740447 0.100288
+v 1.85462e-18 0.0740447 0.100288
+v -0.068121 -0.0289768 -0.100329
+v -0.068121 0.0289768 -0.100329
+v 0.068121 -0.0289768 -0.100329
+v 0.068121 0.0289768 -0.100329
+v 0.068121 -0.0289768 0.100329
+v 0.068121 0.0289768 0.100329
+v -0.068121 -0.0289768 0.100329
+v -0.068121 0.0289768 0.100329
+v -0.012318 -0.0729297 -0.100488
+v -0.012318 0.0729297 -0.100488
+v 0.012318 -0.0729297 -0.100488
+v 0.012318 0.0729297 -0.100488
+v 0.012318 -0.0729297 0.100488
+v 0.012318 0.0729297 0.100488
+v -0.012318 -0.0729297 0.100488
+v -0.012318 0.0729297 0.100488
+v -0.0419897 -0.0608783 -0.100507
+v -0.0419897 0.0608783 -0.100507
+v 0.0419897 -0.0608783 -0.100507
+v 0.0419897 0.0608783 -0.100507
+v 0.0419897 -0.0608783 0.100507
+v 0.0419897 0.0608783 0.100507
+v -0.0419897 -0.0608783 0.100507
+v -0.0419897 0.0608783 0.100507
+v -0.0363707 -0.0643878 -0.100519
+v -0.0363707 0.0643878 -0.100519
+v 0.0363707 -0.0643878 -0.100519
+v 0.0363707 0.0643878 -0.100519
+v 0.0363707 -0.0643878 0.100519
+v 0.0363707 0.0643878 0.100519
+v -0.0363707 -0.0643878 0.100519
+v -0.0363707 0.0643878 0.100519
+v -0.062689 -0.0391821 -0.100575
+v -0.062689 0.0391821 -0.100575
+v 0.062689 -0.0391821 -0.100575
+v 0.062689 0.0391821 -0.100575
+v 0.062689 -0.0391821 0.100575
+v 0.062689 0.0391821 0.100575
+v -0.062689 -0.0391821 0.100575
+v -0.062689 0.0391821 0.100575
+v -0.0391809 -0.0626721 -0.100612
+v -0.0391809 0.0626721 -0.100612
+v 0.0391809 -0.0626721 -0.100612
+v 0.0391809 0.0626721 -0.100612
+v 0.0391809 -0.0626721 0.100612
+v 0.0391809 0.0626721 0.100612
+v -0.0391809 -0.0626721 0.100612
+v -0.0391809 0.0626721 0.100612
+v -0.057582 -0.0463348 -0.100617
+v -0.057582 0.0463348 -0.100617
+v 0.057582 -0.0463348 -0.100617
+v 0.057582 0.0463348 -0.100617
+v 0.057582 -0.0463348 0.100617
+v 0.057582 0.0463348 0.100617
+v -0.057582 -0.0463348 0.100617
+v -0.057582 0.0463348 0.100617
+v -0.0177179 -0.0717238 -0.100688
+v -0.0177179 0.0717238 -0.100688
+v 0.0177179 -0.0717238 -0.100688
+v 0.0177179 0.0717238 -0.100688
+v 0.0177179 -0.0717238 0.100688
+v 0.0177179 0.0717238 0.100688
+v -0.0177179 -0.0717238 0.100688
+v -0.0177179 0.0717238 0.100688
+v -0.0223035 -0.0704285 -0.100698
+v -0.0223035 0.0704285 -0.100698
+v 0.0223035 -0.0704285 -0.100698
+v 0.0223035 0.0704285 -0.100698
+v 0.0223035 -0.0704285 0.100698
+v 0.0223035 0.0704285 0.100698
+v -0.0223035 -0.0704285 0.100698
+v -0.0223035 0.0704285 0.100698
+v -0.0690128 -0.0263271 -0.100726
+v -0.0690128 0.0263271 -0.100726
+v 0.0690128 -0.0263271 -0.100726
+v 0.0690128 0.0263271 -0.100726
+v 0.0690128 -0.0263271 0.100726
+v 0.0690128 0.0263271 0.100726
+v -0.0690128 -0.0263271 0.100726
+v -0.0690128 0.0263271 0.100726
+v -0.0492259 -0.0550513 -0.10076
+v -0.0492259 0.0550513 -0.10076
+v 0.0492259 -0.0550513 -0.10076
+v 0.0492259 0.0550513 -0.10076
+v 0.0492259 -0.0550513 0.10076
+v 0.0492259 0.0550513 0.10076
+v -0.0492259 -0.0550513 0.10076
+v -0.0492259 0.0550513 0.10076
+v -0.0297442 -0.0675765 -0.100801
+v -0.0297442 0.0675765 -0.100801
+v 0.0297442 -0.0675765 -0.100801
+v 0.0297442 0.0675765 -0.100801
+v 0.0297442 -0.0675765 0.100801
+v 0.0297442 0.0675765 0.100801
+v -0.0297442 -0.0675765 0.100801
+v -0.0297442 0.0675765 0.100801
+v -0.0535072 -0.0508196 -0.100892
+v -0.0535072 0.0508196 -0.100892
+v 0.0535072 -0.0508196 -0.100892
+v 0.0535072 0.0508196 -0.100892
+v 0.0535072 -0.0508196 0.100892
+v 0.0535072 0.0508196 0.100892
+v -0.0535072 -0.0508196 0.100892
+v -0.0535072 0.0508196 0.100892
+v -0.0112465 -0.0729297 -0.100899
+v -0.0112465 0.0729297 -0.100899
+v 0.0112465 -0.0729297 -0.100899
+v 0.0112465 0.0729297 -0.100899
+v 0.0112465 -0.0729297 0.100899
+v 0.0112465 0.0729297 0.100899
+v -0.0112465 -0.0729297 0.100899
+v -0.0112465 0.0729297 0.100899
+v -0.0259731 -0.0690455 -0.100953
+v -0.0259731 0.0690455 -0.100953
+v 0.0259731 -0.0690455 -0.100953
+v 0.0259731 0.0690455 -0.100953
+v 0.0259731 -0.0690455 0.100953
+v 0.0259731 0.0690455 0.100953
+v -0.0259731 -0.0690455 0.100953
+v -0.0259731 0.0690455 0.100953
+v -0.0698186 -0.0236447 -0.101085
+v -0.0698186 0.0236447 -0.101085
+v 0.0698186 -0.0236447 -0.101085
+v 0.0698186 0.0236447 -0.101085
+v 0.0698186 -0.0236447 0.101085
+v 0.0698186 0.0236447 0.101085
+v -0.0698186 -0.0236447 0.101085
+v -0.0698186 0.0236447 0.101085
+v -0.0638928 -0.0366961 -0.101163
+v -0.0638928 0.0366961 -0.101163
+v 0.0638928 -0.0366961 -0.101163
+v 0.0638928 0.0366961 -0.101163
+v 0.0638928 -0.0366961 0.101163
+v 0.0638928 0.0366961 0.101163
+v -0.0638928 -0.0366961 0.101163
+v -0.0638928 0.0366961 0.101163
+v -0.0101613 -0.0729297 -0.101273
+v -0.0101613 0.0729297 -0.101273
+v 0.0101613 -0.0729297 -0.101273
+v 0.0101613 0.0729297 -0.101273
+v 0.0101613 -0.0729297 0.101273
+v 0.0101613 0.0729297 0.101273
+v -0.0101613 -0.0729297 0.101273
+v -0.0101613 0.0729297 0.101273
+v -0.0166361 -0.0717238 -0.101288
+v -0.0166361 0.0717238 -0.101288
+v 0.0166361 -0.0717238 -0.101288
+v 0.0166361 0.0717238 -0.101288
+v 0.0166361 -0.0717238 0.101288
+v 0.0166361 0.0717238 0.101288
+v -0.0166361 -0.0717238 0.101288
+v -0.0166361 0.0717238 0.101288
+v -0.0464818 -0.0570655 -0.101352
+v -0.0464818 0.0570655 -0.101352
+v 0.0464818 -0.0570655 -0.101352
+v 0.0464818 0.0570655 -0.101352
+v 0.0464818 -0.0570655 0.101352
+v 0.0464818 0.0570655 0.101352
+v -0.0464818 -0.0570655 0.101352
+v -0.0464818 0.0570655 0.101352
+v -0.05899 -0.0440044 -0.101366
+v -0.05899 0.0440044 -0.101366
+v 0.05899 -0.0440044 -0.101366
+v 0.05899 0.0440044 -0.101366
+v 0.05899 -0.0440044 0.101366
+v 0.05899 0.0440044 0.101366
+v -0.05899 -0.0440044 0.101366
+v -0.05899 0.0440044 0.101366
+v -0.0324974 -0.0660233 -0.101382
+v -0.0324974 0.0660233 -0.101382
+v 0.0324974 -0.0660233 -0.101382
+v 0.0324974 0.0660233 -0.101382
+v 0.0324974 -0.0660233 0.101382
+v 0.0324974 0.0660233 0.101382
+v -0.0324974 -0.0660233 0.101382
+v -0.0324974 0.0660233 0.101382
+v -0.0705374 -0.0209327 -0.101405
+v -0.0705374 0.0209327 -0.101405
+v 0.0705374 -0.0209327 -0.101405
+v 0.0705374 0.0209327 -0.101405
+v 0.0705374 -0.0209327 0.101405
+v 0.0705374 0.0209327 0.101405
+v -0.0705374 -0.0209327 0.101405
+v -0.0705374 0.0209327 0.101405
+v -0.0212186 -0.0704285 -0.101458
+v -0.0212186 0.0704285 -0.101458
+v 0.0212186 -0.0704285 -0.101458
+v 0.0212186 0.0704285 -0.101458
+v 0.0212186 -0.0704285 0.101458
+v 0.0212186 0.0704285 0.101458
+v -0.0212186 -0.0704285 0.101458
+v -0.0212186 0.0704285 0.101458
+v -0.00906366 -0.0729297 -0.101609
+v -0.00906366 0.0729297 -0.101609
+v 0.00906366 -0.0729297 -0.101609
+v 0.00906366 0.0729297 -0.101609
+v 0.00906366 -0.0729297 0.101609
+v 0.00906366 0.0729297 0.101609
+v -0.00906366 -0.0729297 0.101609
+v -0.00906366 0.0729297 0.101609
+v -0.0711684 -0.0181947 -0.101686
+v -0.0711684 0.0181947 -0.101686
+v 0.0711684 -0.0181947 -0.101686
+v 0.0711684 0.0181947 -0.101686
+v 0.0711684 -0.0181947 0.101686
+v 0.0711684 0.0181947 0.101686
+v -0.0711684 -0.0181947 0.101686
+v -0.0711684 0.0181947 0.101686
+v -0.065017 -0.0341645 -0.101711
+v -0.065017 0.0341645 -0.101711
+v 0.065017 -0.0341645 -0.101711
+v 0.065017 0.0341645 -0.101711
+v 0.065017 -0.0341645 0.101711
+v 0.065017 0.0341645 0.101711
+v -0.065017 -0.0341645 0.101711
+v -0.065017 0.0341645 0.101711
+v -0.0437017 -0.0590087 -0.101751
+v -0.0437017 0.0590087 -0.101751
+v 0.0437017 -0.0590087 -0.101751
+v 0.0437017 0.0590087 -0.101751
+v 0.0437017 -0.0590087 0.101751
+v 0.0437017 0.0590087 0.101751
+v -0.0437017 -0.0590087 0.101751
+v -0.0437017 0.0590087 0.101751
+v -0.0352834 -0.0643878 -0.101769
+v -0.0352834 0.0643878 -0.101769
+v 0.0352834 -0.0643878 -0.101769
+v 0.0352834 0.0643878 -0.101769
+v 0.0352834 -0.0643878 0.101769
+v 0.0352834 0.0643878 0.101769
+v -0.0352834 -0.0643878 0.101769
+v -0.0352834 0.0643878 0.101769
+v -0.0508429 -0.0529685 -0.10177
+v -0.0508429 0.0529685 -0.10177
+v 0.0508429 -0.0529685 -0.10177
+v 0.0508429 0.0529685 -0.10177
+v 0.0508429 -0.0529685 0.10177
+v 0.0508429 0.0529685 0.10177
+v -0.0508429 -0.0529685 0.10177
+v -0.0508429 0.0529685 0.10177
+v -0.0550271 -0.0486075 -0.10177
+v -0.0550271 0.0486075 -0.10177
+v 0.0550271 -0.0486075 -0.10177
+v 0.0550271 0.0486075 -0.10177
+v 0.0550271 -0.0486075 0.10177
+v 0.0550271 0.0486075 0.10177
+v -0.0550271 -0.0486075 0.10177
+v -0.0550271 0.0486075 0.10177
+v -0.0286511 -0.0675765 -0.10182
+v -0.0286511 0.0675765 -0.10182
+v 0.0286511 -0.0675765 -0.10182
+v 0.0286511 0.0675765 -0.10182
+v 0.0286511 -0.0675765 0.10182
+v 0.0286511 0.0675765 0.10182
+v -0.0286511 -0.0675765 0.10182
+v -0.0286511 0.0675765 0.10182
+v -0.024877 -0.0690455 -0.101841
+v -0.024877 0.0690455 -0.101841
+v 0.024877 -0.0690455 -0.101841
+v 0.024877 0.0690455 -0.101841
+v 0.024877 -0.0690455 0.101841
+v 0.024877 0.0690455 0.101841
+v -0.024877 -0.0690455 0.101841
+v -0.024877 0.0690455 0.101841
+v -0.0155341 -0.0717238 -0.10185
+v -0.0155341 0.0717238 -0.10185
+v 0.0155341 -0.0717238 -0.10185
+v 0.0155341 0.0717238 -0.10185
+v 0.0155341 -0.0717238 0.10185
+v 0.0155341 0.0717238 0.10185
+v -0.0155341 -0.0717238 0.10185
+v -0.0155341 0.0717238 0.10185
+v -0.00795501 -0.0729297 -0.101906
+v -0.00795501 0.0729297 -0.101906
+v 0.00795501 -0.0729297 -0.101906
+v 0.00795501 0.0729297 -0.101906
+v 0.00795501 -0.0729297 0.101906
+v 0.00795501 0.0729297 0.101906
+v -0.00795501 -0.0729297 0.101906
+v -0.00795501 0.0729297 0.101906
+v -0.0717106 -0.0154341 -0.101928
+v -0.0717106 0.0154341 -0.101928
+v 0.0717106 -0.0154341 -0.101928
+v 0.0717106 0.0154341 -0.101928
+v 0.0717106 -0.0154341 0.101928
+v 0.0717106 0.0154341 0.101928
+v -0.0717106 -0.0154341 0.101928
+v -0.0717106 0.0154341 0.101928
+v -0.0408994 -0.0608783 -0.101954
+v -0.0408994 0.0608783 -0.101954
+v 0.0408994 -0.0608783 -0.101954
+v 0.0408994 0.0608783 -0.101954
+v 0.0408994 -0.0608783 0.101954
+v 0.0408994 0.0608783 0.101954
+v -0.0408994 -0.0608783 0.101954
+v -0.0408994 0.0608783 0.101954
+v -0.0380887 -0.0626721 -0.10196
+v -0.0380887 0.0626721 -0.10196
+v 0.0380887 -0.0626721 -0.10196
+v 0.0380887 0.0626721 -0.10196
+v 0.0380887 -0.0626721 0.10196
+v 0.0380887 0.0626721 0.10196
+v -0.0380887 -0.0626721 0.10196
+v -0.0380887 0.0626721 0.10196
+v -0.0603244 -0.0416192 -0.102075
+v -0.0603244 0.0416192 -0.102075
+v 0.0603244 -0.0416192 -0.102075
+v 0.0603244 0.0416192 -0.102075
+v 0.0603244 -0.0416192 0.102075
+v 0.0603244 0.0416192 0.102075
+v -0.0603244 -0.0416192 0.102075
+v -0.0603244 0.0416192 0.102075
+v -0.0721636 -0.0126542 -0.102129
+v -0.0721636 0.0126542 -0.102129
+v 0.0721636 -0.0126542 -0.102129
+v 0.0721636 0.0126542 -0.102129
+v 0.0721636 -0.0126542 0.102129
+v 0.0721636 0.0126542 0.102129
+v -0.0721636 -0.0126542 0.102129
+v -0.0721636 0.0126542 0.102129
+v -0.00683666 -0.0729297 -0.102164
+v -0.00683666 0.0729297 -0.102164
+v 0.00683666 -0.0729297 -0.102164
+v 0.00683666 0.0729297 -0.102164
+v 0.00683666 -0.0729297 0.102164
+v 0.00683666 0.0729297 0.102164
+v -0.00683666 -0.0729297 0.102164
+v -0.00683666 0.0729297 0.102164
+v -0.0201078 -0.0704285 -0.102179
+v -0.0201078 0.0704285 -0.102179
+v 0.0201078 -0.0704285 -0.102179
+v 0.0201078 0.0704285 -0.102179
+v 0.0201078 -0.0704285 0.102179
+v 0.0201078 0.0704285 0.102179
+v -0.0201078 -0.0704285 0.102179
+v -0.0201078 0.0704285 0.102179
+v -0.0660601 -0.0315903 -0.10222
+v -0.0660601 0.0315903 -0.10222
+v 0.0660601 -0.0315903 -0.10222
+v 0.0660601 0.0315903 -0.10222
+v 0.0660601 -0.0315903 0.10222
+v 0.0660601 0.0315903 0.10222
+v -0.0660601 -0.0315903 0.10222
+v -0.0660601 0.0315903 0.10222
+v -0.0725266 -0.00985854 -0.102291
+v -0.0725266 0.00985854 -0.102291
+v 0.0725266 -0.00985854 -0.102291
+v 0.0725266 0.00985854 -0.102291
+v 0.0725266 -0.00985854 0.102291
+v 0.0725266 0.00985854 0.102291
+v -0.0725266 -0.00985854 0.102291
+v -0.0725266 0.00985854 0.102291
+v -0.0144131 -0.0717238 -0.102372
+v -0.0144131 0.0717238 -0.102372
+v 0.0144131 -0.0717238 -0.102372
+v 0.0144131 0.0717238 -0.102372
+v 0.0144131 -0.0717238 0.102372
+v 0.0144131 0.0717238 0.102372
+v -0.0144131 -0.0717238 0.102372
+v -0.0144131 0.0717238 0.102372
+v -0.00570999 -0.0729297 -0.102383
+v -0.00570999 0.0729297 -0.102383
+v 0.00570999 -0.0729297 -0.102383
+v 0.00570999 0.0729297 -0.102383
+v 0.00570999 -0.0729297 0.102383
+v 0.00570999 0.0729297 0.102383
+v -0.00570999 -0.0729297 0.102383
+v -0.00570999 0.0729297 0.102383
+v -0.0727993 -0.0070506 -0.102412
+v -0.0727993 0.0070506 -0.102412
+v 0.0727993 -0.0070506 -0.102412
+v 0.0727993 0.0070506 -0.102412
+v 0.0727993 -0.0070506 0.102412
+v 0.0727993 0.0070506 0.102412
+v -0.0727993 -0.0070506 0.102412
+v -0.0727993 0.0070506 0.102412
+v -0.0481224 -0.0550513 -0.102459
+v -0.0481224 0.0550513 -0.102459
+v 0.0481224 -0.0550513 -0.102459
+v 0.0481224 0.0550513 -0.102459
+v 0.0481224 -0.0550513 0.102459
+v 0.0481224 0.0550513 0.102459
+v -0.0481224 -0.0550513 0.102459
+v -0.0481224 0.0550513 0.102459
+v -0.0729812 -0.00423388 -0.102493
+v -0.0729812 0.00423388 -0.102493
+v 0.0729812 -0.00423388 -0.102493
+v 0.0729812 0.00423388 -0.102493
+v 0.0729812 -0.00423388 0.102493
+v 0.0729812 0.00423388 0.102493
+v -0.0729812 -0.00423388 0.102493
+v -0.0729812 0.00423388 0.102493
+v -0.0313823 -0.0660233 -0.102497
+v -0.0313823 0.0660233 -0.102497
+v 0.0313823 -0.0660233 -0.102497
+v 0.0313823 0.0660233 -0.102497
+v 0.0313823 -0.0660233 0.102497
+v 0.0313823 0.0660233 0.102497
+v -0.0313823 -0.0660233 0.102497
+v -0.0313823 0.0660233 0.102497
+v -0.0730723 -0.00141188 -0.102534
+v -0.0730723 0.00141188 -0.102534
+v 0.0730723 -0.00141188 -0.102534
+v 0.0730723 0.00141188 -0.102534
+v 0.0730723 -0.00141188 0.102534
+v 0.0730723 0.00141188 0.102534
+v -0.0730723 -0.00141188 0.102534
+v -0.0730723 0.00141188 0.102534
+v -0.00457636 -0.0729297 -0.102563
+v -0.00457636 0.0729297 -0.102563
+v 0.00457636 -0.0729297 -0.102563
+v 0.00457636 0.0729297 -0.102563
+v 0.00457636 -0.0729297 0.102563
+v 0.00457636 0.0729297 0.102563
+v -0.00457636 -0.0729297 0.102563
+v -0.00457636 0.0729297 0.102563
+v -0.0564784 -0.0463348 -0.102608
+v -0.0564784 0.0463348 -0.102608
+v 0.0564784 -0.0463348 -0.102608
+v 0.0564784 0.0463348 -0.102608
+v 0.0564784 -0.0463348 0.102608
+v 0.0564784 0.0463348 0.102608
+v -0.0564784 -0.0463348 0.102608
+v -0.0564784 0.0463348 0.102608
+v -0.067021 -0.0289768 -0.102688
+v -0.067021 0.0289768 -0.102688
+v 0.067021 -0.0289768 -0.102688
+v 0.067021 0.0289768 -0.102688
+v 0.067021 -0.0289768 0.102688
+v 0.067021 0.0289768 0.102688
+v -0.067021 -0.0289768 0.102688
+v -0.067021 0.0289768 0.102688
+v -0.0237506 -0.0690455 -0.10269
+v -0.0237506 0.0690455 -0.10269
+v 0.0237506 -0.0690455 -0.10269
+v 0.0237506 0.0690455 -0.10269
+v 0.0237506 -0.0690455 0.10269
+v 0.0237506 0.0690455 0.10269
+v -0.0237506 -0.0690455 0.10269
+v -0.0237506 0.0690455 0.10269
+v -0.00343716 -0.0729297 -0.102702
+v -0.00343716 0.0729297 -0.102702
+v 0.00343716 -0.0729297 -0.102702
+v 0.00343716 0.0729297 -0.102702
+v 0.00343716 -0.0729297 0.102702
+v 0.00343716 0.0729297 0.102702
+v -0.00343716 -0.0729297 0.102702
+v -0.00343716 0.0729297 0.102702
+v -0.0523965 -0.0508196 -0.102741
+v -0.0523965 0.0508196 -0.102741
+v 0.0523965 -0.0508196 -0.102741
+v 0.0523965 0.0508196 -0.102741
+v 0.0523965 -0.0508196 0.102741
+v 0.0523965 0.0508196 0.102741
+v -0.0523965 -0.0508196 0.102741
+v -0.0523965 0.0508196 0.102741
+v -0.0615837 -0.0391821 -0.102745
+v -0.0615837 0.0391821 -0.102745
+v 0.0615837 -0.0391821 -0.102745
+v 0.0615837 0.0391821 -0.102745
+v 0.0615837 -0.0391821 0.102745
+v 0.0615837 0.0391821 0.102745
+v -0.0615837 -0.0391821 0.102745
+v -0.0615837 0.0391821 0.102745
+v -0.0275232 -0.0675765 -0.102801
+v -0.0275232 0.0675765 -0.102801
+v 0.0275232 -0.0675765 -0.102801
+v 0.0275232 0.0675765 -0.102801
+v 0.0275232 -0.0675765 0.102801
+v 0.0275232 0.0675765 0.102801
+v -0.0275232 -0.0675765 0.102801
+v -0.0275232 0.0675765 0.102801
+v -0.00229377 -0.0729297 -0.102802
+v -0.00229377 0.0729297 -0.102802
+v 0.00229377 -0.0729297 -0.102802
+v 0.00229377 0.0729297 -0.102802
+v 0.00229377 -0.0729297 0.102802
+v 0.00229377 0.0729297 0.102802
+v -0.00229377 -0.0729297 0.102802
+v -0.00229377 0.0729297 0.102802
+v -0.0132745 -0.0717238 -0.102856
+v -0.0132745 0.0717238 -0.102856
+v 0.0132745 -0.0717238 -0.102856
+v 0.0132745 0.0717238 -0.102856
+v 0.0132745 -0.0717238 0.102856
+v 0.0132745 0.0717238 0.102856
+v -0.0132745 -0.0717238 0.102856
+v -0.0132745 0.0717238 0.102856
+v -0.0189725 -0.0704285 -0.102861
+v -0.0189725 0.0704285 -0.102861
+v 0.0189725 -0.0704285 -0.102861
+v 0.0189725 0.0704285 -0.102861
+v 0.0189725 -0.0704285 0.102861
+v 0.0189725 0.0704285 0.102861
+v -0.0189725 -0.0704285 0.102861
+v -0.0189725 0.0704285 0.102861
+v -0.00114758 -0.0729297 -0.102863
+v -0.00114758 0.0729297 -0.102863
+v 0.00114758 -0.0729297 -0.102863
+v 0.00114758 0.0729297 -0.102863
+v 0.00114758 -0.0729297 0.102863
+v 0.00114758 0.0729297 0.102863
+v -0.00114758 -0.0729297 0.102863
+v -0.00114758 0.0729297 0.102863
+v -6.04042e-18 -0.0729297 -0.102883
+v -6.04042e-18 0.0729297 -0.102883
+v 2.01347e-18 -0.0729297 0.102883
+v 2.01347e-18 0.0729297 0.102883
+v -0.0453593 -0.0570655 -0.102955
+v -0.0453593 0.0570655 -0.102955
+v 0.0453593 -0.0570655 -0.102955
+v 0.0453593 0.0570655 -0.102955
+v 0.0453593 -0.0570655 0.102955
+v 0.0453593 0.0570655 0.102955
+v -0.0453593 -0.0570655 0.102955
+v -0.0453593 0.0570655 0.102955
+v -0.0341532 -0.0643878 -0.102981
+v -0.0341532 0.0643878 -0.102981
+v 0.0341532 -0.0643878 -0.102981
+v 0.0341532 0.0643878 -0.102981
+v 0.0341532 -0.0643878 0.102981
+v 0.0341532 0.0643878 0.102981
+v -0.0341532 -0.0643878 0.102981
+v -0.0341532 0.0643878 0.102981
+v -0.0678984 -0.0263271 -0.103116
+v -0.0678984 0.0263271 -0.103116
+v 0.0678984 -0.0263271 -0.103116
+v 0.0678984 0.0263271 -0.103116
+v 0.0678984 -0.0263271 0.103116
+v 0.0678984 0.0263271 0.103116
+v -0.0678984 -0.0263271 0.103116
+v -0.0678984 0.0263271 0.103116
+v -0.042567 -0.0590087 -0.103257
+v -0.042567 0.0590087 -0.103257
+v 0.042567 -0.0590087 -0.103257
+v 0.042567 0.0590087 -0.103257
+v 0.042567 -0.0590087 0.103257
+v 0.042567 0.0590087 0.103257
+v -0.042567 -0.0590087 0.103257
+v -0.042567 0.0590087 0.103257
+v -0.0369501 -0.0626721 -0.10327
+v -0.0369501 0.0626721 -0.10327
+v 0.0369501 -0.0626721 -0.10327
+v 0.0369501 0.0626721 -0.10327
+v 0.0369501 -0.0626721 0.10327
+v 0.0369501 0.0626721 0.10327
+v -0.0369501 -0.0626721 0.10327
+v -0.0369501 0.0626721 0.10327
+v -0.0121198 -0.0717238 -0.103299
+v -0.0121198 0.0717238 -0.103299
+v 0.0121198 -0.0717238 -0.103299
+v 0.0121198 0.0717238 -0.103299
+v 0.0121198 -0.0717238 0.103299
+v 0.0121198 0.0717238 0.103299
+v -0.0121198 -0.0717238 0.103299
+v -0.0121198 0.0717238 0.103299
+v -0.0397593 -0.0608783 -0.103362
+v -0.0397593 0.0608783 -0.103362
+v 0.0397593 -0.0608783 -0.103362
+v 0.0397593 0.0608783 -0.103362
+v 0.0397593 -0.0608783 0.103362
+v 0.0397593 0.0608783 0.103362
+v -0.0397593 -0.0608783 0.103362
+v -0.0397593 0.0608783 0.103362
+v -0.0627663 -0.0366961 -0.103373
+v -0.0627663 0.0366961 -0.103373
+v 0.0627663 -0.0366961 -0.103373
+v 0.0627663 0.0366961 -0.103373
+v 0.0627663 -0.0366961 0.103373
+v 0.0627663 0.0366961 0.103373
+v -0.0627663 -0.0366961 0.103373
+v -0.0627663 0.0366961 0.103373
+v -0.0578594 -0.0440044 -0.103405
+v -0.0578594 0.0440044 -0.103405
+v 0.0578594 -0.0440044 -0.103405
+v 0.0578594 0.0440044 -0.103405
+v 0.0578594 -0.0440044 0.103405
+v 0.0578594 0.0440044 0.103405
+v -0.0578594 -0.0440044 0.103405
+v -0.0578594 0.0440044 0.103405
+v -0.0225953 -0.0690455 -0.103499
+v -0.0225953 0.0690455 -0.103499
+v 0.0225953 -0.0690455 -0.103499
+v 0.0225953 0.0690455 -0.103499
+v 0.0225953 -0.0690455 0.103499
+v 0.0225953 0.0690455 0.103499
+v -0.0225953 -0.0690455 0.103499
+v -0.0225953 0.0690455 0.103499
+v -0.0178141 -0.0704285 -0.103503
+v -0.0178141 0.0704285 -0.103503
+v 0.0178141 -0.0704285 -0.103503
+v 0.0178141 0.0704285 -0.103503
+v 0.0178141 -0.0704285 0.103503
+v 0.0178141 0.0704285 0.103503
+v -0.0178141 -0.0704285 0.103503
+v -0.0178141 0.0704285 0.103503
+v -0.0686912 -0.0236447 -0.103503
+v -0.0686912 0.0236447 -0.103503
+v 0.0686912 -0.0236447 -0.103503
+v 0.0686912 0.0236447 -0.103503
+v 0.0686912 -0.0236447 0.103503
+v 0.0686912 0.0236447 0.103503
+v -0.0686912 -0.0236447 0.103503
+v -0.0686912 0.0236447 0.103503
+v -0.0497031 -0.0529685 -0.103525
+v -0.0497031 0.0529685 -0.103525
+v 0.0497031 -0.0529685 -0.103525
+v 0.0497031 0.0529685 -0.103525
+v 0.0497031 -0.0529685 0.103525
+v 0.0497031 0.0529685 0.103525
+v -0.0497031 -0.0529685 0.103525
+v -0.0497031 0.0529685 0.103525
+v -0.0302291 -0.0660233 -0.103573
+v -0.0302291 0.0660233 -0.103573
+v 0.0302291 -0.0660233 -0.103573
+v 0.0302291 0.0660233 -0.103573
+v 0.0302291 -0.0660233 0.103573
+v 0.0302291 0.0660233 0.103573
+v -0.0302291 -0.0660233 0.103573
+v -0.0302291 0.0660233 0.103573
+v -0.0538848 -0.0486075 -0.103671
+v -0.0538848 0.0486075 -0.103671
+v 0.0538848 -0.0486075 -0.103671
+v 0.0538848 0.0486075 -0.103671
+v 0.0538848 -0.0486075 0.103671
+v 0.0538848 0.0486075 0.103671
+v -0.0538848 -0.0486075 0.103671
+v -0.0538848 0.0486075 0.103671
+v -0.0109503 -0.0717238 -0.103701
+v -0.0109503 0.0717238 -0.103701
+v 0.0109503 -0.0717238 -0.103701
+v 0.0109503 0.0717238 -0.103701
+v 0.0109503 -0.0717238 0.103701
+v 0.0109503 0.0717238 0.103701
+v -0.0109503 -0.0717238 0.103701
+v -0.0109503 0.0717238 0.103701
+v -0.0263617 -0.0675765 -0.103741
+v -0.0263617 0.0675765 -0.103741
+v 0.0263617 -0.0675765 -0.103741
+v 0.0263617 0.0675765 -0.103741
+v 0.0263617 -0.0675765 0.103741
+v 0.0263617 0.0675765 0.103741
+v -0.0263617 -0.0675765 0.103741
+v -0.0263617 0.0675765 0.103741
+v -0.0693984 -0.0209327 -0.103848
+v -0.0693984 0.0209327 -0.103848
+v 0.0693984 -0.0209327 -0.103848
+v 0.0693984 0.0209327 -0.103848
+v 0.0693984 -0.0209327 0.103848
+v 0.0693984 0.0209327 0.103848
+v -0.0693984 -0.0209327 0.103848
+v -0.0693984 0.0209327 0.103848
+v -0.0638707 -0.0341645 -0.103961
+v -0.0638707 0.0341645 -0.103961
+v 0.0638707 -0.0341645 -0.103961
+v 0.0638707 0.0341645 -0.103961
+v 0.0638707 -0.0341645 0.103961
+v 0.0638707 0.0341645 0.103961
+v -0.0638707 -0.0341645 0.103961
+v -0.0638707 0.0341645 0.103961
+v -0.00976744 -0.0717238 -0.104063
+v -0.00976744 0.0717238 -0.104063
+v 0.00976744 -0.0717238 -0.104063
+v 0.00976744 0.0717238 -0.104063
+v 0.00976744 -0.0717238 0.104063
+v 0.00976744 0.0717238 0.104063
+v -0.00976744 -0.0717238 0.104063
+v -0.00976744 0.0717238 0.104063
+v -0.016634 -0.0704285 -0.104105
+v -0.016634 0.0704285 -0.104105
+v 0.016634 -0.0704285 -0.104105
+v 0.016634 0.0704285 -0.104105
+v 0.016634 -0.0704285 0.104105
+v 0.016634 0.0704285 0.104105
+v -0.016634 -0.0704285 0.104105
+v -0.016634 0.0704285 0.104105
+v -0.0469603 -0.0550513 -0.104119
+v -0.0469603 0.0550513 -0.104119
+v 0.0469603 -0.0550513 -0.104119
+v 0.0469603 0.0550513 -0.104119
+v 0.0469603 -0.0550513 0.104119
+v 0.0469603 0.0550513 0.104119
+v -0.0469603 -0.0550513 0.104119
+v -0.0469603 0.0550513 0.104119
+v -0.0700192 -0.0181947 -0.104151
+v -0.0700192 0.0181947 -0.104151
+v 0.0700192 -0.0181947 -0.104151
+v 0.0700192 0.0181947 -0.104151
+v 0.0700192 -0.0181947 0.104151
+v 0.0700192 0.0181947 0.104151
+v -0.0700192 -0.0181947 0.104151
+v -0.0700192 0.0181947 0.104151
+v -0.0329814 -0.0643878 -0.104153
+v -0.0329814 0.0643878 -0.104153
+v 0.0329814 -0.0643878 -0.104153
+v 0.0329814 0.0643878 -0.104153
+v 0.0329814 -0.0643878 0.104153
+v 0.0329814 0.0643878 0.104153
+v -0.0329814 -0.0643878 0.104153
+v -0.0329814 0.0643878 0.104153
+v -0.0591683 -0.0416192 -0.104161
+v -0.0591683 0.0416192 -0.104161
+v 0.0591683 -0.0416192 -0.104161
+v 0.0591683 0.0416192 -0.104161
+v 0.0591683 -0.0416192 0.104161
+v 0.0591683 0.0416192 0.104161
+v -0.0591683 -0.0416192 0.104161
+v -0.0591683 0.0416192 0.104161
+v -0.0214124 -0.0690455 -0.104267
+v -0.0214124 0.0690455 -0.104267
+v 0.0214124 -0.0690455 -0.104267
+v 0.0214124 0.0690455 -0.104267
+v 0.0214124 -0.0690455 0.104267
+v 0.0214124 0.0690455 0.104267
+v -0.0214124 -0.0690455 0.104267
+v -0.0214124 0.0690455 0.104267
+v -0.00857271 -0.0717238 -0.104383
+v -0.00857271 0.0717238 -0.104383
+v 0.00857271 -0.0717238 -0.104383
+v 0.00857271 0.0717238 -0.104383
+v 0.00857271 -0.0717238 0.104383
+v 0.00857271 0.0717238 0.104383
+v -0.00857271 -0.0717238 0.104383
+v -0.00857271 0.0717238 0.104383
+v -0.0705527 -0.0154341 -0.104411
+v -0.0705527 0.0154341 -0.104411
+v 0.0705527 -0.0154341 -0.104411
+v 0.0705527 0.0154341 -0.104411
+v 0.0705527 -0.0154341 0.104411
+v 0.0705527 0.0154341 0.104411
+v -0.0705527 -0.0154341 0.104411
+v -0.0705527 0.0154341 0.104411
+v -0.0648955 -0.0315903 -0.104506
+v -0.0648955 0.0315903 -0.104506
+v 0.0648955 -0.0315903 -0.104506
+v 0.0648955 0.0315903 -0.104506
+v 0.0648955 -0.0315903 0.104506
+v 0.0648955 0.0315903 0.104506
+v -0.0648955 -0.0315903 0.104506
+v -0.0648955 0.0315903 0.104506
+v -0.0441815 -0.0570655 -0.104518
+v -0.0441815 0.0570655 -0.104518
+v 0.0441815 -0.0570655 -0.104518
+v 0.0441815 0.0570655 -0.104518
+v 0.0441815 -0.0570655 0.104518
+v 0.0441815 0.0570655 0.104518
+v -0.0441815 -0.0570655 0.104518
+v -0.0441815 0.0570655 0.104518
+v -0.0357665 -0.0626721 -0.104539
+v -0.0357665 0.0626721 -0.104539
+v 0.0357665 -0.0626721 -0.104539
+v 0.0357665 0.0626721 -0.104539
+v 0.0357665 -0.0626721 0.104539
+v 0.0357665 0.0626721 0.104539
+v -0.0357665 -0.0626721 0.104539
+v -0.0357665 0.0626721 0.104539
+v -0.0512219 -0.0508196 -0.10455
+v -0.0512219 0.0508196 -0.10455
+v 0.0512219 -0.0508196 -0.10455
+v 0.0512219 0.0508196 -0.10455
+v 0.0512219 -0.0508196 0.10455
+v 0.0512219 0.0508196 0.10455
+v -0.0512219 -0.0508196 0.10455
+v -0.0512219 0.0508196 0.10455
+v -0.055306 -0.0463348 -0.104559
+v -0.055306 0.0463348 -0.104559
+v 0.055306 -0.0463348 -0.104559
+v 0.055306 0.0463348 -0.104559
+v 0.055306 -0.0463348 0.104559
+v 0.055306 0.0463348 0.104559
+v -0.055306 -0.0463348 0.104559
+v -0.055306 0.0463348 0.104559
+v -0.029039 -0.0660233 -0.104607
+v -0.029039 0.0660233 -0.104607
+v 0.029039 -0.0660233 -0.104607
+v 0.029039 0.0660233 -0.104607
+v 0.029039 -0.0660233 0.104607
+v 0.029039 0.0660233 0.104607
+v -0.029039 -0.0660233 0.104607
+v -0.029039 0.0660233 0.104607
+v -0.0709983 -0.0126542 -0.104628
+v -0.0709983 0.0126542 -0.104628
+v 0.0709983 -0.0126542 -0.104628
+v 0.0709983 0.0126542 -0.104628
+v 0.0709983 -0.0126542 0.104628
+v 0.0709983 0.0126542 0.104628
+v -0.0709983 -0.0126542 0.104628
+v -0.0709983 0.0126542 0.104628
+v -0.0251681 -0.0675765 -0.104641
+v -0.0251681 0.0675765 -0.104641
+v 0.0251681 -0.0675765 -0.104641
+v 0.0251681 0.0675765 -0.104641
+v 0.0251681 -0.0675765 0.104641
+v 0.0251681 0.0675765 0.104641
+v -0.0251681 -0.0675765 0.104641
+v -0.0251681 0.0675765 0.104641
+v -0.00736753 -0.0717238 -0.104661
+v -0.00736753 0.0717238 -0.104661
+v 0.00736753 -0.0717238 -0.104661
+v 0.00736753 0.0717238 -0.104661
+v 0.00736753 -0.0717238 0.104661
+v 0.00736753 0.0717238 0.104661
+v -0.00736753 -0.0717238 0.104661
+v -0.00736753 0.0717238 0.104661
+v -0.0154336 -0.0704285 -0.104664
+v -0.0154336 0.0704285 -0.104664
+v 0.0154336 -0.0704285 -0.104664
+v 0.0154336 0.0704285 -0.104664
+v 0.0154336 -0.0704285 0.104664
+v 0.0154336 0.0704285 0.104664
+v -0.0154336 -0.0704285 0.104664
+v -0.0154336 0.0704285 0.104664
+v -0.0413804 -0.0590087 -0.104722
+v -0.0413804 0.0590087 -0.104722
+v 0.0413804 -0.0590087 -0.104722
+v 0.0413804 0.0590087 -0.104722
+v 0.0413804 -0.0590087 0.104722
+v 0.0413804 0.0590087 0.104722
+v -0.0413804 -0.0590087 0.104722
+v -0.0413804 0.0590087 0.104722
+v -0.0385708 -0.0608783 -0.104729
+v -0.0385708 0.0608783 -0.104729
+v 0.0385708 -0.0608783 -0.104729
+v 0.0385708 0.0608783 -0.104729
+v 0.0385708 -0.0608783 0.104729
+v 0.0385708 0.0608783 0.104729
+v -0.0385708 -0.0608783 0.104729
+v -0.0385708 0.0608783 0.104729
+v -0.0713555 -0.00985854 -0.104802
+v -0.0713555 0.00985854 -0.104802
+v 0.0713555 -0.00985854 -0.104802
+v 0.0713555 0.00985854 -0.104802
+v 0.0713555 -0.00985854 0.104802
+v 0.0713555 0.00985854 0.104802
+v -0.0713555 -0.00985854 0.104802
+v -0.0713555 0.00985854 0.104802
+v -0.0604034 -0.0391821 -0.104874
+v -0.0604034 0.0391821 -0.104874
+v 0.0604034 -0.0391821 -0.104874
+v 0.0604034 0.0391821 -0.104874
+v 0.0604034 -0.0391821 0.104874
+v 0.0604034 0.0391821 0.104874
+v -0.0604034 -0.0391821 0.104874
+v -0.0604034 0.0391821 0.104874
+v -0.00615337 -0.0717238 -0.104897
+v -0.00615337 0.0717238 -0.104897
+v 0.00615337 -0.0717238 -0.104897
+v 0.00615337 0.0717238 -0.104897
+v 0.00615337 -0.0717238 0.104897
+v 0.00615337 0.0717238 0.104897
+v -0.00615337 -0.0717238 0.104897
+v -0.00615337 0.0717238 0.104897
+v -0.0716237 -0.0070506 -0.104933
+v -0.0716237 0.0070506 -0.104933
+v 0.0716237 -0.0070506 -0.104933
+v 0.0716237 0.0070506 -0.104933
+v 0.0716237 -0.0070506 0.104933
+v 0.0716237 0.0070506 0.104933
+v -0.0716237 -0.0070506 0.104933
+v -0.0716237 0.0070506 0.104933
+v -0.0202035 -0.0690455 -0.104993
+v -0.0202035 0.0690455 -0.104993
+v 0.0202035 -0.0690455 -0.104993
+v 0.0202035 0.0690455 -0.104993
+v 0.0202035 -0.0690455 0.104993
+v 0.0202035 0.0690455 0.104993
+v -0.0202035 -0.0690455 0.104993
+v -0.0202035 0.0690455 0.104993
+v -0.0658394 -0.0289768 -0.105007
+v -0.0658394 0.0289768 -0.105007
+v 0.0658394 -0.0289768 -0.105007
+v 0.0658394 0.0289768 -0.105007
+v 0.0658394 -0.0289768 0.105007
+v 0.0658394 0.0289768 0.105007
+v -0.0658394 -0.0289768 0.105007
+v -0.0658394 0.0289768 0.105007
+v -0.0718028 -0.00423388 -0.105021
+v -0.0718028 0.00423388 -0.105021
+v 0.0718028 -0.00423388 -0.105021
+v 0.0718028 0.00423388 -0.105021
+v 0.0718028 -0.00423388 0.105021
+v 0.0718028 0.00423388 0.105021
+v -0.0718028 -0.00423388 0.105021
+v -0.0718028 0.00423388 0.105021
+v -0.0718923 -0.00141188 -0.105064
+v -0.0718923 0.00141188 -0.105064
+v 0.0718923 -0.00141188 -0.105064
+v 0.0718923 0.00141188 -0.105064
+v 0.0718923 -0.00141188 0.105064
+v 0.0718923 0.00141188 0.105064
+v -0.0718923 -0.00141188 0.105064
+v -0.0718923 0.00141188 0.105064
+v -0.00493172 -0.0717238 -0.105091
+v -0.00493172 0.0717238 -0.105091
+v 0.00493172 -0.0717238 -0.105091
+v 0.00493172 0.0717238 -0.105091
+v 0.00493172 -0.0717238 0.105091
+v 0.00493172 0.0717238 0.105091
+v -0.00493172 -0.0717238 0.105091
+v -0.00493172 0.0717238 0.105091
+v -0.0142145 -0.0704285 -0.105182
+v -0.0142145 0.0704285 -0.105182
+v 0.0142145 -0.0704285 -0.105182
+v 0.0142145 0.0704285 -0.105182
+v 0.0142145 -0.0704285 0.105182
+v 0.0142145 0.0704285 0.105182
+v -0.0142145 -0.0704285 0.105182
+v -0.0142145 0.0704285 0.105182
+v -0.0485029 -0.0529685 -0.105239
+v -0.0485029 0.0529685 -0.105239
+v 0.0485029 -0.0529685 -0.105239
+v 0.0485029 0.0529685 -0.105239
+v 0.0485029 -0.0529685 0.105239
+v 0.0485029 0.0529685 0.105239
+v -0.0485029 -0.0529685 0.105239
+v -0.0485029 0.0529685 0.105239
+v -0.00370405 -0.0717238 -0.105242
+v -0.00370405 0.0717238 -0.105242
+v 0.00370405 -0.0717238 -0.105242
+v 0.00370405 0.0717238 -0.105242
+v 0.00370405 -0.0717238 0.105242
+v 0.00370405 0.0717238 0.105242
+v -0.00370405 -0.0717238 0.105242
+v -0.00370405 0.0717238 0.105242
+v -0.0317694 -0.0643878 -0.105283
+v -0.0317694 0.0643878 -0.105283
+v 0.0317694 -0.0643878 -0.105283
+v 0.0317694 0.0643878 -0.105283
+v 0.0317694 -0.0643878 0.105283
+v 0.0317694 0.0643878 0.105283
+v -0.0317694 -0.0643878 0.105283
+v -0.0317694 0.0643878 0.105283
+v -0.00247188 -0.0717238 -0.10535
+v -0.00247188 0.0717238 -0.10535
+v 0.00247188 -0.0717238 -0.10535
+v 0.00247188 0.0717238 -0.10535
+v 0.00247188 -0.0717238 0.10535
+v 0.00247188 0.0717238 0.10535
+v -0.00247188 -0.0717238 0.10535
+v -0.00247188 0.0717238 0.10535
+v -0.0566583 -0.0440044 -0.105404
+v -0.0566583 0.0440044 -0.105404
+v 0.0566583 -0.0440044 -0.105404
+v 0.0566583 0.0440044 -0.105404
+v 0.0566583 -0.0440044 0.105404
+v 0.0566583 0.0440044 0.105404
+v -0.0566583 -0.0440044 0.105404
+v -0.0566583 0.0440044 0.105404
+v -0.00123669 -0.0717238 -0.105414
+v -0.00123669 0.0717238 -0.105414
+v 0.00123669 -0.0717238 -0.105414
+v 0.00123669 0.0717238 -0.105414
+v 0.00123669 -0.0717238 0.105414
+v 0.00123669 0.0717238 0.105414
+v -0.00123669 -0.0717238 0.105414
+v -0.00123669 0.0717238 0.105414
+v -6.50946e-18 -0.0717238 -0.105436
+v -6.50946e-18 0.0717238 -0.105436
+v 2.16982e-18 -0.0717238 0.105436
+v 2.16982e-18 0.0717238 0.105436
+v -0.0667013 -0.0263271 -0.105466
+v -0.0667013 0.0263271 -0.105466
+v 0.0667013 -0.0263271 -0.105466
+v 0.0667013 0.0263271 -0.105466
+v 0.0667013 -0.0263271 0.105466
+v 0.0667013 0.0263271 0.105466
+v -0.0667013 -0.0263271 0.105466
+v -0.0667013 0.0263271 0.105466
+v -0.0239438 -0.0675765 -0.105498
+v -0.0239438 0.0675765 -0.105498
+v 0.0239438 -0.0675765 -0.105498
+v 0.0239438 0.0675765 -0.105498
+v 0.0239438 -0.0675765 0.105498
+v 0.0239438 0.0675765 0.105498
+v -0.0239438 -0.0675765 0.105498
+v -0.0239438 0.0675765 0.105498
+v -0.0526769 -0.0486075 -0.105531
+v -0.0526769 0.0486075 -0.105531
+v 0.0526769 -0.0486075 -0.105531
+v 0.0526769 0.0486075 -0.105531
+v 0.0526769 -0.0486075 0.105531
+v 0.0526769 0.0486075 0.105531
+v -0.0526769 -0.0486075 0.105531
+v -0.0526769 0.0486075 0.105531
+v -0.0615633 -0.0366961 -0.105544
+v -0.0615633 0.0366961 -0.105544
+v 0.0615633 -0.0366961 -0.105544
+v 0.0615633 0.0366961 -0.105544
+v 0.0615633 -0.0366961 0.105544
+v 0.0615633 0.0366961 0.105544
+v -0.0615633 -0.0366961 0.105544
+v -0.0615633 0.0366961 0.105544
+v -0.0278135 -0.0660233 -0.1056
+v -0.0278135 0.0660233 -0.1056
+v 0.0278135 -0.0660233 -0.1056
+v 0.0278135 0.0660233 -0.1056
+v 0.0278135 -0.0660233 0.1056
+v 0.0278135 0.0660233 0.1056
+v -0.0278135 -0.0660233 0.1056
+v -0.0278135 0.0660233 0.1056
+v -0.012978 -0.0704285 -0.105657
+v -0.012978 0.0704285 -0.105657
+v 0.012978 -0.0704285 -0.105657
+v 0.012978 0.0704285 -0.105657
+v 0.012978 -0.0704285 0.105657
+v 0.012978 0.0704285 0.105657
+v -0.012978 -0.0704285 0.105657
+v -0.012978 0.0704285 0.105657
+v -0.0189699 -0.0690455 -0.105677
+v -0.0189699 0.0690455 -0.105677
+v 0.0189699 -0.0690455 -0.105677
+v 0.0189699 0.0690455 -0.105677
+v 0.0189699 -0.0690455 0.105677
+v 0.0189699 0.0690455 0.105677
+v -0.0189699 -0.0690455 0.105677
+v -0.0189699 0.0690455 0.105677
+v -0.045741 -0.0550513 -0.105737
+v -0.045741 0.0550513 -0.105737
+v 0.045741 -0.0550513 -0.105737
+v 0.045741 0.0550513 -0.105737
+v 0.045741 -0.0550513 0.105737
+v 0.045741 0.0550513 0.105737
+v -0.045741 -0.0550513 0.105737
+v -0.045741 0.0550513 0.105737
+v -0.0345393 -0.0626721 -0.105767
+v -0.0345393 0.0626721 -0.105767
+v 0.0345393 -0.0626721 -0.105767
+v 0.0345393 0.0626721 -0.105767
+v 0.0345393 -0.0626721 0.105767
+v 0.0345393 0.0626721 0.105767
+v -0.0345393 -0.0626721 0.105767
+v -0.0345393 0.0626721 0.105767
+v -0.0674801 -0.0236447 -0.10588
+v -0.0674801 0.0236447 -0.10588
+v 0.0674801 -0.0236447 -0.10588
+v 0.0674801 0.0236447 -0.10588
+v 0.0674801 -0.0236447 0.10588
+v 0.0674801 0.0236447 0.10588
+v -0.0674801 -0.0236447 0.10588
+v -0.0674801 0.0236447 0.10588
+v -0.0429499 -0.0570655 -0.106039
+v -0.0429499 0.0570655 -0.106039
+v 0.0429499 -0.0570655 -0.106039
+v 0.0429499 0.0570655 -0.106039
+v 0.0429499 -0.0570655 0.106039
+v 0.0429499 0.0570655 0.106039
+v -0.0429499 -0.0570655 0.106039
+v -0.0429499 0.0570655 0.106039
+v -0.0373353 -0.0608783 -0.106054
+v -0.0373353 0.0608783 -0.106054
+v 0.0373353 -0.0608783 -0.106054
+v 0.0373353 0.0608783 -0.106054
+v 0.0373353 -0.0608783 0.106054
+v 0.0373353 0.0608783 0.106054
+v -0.0373353 -0.0608783 0.106054
+v -0.0373353 0.0608783 0.106054
+v -0.0117257 -0.0704285 -0.106088
+v -0.0117257 0.0704285 -0.106088
+v 0.0117257 -0.0704285 -0.106088
+v 0.0117257 0.0704285 -0.106088
+v 0.0117257 -0.0704285 0.106088
+v 0.0117257 0.0704285 0.106088
+v -0.0117257 -0.0704285 0.106088
+v -0.0117257 0.0704285 0.106088
+v -0.0401434 -0.0590087 -0.106145
+v -0.0401434 0.0590087 -0.106145
+v 0.0401434 -0.0590087 -0.106145
+v 0.0401434 0.0590087 -0.106145
+v 0.0401434 -0.0590087 0.106145
+v 0.0401434 0.0590087 0.106145
+v -0.0401434 -0.0590087 0.106145
+v -0.0401434 0.0590087 0.106145
+v -0.0626465 -0.0341645 -0.106169
+v -0.0626465 0.0341645 -0.106169
+v 0.0626465 -0.0341645 -0.106169
+v 0.0626465 0.0341645 -0.106169
+v 0.0626465 -0.0341645 0.106169
+v 0.0626465 0.0341645 0.106169
+v -0.0626465 -0.0341645 0.106169
+v -0.0626465 0.0341645 0.106169
+v -0.05794 -0.0416192 -0.106205
+v -0.05794 0.0416192 -0.106205
+v 0.05794 -0.0416192 -0.106205
+v 0.05794 0.0416192 -0.106205
+v 0.05794 -0.0416192 0.106205
+v 0.05794 0.0416192 0.106205
+v -0.05794 -0.0416192 0.106205
+v -0.05794 0.0416192 0.106205
+v -0.0681749 -0.0209327 -0.106249
+v -0.0681749 0.0209327 -0.106249
+v 0.0681749 -0.0209327 -0.106249
+v 0.0681749 0.0209327 -0.106249
+v 0.0681749 -0.0209327 0.106249
+v 0.0681749 0.0209327 0.106249
+v -0.0681749 -0.0209327 0.106249
+v -0.0681749 0.0209327 0.106249
+v -0.0226903 -0.0675765 -0.106312
+v -0.0226903 0.0675765 -0.106312
+v 0.0226903 -0.0675765 -0.106312
+v 0.0226903 0.0675765 -0.106312
+v 0.0226903 -0.0675765 0.106312
+v 0.0226903 0.0675765 0.106312
+v -0.0226903 -0.0675765 0.106312
+v -0.0226903 0.0675765 0.106312
+v -0.049985 -0.0508196 -0.106316
+v -0.049985 0.0508196 -0.106316
+v 0.049985 -0.0508196 -0.106316
+v 0.049985 0.0508196 -0.106316
+v 0.049985 -0.0508196 0.106316
+v 0.049985 0.0508196 0.106316
+v -0.049985 -0.0508196 0.106316
+v -0.049985 0.0508196 0.106316
+v -0.0177132 -0.0690455 -0.106317
+v -0.0177132 0.0690455 -0.106317
+v 0.0177132 -0.0690455 -0.106317
+v 0.0177132 0.0690455 -0.106317
+v 0.0177132 -0.0690455 0.106317
+v 0.0177132 0.0690455 0.106317
+v -0.0177132 -0.0690455 0.106317
+v -0.0177132 0.0690455 0.106317
+v -0.0305186 -0.0643878 -0.106371
+v -0.0305186 0.0643878 -0.106371
+v 0.0305186 -0.0643878 -0.106371
+v 0.0305186 0.0643878 -0.106371
+v 0.0305186 -0.0643878 0.106371
+v 0.0305186 0.0643878 0.106371
+v -0.0305186 -0.0643878 0.106371
+v -0.0305186 0.0643878 0.106371
+v -0.0540662 -0.0463348 -0.106468
+v -0.0540662 0.0463348 -0.106468
+v 0.0540662 -0.0463348 -0.106468
+v 0.0540662 0.0463348 -0.106468
+v 0.0540662 -0.0463348 0.106468
+v 0.0540662 0.0463348 0.106468
+v -0.0540662 -0.0463348 0.106468
+v -0.0540662 0.0463348 0.106468
+v -0.0104591 -0.0704285 -0.106475
+v -0.0104591 0.0704285 -0.106475
+v 0.0104591 -0.0704285 -0.106475
+v 0.0104591 0.0704285 -0.106475
+v 0.0104591 -0.0704285 0.106475
+v 0.0104591 0.0704285 0.106475
+v -0.0104591 -0.0704285 0.106475
+v -0.0104591 0.0704285 0.106475
+v -0.0265542 -0.0660233 -0.106549
+v -0.0265542 0.0660233 -0.106549
+v 0.0265542 -0.0660233 -0.106549
+v 0.0265542 0.0660233 -0.106549
+v 0.0265542 -0.0660233 0.106549
+v 0.0265542 0.0660233 0.106549
+v -0.0265542 -0.0660233 0.106549
+v -0.0265542 0.0660233 0.106549
+v -0.0687847 -0.0181947 -0.106573
+v -0.0687847 0.0181947 -0.106573
+v 0.0687847 -0.0181947 -0.106573
+v 0.0687847 0.0181947 -0.106573
+v 0.0687847 -0.0181947 0.106573
+v 0.0687847 0.0181947 0.106573
+v -0.0687847 -0.0181947 0.106573
+v -0.0687847 0.0181947 0.106573
+v -0.0636517 -0.0315903 -0.106749
+v -0.0636517 0.0315903 -0.106749
+v 0.0636517 -0.0315903 -0.106749
+v 0.0636517 0.0315903 -0.106749
+v 0.0636517 -0.0315903 0.106749
+v 0.0636517 0.0315903 0.106749
+v -0.0636517 -0.0315903 0.106749
+v -0.0636517 0.0315903 0.106749
+v -0.00917973 -0.0704285 -0.106818
+v -0.00917973 0.0704285 -0.106818
+v 0.00917973 -0.0704285 -0.106818
+v 0.00917973 0.0704285 -0.106818
+v 0.00917973 -0.0704285 0.106818
+v 0.00917973 0.0704285 0.106818
+v -0.00917973 -0.0704285 0.106818
+v -0.00917973 0.0704285 0.106818
+v -0.0693088 -0.0154341 -0.106852
+v -0.0693088 0.0154341 -0.106852
+v 0.0693088 -0.0154341 -0.106852
+v 0.0693088 0.0154341 -0.106852
+v 0.0693088 -0.0154341 0.106852
+v 0.0693088 0.0154341 0.106852
+v -0.0693088 -0.0154341 0.106852
+v -0.0693088 0.0154341 0.106852
+v -0.0472435 -0.0529685 -0.106911
+v -0.0472435 0.0529685 -0.106911
+v 0.0472435 -0.0529685 -0.106911
+v 0.0472435 0.0529685 -0.106911
+v 0.0472435 -0.0529685 0.106911
+v 0.0472435 0.0529685 0.106911
+v -0.0472435 -0.0529685 0.106911
+v -0.0472435 0.0529685 0.106911
+v -0.016435 -0.0690455 -0.106914
+v -0.016435 0.0690455 -0.106914
+v 0.016435 -0.0690455 -0.106914
+v 0.016435 0.0690455 -0.106914
+v 0.016435 -0.0690455 0.106914
+v 0.016435 0.0690455 0.106914
+v -0.016435 -0.0690455 0.106914
+v -0.016435 0.0690455 0.106914
+v -0.0332701 -0.0626721 -0.10695
+v -0.0332701 0.0626721 -0.10695
+v 0.0332701 -0.0626721 -0.10695
+v 0.0332701 0.0626721 -0.10695
+v 0.0332701 -0.0626721 0.10695
+v 0.0332701 0.0626721 0.10695
+v -0.0332701 -0.0626721 0.10695
+v -0.0332701 0.0626721 0.10695
+v -0.0591496 -0.0391821 -0.106961
+v -0.0591496 0.0391821 -0.106961
+v 0.0591496 -0.0391821 -0.106961
+v 0.0591496 0.0391821 -0.106961
+v 0.0591496 -0.0391821 0.106961
+v 0.0591496 0.0391821 0.106961
+v -0.0591496 -0.0391821 0.106961
+v -0.0591496 0.0391821 0.106961
+v -0.0214092 -0.0675765 -0.107082
+v -0.0214092 0.0675765 -0.107082
+v 0.0214092 -0.0675765 -0.107082
+v 0.0214092 0.0675765 -0.107082
+v 0.0214092 -0.0675765 0.107082
+v 0.0214092 0.0675765 0.107082
+v -0.0214092 -0.0675765 0.107082
+v -0.0214092 0.0675765 0.107082
+v -0.0697466 -0.0126542 -0.107085
+v -0.0697466 0.0126542 -0.107085
+v 0.0697466 -0.0126542 -0.107085
+v 0.0697466 0.0126542 -0.107085
+v 0.0697466 -0.0126542 0.107085
+v 0.0697466 0.0126542 0.107085
+v -0.0697466 -0.0126542 0.107085
+v -0.0697466 0.0126542 0.107085
+v -0.00788921 -0.0704285 -0.107116
+v -0.00788921 0.0704285 -0.107116
+v 0.00788921 -0.0704285 -0.107116
+v 0.00788921 0.0704285 -0.107116
+v 0.00788921 -0.0704285 0.107116
+v 0.00788921 0.0704285 0.107116
+v -0.00788921 -0.0704285 0.107116
+v -0.00788921 0.0704285 0.107116
+v -0.0700974 -0.00985854 -0.107271
+v -0.0700974 0.00985854 -0.107271
+v 0.0700974 -0.00985854 -0.107271
+v 0.0700974 0.00985854 -0.107271
+v 0.0700974 -0.00985854 0.107271
+v 0.0700974 0.00985854 0.107271
+v -0.0700974 -0.00985854 0.107271
+v -0.0700974 0.00985854 0.107271
+v -0.0645775 -0.0289768 -0.107284
+v -0.0645775 0.0289768 -0.107284
+v 0.0645775 -0.0289768 -0.107284
+v 0.0645775 0.0289768 -0.107284
+v 0.0645775 -0.0289768 0.107284
+v 0.0645775 0.0289768 0.107284
+v -0.0645775 -0.0289768 0.107284
+v -0.0645775 0.0289768 0.107284
+v -0.0444659 -0.0550513 -0.107311
+v -0.0444659 0.0550513 -0.107311
+v 0.0444659 -0.0550513 -0.107311
+v 0.0444659 0.0550513 -0.107311
+v 0.0444659 -0.0550513 0.107311
+v 0.0444659 0.0550513 0.107311
+v -0.0444659 -0.0550513 0.107311
+v -0.0444659 0.0550513 0.107311
+v -0.0360543 -0.0608783 -0.107335
+v -0.0360543 0.0608783 -0.107335
+v 0.0360543 -0.0608783 -0.107335
+v 0.0360543 0.0608783 -0.107335
+v 0.0360543 -0.0608783 0.107335
+v 0.0360543 0.0608783 0.107335
+v -0.0360543 -0.0608783 0.107335
+v -0.0360543 0.0608783 0.107335
+v -0.0514048 -0.0486075 -0.107348
+v -0.0514048 0.0486075 -0.107348
+v 0.0514048 -0.0486075 -0.107348
+v 0.0514048 0.0486075 -0.107348
+v 0.0514048 -0.0486075 0.107348
+v 0.0514048 0.0486075 0.107348
+v -0.0514048 -0.0486075 0.107348
+v -0.0514048 0.0486075 0.107348
+v -0.0553882 -0.0440044 -0.10736
+v -0.0553882 0.0440044 -0.10736
+v 0.0553882 -0.0440044 -0.10736
+v 0.0553882 0.0440044 -0.10736
+v 0.0553882 -0.0440044 0.10736
+v 0.0553882 0.0440044 0.10736
+v -0.0553882 -0.0440044 0.10736
+v -0.0553882 0.0440044 0.10736
+v -0.00658908 -0.0704285 -0.107369
+v -0.00658908 0.0704285 -0.107369
+v 0.00658908 -0.0704285 -0.107369
+v 0.00658908 0.0704285 -0.107369
+v 0.00658908 -0.0704285 0.107369
+v 0.00658908 0.0704285 0.107369
+v -0.00658908 -0.0704285 0.107369
+v -0.00658908 0.0704285 0.107369
+v -0.0703609 -0.0070506 -0.107412
+v -0.0703609 0.0070506 -0.107412
+v 0.0703609 -0.0070506 -0.107412
+v 0.0703609 0.0070506 -0.107412
+v 0.0703609 -0.0070506 0.107412
+v 0.0703609 0.0070506 0.107412
+v -0.0703609 -0.0070506 0.107412
+v -0.0703609 0.0070506 0.107412
+v -0.0292307 -0.0643878 -0.107414
+v -0.0292307 0.0643878 -0.107414
+v 0.0292307 -0.0643878 -0.107414
+v 0.0292307 0.0643878 -0.107414
+v 0.0292307 -0.0643878 0.107414
+v 0.0292307 0.0643878 0.107414
+v -0.0292307 -0.0643878 0.107414
+v -0.0292307 0.0643878 0.107414
+v -0.0252625 -0.0660233 -0.107453
+v -0.0252625 0.0660233 -0.107453
+v 0.0252625 -0.0660233 -0.107453
+v 0.0252625 0.0660233 -0.107453
+v 0.0252625 -0.0660233 0.107453
+v 0.0252625 0.0660233 0.107453
+v -0.0252625 -0.0660233 0.107453
+v -0.0252625 0.0660233 0.107453
+v -0.0151367 -0.0690455 -0.107465
+v -0.0151367 0.0690455 -0.107465
+v 0.0151367 -0.0690455 -0.107465
+v 0.0151367 0.0690455 -0.107465
+v 0.0151367 -0.0690455 0.107465
+v 0.0151367 0.0690455 0.107465
+v -0.0151367 -0.0690455 0.107465
+v -0.0151367 0.0690455 0.107465
+v -0.0705368 -0.00423388 -0.107505
+v -0.0705368 0.00423388 -0.107505
+v 0.0705368 -0.00423388 -0.107505
+v 0.0705368 0.00423388 -0.107505
+v 0.0705368 -0.00423388 0.107505
+v 0.0705368 0.00423388 0.107505
+v -0.0705368 -0.00423388 0.107505
+v -0.0705368 0.00423388 0.107505
+v -0.041666 -0.0570655 -0.107516
+v -0.041666 0.0570655 -0.107516
+v 0.041666 -0.0570655 -0.107516
+v 0.041666 0.0570655 -0.107516
+v 0.041666 -0.0570655 0.107516
+v 0.041666 0.0570655 0.107516
+v -0.041666 -0.0570655 0.107516
+v -0.041666 0.0570655 0.107516
+v -0.0388575 -0.0590087 -0.107524
+v -0.0388575 0.0590087 -0.107524
+v 0.0388575 -0.0590087 -0.107524
+v 0.0388575 0.0590087 -0.107524
+v 0.0388575 -0.0590087 0.107524
+v 0.0388575 0.0590087 0.107524
+v -0.0388575 -0.0590087 0.107524
+v -0.0388575 0.0590087 0.107524
+v -0.0706248 -0.00141188 -0.107552
+v -0.0706248 0.00141188 -0.107552
+v 0.0706248 -0.00141188 -0.107552
+v 0.0706248 0.00141188 -0.107552
+v 0.0706248 -0.00141188 0.107552
+v 0.0706248 0.00141188 0.107552
+v -0.0706248 -0.00141188 0.107552
+v -0.0706248 0.00141188 0.107552
+v -0.00528092 -0.0704285 -0.107576
+v -0.00528092 0.0704285 -0.107576
+v 0.00528092 -0.0704285 -0.107576
+v 0.00528092 0.0704285 -0.107576
+v 0.00528092 -0.0704285 0.107576
+v 0.00528092 0.0704285 0.107576
+v -0.00528092 -0.0704285 0.107576
+v -0.00528092 0.0704285 0.107576
+v -0.0602854 -0.0366961 -0.10767
+v -0.0602854 0.0366961 -0.10767
+v 0.0602854 -0.0366961 -0.10767
+v 0.0602854 0.0366961 -0.10767
+v 0.0602854 -0.0366961 0.10767
+v 0.0602854 0.0366961 0.10767
+v -0.0602854 -0.0366961 0.10767
+v -0.0602854 0.0366961 0.10767
+v -0.00396633 -0.0704285 -0.107737
+v -0.00396633 0.0704285 -0.107737
+v 0.00396633 -0.0704285 -0.107737
+v 0.00396633 0.0704285 -0.107737
+v 0.00396633 -0.0704285 0.107737
+v 0.00396633 0.0704285 0.107737
+v -0.00396633 -0.0704285 0.107737
+v -0.00396633 0.0704285 0.107737
+v -0.065423 -0.0263271 -0.107772
+v -0.065423 0.0263271 -0.107772
+v 0.065423 -0.0263271 -0.107772
+v 0.065423 0.0263271 -0.107772
+v 0.065423 -0.0263271 0.107772
+v 0.065423 0.0263271 0.107772
+v -0.065423 -0.0263271 0.107772
+v -0.065423 0.0263271 0.107772
+v -0.020102 -0.0675765 -0.107806
+v -0.020102 0.0675765 -0.107806
+v 0.020102 -0.0675765 -0.107806
+v 0.020102 0.0675765 -0.107806
+v 0.020102 -0.0675765 0.107806
+v 0.020102 0.0675765 0.107806
+v -0.020102 -0.0675765 0.107806
+v -0.020102 0.0675765 0.107806
+v -0.00264691 -0.0704285 -0.107853
+v -0.00264691 0.0704285 -0.107853
+v 0.00264691 -0.0704285 -0.107853
+v 0.00264691 0.0704285 -0.107853
+v 0.00264691 -0.0704285 0.107853
+v 0.00264691 0.0704285 0.107853
+v -0.00264691 -0.0704285 0.107853
+v -0.00264691 0.0704285 0.107853
+v -0.00132426 -0.0704285 -0.107922
+v -0.00132426 0.0704285 -0.107922
+v 0.00132426 -0.0704285 -0.107922
+v 0.00132426 0.0704285 -0.107922
+v 0.00132426 -0.0704285 0.107922
+v 0.00132426 0.0704285 0.107922
+v -0.00132426 -0.0704285 0.107922
+v -0.00132426 0.0704285 0.107922
+v -6.97039e-18 -0.0704285 -0.107945
+v -6.97039e-18 0.0704285 -0.107945
+v 2.32346e-18 -0.0704285 0.107945
+v 2.32346e-18 0.0704285 0.107945
+v -0.01382 -0.0690455 -0.10797
+v -0.01382 0.0690455 -0.10797
+v 0.01382 -0.0690455 -0.10797
+v 0.01382 0.0690455 -0.10797
+v 0.01382 -0.0690455 0.10797
+v 0.01382 0.0690455 0.10797
+v -0.01382 -0.0690455 0.10797
+v -0.01382 0.0690455 0.10797
+v -0.0486871 -0.0508196 -0.108039
+v -0.0486871 0.0508196 -0.108039
+v 0.0486871 -0.0508196 -0.108039
+v 0.0486871 0.0508196 -0.108039
+v 0.0486871 -0.0508196 0.108039
+v 0.0486871 0.0508196 0.108039
+v -0.0486871 -0.0508196 0.108039
+v -0.0486871 0.0508196 0.108039
+v -0.0319603 -0.0626721 -0.108089
+v -0.0319603 0.0626721 -0.108089
+v 0.0319603 -0.0626721 -0.108089
+v 0.0319603 0.0626721 -0.108089
+v 0.0319603 -0.0626721 0.108089
+v 0.0319603 0.0626721 0.108089
+v -0.0319603 -0.0626721 0.108089
+v -0.0319603 0.0626721 0.108089
+v -0.0566412 -0.0416192 -0.108205
+v -0.0566412 0.0416192 -0.108205
+v 0.0566412 -0.0416192 -0.108205
+v 0.0566412 0.0416192 -0.108205
+v 0.0566412 -0.0416192 0.108205
+v 0.0566412 0.0416192 0.108205
+v -0.0566412 -0.0416192 0.108205
+v -0.0566412 0.0416192 0.108205
+v -0.0661868 -0.0236447 -0.108213
+v -0.0661868 0.0236447 -0.108213
+v 0.0661868 -0.0236447 -0.108213
+v 0.0661868 0.0236447 -0.108213
+v 0.0661868 -0.0236447 0.108213
+v 0.0661868 0.0236447 0.108213
+v -0.0661868 -0.0236447 0.108213
+v -0.0661868 0.0236447 0.108213
+v -0.02394 -0.0660233 -0.108312
+v -0.02394 0.0660233 -0.108312
+v 0.02394 -0.0660233 -0.108312
+v 0.02394 0.0660233 -0.108312
+v 0.02394 -0.0660233 0.108312
+v 0.02394 0.0660233 0.108312
+v -0.02394 -0.0660233 0.108312
+v -0.02394 0.0660233 0.108312
+v -0.0613461 -0.0341645 -0.108333
+v -0.0613461 0.0341645 -0.108333
+v 0.0613461 -0.0341645 -0.108333
+v 0.0613461 0.0341645 -0.108333
+v 0.0613461 -0.0341645 0.108333
+v 0.0613461 0.0341645 0.108333
+v -0.0613461 -0.0341645 0.108333
+v -0.0613461 0.0341645 0.108333
+v -0.0527606 -0.0463348 -0.108333
+v -0.0527606 0.0463348 -0.108333
+v 0.0527606 -0.0463348 -0.108333
+v 0.0527606 0.0463348 -0.108333
+v 0.0527606 -0.0463348 0.108333
+v 0.0527606 0.0463348 0.108333
+v -0.0527606 -0.0463348 0.108333
+v -0.0527606 0.0463348 0.108333
+v -0.0279072 -0.0643878 -0.108411
+v -0.0279072 0.0643878 -0.108411
+v 0.0279072 -0.0643878 -0.108411
+v 0.0279072 0.0643878 -0.108411
+v 0.0279072 -0.0643878 0.108411
+v 0.0279072 0.0643878 0.108411
+v -0.0279072 -0.0643878 0.108411
+v -0.0279072 0.0643878 0.108411
+v -0.0124864 -0.0690455 -0.108429
+v -0.0124864 0.0690455 -0.108429
+v 0.0124864 -0.0690455 -0.108429
+v 0.0124864 0.0690455 -0.108429
+v 0.0124864 -0.0690455 0.108429
+v 0.0124864 0.0690455 0.108429
+v -0.0124864 -0.0690455 0.108429
+v -0.0124864 0.0690455 0.108429
+v -0.0187704 -0.0675765 -0.108485
+v -0.0187704 0.0675765 -0.108485
+v 0.0187704 -0.0675765 -0.108485
+v 0.0187704 0.0675765 -0.108485
+v 0.0187704 -0.0675765 0.108485
+v 0.0187704 0.0675765 0.108485
+v -0.0187704 -0.0675765 0.108485
+v -0.0187704 0.0675765 0.108485
+v -0.0459265 -0.0529685 -0.108537
+v -0.0459265 0.0529685 -0.108537
+v 0.0459265 -0.0529685 -0.108537
+v 0.0459265 0.0529685 -0.108537
+v 0.0459265 -0.0529685 0.108537
+v 0.0459265 0.0529685 0.108537
+v -0.0459265 -0.0529685 0.108537
+v -0.0459265 0.0529685 0.108537
+v -0.0347293 -0.0608783 -0.108571
+v -0.0347293 0.0608783 -0.108571
+v 0.0347293 -0.0608783 -0.108571
+v 0.0347293 0.0608783 -0.108571
+v 0.0347293 -0.0608783 0.108571
+v 0.0347293 0.0608783 0.108571
+v -0.0347293 -0.0608783 0.108571
+v -0.0347293 0.0608783 0.108571
+v -0.0668683 -0.0209327 -0.108606
+v -0.0668683 0.0209327 -0.108606
+v 0.0668683 -0.0209327 -0.108606
+v 0.0668683 0.0209327 -0.108606
+v 0.0668683 -0.0209327 0.108606
+v 0.0668683 0.0209327 0.108606
+v -0.0668683 -0.0209327 0.108606
+v -0.0668683 0.0209327 0.108606
+v -0.0431367 -0.0550513 -0.10884
+v -0.0431367 0.0550513 -0.10884
+v 0.0431367 -0.0550513 -0.10884
+v 0.0431367 0.0550513 -0.10884
+v 0.0431367 -0.0550513 0.10884
+v 0.0431367 0.0550513 0.10884
+v -0.0431367 -0.0550513 0.10884
+v -0.0431367 0.0550513 0.10884
+v -0.0111377 -0.0690455 -0.108842
+v -0.0111377 0.0690455 -0.108842
+v 0.0111377 -0.0690455 -0.108842
+v 0.0111377 0.0690455 -0.108842
+v 0.0111377 -0.0690455 0.108842
+v 0.0111377 0.0690455 0.108842
+v -0.0111377 -0.0690455 0.108842
+v -0.0111377 0.0690455 0.108842
+v -0.0375243 -0.0590087 -0.108858
+v -0.0375243 0.0590087 -0.108858
+v 0.0375243 -0.0590087 -0.108858
+v 0.0375243 0.0590087 -0.108858
+v 0.0375243 -0.0590087 0.108858
+v 0.0375243 0.0590087 0.108858
+v -0.0375243 -0.0590087 0.108858
+v -0.0375243 0.0590087 0.108858
+v -0.0623304 -0.0315903 -0.108948
+v -0.0623304 0.0315903 -0.108948
+v 0.0623304 -0.0315903 -0.108948
+v 0.0623304 0.0315903 -0.108948
+v 0.0623304 -0.0315903 0.108948
+v 0.0623304 0.0315903 0.108948
+v -0.0623304 -0.0315903 0.108948
+v -0.0623304 0.0315903 0.108948
+v -0.0403313 -0.0570655 -0.108948
+v -0.0403313 0.0570655 -0.108948
+v 0.0403313 -0.0570655 -0.108948
+v 0.0403313 0.0570655 -0.108948
+v 0.0403313 -0.0570655 0.108948
+v 0.0403313 0.0570655 0.108948
+v -0.0403313 -0.0570655 0.108948
+v -0.0403313 0.0570655 0.108948
+v -0.0674664 -0.0181947 -0.108952
+v -0.0674664 0.0181947 -0.108952
+v 0.0674664 -0.0181947 -0.108952
+v 0.0674664 0.0181947 -0.108952
+v 0.0674664 -0.0181947 0.108952
+v 0.0674664 0.0181947 0.108952
+v -0.0674664 -0.0181947 0.108952
+v -0.0674664 0.0181947 0.108952
+v -0.0578236 -0.0391821 -0.109003
+v -0.0578236 0.0391821 -0.109003
+v 0.0578236 -0.0391821 -0.109003
+v 0.0578236 0.0391821 -0.109003
+v 0.0578236 -0.0391821 0.109003
+v 0.0578236 0.0391821 0.109003
+v -0.0578236 -0.0391821 0.109003
+v -0.0578236 0.0391821 0.109003
+v -0.0174158 -0.0675765 -0.109117
+v -0.0174158 0.0675765 -0.109117
+v 0.0174158 -0.0675765 -0.109117
+v 0.0174158 0.0675765 -0.109117
+v 0.0174158 -0.0675765 0.109117
+v 0.0174158 0.0675765 0.109117
+v -0.0174158 -0.0675765 0.109117
+v -0.0174158 0.0675765 0.109117
+v -0.0500701 -0.0486075 -0.109119
+v -0.0500701 0.0486075 -0.109119
+v 0.0500701 -0.0486075 -0.109119
+v 0.0500701 0.0486075 -0.109119
+v 0.0500701 -0.0486075 0.109119
+v 0.0500701 0.0486075 0.109119
+v -0.0500701 -0.0486075 0.109119
+v -0.0500701 0.0486075 0.109119
+v -0.0225883 -0.0660233 -0.109124
+v -0.0225883 0.0660233 -0.109124
+v 0.0225883 -0.0660233 -0.109124
+v 0.0225883 0.0660233 -0.109124
+v 0.0225883 -0.0660233 0.109124
+v 0.0225883 0.0660233 0.109124
+v -0.0225883 -0.0660233 0.109124
+v -0.0225883 0.0660233 0.109124
+v -0.0306115 -0.0626721 -0.109181
+v -0.0306115 0.0626721 -0.109181
+v 0.0306115 -0.0626721 -0.109181
+v 0.0306115 0.0626721 -0.109181
+v 0.0306115 -0.0626721 0.109181
+v 0.0306115 0.0626721 0.109181
+v -0.0306115 -0.0626721 0.109181
+v -0.0306115 0.0626721 0.109181
+v -0.00977531 -0.0690455 -0.109207
+v -0.00977531 0.0690455 -0.109207
+v 0.00977531 -0.0690455 -0.109207
+v 0.00977531 0.0690455 -0.109207
+v 0.00977531 -0.0690455 0.109207
+v 0.00977531 0.0690455 0.109207
+v -0.00977531 -0.0690455 0.109207
+v -0.00977531 0.0690455 0.109207
+v -0.0679805 -0.0154341 -0.109249
+v -0.0679805 0.0154341 -0.109249
+v 0.0679805 -0.0154341 -0.109249
+v 0.0679805 0.0154341 -0.109249
+v 0.0679805 -0.0154341 0.109249
+v 0.0679805 0.0154341 0.109249
+v -0.0679805 -0.0154341 0.109249
+v -0.0679805 0.0154341 0.109249
+v -0.0540506 -0.0440044 -0.10927
+v -0.0540506 0.0440044 -0.10927
+v 0.0540506 -0.0440044 -0.10927
+v 0.0540506 0.0440044 -0.10927
+v 0.0540506 -0.0440044 0.10927
+v 0.0540506 0.0440044 0.10927
+v -0.0540506 -0.0440044 0.10927
+v -0.0540506 0.0440044 0.10927
+v -0.0265497 -0.0643878 -0.109362
+v -0.0265497 0.0643878 -0.109362
+v 0.0265497 -0.0643878 -0.109362
+v 0.0265497 0.0643878 -0.109362
+v 0.0265497 -0.0643878 0.109362
+v 0.0265497 0.0643878 0.109362
+v -0.0265497 -0.0643878 0.109362
+v -0.0265497 0.0643878 0.109362
+v -0.0684098 -0.0126542 -0.109496
+v -0.0684098 0.0126542 -0.109496
+v 0.0684098 -0.0126542 -0.109496
+v 0.0684098 0.0126542 -0.109496
+v 0.0684098 -0.0126542 0.109496
+v 0.0684098 0.0126542 0.109496
+v -0.0684098 -0.0126542 0.109496
+v -0.0684098 0.0126542 0.109496
+v -0.063237 -0.0289768 -0.109515
+v -0.063237 0.0289768 -0.109515
+v 0.063237 -0.0289768 -0.109515
+v 0.063237 0.0289768 -0.109515
+v 0.063237 -0.0289768 0.109515
+v 0.063237 0.0289768 0.109515
+v -0.063237 -0.0289768 0.109515
+v -0.063237 0.0289768 0.109515
+v -0.00840107 -0.0690455 -0.109524
+v -0.00840107 0.0690455 -0.109524
+v 0.00840107 -0.0690455 -0.109524
+v 0.00840107 0.0690455 -0.109524
+v 0.00840107 -0.0690455 0.109524
+v 0.00840107 0.0690455 0.109524
+v -0.00840107 -0.0690455 0.109524
+v -0.00840107 0.0690455 0.109524
+v -0.068754 -0.00985854 -0.109695
+v -0.068754 0.00985854 -0.109695
+v 0.068754 -0.00985854 -0.109695
+v 0.068754 0.00985854 -0.109695
+v 0.068754 -0.00985854 0.109695
+v 0.068754 0.00985854 0.109695
+v -0.068754 -0.00985854 0.109695
+v -0.068754 0.00985854 0.109695
+v -0.0160401 -0.0675765 -0.109701
+v -0.0160401 0.0675765 -0.109701
+v 0.0160401 -0.0675765 -0.109701
+v 0.0160401 0.0675765 -0.109701
+v 0.0160401 -0.0675765 0.109701
+v 0.0160401 0.0675765 0.109701
+v -0.0160401 -0.0675765 0.109701
+v -0.0160401 0.0675765 0.109701
+v -0.0473299 -0.0508196 -0.109715
+v -0.0473299 0.0508196 -0.109715
+v 0.0473299 -0.0508196 -0.109715
+v 0.0473299 0.0508196 -0.109715
+v 0.0473299 -0.0508196 0.109715
+v 0.0473299 0.0508196 0.109715
+v -0.0473299 -0.0508196 0.109715
+v -0.0473299 0.0508196 0.109715
+v -0.058934 -0.0366961 -0.109751
+v -0.058934 0.0366961 -0.109751
+v 0.058934 -0.0366961 -0.109751
+v 0.058934 0.0366961 -0.109751
+v 0.058934 -0.0366961 0.109751
+v 0.058934 0.0366961 0.109751
+v -0.058934 -0.0366961 0.109751
+v -0.058934 0.0366961 0.109751
+v -0.0333621 -0.0608783 -0.109759
+v -0.0333621 0.0608783 -0.109759
+v 0.0333621 -0.0608783 -0.109759
+v 0.0333621 0.0608783 -0.109759
+v 0.0333621 -0.0608783 0.109759
+v 0.0333621 0.0608783 0.109759
+v -0.0333621 -0.0608783 0.109759
+v -0.0333621 0.0608783 0.109759
+v -0.00701658 -0.0690455 -0.109793
+v -0.00701658 0.0690455 -0.109793
+v 0.00701658 -0.0690455 -0.109793
+v 0.00701658 0.0690455 -0.109793
+v 0.00701658 -0.0690455 0.109793
+v 0.00701658 0.0690455 0.109793
+v -0.00701658 -0.0690455 0.109793
+v -0.00701658 0.0690455 0.109793
+v -0.0690124 -0.0070506 -0.109844
+v -0.0690124 0.0070506 -0.109844
+v 0.0690124 -0.0070506 -0.109844
+v 0.0690124 0.0070506 -0.109844
+v 0.0690124 -0.0070506 0.109844
+v 0.0690124 0.0070506 0.109844
+v -0.0690124 -0.0070506 0.109844
+v -0.0690124 0.0070506 0.109844
+v -0.0212092 -0.0660233 -0.109889
+v -0.0212092 0.0660233 -0.109889
+v 0.0212092 -0.0660233 -0.109889
+v 0.0212092 0.0660233 -0.109889
+v 0.0212092 -0.0660233 0.109889
+v 0.0212092 0.0660233 0.109889
+v -0.0212092 -0.0660233 0.109889
+v -0.0212092 0.0660233 0.109889
+v -0.0691849 -0.00423388 -0.109944
+v -0.0691849 0.00423388 -0.109944
+v 0.0691849 -0.00423388 -0.109944
+v 0.0691849 0.00423388 -0.109944
+v 0.0691849 -0.00423388 0.109944
+v 0.0691849 0.00423388 0.109944
+v -0.0691849 -0.00423388 0.109944
+v -0.0691849 0.00423388 0.109944
+v -0.0692712 -0.00141188 -0.109994
+v -0.0692712 0.00141188 -0.109994
+v 0.0692712 -0.00141188 -0.109994
+v 0.0692712 0.00141188 -0.109994
+v 0.0692712 -0.00141188 0.109994
+v 0.0692712 0.00141188 0.109994
+v -0.0692712 -0.00141188 0.109994
+v -0.0692712 0.00141188 0.109994
+v -0.00562355 -0.0690455 -0.110014
+v -0.00562355 0.0690455 -0.110014
+v 0.00562355 -0.0690455 -0.110014
+v 0.00562355 0.0690455 -0.110014
+v 0.00562355 -0.0690455 0.110014
+v 0.00562355 0.0690455 0.110014
+v -0.00562355 -0.0690455 0.110014
+v -0.00562355 0.0690455 0.110014
+v -0.0640649 -0.0263271 -0.110032
+v -0.0640649 0.0263271 -0.110032
+v 0.0640649 -0.0263271 -0.110032
+v 0.0640649 0.0263271 -0.110032
+v 0.0640649 -0.0263271 0.110032
+v 0.0640649 0.0263271 0.110032
+v -0.0640649 -0.0263271 0.110032
+v -0.0640649 0.0263271 0.110032
+v -0.0445536 -0.0529685 -0.110116
+v -0.0445536 0.0529685 -0.110116
+v 0.0445536 -0.0529685 -0.110116
+v 0.0445536 0.0529685 -0.110116
+v 0.0445536 -0.0529685 0.110116
+v 0.0445536 0.0529685 0.110116
+v -0.0445536 -0.0529685 0.110116
+v -0.0445536 0.0529685 0.110116
+v -0.0361453 -0.0590087 -0.110143
+v -0.0361453 0.0590087 -0.110143
+v 0.0361453 -0.0590087 -0.110143
+v 0.0361453 0.0590087 -0.110143
+v 0.0361453 -0.0590087 0.110143
+v 0.0361453 0.0590087 0.110143
+v -0.0361453 -0.0590087 0.110143
+v -0.0361453 0.0590087 0.110143
+v -0.0513907 -0.0463348 -0.110151
+v -0.0513907 0.0463348 -0.110151
+v 0.0513907 -0.0463348 -0.110151
+v 0.0513907 0.0463348 -0.110151
+v 0.0513907 -0.0463348 0.110151
+v 0.0513907 0.0463348 0.110151
+v -0.0513907 -0.0463348 0.110151
+v -0.0513907 0.0463348 0.110151
+v -0.0552734 -0.0416192 -0.110158
+v -0.0552734 0.0416192 -0.110158
+v 0.0552734 -0.0416192 -0.110158
+v 0.0552734 0.0416192 -0.110158
+v 0.0552734 -0.0416192 0.110158
+v 0.0552734 0.0416192 0.110158
+v -0.0552734 -0.0416192 0.110158
+v -0.0552734 0.0416192 0.110158
+v -0.00422367 -0.0690455 -0.110186
+v -0.00422367 0.0690455 -0.110186
+v 0.00422367 -0.0690455 -0.110186
+v 0.00422367 0.0690455 -0.110186
+v 0.00422367 -0.0690455 0.110186
+v 0.00422367 0.0690455 0.110186
+v -0.00422367 -0.0690455 0.110186
+v -0.00422367 0.0690455 0.110186
+v -0.0292255 -0.0626721 -0.110225
+v -0.0292255 0.0626721 -0.110225
+v 0.0292255 -0.0626721 -0.110225
+v 0.0292255 0.0626721 -0.110225
+v 0.0292255 -0.0626721 0.110225
+v 0.0292255 0.0626721 0.110225
+v -0.0292255 -0.0626721 0.110225
+v -0.0292255 0.0626721 0.110225
+v -0.0146448 -0.0675765 -0.110236
+v -0.0146448 0.0675765 -0.110236
+v 0.0146448 -0.0675765 -0.110236
+v 0.0146448 0.0675765 -0.110236
+v 0.0146448 -0.0675765 0.110236
+v 0.0146448 0.0675765 0.110236
+v -0.0146448 -0.0675765 0.110236
+v -0.0146448 0.0675765 0.110236
+v -0.0251598 -0.0643878 -0.110264
+v -0.0251598 0.0643878 -0.110264
+v 0.0251598 -0.0643878 -0.110264
+v 0.0251598 0.0643878 -0.110264
+v 0.0251598 -0.0643878 0.110264
+v 0.0251598 0.0643878 0.110264
+v -0.0251598 -0.0643878 0.110264
+v -0.0251598 0.0643878 0.110264
+v -0.00281864 -0.0690455 -0.110308
+v -0.00281864 0.0690455 -0.110308
+v 0.00281864 -0.0690455 -0.110308
+v 0.00281864 0.0690455 -0.110308
+v 0.00281864 -0.0690455 0.110308
+v 0.00281864 0.0690455 0.110308
+v -0.00281864 -0.0690455 0.110308
+v -0.00281864 0.0690455 0.110308
+v -0.0417549 -0.0550513 -0.110322
+v -0.0417549 0.0550513 -0.110322
+v 0.0417549 -0.0550513 -0.110322
+v 0.0417549 0.0550513 -0.110322
+v 0.0417549 -0.0550513 0.110322
+v 0.0417549 0.0550513 0.110322
+v -0.0417549 -0.0550513 0.110322
+v -0.0417549 0.0550513 0.110322
+v -0.0389475 -0.0570655 -0.110331
+v -0.0389475 0.0570655 -0.110331
+v 0.0389475 -0.0570655 -0.110331
+v 0.0389475 0.0570655 -0.110331
+v 0.0389475 -0.0570655 0.110331
+v 0.0389475 0.0570655 0.110331
+v -0.0389475 -0.0570655 0.110331
+v -0.0389475 0.0570655 0.110331
+v -0.00141018 -0.0690455 -0.110382
+v -0.00141018 0.0690455 -0.110382
+v 0.00141018 -0.0690455 -0.110382
+v 0.00141018 0.0690455 -0.110382
+v 0.00141018 -0.0690455 0.110382
+v 0.00141018 0.0690455 0.110382
+v -0.00141018 -0.0690455 0.110382
+v -0.00141018 0.0690455 0.110382
+v -7.42263e-18 -0.0690455 -0.110407
+v -7.42263e-18 0.0690455 -0.110407
+v 2.47421e-18 -0.0690455 0.110407
+v 2.47421e-18 0.0690455 0.110407
+v -0.0599709 -0.0341645 -0.110451
+v -0.0599709 0.0341645 -0.110451
+v 0.0599709 -0.0341645 -0.110451
+v 0.0599709 0.0341645 -0.110451
+v 0.0599709 -0.0341645 0.110451
+v 0.0599709 0.0341645 0.110451
+v -0.0599709 -0.0341645 0.110451
+v -0.0599709 0.0341645 0.110451
+v -0.0648129 -0.0236447 -0.1105
+v -0.0648129 0.0236447 -0.1105
+v 0.0648129 -0.0236447 -0.1105
+v 0.0648129 0.0236447 -0.1105
+v 0.0648129 -0.0236447 0.1105
+v 0.0648129 0.0236447 0.1105
+v -0.0648129 -0.0236447 0.1105
+v -0.0648129 0.0236447 0.1105
+v -0.0198041 -0.0660233 -0.110605
+v -0.0198041 0.0660233 -0.110605
+v 0.0198041 -0.0660233 -0.110605
+v 0.0198041 0.0660233 -0.110605
+v 0.0198041 -0.0660233 0.110605
+v 0.0198041 0.0660233 0.110605
+v -0.0198041 -0.0660233 0.110605
+v -0.0198041 0.0660233 0.110605
+v -0.0132316 -0.0675765 -0.110723
+v -0.0132316 0.0675765 -0.110723
+v 0.0132316 -0.0675765 -0.110723
+v 0.0132316 0.0675765 -0.110723
+v 0.0132316 -0.0675765 0.110723
+v 0.0132316 0.0675765 0.110723
+v -0.0132316 -0.0675765 0.110723
+v -0.0132316 0.0675765 0.110723
+v -0.0486743 -0.0486075 -0.110843
+v -0.0486743 0.0486075 -0.110843
+v 0.0486743 -0.0486075 -0.110843
+v 0.0486743 0.0486075 -0.110843
+v 0.0486743 -0.0486075 0.110843
+v 0.0486743 0.0486075 0.110843
+v -0.0486743 -0.0486075 0.110843
+v -0.0486743 0.0486075 0.110843
+v -0.0319541 -0.0608783 -0.110899
+v -0.0319541 0.0608783 -0.110899
+v 0.0319541 -0.0608783 -0.110899
+v 0.0319541 0.0608783 -0.110899
+v 0.0319541 -0.0608783 0.110899
+v 0.0319541 0.0608783 0.110899
+v -0.0319541 -0.0608783 0.110899
+v -0.0319541 0.0608783 0.110899
+v -0.0654802 -0.0209327 -0.110917
+v -0.0654802 0.0209327 -0.110917
+v 0.0654802 -0.0209327 -0.110917
+v 0.0654802 0.0209327 -0.110917
+v 0.0654802 -0.0209327 0.110917
+v 0.0654802 0.0209327 0.110917
+v -0.0654802 -0.0209327 0.110917
+v -0.0654802 0.0209327 0.110917
+v -0.0564272 -0.0391821 -0.110997
+v -0.0564272 0.0391821 -0.110997
+v 0.0564272 -0.0391821 -0.110997
+v 0.0564272 0.0391821 -0.110997
+v 0.0564272 -0.0391821 0.110997
+v 0.0564272 0.0391821 0.110997
+v -0.0564272 -0.0391821 0.110997
+v -0.0564272 0.0391821 0.110997
+v -0.0609331 -0.0315903 -0.1111
+v -0.0609331 0.0315903 -0.1111
+v 0.0609331 -0.0315903 -0.1111
+v 0.0609331 0.0315903 -0.1111
+v 0.0609331 -0.0315903 0.1111
+v 0.0609331 0.0315903 0.1111
+v -0.0609331 -0.0315903 0.1111
+v -0.0609331 0.0315903 0.1111
+v -0.0237393 -0.0643878 -0.111118
+v -0.0237393 0.0643878 -0.111118
+v 0.0237393 -0.0643878 -0.111118
+v 0.0237393 0.0643878 -0.111118
+v 0.0237393 -0.0643878 0.111118
+v 0.0237393 0.0643878 0.111118
+v -0.0237393 -0.0643878 0.111118
+v -0.0237393 0.0643878 0.111118
+v -0.0526472 -0.0440044 -0.111133
+v -0.0526472 0.0440044 -0.111133
+v 0.0526472 -0.0440044 -0.111133
+v 0.0526472 0.0440044 -0.111133
+v 0.0526472 -0.0440044 0.111133
+v 0.0526472 0.0440044 0.111133
+v -0.0526472 -0.0440044 0.111133
+v -0.0526472 0.0440044 0.111133
+v -0.0118024 -0.0675765 -0.11116
+v -0.0118024 0.0675765 -0.11116
+v 0.0118024 -0.0675765 -0.11116
+v 0.0118024 0.0675765 -0.11116
+v 0.0118024 -0.0675765 0.11116
+v 0.0118024 0.0675765 0.11116
+v -0.0118024 -0.0675765 0.11116
+v -0.0118024 0.0675765 0.11116
+v -0.0278038 -0.0626721 -0.111221
+v -0.0278038 0.0626721 -0.111221
+v 0.0278038 -0.0626721 -0.111221
+v 0.0278038 0.0626721 -0.111221
+v 0.0278038 -0.0626721 0.111221
+v 0.0278038 0.0626721 0.111221
+v -0.0278038 -0.0626721 0.111221
+v -0.0278038 0.0626721 0.111221
+v -0.018375 -0.0660233 -0.111271
+v -0.018375 0.0660233 -0.111271
+v 0.018375 -0.0660233 -0.111271
+v 0.018375 0.0660233 -0.111271
+v 0.018375 -0.0660233 0.111271
+v 0.018375 0.0660233 0.111271
+v -0.018375 -0.0660233 0.111271
+v -0.018375 0.0660233 0.111271
+v -0.0660659 -0.0181947 -0.111283
+v -0.0660659 0.0181947 -0.111283
+v 0.0660659 -0.0181947 -0.111283
+v 0.0660659 0.0181947 -0.111283
+v 0.0660659 -0.0181947 0.111283
+v 0.0660659 0.0181947 0.111283
+v -0.0660659 -0.0181947 0.111283
+v -0.0660659 0.0181947 0.111283
+v -0.0459151 -0.0508196 -0.111342
+v -0.0459151 0.0508196 -0.111342
+v 0.0459151 -0.0508196 -0.111342
+v 0.0459151 0.0508196 -0.111342
+v 0.0459151 -0.0508196 0.111342
+v 0.0459151 0.0508196 0.111342
+v -0.0459151 -0.0508196 0.111342
+v -0.0459151 0.0508196 0.111342
+v -0.0347223 -0.0590087 -0.11138
+v -0.0347223 0.0590087 -0.11138
+v 0.0347223 -0.0590087 -0.11138
+v 0.0347223 0.0590087 -0.11138
+v 0.0347223 -0.0590087 0.11138
+v 0.0347223 0.0590087 0.11138
+v -0.0347223 -0.0590087 0.11138
+v -0.0347223 0.0590087 0.11138
+v -0.0103587 -0.0675765 -0.111547
+v -0.0103587 0.0675765 -0.111547
+v 0.0103587 -0.0675765 -0.111547
+v 0.0103587 0.0675765 -0.111547
+v 0.0103587 -0.0675765 0.111547
+v 0.0103587 0.0675765 0.111547
+v -0.0103587 -0.0675765 0.111547
+v -0.0103587 0.0675765 0.111547
+v -0.0665693 -0.0154341 -0.111597
+v -0.0665693 0.0154341 -0.111597
+v 0.0665693 -0.0154341 -0.111597
+v 0.0665693 0.0154341 -0.111597
+v 0.0665693 -0.0154341 0.111597
+v 0.0665693 0.0154341 0.111597
+v -0.0665693 -0.0154341 0.111597
+v -0.0665693 0.0154341 0.111597
+v -0.0431265 -0.0529685 -0.111647
+v -0.0431265 0.0529685 -0.111647
+v 0.0431265 -0.0529685 -0.111647
+v 0.0431265 0.0529685 -0.111647
+v 0.0431265 -0.0529685 0.111647
+v 0.0431265 0.0529685 0.111647
+v -0.0431265 -0.0529685 0.111647
+v -0.0431265 0.0529685 0.111647
+v -0.0375162 -0.0570655 -0.111666
+v -0.0375162 0.0570655 -0.111666
+v 0.0375162 -0.0570655 -0.111666
+v 0.0375162 0.0570655 -0.111666
+v 0.0375162 -0.0570655 0.111666
+v 0.0375162 0.0570655 0.111666
+v -0.0375162 -0.0570655 0.111666
+v -0.0375162 0.0570655 0.111666
+v -0.0618195 -0.0289768 -0.111698
+v -0.0618195 0.0289768 -0.111698
+v 0.0618195 -0.0289768 -0.111698
+v 0.0618195 0.0289768 -0.111698
+v 0.0618195 -0.0289768 0.111698
+v 0.0618195 0.0289768 0.111698
+v -0.0618195 -0.0289768 0.111698
+v -0.0618195 0.0289768 0.111698
+v -0.0403222 -0.0550513 -0.111755
+v -0.0403222 0.0550513 -0.111755
+v 0.0403222 -0.0550513 -0.111755
+v 0.0403222 0.0550513 -0.111755
+v 0.0403222 -0.0550513 0.111755
+v 0.0403222 0.0550513 0.111755
+v -0.0403222 -0.0550513 0.111755
+v -0.0403222 0.0550513 0.111755
+v -0.0575108 -0.0366961 -0.111784
+v -0.0575108 0.0366961 -0.111784
+v 0.0575108 -0.0366961 -0.111784
+v 0.0575108 0.0366961 -0.111784
+v 0.0575108 -0.0366961 0.111784
+v 0.0575108 0.0366961 0.111784
+v -0.0575108 -0.0366961 0.111784
+v -0.0575108 0.0366961 0.111784
+v -0.0669897 -0.0126542 -0.11186
+v -0.0669897 0.0126542 -0.11186
+v 0.0669897 -0.0126542 -0.11186
+v 0.0669897 0.0126542 -0.11186
+v 0.0669897 -0.0126542 0.11186
+v 0.0669897 0.0126542 0.11186
+v -0.0669897 -0.0126542 0.11186
+v -0.0669897 0.0126542 0.11186
+v -0.00890246 -0.0675765 -0.111883
+v -0.00890246 0.0675765 -0.111883
+v 0.00890246 -0.0675765 -0.111883
+v 0.00890246 0.0675765 -0.111883
+v 0.00890246 -0.0675765 0.111883
+v 0.00890246 0.0675765 0.111883
+v -0.00890246 -0.0675765 0.111883
+v -0.00890246 0.0675765 0.111883
+v -0.0169235 -0.0660233 -0.111887
+v -0.0169235 0.0660233 -0.111887
+v 0.0169235 -0.0660233 -0.111887
+v 0.0169235 0.0660233 -0.111887
+v 0.0169235 -0.0660233 0.111887
+v 0.0169235 0.0660233 0.111887
+v -0.0169235 -0.0660233 0.111887
+v -0.0169235 0.0660233 0.111887
+v -0.0499581 -0.0463348 -0.11192
+v -0.0499581 0.0463348 -0.11192
+v 0.0499581 -0.0463348 -0.11192
+v 0.0499581 0.0463348 -0.11192
+v 0.0499581 -0.0463348 0.11192
+v 0.0499581 0.0463348 0.11192
+v -0.0499581 -0.0463348 0.11192
+v -0.0499581 0.0463348 0.11192
+v -0.0222898 -0.0643878 -0.111921
+v -0.0222898 0.0643878 -0.111921
+v 0.0222898 -0.0643878 -0.111921
+v 0.0222898 0.0643878 -0.111921
+v 0.0222898 -0.0643878 0.111921
+v 0.0222898 0.0643878 0.111921
+v -0.0222898 -0.0643878 0.111921
+v -0.0222898 0.0643878 0.111921
+v -0.0305073 -0.0608783 -0.11199
+v -0.0305073 0.0608783 -0.11199
+v 0.0305073 -0.0608783 -0.11199
+v 0.0305073 0.0608783 -0.11199
+v 0.0305073 -0.0608783 0.11199
+v 0.0305073 0.0608783 0.11199
+v -0.0305073 -0.0608783 0.11199
+v -0.0305073 0.0608783 0.11199
+v -0.0538382 -0.0416192 -0.112063
+v -0.0538382 0.0416192 -0.112063
+v 0.0538382 -0.0416192 -0.112063
+v 0.0538382 0.0416192 -0.112063
+v 0.0538382 -0.0416192 0.112063
+v 0.0538382 0.0416192 0.112063
+v -0.0538382 -0.0416192 0.112063
+v -0.0538382 0.0416192 0.112063
+v -0.0673267 -0.00985854 -0.11207
+v -0.0673267 0.00985854 -0.11207
+v 0.0673267 -0.00985854 -0.11207
+v 0.0673267 0.00985854 -0.11207
+v 0.0673267 -0.00985854 0.11207
+v 0.0673267 0.00985854 0.11207
+v -0.0673267 -0.00985854 0.11207
+v -0.0673267 0.00985854 0.11207
+v -0.0263483 -0.0626721 -0.112166
+v -0.0263483 0.0626721 -0.112166
+v 0.0263483 -0.0626721 -0.112166
+v 0.0263483 0.0626721 -0.112166
+v 0.0263483 -0.0626721 0.112166
+v 0.0263483 0.0626721 0.112166
+v -0.0263483 -0.0626721 0.112166
+v -0.0263483 0.0626721 0.112166
+v -0.00743535 -0.0675765 -0.112168
+v -0.00743535 0.0675765 -0.112168
+v 0.00743535 -0.0675765 -0.112168
+v 0.00743535 0.0675765 -0.112168
+v 0.00743535 -0.0675765 0.112168
+v 0.00743535 0.0675765 0.112168
+v -0.00743535 -0.0675765 0.112168
+v -0.00743535 0.0675765 0.112168
+v -0.0675799 -0.0070506 -0.112229
+v -0.0675799 0.0070506 -0.112229
+v 0.0675799 -0.0070506 -0.112229
+v 0.0675799 0.0070506 -0.112229
+v 0.0675799 -0.0070506 0.112229
+v 0.0675799 0.0070506 0.112229
+v -0.0675799 -0.0070506 0.112229
+v -0.0675799 0.0070506 0.112229
+v -0.0626287 -0.0263271 -0.112244
+v -0.0626287 0.0263271 -0.112244
+v 0.0626287 -0.0263271 -0.112244
+v 0.0626287 0.0263271 -0.112244
+v 0.0626287 -0.0263271 0.112244
+v 0.0626287 0.0263271 0.112244
+v -0.0626287 -0.0263271 0.112244
+v -0.0626287 0.0263271 0.112244
+v -0.0677488 -0.00423388 -0.112334
+v -0.0677488 0.00423388 -0.112334
+v 0.0677488 -0.00423388 -0.112334
+v 0.0677488 0.00423388 -0.112334
+v 0.0677488 -0.00423388 0.112334
+v 0.0677488 0.00423388 0.112334
+v -0.0677488 -0.00423388 0.112334
+v -0.0677488 0.00423388 0.112334
+v -0.0678333 -0.00141188 -0.112387
+v -0.0678333 0.00141188 -0.112387
+v 0.0678333 -0.00141188 -0.112387
+v 0.0678333 0.00141188 -0.112387
+v 0.0678333 -0.00141188 0.112387
+v 0.0678333 0.00141188 0.112387
+v -0.0678333 -0.00141188 0.112387
+v -0.0678333 0.00141188 0.112387
+v -0.00595918 -0.0675765 -0.112402
+v -0.00595918 0.0675765 -0.112402
+v 0.00595918 -0.0675765 -0.112402
+v 0.00595918 0.0675765 -0.112402
+v 0.00595918 -0.0675765 0.112402
+v 0.00595918 0.0675765 0.112402
+v -0.00595918 -0.0675765 0.112402
+v -0.00595918 0.0675765 0.112402
+v -0.0154513 -0.0660233 -0.112452
+v -0.0154513 0.0660233 -0.112452
+v 0.0154513 -0.0660233 -0.112452
+v 0.0154513 0.0660233 -0.112452
+v 0.0154513 -0.0660233 0.112452
+v 0.0154513 0.0660233 0.112452
+v -0.0154513 -0.0660233 0.112452
+v -0.0154513 0.0660233 0.112452
+v -0.0472193 -0.0486075 -0.112516
+v -0.0472193 0.0486075 -0.112516
+v 0.0472193 -0.0486075 -0.112516
+v 0.0472193 0.0486075 -0.112516
+v 0.0472193 -0.0486075 0.112516
+v 0.0472193 0.0486075 0.112516
+v -0.0472193 -0.0486075 0.112516
+v -0.0472193 0.0486075 0.112516
+v -0.0585227 -0.0341645 -0.112519
+v -0.0585227 0.0341645 -0.112519
+v 0.0585227 -0.0341645 -0.112519
+v 0.0585227 0.0341645 -0.112519
+v 0.0585227 -0.0341645 0.112519
+v 0.0585227 0.0341645 0.112519
+v -0.0585227 -0.0341645 0.112519
+v -0.0585227 0.0341645 0.112519
+v -0.033257 -0.0590087 -0.112567
+v -0.033257 0.0590087 -0.112567
+v 0.033257 -0.0590087 -0.112567
+v 0.033257 0.0590087 -0.112567
+v 0.033257 -0.0590087 0.112567
+v 0.033257 0.0590087 0.112567
+v -0.033257 -0.0590087 0.112567
+v -0.033257 0.0590087 0.112567
+v -0.00447575 -0.0675765 -0.112584
+v -0.00447575 0.0675765 -0.112584
+v 0.00447575 -0.0675765 -0.112584
+v 0.00447575 0.0675765 -0.112584
+v 0.00447575 -0.0675765 0.112584
+v 0.00447575 0.0675765 0.112584
+v -0.00447575 -0.0675765 0.112584
+v -0.00447575 0.0675765 0.112584
+v -0.0208132 -0.0643878 -0.112673
+v -0.0208132 0.0643878 -0.112673
+v 0.0208132 -0.0643878 -0.112673
+v 0.0208132 0.0643878 -0.112673
+v 0.0208132 -0.0643878 0.112673
+v 0.0208132 0.0643878 0.112673
+v -0.0208132 -0.0643878 0.112673
+v -0.0208132 0.0643878 0.112673
+v -0.00298686 -0.0675765 -0.112714
+v -0.00298686 0.0675765 -0.112714
+v 0.00298686 -0.0675765 -0.112714
+v 0.00298686 0.0675765 -0.112714
+v 0.00298686 -0.0675765 0.112714
+v 0.00298686 0.0675765 0.112714
+v -0.00298686 -0.0675765 0.112714
+v -0.00298686 0.0675765 0.112714
+v -0.06336 -0.0236447 -0.112737
+v -0.06336 0.0236447 -0.112737
+v 0.06336 -0.0236447 -0.112737
+v 0.06336 0.0236447 -0.112737
+v 0.06336 -0.0236447 0.112737
+v 0.06336 0.0236447 0.112737
+v -0.06336 -0.0236447 0.112737
+v -0.06336 0.0236447 0.112737
+v -0.00149434 -0.0675765 -0.112792
+v -0.00149434 0.0675765 -0.112792
+v 0.00149434 -0.0675765 -0.112792
+v 0.00149434 0.0675765 -0.112792
+v 0.00149434 -0.0675765 0.112792
+v 0.00149434 0.0675765 0.112792
+v -0.00149434 -0.0675765 0.112792
+v -0.00149434 0.0675765 0.112792
+v -7.86562e-18 -0.0675765 -0.112818
+v -7.86562e-18 0.0675765 -0.112818
+v 2.62187e-18 -0.0675765 0.112818
+v 2.62187e-18 0.0675765 0.112818
+v -0.0444443 -0.0508196 -0.112919
+v -0.0444443 0.0508196 -0.112919
+v 0.0444443 -0.0508196 -0.112919
+v 0.0444443 0.0508196 -0.112919
+v 0.0444443 -0.0508196 0.112919
+v 0.0444443 0.0508196 0.112919
+v -0.0444443 -0.0508196 0.112919
+v -0.0444443 0.0508196 0.112919
+v -0.0549621 -0.0391821 -0.112941
+v -0.0549621 0.0391821 -0.112941
+v 0.0549621 -0.0391821 -0.112941
+v 0.0549621 0.0391821 -0.112941
+v 0.0549621 -0.0391821 0.112941
+v 0.0549621 0.0391821 0.112941
+v -0.0549621 -0.0391821 0.112941
+v -0.0549621 0.0391821 0.112941
+v -0.0511796 -0.0440044 -0.112945
+v -0.0511796 0.0440044 -0.112945
+v 0.0511796 -0.0440044 -0.112945
+v 0.0511796 0.0440044 -0.112945
+v 0.0511796 -0.0440044 0.112945
+v 0.0511796 0.0440044 0.112945
+v -0.0511796 -0.0440044 0.112945
+v -0.0511796 0.0440044 0.112945
+v -0.0360393 -0.0570655 -0.11295
+v -0.0360393 0.0570655 -0.11295
+v 0.0360393 -0.0570655 -0.11295
+v 0.0360393 0.0570655 -0.11295
+v 0.0360393 -0.0570655 0.11295
+v 0.0360393 0.0570655 0.11295
+v -0.0360393 -0.0570655 0.11295
+v -0.0360393 0.0570655 0.11295
+v -0.0139604 -0.0660233 -0.112966
+v -0.0139604 0.0660233 -0.112966
+v 0.0139604 -0.0660233 -0.112966
+v 0.0139604 0.0660233 -0.112966
+v 0.0139604 -0.0660233 0.112966
+v 0.0139604 0.0660233 0.112966
+v -0.0139604 -0.0660233 0.112966
+v -0.0139604 0.0660233 0.112966
+v -0.0290233 -0.0608783 -0.113029
+v -0.0290233 0.0608783 -0.113029
+v 0.0290233 -0.0608783 -0.113029
+v 0.0290233 0.0608783 -0.113029
+v 0.0290233 -0.0608783 0.113029
+v 0.0290233 0.0608783 0.113029
+v -0.0290233 -0.0608783 0.113029
+v -0.0290233 0.0608783 0.113029
+v -0.0248607 -0.0626721 -0.11306
+v -0.0248607 0.0626721 -0.11306
+v 0.0248607 -0.0626721 -0.11306
+v 0.0248607 0.0626721 -0.11306
+v 0.0248607 -0.0626721 0.11306
+v 0.0248607 0.0626721 0.11306
+v -0.0248607 -0.0626721 0.11306
+v -0.0248607 0.0626721 0.11306
+v -0.0416467 -0.0529685 -0.113126
+v -0.0416467 0.0529685 -0.113126
+v 0.0416467 -0.0529685 -0.113126
+v 0.0416467 0.0529685 -0.113126
+v 0.0416467 -0.0529685 0.113126
+v 0.0416467 0.0529685 0.113126
+v -0.0416467 -0.0529685 0.113126
+v -0.0416467 0.0529685 0.113126
+v -0.0388405 -0.0550513 -0.113137
+v -0.0388405 0.0550513 -0.113137
+v 0.0388405 -0.0550513 -0.113137
+v 0.0388405 0.0550513 -0.113137
+v 0.0388405 -0.0550513 0.113137
+v 0.0388405 0.0550513 0.113137
+v -0.0388405 -0.0550513 0.113137
+v -0.0388405 0.0550513 0.113137
+v -0.0640123 -0.0209327 -0.113177
+v -0.0640123 0.0209327 -0.113177
+v 0.0640123 -0.0209327 -0.113177
+v 0.0640123 0.0209327 -0.113177
+v 0.0640123 -0.0209327 0.113177
+v 0.0640123 0.0209327 0.113177
+v -0.0640123 -0.0209327 0.113177
+v -0.0640123 0.0209327 0.113177
+v -0.0594617 -0.0315903 -0.113201
+v -0.0594617 0.0315903 -0.113201
+v 0.0594617 -0.0315903 -0.113201
+v 0.0594617 0.0315903 -0.113201
+v 0.0594617 -0.0315903 0.113201
+v 0.0594617 0.0315903 0.113201
+v -0.0594617 -0.0315903 0.113201
+v -0.0594617 0.0315903 0.113201
+v -0.0193113 -0.0643878 -0.113374
+v -0.0193113 0.0643878 -0.113374
+v 0.0193113 -0.0643878 -0.113374
+v 0.0193113 0.0643878 -0.113374
+v 0.0193113 -0.0643878 0.113374
+v 0.0193113 0.0643878 0.113374
+v -0.0193113 -0.0643878 0.113374
+v -0.0193113 0.0643878 0.113374
+v -0.0124524 -0.0660233 -0.113427
+v -0.0124524 0.0660233 -0.113427
+v 0.0124524 -0.0660233 -0.113427
+v 0.0124524 0.0660233 -0.113427
+v 0.0124524 -0.0660233 0.113427
+v 0.0124524 0.0660233 0.113427
+v -0.0124524 -0.0660233 0.113427
+v -0.0124524 0.0660233 0.113427
+v -0.0645849 -0.0181947 -0.113563
+v -0.0645849 0.0181947 -0.113563
+v 0.0645849 -0.0181947 -0.113563
+v 0.0645849 0.0181947 -0.113563
+v 0.0645849 -0.0181947 0.113563
+v 0.0645849 0.0181947 0.113563
+v -0.0645849 -0.0181947 0.113563
+v -0.0645849 0.0181947 0.113563
+v -0.0484647 -0.0463348 -0.113638
+v -0.0484647 0.0463348 -0.113638
+v 0.0484647 -0.0463348 -0.113638
+v 0.0484647 0.0463348 -0.113638
+v 0.0484647 -0.0463348 0.113638
+v 0.0484647 0.0463348 0.113638
+v -0.0484647 -0.0463348 0.113638
+v -0.0484647 0.0463348 0.113638
+v -0.0317512 -0.0590087 -0.113702
+v -0.0317512 0.0590087 -0.113702
+v 0.0317512 -0.0590087 -0.113702
+v 0.0317512 0.0590087 -0.113702
+v 0.0317512 -0.0590087 0.113702
+v 0.0317512 0.0590087 0.113702
+v -0.0317512 -0.0590087 0.113702
+v -0.0317512 0.0590087 0.113702
+v -0.0560175 -0.0366961 -0.113766
+v -0.0560175 0.0366961 -0.113766
+v 0.0560175 -0.0366961 -0.113766
+v 0.0560175 0.0366961 -0.113766
+v 0.0560175 -0.0366961 0.113766
+v 0.0560175 0.0366961 0.113766
+v -0.0560175 -0.0366961 0.113766
+v -0.0560175 0.0366961 0.113766
+v -0.0603266 -0.0289768 -0.11383
+v -0.0603266 0.0289768 -0.11383
+v 0.0603266 -0.0289768 -0.11383
+v 0.0603266 0.0289768 -0.11383
+v 0.0603266 -0.0289768 0.11383
+v 0.0603266 0.0289768 0.11383
+v -0.0603266 -0.0289768 0.11383
+v -0.0603266 0.0289768 0.11383
+v -0.0109292 -0.0660233 -0.113835
+v -0.0109292 0.0660233 -0.113835
+v 0.0109292 -0.0660233 -0.113835
+v 0.0109292 0.0660233 -0.113835
+v 0.0109292 -0.0660233 0.113835
+v 0.0109292 0.0660233 0.113835
+v -0.0109292 -0.0660233 0.113835
+v -0.0109292 0.0660233 0.113835
+v -0.065077 -0.0154341 -0.113895
+v -0.065077 0.0154341 -0.113895
+v 0.065077 -0.0154341 -0.113895
+v 0.065077 0.0154341 -0.113895
+v 0.065077 -0.0154341 0.113895
+v 0.065077 0.0154341 0.113895
+v -0.065077 -0.0154341 0.113895
+v -0.065077 0.0154341 0.113895
+v -0.0233427 -0.0626721 -0.113901
+v -0.0233427 0.0626721 -0.113901
+v 0.0233427 -0.0626721 -0.113901
+v 0.0233427 0.0626721 -0.113901
+v 0.0233427 -0.0626721 0.113901
+v 0.0233427 0.0626721 0.113901
+v -0.0233427 -0.0626721 0.113901
+v -0.0233427 0.0626721 0.113901
+v -0.0523374 -0.0416192 -0.113916
+v -0.0523374 0.0416192 -0.113916
+v 0.0523374 -0.0416192 -0.113916
+v 0.0523374 0.0416192 -0.113916
+v 0.0523374 -0.0416192 0.113916
+v 0.0523374 0.0416192 0.113916
+v -0.0523374 -0.0416192 0.113916
+v -0.0523374 0.0416192 0.113916
+v -0.0275039 -0.0608783 -0.114016
+v -0.0275039 0.0608783 -0.114016
+v 0.0275039 -0.0608783 -0.114016
+v 0.0275039 0.0608783 -0.114016
+v 0.0275039 -0.0608783 0.114016
+v 0.0275039 0.0608783 0.114016
+v -0.0275039 -0.0608783 0.114016
+v -0.0275039 0.0608783 0.114016
+v -0.0177858 -0.0643878 -0.114021
+v -0.0177858 0.0643878 -0.114021
+v 0.0177858 -0.0643878 -0.114021
+v 0.0177858 0.0643878 -0.114021
+v 0.0177858 -0.0643878 0.114021
+v 0.0177858 0.0643878 0.114021
+v -0.0177858 -0.0643878 0.114021
+v -0.0177858 0.0643878 0.114021
+v -0.0457067 -0.0486075 -0.114138
+v -0.0457067 0.0486075 -0.114138
+v 0.0457067 -0.0486075 -0.114138
+v 0.0457067 0.0486075 -0.114138
+v 0.0457067 -0.0486075 0.114138
+v 0.0457067 0.0486075 0.114138
+v -0.0457067 -0.0486075 0.114138
+v -0.0457067 0.0486075 0.114138
+v -0.065488 -0.0126542 -0.114172
+v -0.065488 0.0126542 -0.114172
+v 0.065488 -0.0126542 -0.114172
+v 0.065488 0.0126542 -0.114172
+v 0.065488 -0.0126542 0.114172
+v 0.065488 0.0126542 0.114172
+v -0.065488 -0.0126542 0.114172
+v -0.065488 0.0126542 0.114172
+v -0.0345184 -0.0570655 -0.114182
+v -0.0345184 0.0570655 -0.114182
+v 0.0345184 -0.0570655 -0.114182
+v 0.0345184 0.0570655 -0.114182
+v 0.0345184 -0.0570655 0.114182
+v 0.0345184 0.0570655 0.114182
+v -0.0345184 -0.0570655 0.114182
+v -0.0345184 0.0570655 0.114182
+v -0.00939275 -0.0660233 -0.114189
+v -0.00939275 0.0660233 -0.114189
+v 0.00939275 -0.0660233 -0.114189
+v 0.00939275 0.0660233 -0.114189
+v 0.00939275 -0.0660233 0.114189
+v 0.00939275 0.0660233 0.114189
+v -0.00939275 -0.0660233 0.114189
+v -0.00939275 0.0660233 0.114189
+v -0.0658175 -0.00985854 -0.114394
+v -0.0658175 0.00985854 -0.114394
+v 0.0658175 -0.00985854 -0.114394
+v 0.0658175 0.00985854 -0.114394
+v 0.0658175 -0.00985854 0.114394
+v 0.0658175 0.00985854 0.114394
+v -0.0658175 -0.00985854 0.114394
+v -0.0658175 0.00985854 0.114394
+v -0.0611163 -0.0263271 -0.114404
+v -0.0611163 0.0263271 -0.114404
+v 0.0611163 -0.0263271 -0.114404
+v 0.0611163 0.0263271 -0.114404
+v 0.0611163 -0.0263271 0.114404
+v 0.0611163 0.0263271 0.114404
+v -0.0611163 -0.0263271 0.114404
+v -0.0611163 0.0263271 0.114404
+v -0.0429193 -0.0508196 -0.114444
+v -0.0429193 0.0508196 -0.114444
+v 0.0429193 -0.0508196 -0.114444
+v 0.0429193 0.0508196 -0.114444
+v 0.0429193 -0.0508196 0.114444
+v 0.0429193 0.0508196 0.114444
+v -0.0429193 -0.0508196 0.114444
+v -0.0429193 0.0508196 0.114444
+v -0.0373113 -0.0550513 -0.114466
+v -0.0373113 0.0550513 -0.114466
+v 0.0373113 -0.0550513 -0.114466
+v 0.0373113 0.0550513 -0.114466
+v 0.0373113 -0.0550513 0.114466
+v 0.0373113 0.0550513 0.114466
+v -0.0373113 -0.0550513 0.114466
+v -0.0373113 0.0550513 0.114466
+v -0.00784484 -0.0660233 -0.11449
+v -0.00784484 0.0660233 -0.11449
+v 0.00784484 -0.0660233 -0.11449
+v 0.00784484 0.0660233 -0.11449
+v 0.00784484 -0.0660233 0.11449
+v 0.00784484 0.0660233 0.11449
+v -0.00784484 -0.0660233 0.11449
+v -0.00784484 0.0660233 0.11449
+v -0.0570031 -0.0341645 -0.114536
+v -0.0570031 0.0341645 -0.114536
+v 0.0570031 -0.0341645 -0.114536
+v 0.0570031 0.0341645 -0.114536
+v 0.0570031 -0.0341645 0.114536
+v 0.0570031 0.0341645 0.114536
+v -0.0570031 -0.0341645 0.114536
+v -0.0570031 0.0341645 0.114536
+v -0.0401163 -0.0529685 -0.114554
+v -0.0401163 0.0529685 -0.114554
+v 0.0401163 -0.0529685 -0.114554
+v 0.0401163 0.0529685 -0.114554
+v 0.0401163 -0.0529685 0.114554
+v 0.0401163 0.0529685 0.114554
+v -0.0401163 -0.0529685 0.114554
+v -0.0401163 0.0529685 0.114554
+v -0.0660649 -0.0070506 -0.114561
+v -0.0660649 0.0070506 -0.114561
+v 0.0660649 -0.0070506 -0.114561
+v 0.0660649 0.0070506 -0.114561
+v 0.0660649 -0.0070506 0.114561
+v 0.0660649 0.0070506 0.114561
+v -0.0660649 -0.0070506 0.114561
+v -0.0660649 0.0070506 0.114561
+v -0.0162386 -0.0643878 -0.114615
+v -0.0162386 0.0643878 -0.114615
+v 0.0162386 -0.0643878 -0.114615
+v 0.0162386 0.0643878 -0.114615
+v 0.0162386 -0.0643878 0.114615
+v 0.0162386 0.0643878 0.114615
+v -0.0162386 -0.0643878 0.114615
+v -0.0162386 0.0643878 0.114615
+v -0.0662301 -0.00423388 -0.114673
+v -0.0662301 0.00423388 -0.114673
+v 0.0662301 -0.00423388 -0.114673
+v 0.0662301 0.00423388 -0.114673
+v 0.0662301 -0.00423388 0.114673
+v 0.0662301 0.00423388 0.114673
+v -0.0662301 -0.00423388 0.114673
+v -0.0662301 0.00423388 0.114673
+v -0.0217964 -0.0626721 -0.114689
+v -0.0217964 0.0626721 -0.114689
+v 0.0217964 -0.0626721 -0.114689
+v 0.0217964 0.0626721 -0.114689
+v 0.0217964 -0.0626721 0.114689
+v 0.0217964 0.0626721 0.114689
+v -0.0217964 -0.0626721 0.114689
+v -0.0217964 0.0626721 0.114689
+v -0.0496497 -0.0440044 -0.114705
+v -0.0496497 0.0440044 -0.114705
+v 0.0496497 -0.0440044 -0.114705
+v 0.0496497 0.0440044 -0.114705
+v 0.0496497 -0.0440044 0.114705
+v 0.0496497 0.0440044 0.114705
+v -0.0496497 -0.0440044 0.114705
+v -0.0496497 0.0440044 0.114705
+v -0.0663127 -0.00141188 -0.114728
+v -0.0663127 0.00141188 -0.114728
+v 0.0663127 -0.00141188 -0.114728
+v 0.0663127 0.00141188 -0.114728
+v 0.0663127 -0.00141188 0.114728
+v 0.0663127 0.00141188 0.114728
+v -0.0663127 -0.00141188 0.114728
+v -0.0663127 0.00141188 0.114728
+v -0.00628737 -0.0660233 -0.114737
+v -0.00628737 0.0660233 -0.114737
+v 0.00628737 -0.0660233 -0.114737
+v 0.00628737 0.0660233 -0.114737
+v 0.00628737 -0.0660233 0.114737
+v 0.00628737 0.0660233 0.114737
+v -0.00628737 -0.0660233 0.114737
+v -0.00628737 0.0660233 0.114737
+v -0.0302066 -0.0590087 -0.114783
+v -0.0302066 0.0590087 -0.114783
+v 0.0302066 -0.0590087 -0.114783
+v 0.0302066 0.0590087 -0.114783
+v 0.0302066 -0.0590087 0.114783
+v 0.0302066 0.0590087 0.114783
+v -0.0302066 -0.0590087 0.114783
+v -0.0302066 0.0590087 0.114783
+v -0.05343 -0.0391821 -0.114833
+v -0.05343 0.0391821 -0.114833
+v 0.05343 -0.0391821 -0.114833
+v 0.05343 0.0391821 -0.114833
+v 0.05343 -0.0391821 0.114833
+v 0.05343 0.0391821 0.114833
+v -0.05343 -0.0391821 0.114833
+v -0.05343 0.0391821 0.114833
+v -0.0618299 -0.0236447 -0.114922
+v -0.0618299 0.0236447 -0.114922
+v 0.0618299 -0.0236447 -0.114922
+v 0.0618299 0.0236447 -0.114922
+v 0.0618299 -0.0236447 0.114922
+v 0.0618299 0.0236447 0.114922
+v -0.0618299 -0.0236447 0.114922
+v -0.0618299 0.0236447 0.114922
+v -0.00472225 -0.0660233 -0.114929
+v -0.00472225 0.0660233 -0.114929
+v 0.00472225 -0.0660233 -0.114929
+v 0.00472225 0.0660233 -0.114929
+v 0.00472225 -0.0660233 0.114929
+v 0.00472225 0.0660233 0.114929
+v -0.00472225 -0.0660233 0.114929
+v -0.00472225 0.0660233 0.114929
+v -0.0259511 -0.0608783 -0.114949
+v -0.0259511 0.0608783 -0.114949
+v 0.0259511 -0.0608783 -0.114949
+v 0.0259511 0.0608783 -0.114949
+v 0.0259511 -0.0608783 0.114949
+v 0.0259511 0.0608783 0.114949
+v -0.0259511 -0.0608783 0.114949
+v -0.0259511 0.0608783 0.114949
+v -0.00315136 -0.0660233 -0.115067
+v -0.00315136 0.0660233 -0.115067
+v 0.00315136 -0.0660233 -0.115067
+v 0.00315136 0.0660233 -0.115067
+v 0.00315136 -0.0660233 0.115067
+v 0.00315136 0.0660233 0.115067
+v -0.00315136 -0.0660233 0.115067
+v -0.00315136 0.0660233 0.115067
+v -0.00157664 -0.0660233 -0.115149
+v -0.00157664 0.0660233 -0.115149
+v 0.00157664 -0.0660233 -0.115149
+v 0.00157664 0.0660233 -0.115149
+v 0.00157664 -0.0660233 0.115149
+v 0.00157664 0.0660233 0.115149
+v -0.00157664 -0.0660233 0.115149
+v -0.00157664 0.0660233 0.115149
+v -0.0146717 -0.0643878 -0.115155
+v -0.0146717 0.0643878 -0.115155
+v 0.0146717 -0.0643878 -0.115155
+v 0.0146717 0.0643878 -0.115155
+v 0.0146717 -0.0643878 0.115155
+v 0.0146717 0.0643878 0.115155
+v -0.0146717 -0.0643878 0.115155
+v -0.0146717 0.0643878 0.115155
+v -8.29882e-18 -0.0660233 -0.115177
+v -8.29882e-18 0.0660233 -0.115177
+v 2.76627e-18 -0.0660233 0.115177
+v 2.76627e-18 0.0660233 0.115177
+v -0.0579177 -0.0315903 -0.11525
+v -0.0579177 0.0315903 -0.11525
+v 0.0579177 -0.0315903 -0.11525
+v 0.0579177 0.0315903 -0.11525
+v 0.0579177 -0.0315903 0.11525
+v 0.0579177 0.0315903 0.11525
+v -0.0579177 -0.0315903 0.11525
+v -0.0579177 0.0315903 0.11525
+v -0.0469122 -0.0463348 -0.115303
+v -0.0469122 0.0463348 -0.115303
+v 0.0469122 -0.0463348 -0.115303
+v 0.0469122 0.0463348 -0.115303
+v 0.0469122 -0.0463348 0.115303
+v 0.0469122 0.0463348 0.115303
+v -0.0469122 -0.0463348 0.115303
+v -0.0469122 0.0463348 0.115303
+v -0.0329554 -0.0570655 -0.115359
+v -0.0329554 0.0570655 -0.115359
+v 0.0329554 -0.0570655 -0.115359
+v 0.0329554 0.0570655 -0.115359
+v 0.0329554 -0.0570655 0.115359
+v 0.0329554 0.0570655 0.115359
+v -0.0329554 -0.0570655 0.115359
+v -0.0329554 0.0570655 0.115359
+v -0.0624665 -0.0209327 -0.115385
+v -0.0624665 0.0209327 -0.115385
+v 0.0624665 -0.0209327 -0.115385
+v 0.0624665 0.0209327 -0.115385
+v 0.0624665 -0.0209327 0.115385
+v 0.0624665 0.0209327 0.115385
+v -0.0624665 -0.0209327 0.115385
+v -0.0624665 0.0209327 0.115385
+v -0.0202235 -0.0626721 -0.115423
+v -0.0202235 0.0626721 -0.115423
+v 0.0202235 -0.0626721 -0.115423
+v 0.0202235 0.0626721 -0.115423
+v 0.0202235 -0.0626721 0.115423
+v 0.0202235 0.0626721 0.115423
+v -0.0202235 -0.0626721 0.115423
+v -0.0202235 0.0626721 0.115423
+v -0.0130869 -0.0643878 -0.115639
+v -0.0130869 0.0643878 -0.115639
+v 0.0130869 -0.0643878 -0.115639
+v 0.0130869 0.0643878 -0.115639
+v 0.0130869 -0.0643878 0.115639
+v 0.0130869 0.0643878 0.115639
+v -0.0130869 -0.0643878 0.115639
+v -0.0130869 0.0643878 0.115639
+v -0.054456 -0.0366961 -0.115694
+v -0.054456 0.0366961 -0.115694
+v 0.054456 -0.0366961 -0.115694
+v 0.054456 0.0366961 -0.115694
+v 0.054456 -0.0366961 0.115694
+v 0.054456 0.0366961 0.115694
+v -0.054456 -0.0366961 0.115694
+v -0.054456 0.0366961 0.115694
+v -0.0441385 -0.0486075 -0.115707
+v -0.0441385 0.0486075 -0.115707
+v 0.0441385 -0.0486075 -0.115707
+v 0.0441385 0.0486075 -0.115707
+v 0.0441385 -0.0486075 0.115707
+v 0.0441385 0.0486075 0.115707
+v -0.0441385 -0.0486075 0.115707
+v -0.0441385 0.0486075 0.115707
+v -0.0507729 -0.0416192 -0.115716
+v -0.0507729 0.0416192 -0.115716
+v 0.0507729 -0.0416192 -0.115716
+v 0.0507729 0.0416192 -0.115716
+v 0.0507729 -0.0416192 0.115716
+v 0.0507729 0.0416192 0.115716
+v -0.0507729 -0.0416192 0.115716
+v -0.0507729 0.0416192 0.115716
+v -0.0357368 -0.0550513 -0.115741
+v -0.0357368 0.0550513 -0.115741
+v 0.0357368 -0.0550513 -0.115741
+v 0.0357368 0.0550513 -0.115741
+v 0.0357368 -0.0550513 0.115741
+v 0.0357368 0.0550513 0.115741
+v -0.0357368 -0.0550513 0.115741
+v -0.0357368 0.0550513 0.115741
+v -0.0630252 -0.0181947 -0.115791
+v -0.0630252 0.0181947 -0.115791
+v 0.0630252 -0.0181947 -0.115791
+v 0.0630252 0.0181947 -0.115791
+v 0.0630252 -0.0181947 0.115791
+v 0.0630252 0.0181947 0.115791
+v -0.0630252 -0.0181947 0.115791
+v -0.0630252 0.0181947 0.115791
+v -0.0286253 -0.0590087 -0.11581
+v -0.0286253 0.0590087 -0.11581
+v 0.0286253 -0.0590087 -0.11581
+v 0.0286253 0.0590087 -0.11581
+v 0.0286253 -0.0590087 0.11581
+v 0.0286253 0.0590087 0.11581
+v -0.0286253 -0.0590087 0.11581
+v -0.0286253 0.0590087 0.11581
+v -0.0243666 -0.0608783 -0.115827
+v -0.0243666 0.0608783 -0.115827
+v 0.0243666 -0.0608783 -0.115827
+v 0.0243666 0.0608783 -0.115827
+v 0.0243666 -0.0608783 0.115827
+v 0.0243666 0.0608783 0.115827
+v -0.0243666 -0.0608783 0.115827
+v -0.0243666 0.0608783 0.115827
+v -0.0587602 -0.0289768 -0.115908
+v -0.0587602 0.0289768 -0.115908
+v 0.0587602 -0.0289768 -0.115908
+v 0.0587602 0.0289768 -0.115908
+v 0.0587602 -0.0289768 0.115908
+v 0.0587602 0.0289768 0.115908
+v -0.0587602 -0.0289768 0.115908
+v -0.0587602 0.0289768 0.115908
+v -0.0413421 -0.0508196 -0.115915
+v -0.0413421 0.0508196 -0.115915
+v 0.0413421 -0.0508196 -0.115915
+v 0.0413421 0.0508196 -0.115915
+v 0.0413421 -0.0508196 0.115915
+v 0.0413421 0.0508196 0.115915
+v -0.0413421 -0.0508196 0.115915
+v -0.0413421 0.0508196 0.115915
+v -0.0385369 -0.0529685 -0.115927
+v -0.0385369 0.0529685 -0.115927
+v 0.0385369 -0.0529685 -0.115927
+v 0.0385369 0.0529685 -0.115927
+v 0.0385369 -0.0529685 0.115927
+v 0.0385369 0.0529685 0.115927
+v -0.0385369 -0.0529685 0.115927
+v -0.0385369 0.0529685 0.115927
+v -0.0114861 -0.0643878 -0.116068
+v -0.0114861 0.0643878 -0.116068
+v 0.0114861 -0.0643878 -0.116068
+v 0.0114861 0.0643878 -0.116068
+v 0.0114861 -0.0643878 0.116068
+v 0.0114861 0.0643878 0.116068
+v -0.0114861 -0.0643878 0.116068
+v -0.0114861 0.0643878 0.116068
+v -0.0186259 -0.0626721 -0.116101
+v -0.0186259 0.0626721 -0.116101
+v 0.0186259 -0.0626721 -0.116101
+v 0.0186259 0.0626721 -0.116101
+v 0.0186259 -0.0626721 0.116101
+v 0.0186259 0.0626721 0.116101
+v -0.0186259 -0.0626721 0.116101
+v -0.0186259 0.0626721 0.116101
+v -0.0635055 -0.0154341 -0.116139
+v -0.0635055 0.0154341 -0.116139
+v 0.0635055 -0.0154341 -0.116139
+v 0.0635055 0.0154341 -0.116139
+v 0.0635055 -0.0154341 0.116139
+v 0.0635055 0.0154341 0.116139
+v -0.0635055 -0.0154341 0.116139
+v -0.0635055 0.0154341 0.116139
+v -0.0480593 -0.0440044 -0.11641
+v -0.0480593 0.0440044 -0.11641
+v 0.0480593 -0.0440044 -0.11641
+v 0.0480593 0.0440044 -0.11641
+v 0.0480593 -0.0440044 0.11641
+v 0.0480593 0.0440044 0.11641
+v -0.0480593 -0.0440044 0.11641
+v -0.0480593 0.0440044 0.11641
+v -0.0639066 -0.0126542 -0.116431
+v -0.0639066 0.0126542 -0.116431
+v 0.0639066 -0.0126542 -0.116431
+v 0.0639066 0.0126542 -0.116431
+v 0.0639066 -0.0126542 0.116431
+v 0.0639066 0.0126542 0.116431
+v -0.0639066 -0.0126542 0.116431
+v -0.0639066 0.0126542 0.116431
+v -0.00987135 -0.0643878 -0.116441
+v -0.00987135 0.0643878 -0.116441
+v 0.00987135 -0.0643878 -0.116441
+v 0.00987135 0.0643878 -0.116441
+v 0.00987135 -0.0643878 0.116441
+v 0.00987135 0.0643878 0.116441
+v -0.00987135 -0.0643878 0.116441
+v -0.00987135 0.0643878 0.116441
+v -0.0313523 -0.0570655 -0.116482
+v -0.0313523 0.0570655 -0.116482
+v 0.0313523 -0.0570655 -0.116482
+v 0.0313523 0.0570655 -0.116482
+v 0.0313523 -0.0570655 0.116482
+v 0.0313523 0.0570655 0.116482
+v -0.0313523 -0.0570655 0.116482
+v -0.0313523 0.0570655 0.116482
+v -0.0554141 -0.0341645 -0.116498
+v -0.0554141 0.0341645 -0.116498
+v 0.0554141 -0.0341645 -0.116498
+v 0.0554141 0.0341645 -0.116498
+v 0.0554141 -0.0341645 0.116498
+v 0.0554141 0.0341645 0.116498
+v -0.0554141 -0.0341645 0.116498
+v -0.0554141 0.0341645 0.116498
+v -0.0595294 -0.0263271 -0.116509
+v -0.0595294 0.0263271 -0.116509
+v 0.0595294 -0.0263271 -0.116509
+v 0.0595294 0.0263271 -0.116509
+v 0.0595294 -0.0263271 0.116509
+v 0.0595294 0.0263271 0.116509
+v -0.0595294 -0.0263271 0.116509
+v -0.0595294 0.0263271 0.116509
+v -0.0227524 -0.0608783 -0.116649
+v -0.0227524 0.0608783 -0.116649
+v 0.0227524 -0.0608783 -0.116649
+v 0.0227524 0.0608783 -0.116649
+v 0.0227524 -0.0608783 0.116649
+v 0.0227524 0.0608783 0.116649
+v -0.0227524 -0.0608783 0.116649
+v -0.0227524 0.0608783 0.116649
+v -0.0642281 -0.00985854 -0.116664
+v -0.0642281 0.00985854 -0.116664
+v 0.0642281 -0.00985854 -0.116664
+v 0.0642281 0.00985854 -0.116664
+v 0.0642281 -0.00985854 0.116664
+v 0.0642281 0.00985854 0.116664
+v -0.0642281 -0.00985854 0.116664
+v -0.0642281 0.00985854 0.116664
+v -0.0518328 -0.0391821 -0.11667
+v -0.0518328 0.0391821 -0.11667
+v 0.0518328 -0.0391821 -0.11667
+v 0.0518328 0.0391821 -0.11667
+v 0.0518328 -0.0391821 0.11667
+v 0.0518328 0.0391821 0.11667
+v -0.0518328 -0.0391821 0.11667
+v -0.0518328 0.0391821 0.11667
+v -0.0170057 -0.0626721 -0.116723
+v -0.0170057 0.0626721 -0.116723
+v 0.0170057 -0.0626721 -0.116723
+v 0.0170057 0.0626721 -0.116723
+v 0.0170057 -0.0626721 0.116723
+v 0.0170057 0.0626721 0.116723
+v -0.0170057 -0.0626721 0.116723
+v -0.0170057 0.0626721 0.116723
+v -0.00824457 -0.0643878 -0.116757
+v -0.00824457 0.0643878 -0.116757
+v 0.00824457 -0.0643878 -0.116757
+v 0.00824457 0.0643878 -0.116757
+v 0.00824457 -0.0643878 0.116757
+v 0.00824457 0.0643878 0.116757
+v -0.00824457 -0.0643878 0.116757
+v -0.00824457 0.0643878 0.116757
+v -0.0270091 -0.0590087 -0.116781
+v -0.0270091 0.0590087 -0.116781
+v 0.0270091 -0.0590087 -0.116781
+v 0.0270091 0.0590087 -0.116781
+v 0.0270091 -0.0590087 0.116781
+v 0.0270091 0.0590087 0.116781
+v -0.0270091 -0.0590087 0.116781
+v -0.0270091 0.0590087 0.116781
+v -0.0644695 -0.0070506 -0.11684
+v -0.0644695 0.0070506 -0.11684
+v 0.0644695 -0.0070506 -0.11684
+v 0.0644695 0.0070506 -0.11684
+v 0.0644695 -0.0070506 0.11684
+v 0.0644695 0.0070506 0.11684
+v -0.0644695 -0.0070506 0.11684
+v -0.0644695 0.0070506 0.11684
+v -0.0453026 -0.0463348 -0.116912
+v -0.0453026 0.0463348 -0.116912
+v 0.0453026 -0.0463348 -0.116912
+v 0.0453026 0.0463348 -0.116912
+v 0.0453026 -0.0463348 0.116912
+v 0.0453026 0.0463348 0.116912
+v -0.0453026 -0.0463348 0.116912
+v -0.0453026 0.0463348 0.116912
+v -0.0646307 -0.00423388 -0.116957
+v -0.0646307 0.00423388 -0.116957
+v 0.0646307 -0.00423388 -0.116957
+v 0.0646307 0.00423388 -0.116957
+v 0.0646307 -0.00423388 0.116957
+v 0.0646307 0.00423388 0.116957
+v -0.0646307 -0.00423388 0.116957
+v -0.0646307 0.00423388 0.116957
+v -0.0341187 -0.0550513 -0.11696
+v -0.0341187 0.0550513 -0.11696
+v 0.0341187 -0.0550513 -0.11696
+v 0.0341187 0.0550513 -0.11696
+v 0.0341187 -0.0550513 0.11696
+v 0.0341187 0.0550513 0.11696
+v -0.0341187 -0.0550513 0.11696
+v -0.0341187 0.0550513 0.11696
+v -0.0647113 -0.00141188 -0.117015
+v -0.0647113 0.00141188 -0.117015
+v 0.0647113 -0.00141188 -0.117015
+v 0.0647113 0.00141188 -0.117015
+v 0.0647113 -0.00141188 0.117015
+v 0.0647113 0.00141188 0.117015
+v -0.0647113 -0.00141188 0.117015
+v -0.0647113 0.00141188 0.117015
+v -0.00660774 -0.0643878 -0.117017
+v -0.00660774 0.0643878 -0.117017
+v 0.00660774 -0.0643878 -0.117017
+v 0.00660774 0.0643878 -0.117017
+v 0.00660774 -0.0643878 0.117017
+v 0.00660774 0.0643878 0.117017
+v -0.00660774 -0.0643878 0.117017
+v -0.00660774 0.0643878 0.117017
+v -0.0602245 -0.0236447 -0.117053
+v -0.0602245 0.0236447 -0.117053
+v 0.0602245 -0.0236447 -0.117053
+v 0.0602245 0.0236447 -0.117053
+v 0.0602245 -0.0236447 0.117053
+v 0.0602245 0.0236447 0.117053
+v -0.0602245 -0.0236447 0.117053
+v -0.0602245 0.0236447 0.117053
+v -0.00496286 -0.0643878 -0.117218
+v -0.00496286 0.0643878 -0.117218
+v 0.00496286 -0.0643878 -0.117218
+v 0.00496286 0.0643878 -0.117218
+v 0.00496286 -0.0643878 0.117218
+v 0.00496286 0.0643878 0.117218
+v -0.00496286 -0.0643878 0.117218
+v -0.00496286 0.0643878 0.117218
+v -0.0425164 -0.0486075 -0.117219
+v -0.0425164 0.0486075 -0.117219
+v 0.0425164 -0.0486075 -0.117219
+v 0.0425164 0.0486075 -0.117219
+v 0.0425164 -0.0486075 0.117219
+v 0.0425164 0.0486075 0.117219
+v -0.0425164 -0.0486075 0.117219
+v -0.0425164 0.0486075 0.117219
+v -0.0369106 -0.0529685 -0.117243
+v -0.0369106 0.0529685 -0.117243
+v 0.0369106 -0.0529685 -0.117243
+v 0.0369106 0.0529685 -0.117243
+v 0.0369106 -0.0529685 0.117243
+v 0.0369106 0.0529685 0.117243
+v -0.0369106 -0.0529685 0.117243
+v -0.0369106 0.0529685 0.117243
+v -0.0563032 -0.0315903 -0.117244
+v -0.0563032 0.0315903 -0.117244
+v 0.0563032 -0.0315903 -0.117244
+v 0.0563032 0.0315903 -0.117244
+v 0.0563032 -0.0315903 0.117244
+v 0.0563032 0.0315903 0.117244
+v -0.0563032 -0.0315903 0.117244
+v -0.0563032 0.0315903 0.117244
+v -0.0153647 -0.0626721 -0.117288
+v -0.0153647 0.0626721 -0.117288
+v 0.0153647 -0.0626721 -0.117288
+v 0.0153647 0.0626721 -0.117288
+v 0.0153647 -0.0626721 0.117288
+v 0.0153647 0.0626721 0.117288
+v -0.0153647 -0.0626721 0.117288
+v -0.0153647 0.0626721 0.117288
+v -0.0397145 -0.0508196 -0.11733
+v -0.0397145 0.0508196 -0.11733
+v 0.0397145 -0.0508196 -0.11733
+v 0.0397145 0.0508196 -0.11733
+v 0.0397145 -0.0508196 0.11733
+v 0.0397145 0.0508196 0.11733
+v -0.0397145 -0.0508196 0.11733
+v -0.0397145 0.0508196 0.11733
+v -0.00331194 -0.0643878 -0.117363
+v -0.00331194 0.0643878 -0.117363
+v 0.00331194 -0.0643878 -0.117363
+v 0.00331194 0.0643878 -0.117363
+v 0.00331194 -0.0643878 0.117363
+v 0.00331194 0.0643878 0.117363
+v -0.00331194 -0.0643878 0.117363
+v -0.00331194 0.0643878 0.117363
+v -0.0211105 -0.0608783 -0.117415
+v -0.0211105 0.0608783 -0.117415
+v 0.0211105 -0.0608783 -0.117415
+v 0.0211105 0.0608783 -0.117415
+v 0.0211105 -0.0608783 0.117415
+v 0.0211105 0.0608783 0.117415
+v -0.0211105 -0.0608783 0.117415
+v -0.0211105 0.0608783 0.117415
+v -0.00165698 -0.0643878 -0.11745
+v -0.00165698 0.0643878 -0.11745
+v 0.00165698 -0.0643878 -0.11745
+v 0.00165698 0.0643878 -0.11745
+v 0.00165698 -0.0643878 0.11745
+v 0.00165698 0.0643878 0.11745
+v -0.00165698 -0.0643878 0.11745
+v -0.00165698 0.0643878 0.11745
+v -0.0491465 -0.0416192 -0.11746
+v -0.0491465 0.0416192 -0.11746
+v 0.0491465 -0.0416192 -0.11746
+v 0.0491465 0.0416192 -0.11746
+v 0.0491465 -0.0416192 0.11746
+v 0.0491465 0.0416192 0.11746
+v -0.0491465 -0.0416192 0.11746
+v -0.0491465 0.0416192 0.11746
+v -8.72167e-18 -0.0643878 -0.117479
+v -8.72167e-18 0.0643878 -0.117479
+v 2.90722e-18 -0.0643878 0.117479
+v 2.90722e-18 0.0643878 0.117479
+v -0.0608445 -0.0209327 -0.117537
+v -0.0608445 0.0209327 -0.117537
+v 0.0608445 -0.0209327 -0.117537
+v 0.0608445 0.0209327 -0.117537
+v 0.0608445 -0.0209327 0.117537
+v 0.0608445 0.0209327 0.117537
+v -0.0608445 -0.0209327 0.117537
+v -0.0608445 0.0209327 0.117537
+v -0.0297111 -0.0570655 -0.117548
+v -0.0297111 0.0570655 -0.117548
+v 0.0297111 -0.0570655 -0.117548
+v 0.0297111 0.0570655 -0.117548
+v 0.0297111 -0.0570655 0.117548
+v 0.0297111 0.0570655 0.117548
+v -0.0297111 -0.0570655 0.117548
+v -0.0297111 0.0570655 0.117548
+v -0.0528281 -0.0366961 -0.117567
+v -0.0528281 0.0366961 -0.117567
+v 0.0528281 -0.0366961 -0.117567
+v 0.0528281 0.0366961 -0.117567
+v 0.0528281 -0.0366961 0.117567
+v 0.0528281 0.0366961 0.117567
+v -0.0528281 -0.0366961 0.117567
+v -0.0528281 0.0366961 0.117567
+v -0.0253601 -0.0590087 -0.117695
+v -0.0253601 0.0590087 -0.117695
+v 0.0253601 -0.0590087 -0.117695
+v 0.0253601 0.0590087 -0.117695
+v 0.0253601 -0.0590087 0.117695
+v 0.0253601 0.0590087 0.117695
+v -0.0253601 -0.0590087 0.117695
+v -0.0253601 0.0590087 0.117695
+v -0.0137051 -0.0626721 -0.117795
+v -0.0137051 0.0626721 -0.117795
+v 0.0137051 -0.0626721 -0.117795
+v 0.0137051 0.0626721 -0.117795
+v 0.0137051 -0.0626721 0.117795
+v 0.0137051 0.0626721 0.117795
+v -0.0137051 -0.0626721 0.117795
+v -0.0137051 0.0626721 0.117795
+v -0.0571222 -0.0289768 -0.117931
+v -0.0571222 0.0289768 -0.117931
+v 0.0571222 -0.0289768 -0.117931
+v 0.0571222 0.0289768 -0.117931
+v 0.0571222 -0.0289768 0.117931
+v 0.0571222 0.0289768 0.117931
+v -0.0571222 -0.0289768 0.117931
+v -0.0571222 0.0289768 0.117931
+v -0.0613888 -0.0181947 -0.117962
+v -0.0613888 0.0181947 -0.117962
+v 0.0613888 -0.0181947 -0.117962
+v 0.0613888 0.0181947 -0.117962
+v 0.0613888 -0.0181947 0.117962
+v 0.0613888 0.0181947 0.117962
+v -0.0613888 -0.0181947 0.117962
+v -0.0613888 0.0181947 0.117962
+v -0.0464103 -0.0440044 -0.118059
+v -0.0464103 0.0440044 -0.118059
+v 0.0464103 -0.0440044 -0.118059
+v 0.0464103 0.0440044 -0.118059
+v 0.0464103 -0.0440044 0.118059
+v 0.0464103 0.0440044 0.118059
+v -0.0464103 -0.0440044 0.118059
+v -0.0464103 0.0440044 0.118059
+v -0.032459 -0.0550513 -0.118122
+v -0.032459 0.0550513 -0.118122
+v 0.032459 -0.0550513 -0.118122
+v 0.032459 0.0550513 -0.118122
+v 0.032459 -0.0550513 0.118122
+v 0.032459 0.0550513 0.118122
+v -0.032459 -0.0550513 0.118122
+v -0.032459 0.0550513 0.118122
+v -0.0194429 -0.0608783 -0.118123
+v -0.0194429 0.0608783 -0.118123
+v 0.0194429 -0.0608783 -0.118123
+v 0.0194429 0.0608783 -0.118123
+v 0.0194429 -0.0608783 0.118123
+v 0.0194429 0.0608783 0.118123
+v -0.0194429 -0.0608783 0.118123
+v -0.0194429 0.0608783 0.118123
+v -0.0120287 -0.0626721 -0.118244
+v -0.0120287 0.0626721 -0.118244
+v 0.0120287 -0.0626721 -0.118244
+v 0.0120287 0.0626721 -0.118244
+v 0.0120287 -0.0626721 0.118244
+v 0.0120287 0.0626721 0.118244
+v -0.0120287 -0.0626721 0.118244
+v -0.0120287 0.0626721 0.118244
+v -0.0618565 -0.0154341 -0.118328
+v -0.0618565 0.0154341 -0.118328
+v 0.0618565 -0.0154341 -0.118328
+v 0.0618565 0.0154341 -0.118328
+v 0.0618565 -0.0154341 0.118328
+v 0.0618565 0.0154341 0.118328
+v -0.0618565 -0.0154341 0.118328
+v -0.0618565 0.0154341 0.118328
+v -0.0537576 -0.0341645 -0.118404
+v -0.0537576 0.0341645 -0.118404
+v 0.0537576 -0.0341645 -0.118404
+v 0.0537576 0.0341645 -0.118404
+v 0.0537576 -0.0341645 0.118404
+v 0.0537576 0.0341645 0.118404
+v -0.0537576 -0.0341645 0.118404
+v -0.0537576 0.0341645 0.118404
+v -0.0501724 -0.0391821 -0.118451
+v -0.0501724 0.0391821 -0.118451
+v 0.0501724 -0.0391821 -0.118451
+v 0.0501724 0.0391821 -0.118451
+v 0.0501724 -0.0391821 0.118451
+v 0.0501724 0.0391821 0.118451
+v -0.0501724 -0.0391821 0.118451
+v -0.0501724 0.0391821 0.118451
+v -0.0436378 -0.0463348 -0.118465
+v -0.0436378 0.0463348 -0.118465
+v 0.0436378 -0.0463348 -0.118465
+v 0.0436378 0.0463348 -0.118465
+v 0.0436378 -0.0463348 0.118465
+v 0.0436378 0.0463348 0.118465
+v -0.0436378 -0.0463348 0.118465
+v -0.0436378 0.0463348 0.118465
+v -0.0352394 -0.0529685 -0.118503
+v -0.0352394 0.0529685 -0.118503
+v 0.0352394 -0.0529685 -0.118503
+v 0.0352394 0.0529685 -0.118503
+v 0.0352394 -0.0529685 0.118503
+v 0.0352394 0.0529685 0.118503
+v -0.0352394 -0.0529685 0.118503
+v -0.0352394 0.0529685 0.118503
+v -0.0236801 -0.0590087 -0.118551
+v -0.0236801 0.0590087 -0.118551
+v 0.0236801 -0.0590087 -0.118551
+v 0.0236801 0.0590087 -0.118551
+v 0.0236801 -0.0590087 0.118551
+v 0.0236801 0.0590087 0.118551
+v -0.0236801 -0.0590087 0.118551
+v -0.0236801 0.0590087 0.118551
+v -0.0280336 -0.0570655 -0.118556
+v -0.0280336 0.0570655 -0.118556
+v 0.0280336 -0.0570655 -0.118556
+v 0.0280336 0.0570655 -0.118556
+v 0.0280336 -0.0570655 0.118556
+v 0.0280336 0.0570655 0.118556
+v -0.0280336 -0.0570655 0.118556
+v -0.0280336 0.0570655 0.118556
+v -0.05787 -0.0263271 -0.118559
+v -0.05787 0.0263271 -0.118559
+v 0.05787 -0.0263271 -0.118559
+v 0.05787 0.0263271 -0.118559
+v 0.05787 -0.0263271 0.118559
+v 0.05787 0.0263271 0.118559
+v -0.05787 -0.0263271 0.118559
+v -0.05787 0.0263271 0.118559
+v -0.0622472 -0.0126542 -0.118633
+v -0.0622472 0.0126542 -0.118633
+v 0.0622472 -0.0126542 -0.118633
+v 0.0622472 0.0126542 -0.118633
+v 0.0622472 -0.0126542 0.118633
+v 0.0622472 0.0126542 0.118633
+v -0.0622472 -0.0126542 0.118633
+v -0.0622472 0.0126542 0.118633
+v -0.0103376 -0.0626721 -0.118635
+v -0.0103376 0.0626721 -0.118635
+v 0.0103376 -0.0626721 -0.118635
+v 0.0103376 0.0626721 -0.118635
+v 0.0103376 -0.0626721 0.118635
+v 0.0103376 0.0626721 0.118635
+v -0.0103376 -0.0626721 0.118635
+v -0.0103376 0.0626721 0.118635
+v -0.0408426 -0.0486075 -0.118674
+v -0.0408426 0.0486075 -0.118674
+v 0.0408426 -0.0486075 -0.118674
+v 0.0408426 0.0486075 -0.118674
+v 0.0408426 -0.0486075 0.118674
+v 0.0408426 0.0486075 0.118674
+v -0.0408426 -0.0486075 0.118674
+v -0.0408426 0.0486075 0.118674
+v -0.0380385 -0.0508196 -0.118687
+v -0.0380385 0.0508196 -0.118687
+v 0.0380385 -0.0508196 -0.118687
+v 0.0380385 0.0508196 -0.118687
+v 0.0380385 -0.0508196 0.118687
+v 0.0380385 0.0508196 0.118687
+v -0.0380385 -0.0508196 0.118687
+v -0.0380385 0.0508196 0.118687
+v -0.0177516 -0.0608783 -0.118772
+v -0.0177516 0.0608783 -0.118772
+v 0.0177516 -0.0608783 -0.118772
+v 0.0177516 0.0608783 -0.118772
+v 0.0177516 -0.0608783 0.118772
+v 0.0177516 0.0608783 0.118772
+v -0.0177516 -0.0608783 0.118772
+v -0.0177516 0.0608783 0.118772
+v -0.0625604 -0.00985854 -0.118878
+v -0.0625604 0.00985854 -0.118878
+v 0.0625604 -0.00985854 -0.118878
+v 0.0625604 0.00985854 -0.118878
+v 0.0625604 -0.00985854 0.118878
+v 0.0625604 0.00985854 0.118878
+v -0.0625604 -0.00985854 0.118878
+v -0.0625604 0.00985854 0.118878
+v -0.00863402 -0.0626721 -0.118966
+v -0.00863402 0.0626721 -0.118966
+v 0.00863402 -0.0626721 -0.118966
+v 0.00863402 0.0626721 -0.118966
+v 0.00863402 -0.0626721 0.118966
+v 0.00863402 0.0626721 0.118966
+v -0.00863402 -0.0626721 0.118966
+v -0.00863402 0.0626721 0.118966
+v -0.0627955 -0.0070506 -0.119061
+v -0.0627955 0.0070506 -0.119061
+v 0.0627955 -0.0070506 -0.119061
+v 0.0627955 0.0070506 -0.119061
+v 0.0627955 -0.0070506 0.119061
+v 0.0627955 0.0070506 0.119061
+v -0.0627955 -0.0070506 0.119061
+v -0.0627955 0.0070506 0.119061
+v -0.0585457 -0.0236447 -0.119126
+v -0.0585457 0.0236447 -0.119126
+v 0.0585457 -0.0236447 -0.119126
+v 0.0585457 0.0236447 -0.119126
+v 0.0585457 -0.0236447 0.119126
+v 0.0585457 0.0236447 0.119126
+v -0.0585457 -0.0236447 0.119126
+v -0.0585457 0.0236447 0.119126
+v -0.0474602 -0.0416192 -0.119146
+v -0.0474602 0.0416192 -0.119146
+v 0.0474602 -0.0416192 -0.119146
+v 0.0474602 0.0416192 -0.119146
+v 0.0474602 -0.0416192 0.119146
+v 0.0474602 0.0416192 0.119146
+v -0.0474602 -0.0416192 0.119146
+v -0.0474602 0.0416192 0.119146
+v -0.0546201 -0.0315903 -0.11918
+v -0.0546201 0.0315903 -0.11918
+v 0.0546201 -0.0315903 -0.11918
+v 0.0546201 0.0315903 -0.11918
+v 0.0546201 -0.0315903 0.11918
+v 0.0546201 0.0315903 0.11918
+v -0.0546201 -0.0315903 0.11918
+v -0.0546201 0.0315903 0.11918
+v -0.0629525 -0.00423388 -0.119184
+v -0.0629525 0.00423388 -0.119184
+v 0.0629525 -0.00423388 -0.119184
+v 0.0629525 0.00423388 -0.119184
+v 0.0629525 -0.00423388 0.119184
+v 0.0629525 0.00423388 0.119184
+v -0.0629525 -0.00423388 0.119184
+v -0.0629525 0.00423388 0.119184
+v -0.0307598 -0.0550513 -0.119226
+v -0.0307598 0.0550513 -0.119226
+v 0.0307598 -0.0550513 -0.119226
+v 0.0307598 0.0550513 -0.119226
+v 0.0307598 -0.0550513 0.119226
+v 0.0307598 0.0550513 0.119226
+v -0.0307598 -0.0550513 0.119226
+v -0.0307598 0.0550513 0.119226
+v -0.00691987 -0.0626721 -0.119237
+v -0.00691987 0.0626721 -0.119237
+v 0.00691987 -0.0626721 -0.119237
+v 0.00691987 0.0626721 -0.119237
+v 0.00691987 -0.0626721 0.119237
+v 0.00691987 0.0626721 0.119237
+v -0.00691987 -0.0626721 0.119237
+v -0.00691987 0.0626721 0.119237
+v -0.063031 -0.00141188 -0.119245
+v -0.063031 0.00141188 -0.119245
+v 0.063031 -0.00141188 -0.119245
+v 0.063031 0.00141188 -0.119245
+v 0.063031 -0.00141188 0.119245
+v 0.063031 0.00141188 0.119245
+v -0.063031 -0.00141188 0.119245
+v -0.063031 0.00141188 0.119245
+v -0.0219712 -0.0590087 -0.119348
+v -0.0219712 0.0590087 -0.119348
+v 0.0219712 -0.0590087 -0.119348
+v 0.0219712 0.0590087 -0.119348
+v 0.0219712 -0.0590087 0.119348
+v 0.0219712 0.0590087 0.119348
+v -0.0219712 -0.0590087 0.119348
+v -0.0219712 0.0590087 0.119348
+v -0.0160386 -0.0608783 -0.119362
+v -0.0160386 0.0608783 -0.119362
+v 0.0160386 -0.0608783 -0.119362
+v 0.0160386 0.0608783 -0.119362
+v 0.0160386 -0.0608783 0.119362
+v 0.0160386 0.0608783 0.119362
+v -0.0160386 -0.0608783 0.119362
+v -0.0160386 0.0608783 0.119362
+v -0.0511359 -0.0366961 -0.119381
+v -0.0511359 0.0366961 -0.119381
+v 0.0511359 -0.0366961 -0.119381
+v 0.0511359 0.0366961 -0.119381
+v 0.0511359 -0.0366961 0.119381
+v 0.0511359 0.0366961 0.119381
+v -0.0511359 -0.0366961 0.119381
+v -0.0511359 0.0366961 0.119381
+v -0.00519729 -0.0626721 -0.119449
+v -0.00519729 0.0626721 -0.119449
+v 0.00519729 -0.0626721 -0.119449
+v 0.00519729 0.0626721 -0.119449
+v 0.00519729 -0.0626721 0.119449
+v 0.00519729 0.0626721 0.119449
+v -0.00519729 -0.0626721 0.119449
+v -0.00519729 0.0626721 0.119449
+v -0.0263219 -0.0570655 -0.119504
+v -0.0263219 0.0570655 -0.119504
+v 0.0263219 -0.0570655 -0.119504
+v 0.0263219 0.0570655 -0.119504
+v 0.0263219 -0.0570655 0.119504
+v 0.0263219 0.0570655 0.119504
+v -0.0263219 -0.0570655 0.119504
+v -0.0263219 0.0570655 0.119504
+v -0.00346838 -0.0626721 -0.1196
+v -0.00346838 0.0626721 -0.1196
+v 0.00346838 -0.0626721 -0.1196
+v 0.00346838 0.0626721 -0.1196
+v 0.00346838 -0.0626721 0.1196
+v 0.00346838 0.0626721 0.1196
+v -0.00346838 -0.0626721 0.1196
+v -0.00346838 0.0626721 0.1196
+v -0.0591485 -0.0209327 -0.119631
+v -0.0591485 0.0209327 -0.119631
+v 0.0591485 -0.0209327 -0.119631
+v 0.0591485 0.0209327 -0.119631
+v 0.0591485 -0.0209327 0.119631
+v 0.0591485 0.0209327 0.119631
+v -0.0591485 -0.0209327 0.119631
+v -0.0591485 0.0209327 0.119631
+v -0.0447048 -0.0440044 -0.11965
+v -0.0447048 0.0440044 -0.11965
+v 0.0447048 -0.0440044 -0.11965
+v 0.0447048 0.0440044 -0.11965
+v 0.0447048 -0.0440044 0.11965
+v 0.0447048 0.0440044 0.11965
+v -0.0447048 -0.0440044 0.11965
+v -0.0447048 0.0440044 0.11965
+v -0.00173525 -0.0626721 -0.119691
+v -0.00173525 0.0626721 -0.119691
+v 0.00173525 -0.0626721 -0.119691
+v 0.00173525 0.0626721 -0.119691
+v 0.00173525 -0.0626721 0.119691
+v 0.00173525 0.0626721 0.119691
+v -0.00173525 -0.0626721 0.119691
+v -0.00173525 0.0626721 0.119691
+v -0.0335252 -0.0529685 -0.119703
+v -0.0335252 0.0529685 -0.119703
+v 0.0335252 -0.0529685 -0.119703
+v 0.0335252 0.0529685 -0.119703
+v 0.0335252 -0.0529685 0.119703
+v 0.0335252 0.0529685 0.119703
+v -0.0335252 -0.0529685 0.119703
+v -0.0335252 0.0529685 0.119703
+v -9.13366e-18 -0.0626721 -0.119721
+v -9.13366e-18 0.0626721 -0.119721
+v 3.04455e-18 -0.0626721 0.119721
+v 3.04455e-18 0.0626721 0.119721
+v -0.0143062 -0.0608783 -0.119892
+v -0.0143062 0.0608783 -0.119892
+v 0.0143062 -0.0608783 -0.119892
+v 0.0143062 0.0608783 -0.119892
+v 0.0143062 -0.0608783 0.119892
+v 0.0143062 0.0608783 0.119892
+v -0.0143062 -0.0608783 0.119892
+v -0.0143062 0.0608783 0.119892
+v -0.0554146 -0.0289768 -0.119896
+v -0.0554146 0.0289768 -0.119896
+v 0.0554146 -0.0289768 -0.119896
+v 0.0554146 0.0289768 -0.119896
+v 0.0554146 -0.0289768 0.119896
+v 0.0554146 0.0289768 0.119896
+v -0.0554146 -0.0289768 0.119896
+v -0.0554146 0.0289768 0.119896
+v -0.0419198 -0.0463348 -0.119958
+v -0.0419198 0.0463348 -0.119958
+v 0.0419198 -0.0463348 -0.119958
+v 0.0419198 0.0463348 -0.119958
+v 0.0419198 -0.0463348 0.119958
+v 0.0419198 0.0463348 0.119958
+v -0.0419198 -0.0463348 0.119958
+v -0.0419198 0.0463348 0.119958
+v -0.0363162 -0.0508196 -0.119985
+v -0.0363162 0.0508196 -0.119985
+v 0.0363162 -0.0508196 -0.119985
+v 0.0363162 0.0508196 -0.119985
+v 0.0363162 -0.0508196 0.119985
+v 0.0363162 0.0508196 0.119985
+v -0.0363162 -0.0508196 0.119985
+v -0.0363162 0.0508196 0.119985
+v -0.039119 -0.0486075 -0.12007
+v -0.039119 0.0486075 -0.12007
+v 0.039119 -0.0486075 -0.12007
+v 0.039119 0.0486075 -0.12007
+v 0.039119 -0.0486075 0.12007
+v 0.039119 0.0486075 0.12007
+v -0.039119 -0.0486075 0.12007
+v -0.039119 0.0486075 0.12007
+v -0.0596775 -0.0181947 -0.120075
+v -0.0596775 0.0181947 -0.120075
+v 0.0596775 -0.0181947 -0.120075
+v 0.0596775 0.0181947 -0.120075
+v 0.0596775 -0.0181947 0.120075
+v 0.0596775 0.0181947 0.120075
+v -0.0596775 -0.0181947 0.120075
+v -0.0596775 0.0181947 0.120075
+v -0.0202356 -0.0590087 -0.120085
+v -0.0202356 0.0590087 -0.120085
+v 0.0202356 -0.0590087 -0.120085
+v 0.0202356 0.0590087 -0.120085
+v 0.0202356 -0.0590087 0.120085
+v 0.0202356 0.0590087 0.120085
+v -0.0202356 -0.0590087 0.120085
+v -0.0202356 0.0590087 0.120085
+v -0.0484509 -0.0391821 -0.120172
+v -0.0484509 0.0391821 -0.120172
+v 0.0484509 -0.0391821 -0.120172
+v 0.0484509 0.0391821 -0.120172
+v 0.0484509 -0.0391821 0.120172
+v 0.0484509 0.0391821 0.120172
+v -0.0484509 -0.0391821 0.120172
+v -0.0484509 0.0391821 0.120172
+v -0.0520356 -0.0341645 -0.12025
+v -0.0520356 0.0341645 -0.12025
+v 0.0520356 -0.0341645 -0.12025
+v 0.0520356 0.0341645 -0.12025
+v 0.0520356 -0.0341645 0.12025
+v 0.0520356 0.0341645 0.12025
+v -0.0520356 -0.0341645 0.12025
+v -0.0520356 0.0341645 0.12025
+v -0.0290231 -0.0550513 -0.120269
+v -0.0290231 0.0550513 -0.120269
+v 0.0290231 -0.0550513 -0.120269
+v 0.0290231 0.0550513 -0.120269
+v 0.0290231 -0.0550513 0.120269
+v 0.0290231 0.0550513 0.120269
+v -0.0290231 -0.0550513 0.120269
+v -0.0290231 0.0550513 0.120269
+v -0.0125563 -0.0608783 -0.12036
+v -0.0125563 0.0608783 -0.12036
+v 0.0125563 -0.0608783 -0.12036
+v 0.0125563 0.0608783 -0.12036
+v 0.0125563 -0.0608783 0.12036
+v 0.0125563 0.0608783 0.12036
+v -0.0125563 -0.0608783 0.12036
+v -0.0125563 0.0608783 0.12036
+v -0.0245782 -0.0570655 -0.120393
+v -0.0245782 0.0570655 -0.120393
+v 0.0245782 -0.0570655 -0.120393
+v 0.0245782 0.0570655 -0.120393
+v 0.0245782 -0.0570655 0.120393
+v 0.0245782 0.0570655 0.120393
+v -0.0245782 -0.0570655 0.120393
+v -0.0245782 0.0570655 0.120393
+v -0.0601322 -0.0154341 -0.120457
+v -0.0601322 0.0154341 -0.120457
+v 0.0601322 -0.0154341 -0.120457
+v 0.0601322 0.0154341 -0.120457
+v 0.0601322 -0.0154341 0.120457
+v 0.0601322 0.0154341 0.120457
+v -0.0601322 -0.0154341 0.120457
+v -0.0601322 0.0154341 0.120457
+v -0.0561401 -0.0263271 -0.120549
+v -0.0561401 0.0263271 -0.120549
+v 0.0561401 -0.0263271 -0.120549
+v 0.0561401 0.0263271 -0.120549
+v 0.0561401 -0.0263271 0.120549
+v 0.0561401 0.0263271 0.120549
+v -0.0561401 -0.0263271 0.120549
+v -0.0561401 0.0263271 0.120549
+v -0.0184753 -0.0590087 -0.120761
+v -0.0184753 0.0590087 -0.120761
+v 0.0184753 -0.0590087 -0.120761
+v 0.0184753 0.0590087 -0.120761
+v 0.0184753 -0.0590087 0.120761
+v 0.0184753 0.0590087 0.120761
+v -0.0184753 -0.0590087 0.120761
+v -0.0184753 0.0590087 0.120761
+v -0.0107911 -0.0608783 -0.120768
+v -0.0107911 0.0608783 -0.120768
+v 0.0107911 -0.0608783 -0.120768
+v 0.0107911 0.0608783 -0.120768
+v 0.0107911 -0.0608783 0.120768
+v 0.0107911 0.0608783 0.120768
+v -0.0107911 -0.0608783 0.120768
+v -0.0107911 0.0608783 0.120768
+v -0.0457161 -0.0416192 -0.120773
+v -0.0457161 0.0416192 -0.120773
+v 0.0457161 -0.0416192 -0.120773
+v 0.0457161 0.0416192 -0.120773
+v 0.0457161 -0.0416192 0.120773
+v 0.0457161 0.0416192 0.120773
+v -0.0457161 -0.0416192 0.120773
+v -0.0457161 0.0416192 0.120773
+v -0.060512 -0.0126542 -0.120776
+v -0.060512 0.0126542 -0.120776
+v 0.060512 -0.0126542 -0.120776
+v 0.060512 0.0126542 -0.120776
+v 0.060512 -0.0126542 0.120776
+v 0.060512 0.0126542 0.120776
+v -0.060512 -0.0126542 0.120776
+v -0.060512 0.0126542 0.120776
+v -0.0317702 -0.0529685 -0.120843
+v -0.0317702 0.0529685 -0.120843
+v 0.0317702 -0.0529685 -0.120843
+v 0.0317702 0.0529685 -0.120843
+v 0.0317702 -0.0529685 0.120843
+v 0.0317702 0.0529685 0.120843
+v -0.0317702 -0.0529685 0.120843
+v -0.0317702 0.0529685 0.120843
+v -0.0608164 -0.00985854 -0.121031
+v -0.0608164 0.00985854 -0.121031
+v 0.0608164 -0.00985854 -0.121031
+v 0.0608164 0.00985854 -0.121031
+v 0.0608164 -0.00985854 0.121031
+v 0.0608164 0.00985854 0.121031
+v -0.0608164 -0.00985854 0.121031
+v -0.0608164 0.00985854 0.121031
+v -0.0528705 -0.0315903 -0.121056
+v -0.0528705 0.0315903 -0.121056
+v 0.0528705 -0.0315903 -0.121056
+v 0.0528705 0.0315903 -0.121056
+v 0.0528705 -0.0315903 0.121056
+v 0.0528705 0.0315903 0.121056
+v -0.0528705 -0.0315903 0.121056
+v -0.0528705 0.0315903 0.121056
+v -0.00901271 -0.0608783 -0.121114
+v -0.00901271 0.0608783 -0.121114
+v 0.00901271 -0.0608783 -0.121114
+v 0.00901271 0.0608783 -0.121114
+v 0.00901271 -0.0608783 0.121114
+v 0.00901271 0.0608783 0.121114
+v -0.00901271 -0.0608783 0.121114
+v -0.00901271 0.0608783 0.121114
+v -0.0493813 -0.0366961 -0.121136
+v -0.0493813 0.0366961 -0.121136
+v 0.0493813 -0.0366961 -0.121136
+v 0.0493813 0.0366961 -0.121136
+v 0.0493813 -0.0366961 0.121136
+v 0.0493813 0.0366961 0.121136
+v -0.0493813 -0.0366961 0.121136
+v -0.0493813 0.0366961 0.121136
+v -0.0567956 -0.0236447 -0.121139
+v -0.0567956 0.0236447 -0.121139
+v 0.0567956 -0.0236447 -0.121139
+v 0.0567956 0.0236447 -0.121139
+v 0.0567956 -0.0236447 0.121139
+v 0.0567956 0.0236447 0.121139
+v -0.0567956 -0.0236447 0.121139
+v -0.0567956 0.0236447 0.121139
+v -0.0429448 -0.0440044 -0.12118
+v -0.0429448 0.0440044 -0.12118
+v 0.0429448 -0.0440044 -0.12118
+v 0.0429448 0.0440044 -0.12118
+v 0.0429448 -0.0440044 0.12118
+v 0.0429448 0.0440044 0.12118
+v -0.0429448 -0.0440044 0.12118
+v -0.0429448 0.0440044 0.12118
+v -0.0228046 -0.0570655 -0.12122
+v -0.0228046 0.0570655 -0.12122
+v 0.0228046 -0.0570655 -0.12122
+v 0.0228046 0.0570655 -0.12122
+v 0.0228046 -0.0570655 0.12122
+v 0.0228046 0.0570655 0.12122
+v -0.0228046 -0.0570655 0.12122
+v -0.0228046 0.0570655 0.12122
+v -0.0345496 -0.0508196 -0.121222
+v -0.0345496 0.0508196 -0.121222
+v 0.0345496 -0.0508196 -0.121222
+v 0.0345496 0.0508196 -0.121222
+v 0.0345496 -0.0508196 0.121222
+v 0.0345496 0.0508196 0.121222
+v -0.0345496 -0.0508196 0.121222
+v -0.0345496 0.0508196 0.121222
+v -0.0610451 -0.0070506 -0.121223
+v -0.0610451 0.0070506 -0.121223
+v 0.0610451 -0.0070506 -0.121223
+v 0.0610451 0.0070506 -0.121223
+v 0.0610451 -0.0070506 0.121223
+v 0.0610451 0.0070506 0.121223
+v -0.0610451 -0.0070506 0.121223
+v -0.0610451 0.0070506 0.121223
+v -0.027251 -0.0550513 -0.121252
+v -0.027251 0.0550513 -0.121252
+v 0.027251 -0.0550513 -0.121252
+v 0.027251 0.0550513 -0.121252
+v 0.027251 -0.0550513 0.121252
+v 0.027251 0.0550513 0.121252
+v -0.027251 -0.0550513 0.121252
+v -0.027251 0.0550513 0.121252
+v -0.0611977 -0.00423388 -0.121351
+v -0.0611977 0.00423388 -0.121351
+v 0.0611977 -0.00423388 -0.121351
+v 0.0611977 0.00423388 -0.121351
+v 0.0611977 -0.00423388 0.121351
+v 0.0611977 0.00423388 0.121351
+v -0.0611977 -0.00423388 0.121351
+v -0.0611977 0.00423388 0.121351
+v -0.0166926 -0.0590087 -0.121374
+v -0.0166926 0.0590087 -0.121374
+v 0.0166926 -0.0590087 -0.121374
+v 0.0166926 0.0590087 -0.121374
+v 0.0166926 -0.0590087 0.121374
+v 0.0166926 0.0590087 0.121374
+v -0.0166926 -0.0590087 0.121374
+v -0.0166926 0.0590087 0.121374
+v -0.0401508 -0.0463348 -0.121391
+v -0.0401508 0.0463348 -0.121391
+v 0.0401508 -0.0463348 -0.121391
+v 0.0401508 0.0463348 -0.121391
+v 0.0401508 -0.0463348 0.121391
+v 0.0401508 0.0463348 0.121391
+v -0.0401508 -0.0463348 0.121391
+v -0.0401508 0.0463348 0.121391
+v -0.00722338 -0.0608783 -0.121397
+v -0.00722338 0.0608783 -0.121397
+v 0.00722338 -0.0608783 -0.121397
+v 0.00722338 0.0608783 -0.121397
+v 0.00722338 -0.0608783 0.121397
+v 0.00722338 0.0608783 0.121397
+v -0.00722338 -0.0608783 0.121397
+v -0.00722338 0.0608783 0.121397
+v -0.0373478 -0.0486075 -0.121405
+v -0.0373478 0.0486075 -0.121405
+v 0.0373478 -0.0486075 -0.121405
+v 0.0373478 0.0486075 -0.121405
+v 0.0373478 -0.0486075 0.121405
+v 0.0373478 0.0486075 0.121405
+v -0.0373478 -0.0486075 0.121405
+v -0.0373478 0.0486075 0.121405
+v -0.061274 -0.00141188 -0.121415
+v -0.061274 0.00141188 -0.121415
+v 0.061274 -0.00141188 -0.121415
+v 0.061274 0.00141188 -0.121415
+v 0.061274 -0.00141188 0.121415
+v 0.061274 0.00141188 0.121415
+v -0.061274 -0.00141188 0.121415
+v -0.061274 0.00141188 0.121415
+v -0.00542525 -0.0608783 -0.121618
+v -0.00542525 0.0608783 -0.121618
+v 0.00542525 -0.0608783 -0.121618
+v 0.00542525 0.0608783 -0.121618
+v 0.00542525 -0.0608783 0.121618
+v 0.00542525 0.0608783 0.121618
+v -0.00542525 -0.0608783 0.121618
+v -0.00542525 0.0608783 0.121618
+v -0.0573803 -0.0209327 -0.121665
+v -0.0573803 0.0209327 -0.121665
+v 0.0573803 -0.0209327 -0.121665
+v 0.0573803 0.0209327 -0.121665
+v 0.0573803 -0.0209327 0.121665
+v 0.0573803 0.0209327 0.121665
+v -0.0573803 -0.0209327 0.121665
+v -0.0573803 0.0209327 0.121665
+v -0.00362051 -0.0608783 -0.121776
+v -0.00362051 0.0608783 -0.121776
+v 0.00362051 -0.0608783 -0.121776
+v 0.00362051 0.0608783 -0.121776
+v 0.00362051 -0.0608783 0.121776
+v 0.00362051 0.0608783 0.121776
+v -0.00362051 -0.0608783 0.121776
+v -0.00362051 0.0608783 0.121776
+v -0.0536395 -0.0289768 -0.121799
+v -0.0536395 0.0289768 -0.121799
+v 0.0536395 -0.0289768 -0.121799
+v 0.0536395 0.0289768 -0.121799
+v 0.0536395 -0.0289768 0.121799
+v 0.0536395 0.0289768 0.121799
+v -0.0536395 -0.0289768 0.121799
+v -0.0536395 0.0289768 0.121799
+v -0.0466704 -0.0391821 -0.121833
+v -0.0466704 0.0391821 -0.121833
+v 0.0466704 -0.0391821 -0.121833
+v 0.0466704 0.0391821 -0.121833
+v 0.0466704 -0.0391821 0.121833
+v 0.0466704 0.0391821 0.121833
+v -0.0466704 -0.0391821 0.121833
+v -0.0466704 0.0391821 0.121833
+v -0.00181136 -0.0608783 -0.121871
+v -0.00181136 0.0608783 -0.121871
+v 0.00181136 -0.0608783 -0.121871
+v 0.00181136 0.0608783 -0.121871
+v 0.00181136 -0.0608783 0.121871
+v 0.00181136 0.0608783 0.121871
+v -0.00181136 -0.0608783 0.121871
+v -0.00181136 0.0608783 0.121871
+v -9.53427e-18 -0.0608783 -0.121902
+v -9.53427e-18 0.0608783 -0.121902
+v 3.17809e-18 -0.0608783 0.121902
+v 3.17809e-18 0.0608783 0.121902
+v -0.0299764 -0.0529685 -0.121921
+v -0.0299764 0.0529685 -0.121921
+v 0.0299764 -0.0529685 -0.121921
+v 0.0299764 0.0529685 -0.121921
+v 0.0299764 -0.0529685 0.121921
+v 0.0299764 0.0529685 0.121921
+v -0.0299764 -0.0529685 0.121921
+v -0.0299764 0.0529685 0.121921
+v -0.0148895 -0.0590087 -0.121926
+v -0.0148895 0.0590087 -0.121926
+v 0.0148895 -0.0590087 -0.121926
+v 0.0148895 0.0590087 -0.121926
+v 0.0148895 -0.0590087 0.121926
+v 0.0148895 0.0590087 0.121926
+v -0.0148895 -0.0590087 0.121926
+v -0.0148895 0.0590087 0.121926
+v -0.0210031 -0.0570655 -0.121985
+v -0.0210031 0.0570655 -0.121985
+v 0.0210031 -0.0570655 -0.121985
+v 0.0210031 0.0570655 -0.121985
+v 0.0210031 -0.0570655 0.121985
+v 0.0210031 0.0570655 0.121985
+v -0.0210031 -0.0570655 0.121985
+v -0.0210031 0.0570655 0.121985
+v -0.0502502 -0.0341645 -0.122036
+v -0.0502502 0.0341645 -0.122036
+v 0.0502502 -0.0341645 -0.122036
+v 0.0502502 0.0341645 -0.122036
+v 0.0502502 -0.0341645 0.122036
+v 0.0502502 0.0341645 0.122036
+v -0.0502502 -0.0341645 0.122036
+v -0.0502502 0.0341645 0.122036
+v -0.0578936 -0.0181947 -0.122128
+v -0.0578936 0.0181947 -0.122128
+v 0.0578936 -0.0181947 -0.122128
+v 0.0578936 0.0181947 -0.122128
+v 0.0578936 -0.0181947 0.122128
+v 0.0578936 0.0181947 0.122128
+v -0.0578936 -0.0181947 0.122128
+v -0.0578936 0.0181947 0.122128
+v -0.0254458 -0.0550513 -0.122172
+v -0.0254458 0.0550513 -0.122172
+v 0.0254458 -0.0550513 -0.122172
+v 0.0254458 0.0550513 -0.122172
+v 0.0254458 -0.0550513 0.122172
+v 0.0254458 0.0550513 0.122172
+v -0.0254458 -0.0550513 0.122172
+v -0.0254458 0.0550513 0.122172
+v -0.0439163 -0.0416192 -0.122337
+v -0.0439163 0.0416192 -0.122337
+v 0.0439163 -0.0416192 -0.122337
+v 0.0439163 0.0416192 -0.122337
+v 0.0439163 -0.0416192 0.122337
+v 0.0439163 0.0416192 0.122337
+v -0.0439163 -0.0416192 0.122337
+v -0.0439163 0.0416192 0.122337
+v -0.032741 -0.0508196 -0.122396
+v -0.032741 0.0508196 -0.122396
+v 0.032741 -0.0508196 -0.122396
+v 0.032741 0.0508196 -0.122396
+v 0.032741 -0.0508196 0.122396
+v 0.032741 0.0508196 0.122396
+v -0.032741 -0.0508196 0.122396
+v -0.032741 0.0508196 0.122396
+v -0.0130682 -0.0590087 -0.122414
+v -0.0130682 0.0590087 -0.122414
+v 0.0130682 -0.0590087 -0.122414
+v 0.0130682 0.0590087 -0.122414
+v 0.0130682 -0.0590087 0.122414
+v 0.0130682 0.0590087 0.122414
+v -0.0130682 -0.0590087 0.122414
+v -0.0130682 0.0590087 0.122414
+v -0.0543417 -0.0263271 -0.122477
+v -0.0543417 0.0263271 -0.122477
+v 0.0543417 -0.0263271 -0.122477
+v 0.0543417 0.0263271 -0.122477
+v 0.0543417 -0.0263271 0.122477
+v 0.0543417 0.0263271 0.122477
+v -0.0543417 -0.0263271 0.122477
+v -0.0543417 0.0263271 0.122477
+v -0.0583347 -0.0154341 -0.122525
+v -0.0583347 0.0154341 -0.122525
+v 0.0583347 -0.0154341 -0.122525
+v 0.0583347 0.0154341 -0.122525
+v 0.0583347 -0.0154341 0.122525
+v 0.0583347 0.0154341 0.122525
+v -0.0583347 -0.0154341 0.122525
+v -0.0583347 0.0154341 0.122525
+v -0.0411325 -0.0440044 -0.122647
+v -0.0411325 0.0440044 -0.122647
+v 0.0411325 -0.0440044 -0.122647
+v 0.0411325 0.0440044 -0.122647
+v 0.0411325 -0.0440044 0.122647
+v 0.0411325 0.0440044 0.122647
+v -0.0411325 -0.0440044 0.122647
+v -0.0411325 0.0440044 0.122647
+v -0.035531 -0.0486075 -0.122677
+v -0.035531 0.0486075 -0.122677
+v 0.035531 -0.0486075 -0.122677
+v 0.035531 0.0486075 -0.122677
+v 0.035531 -0.0486075 0.122677
+v 0.035531 0.0486075 0.122677
+v -0.035531 -0.0486075 0.122677
+v -0.035531 0.0486075 0.122677
+v -0.0191761 -0.0570655 -0.122686
+v -0.0191761 0.0570655 -0.122686
+v 0.0191761 -0.0570655 -0.122686
+v 0.0191761 0.0570655 -0.122686
+v 0.0191761 -0.0570655 0.122686
+v 0.0191761 0.0570655 0.122686
+v -0.0191761 -0.0570655 0.122686
+v -0.0191761 0.0570655 0.122686
+v -0.0383328 -0.0463348 -0.122761
+v -0.0383328 0.0463348 -0.122761
+v 0.0383328 -0.0463348 -0.122761
+v 0.0383328 0.0463348 -0.122761
+v 0.0383328 -0.0463348 0.122761
+v 0.0383328 0.0463348 0.122761
+v -0.0383328 -0.0463348 0.122761
+v -0.0383328 0.0463348 0.122761
+v -0.0475666 -0.0366961 -0.122828
+v -0.0475666 0.0366961 -0.122828
+v 0.0475666 -0.0366961 -0.122828
+v 0.0475666 0.0366961 -0.122828
+v 0.0475666 -0.0366961 0.122828
+v 0.0475666 0.0366961 0.122828
+v -0.0475666 -0.0366961 0.122828
+v -0.0475666 0.0366961 0.122828
+v -0.011231 -0.0590087 -0.122838
+v -0.011231 0.0590087 -0.122838
+v 0.011231 -0.0590087 -0.122838
+v 0.011231 0.0590087 -0.122838
+v 0.011231 -0.0590087 0.122838
+v 0.011231 0.0590087 0.122838
+v -0.011231 -0.0590087 0.122838
+v -0.011231 0.0590087 0.122838
+v -0.0587031 -0.0126542 -0.122857
+v -0.0587031 0.0126542 -0.122857
+v 0.0587031 -0.0126542 -0.122857
+v 0.0587031 0.0126542 -0.122857
+v 0.0587031 -0.0126542 0.122857
+v 0.0587031 0.0126542 0.122857
+v -0.0587031 -0.0126542 0.122857
+v -0.0587031 0.0126542 0.122857
+v -0.0510565 -0.0315903 -0.122871
+v -0.0510565 0.0315903 -0.122871
+v 0.0510565 -0.0315903 -0.122871
+v 0.0510565 0.0315903 -0.122871
+v 0.0510565 -0.0315903 0.122871
+v 0.0510565 0.0315903 0.122871
+v -0.0510565 -0.0315903 0.122871
+v -0.0510565 0.0315903 0.122871
+v -0.0281461 -0.0529685 -0.122935
+v -0.0281461 0.0529685 -0.122935
+v 0.0281461 -0.0529685 -0.122935
+v 0.0281461 0.0529685 -0.122935
+v 0.0281461 -0.0529685 0.122935
+v 0.0281461 0.0529685 0.122935
+v -0.0281461 -0.0529685 0.122935
+v -0.0281461 0.0529685 0.122935
+v -0.0236095 -0.0550513 -0.123028
+v -0.0236095 0.0550513 -0.123028
+v 0.0236095 -0.0550513 -0.123028
+v 0.0236095 0.0550513 -0.123028
+v 0.0236095 -0.0550513 0.123028
+v 0.0236095 0.0550513 0.123028
+v -0.0236095 -0.0550513 0.123028
+v -0.0236095 0.0550513 0.123028
+v -0.0549762 -0.0236447 -0.12309
+v -0.0549762 0.0236447 -0.12309
+v 0.0549762 -0.0236447 -0.12309
+v 0.0549762 0.0236447 -0.12309
+v 0.0549762 -0.0236447 0.12309
+v 0.0549762 0.0236447 0.12309
+v -0.0549762 -0.0236447 0.12309
+v -0.0549762 0.0236447 0.12309
+v -0.0589984 -0.00985854 -0.123122
+v -0.0589984 0.00985854 -0.123122
+v 0.0589984 -0.00985854 -0.123122
+v 0.0589984 0.00985854 -0.123122
+v 0.0589984 -0.00985854 0.123122
+v 0.0589984 0.00985854 0.123122
+v -0.0589984 -0.00985854 0.123122
+v -0.0589984 0.00985854 0.123122
+v -0.00938018 -0.0590087 -0.123198
+v -0.00938018 0.0590087 -0.123198
+v 0.00938018 -0.0590087 -0.123198
+v 0.00938018 0.0590087 -0.123198
+v 0.00938018 -0.0590087 0.123198
+v 0.00938018 0.0590087 0.123198
+v -0.00938018 -0.0590087 0.123198
+v -0.00938018 0.0590087 0.123198
+v -0.0592202 -0.0070506 -0.123322
+v -0.0592202 0.0070506 -0.123322
+v 0.0592202 -0.0070506 -0.123322
+v 0.0592202 0.0070506 -0.123322
+v 0.0592202 -0.0070506 0.123322
+v 0.0592202 0.0070506 0.123322
+v -0.0592202 -0.0070506 0.123322
+v -0.0592202 0.0070506 0.123322
+v -0.0173257 -0.0570655 -0.123323
+v -0.0173257 0.0570655 -0.123323
+v 0.0173257 -0.0570655 -0.123323
+v 0.0173257 0.0570655 -0.123323
+v 0.0173257 -0.0570655 0.123323
+v 0.0173257 0.0570655 0.123323
+v -0.0173257 -0.0570655 0.123323
+v -0.0173257 0.0570655 0.123323
+v -0.0448331 -0.0391821 -0.12343
+v -0.0448331 0.0391821 -0.12343
+v 0.0448331 -0.0391821 -0.12343
+v 0.0448331 0.0391821 -0.12343
+v 0.0448331 -0.0391821 0.12343
+v 0.0448331 0.0391821 0.12343
+v -0.0448331 -0.0391821 0.12343
+v -0.0448331 0.0391821 0.12343
+v -0.0593683 -0.00423388 -0.123455
+v -0.0593683 0.00423388 -0.123455
+v 0.0593683 -0.00423388 -0.123455
+v 0.0593683 0.00423388 -0.123455
+v 0.0593683 -0.00423388 0.123455
+v 0.0593683 0.00423388 0.123455
+v -0.0593683 -0.00423388 0.123455
+v -0.0593683 0.00423388 0.123455
+v -0.00751789 -0.0590087 -0.123493
+v -0.00751789 0.0590087 -0.123493
+v 0.00751789 -0.0590087 -0.123493
+v 0.00751789 0.0590087 -0.123493
+v 0.00751789 -0.0590087 0.123493
+v 0.00751789 0.0590087 0.123493
+v -0.00751789 -0.0590087 0.123493
+v -0.00751789 0.0590087 0.123493
+v -0.0308924 -0.0508196 -0.123507
+v -0.0308924 0.0508196 -0.123507
+v 0.0308924 -0.0508196 -0.123507
+v 0.0308924 0.0508196 -0.123507
+v 0.0308924 -0.0508196 0.123507
+v 0.0308924 0.0508196 0.123507
+v -0.0308924 -0.0508196 0.123507
+v -0.0308924 0.0508196 0.123507
+v -0.0594423 -0.00141188 -0.123522
+v -0.0594423 0.00141188 -0.123522
+v 0.0594423 -0.00141188 -0.123522
+v 0.0594423 0.00141188 -0.123522
+v 0.0594423 -0.00141188 0.123522
+v 0.0594423 0.00141188 0.123522
+v -0.0594423 -0.00141188 0.123522
+v -0.0594423 0.00141188 0.123522
+v -0.0555423 -0.0209327 -0.123637
+v -0.0555423 0.0209327 -0.123637
+v 0.0555423 -0.0209327 -0.123637
+v 0.0555423 0.0209327 -0.123637
+v 0.0555423 -0.0209327 0.123637
+v 0.0555423 0.0209327 0.123637
+v -0.0555423 -0.0209327 0.123637
+v -0.0555423 0.0209327 0.123637
+v -0.0517991 -0.0289768 -0.12364
+v -0.0517991 0.0289768 -0.12364
+v 0.0517991 -0.0289768 -0.12364
+v 0.0517991 0.0289768 -0.12364
+v 0.0517991 -0.0289768 0.12364
+v 0.0517991 0.0289768 0.12364
+v -0.0517991 -0.0289768 0.12364
+v -0.0517991 0.0289768 0.12364
+v -0.00564645 -0.0590087 -0.123722
+v -0.00564645 0.0590087 -0.123722
+v 0.00564645 -0.0590087 -0.123722
+v 0.00564645 0.0590087 -0.123722
+v 0.00564645 -0.0590087 0.123722
+v 0.00564645 0.0590087 0.123722
+v -0.00564645 -0.0590087 0.123722
+v -0.00564645 0.0590087 0.123722
+v -0.0484036 -0.0341645 -0.123758
+v -0.0484036 0.0341645 -0.123758
+v 0.0484036 -0.0341645 -0.123758
+v 0.0484036 0.0341645 -0.123758
+v 0.0484036 -0.0341645 0.123758
+v 0.0484036 0.0341645 0.123758
+v -0.0484036 -0.0341645 0.123758
+v -0.0484036 0.0341645 0.123758
+v -0.0217445 -0.0550513 -0.123819
+v -0.0217445 0.0550513 -0.123819
+v 0.0217445 -0.0550513 -0.123819
+v 0.0217445 0.0550513 -0.123819
+v 0.0217445 -0.0550513 0.123819
+v 0.0217445 0.0550513 0.123819
+v -0.0217445 -0.0550513 0.123819
+v -0.0217445 0.0550513 0.123819
+v -0.042063 -0.0416192 -0.123838
+v -0.042063 0.0416192 -0.123838
+v 0.042063 -0.0416192 -0.123838
+v 0.042063 0.0416192 -0.123838
+v 0.042063 -0.0416192 0.123838
+v 0.042063 0.0416192 0.123838
+v -0.042063 -0.0416192 0.123838
+v -0.042063 0.0416192 0.123838
+v -0.0262816 -0.0529685 -0.123885
+v -0.0262816 0.0529685 -0.123885
+v 0.0262816 -0.0529685 -0.123885
+v 0.0262816 0.0529685 -0.123885
+v 0.0262816 -0.0529685 0.123885
+v 0.0262816 0.0529685 0.123885
+v -0.0262816 -0.0529685 0.123885
+v -0.0262816 0.0529685 0.123885
+v -0.033671 -0.0486075 -0.123885
+v -0.033671 0.0486075 -0.123885
+v 0.033671 -0.0486075 -0.123885
+v 0.033671 0.0486075 -0.123885
+v 0.033671 -0.0486075 0.123885
+v 0.033671 0.0486075 0.123885
+v -0.033671 -0.0486075 0.123885
+v -0.033671 0.0486075 0.123885
+v -0.00376813 -0.0590087 -0.123887
+v -0.00376813 0.0590087 -0.123887
+v 0.00376813 -0.0590087 -0.123887
+v 0.00376813 0.0590087 -0.123887
+v 0.00376813 -0.0590087 0.123887
+v 0.00376813 0.0590087 0.123887
+v -0.00376813 -0.0590087 0.123887
+v -0.00376813 0.0590087 0.123887
+v -0.0154542 -0.0570655 -0.123895
+v -0.0154542 0.0570655 -0.123895
+v 0.0154542 -0.0570655 -0.123895
+v 0.0154542 0.0570655 -0.123895
+v 0.0154542 -0.0570655 0.123895
+v 0.0154542 0.0570655 0.123895
+v -0.0154542 -0.0570655 0.123895
+v -0.0154542 0.0570655 0.123895
+v -0.00188521 -0.0590087 -0.123985
+v -0.00188521 0.0590087 -0.123985
+v 0.00188521 -0.0590087 -0.123985
+v 0.00188521 0.0590087 -0.123985
+v 0.00188521 -0.0590087 0.123985
+v 0.00188521 0.0590087 0.123985
+v -0.00188521 -0.0590087 0.123985
+v -0.00188521 0.0590087 0.123985
+v -9.923e-18 -0.0590087 -0.124018
+v -9.923e-18 0.0590087 -0.124018
+v 3.30767e-18 -0.0590087 0.124018
+v 3.30767e-18 0.0590087 0.124018
+v -0.0392701 -0.0440044 -0.124051
+v -0.0392701 0.0440044 -0.124051
+v 0.0392701 -0.0440044 -0.124051
+v 0.0392701 0.0440044 -0.124051
+v 0.0392701 -0.0440044 0.124051
+v 0.0392701 0.0440044 0.124051
+v -0.0392701 -0.0440044 0.124051
+v -0.0392701 0.0440044 0.124051
+v -0.0364681 -0.0463348 -0.124066
+v -0.0364681 0.0463348 -0.124066
+v 0.0364681 -0.0463348 -0.124066
+v 0.0364681 0.0463348 -0.124066
+v 0.0364681 -0.0463348 0.124066
+v 0.0364681 0.0463348 0.124066
+v -0.0364681 -0.0463348 0.124066
+v -0.0364681 0.0463348 0.124066
+v -0.0560391 -0.0181947 -0.124116
+v -0.0560391 0.0181947 -0.124116
+v 0.0560391 -0.0181947 -0.124116
+v 0.0560391 0.0181947 -0.124116
+v 0.0560391 -0.0181947 0.124116
+v 0.0560391 0.0181947 0.124116
+v -0.0560391 -0.0181947 0.124116
+v -0.0560391 0.0181947 0.124116
+v -0.0524772 -0.0263271 -0.124342
+v -0.0524772 0.0263271 -0.124342
+v 0.0524772 -0.0263271 -0.124342
+v 0.0524772 0.0263271 -0.124342
+v 0.0524772 -0.0263271 0.124342
+v 0.0524772 0.0263271 0.124342
+v -0.0524772 -0.0263271 0.124342
+v -0.0524772 0.0263271 0.124342
+v -0.0135639 -0.0570655 -0.124402
+v -0.0135639 0.0570655 -0.124402
+v 0.0135639 -0.0570655 -0.124402
+v 0.0135639 0.0570655 -0.124402
+v 0.0135639 -0.0570655 0.124402
+v 0.0135639 0.0570655 0.124402
+v -0.0135639 -0.0570655 0.124402
+v -0.0135639 0.0570655 0.124402
+v -0.045694 -0.0366961 -0.124456
+v -0.045694 0.0366961 -0.124456
+v 0.045694 -0.0366961 -0.124456
+v 0.045694 0.0366961 -0.124456
+v 0.045694 -0.0366961 0.124456
+v 0.045694 0.0366961 0.124456
+v -0.045694 -0.0366961 0.124456
+v -0.045694 0.0366961 0.124456
+v -0.0564661 -0.0154341 -0.124529
+v -0.0564661 0.0154341 -0.124529
+v 0.0564661 -0.0154341 -0.124529
+v 0.0564661 0.0154341 -0.124529
+v 0.0564661 -0.0154341 0.124529
+v 0.0564661 0.0154341 0.124529
+v -0.0564661 -0.0154341 0.124529
+v -0.0564661 0.0154341 0.124529
+v -0.019853 -0.0550513 -0.124546
+v -0.019853 0.0550513 -0.124546
+v 0.019853 -0.0550513 -0.124546
+v 0.019853 0.0550513 -0.124546
+v 0.019853 -0.0550513 0.124546
+v 0.019853 0.0550513 0.124546
+v -0.019853 -0.0550513 0.124546
+v -0.019853 0.0550513 0.124546
+v -0.0290062 -0.0508196 -0.124553
+v -0.0290062 0.0508196 -0.124553
+v 0.0290062 -0.0508196 -0.124553
+v 0.0290062 0.0508196 -0.124553
+v 0.0290062 -0.0508196 0.124553
+v 0.0290062 0.0508196 0.124553
+v -0.0290062 -0.0508196 0.124553
+v -0.0290062 0.0508196 0.124553
+v -0.0491802 -0.0315903 -0.12462
+v -0.0491802 0.0315903 -0.12462
+v 0.0491802 -0.0315903 -0.12462
+v 0.0491802 0.0315903 -0.12462
+v 0.0491802 -0.0315903 0.12462
+v 0.0491802 0.0315903 0.12462
+v -0.0491802 -0.0315903 0.12462
+v -0.0491802 0.0315903 0.12462
+v -0.024385 -0.0529685 -0.12477
+v -0.024385 0.0529685 -0.12477
+v 0.024385 -0.0529685 -0.12477
+v 0.024385 0.0529685 -0.12477
+v 0.024385 -0.0529685 0.12477
+v 0.024385 0.0529685 0.12477
+v -0.024385 -0.0529685 0.12477
+v -0.024385 0.0529685 0.12477
+v -0.011657 -0.0570655 -0.124842
+v -0.011657 0.0570655 -0.124842
+v 0.011657 -0.0570655 -0.124842
+v 0.011657 0.0570655 -0.124842
+v 0.011657 -0.0570655 0.124842
+v 0.011657 0.0570655 0.124842
+v -0.011657 -0.0570655 0.124842
+v -0.011657 0.0570655 0.124842
+v -0.0568227 -0.0126542 -0.124873
+v -0.0568227 0.0126542 -0.124873
+v 0.0568227 -0.0126542 -0.124873
+v 0.0568227 0.0126542 -0.124873
+v 0.0568227 -0.0126542 0.124873
+v 0.0568227 0.0126542 0.124873
+v -0.0568227 -0.0126542 0.124873
+v -0.0568227 0.0126542 0.124873
+v -0.0429411 -0.0391821 -0.124962
+v -0.0429411 0.0391821 -0.124962
+v 0.0429411 -0.0391821 -0.124962
+v 0.0429411 0.0391821 -0.124962
+v 0.0429411 -0.0391821 0.124962
+v 0.0429411 0.0391821 0.124962
+v -0.0429411 -0.0391821 0.124962
+v -0.0429411 0.0391821 0.124962
+v -0.0530899 -0.0236447 -0.124976
+v -0.0530899 0.0236447 -0.124976
+v 0.0530899 -0.0236447 -0.124976
+v 0.0530899 0.0236447 -0.124976
+v 0.0530899 -0.0236447 0.124976
+v 0.0530899 0.0236447 0.124976
+v -0.0530899 -0.0236447 0.124976
+v -0.0530899 0.0236447 0.124976
+v -0.0317699 -0.0486075 -0.125027
+v -0.0317699 0.0486075 -0.125027
+v 0.0317699 -0.0486075 -0.125027
+v 0.0317699 0.0486075 -0.125027
+v 0.0317699 -0.0486075 0.125027
+v 0.0317699 0.0486075 0.125027
+v -0.0317699 -0.0486075 0.125027
+v -0.0317699 0.0486075 0.125027
+v -0.0571086 -0.00985854 -0.125149
+v -0.0571086 0.00985854 -0.125149
+v 0.0571086 -0.00985854 -0.125149
+v 0.0571086 0.00985854 -0.125149
+v 0.0571086 -0.00985854 0.125149
+v 0.0571086 0.00985854 0.125149
+v -0.0571086 -0.00985854 0.125149
+v -0.0571086 0.00985854 0.125149
+v -0.0179372 -0.0550513 -0.125205
+v -0.0179372 0.0550513 -0.125205
+v 0.0179372 -0.0550513 -0.125205
+v 0.0179372 0.0550513 -0.125205
+v 0.0179372 -0.0550513 0.125205
+v 0.0179372 0.0550513 0.125205
+v -0.0179372 -0.0550513 0.125205
+v -0.0179372 0.0550513 0.125205
+v -0.00973596 -0.0570655 -0.125215
+v -0.00973596 0.0570655 -0.125215
+v 0.00973596 -0.0570655 -0.125215
+v 0.00973596 0.0570655 -0.125215
+v 0.00973596 -0.0570655 0.125215
+v 0.00973596 0.0570655 0.125215
+v -0.00973596 -0.0570655 0.125215
+v -0.00973596 0.0570655 0.125215
+v -0.0401585 -0.0416192 -0.125273
+v -0.0401585 0.0416192 -0.125273
+v 0.0401585 -0.0416192 -0.125273
+v 0.0401585 0.0416192 -0.125273
+v 0.0401585 -0.0416192 0.125273
+v 0.0401585 0.0416192 0.125273
+v -0.0401585 -0.0416192 0.125273
+v -0.0401585 0.0416192 0.125273
+v -0.034559 -0.0463348 -0.125306
+v -0.034559 0.0463348 -0.125306
+v 0.034559 -0.0463348 -0.125306
+v 0.034559 0.0463348 -0.125306
+v 0.034559 -0.0463348 0.125306
+v 0.034559 0.0463348 0.125306
+v -0.034559 -0.0463348 0.125306
+v -0.034559 0.0463348 0.125306
+v -0.0573233 -0.0070506 -0.125356
+v -0.0573233 0.0070506 -0.125356
+v 0.0573233 -0.0070506 -0.125356
+v 0.0573233 0.0070506 -0.125356
+v 0.0573233 -0.0070506 0.125356
+v 0.0573233 0.0070506 0.125356
+v -0.0573233 -0.0070506 0.125356
+v -0.0573233 0.0070506 0.125356
+v -0.0373598 -0.0440044 -0.125388
+v -0.0373598 0.0440044 -0.125388
+v 0.0373598 -0.0440044 -0.125388
+v 0.0373598 0.0440044 -0.125388
+v 0.0373598 -0.0440044 0.125388
+v 0.0373598 0.0440044 0.125388
+v -0.0373598 -0.0440044 0.125388
+v -0.0373598 0.0440044 0.125388
+v -0.046498 -0.0341645 -0.125414
+v -0.046498 0.0341645 -0.125414
+v 0.046498 -0.0341645 -0.125414
+v 0.046498 0.0341645 -0.125414
+v 0.046498 -0.0341645 0.125414
+v 0.046498 0.0341645 0.125414
+v -0.046498 -0.0341645 0.125414
+v -0.046498 0.0341645 0.125414
+v -0.0498956 -0.0289768 -0.125415
+v -0.0498956 0.0289768 -0.125415
+v 0.0498956 -0.0289768 -0.125415
+v 0.0498956 0.0289768 -0.125415
+v 0.0498956 -0.0289768 0.125415
+v 0.0498956 0.0289768 0.125415
+v -0.0498956 -0.0289768 0.125415
+v -0.0498956 0.0289768 0.125415
+v -0.0574665 -0.00423388 -0.125495
+v -0.0574665 0.00423388 -0.125495
+v 0.0574665 -0.00423388 -0.125495
+v 0.0574665 0.00423388 -0.125495
+v 0.0574665 -0.00423388 0.125495
+v 0.0574665 0.00423388 0.125495
+v -0.0574665 -0.00423388 0.125495
+v -0.0574665 0.00423388 0.125495
+v -0.00780304 -0.0570655 -0.125522
+v -0.00780304 0.0570655 -0.125522
+v 0.00780304 -0.0570655 -0.125522
+v 0.00780304 0.0570655 -0.125522
+v 0.00780304 -0.0570655 0.125522
+v 0.00780304 0.0570655 0.125522
+v -0.00780304 -0.0570655 0.125522
+v -0.00780304 0.0570655 0.125522
+v -0.0270847 -0.0508196 -0.125532
+v -0.0270847 0.0508196 -0.125532
+v 0.0270847 -0.0508196 -0.125532
+v 0.0270847 0.0508196 -0.125532
+v 0.0270847 -0.0508196 0.125532
+v 0.0270847 0.0508196 0.125532
+v -0.0270847 -0.0508196 0.125532
+v -0.0270847 0.0508196 0.125532
+v -0.0536365 -0.0209327 -0.125542
+v -0.0536365 0.0209327 -0.125542
+v 0.0536365 -0.0209327 -0.125542
+v 0.0536365 0.0209327 -0.125542
+v 0.0536365 -0.0209327 0.125542
+v 0.0536365 0.0209327 0.125542
+v -0.0536365 -0.0209327 0.125542
+v -0.0536365 0.0209327 0.125542
+v -0.0575382 -0.00141188 -0.125564
+v -0.0575382 0.00141188 -0.125564
+v 0.0575382 -0.00141188 -0.125564
+v 0.0575382 0.00141188 -0.125564
+v 0.0575382 -0.00141188 0.125564
+v 0.0575382 0.00141188 0.125564
+v -0.0575382 -0.00141188 0.125564
+v -0.0575382 0.00141188 0.125564
+v -0.0224587 -0.0529685 -0.125587
+v -0.0224587 0.0529685 -0.125587
+v 0.0224587 -0.0529685 -0.125587
+v 0.0224587 0.0529685 -0.125587
+v 0.0224587 -0.0529685 0.125587
+v 0.0224587 0.0529685 0.125587
+v -0.0224587 -0.0529685 0.125587
+v -0.0224587 0.0529685 0.125587
+v -0.00586061 -0.0570655 -0.12576
+v -0.00586061 0.0570655 -0.12576
+v 0.00586061 -0.0570655 -0.12576
+v 0.00586061 0.0570655 -0.12576
+v 0.00586061 -0.0570655 0.12576
+v 0.00586061 0.0570655 0.12576
+v -0.00586061 -0.0570655 0.12576
+v -0.00586061 0.0570655 0.12576
+v -0.0159997 -0.0550513 -0.125798
+v -0.0159997 0.0550513 -0.125798
+v 0.0159997 -0.0550513 -0.125798
+v 0.0159997 0.0550513 -0.125798
+v 0.0159997 -0.0550513 0.125798
+v 0.0159997 0.0550513 0.125798
+v -0.0159997 -0.0550513 0.125798
+v -0.0159997 0.0550513 0.125798
+v -0.00391105 -0.0570655 -0.125931
+v -0.00391105 0.0570655 -0.125931
+v 0.00391105 -0.0570655 -0.125931
+v 0.00391105 0.0570655 -0.125931
+v 0.00391105 -0.0570655 0.125931
+v 0.00391105 0.0570655 0.125931
+v -0.00391105 -0.0570655 0.125931
+v -0.00391105 0.0570655 0.125931
+v -0.0437657 -0.0366961 -0.126017
+v -0.0437657 0.0366961 -0.126017
+v 0.0437657 -0.0366961 -0.126017
+v 0.0437657 0.0366961 -0.126017
+v 0.0437657 -0.0366961 0.126017
+v 0.0437657 0.0366961 0.126017
+v -0.0437657 -0.0366961 0.126017
+v -0.0437657 0.0366961 0.126017
+v -0.00195672 -0.0570655 -0.126033
+v -0.00195672 0.0570655 -0.126033
+v 0.00195672 -0.0570655 -0.126033
+v 0.00195672 0.0570655 -0.126033
+v 0.00195672 -0.0570655 0.126033
+v 0.00195672 0.0570655 0.126033
+v -0.00195672 -0.0570655 0.126033
+v -0.00195672 0.0570655 0.126033
+v -0.0541163 -0.0181947 -0.126039
+v -0.0541163 0.0181947 -0.126039
+v 0.0541163 -0.0181947 -0.126039
+v 0.0541163 0.0181947 -0.126039
+v 0.0541163 -0.0181947 0.126039
+v 0.0541163 0.0181947 0.126039
+v -0.0541163 -0.0181947 0.126039
+v -0.0541163 0.0181947 0.126039
+v -1.02994e-17 -0.0570655 -0.126067
+v -1.02994e-17 0.0570655 -0.126067
+v 3.43312e-18 -0.0570655 0.126067
+v 3.43312e-18 0.0570655 0.126067
+v -0.0298301 -0.0486075 -0.126102
+v -0.0298301 0.0486075 -0.126102
+v 0.0298301 -0.0486075 -0.126102
+v 0.0298301 0.0486075 -0.126102
+v 0.0298301 -0.0486075 0.126102
+v 0.0298301 0.0486075 0.126102
+v -0.0298301 -0.0486075 0.126102
+v -0.0298301 0.0486075 0.126102
+v -0.0505487 -0.0263271 -0.12614
+v -0.0505487 0.0263271 -0.12614
+v 0.0505487 -0.0263271 -0.12614
+v 0.0505487 0.0263271 -0.12614
+v 0.0505487 -0.0263271 0.12614
+v 0.0505487 0.0263271 0.12614
+v -0.0505487 -0.0263271 0.12614
+v -0.0505487 0.0263271 0.12614
+v -0.047244 -0.0315903 -0.126303
+v -0.047244 0.0315903 -0.126303
+v 0.047244 -0.0315903 -0.126303
+v 0.047244 0.0315903 -0.126303
+v 0.047244 -0.0315903 0.126303
+v 0.047244 0.0315903 0.126303
+v -0.047244 -0.0315903 0.126303
+v -0.047244 0.0315903 0.126303
+v -0.0140426 -0.0550513 -0.126322
+v -0.0140426 0.0550513 -0.126322
+v 0.0140426 -0.0550513 -0.126322
+v 0.0140426 0.0550513 -0.126322
+v 0.0140426 -0.0550513 0.126322
+v 0.0140426 0.0550513 0.126322
+v -0.0140426 -0.0550513 0.126322
+v -0.0140426 0.0550513 0.126322
+v -0.0205051 -0.0529685 -0.126337
+v -0.0205051 0.0529685 -0.126337
+v 0.0205051 -0.0529685 -0.126337
+v 0.0205051 0.0529685 -0.126337
+v 0.0205051 -0.0529685 0.126337
+v 0.0205051 0.0529685 0.126337
+v -0.0205051 -0.0529685 0.126337
+v -0.0205051 0.0529685 0.126337
+v -0.0409968 -0.0391821 -0.126427
+v -0.0409968 0.0391821 -0.126427
+v 0.0409968 -0.0391821 -0.126427
+v 0.0409968 0.0391821 -0.126427
+v 0.0409968 -0.0391821 0.126427
+v 0.0409968 0.0391821 0.126427
+v -0.0409968 -0.0391821 0.126427
+v -0.0409968 0.0391821 0.126427
+v -0.0251301 -0.0508196 -0.126443
+v -0.0251301 0.0508196 -0.126443
+v 0.0251301 -0.0508196 -0.126443
+v 0.0251301 0.0508196 -0.126443
+v 0.0251301 -0.0508196 0.126443
+v 0.0251301 0.0508196 0.126443
+v -0.0251301 -0.0508196 0.126443
+v -0.0251301 0.0508196 0.126443
+v -0.0545286 -0.0154341 -0.126466
+v -0.0545286 0.0154341 -0.126466
+v 0.0545286 -0.0154341 -0.126466
+v 0.0545286 0.0154341 -0.126466
+v 0.0545286 -0.0154341 0.126466
+v 0.0545286 0.0154341 0.126466
+v -0.0545286 -0.0154341 0.126466
+v -0.0545286 0.0154341 0.126466
+v -0.0326078 -0.0463348 -0.126478
+v -0.0326078 0.0463348 -0.126478
+v 0.0326078 -0.0463348 -0.126478
+v 0.0326078 0.0463348 -0.126478
+v 0.0326078 -0.0463348 0.126478
+v 0.0326078 0.0463348 0.126478
+v -0.0326078 -0.0463348 0.126478
+v -0.0326078 0.0463348 0.126478
+v -0.038205 -0.0416192 -0.126641
+v -0.038205 0.0416192 -0.126641
+v 0.038205 -0.0416192 -0.126641
+v 0.038205 0.0416192 -0.126641
+v 0.038205 -0.0416192 0.126641
+v 0.038205 0.0416192 0.126641
+v -0.038205 -0.0416192 0.126641
+v -0.038205 0.0416192 0.126641
+v -0.0354041 -0.0440044 -0.126658
+v -0.0354041 0.0440044 -0.126658
+v 0.0354041 -0.0440044 -0.126658
+v 0.0354041 0.0440044 -0.126658
+v 0.0354041 -0.0440044 0.126658
+v 0.0354041 0.0440044 0.126658
+v -0.0354041 -0.0440044 0.126658
+v -0.0354041 0.0440044 0.126658
+v -0.0120685 -0.0550513 -0.126778
+v -0.0120685 0.0550513 -0.126778
+v 0.0120685 -0.0550513 -0.126778
+v 0.0120685 0.0550513 -0.126778
+v 0.0120685 -0.0550513 0.126778
+v 0.0120685 0.0550513 0.126778
+v -0.0120685 -0.0550513 0.126778
+v -0.0120685 0.0550513 0.126778
+v -0.051139 -0.0236447 -0.126796
+v -0.051139 0.0236447 -0.126796
+v 0.051139 -0.0236447 -0.126796
+v 0.051139 0.0236447 -0.126796
+v 0.051139 -0.0236447 0.126796
+v 0.051139 0.0236447 0.126796
+v -0.051139 -0.0236447 0.126796
+v -0.051139 0.0236447 0.126796
+v -0.054873 -0.0126542 -0.126823
+v -0.054873 0.0126542 -0.126823
+v 0.054873 -0.0126542 -0.126823
+v 0.054873 0.0126542 -0.126823
+v 0.054873 -0.0126542 0.126823
+v 0.054873 0.0126542 0.126823
+v -0.054873 -0.0126542 0.126823
+v -0.054873 0.0126542 0.126823
+v -0.0445357 -0.0341645 -0.127003
+v -0.0445357 0.0341645 -0.127003
+v 0.0445357 -0.0341645 -0.127003
+v 0.0445357 0.0341645 -0.127003
+v 0.0445357 -0.0341645 0.127003
+v 0.0445357 0.0341645 0.127003
+v -0.0445357 -0.0341645 0.127003
+v -0.0445357 0.0341645 0.127003
+v -0.0185264 -0.0529685 -0.127019
+v -0.0185264 0.0529685 -0.127019
+v 0.0185264 -0.0529685 -0.127019
+v 0.0185264 0.0529685 -0.127019
+v 0.0185264 -0.0529685 0.127019
+v 0.0185264 0.0529685 0.127019
+v -0.0185264 -0.0529685 0.127019
+v -0.0185264 0.0529685 0.127019
+v -0.027854 -0.0486075 -0.127109
+v -0.027854 0.0486075 -0.127109
+v 0.027854 -0.0486075 -0.127109
+v 0.027854 0.0486075 -0.127109
+v 0.027854 -0.0486075 0.127109
+v 0.027854 0.0486075 0.127109
+v -0.027854 -0.0486075 0.127109
+v -0.027854 0.0486075 0.127109
+v -0.0551491 -0.00985854 -0.127109
+v -0.0551491 0.00985854 -0.127109
+v 0.0551491 -0.00985854 -0.127109
+v 0.0551491 0.00985854 -0.127109
+v 0.0551491 -0.00985854 0.127109
+v 0.0551491 0.00985854 0.127109
+v -0.0551491 -0.00985854 0.127109
+v -0.0551491 0.00985854 0.127109
+v -0.0479312 -0.0289768 -0.127122
+v -0.0479312 0.0289768 -0.127122
+v 0.0479312 -0.0289768 -0.127122
+v 0.0479312 0.0289768 -0.127122
+v 0.0479312 -0.0289768 0.127122
+v 0.0479312 0.0289768 0.127122
+v -0.0479312 -0.0289768 0.127122
+v -0.0479312 0.0289768 0.127122
+v -0.0100796 -0.0550513 -0.127164
+v -0.0100796 0.0550513 -0.127164
+v 0.0100796 -0.0550513 -0.127164
+v 0.0100796 0.0550513 -0.127164
+v 0.0100796 -0.0550513 0.127164
+v 0.0100796 0.0550513 0.127164
+v -0.0100796 -0.0550513 0.127164
+v -0.0100796 0.0550513 0.127164
+v -0.023145 -0.0508196 -0.127286
+v -0.023145 0.0508196 -0.127286
+v 0.023145 -0.0508196 -0.127286
+v 0.023145 0.0508196 -0.127286
+v 0.023145 -0.0508196 0.127286
+v 0.023145 0.0508196 0.127286
+v -0.023145 -0.0508196 0.127286
+v -0.023145 0.0508196 0.127286
+v -0.0553564 -0.0070506 -0.127323
+v -0.0553564 0.0070506 -0.127323
+v 0.0553564 -0.0070506 -0.127323
+v 0.0553564 0.0070506 -0.127323
+v 0.0553564 -0.0070506 0.127323
+v 0.0553564 0.0070506 0.127323
+v -0.0553564 -0.0070506 0.127323
+v -0.0553564 0.0070506 0.127323
+v -0.0516655 -0.0209327 -0.12738
+v -0.0516655 0.0209327 -0.12738
+v 0.0516655 -0.0209327 -0.12738
+v 0.0516655 0.0209327 -0.12738
+v 0.0516655 -0.0209327 0.12738
+v 0.0516655 0.0209327 0.12738
+v -0.0516655 -0.0209327 0.12738
+v -0.0516655 0.0209327 0.12738
+v -0.0554948 -0.00423388 -0.127467
+v -0.0554948 0.00423388 -0.127467
+v 0.0554948 -0.00423388 -0.127467
+v 0.0554948 0.00423388 -0.127467
+v 0.0554948 -0.00423388 0.127467
+v 0.0554948 0.00423388 0.127467
+v -0.0554948 -0.00423388 0.127467
+v -0.0554948 0.00423388 0.127467
+v -0.00807846 -0.0550513 -0.127481
+v -0.00807846 0.0550513 -0.127481
+v 0.00807846 -0.0550513 -0.127481
+v 0.00807846 0.0550513 -0.127481
+v 0.00807846 -0.0550513 0.127481
+v 0.00807846 0.0550513 0.127481
+v -0.00807846 -0.0550513 0.127481
+v -0.00807846 0.0550513 0.127481
+v -0.041784 -0.0366961 -0.127511
+v -0.041784 0.0366961 -0.127511
+v 0.041784 -0.0366961 -0.127511
+v 0.041784 0.0366961 -0.127511
+v 0.041784 -0.0366961 0.127511
+v 0.041784 0.0366961 0.127511
+v -0.041784 -0.0366961 0.127511
+v -0.041784 0.0366961 0.127511
+v -0.055564 -0.00141188 -0.127538
+v -0.055564 0.00141188 -0.127538
+v 0.055564 -0.00141188 -0.127538
+v 0.055564 0.00141188 -0.127538
+v 0.055564 -0.00141188 0.127538
+v 0.055564 0.00141188 0.127538
+v -0.055564 -0.00141188 0.127538
+v -0.055564 0.00141188 0.127538
+v -0.0306169 -0.0463348 -0.127582
+v -0.0306169 0.0463348 -0.127582
+v 0.0306169 -0.0463348 -0.127582
+v 0.0306169 0.0463348 -0.127582
+v 0.0306169 -0.0463348 0.127582
+v 0.0306169 0.0463348 0.127582
+v -0.0306169 -0.0463348 0.127582
+v -0.0306169 0.0463348 0.127582
+v -0.0165252 -0.0529685 -0.12763
+v -0.0165252 0.0529685 -0.12763
+v 0.0165252 -0.0529685 -0.12763
+v 0.0165252 0.0529685 -0.12763
+v 0.0165252 -0.0529685 0.12763
+v 0.0165252 0.0529685 0.12763
+v -0.0165252 -0.0529685 0.12763
+v -0.0165252 0.0529685 0.12763
+v -0.00606747 -0.0550513 -0.127728
+v -0.00606747 0.0550513 -0.127728
+v 0.00606747 -0.0550513 -0.127728
+v 0.00606747 0.0550513 -0.127728
+v 0.00606747 -0.0550513 0.127728
+v 0.00606747 0.0550513 0.127728
+v -0.00606747 -0.0550513 0.127728
+v -0.00606747 0.0550513 0.127728
+v -0.0390025 -0.0391821 -0.127824
+v -0.0390025 0.0391821 -0.127824
+v 0.0390025 -0.0391821 -0.127824
+v 0.0390025 0.0391821 -0.127824
+v 0.0390025 -0.0391821 0.127824
+v 0.0390025 0.0391821 0.127824
+v -0.0390025 -0.0391821 0.127824
+v -0.0390025 0.0391821 0.127824
+v -0.0334051 -0.0440044 -0.127859
+v -0.0334051 0.0440044 -0.127859
+v 0.0334051 -0.0440044 -0.127859
+v 0.0334051 0.0440044 -0.127859
+v 0.0334051 -0.0440044 0.127859
+v 0.0334051 0.0440044 0.127859
+v -0.0334051 -0.0440044 0.127859
+v -0.0334051 0.0440044 0.127859
+v -0.0485587 -0.0263271 -0.12787
+v -0.0485587 0.0263271 -0.12787
+v 0.0485587 -0.0263271 -0.12787
+v 0.0485587 0.0263271 -0.12787
+v 0.0485587 -0.0263271 0.12787
+v 0.0485587 0.0263271 0.12787
+v -0.0485587 -0.0263271 0.12787
+v -0.0485587 0.0263271 0.12787
+v -0.0521276 -0.0181947 -0.127894
+v -0.0521276 0.0181947 -0.127894
+v 0.0521276 -0.0181947 -0.127894
+v 0.0521276 0.0181947 -0.127894
+v 0.0521276 -0.0181947 0.127894
+v 0.0521276 0.0181947 0.127894
+v -0.0521276 -0.0181947 0.127894
+v -0.0521276 0.0181947 0.127894
+v -0.00404909 -0.0550513 -0.127905
+v -0.00404909 0.0550513 -0.127905
+v 0.00404909 -0.0550513 -0.127905
+v 0.00404909 0.0550513 -0.127905
+v 0.00404909 -0.0550513 0.127905
+v 0.00404909 0.0550513 0.127905
+v -0.00404909 -0.0550513 0.127905
+v -0.00404909 0.0550513 0.127905
+v -0.0452503 -0.0315903 -0.127918
+v -0.0452503 0.0315903 -0.127918
+v 0.0452503 -0.0315903 -0.127918
+v 0.0452503 0.0315903 -0.127918
+v 0.0452503 -0.0315903 0.127918
+v 0.0452503 0.0315903 0.127918
+v -0.0452503 -0.0315903 0.127918
+v -0.0452503 0.0315903 0.127918
+v -0.0362049 -0.0416192 -0.12794
+v -0.0362049 0.0416192 -0.12794
+v 0.0362049 -0.0416192 -0.12794
+v 0.0362049 0.0416192 -0.12794
+v 0.0362049 -0.0416192 0.12794
+v 0.0362049 0.0416192 0.12794
+v -0.0362049 -0.0416192 0.12794
+v -0.0362049 0.0416192 0.12794
+v -0.00202578 -0.0550513 -0.128011
+v -0.00202578 0.0550513 -0.128011
+v 0.00202578 -0.0550513 -0.128011
+v 0.00202578 0.0550513 -0.128011
+v 0.00202578 -0.0550513 0.128011
+v 0.00202578 0.0550513 0.128011
+v -0.00202578 -0.0550513 0.128011
+v -0.00202578 0.0550513 0.128011
+v -1.06629e-17 -0.0550513 -0.128046
+v -1.06629e-17 0.0550513 -0.128046
+v 3.5543e-18 -0.0550513 0.128046
+v 3.5543e-18 0.0550513 0.128046
+v -0.025844 -0.0486075 -0.128047
+v -0.025844 0.0486075 -0.128047
+v 0.025844 -0.0486075 -0.128047
+v 0.025844 0.0486075 -0.128047
+v 0.025844 -0.0486075 0.128047
+v 0.025844 0.0486075 0.128047
+v -0.025844 -0.0486075 0.128047
+v -0.025844 0.0486075 0.128047
+v -0.0211317 -0.0508196 -0.128059
+v -0.0211317 0.0508196 -0.128059
+v 0.0211317 -0.0508196 -0.128059
+v 0.0211317 0.0508196 -0.128059
+v 0.0211317 -0.0508196 0.128059
+v 0.0211317 0.0508196 0.128059
+v -0.0211317 -0.0508196 0.128059
+v -0.0211317 0.0508196 0.128059
+v -0.0145039 -0.0529685 -0.128172
+v -0.0145039 0.0529685 -0.128172
+v 0.0145039 -0.0529685 -0.128172
+v 0.0145039 0.0529685 -0.128172
+v 0.0145039 -0.0529685 0.128172
+v 0.0145039 0.0529685 0.128172
+v -0.0145039 -0.0529685 0.128172
+v -0.0145039 0.0529685 0.128172
+v -0.0525248 -0.0154341 -0.128335
+v -0.0525248 0.0154341 -0.128335
+v 0.0525248 -0.0154341 -0.128335
+v 0.0525248 0.0154341 -0.128335
+v 0.0525248 -0.0154341 0.128335
+v 0.0525248 0.0154341 0.128335
+v -0.0525248 -0.0154341 0.128335
+v -0.0525248 0.0154341 0.128335
+v -0.0425192 -0.0341645 -0.128523
+v -0.0425192 0.0341645 -0.128523
+v 0.0425192 -0.0341645 -0.128523
+v 0.0425192 0.0341645 -0.128523
+v 0.0425192 -0.0341645 0.128523
+v 0.0425192 0.0341645 0.128523
+v -0.0425192 -0.0341645 0.128523
+v -0.0425192 0.0341645 0.128523
+v -0.0491257 -0.0236447 -0.128546
+v -0.0491257 0.0236447 -0.128546
+v 0.0491257 -0.0236447 -0.128546
+v 0.0491257 0.0236447 -0.128546
+v 0.0491257 -0.0236447 0.128546
+v 0.0491257 0.0236447 0.128546
+v -0.0491257 -0.0236447 0.128546
+v -0.0491257 0.0236447 0.128546
+v -0.0285887 -0.0463348 -0.128615
+v -0.0285887 0.0463348 -0.128615
+v 0.0285887 -0.0463348 -0.128615
+v 0.0285887 0.0463348 -0.128615
+v 0.0285887 -0.0463348 0.128615
+v 0.0285887 0.0463348 0.128615
+v -0.0285887 -0.0463348 0.128615
+v -0.0285887 0.0463348 0.128615
+v -0.0124649 -0.0529685 -0.128643
+v -0.0124649 0.0529685 -0.128643
+v 0.0124649 -0.0529685 -0.128643
+v 0.0124649 0.0529685 -0.128643
+v 0.0124649 -0.0529685 0.128643
+v 0.0124649 0.0529685 0.128643
+v -0.0124649 -0.0529685 0.128643
+v -0.0124649 0.0529685 0.128643
+v -0.0528565 -0.0126542 -0.128703
+v -0.0528565 0.0126542 -0.128703
+v 0.0528565 -0.0126542 -0.128703
+v 0.0528565 0.0126542 -0.128703
+v 0.0528565 -0.0126542 0.128703
+v 0.0528565 0.0126542 0.128703
+v -0.0528565 -0.0126542 0.128703
+v -0.0528565 0.0126542 0.128703
+v -0.0459085 -0.0289768 -0.12876
+v -0.0459085 0.0289768 -0.12876
+v 0.0459085 -0.0289768 -0.12876
+v 0.0459085 0.0289768 -0.12876
+v 0.0459085 -0.0289768 0.12876
+v 0.0459085 0.0289768 0.12876
+v -0.0459085 -0.0289768 0.12876
+v -0.0459085 0.0289768 0.12876
+v -0.0190926 -0.0508196 -0.128761
+v -0.0190926 0.0508196 -0.128761
+v 0.0190926 -0.0508196 -0.128761
+v 0.0190926 0.0508196 -0.128761
+v 0.0190926 -0.0508196 0.128761
+v 0.0190926 0.0508196 0.128761
+v -0.0190926 -0.0508196 0.128761
+v -0.0190926 0.0508196 0.128761
+v -0.0238024 -0.0486075 -0.128913
+v -0.0238024 0.0486075 -0.128913
+v 0.0238024 -0.0486075 -0.128913
+v 0.0238024 0.0486075 -0.128913
+v 0.0238024 -0.0486075 0.128913
+v 0.0238024 0.0486075 0.128913
+v -0.0238024 -0.0486075 0.128913
+v -0.0238024 0.0486075 0.128913
+v -0.0397515 -0.0366961 -0.128934
+v -0.0397515 0.0366961 -0.128934
+v 0.0397515 -0.0366961 -0.128934
+v 0.0397515 0.0366961 -0.128934
+v 0.0397515 -0.0366961 0.128934
+v 0.0397515 0.0366961 0.128934
+v -0.0397515 -0.0366961 0.128934
+v -0.0397515 0.0366961 0.128934
+v -0.0313655 -0.0440044 -0.12899
+v -0.0313655 0.0440044 -0.12899
+v 0.0313655 -0.0440044 -0.12899
+v 0.0313655 0.0440044 -0.12899
+v 0.0313655 -0.0440044 0.12899
+v 0.0313655 0.0440044 0.12899
+v -0.0313655 -0.0440044 0.12899
+v -0.0313655 0.0440044 0.12899
+v -0.0531224 -0.00985854 -0.128998
+v -0.0531224 0.00985854 -0.128998
+v 0.0531224 -0.00985854 -0.128998
+v 0.0531224 0.00985854 -0.128998
+v 0.0531224 -0.00985854 0.128998
+v 0.0531224 0.00985854 0.128998
+v -0.0531224 -0.00985854 0.128998
+v -0.0531224 0.00985854 0.128998
+v -0.0104107 -0.0529685 -0.129042
+v -0.0104107 0.0529685 -0.129042
+v 0.0104107 -0.0529685 -0.129042
+v 0.0104107 0.0529685 -0.129042
+v 0.0104107 -0.0529685 0.129042
+v 0.0104107 0.0529685 0.129042
+v -0.0104107 -0.0529685 0.129042
+v -0.0104107 0.0529685 0.129042
+v -0.0496314 -0.0209327 -0.129148
+v -0.0496314 0.0209327 -0.129148
+v 0.0496314 -0.0209327 -0.129148
+v 0.0496314 0.0209327 -0.129148
+v 0.0496314 -0.0209327 0.129148
+v 0.0496314 0.0209327 0.129148
+v -0.0496314 -0.0209327 0.129148
+v -0.0496314 0.0209327 0.129148
+v -0.0369607 -0.0391821 -0.12915
+v -0.0369607 0.0391821 -0.12915
+v 0.0369607 -0.0391821 -0.12915
+v 0.0369607 0.0391821 -0.12915
+v 0.0369607 -0.0391821 0.12915
+v 0.0369607 0.0391821 0.12915
+v -0.0369607 -0.0391821 0.12915
+v -0.0369607 0.0391821 0.12915
+v -0.0341608 -0.0416192 -0.129168
+v -0.0341608 0.0416192 -0.129168
+v 0.0341608 -0.0416192 -0.129168
+v 0.0341608 0.0416192 -0.129168
+v 0.0341608 -0.0416192 0.129168
+v 0.0341608 0.0416192 0.129168
+v -0.0341608 -0.0416192 0.129168
+v -0.0341608 0.0416192 0.129168
+v -0.0533221 -0.0070506 -0.12922
+v -0.0533221 0.0070506 -0.12922
+v 0.0533221 -0.0070506 -0.12922
+v 0.0533221 0.0070506 -0.12922
+v 0.0533221 -0.0070506 0.12922
+v 0.0533221 0.0070506 0.12922
+v -0.0533221 -0.0070506 0.12922
+v -0.0533221 0.0070506 0.12922
+v -0.0534554 -0.00423388 -0.129368
+v -0.0534554 0.00423388 -0.129368
+v 0.0534554 -0.00423388 -0.129368
+v 0.0534554 0.00423388 -0.129368
+v 0.0534554 -0.00423388 0.129368
+v 0.0534554 0.00423388 0.129368
+v -0.0534554 -0.00423388 0.129368
+v -0.0534554 0.00423388 0.129368
+v -0.00834382 -0.0529685 -0.129369
+v -0.00834382 0.0529685 -0.129369
+v 0.00834382 -0.0529685 -0.129369
+v 0.00834382 0.0529685 -0.129369
+v 0.00834382 -0.0529685 0.129369
+v 0.00834382 0.0529685 0.129369
+v -0.00834382 -0.0529685 0.129369
+v -0.00834382 0.0529685 0.129369
+v -0.0170302 -0.0508196 -0.129391
+v -0.0170302 0.0508196 -0.129391
+v 0.0170302 -0.0508196 -0.129391
+v 0.0170302 0.0508196 -0.129391
+v 0.0170302 -0.0508196 0.129391
+v 0.0170302 0.0508196 0.129391
+v -0.0170302 -0.0508196 0.129391
+v -0.0170302 0.0508196 0.129391
+v -0.0535221 -0.00141188 -0.129442
+v -0.0535221 0.00141188 -0.129442
+v 0.0535221 -0.00141188 -0.129442
+v 0.0535221 0.00141188 -0.129442
+v 0.0535221 -0.00141188 0.129442
+v 0.0535221 0.00141188 0.129442
+v -0.0535221 -0.00141188 0.129442
+v -0.0535221 0.00141188 0.129442
+v -0.0432014 -0.0315903 -0.129462
+v -0.0432014 0.0315903 -0.129462
+v 0.0432014 -0.0315903 -0.129462
+v 0.0432014 0.0315903 -0.129462
+v 0.0432014 -0.0315903 0.129462
+v 0.0432014 0.0315903 0.129462
+v -0.0432014 -0.0315903 0.129462
+v -0.0432014 0.0315903 0.129462
+v -0.0465095 -0.0263271 -0.129529
+v -0.0465095 0.0263271 -0.129529
+v 0.0465095 -0.0263271 -0.129529
+v 0.0465095 0.0263271 -0.129529
+v 0.0465095 -0.0263271 0.129529
+v 0.0465095 0.0263271 0.129529
+v -0.0465095 -0.0263271 0.129529
+v -0.0465095 0.0263271 0.129529
+v -0.0265256 -0.0463348 -0.129577
+v -0.0265256 0.0463348 -0.129577
+v 0.0265256 -0.0463348 -0.129577
+v 0.0265256 0.0463348 -0.129577
+v 0.0265256 -0.0463348 0.129577
+v 0.0265256 0.0463348 0.129577
+v -0.0265256 -0.0463348 0.129577
+v -0.0265256 0.0463348 0.129577
+v -0.00626678 -0.0529685 -0.129624
+v -0.00626678 0.0529685 -0.129624
+v 0.00626678 -0.0529685 -0.129624
+v 0.00626678 0.0529685 -0.129624
+v 0.00626678 -0.0529685 0.129624
+v 0.00626678 0.0529685 0.129624
+v -0.00626678 -0.0529685 0.129624
+v -0.00626678 0.0529685 0.129624
+v -0.0500754 -0.0181947 -0.129678
+v -0.0500754 0.0181947 -0.129678
+v 0.0500754 -0.0181947 -0.129678
+v 0.0500754 0.0181947 -0.129678
+v 0.0500754 -0.0181947 0.129678
+v 0.0500754 0.0181947 0.129678
+v -0.0500754 -0.0181947 0.129678
+v -0.0500754 0.0181947 0.129678
+v -0.0217319 -0.0486075 -0.129708
+v -0.0217319 0.0486075 -0.129708
+v 0.0217319 -0.0486075 -0.129708
+v 0.0217319 0.0486075 -0.129708
+v 0.0217319 -0.0486075 0.129708
+v 0.0217319 0.0486075 0.129708
+v -0.0217319 -0.0486075 0.129708
+v -0.0217319 0.0486075 0.129708
+v -0.0041821 -0.0529685 -0.129807
+v -0.0041821 0.0529685 -0.129807
+v 0.0041821 -0.0529685 -0.129807
+v 0.0041821 0.0529685 -0.129807
+v 0.0041821 -0.0529685 0.129807
+v 0.0041821 0.0529685 0.129807
+v -0.0041821 -0.0529685 0.129807
+v -0.0041821 0.0529685 0.129807
+v -0.00209232 -0.0529685 -0.129916
+v -0.00209232 0.0529685 -0.129916
+v 0.00209232 -0.0529685 -0.129916
+v 0.00209232 0.0529685 -0.129916
+v 0.00209232 -0.0529685 0.129916
+v 0.00209232 0.0529685 0.129916
+v -0.00209232 -0.0529685 0.129916
+v -0.00209232 0.0529685 0.129916
+v -0.0149471 -0.0508196 -0.12995
+v -0.0149471 0.0508196 -0.12995
+v 0.0149471 -0.0508196 -0.12995
+v 0.0149471 0.0508196 -0.12995
+v 0.0149471 -0.0508196 0.12995
+v 0.0149471 0.0508196 0.12995
+v -0.0149471 -0.0508196 0.12995
+v -0.0149471 0.0508196 0.12995
+v -1.10132e-17 -0.0529685 -0.129953
+v -1.10132e-17 0.0529685 -0.129953
+v 3.67105e-18 -0.0529685 0.129953
+v 3.67105e-18 0.0529685 0.129953
+v -0.0404509 -0.0341645 -0.129971
+v -0.0404509 0.0341645 -0.129971
+v 0.0404509 -0.0341645 -0.129971
+v 0.0404509 0.0341645 -0.129971
+v 0.0404509 -0.0341645 0.129971
+v 0.0404509 0.0341645 0.129971
+v -0.0404509 -0.0341645 0.129971
+v -0.0404509 0.0341645 0.129971
+v -0.0292877 -0.0440044 -0.130049
+v -0.0292877 0.0440044 -0.130049
+v 0.0292877 -0.0440044 -0.130049
+v 0.0292877 0.0440044 -0.130049
+v 0.0292877 -0.0440044 0.130049
+v 0.0292877 0.0440044 0.130049
+v -0.0292877 -0.0440044 0.130049
+v -0.0292877 0.0440044 0.130049
+v -0.0504569 -0.0154341 -0.130132
+v -0.0504569 0.0154341 -0.130132
+v 0.0504569 -0.0154341 -0.130132
+v 0.0504569 0.0154341 -0.130132
+v 0.0504569 -0.0154341 0.130132
+v 0.0504569 0.0154341 0.130132
+v -0.0504569 -0.0154341 0.130132
+v -0.0504569 0.0154341 0.130132
+v -0.0470525 -0.0236447 -0.130224
+v -0.0470525 0.0236447 -0.130224
+v 0.0470525 -0.0236447 -0.130224
+v 0.0470525 0.0236447 -0.130224
+v 0.0470525 -0.0236447 0.130224
+v 0.0470525 0.0236447 0.130224
+v -0.0470525 -0.0236447 0.130224
+v -0.0470525 0.0236447 0.130224
+v -0.0376705 -0.0366961 -0.130285
+v -0.0376705 0.0366961 -0.130285
+v 0.0376705 -0.0366961 -0.130285
+v 0.0376705 0.0366961 -0.130285
+v 0.0376705 -0.0366961 0.130285
+v 0.0376705 0.0366961 0.130285
+v -0.0376705 -0.0366961 0.130285
+v -0.0376705 0.0366961 0.130285
+v -0.0320751 -0.0416192 -0.130324
+v -0.0320751 0.0416192 -0.130324
+v 0.0320751 -0.0416192 -0.130324
+v 0.0320751 0.0416192 -0.130324
+v 0.0320751 -0.0416192 0.130324
+v 0.0320751 0.0416192 0.130324
+v -0.0320751 -0.0416192 0.130324
+v -0.0320751 0.0416192 0.130324
+v -0.0438298 -0.0289768 -0.130327
+v -0.0438298 0.0289768 -0.130327
+v 0.0438298 -0.0289768 -0.130327
+v 0.0438298 0.0289768 -0.130327
+v 0.0438298 -0.0289768 0.130327
+v 0.0438298 0.0289768 0.130327
+v -0.0438298 -0.0289768 0.130327
+v -0.0438298 0.0289768 0.130327
+v -0.0348739 -0.0391821 -0.130403
+v -0.0348739 0.0391821 -0.130403
+v 0.0348739 -0.0391821 -0.130403
+v 0.0348739 0.0391821 -0.130403
+v 0.0348739 -0.0391821 0.130403
+v 0.0348739 0.0391821 0.130403
+v -0.0348739 -0.0391821 0.130403
+v -0.0348739 0.0391821 0.130403
+v -0.0196349 -0.0486075 -0.13043
+v -0.0196349 0.0486075 -0.13043
+v 0.0196349 -0.0486075 -0.13043
+v 0.0196349 0.0486075 -0.13043
+v 0.0196349 -0.0486075 0.13043
+v 0.0196349 0.0486075 0.13043
+v -0.0196349 -0.0486075 0.13043
+v -0.0196349 0.0486075 0.13043
+v -0.0128458 -0.0508196 -0.130435
+v -0.0128458 0.0508196 -0.130435
+v 0.0128458 -0.0508196 -0.130435
+v 0.0128458 0.0508196 -0.130435
+v 0.0128458 -0.0508196 0.130435
+v 0.0128458 0.0508196 0.130435
+v -0.0128458 -0.0508196 0.130435
+v -0.0128458 0.0508196 0.130435
+v -0.0244302 -0.0463348 -0.130467
+v -0.0244302 0.0463348 -0.130467
+v 0.0244302 -0.0463348 -0.130467
+v 0.0244302 0.0463348 -0.130467
+v 0.0244302 -0.0463348 0.130467
+v 0.0244302 0.0463348 0.130467
+v -0.0244302 -0.0463348 0.130467
+v -0.0244302 0.0463348 0.130467
+v -0.0507756 -0.0126542 -0.130512
+v -0.0507756 0.0126542 -0.130512
+v 0.0507756 -0.0126542 -0.130512
+v 0.0507756 0.0126542 -0.130512
+v 0.0507756 -0.0126542 0.130512
+v 0.0507756 0.0126542 0.130512
+v -0.0507756 -0.0126542 0.130512
+v -0.0507756 0.0126542 0.130512
+v -0.0510311 -0.00985854 -0.130816
+v -0.0510311 0.00985854 -0.130816
+v 0.0510311 -0.00985854 -0.130816
+v 0.0510311 0.00985854 -0.130816
+v 0.0510311 -0.00985854 0.130816
+v 0.0510311 0.00985854 0.130816
+v -0.0510311 -0.00985854 0.130816
+v -0.0510311 0.00985854 0.130816
+v -0.047537 -0.0209327 -0.130845
+v -0.047537 0.0209327 -0.130845
+v 0.047537 -0.0209327 -0.130845
+v 0.047537 0.0209327 -0.130845
+v 0.047537 -0.0209327 0.130845
+v 0.047537 0.0209327 0.130845
+v -0.047537 -0.0209327 0.130845
+v -0.047537 0.0209327 0.130845
+v -0.0107288 -0.0508196 -0.130846
+v -0.0107288 0.0508196 -0.130846
+v 0.0107288 -0.0508196 -0.130846
+v 0.0107288 0.0508196 -0.130846
+v 0.0107288 -0.0508196 0.130846
+v 0.0107288 0.0508196 0.130846
+v -0.0107288 -0.0508196 0.130846
+v -0.0107288 0.0508196 0.130846
+v -0.0410999 -0.0315903 -0.130933
+v -0.0410999 0.0315903 -0.130933
+v 0.0410999 -0.0315903 -0.130933
+v 0.0410999 0.0315903 -0.130933
+v 0.0410999 -0.0315903 0.130933
+v 0.0410999 0.0315903 0.130933
+v -0.0410999 -0.0315903 0.130933
+v -0.0410999 0.0315903 0.130933
+v -0.0271742 -0.0440044 -0.131034
+v -0.0271742 0.0440044 -0.131034
+v 0.0271742 -0.0440044 -0.131034
+v 0.0271742 0.0440044 -0.131034
+v 0.0271742 -0.0440044 0.131034
+v 0.0271742 0.0440044 0.131034
+v -0.0271742 -0.0440044 0.131034
+v -0.0271742 0.0440044 0.131034
+v -0.0512229 -0.0070506 -0.131045
+v -0.0512229 0.0070506 -0.131045
+v 0.0512229 -0.0070506 -0.131045
+v 0.0512229 0.0070506 -0.131045
+v 0.0512229 -0.0070506 0.131045
+v 0.0512229 0.0070506 0.131045
+v -0.0512229 -0.0070506 0.131045
+v -0.0512229 0.0070506 0.131045
+v -0.0175139 -0.0486075 -0.131078
+v -0.0175139 0.0486075 -0.131078
+v 0.0175139 -0.0486075 -0.131078
+v 0.0175139 0.0486075 -0.131078
+v 0.0175139 -0.0486075 0.131078
+v 0.0175139 0.0486075 0.131078
+v -0.0175139 -0.0486075 0.131078
+v -0.0175139 0.0486075 0.131078
+v -0.0444036 -0.0263271 -0.131116
+v -0.0444036 0.0263271 -0.131116
+v 0.0444036 -0.0263271 -0.131116
+v 0.0444036 0.0263271 -0.131116
+v 0.0444036 -0.0263271 0.131116
+v 0.0444036 0.0263271 0.131116
+v -0.0444036 -0.0263271 0.131116
+v -0.0444036 0.0263271 0.131116
+v -0.00859878 -0.0508196 -0.131184
+v -0.00859878 0.0508196 -0.131184
+v 0.00859878 -0.0508196 -0.131184
+v 0.00859878 0.0508196 -0.131184
+v 0.00859878 -0.0508196 0.131184
+v 0.00859878 0.0508196 0.131184
+v -0.00859878 -0.0508196 0.131184
+v -0.00859878 0.0508196 0.131184
+v -0.0513509 -0.00423388 -0.131198
+v -0.0513509 0.00423388 -0.131198
+v 0.0513509 -0.00423388 -0.131198
+v 0.0513509 0.00423388 -0.131198
+v 0.0513509 -0.00423388 0.131198
+v 0.0513509 0.00423388 0.131198
+v -0.0513509 -0.00423388 0.131198
+v -0.0513509 0.00423388 0.131198
+v -0.051415 -0.00141188 -0.131274
+v -0.051415 0.00141188 -0.131274
+v 0.051415 -0.00141188 -0.131274
+v 0.051415 0.00141188 -0.131274
+v 0.051415 -0.00141188 0.131274
+v 0.051415 0.00141188 0.131274
+v -0.051415 -0.00141188 0.131274
+v -0.051415 0.00141188 0.131274
+v -0.0223051 -0.0463348 -0.131283
+v -0.0223051 0.0463348 -0.131283
+v 0.0223051 -0.0463348 -0.131283
+v 0.0223051 0.0463348 -0.131283
+v 0.0223051 -0.0463348 0.131283
+v 0.0223051 0.0463348 0.131283
+v -0.0223051 -0.0463348 0.131283
+v -0.0223051 0.0463348 0.131283
+v -0.0383333 -0.0341645 -0.131346
+v -0.0383333 0.0341645 -0.131346
+v 0.0383333 -0.0341645 -0.131346
+v 0.0383333 0.0341645 -0.131346
+v 0.0383333 -0.0341645 0.131346
+v 0.0383333 0.0341645 0.131346
+v -0.0383333 -0.0341645 0.131346
+v -0.0383333 0.0341645 0.131346
+v -0.0479622 -0.0181947 -0.131389
+v -0.0479622 0.0181947 -0.131389
+v 0.0479622 -0.0181947 -0.131389
+v 0.0479622 0.0181947 -0.131389
+v 0.0479622 -0.0181947 0.131389
+v 0.0479622 0.0181947 0.131389
+v -0.0479622 -0.0181947 0.131389
+v -0.0479622 0.0181947 0.131389
+v -0.0299502 -0.0416192 -0.131407
+v -0.0299502 0.0416192 -0.131407
+v 0.0299502 -0.0416192 -0.131407
+v 0.0299502 0.0416192 -0.131407
+v 0.0299502 -0.0416192 0.131407
+v 0.0299502 0.0416192 0.131407
+v -0.0299502 -0.0416192 0.131407
+v -0.0299502 0.0416192 0.131407
+v -0.00645827 -0.0508196 -0.131446
+v -0.00645827 0.0508196 -0.131446
+v 0.00645827 -0.0508196 -0.131446
+v 0.00645827 0.0508196 -0.131446
+v 0.00645827 -0.0508196 0.131446
+v 0.00645827 0.0508196 0.131446
+v -0.00645827 -0.0508196 0.131446
+v -0.00645827 0.0508196 0.131446
+v -0.0355436 -0.0366961 -0.131563
+v -0.0355436 0.0366961 -0.131563
+v 0.0355436 -0.0366961 -0.131563
+v 0.0355436 0.0366961 -0.131563
+v 0.0355436 -0.0366961 0.131563
+v 0.0355436 0.0366961 0.131563
+v -0.0355436 -0.0366961 0.131563
+v -0.0355436 0.0366961 0.131563
+v -0.0327446 -0.0391821 -0.131584
+v -0.0327446 0.0391821 -0.131584
+v 0.0327446 -0.0391821 -0.131584
+v 0.0327446 0.0391821 -0.131584
+v 0.0327446 -0.0391821 0.131584
+v 0.0327446 0.0391821 0.131584
+v -0.0327446 -0.0391821 0.131584
+v -0.0327446 0.0391821 0.131584
+v -0.00430989 -0.0508196 -0.131634
+v -0.00430989 0.0508196 -0.131634
+v 0.00430989 -0.0508196 -0.131634
+v 0.00430989 0.0508196 -0.131634
+v 0.00430989 -0.0508196 0.131634
+v 0.00430989 0.0508196 0.131634
+v -0.00430989 -0.0508196 0.131634
+v -0.00430989 0.0508196 0.131634
+v -0.0153717 -0.0486075 -0.131652
+v -0.0153717 0.0486075 -0.131652
+v 0.0153717 -0.0486075 -0.131652
+v 0.0153717 0.0486075 -0.131652
+v 0.0153717 -0.0486075 0.131652
+v 0.0153717 0.0486075 0.131652
+v -0.0153717 -0.0486075 0.131652
+v -0.0153717 0.0486075 0.131652
+v -0.00215626 -0.0508196 -0.131747
+v -0.00215626 0.0508196 -0.131747
+v 0.00215626 -0.0508196 -0.131747
+v 0.00215626 0.0508196 -0.131747
+v 0.00215626 -0.0508196 0.131747
+v 0.00215626 0.0508196 0.131747
+v -0.00215626 -0.0508196 0.131747
+v -0.00215626 0.0508196 0.131747
+v -1.13497e-17 -0.0508196 -0.131785
+v -1.13497e-17 0.0508196 -0.131785
+v 3.78323e-18 -0.0508196 0.131785
+v 3.78323e-18 0.0508196 0.131785
+v -0.0416977 -0.0289768 -0.131819
+v -0.0416977 0.0289768 -0.131819
+v 0.0416977 -0.0289768 -0.131819
+v 0.0416977 0.0289768 -0.131819
+v 0.0416977 -0.0289768 0.131819
+v 0.0416977 0.0289768 0.131819
+v -0.0416977 -0.0289768 0.131819
+v -0.0416977 0.0289768 0.131819
+v -0.0449221 -0.0236447 -0.13183
+v -0.0449221 0.0236447 -0.13183
+v 0.0449221 -0.0236447 -0.13183
+v 0.0449221 0.0236447 -0.13183
+v 0.0449221 -0.0236447 0.13183
+v 0.0449221 0.0236447 0.13183
+v -0.0449221 -0.0236447 0.13183
+v -0.0449221 0.0236447 0.13183
+v -0.0483276 -0.0154341 -0.131857
+v -0.0483276 0.0154341 -0.131857
+v 0.0483276 -0.0154341 -0.131857
+v 0.0483276 0.0154341 -0.131857
+v 0.0483276 -0.0154341 0.131857
+v 0.0483276 0.0154341 0.131857
+v -0.0483276 -0.0154341 0.131857
+v -0.0483276 0.0154341 0.131857
+v -0.0250276 -0.0440044 -0.131945
+v -0.0250276 0.0440044 -0.131945
+v 0.0250276 -0.0440044 -0.131945
+v 0.0250276 0.0440044 -0.131945
+v 0.0250276 -0.0440044 0.131945
+v 0.0250276 0.0440044 0.131945
+v -0.0250276 -0.0440044 0.131945
+v -0.0250276 0.0440044 0.131945
+v -0.0201528 -0.0463348 -0.132024
+v -0.0201528 0.0463348 -0.132024
+v 0.0201528 -0.0463348 -0.132024
+v 0.0201528 0.0463348 -0.132024
+v 0.0201528 -0.0463348 0.132024
+v 0.0201528 0.0463348 0.132024
+v -0.0201528 -0.0463348 0.132024
+v -0.0201528 0.0463348 0.132024
+v -0.0132107 -0.0486075 -0.132151
+v -0.0132107 0.0486075 -0.132151
+v 0.0132107 -0.0486075 -0.132151
+v 0.0132107 0.0486075 -0.132151
+v 0.0132107 -0.0486075 0.132151
+v 0.0132107 0.0486075 0.132151
+v -0.0132107 -0.0486075 0.132151
+v -0.0132107 0.0486075 0.132151
+v -0.0486329 -0.0126542 -0.132247
+v -0.0486329 0.0126542 -0.132247
+v 0.0486329 -0.0126542 -0.132247
+v 0.0486329 0.0126542 -0.132247
+v 0.0486329 -0.0126542 0.132247
+v 0.0486329 0.0126542 0.132247
+v -0.0486329 -0.0126542 0.132247
+v -0.0486329 0.0126542 0.132247
+v -0.0389483 -0.0315903 -0.13233
+v -0.0389483 0.0315903 -0.13233
+v 0.0389483 -0.0315903 -0.13233
+v 0.0389483 0.0315903 -0.13233
+v 0.0389483 -0.0315903 0.13233
+v 0.0389483 0.0315903 0.13233
+v -0.0389483 -0.0315903 0.13233
+v -0.0389483 0.0315903 0.13233
+v -0.0277889 -0.0416192 -0.132415
+v -0.0277889 0.0416192 -0.132415
+v 0.0277889 -0.0416192 -0.132415
+v 0.0277889 0.0416192 -0.132415
+v 0.0277889 -0.0416192 0.132415
+v 0.0277889 0.0416192 0.132415
+v -0.0277889 -0.0416192 0.132415
+v -0.0277889 0.0416192 0.132415
+v -0.0453846 -0.0209327 -0.132466
+v -0.0453846 0.0209327 -0.132466
+v 0.0453846 -0.0209327 -0.132466
+v 0.0453846 0.0209327 -0.132466
+v 0.0453846 -0.0209327 0.132466
+v 0.0453846 0.0209327 0.132466
+v -0.0453846 -0.0209327 0.132466
+v -0.0453846 0.0209327 0.132466
+v -0.0488775 -0.00985854 -0.13256
+v -0.0488775 0.00985854 -0.13256
+v 0.0488775 -0.00985854 -0.13256
+v 0.0488775 0.00985854 -0.13256
+v 0.0488775 -0.00985854 0.13256
+v 0.0488775 0.00985854 0.13256
+v -0.0488775 -0.00985854 0.13256
+v -0.0488775 0.00985854 0.13256
+v -0.0110336 -0.0486075 -0.132575
+v -0.0110336 0.0486075 -0.132575
+v 0.0110336 -0.0486075 -0.132575
+v 0.0110336 0.0486075 -0.132575
+v 0.0110336 -0.0486075 0.132575
+v 0.0110336 0.0486075 0.132575
+v -0.0110336 -0.0486075 0.132575
+v -0.0110336 0.0486075 0.132575
+v -0.0422436 -0.0263271 -0.132629
+v -0.0422436 0.0263271 -0.132629
+v 0.0422436 -0.0263271 -0.132629
+v 0.0422436 0.0263271 -0.132629
+v 0.0422436 -0.0263271 0.132629
+v 0.0422436 0.0263271 0.132629
+v -0.0422436 -0.0263271 0.132629
+v -0.0422436 0.0263271 0.132629
+v -0.036169 -0.0341645 -0.132647
+v -0.036169 0.0341645 -0.132647
+v 0.036169 -0.0341645 -0.132647
+v 0.036169 0.0341645 -0.132647
+v 0.036169 -0.0341645 0.132647
+v 0.036169 0.0341645 0.132647
+v -0.036169 -0.0341645 0.132647
+v -0.036169 0.0341645 0.132647
+v -0.0179759 -0.0463348 -0.132689
+v -0.0179759 0.0463348 -0.132689
+v 0.0179759 -0.0463348 -0.132689
+v 0.0179759 0.0463348 -0.132689
+v 0.0179759 -0.0463348 0.132689
+v 0.0179759 0.0463348 0.132689
+v -0.0179759 -0.0463348 0.132689
+v -0.0179759 0.0463348 0.132689
+v -0.0305755 -0.0391821 -0.132689
+v -0.0305755 0.0391821 -0.132689
+v 0.0305755 -0.0391821 -0.132689
+v 0.0305755 0.0391821 -0.132689
+v 0.0305755 -0.0391821 0.132689
+v 0.0305755 0.0391821 0.132689
+v -0.0305755 -0.0391821 0.132689
+v -0.0305755 0.0391821 0.132689
+v -0.0333734 -0.0366961 -0.132766
+v -0.0333734 0.0366961 -0.132766
+v 0.0333734 -0.0366961 -0.132766
+v 0.0333734 0.0366961 -0.132766
+v 0.0333734 -0.0366961 0.132766
+v 0.0333734 0.0366961 0.132766
+v -0.0333734 -0.0366961 0.132766
+v -0.0333734 0.0366961 0.132766
+v -0.0228505 -0.0440044 -0.132781
+v -0.0228505 0.0440044 -0.132781
+v 0.0228505 -0.0440044 -0.132781
+v 0.0228505 0.0440044 -0.132781
+v 0.0228505 -0.0440044 0.132781
+v 0.0228505 0.0440044 0.132781
+v -0.0228505 -0.0440044 0.132781
+v -0.0228505 0.0440044 0.132781
+v -0.0490613 -0.0070506 -0.132796
+v -0.0490613 0.0070506 -0.132796
+v 0.0490613 -0.0070506 -0.132796
+v 0.0490613 0.0070506 -0.132796
+v 0.0490613 -0.0070506 0.132796
+v 0.0490613 0.0070506 0.132796
+v -0.0490613 -0.0070506 0.132796
+v -0.0490613 0.0070506 0.132796
+v -0.00884303 -0.0486075 -0.132921
+v -0.00884303 0.0486075 -0.132921
+v 0.00884303 -0.0486075 -0.132921
+v 0.00884303 0.0486075 -0.132921
+v 0.00884303 -0.0486075 0.132921
+v 0.00884303 0.0486075 0.132921
+v -0.00884303 -0.0486075 0.132921
+v -0.00884303 0.0486075 0.132921
+v -0.0491839 -0.00423388 -0.132953
+v -0.0491839 0.00423388 -0.132953
+v 0.0491839 -0.00423388 -0.132953
+v 0.0491839 0.00423388 -0.132953
+v 0.0491839 -0.00423388 0.132953
+v 0.0491839 0.00423388 0.132953
+v -0.0491839 -0.00423388 0.132953
+v -0.0491839 0.00423388 0.132953
+v -0.0457905 -0.0181947 -0.133025
+v -0.0457905 0.0181947 -0.133025
+v 0.0457905 -0.0181947 -0.133025
+v 0.0457905 0.0181947 -0.133025
+v 0.0457905 -0.0181947 0.133025
+v 0.0457905 0.0181947 0.133025
+v -0.0457905 -0.0181947 0.133025
+v -0.0457905 0.0181947 0.133025
+v -0.0492452 -0.00141188 -0.133031
+v -0.0492452 0.00141188 -0.133031
+v 0.0492452 -0.00141188 -0.133031
+v 0.0492452 0.00141188 -0.133031
+v 0.0492452 -0.00141188 0.133031
+v 0.0492452 0.00141188 0.133031
+v -0.0492452 -0.00141188 0.133031
+v -0.0492452 0.00141188 0.133031
+v -0.00664172 -0.0486075 -0.133192
+v -0.00664172 0.0486075 -0.133192
+v 0.00664172 -0.0486075 -0.133192
+v 0.00664172 0.0486075 -0.133192
+v 0.00664172 -0.0486075 0.133192
+v 0.00664172 0.0486075 0.133192
+v -0.00664172 -0.0486075 0.133192
+v -0.00664172 0.0486075 0.133192
+v -0.0395149 -0.0289768 -0.133237
+v -0.0395149 0.0289768 -0.133237
+v 0.0395149 -0.0289768 -0.133237
+v 0.0395149 0.0289768 -0.133237
+v 0.0395149 -0.0289768 0.133237
+v 0.0395149 0.0289768 0.133237
+v -0.0395149 -0.0289768 0.133237
+v -0.0395149 0.0289768 0.133237
+v -0.0157771 -0.0463348 -0.133278
+v -0.0157771 0.0463348 -0.133278
+v 0.0157771 -0.0463348 -0.133278
+v 0.0157771 0.0463348 -0.133278
+v 0.0157771 -0.0463348 0.133278
+v 0.0157771 0.0463348 0.133278
+v -0.0157771 -0.0463348 0.133278
+v -0.0157771 0.0463348 0.133278
+v -0.0255937 -0.0416192 -0.133347
+v -0.0255937 0.0416192 -0.133347
+v 0.0255937 -0.0416192 -0.133347
+v 0.0255937 0.0416192 -0.133347
+v 0.0255937 -0.0416192 0.133347
+v 0.0255937 0.0416192 0.133347
+v -0.0255937 -0.0416192 0.133347
+v -0.0255937 0.0416192 0.133347
+v -0.0427369 -0.0236447 -0.13336
+v -0.0427369 0.0236447 -0.13336
+v 0.0427369 -0.0236447 -0.13336
+v 0.0427369 0.0236447 -0.13336
+v 0.0427369 -0.0236447 0.13336
+v 0.0427369 0.0236447 0.13336
+v -0.0427369 -0.0236447 0.13336
+v -0.0427369 0.0236447 0.13336
+v -0.00443231 -0.0486075 -0.133385
+v -0.00443231 0.0486075 -0.133385
+v 0.00443231 -0.0486075 -0.133385
+v 0.00443231 0.0486075 -0.133385
+v 0.00443231 -0.0486075 0.133385
+v 0.00443231 0.0486075 0.133385
+v -0.00443231 -0.0486075 0.133385
+v -0.00443231 0.0486075 0.133385
+v -0.00221751 -0.0486075 -0.133501
+v -0.00221751 0.0486075 -0.133501
+v 0.00221751 -0.0486075 -0.133501
+v 0.00221751 0.0486075 -0.133501
+v 0.00221751 -0.0486075 0.133501
+v 0.00221751 0.0486075 0.133501
+v -0.00221751 -0.0486075 0.133501
+v -0.00221751 0.0486075 0.133501
+v -0.0461394 -0.0154341 -0.133505
+v -0.0461394 0.0154341 -0.133505
+v 0.0461394 -0.0154341 -0.133505
+v 0.0461394 0.0154341 -0.133505
+v 0.0461394 -0.0154341 0.133505
+v 0.0461394 0.0154341 0.133505
+v -0.0461394 -0.0154341 0.133505
+v -0.0461394 0.0154341 0.133505
+v -0.0206455 -0.0440044 -0.13354
+v -0.0206455 0.0440044 -0.13354
+v 0.0206455 -0.0440044 -0.13354
+v 0.0206455 0.0440044 -0.13354
+v 0.0206455 -0.0440044 0.13354
+v 0.0206455 0.0440044 0.13354
+v -0.0206455 -0.0440044 0.13354
+v -0.0206455 0.0440044 0.13354
+v -1.16721e-17 -0.0486075 -0.13354
+v -1.16721e-17 0.0486075 -0.13354
+v 3.89069e-18 -0.0486075 0.13354
+v 3.89069e-18 0.0486075 0.13354
+v -0.0367493 -0.0315903 -0.133652
+v -0.0367493 0.0315903 -0.133652
+v 0.0367493 -0.0315903 -0.133652
+v 0.0367493 0.0315903 -0.133652
+v 0.0367493 -0.0315903 0.133652
+v 0.0367493 0.0315903 0.133652
+v -0.0367493 -0.0315903 0.133652
+v -0.0367493 0.0315903 0.133652
+v -0.028369 -0.0391821 -0.133718
+v -0.028369 0.0391821 -0.133718
+v 0.028369 -0.0391821 -0.133718
+v 0.028369 0.0391821 -0.133718
+v 0.028369 -0.0391821 0.133718
+v 0.028369 0.0391821 0.133718
+v -0.028369 -0.0391821 0.133718
+v -0.028369 0.0391821 0.133718
+v -0.0135591 -0.0463348 -0.133791
+v -0.0135591 0.0463348 -0.133791
+v 0.0135591 -0.0463348 -0.133791
+v 0.0135591 0.0463348 -0.133791
+v 0.0135591 -0.0463348 0.133791
+v 0.0135591 0.0463348 0.133791
+v -0.0135591 -0.0463348 0.133791
+v -0.0135591 0.0463348 0.133791
+v -0.0339606 -0.0341645 -0.133871
+v -0.0339606 0.0341645 -0.133871
+v 0.0339606 -0.0341645 -0.133871
+v 0.0339606 0.0341645 -0.133871
+v 0.0339606 -0.0341645 0.133871
+v 0.0339606 0.0341645 0.133871
+v -0.0339606 -0.0341645 0.133871
+v -0.0339606 0.0341645 0.133871
+v -0.0311626 -0.0366961 -0.133893
+v -0.0311626 0.0366961 -0.133893
+v 0.0311626 -0.0366961 -0.133893
+v 0.0311626 0.0366961 -0.133893
+v 0.0311626 -0.0366961 0.133893
+v 0.0311626 0.0366961 0.133893
+v -0.0311626 -0.0366961 0.133893
+v -0.0311626 0.0366961 0.133893
+v -0.0464308 -0.0126542 -0.133907
+v -0.0464308 0.0126542 -0.133907
+v 0.0464308 -0.0126542 -0.133907
+v 0.0464308 0.0126542 -0.133907
+v 0.0464308 -0.0126542 0.133907
+v 0.0464308 0.0126542 0.133907
+v -0.0464308 -0.0126542 0.133907
+v -0.0464308 0.0126542 0.133907
+v -0.0431769 -0.0209327 -0.134012
+v -0.0431769 0.0209327 -0.134012
+v 0.0431769 -0.0209327 -0.134012
+v 0.0431769 0.0209327 -0.134012
+v 0.0431769 -0.0209327 0.134012
+v 0.0431769 0.0209327 0.134012
+v -0.0431769 -0.0209327 0.134012
+v -0.0431769 0.0209327 0.134012
+v -0.0400322 -0.0263271 -0.134065
+v -0.0400322 0.0263271 -0.134065
+v 0.0400322 -0.0263271 -0.134065
+v 0.0400322 0.0263271 -0.134065
+v 0.0400322 -0.0263271 0.134065
+v 0.0400322 0.0263271 0.134065
+v -0.0400322 -0.0263271 0.134065
+v -0.0400322 0.0263271 0.134065
+v -0.0233674 -0.0416192 -0.134201
+v -0.0233674 0.0416192 -0.134201
+v 0.0233674 -0.0416192 -0.134201
+v 0.0233674 0.0416192 -0.134201
+v 0.0233674 -0.0416192 0.134201
+v 0.0233674 0.0416192 0.134201
+v -0.0233674 -0.0416192 0.134201
+v -0.0233674 0.0416192 0.134201
+v -0.0184154 -0.0440044 -0.134222
+v -0.0184154 0.0440044 -0.134222
+v 0.0184154 -0.0440044 -0.134222
+v 0.0184154 0.0440044 -0.134222
+v 0.0184154 -0.0440044 0.134222
+v 0.0184154 0.0440044 0.134222
+v -0.0184154 -0.0440044 0.134222
+v -0.0184154 0.0440044 0.134222
+v -0.0113246 -0.0463348 -0.134225
+v -0.0113246 0.0463348 -0.134225
+v 0.0113246 -0.0463348 -0.134225
+v 0.0113246 0.0463348 -0.134225
+v 0.0113246 -0.0463348 0.134225
+v 0.0113246 0.0463348 0.134225
+v -0.0113246 -0.0463348 0.134225
+v -0.0113246 0.0463348 0.134225
+v -0.0466644 -0.00985854 -0.134228
+v -0.0466644 0.00985854 -0.134228
+v 0.0466644 -0.00985854 -0.134228
+v 0.0466644 0.00985854 -0.134228
+v 0.0466644 -0.00985854 0.134228
+v 0.0466644 0.00985854 0.134228
+v -0.0466644 -0.00985854 0.134228
+v -0.0466644 0.00985854 0.134228
+v -0.0468398 -0.0070506 -0.13447
+v -0.0468398 0.0070506 -0.13447
+v 0.0468398 -0.0070506 -0.13447
+v 0.0468398 0.0070506 -0.13447
+v 0.0468398 -0.0070506 0.13447
+v 0.0468398 0.0070506 0.13447
+v -0.0468398 -0.0070506 0.13447
+v -0.0468398 0.0070506 0.13447
+v -0.0372839 -0.0289768 -0.134578
+v -0.0372839 0.0289768 -0.134578
+v 0.0372839 -0.0289768 -0.134578
+v 0.0372839 0.0289768 -0.134578
+v 0.0372839 -0.0289768 0.134578
+v 0.0372839 0.0289768 0.134578
+v -0.0372839 -0.0289768 0.134578
+v -0.0372839 0.0289768 0.134578
+v -0.00907627 -0.0463348 -0.134581
+v -0.00907627 0.0463348 -0.134581
+v 0.00907627 -0.0463348 -0.134581
+v 0.00907627 0.0463348 -0.134581
+v 0.00907627 -0.0463348 0.134581
+v 0.00907627 0.0463348 0.134581
+v -0.00907627 -0.0463348 0.134581
+v -0.00907627 0.0463348 0.134581
+v -0.0435631 -0.0181947 -0.134585
+v -0.0435631 0.0181947 -0.134585
+v 0.0435631 -0.0181947 -0.134585
+v 0.0435631 0.0181947 -0.134585
+v 0.0435631 -0.0181947 0.134585
+v 0.0435631 0.0181947 0.134585
+v -0.0435631 -0.0181947 0.134585
+v -0.0435631 0.0181947 0.134585
+v -0.0469569 -0.00423388 -0.134631
+v -0.0469569 0.00423388 -0.134631
+v 0.0469569 -0.00423388 -0.134631
+v 0.0469569 0.00423388 -0.134631
+v 0.0469569 -0.00423388 0.134631
+v 0.0469569 0.00423388 0.134631
+v -0.0469569 -0.00423388 0.134631
+v -0.0469569 0.00423388 0.134631
+v -0.026128 -0.0391821 -0.134669
+v -0.026128 0.0391821 -0.134669
+v 0.026128 -0.0391821 -0.134669
+v 0.026128 0.0391821 -0.134669
+v 0.026128 -0.0391821 0.134669
+v 0.026128 0.0391821 0.134669
+v -0.026128 -0.0391821 0.134669
+v -0.026128 0.0391821 0.134669
+v -0.0470155 -0.00141188 -0.134711
+v -0.0470155 0.00141188 -0.134711
+v 0.0470155 -0.00141188 -0.134711
+v 0.0470155 0.00141188 -0.134711
+v 0.0470155 -0.00141188 0.134711
+v 0.0470155 0.00141188 0.134711
+v -0.0470155 -0.00141188 0.134711
+v -0.0470155 0.00141188 0.134711
+v -0.0404996 -0.0236447 -0.134813
+v -0.0404996 0.0236447 -0.134813
+v 0.0404996 -0.0236447 -0.134813
+v 0.0404996 0.0236447 -0.134813
+v 0.0404996 -0.0236447 0.134813
+v 0.0404996 0.0236447 0.134813
+v -0.0404996 -0.0236447 0.134813
+v -0.0404996 0.0236447 0.134813
+v -0.0161629 -0.0440044 -0.134826
+v -0.0161629 0.0440044 -0.134826
+v 0.0161629 -0.0440044 -0.134826
+v 0.0161629 0.0440044 -0.134826
+v 0.0161629 -0.0440044 0.134826
+v 0.0161629 0.0440044 0.134826
+v -0.0161629 -0.0440044 0.134826
+v -0.0161629 0.0440044 0.134826
+v -0.00681689 -0.0463348 -0.134858
+v -0.00681689 0.0463348 -0.134858
+v 0.00681689 -0.0463348 -0.134858
+v 0.00681689 0.0463348 -0.134858
+v 0.00681689 -0.0463348 0.134858
+v 0.00681689 0.0463348 0.134858
+v -0.00681689 -0.0463348 0.134858
+v -0.00681689 0.0463348 0.134858
+v -0.0345055 -0.0315903 -0.134895
+v -0.0345055 0.0315903 -0.134895
+v 0.0345055 -0.0315903 -0.134895
+v 0.0345055 0.0315903 -0.134895
+v 0.0345055 -0.0315903 0.134895
+v 0.0345055 0.0315903 0.134895
+v -0.0345055 -0.0315903 0.134895
+v -0.0345055 0.0315903 0.134895
+v -0.0289138 -0.0366961 -0.134941
+v -0.0289138 0.0366961 -0.134941
+v 0.0289138 -0.0366961 -0.134941
+v 0.0289138 0.0366961 -0.134941
+v 0.0289138 -0.0366961 0.134941
+v 0.0289138 0.0366961 0.134941
+v -0.0289138 -0.0366961 0.134941
+v -0.0289138 0.0366961 0.134941
+v -0.0211125 -0.0416192 -0.134978
+v -0.0211125 0.0416192 -0.134978
+v 0.0211125 -0.0416192 -0.134978
+v 0.0211125 0.0416192 -0.134978
+v 0.0211125 -0.0416192 0.134978
+v 0.0211125 0.0416192 0.134978
+v -0.0211125 -0.0416192 0.134978
+v -0.0211125 0.0416192 0.134978
+v -0.0317109 -0.0341645 -0.135017
+v -0.0317109 0.0341645 -0.135017
+v 0.0317109 -0.0341645 -0.135017
+v 0.0317109 0.0341645 -0.135017
+v 0.0317109 -0.0341645 0.135017
+v 0.0317109 0.0341645 0.135017
+v -0.0317109 -0.0341645 0.135017
+v -0.0317109 0.0341645 0.135017
+v -0.00454922 -0.0463348 -0.135057
+v -0.00454922 0.0463348 -0.135057
+v 0.00454922 -0.0463348 -0.135057
+v 0.00454922 0.0463348 -0.135057
+v 0.00454922 -0.0463348 0.135057
+v 0.00454922 0.0463348 0.135057
+v -0.00454922 -0.0463348 0.135057
+v -0.00454922 0.0463348 0.135057
+v -0.043895 -0.0154341 -0.135077
+v -0.043895 0.0154341 -0.135077
+v 0.043895 -0.0154341 -0.135077
+v 0.043895 0.0154341 -0.135077
+v 0.043895 -0.0154341 0.135077
+v 0.043895 0.0154341 0.135077
+v -0.043895 -0.0154341 0.135077
+v -0.043895 0.0154341 0.135077
+v -0.00227599 -0.0463348 -0.135176
+v -0.00227599 0.0463348 -0.135176
+v 0.00227599 -0.0463348 -0.135176
+v 0.00227599 0.0463348 -0.135176
+v 0.00227599 -0.0463348 0.135176
+v 0.00227599 0.0463348 0.135176
+v -0.00227599 -0.0463348 0.135176
+v -0.00227599 0.0463348 0.135176
+v -1.19799e-17 -0.0463348 -0.135216
+v -1.19799e-17 0.0463348 -0.135216
+v 3.99331e-18 -0.0463348 0.135216
+v 3.99331e-18 0.0463348 0.135216
+v -0.0138906 -0.0440044 -0.13535
+v -0.0138906 0.0440044 -0.13535
+v 0.0138906 -0.0440044 -0.13535
+v 0.0138906 0.0440044 -0.13535
+v 0.0138906 -0.0440044 0.13535
+v 0.0138906 0.0440044 0.13535
+v -0.0138906 -0.0440044 0.13535
+v -0.0138906 0.0440044 0.13535
+v -0.037772 -0.0263271 -0.135423
+v -0.037772 0.0263271 -0.135423
+v 0.037772 -0.0263271 -0.135423
+v 0.037772 0.0263271 -0.135423
+v 0.037772 -0.0263271 0.135423
+v 0.037772 0.0263271 0.135423
+v -0.037772 -0.0263271 0.135423
+v -0.037772 0.0263271 0.135423
+v -0.0409166 -0.0209327 -0.13548
+v -0.0409166 0.0209327 -0.13548
+v 0.0409166 -0.0209327 -0.13548
+v 0.0409166 0.0209327 -0.13548
+v 0.0409166 -0.0209327 0.13548
+v 0.0409166 0.0209327 0.13548
+v -0.0409166 -0.0209327 0.13548
+v -0.0409166 0.0209327 0.13548
+v -0.0441722 -0.0126542 -0.135488
+v -0.0441722 0.0126542 -0.135488
+v 0.0441722 -0.0126542 -0.135488
+v 0.0441722 0.0126542 -0.135488
+v 0.0441722 -0.0126542 0.135488
+v 0.0441722 0.0126542 0.135488
+v -0.0441722 -0.0126542 0.135488
+v -0.0441722 0.0126542 0.135488
+v -0.0238552 -0.0391821 -0.135542
+v -0.0238552 0.0391821 -0.135542
+v 0.0238552 -0.0391821 -0.135542
+v 0.0238552 0.0391821 -0.135542
+v 0.0238552 -0.0391821 0.135542
+v 0.0238552 0.0391821 0.135542
+v -0.0238552 -0.0391821 0.135542
+v -0.0238552 0.0391821 0.135542
+v -0.018832 -0.0416192 -0.135675
+v -0.018832 0.0416192 -0.135675
+v 0.018832 -0.0416192 -0.135675
+v 0.018832 0.0416192 -0.135675
+v 0.018832 -0.0416192 0.135675
+v 0.018832 0.0416192 0.135675
+v -0.018832 -0.0416192 0.135675
+v -0.018832 0.0416192 0.135675
+v -0.0116015 -0.0440044 -0.135795
+v -0.0116015 0.0440044 -0.135795
+v 0.0116015 -0.0440044 -0.135795
+v 0.0116015 0.0440044 -0.135795
+v 0.0116015 -0.0440044 0.135795
+v 0.0116015 0.0440044 0.135795
+v -0.0116015 -0.0440044 0.135795
+v -0.0116015 0.0440044 0.135795
+v -0.0443945 -0.00985854 -0.135817
+v -0.0443945 0.00985854 -0.135817
+v 0.0443945 -0.00985854 -0.135817
+v 0.0443945 0.00985854 -0.135817
+v 0.0443945 -0.00985854 0.135817
+v 0.0443945 0.00985854 0.135817
+v -0.0443945 -0.00985854 0.135817
+v -0.0443945 0.00985854 0.135817
+v -0.0350074 -0.0289768 -0.135839
+v -0.0350074 0.0289768 -0.135839
+v 0.0350074 -0.0289768 -0.135839
+v 0.0350074 0.0289768 -0.135839
+v 0.0350074 -0.0289768 0.135839
+v 0.0350074 0.0289768 0.135839
+v -0.0350074 -0.0289768 0.135839
+v -0.0350074 0.0289768 0.135839
+v -0.0266297 -0.0366961 -0.135911
+v -0.0266297 0.0366961 -0.135911
+v 0.0266297 -0.0366961 -0.135911
+v 0.0266297 0.0366961 -0.135911
+v 0.0266297 -0.0366961 0.135911
+v 0.0266297 0.0366961 0.135911
+v -0.0266297 -0.0366961 0.135911
+v -0.0266297 0.0366961 0.135911
+v -0.0322197 -0.0315903 -0.13606
+v -0.0322197 0.0315903 -0.13606
+v 0.0322197 -0.0315903 -0.13606
+v 0.0322197 0.0315903 -0.13606
+v 0.0322197 -0.0315903 0.13606
+v 0.0322197 0.0315903 0.13606
+v -0.0322197 -0.0315903 0.13606
+v -0.0322197 0.0315903 0.13606
+v -0.0445614 -0.0070506 -0.136065
+v -0.0445614 0.0070506 -0.136065
+v 0.0445614 -0.0070506 -0.136065
+v 0.0445614 0.0070506 -0.136065
+v 0.0445614 -0.0070506 0.136065
+v 0.0445614 0.0070506 0.136065
+v -0.0445614 -0.0070506 0.136065
+v -0.0445614 0.0070506 0.136065
+v -0.0412825 -0.0181947 -0.136066
+v -0.0412825 0.0181947 -0.136066
+v 0.0412825 -0.0181947 -0.136066
+v 0.0412825 0.0181947 -0.136066
+v 0.0412825 -0.0181947 0.136066
+v 0.0412825 0.0181947 0.136066
+v -0.0412825 -0.0181947 0.136066
+v -0.0412825 0.0181947 0.136066
+v -0.0294225 -0.0341645 -0.136084
+v -0.0294225 0.0341645 -0.136084
+v 0.0294225 -0.0341645 -0.136084
+v 0.0294225 0.0341645 -0.136084
+v 0.0294225 -0.0341645 0.136084
+v 0.0294225 0.0341645 0.136084
+v -0.0294225 -0.0341645 0.136084
+v -0.0294225 0.0341645 0.136084
+v -0.00929819 -0.0440044 -0.13616
+v -0.00929819 0.0440044 -0.13616
+v 0.00929819 -0.0440044 -0.13616
+v 0.00929819 0.0440044 -0.13616
+v 0.00929819 -0.0440044 0.13616
+v 0.00929819 0.0440044 0.13616
+v -0.00929819 -0.0440044 0.13616
+v -0.00929819 0.0440044 0.13616
+v -0.038213 -0.0236447 -0.136187
+v -0.038213 0.0236447 -0.136187
+v 0.038213 -0.0236447 -0.136187
+v 0.038213 0.0236447 -0.136187
+v 0.038213 -0.0236447 0.136187
+v 0.038213 0.0236447 0.136187
+v -0.038213 -0.0236447 0.136187
+v -0.038213 0.0236447 0.136187
+v -0.0446727 -0.00423388 -0.13623
+v -0.0446727 0.00423388 -0.13623
+v 0.0446727 -0.00423388 -0.13623
+v 0.0446727 0.00423388 -0.13623
+v 0.0446727 -0.00423388 0.13623
+v 0.0446727 0.00423388 0.13623
+v -0.0446727 -0.00423388 0.13623
+v -0.0446727 0.00423388 0.13623
+v -0.0165285 -0.0416192 -0.136292
+v -0.0165285 0.0416192 -0.136292
+v 0.0165285 -0.0416192 -0.136292
+v 0.0165285 0.0416192 -0.136292
+v 0.0165285 -0.0416192 0.136292
+v 0.0165285 0.0416192 0.136292
+v -0.0165285 -0.0416192 0.136292
+v -0.0165285 0.0416192 0.136292
+v -0.0447285 -0.00141188 -0.136313
+v -0.0447285 0.00141188 -0.136313
+v 0.0447285 -0.00141188 -0.136313
+v 0.0447285 0.00141188 -0.136313
+v 0.0447285 -0.00141188 0.136313
+v 0.0447285 0.00141188 0.136313
+v -0.0447285 -0.00141188 0.136313
+v -0.0447285 0.00141188 0.136313
+v -0.0215533 -0.0391821 -0.136334
+v -0.0215533 0.0391821 -0.136334
+v 0.0215533 -0.0391821 -0.136334
+v 0.0215533 0.0391821 -0.136334
+v 0.0215533 -0.0391821 0.136334
+v 0.0215533 0.0391821 0.136334
+v -0.0215533 -0.0391821 0.136334
+v -0.0215533 0.0391821 0.136334
+v -0.00698358 -0.0440044 -0.136444
+v -0.00698358 0.0440044 -0.136444
+v 0.00698358 -0.0440044 -0.136444
+v 0.00698358 0.0440044 -0.136444
+v 0.00698358 -0.0440044 0.136444
+v 0.00698358 0.0440044 0.136444
+v -0.00698358 -0.0440044 0.136444
+v -0.00698358 0.0440044 0.136444
+v -0.0415971 -0.0154341 -0.136569
+v -0.0415971 0.0154341 -0.136569
+v 0.0415971 -0.0154341 -0.136569
+v 0.0415971 0.0154341 -0.136569
+v 0.0415971 -0.0154341 0.136569
+v 0.0415971 0.0154341 0.136569
+v -0.0415971 -0.0154341 0.136569
+v -0.0415971 0.0154341 0.136569
+v -0.00466045 -0.0440044 -0.136648
+v -0.00466045 0.0440044 -0.136648
+v 0.00466045 -0.0440044 -0.136648
+v 0.00466045 0.0440044 -0.136648
+v 0.00466045 -0.0440044 0.136648
+v 0.00466045 0.0440044 0.136648
+v -0.00466045 -0.0440044 0.136648
+v -0.00466045 0.0440044 0.136648
+v -0.0354657 -0.0263271 -0.136701
+v -0.0354657 0.0263271 -0.136701
+v 0.0354657 -0.0263271 -0.136701
+v 0.0354657 0.0263271 -0.136701
+v 0.0354657 -0.0263271 0.136701
+v 0.0354657 0.0263271 0.136701
+v -0.0354657 -0.0263271 0.136701
+v -0.0354657 0.0263271 0.136701
+v -0.00233164 -0.0440044 -0.13677
+v -0.00233164 0.0440044 -0.13677
+v 0.00233164 -0.0440044 -0.13677
+v 0.00233164 0.0440044 -0.13677
+v 0.00233164 -0.0440044 0.13677
+v 0.00233164 0.0440044 0.13677
+v -0.00233164 -0.0440044 0.13677
+v -0.00233164 0.0440044 0.13677
+v -0.0243133 -0.0366961 -0.1368
+v -0.0243133 0.0366961 -0.1368
+v 0.0243133 -0.0366961 -0.1368
+v 0.0243133 0.0366961 -0.1368
+v 0.0243133 -0.0366961 0.1368
+v 0.0243133 0.0366961 0.1368
+v -0.0243133 -0.0366961 0.1368
+v -0.0243133 0.0366961 0.1368
+v -1.22728e-17 -0.0440044 -0.13681
+v -1.22728e-17 0.0440044 -0.13681
+v 4.09095e-18 -0.0440044 0.13681
+v 4.09095e-18 0.0440044 0.13681
+v -0.0142049 -0.0416192 -0.136829
+v -0.0142049 0.0416192 -0.136829
+v 0.0142049 -0.0416192 -0.136829
+v 0.0142049 0.0416192 -0.136829
+v 0.0142049 -0.0416192 0.136829
+v 0.0142049 0.0416192 0.136829
+v -0.0142049 -0.0416192 0.136829
+v -0.0142049 0.0416192 0.136829
+v -0.0386064 -0.0209327 -0.136868
+v -0.0386064 0.0209327 -0.136868
+v 0.0386064 -0.0209327 -0.136868
+v 0.0386064 0.0209327 -0.136868
+v 0.0386064 -0.0209327 0.136868
+v 0.0386064 0.0209327 0.136868
+v -0.0386064 -0.0209327 0.136868
+v -0.0386064 0.0209327 0.136868
+v -0.0418598 -0.0126542 -0.13699
+v -0.0418598 0.0126542 -0.13699
+v 0.0418598 -0.0126542 -0.13699
+v 0.0418598 0.0126542 -0.13699
+v 0.0418598 -0.0126542 0.13699
+v 0.0418598 0.0126542 0.13699
+v -0.0418598 -0.0126542 0.13699
+v -0.0418598 0.0126542 0.13699
+v -0.0326883 -0.0289768 -0.137021
+v -0.0326883 0.0289768 -0.137021
+v 0.0326883 -0.0289768 -0.137021
+v 0.0326883 0.0289768 -0.137021
+v 0.0326883 -0.0289768 0.137021
+v 0.0326883 0.0289768 0.137021
+v -0.0326883 -0.0289768 0.137021
+v -0.0326883 0.0289768 0.137021
+v -0.0192251 -0.0391821 -0.137046
+v -0.0192251 0.0391821 -0.137046
+v 0.0192251 -0.0391821 -0.137046
+v 0.0192251 0.0391821 -0.137046
+v 0.0192251 -0.0391821 0.137046
+v 0.0192251 0.0391821 0.137046
+v -0.0192251 -0.0391821 0.137046
+v -0.0192251 0.0391821 0.137046
+v -0.0270983 -0.0341645 -0.137071
+v -0.0270983 0.0341645 -0.137071
+v 0.0270983 -0.0341645 -0.137071
+v 0.0270983 0.0341645 -0.137071
+v 0.0270983 -0.0341645 0.137071
+v 0.0270983 0.0341645 0.137071
+v -0.0270983 -0.0341645 0.137071
+v -0.0270983 0.0341645 0.137071
+v -0.0298946 -0.0315903 -0.137144
+v -0.0298946 0.0315903 -0.137144
+v 0.0298946 -0.0315903 -0.137144
+v 0.0298946 0.0315903 -0.137144
+v 0.0298946 -0.0315903 0.137144
+v 0.0298946 0.0315903 0.137144
+v -0.0298946 -0.0315903 0.137144
+v -0.0298946 0.0315903 0.137144
+v -0.0118639 -0.0416192 -0.137284
+v -0.0118639 0.0416192 -0.137284
+v 0.0118639 -0.0416192 -0.137284
+v 0.0118639 0.0416192 -0.137284
+v 0.0118639 -0.0416192 0.137284
+v 0.0118639 0.0416192 0.137284
+v -0.0118639 -0.0416192 0.137284
+v -0.0118639 0.0416192 0.137284
+v -0.0420704 -0.00985854 -0.137327
+v -0.0420704 0.00985854 -0.137327
+v 0.0420704 -0.00985854 -0.137327
+v 0.0420704 0.00985854 -0.137327
+v 0.0420704 -0.00985854 0.137327
+v 0.0420704 0.00985854 0.137327
+v -0.0420704 -0.00985854 0.137327
+v -0.0420704 0.00985854 0.137327
+v -0.0389517 -0.0181947 -0.137466
+v -0.0389517 0.0181947 -0.137466
+v 0.0389517 -0.0181947 -0.137466
+v 0.0389517 0.0181947 -0.137466
+v 0.0389517 -0.0181947 0.137466
+v 0.0389517 0.0181947 0.137466
+v -0.0389517 -0.0181947 0.137466
+v -0.0389517 0.0181947 0.137466
+v -0.0358798 -0.0236447 -0.13748
+v -0.0358798 0.0236447 -0.13748
+v 0.0358798 -0.0236447 -0.13748
+v 0.0358798 0.0236447 -0.13748
+v 0.0358798 -0.0236447 0.13748
+v 0.0358798 0.0236447 0.13748
+v -0.0358798 -0.0236447 0.13748
+v -0.0358798 0.0236447 0.13748
+v -0.0422286 -0.0070506 -0.13758
+v -0.0422286 0.0070506 -0.13758
+v 0.0422286 -0.0070506 -0.13758
+v 0.0422286 0.0070506 -0.13758
+v 0.0422286 -0.0070506 0.13758
+v 0.0422286 0.0070506 0.13758
+v -0.0422286 -0.0070506 0.13758
+v -0.0422286 0.0070506 0.13758
+v -0.0219672 -0.0366961 -0.137608
+v -0.0219672 0.0366961 -0.137608
+v 0.0219672 -0.0366961 -0.137608
+v 0.0219672 0.0366961 -0.137608
+v 0.0219672 -0.0366961 0.137608
+v 0.0219672 0.0366961 0.137608
+v -0.0219672 -0.0366961 0.137608
+v -0.0219672 0.0366961 0.137608
+v -0.00950853 -0.0416192 -0.137657
+v -0.00950853 0.0416192 -0.137657
+v 0.00950853 -0.0416192 -0.137657
+v 0.00950853 0.0416192 -0.137657
+v 0.00950853 -0.0416192 0.137657
+v 0.00950853 0.0416192 0.137657
+v -0.00950853 -0.0416192 0.137657
+v -0.00950853 0.0416192 0.137657
+v -0.0168735 -0.0391821 -0.137676
+v -0.0168735 0.0391821 -0.137676
+v 0.0168735 -0.0391821 -0.137676
+v 0.0168735 0.0391821 -0.137676
+v 0.0168735 -0.0391821 0.137676
+v 0.0168735 0.0391821 0.137676
+v -0.0168735 -0.0391821 0.137676
+v -0.0168735 0.0391821 0.137676
+v -0.0423341 -0.00423388 -0.137749
+v -0.0423341 0.00423388 -0.137749
+v 0.0423341 -0.00423388 -0.137749
+v 0.0423341 0.00423388 -0.137749
+v 0.0423341 -0.00423388 0.137749
+v 0.0423341 0.00423388 0.137749
+v -0.0423341 -0.00423388 0.137749
+v -0.0423341 0.00423388 0.137749
+v -0.0423869 -0.00141188 -0.137833
+v -0.0423869 0.00141188 -0.137833
+v 0.0423869 -0.00141188 -0.137833
+v 0.0423869 0.00141188 -0.137833
+v 0.0423869 -0.00141188 0.137833
+v 0.0423869 0.00141188 0.137833
+v -0.0423869 -0.00141188 0.137833
+v -0.0423869 0.00141188 0.137833
+v -0.0331163 -0.0263271 -0.137898
+v -0.0331163 0.0263271 -0.137898
+v 0.0331163 -0.0263271 -0.137898
+v 0.0331163 0.0263271 -0.137898
+v 0.0331163 -0.0263271 0.137898
+v 0.0331163 0.0263271 0.137898
+v -0.0331163 -0.0263271 0.137898
+v -0.0331163 0.0263271 0.137898
+v -0.00714156 -0.0416192 -0.137947
+v -0.00714156 0.0416192 -0.137947
+v 0.00714156 -0.0416192 -0.137947
+v 0.00714156 0.0416192 -0.137947
+v 0.00714156 -0.0416192 0.137947
+v 0.00714156 0.0416192 0.137947
+v -0.00714156 -0.0416192 0.137947
+v -0.00714156 0.0416192 0.137947
+v -0.0247411 -0.0341645 -0.137975
+v -0.0247411 0.0341645 -0.137975
+v 0.0247411 -0.0341645 -0.137975
+v 0.0247411 0.0341645 -0.137975
+v 0.0247411 -0.0341645 0.137975
+v 0.0247411 0.0341645 0.137975
+v -0.0247411 -0.0341645 0.137975
+v -0.0247411 0.0341645 0.137975
+v -0.0392485 -0.0154341 -0.13798
+v -0.0392485 0.0154341 -0.13798
+v 0.0392485 -0.0154341 -0.13798
+v 0.0392485 0.0154341 -0.13798
+v 0.0392485 -0.0154341 0.13798
+v 0.0392485 0.0154341 0.13798
+v -0.0392485 -0.0154341 0.13798
+v -0.0392485 0.0154341 0.13798
+v -0.0303294 -0.0289768 -0.138121
+v -0.0303294 0.0289768 -0.138121
+v 0.0303294 -0.0289768 -0.138121
+v 0.0303294 0.0289768 -0.138121
+v 0.0303294 -0.0289768 0.138121
+v 0.0303294 0.0289768 0.138121
+v -0.0303294 -0.0289768 0.138121
+v -0.0303294 0.0289768 0.138121
+v -0.0275331 -0.0315903 -0.138147
+v -0.0275331 0.0315903 -0.138147
+v 0.0275331 -0.0315903 -0.138147
+v 0.0275331 0.0315903 -0.138147
+v 0.0275331 -0.0315903 0.138147
+v 0.0275331 0.0315903 0.138147
+v -0.0275331 -0.0315903 0.138147
+v -0.0275331 0.0315903 0.138147
+v -0.00476588 -0.0416192 -0.138155
+v -0.00476588 0.0416192 -0.138155
+v 0.00476588 -0.0416192 -0.138155
+v 0.00476588 0.0416192 -0.138155
+v 0.00476588 -0.0416192 0.138155
+v 0.00476588 0.0416192 0.138155
+v -0.00476588 -0.0416192 0.138155
+v -0.00476588 0.0416192 0.138155
+v -0.0362492 -0.0209327 -0.138175
+v -0.0362492 0.0209327 -0.138175
+v 0.0362492 -0.0209327 -0.138175
+v 0.0362492 0.0209327 -0.138175
+v 0.0362492 -0.0209327 0.138175
+v 0.0362492 0.0209327 0.138175
+v -0.0362492 -0.0209327 0.138175
+v -0.0362492 0.0209327 0.138175
+v -0.0145014 -0.0391821 -0.138224
+v -0.0145014 0.0391821 -0.138224
+v 0.0145014 -0.0391821 -0.138224
+v 0.0145014 0.0391821 -0.138224
+v 0.0145014 -0.0391821 0.138224
+v 0.0145014 0.0391821 0.138224
+v -0.0145014 -0.0391821 0.138224
+v -0.0145014 0.0391821 0.138224
+v -0.00238439 -0.0416192 -0.13828
+v -0.00238439 0.0416192 -0.13828
+v 0.00238439 -0.0416192 -0.13828
+v 0.00238439 0.0416192 -0.13828
+v 0.00238439 -0.0416192 0.13828
+v 0.00238439 0.0416192 0.13828
+v -0.00238439 -0.0416192 0.13828
+v -0.00238439 0.0416192 0.13828
+v -1.25505e-17 -0.0416192 -0.138322
+v -1.25505e-17 0.0416192 -0.138322
+v 4.18349e-18 -0.0416192 0.138322
+v 4.18349e-18 0.0416192 0.138322
+v -0.0195943 -0.0366961 -0.138333
+v -0.0195943 0.0366961 -0.138333
+v 0.0195943 -0.0366961 -0.138333
+v 0.0195943 0.0366961 -0.138333
+v 0.0195943 -0.0366961 0.138333
+v 0.0195943 0.0366961 0.138333
+v -0.0195943 -0.0366961 0.138333
+v -0.0195943 0.0366961 0.138333
+v -0.0394964 -0.0126542 -0.13841
+v -0.0394964 0.0126542 -0.13841
+v 0.0394964 -0.0126542 -0.13841
+v 0.0394964 0.0126542 -0.13841
+v 0.0394964 -0.0126542 0.13841
+v 0.0394964 0.0126542 0.13841
+v -0.0394964 -0.0126542 0.13841
+v -0.0394964 0.0126542 0.13841
+v -0.0121116 -0.0391821 -0.138688
+v -0.0121116 0.0391821 -0.138688
+v 0.0121116 -0.0391821 -0.138688
+v 0.0121116 0.0391821 -0.138688
+v 0.0121116 -0.0391821 0.138688
+v 0.0121116 0.0391821 0.138688
+v -0.0121116 -0.0391821 0.138688
+v -0.0121116 0.0391821 0.138688
+v -0.0335029 -0.0236447 -0.138691
+v -0.0335029 0.0236447 -0.138691
+v 0.0335029 -0.0236447 -0.138691
+v 0.0335029 0.0236447 -0.138691
+v 0.0335029 -0.0236447 0.138691
+v 0.0335029 0.0236447 0.138691
+v -0.0335029 -0.0236447 0.138691
+v -0.0335029 0.0236447 0.138691
+v -0.0396951 -0.00985854 -0.138754
+v -0.0396951 0.00985854 -0.138754
+v 0.0396951 -0.00985854 -0.138754
+v 0.0396951 0.00985854 -0.138754
+v 0.0396951 -0.00985854 0.138754
+v 0.0396951 0.00985854 0.138754
+v -0.0396951 -0.00985854 0.138754
+v -0.0396951 0.00985854 0.138754
+v -0.0365735 -0.0181947 -0.138785
+v -0.0365735 0.0181947 -0.138785
+v 0.0365735 -0.0181947 -0.138785
+v 0.0365735 0.0181947 -0.138785
+v 0.0365735 -0.0181947 0.138785
+v 0.0365735 0.0181947 0.138785
+v -0.0365735 -0.0181947 0.138785
+v -0.0365735 0.0181947 0.138785
+v -0.0223537 -0.0341645 -0.138798
+v -0.0223537 0.0341645 -0.138798
+v 0.0223537 -0.0341645 -0.138798
+v 0.0223537 0.0341645 -0.138798
+v 0.0223537 -0.0341645 0.138798
+v 0.0223537 0.0341645 0.138798
+v -0.0223537 -0.0341645 0.138798
+v -0.0223537 0.0341645 0.138798
+v -0.0171976 -0.0366961 -0.138976
+v -0.0171976 0.0366961 -0.138976
+v 0.0171976 -0.0366961 -0.138976
+v 0.0171976 0.0366961 -0.138976
+v 0.0171976 -0.0366961 0.138976
+v 0.0171976 0.0366961 0.138976
+v -0.0171976 -0.0366961 0.138976
+v -0.0171976 0.0366961 0.138976
+v -0.0398443 -0.0070506 -0.139012
+v -0.0398443 0.0070506 -0.139012
+v 0.0398443 -0.0070506 -0.139012
+v 0.0398443 0.0070506 -0.139012
+v 0.0398443 -0.0070506 0.139012
+v 0.0398443 0.0070506 0.139012
+v -0.0398443 -0.0070506 0.139012
+v -0.0398443 0.0070506 0.139012
+v -0.0307265 -0.0263271 -0.139013
+v -0.0307265 0.0263271 -0.139013
+v 0.0307265 -0.0263271 -0.139013
+v 0.0307265 0.0263271 -0.139013
+v 0.0307265 -0.0263271 0.139013
+v 0.0307265 0.0263271 0.139013
+v -0.0307265 -0.0263271 0.139013
+v -0.0307265 0.0263271 0.139013
+v -0.025138 -0.0315903 -0.139066
+v -0.025138 0.0315903 -0.139066
+v 0.025138 -0.0315903 -0.139066
+v 0.025138 0.0315903 -0.139066
+v 0.025138 -0.0315903 0.139066
+v 0.025138 0.0315903 0.139066
+v -0.025138 -0.0315903 0.139066
+v -0.025138 0.0315903 0.139066
+v -0.00970703 -0.0391821 -0.139069
+v -0.00970703 0.0391821 -0.139069
+v 0.00970703 -0.0391821 -0.139069
+v 0.00970703 0.0391821 -0.139069
+v 0.00970703 -0.0391821 0.139069
+v 0.00970703 0.0391821 0.139069
+v -0.00970703 -0.0391821 0.139069
+v -0.00970703 0.0391821 0.139069
+v -0.0279336 -0.0289768 -0.139138
+v -0.0279336 0.0289768 -0.139138
+v 0.0279336 -0.0289768 -0.139138
+v 0.0279336 0.0289768 -0.139138
+v 0.0279336 -0.0289768 0.139138
+v 0.0279336 0.0289768 0.139138
+v -0.0279336 -0.0289768 0.139138
+v -0.0279336 0.0289768 0.139138
+v -0.0399439 -0.00423388 -0.139185
+v -0.0399439 0.00423388 -0.139185
+v 0.0399439 -0.00423388 -0.139185
+v 0.0399439 0.00423388 -0.139185
+v 0.0399439 -0.00423388 0.139185
+v 0.0399439 0.00423388 0.139185
+v -0.0399439 -0.00423388 0.139185
+v -0.0399439 0.00423388 0.139185
+v -0.0399938 -0.00141188 -0.139271
+v -0.0399938 0.00141188 -0.139271
+v 0.0399938 -0.00141188 -0.139271
+v 0.0399938 0.00141188 -0.139271
+v 0.0399938 -0.00141188 0.139271
+v 0.0399938 0.00141188 0.139271
+v -0.0399938 -0.00141188 0.139271
+v -0.0399938 0.00141188 0.139271
+v -0.0368521 -0.0154341 -0.139309
+v -0.0368521 0.0154341 -0.139309
+v 0.0368521 -0.0154341 -0.139309
+v 0.0368521 0.0154341 -0.139309
+v 0.0368521 -0.0154341 0.139309
+v 0.0368521 0.0154341 0.139309
+v -0.0368521 -0.0154341 0.139309
+v -0.0368521 0.0154341 0.139309
+v -0.00729064 -0.0391821 -0.139366
+v -0.00729064 0.0391821 -0.139366
+v 0.00729064 -0.0391821 -0.139366
+v 0.00729064 0.0391821 -0.139366
+v 0.00729064 -0.0391821 0.139366
+v 0.00729064 0.0391821 0.139366
+v -0.00729064 -0.0391821 0.139366
+v -0.00729064 0.0391821 0.139366
+v -0.0338479 -0.0209327 -0.139398
+v -0.0338479 0.0209327 -0.139398
+v 0.0338479 -0.0209327 -0.139398
+v 0.0338479 0.0209327 -0.139398
+v 0.0338479 -0.0209327 0.139398
+v 0.0338479 0.0209327 0.139398
+v -0.0338479 -0.0209327 0.139398
+v -0.0338479 0.0209327 0.139398
+v -0.0147799 -0.0366961 -0.139534
+v -0.0147799 0.0366961 -0.139534
+v 0.0147799 -0.0366961 -0.139534
+v 0.0147799 0.0366961 -0.139534
+v 0.0147799 -0.0366961 0.139534
+v 0.0147799 0.0366961 0.139534
+v -0.0147799 -0.0366961 0.139534
+v -0.0147799 0.0366961 0.139534
+v -0.0199391 -0.0341645 -0.139536
+v -0.0199391 0.0341645 -0.139536
+v 0.0199391 -0.0341645 -0.139536
+v 0.0199391 0.0341645 -0.139536
+v 0.0199391 -0.0341645 0.139536
+v 0.0199391 0.0341645 0.139536
+v -0.0199391 -0.0341645 0.139536
+v -0.0199391 0.0341645 0.139536
+v -0.00486537 -0.0391821 -0.139578
+v -0.00486537 0.0391821 -0.139578
+v 0.00486537 -0.0391821 -0.139578
+v 0.00486537 0.0391821 -0.139578
+v 0.00486537 -0.0391821 0.139578
+v 0.00486537 0.0391821 0.139578
+v -0.00486537 -0.0391821 0.139578
+v -0.00486537 0.0391821 0.139578
+v -0.00243417 -0.0391821 -0.139705
+v -0.00243417 0.0391821 -0.139705
+v 0.00243417 -0.0391821 -0.139705
+v 0.00243417 0.0391821 -0.139705
+v 0.00243417 -0.0391821 0.139705
+v 0.00243417 0.0391821 0.139705
+v -0.00243417 -0.0391821 0.139705
+v -0.00243417 0.0391821 0.139705
+v -0.0370849 -0.0126542 -0.139747
+v -0.0370849 0.0126542 -0.139747
+v 0.0370849 -0.0126542 -0.139747
+v 0.0370849 0.0126542 -0.139747
+v 0.0370849 -0.0126542 0.139747
+v 0.0370849 0.0126542 0.139747
+v -0.0370849 -0.0126542 0.139747
+v -0.0370849 0.0126542 0.139747
+v -1.28125e-17 -0.0391821 -0.139748
+v -1.28125e-17 0.0391821 -0.139748
+v 4.27083e-18 -0.0391821 0.139748
+v 4.27083e-18 0.0391821 0.139748
+v -0.0310852 -0.0236447 -0.139819
+v -0.0310852 0.0236447 -0.139819
+v 0.0310852 -0.0236447 -0.139819
+v 0.0310852 0.0236447 -0.139819
+v 0.0310852 -0.0236447 0.139819
+v 0.0310852 0.0236447 0.139819
+v -0.0310852 -0.0236447 0.139819
+v -0.0310852 0.0236447 0.139819
+v -0.0227123 -0.0315903 -0.139901
+v -0.0227123 0.0315903 -0.139901
+v 0.0227123 -0.0315903 -0.139901
+v 0.0227123 0.0315903 -0.139901
+v 0.0227123 -0.0315903 0.139901
+v 0.0227123 0.0315903 0.139901
+v -0.0227123 -0.0315903 0.139901
+v -0.0227123 0.0315903 0.139901
+v -0.0123442 -0.0366961 -0.140007
+v -0.0123442 0.0366961 -0.140007
+v 0.0123442 -0.0366961 -0.140007
+v 0.0123442 0.0366961 -0.140007
+v 0.0123442 -0.0366961 0.140007
+v 0.0123442 0.0366961 0.140007
+v -0.0123442 -0.0366961 0.140007
+v -0.0123442 0.0366961 0.140007
+v -0.0341506 -0.0181947 -0.140019
+v -0.0341506 0.0181947 -0.140019
+v 0.0341506 -0.0181947 -0.140019
+v 0.0341506 0.0181947 -0.140019
+v 0.0341506 -0.0181947 0.140019
+v 0.0341506 0.0181947 0.140019
+v -0.0341506 -0.0181947 0.140019
+v -0.0341506 0.0181947 0.140019
+v -0.0282992 -0.0263271 -0.140043
+v -0.0282992 0.0263271 -0.140043
+v 0.0282992 -0.0263271 -0.140043
+v 0.0282992 0.0263271 -0.140043
+v 0.0282992 -0.0263271 0.140043
+v 0.0282992 0.0263271 0.140043
+v -0.0282992 -0.0263271 0.140043
+v -0.0282992 0.0263271 0.140043
+v -0.0255037 -0.0289768 -0.140071
+v -0.0255037 0.0289768 -0.140071
+v 0.0255037 -0.0289768 -0.140071
+v 0.0255037 0.0289768 -0.140071
+v 0.0255037 -0.0289768 0.140071
+v 0.0255037 0.0289768 0.140071
+v -0.0255037 -0.0289768 0.140071
+v -0.0255037 0.0289768 0.140071
+v -0.0372715 -0.00985854 -0.140097
+v -0.0372715 0.00985854 -0.140097
+v 0.0372715 -0.00985854 -0.140097
+v 0.0372715 0.00985854 -0.140097
+v 0.0372715 -0.00985854 0.140097
+v 0.0372715 0.00985854 0.140097
+v -0.0372715 -0.00985854 0.140097
+v -0.0372715 0.00985854 0.140097
+v -0.0175001 -0.0341645 -0.140189
+v -0.0175001 0.0341645 -0.140189
+v 0.0175001 -0.0341645 -0.140189
+v 0.0175001 0.0341645 -0.140189
+v 0.0175001 -0.0341645 0.140189
+v 0.0175001 0.0341645 0.140189
+v -0.0175001 -0.0341645 0.140189
+v -0.0175001 0.0341645 0.140189
+v -0.0374116 -0.0070506 -0.140361
+v -0.0374116 0.0070506 -0.140361
+v 0.0374116 -0.0070506 -0.140361
+v 0.0374116 0.0070506 -0.140361
+v 0.0374116 -0.0070506 0.140361
+v 0.0374116 0.0070506 0.140361
+v -0.0374116 -0.0070506 0.140361
+v -0.0374116 0.0070506 0.140361
+v -0.00989343 -0.0366961 -0.140395
+v -0.00989343 0.0366961 -0.140395
+v 0.00989343 -0.0366961 -0.140395
+v 0.00989343 0.0366961 -0.140395
+v 0.00989343 -0.0366961 0.140395
+v 0.00989343 0.0366961 0.140395
+v -0.00989343 -0.0366961 0.140395
+v -0.00989343 0.0366961 0.140395
+v -0.0314053 -0.0209327 -0.140537
+v -0.0314053 0.0209327 -0.140537
+v 0.0314053 -0.0209327 -0.140537
+v 0.0314053 0.0209327 -0.140537
+v 0.0314053 -0.0209327 0.140537
+v 0.0314053 0.0209327 0.140537
+v -0.0314053 -0.0209327 0.140537
+v -0.0314053 0.0209327 0.140537
+v -0.0375051 -0.00423388 -0.140537
+v -0.0375051 0.00423388 -0.140537
+v 0.0375051 -0.00423388 -0.140537
+v 0.0375051 0.00423388 -0.140537
+v 0.0375051 -0.00423388 0.140537
+v 0.0375051 0.00423388 0.140537
+v -0.0375051 -0.00423388 0.140537
+v -0.0375051 0.00423388 0.140537
+v -0.0344108 -0.0154341 -0.140553
+v -0.0344108 0.0154341 -0.140553
+v 0.0344108 -0.0154341 -0.140553
+v 0.0344108 0.0154341 -0.140553
+v 0.0344108 -0.0154341 0.140553
+v 0.0344108 0.0154341 0.140553
+v -0.0344108 -0.0154341 0.140553
+v -0.0344108 0.0154341 0.140553
+v -0.0375519 -0.00141188 -0.140625
+v -0.0375519 0.00141188 -0.140625
+v 0.0375519 -0.00141188 -0.140625
+v 0.0375519 0.00141188 -0.140625
+v 0.0375519 -0.00141188 0.140625
+v 0.0375519 0.00141188 0.140625
+v -0.0375519 -0.00141188 0.140625
+v -0.0375519 0.00141188 0.140625
+v -0.020259 -0.0315903 -0.140651
+v -0.020259 0.0315903 -0.140651
+v 0.020259 -0.0315903 -0.140651
+v 0.020259 0.0315903 -0.140651
+v 0.020259 -0.0315903 0.140651
+v 0.020259 0.0315903 0.140651
+v -0.020259 -0.0315903 0.140651
+v -0.020259 0.0315903 0.140651
+v -0.00743064 -0.0366961 -0.140698
+v -0.00743064 0.0366961 -0.140698
+v 0.00743064 -0.0366961 -0.140698
+v 0.00743064 0.0366961 -0.140698
+v 0.00743064 -0.0366961 0.140698
+v 0.00743064 0.0366961 0.140698
+v -0.00743064 -0.0366961 0.140698
+v -0.00743064 0.0366961 0.140698
+v -0.0150399 -0.0341645 -0.140757
+v -0.0150399 0.0341645 -0.140757
+v 0.0150399 -0.0341645 -0.140757
+v 0.0150399 0.0341645 -0.140757
+v 0.0150399 -0.0341645 0.140757
+v 0.0150399 0.0341645 0.140757
+v -0.0150399 -0.0341645 0.140757
+v -0.0150399 0.0341645 0.140757
+v -0.0286297 -0.0236447 -0.140861
+v -0.0286297 0.0236447 -0.140861
+v 0.0286297 -0.0236447 -0.140861
+v 0.0286297 0.0236447 -0.140861
+v 0.0286297 -0.0236447 0.140861
+v 0.0286297 0.0236447 0.140861
+v -0.0286297 -0.0236447 0.140861
+v -0.0286297 0.0236447 0.140861
+v -0.00495879 -0.0366961 -0.140914
+v -0.00495879 0.0366961 -0.140914
+v 0.00495879 -0.0366961 -0.140914
+v 0.00495879 0.0366961 -0.140914
+v 0.00495879 -0.0366961 0.140914
+v 0.00495879 0.0366961 0.140914
+v -0.00495879 -0.0366961 0.140914
+v -0.00495879 0.0366961 0.140914
+v -0.0230427 -0.0289768 -0.140918
+v -0.0230427 0.0289768 -0.140918
+v 0.0230427 -0.0289768 -0.140918
+v 0.0230427 0.0289768 -0.140918
+v 0.0230427 -0.0289768 0.140918
+v 0.0230427 0.0289768 0.140918
+v -0.0230427 -0.0289768 0.140918
+v -0.0230427 0.0289768 0.140918
+v -0.0258375 -0.0263271 -0.140988
+v -0.0258375 0.0263271 -0.140988
+v 0.0258375 -0.0263271 -0.140988
+v 0.0258375 0.0263271 -0.140988
+v 0.0258375 -0.0263271 0.140988
+v 0.0258375 0.0263271 0.140988
+v -0.0258375 -0.0263271 0.140988
+v -0.0258375 0.0263271 0.140988
+v -0.0346282 -0.0126542 -0.140998
+v -0.0346282 0.0126542 -0.140998
+v 0.0346282 -0.0126542 -0.140998
+v 0.0346282 0.0126542 -0.140998
+v 0.0346282 -0.0126542 0.140998
+v 0.0346282 0.0126542 0.140998
+v -0.0346282 -0.0126542 0.140998
+v -0.0346282 0.0126542 0.140998
+v -0.00248091 -0.0366961 -0.141044
+v -0.00248091 0.0366961 -0.141044
+v 0.00248091 -0.0366961 -0.141044
+v 0.00248091 0.0366961 -0.141044
+v 0.00248091 -0.0366961 0.141044
+v 0.00248091 0.0366961 0.141044
+v -0.00248091 -0.0366961 0.141044
+v -0.00248091 0.0366961 0.141044
+v -1.30585e-17 -0.0366961 -0.141087
+v -1.30585e-17 0.0366961 -0.141087
+v 4.35284e-18 -0.0366961 0.141087
+v 4.35284e-18 0.0366961 0.141087
+v -0.0316862 -0.0181947 -0.141168
+v -0.0316862 0.0181947 -0.141168
+v 0.0316862 -0.0181947 -0.141168
+v 0.0316862 0.0181947 -0.141168
+v 0.0316862 -0.0181947 0.141168
+v 0.0316862 0.0181947 0.141168
+v -0.0316862 -0.0181947 0.141168
+v -0.0316862 0.0181947 0.141168
+v -0.0125614 -0.0341645 -0.141239
+v -0.0125614 0.0341645 -0.141239
+v 0.0125614 -0.0341645 -0.141239
+v 0.0125614 0.0341645 -0.141239
+v 0.0125614 -0.0341645 0.141239
+v 0.0125614 0.0341645 0.141239
+v -0.0125614 -0.0341645 0.141239
+v -0.0125614 0.0341645 0.141239
+v -0.0177809 -0.0315903 -0.141315
+v -0.0177809 0.0315903 -0.141315
+v 0.0177809 -0.0315903 -0.141315
+v 0.0177809 0.0315903 -0.141315
+v 0.0177809 -0.0315903 0.141315
+v 0.0177809 0.0315903 0.141315
+v -0.0177809 -0.0315903 0.141315
+v -0.0177809 0.0315903 0.141315
+v -0.0348024 -0.00985854 -0.141355
+v -0.0348024 0.00985854 -0.141355
+v 0.0348024 -0.00985854 -0.141355
+v 0.0348024 0.00985854 -0.141355
+v 0.0348024 -0.00985854 0.141355
+v 0.0348024 0.00985854 0.141355
+v -0.0348024 -0.00985854 0.141355
+v -0.0348024 0.00985854 0.141355
+v -0.0289244 -0.0209327 -0.14159
+v -0.0289244 0.0209327 -0.14159
+v 0.0289244 -0.0209327 -0.14159
+v 0.0289244 0.0209327 -0.14159
+v 0.0289244 -0.0209327 0.14159
+v 0.0289244 0.0209327 0.14159
+v -0.0289244 -0.0209327 0.14159
+v -0.0289244 0.0209327 0.14159
+v -0.0349332 -0.0070506 -0.141624
+v -0.0349332 0.0070506 -0.141624
+v 0.0349332 -0.0070506 -0.141624
+v 0.0349332 0.0070506 -0.141624
+v 0.0349332 -0.0070506 0.141624
+v 0.0349332 0.0070506 0.141624
+v -0.0349332 -0.0070506 0.141624
+v -0.0349332 0.0070506 0.141624
+v -0.0100675 -0.0341645 -0.141634
+v -0.0100675 0.0341645 -0.141634
+v 0.0100675 -0.0341645 -0.141634
+v 0.0100675 0.0341645 -0.141634
+v 0.0100675 -0.0341645 0.141634
+v 0.0100675 0.0341645 0.141634
+v -0.0100675 -0.0341645 0.141634
+v -0.0100675 0.0341645 0.141634
+v -0.0205537 -0.0289768 -0.141679
+v -0.0205537 0.0289768 -0.141679
+v 0.0205537 -0.0289768 -0.141679
+v 0.0205537 0.0289768 -0.141679
+v 0.0205537 -0.0289768 0.141679
+v 0.0205537 0.0289768 0.141679
+v -0.0205537 -0.0289768 0.141679
+v -0.0205537 0.0289768 0.141679
+v -0.0319276 -0.0154341 -0.141711
+v -0.0319276 0.0154341 -0.141711
+v 0.0319276 -0.0154341 -0.141711
+v 0.0319276 0.0154341 -0.141711
+v 0.0319276 -0.0154341 0.141711
+v 0.0319276 0.0154341 0.141711
+v -0.0319276 -0.0154341 0.141711
+v -0.0319276 0.0154341 0.141711
+v -0.0350205 -0.00423388 -0.141803
+v -0.0350205 0.00423388 -0.141803
+v 0.0350205 -0.00423388 -0.141803
+v 0.0350205 0.00423388 -0.141803
+v 0.0350205 -0.00423388 0.141803
+v 0.0350205 0.00423388 0.141803
+v -0.0350205 -0.00423388 0.141803
+v -0.0350205 0.00423388 0.141803
+v -0.0261392 -0.0236447 -0.141817
+v -0.0261392 0.0236447 -0.141817
+v 0.0261392 -0.0236447 -0.141817
+v 0.0261392 0.0236447 -0.141817
+v 0.0261392 -0.0236447 0.141817
+v 0.0261392 0.0236447 0.141817
+v -0.0261392 -0.0236447 0.141817
+v -0.0261392 0.0236447 0.141817
+v -0.0233444 -0.0263271 -0.141847
+v -0.0233444 0.0263271 -0.141847
+v 0.0233444 -0.0263271 -0.141847
+v 0.0233444 0.0263271 -0.141847
+v 0.0233444 -0.0263271 0.141847
+v 0.0233444 0.0263271 0.141847
+v -0.0233444 -0.0263271 0.141847
+v -0.0233444 0.0263271 0.141847
+v -0.0350642 -0.00141188 -0.141892
+v -0.0350642 0.00141188 -0.141892
+v 0.0350642 -0.00141188 -0.141892
+v 0.0350642 0.00141188 -0.141892
+v 0.0350642 -0.00141188 0.141892
+v 0.0350642 0.00141188 0.141892
+v -0.0350642 -0.00141188 0.141892
+v -0.0350642 0.00141188 0.141892
+v -0.0152812 -0.0315903 -0.141893
+v -0.0152812 0.0315903 -0.141893
+v 0.0152812 -0.0315903 -0.141893
+v 0.0152812 0.0315903 -0.141893
+v 0.0152812 -0.0315903 0.141893
+v 0.0152812 0.0315903 0.141893
+v -0.0152812 -0.0315903 0.141893
+v -0.0152812 0.0315903 0.141893
+v -0.00756138 -0.0341645 -0.141942
+v -0.00756138 0.0341645 -0.141942
+v 0.00756138 -0.0341645 -0.141942
+v 0.00756138 0.0341645 -0.141942
+v 0.00756138 -0.0341645 0.141942
+v 0.00756138 0.0341645 0.141942
+v -0.00756138 -0.0341645 0.141942
+v -0.00756138 0.0341645 0.141942
+v -0.00504604 -0.0341645 -0.142162
+v -0.00504604 0.0341645 -0.142162
+v 0.00504604 -0.0341645 -0.142162
+v 0.00504604 0.0341645 -0.142162
+v 0.00504604 -0.0341645 0.142162
+v 0.00504604 0.0341645 0.142162
+v -0.00504604 -0.0341645 0.142162
+v -0.00504604 0.0341645 0.142162
+v -0.0321293 -0.0126542 -0.142164
+v -0.0321293 0.0126542 -0.142164
+v 0.0321293 -0.0126542 -0.142164
+v 0.0321293 0.0126542 -0.142164
+v 0.0321293 -0.0126542 0.142164
+v 0.0321293 0.0126542 0.142164
+v -0.0321293 -0.0126542 0.142164
+v -0.0321293 0.0126542 0.142164
+v -0.0291832 -0.0181947 -0.142231
+v -0.0291832 0.0181947 -0.142231
+v 0.0291832 -0.0181947 -0.142231
+v 0.0291832 0.0181947 -0.142231
+v 0.0291832 -0.0181947 0.142231
+v 0.0291832 0.0181947 0.142231
+v -0.0291832 -0.0181947 0.142231
+v -0.0291832 0.0181947 0.142231
+v -0.00252456 -0.0341645 -0.142294
+v -0.00252456 0.0341645 -0.142294
+v 0.00252456 -0.0341645 -0.142294
+v 0.00252456 0.0341645 -0.142294
+v 0.00252456 -0.0341645 0.142294
+v 0.00252456 0.0341645 0.142294
+v -0.00252456 -0.0341645 0.142294
+v -0.00252456 0.0341645 0.142294
+v -1.32883e-17 -0.0341645 -0.142338
+v -1.32883e-17 0.0341645 -0.142338
+v 4.42942e-18 -0.0341645 0.142338
+v 4.42942e-18 0.0341645 0.142338
+v -0.0180396 -0.0289768 -0.142353
+v -0.0180396 0.0289768 -0.142353
+v 0.0180396 -0.0289768 -0.142353
+v 0.0180396 0.0289768 -0.142353
+v 0.0180396 -0.0289768 0.142353
+v 0.0180396 0.0289768 0.142353
+v -0.0180396 -0.0289768 0.142353
+v -0.0180396 0.0289768 0.142353
+v -0.0127629 -0.0315903 -0.142382
+v -0.0127629 0.0315903 -0.142382
+v 0.0127629 -0.0315903 -0.142382
+v 0.0127629 0.0315903 -0.142382
+v 0.0127629 -0.0315903 0.142382
+v 0.0127629 0.0315903 0.142382
+v -0.0127629 -0.0315903 0.142382
+v -0.0127629 0.0315903 0.142382
+v -0.0322909 -0.00985854 -0.142527
+v -0.0322909 0.00985854 -0.142527
+v 0.0322909 -0.00985854 -0.142527
+v 0.0322909 0.00985854 -0.142527
+v 0.0322909 -0.00985854 0.142527
+v 0.0322909 0.00985854 0.142527
+v -0.0322909 -0.00985854 0.142527
+v -0.0322909 0.00985854 0.142527
+v -0.0264083 -0.0209327 -0.142556
+v -0.0264083 0.0209327 -0.142556
+v 0.0264083 -0.0209327 -0.142556
+v 0.0264083 0.0209327 -0.142556
+v 0.0264083 -0.0209327 0.142556
+v 0.0264083 0.0209327 0.142556
+v -0.0264083 -0.0209327 0.142556
+v -0.0264083 0.0209327 0.142556
+v -0.0208227 -0.0263271 -0.142617
+v -0.0208227 0.0263271 -0.142617
+v 0.0208227 -0.0263271 -0.142617
+v 0.0208227 0.0263271 -0.142617
+v 0.0208227 -0.0263271 0.142617
+v 0.0208227 0.0263271 0.142617
+v -0.0208227 -0.0263271 0.142617
+v -0.0208227 0.0263271 0.142617
+v -0.0236169 -0.0236447 -0.142685
+v -0.0236169 0.0236447 -0.142685
+v 0.0236169 -0.0236447 -0.142685
+v 0.0236169 0.0236447 -0.142685
+v 0.0236169 -0.0236447 0.142685
+v 0.0236169 0.0236447 0.142685
+v -0.0236169 -0.0236447 0.142685
+v -0.0236169 0.0236447 0.142685
+v -0.0294055 -0.0154341 -0.142781
+v -0.0294055 0.0154341 -0.142781
+v 0.0294055 -0.0154341 -0.142781
+v 0.0294055 0.0154341 -0.142781
+v 0.0294055 -0.0154341 0.142781
+v 0.0294055 0.0154341 0.142781
+v -0.0294055 -0.0154341 0.142781
+v -0.0294055 0.0154341 0.142781
+v -0.010229 -0.0315903 -0.142783
+v -0.010229 0.0315903 -0.142783
+v 0.010229 -0.0315903 -0.142783
+v 0.010229 0.0315903 -0.142783
+v 0.010229 -0.0315903 0.142783
+v 0.010229 0.0315903 0.142783
+v -0.010229 -0.0315903 0.142783
+v -0.010229 0.0315903 0.142783
+v -0.0324123 -0.0070506 -0.142799
+v -0.0324123 0.0070506 -0.142799
+v 0.0324123 -0.0070506 -0.142799
+v 0.0324123 0.0070506 -0.142799
+v 0.0324123 -0.0070506 0.142799
+v 0.0324123 0.0070506 0.142799
+v -0.0324123 -0.0070506 0.142799
+v -0.0324123 0.0070506 0.142799
+v -0.0155035 -0.0289768 -0.142938
+v -0.0155035 0.0289768 -0.142938
+v 0.0155035 -0.0289768 -0.142938
+v 0.0155035 0.0289768 -0.142938
+v 0.0155035 -0.0289768 0.142938
+v 0.0155035 0.0289768 0.142938
+v -0.0155035 -0.0289768 0.142938
+v -0.0155035 0.0289768 0.142938
+v -0.0324933 -0.00423388 -0.142981
+v -0.0324933 0.00423388 -0.142981
+v 0.0324933 -0.00423388 -0.142981
+v 0.0324933 0.00423388 -0.142981
+v 0.0324933 -0.00423388 0.142981
+v 0.0324933 0.00423388 0.142981
+v -0.0324933 -0.00423388 0.142981
+v -0.0324933 0.00423388 0.142981
+v -0.0325339 -0.00141188 -0.143072
+v -0.0325339 0.00141188 -0.143072
+v 0.0325339 -0.00141188 -0.143072
+v 0.0325339 0.00141188 -0.143072
+v 0.0325339 -0.00141188 0.143072
+v 0.0325339 0.00141188 0.143072
+v -0.0325339 -0.00141188 0.143072
+v -0.0325339 0.00141188 0.143072
+v -0.0076827 -0.0315903 -0.143096
+v -0.0076827 0.0315903 -0.143096
+v 0.0076827 -0.0315903 -0.143096
+v 0.0076827 0.0315903 -0.143096
+v 0.0076827 -0.0315903 0.143096
+v 0.0076827 0.0315903 0.143096
+v -0.0076827 -0.0315903 0.143096
+v -0.0076827 0.0315903 0.143096
+v -0.0266446 -0.0181947 -0.143205
+v -0.0266446 0.0181947 -0.143205
+v 0.0266446 -0.0181947 -0.143205
+v 0.0266446 0.0181947 -0.143205
+v 0.0266446 -0.0181947 0.143205
+v 0.0266446 0.0181947 0.143205
+v -0.0266446 -0.0181947 0.143205
+v -0.0266446 0.0181947 0.143205
+v -0.0295912 -0.0126542 -0.143241
+v -0.0295912 0.0126542 -0.143241
+v 0.0295912 -0.0126542 -0.143241
+v 0.0295912 0.0126542 -0.143241
+v 0.0295912 -0.0126542 0.143241
+v 0.0295912 0.0126542 0.143241
+v -0.0295912 -0.0126542 0.143241
+v -0.0295912 0.0126542 0.143241
+v -0.0182757 -0.0263271 -0.1433
+v -0.0182757 0.0263271 -0.1433
+v 0.0182757 -0.0263271 -0.1433
+v 0.0182757 0.0263271 -0.1433
+v 0.0182757 -0.0263271 0.1433
+v 0.0182757 0.0263271 0.1433
+v -0.0182757 -0.0263271 0.1433
+v -0.0182757 0.0263271 0.1433
+v -0.00512701 -0.0315903 -0.14332
+v -0.00512701 0.0315903 -0.14332
+v 0.00512701 -0.0315903 -0.14332
+v 0.00512701 0.0315903 -0.14332
+v 0.00512701 -0.0315903 0.14332
+v 0.00512701 0.0315903 0.14332
+v -0.00512701 -0.0315903 0.14332
+v -0.00512701 0.0315903 0.14332
+v -0.0238601 -0.0209327 -0.143434
+v -0.0238601 0.0209327 -0.143434
+v 0.0238601 -0.0209327 -0.143434
+v 0.0238601 0.0209327 -0.143434
+v 0.0238601 -0.0209327 0.143434
+v 0.0238601 0.0209327 0.143434
+v -0.0238601 -0.0209327 0.143434
+v -0.0238601 0.0209327 0.143434
+v -0.0129486 -0.0289768 -0.143435
+v -0.0129486 0.0289768 -0.143435
+v 0.0129486 -0.0289768 -0.143435
+v 0.0129486 0.0289768 -0.143435
+v 0.0129486 -0.0289768 0.143435
+v 0.0129486 0.0289768 0.143435
+v -0.0129486 -0.0289768 0.143435
+v -0.0129486 0.0289768 0.143435
+v -0.00256507 -0.0315903 -0.143454
+v -0.00256507 0.0315903 -0.143454
+v 0.00256507 -0.0315903 -0.143454
+v 0.00256507 0.0315903 -0.143454
+v 0.00256507 -0.0315903 0.143454
+v 0.00256507 0.0315903 0.143454
+v -0.00256507 -0.0315903 0.143454
+v -0.00256507 0.0315903 0.143454
+v -0.0210659 -0.0236447 -0.143465
+v -0.0210659 0.0236447 -0.143465
+v 0.0210659 -0.0236447 -0.143465
+v 0.0210659 0.0236447 -0.143465
+v 0.0210659 -0.0236447 0.143465
+v 0.0210659 0.0236447 0.143465
+v -0.0210659 -0.0236447 0.143465
+v -0.0210659 0.0236447 0.143465
+v -1.35015e-17 -0.0315903 -0.143499
+v -1.35015e-17 0.0315903 -0.143499
+v 4.50049e-18 -0.0315903 0.143499
+v 4.50049e-18 0.0315903 0.143499
+v -0.0297401 -0.00985854 -0.143609
+v -0.0297401 0.00985854 -0.143609
+v 0.0297401 -0.00985854 -0.143609
+v 0.0297401 0.00985854 -0.143609
+v 0.0297401 -0.00985854 0.143609
+v 0.0297401 0.00985854 0.143609
+v -0.0297401 -0.00985854 0.143609
+v -0.0297401 0.00985854 0.143609
+v -0.0268476 -0.0154341 -0.143763
+v -0.0268476 0.0154341 -0.143763
+v 0.0268476 -0.0154341 -0.143763
+v 0.0268476 0.0154341 -0.143763
+v 0.0268476 -0.0154341 0.143763
+v 0.0268476 0.0154341 0.143763
+v -0.0268476 -0.0154341 0.143763
+v -0.0268476 0.0154341 0.143763
+v -0.0103778 -0.0289768 -0.143842
+v -0.0103778 0.0289768 -0.143842
+v 0.0103778 -0.0289768 -0.143842
+v 0.0103778 0.0289768 -0.143842
+v 0.0103778 -0.0289768 0.143842
+v 0.0103778 0.0289768 0.143842
+v -0.0103778 -0.0289768 0.143842
+v -0.0103778 0.0289768 0.143842
+v -0.0298519 -0.0070506 -0.143886
+v -0.0298519 0.0070506 -0.143886
+v 0.0298519 -0.0070506 -0.143886
+v 0.0298519 0.0070506 -0.143886
+v 0.0298519 -0.0070506 0.143886
+v 0.0298519 0.0070506 0.143886
+v -0.0298519 -0.0070506 0.143886
+v -0.0298519 0.0070506 0.143886
+v -0.0157065 -0.0263271 -0.143893
+v -0.0157065 0.0263271 -0.143893
+v 0.0157065 -0.0263271 -0.143893
+v 0.0157065 0.0263271 -0.143893
+v 0.0157065 -0.0263271 0.143893
+v 0.0157065 0.0263271 0.143893
+v -0.0157065 -0.0263271 0.143893
+v -0.0157065 0.0263271 0.143893
+v -0.0299265 -0.00423388 -0.144071
+v -0.0299265 0.00423388 -0.144071
+v 0.0299265 -0.00423388 -0.144071
+v 0.0299265 0.00423388 -0.144071
+v 0.0299265 -0.00423388 0.144071
+v 0.0299265 0.00423388 0.144071
+v -0.0299265 -0.00423388 0.144071
+v -0.0299265 0.00423388 0.144071
+v -0.0240735 -0.0181947 -0.144091
+v -0.0240735 0.0181947 -0.144091
+v 0.0240735 -0.0181947 -0.144091
+v 0.0240735 0.0181947 -0.144091
+v 0.0240735 -0.0181947 0.144091
+v 0.0240735 0.0181947 0.144091
+v -0.0240735 -0.0181947 0.144091
+v -0.0240735 0.0181947 0.144091
+v -0.0184891 -0.0236447 -0.144156
+v -0.0184891 0.0236447 -0.144156
+v 0.0184891 -0.0236447 -0.144156
+v 0.0184891 0.0236447 -0.144156
+v 0.0184891 -0.0236447 0.144156
+v 0.0184891 0.0236447 0.144156
+v -0.0184891 -0.0236447 0.144156
+v -0.0184891 0.0236447 0.144156
+v -0.00779445 -0.0289768 -0.144159
+v -0.00779445 0.0289768 -0.144159
+v 0.00779445 -0.0289768 -0.144159
+v 0.00779445 0.0289768 -0.144159
+v 0.00779445 -0.0289768 0.144159
+v 0.00779445 0.0289768 0.144159
+v -0.00779445 -0.0289768 0.144159
+v -0.00779445 0.0289768 0.144159
+v -0.0299639 -0.00141188 -0.144163
+v -0.0299639 0.00141188 -0.144163
+v 0.0299639 -0.00141188 -0.144163
+v 0.0299639 0.00141188 -0.144163
+v 0.0299639 -0.00141188 0.144163
+v 0.0299639 0.00141188 0.144163
+v -0.0299639 -0.00141188 0.144163
+v -0.0299639 0.00141188 0.144163
+v -0.0212827 -0.0209327 -0.144222
+v -0.0212827 0.0209327 -0.144222
+v 0.0212827 -0.0209327 -0.144222
+v 0.0212827 0.0209327 -0.144222
+v 0.0212827 -0.0209327 0.144222
+v 0.0212827 0.0209327 0.144222
+v -0.0212827 -0.0209327 0.144222
+v -0.0212827 0.0209327 0.144222
+v -0.0270171 -0.0126542 -0.144229
+v -0.0270171 0.0126542 -0.144229
+v 0.0270171 -0.0126542 -0.144229
+v 0.0270171 0.0126542 -0.144229
+v 0.0270171 -0.0126542 0.144229
+v 0.0270171 0.0126542 0.144229
+v -0.0270171 -0.0126542 0.144229
+v -0.0270171 0.0126542 0.144229
+v -0.00520158 -0.0289768 -0.144386
+v -0.00520158 0.0289768 -0.144386
+v 0.00520158 -0.0289768 -0.144386
+v 0.00520158 0.0289768 -0.144386
+v 0.00520158 -0.0289768 0.144386
+v 0.00520158 0.0289768 0.144386
+v -0.00520158 -0.0289768 0.144386
+v -0.00520158 0.0289768 0.144386
+v -0.0131181 -0.0263271 -0.144396
+v -0.0131181 0.0263271 -0.144396
+v 0.0131181 -0.0263271 -0.144396
+v 0.0131181 0.0263271 -0.144396
+v 0.0131181 -0.0263271 0.144396
+v 0.0131181 0.0263271 0.144396
+v -0.0131181 -0.0263271 0.144396
+v -0.0131181 0.0263271 0.144396
+v -0.00260238 -0.0289768 -0.144522
+v -0.00260238 0.0289768 -0.144522
+v 0.00260238 -0.0289768 -0.144522
+v 0.00260238 0.0289768 -0.144522
+v 0.00260238 -0.0289768 0.144522
+v 0.00260238 0.0289768 0.144522
+v -0.00260238 -0.0289768 0.144522
+v -0.00260238 0.0289768 0.144522
+v -1.36979e-17 -0.0289768 -0.144568
+v -1.36979e-17 0.0289768 -0.144568
+v 4.56596e-18 -0.0289768 0.144568
+v 4.56596e-18 0.0289768 0.144568
+v -0.0271531 -0.00985854 -0.144602
+v -0.0271531 0.00985854 -0.144602
+v 0.0271531 -0.00985854 -0.144602
+v 0.0271531 0.00985854 -0.144602
+v 0.0271531 -0.00985854 0.144602
+v 0.0271531 0.00985854 0.144602
+v -0.0271531 -0.00985854 0.144602
+v -0.0271531 0.00985854 0.144602
+v -0.0242569 -0.0154341 -0.144655
+v -0.0242569 0.0154341 -0.144655
+v 0.0242569 -0.0154341 -0.144655
+v 0.0242569 0.0154341 -0.144655
+v 0.0242569 -0.0154341 0.144655
+v 0.0242569 0.0154341 0.144655
+v -0.0242569 -0.0154341 0.144655
+v -0.0242569 0.0154341 0.144655
+v -0.0158899 -0.0236447 -0.144756
+v -0.0158899 0.0236447 -0.144756
+v 0.0158899 -0.0236447 -0.144756
+v 0.0158899 0.0236447 -0.144756
+v 0.0158899 -0.0236447 0.144756
+v 0.0158899 0.0236447 0.144756
+v -0.0158899 -0.0236447 0.144756
+v -0.0158899 0.0236447 0.144756
+v -0.0105137 -0.0263271 -0.144809
+v -0.0105137 0.0263271 -0.144809
+v 0.0105137 -0.0263271 -0.144809
+v 0.0105137 0.0263271 -0.144809
+v 0.0105137 -0.0263271 0.144809
+v 0.0105137 0.0263271 0.144809
+v -0.0105137 -0.0263271 0.144809
+v -0.0105137 0.0263271 0.144809
+v -0.0272551 -0.0070506 -0.144883
+v -0.0272551 0.0070506 -0.144883
+v 0.0272551 -0.0070506 -0.144883
+v 0.0272551 0.0070506 -0.144883
+v 0.0272551 -0.0070506 0.144883
+v 0.0272551 0.0070506 0.144883
+v -0.0272551 -0.0070506 0.144883
+v -0.0272551 0.0070506 0.144883
+v -0.0214731 -0.0181947 -0.144886
+v -0.0214731 0.0181947 -0.144886
+v 0.0214731 -0.0181947 -0.144886
+v 0.0214731 0.0181947 -0.144886
+v 0.0214731 -0.0181947 0.144886
+v 0.0214731 0.0181947 0.144886
+v -0.0214731 -0.0181947 0.144886
+v -0.0214731 0.0181947 0.144886
+v -0.0186795 -0.0209327 -0.144919
+v -0.0186795 0.0209327 -0.144919
+v 0.0186795 -0.0209327 -0.144919
+v 0.0186795 0.0209327 -0.144919
+v 0.0186795 -0.0209327 0.144919
+v 0.0186795 0.0209327 0.144919
+v -0.0186795 -0.0209327 0.144919
+v -0.0186795 0.0209327 0.144919
+v -0.0273233 -0.00423388 -0.14507
+v -0.0273233 0.00423388 -0.14507
+v 0.0273233 -0.00423388 -0.14507
+v 0.0273233 0.00423388 -0.14507
+v 0.0273233 -0.00423388 0.14507
+v 0.0273233 0.00423388 0.14507
+v -0.0273233 -0.00423388 0.14507
+v -0.0273233 0.00423388 0.14507
+v -0.0244101 -0.0126542 -0.145127
+v -0.0244101 0.0126542 -0.145127
+v 0.0244101 -0.0126542 -0.145127
+v 0.0244101 0.0126542 -0.145127
+v 0.0244101 -0.0126542 0.145127
+v 0.0244101 0.0126542 0.145127
+v -0.0244101 -0.0126542 0.145127
+v -0.0244101 0.0126542 0.145127
+v -0.00789649 -0.0263271 -0.14513
+v -0.00789649 0.0263271 -0.14513
+v 0.00789649 -0.0263271 -0.14513
+v 0.00789649 0.0263271 -0.14513
+v 0.00789649 -0.0263271 0.14513
+v 0.00789649 0.0263271 0.14513
+v -0.00789649 -0.0263271 0.14513
+v -0.00789649 0.0263271 0.14513
+v -0.0273573 -0.00141188 -0.145164
+v -0.0273573 0.00141188 -0.145164
+v 0.0273573 -0.00141188 -0.145164
+v 0.0273573 0.00141188 -0.145164
+v 0.0273573 -0.00141188 0.145164
+v 0.0273573 0.00141188 0.145164
+v -0.0273573 -0.00141188 0.145164
+v -0.0273573 0.00141188 0.145164
+v -0.0132712 -0.0236447 -0.145265
+v -0.0132712 0.0236447 -0.145265
+v 0.0132712 -0.0236447 -0.145265
+v 0.0132712 0.0236447 -0.145265
+v 0.0132712 -0.0236447 0.145265
+v 0.0132712 0.0236447 0.145265
+v -0.0132712 -0.0236447 0.145265
+v -0.0132712 0.0236447 0.145265
+v -0.00526968 -0.0263271 -0.14536
+v -0.00526968 0.0263271 -0.14536
+v 0.00526968 -0.0263271 -0.14536
+v 0.00526968 0.0263271 -0.14536
+v 0.00526968 -0.0263271 0.14536
+v 0.00526968 0.0263271 0.14536
+v -0.00526968 -0.0263271 0.14536
+v -0.00526968 0.0263271 0.14536
+v -0.0216367 -0.0154341 -0.145456
+v -0.0216367 0.0154341 -0.145456
+v 0.0216367 -0.0154341 -0.145456
+v 0.0216367 0.0154341 -0.145456
+v 0.0216367 -0.0154341 0.145456
+v 0.0216367 0.0154341 0.145456
+v -0.0216367 -0.0154341 0.145456
+v -0.0216367 0.0154341 0.145456
+v -0.00263644 -0.0263271 -0.145498
+v -0.00263644 0.0263271 -0.145498
+v 0.00263644 -0.0263271 -0.145498
+v 0.00263644 0.0263271 -0.145498
+v 0.00263644 -0.0263271 0.145498
+v 0.00263644 0.0263271 0.145498
+v -0.00263644 -0.0263271 0.145498
+v -0.00263644 0.0263271 0.145498
+v -0.0245329 -0.00985854 -0.145505
+v -0.0245329 0.00985854 -0.145505
+v 0.0245329 -0.00985854 -0.145505
+v 0.0245329 0.00985854 -0.145505
+v 0.0245329 -0.00985854 0.145505
+v 0.0245329 0.00985854 0.145505
+v -0.0245329 -0.00985854 0.145505
+v -0.0245329 0.00985854 0.145505
+v -0.0160534 -0.0209327 -0.145526
+v -0.0160534 0.0209327 -0.145526
+v 0.0160534 -0.0209327 -0.145526
+v 0.0160534 0.0209327 -0.145526
+v 0.0160534 -0.0209327 0.145526
+v 0.0160534 0.0209327 0.145526
+v -0.0160534 -0.0209327 0.145526
+v -0.0160534 0.0209327 0.145526
+v -1.38772e-17 -0.0263271 -0.145544
+v -1.38772e-17 0.0263271 -0.145544
+v 4.62573e-18 -0.0263271 0.145544
+v 4.62573e-18 0.0263271 0.145544
+v -0.0188466 -0.0181947 -0.145589
+v -0.0188466 0.0181947 -0.145589
+v 0.0188466 -0.0181947 -0.145589
+v 0.0188466 0.0181947 -0.145589
+v 0.0188466 -0.0181947 0.145589
+v 0.0188466 0.0181947 0.145589
+v -0.0188466 -0.0181947 0.145589
+v -0.0188466 0.0181947 0.145589
+v -0.0106364 -0.0236447 -0.145682
+v -0.0106364 0.0236447 -0.145682
+v 0.0106364 -0.0236447 -0.145682
+v 0.0106364 0.0236447 -0.145682
+v 0.0106364 -0.0236447 0.145682
+v 0.0106364 0.0236447 0.145682
+v -0.0106364 -0.0236447 0.145682
+v -0.0106364 0.0236447 0.145682
+v -0.0246252 -0.0070506 -0.145788
+v -0.0246252 0.0070506 -0.145788
+v 0.0246252 -0.0070506 -0.145788
+v 0.0246252 0.0070506 -0.145788
+v 0.0246252 -0.0070506 0.145788
+v 0.0246252 0.0070506 0.145788
+v -0.0246252 -0.0070506 0.145788
+v -0.0246252 0.0070506 0.145788
+v -0.0217734 -0.0126542 -0.145933
+v -0.0217734 0.0126542 -0.145933
+v 0.0217734 -0.0126542 -0.145933
+v 0.0217734 0.0126542 -0.145933
+v 0.0217734 -0.0126542 0.145933
+v 0.0217734 0.0126542 0.145933
+v -0.0217734 -0.0126542 0.145933
+v -0.0217734 0.0126542 0.145933
+v -0.0246867 -0.00423388 -0.145978
+v -0.0246867 0.00423388 -0.145978
+v 0.0246867 -0.00423388 -0.145978
+v 0.0246867 0.00423388 -0.145978
+v 0.0246867 -0.00423388 0.145978
+v 0.0246867 0.00423388 0.145978
+v -0.0246867 -0.00423388 0.145978
+v -0.0246867 0.00423388 0.145978
+v -0.00798869 -0.0236447 -0.146007
+v -0.00798869 0.0236447 -0.146007
+v 0.00798869 -0.0236447 -0.146007
+v 0.00798869 0.0236447 -0.146007
+v 0.00798869 -0.0236447 0.146007
+v 0.00798869 0.0236447 0.146007
+v -0.00798869 -0.0236447 0.146007
+v -0.00798869 0.0236447 0.146007
+v -0.0134079 -0.0209327 -0.14604
+v -0.0134079 0.0209327 -0.14604
+v 0.0134079 -0.0209327 -0.14604
+v 0.0134079 0.0209327 -0.14604
+v 0.0134079 -0.0209327 0.14604
+v 0.0134079 0.0209327 0.14604
+v -0.0134079 -0.0209327 0.14604
+v -0.0134079 0.0209327 0.14604
+v -0.0247175 -0.00141188 -0.146073
+v -0.0247175 0.00141188 -0.146073
+v 0.0247175 -0.00141188 -0.146073
+v 0.0247175 0.00141188 -0.146073
+v 0.0247175 -0.00141188 0.146073
+v 0.0247175 0.00141188 0.146073
+v -0.0247175 -0.00141188 0.146073
+v -0.0247175 0.00141188 0.146073
+v -0.0189902 -0.0154341 -0.146165
+v -0.0189902 0.0154341 -0.146165
+v 0.0189902 -0.0154341 -0.146165
+v 0.0189902 0.0154341 -0.146165
+v 0.0189902 -0.0154341 0.146165
+v 0.0189902 0.0154341 0.146165
+v -0.0189902 -0.0154341 0.146165
+v -0.0189902 0.0154341 0.146165
+v -0.016197 -0.0181947 -0.146201
+v -0.016197 0.0181947 -0.146201
+v 0.016197 -0.0181947 -0.146201
+v 0.016197 0.0181947 -0.146201
+v 0.016197 -0.0181947 0.146201
+v 0.016197 0.0181947 0.146201
+v -0.016197 -0.0181947 0.146201
+v -0.016197 0.0181947 0.146201
+v -0.00533121 -0.0236447 -0.14624
+v -0.00533121 0.0236447 -0.14624
+v 0.00533121 -0.0236447 -0.14624
+v 0.00533121 0.0236447 -0.14624
+v 0.00533121 -0.0236447 0.14624
+v 0.00533121 0.0236447 0.14624
+v -0.00533121 -0.0236447 0.14624
+v -0.00533121 0.0236447 0.14624
+v -0.0218829 -0.00985854 -0.146315
+v -0.0218829 0.00985854 -0.146315
+v 0.0218829 -0.00985854 -0.146315
+v 0.0218829 0.00985854 -0.146315
+v 0.0218829 -0.00985854 0.146315
+v 0.0218829 0.00985854 0.146315
+v -0.0218829 -0.00985854 0.146315
+v -0.0218829 0.00985854 0.146315
+v -0.00266723 -0.0236447 -0.146379
+v -0.00266723 0.0236447 -0.146379
+v 0.00266723 -0.0236447 -0.146379
+v 0.00266723 0.0236447 -0.146379
+v 0.00266723 -0.0236447 0.146379
+v 0.00266723 0.0236447 0.146379
+v -0.00266723 -0.0236447 0.146379
+v -0.00266723 0.0236447 0.146379
+v -1.40392e-17 -0.0236447 -0.146426
+v -1.40392e-17 0.0236447 -0.146426
+v 4.67974e-18 -0.0236447 0.146426
+v 4.67974e-18 0.0236447 0.146426
+v -0.0107459 -0.0209327 -0.146461
+v -0.0107459 0.0209327 -0.146461
+v 0.0107459 -0.0209327 -0.146461
+v 0.0107459 0.0209327 -0.146461
+v 0.0107459 -0.0209327 0.146461
+v 0.0107459 0.0209327 0.146461
+v -0.0107459 -0.0209327 0.146461
+v -0.0107459 0.0209327 0.146461
+v -0.0219652 -0.0070506 -0.146602
+v -0.0219652 0.0070506 -0.146602
+v 0.0219652 -0.0070506 -0.146602
+v 0.0219652 0.0070506 -0.146602
+v 0.0219652 -0.0070506 0.146602
+v 0.0219652 0.0070506 0.146602
+v -0.0219652 -0.0070506 0.146602
+v -0.0219652 0.0070506 0.146602
+v -0.0191101 -0.0126542 -0.146646
+v -0.0191101 0.0126542 -0.146646
+v 0.0191101 -0.0126542 -0.146646
+v 0.0191101 0.0126542 -0.146646
+v 0.0191101 -0.0126542 0.146646
+v 0.0191101 0.0126542 0.146646
+v -0.0191101 -0.0126542 0.146646
+v -0.0191101 0.0126542 0.146646
+v -0.0135278 -0.0181947 -0.14672
+v -0.0135278 0.0181947 -0.14672
+v 0.0135278 -0.0181947 -0.14672
+v 0.0135278 0.0181947 -0.14672
+v 0.0135278 -0.0181947 0.14672
+v 0.0135278 0.0181947 0.14672
+v -0.0135278 -0.0181947 0.14672
+v -0.0135278 0.0181947 0.14672
+v -0.0163205 -0.0154341 -0.146782
+v -0.0163205 0.0154341 -0.146782
+v 0.0163205 -0.0154341 -0.146782
+v 0.0163205 0.0154341 -0.146782
+v 0.0163205 -0.0154341 0.146782
+v 0.0163205 0.0154341 0.146782
+v -0.0163205 -0.0154341 0.146782
+v -0.0163205 0.0154341 0.146782
+v -0.00807094 -0.0209327 -0.14679
+v -0.00807094 0.0209327 -0.14679
+v 0.00807094 -0.0209327 -0.14679
+v 0.00807094 0.0209327 -0.14679
+v 0.00807094 -0.0209327 0.14679
+v 0.00807094 0.0209327 0.14679
+v -0.00807094 -0.0209327 0.14679
+v -0.00807094 0.0209327 0.14679
+v -0.0220201 -0.00423388 -0.146793
+v -0.0220201 0.00423388 -0.146793
+v 0.0220201 -0.00423388 -0.146793
+v 0.0220201 0.00423388 -0.146793
+v 0.0220201 -0.00423388 0.146793
+v 0.0220201 0.00423388 0.146793
+v -0.0220201 -0.00423388 0.146793
+v -0.0220201 0.00423388 0.146793
+v -0.0220476 -0.00141188 -0.146889
+v -0.0220476 0.00141188 -0.146889
+v 0.0220476 -0.00141188 -0.146889
+v 0.0220476 0.00141188 -0.146889
+v 0.0220476 -0.00141188 0.146889
+v 0.0220476 0.00141188 0.146889
+v -0.0220476 -0.00141188 0.146889
+v -0.0220476 0.00141188 0.146889
+v -0.00538609 -0.0209327 -0.147025
+v -0.00538609 0.0209327 -0.147025
+v 0.00538609 -0.0209327 -0.147025
+v 0.00538609 0.0209327 -0.147025
+v 0.00538609 -0.0209327 0.147025
+v 0.00538609 0.0209327 0.147025
+v -0.00538609 -0.0209327 0.147025
+v -0.00538609 0.0209327 0.147025
+v -0.0192062 -0.00985854 -0.147032
+v -0.0192062 0.00985854 -0.147032
+v 0.0192062 -0.00985854 -0.147032
+v 0.0192062 0.00985854 -0.147032
+v 0.0192062 -0.00985854 0.147032
+v 0.0192062 0.00985854 0.147032
+v -0.0192062 -0.00985854 0.147032
+v -0.0192062 0.00985854 0.147032
+v -0.0108421 -0.0181947 -0.147145
+v -0.0108421 0.0181947 -0.147145
+v 0.0108421 -0.0181947 -0.147145
+v 0.0108421 0.0181947 -0.147145
+v 0.0108421 -0.0181947 0.147145
+v 0.0108421 0.0181947 0.147145
+v -0.0108421 -0.0181947 0.147145
+v -0.0108421 0.0181947 0.147145
+v -0.00269469 -0.0209327 -0.147166
+v -0.00269469 0.0209327 -0.147166
+v 0.00269469 -0.0209327 -0.147166
+v 0.00269469 0.0209327 -0.147166
+v 0.00269469 -0.0209327 0.147166
+v 0.00269469 0.0209327 0.147166
+v -0.00269469 -0.0209327 0.147166
+v -0.00269469 0.0209327 0.147166
+v -1.41838e-17 -0.0209327 -0.147213
+v -1.41838e-17 0.0209327 -0.147213
+v 4.72792e-18 -0.0209327 0.147213
+v 4.72792e-18 0.0209327 0.147213
+v -0.0164235 -0.0126542 -0.147267
+v -0.0164235 0.0126542 -0.147267
+v 0.0164235 -0.0126542 -0.147267
+v 0.0164235 0.0126542 -0.147267
+v 0.0164235 -0.0126542 0.147267
+v 0.0164235 0.0126542 0.147267
+v -0.0164235 -0.0126542 0.147267
+v -0.0164235 0.0126542 0.147267
+v -0.0136309 -0.0154341 -0.147305
+v -0.0136309 0.0154341 -0.147305
+v 0.0136309 -0.0154341 -0.147305
+v 0.0136309 0.0154341 -0.147305
+v 0.0136309 -0.0154341 0.147305
+v 0.0136309 0.0154341 0.147305
+v -0.0136309 -0.0154341 0.147305
+v -0.0136309 0.0154341 0.147305
+v -0.0192784 -0.0070506 -0.147322
+v -0.0192784 0.0070506 -0.147322
+v 0.0192784 -0.0070506 -0.147322
+v 0.0192784 0.0070506 -0.147322
+v 0.0192784 -0.0070506 0.147322
+v 0.0192784 0.0070506 0.147322
+v -0.0192784 -0.0070506 0.147322
+v -0.0192784 0.0070506 0.147322
+v -0.00814313 -0.0181947 -0.147477
+v -0.00814313 0.0181947 -0.147477
+v 0.00814313 -0.0181947 -0.147477
+v 0.00814313 0.0181947 -0.147477
+v 0.00814313 -0.0181947 0.147477
+v 0.00814313 0.0181947 0.147477
+v -0.00814313 -0.0181947 0.147477
+v -0.00814313 0.0181947 0.147477
+v -0.0193266 -0.00423388 -0.147515
+v -0.0193266 0.00423388 -0.147515
+v 0.0193266 -0.00423388 -0.147515
+v 0.0193266 0.00423388 -0.147515
+v 0.0193266 -0.00423388 0.147515
+v 0.0193266 0.00423388 0.147515
+v -0.0193266 -0.00423388 0.147515
+v -0.0193266 0.00423388 0.147515
+v -0.0193507 -0.00141188 -0.147612
+v -0.0193507 0.00141188 -0.147612
+v 0.0193507 -0.00141188 -0.147612
+v 0.0193507 0.00141188 -0.147612
+v 0.0193507 -0.00141188 0.147612
+v 0.0193507 0.00141188 0.147612
+v -0.0193507 -0.00141188 0.147612
+v -0.0193507 0.00141188 0.147612
+v -0.0165062 -0.00985854 -0.147655
+v -0.0165062 0.00985854 -0.147655
+v 0.0165062 -0.00985854 -0.147655
+v 0.0165062 0.00985854 -0.147655
+v 0.0165062 -0.00985854 0.147655
+v 0.0165062 0.00985854 0.147655
+v -0.0165062 -0.00985854 0.147655
+v -0.0165062 0.00985854 0.147655
+v -0.00543427 -0.0181947 -0.147714
+v -0.00543427 0.0181947 -0.147714
+v 0.00543427 -0.0181947 -0.147714
+v 0.00543427 0.0181947 -0.147714
+v 0.00543427 -0.0181947 0.147714
+v 0.00543427 0.0181947 0.147714
+v -0.00543427 -0.0181947 0.147714
+v -0.00543427 0.0181947 0.147714
+v -0.0109247 -0.0154341 -0.147733
+v -0.0109247 0.0154341 -0.147733
+v 0.0109247 -0.0154341 -0.147733
+v 0.0109247 0.0154341 -0.147733
+v 0.0109247 -0.0154341 0.147733
+v 0.0109247 0.0154341 0.147733
+v -0.0109247 -0.0154341 0.147733
+v -0.0109247 0.0154341 0.147733
+v -0.013717 -0.0126542 -0.147793
+v -0.013717 0.0126542 -0.147793
+v 0.013717 -0.0126542 -0.147793
+v 0.013717 0.0126542 -0.147793
+v 0.013717 -0.0126542 0.147793
+v 0.013717 0.0126542 0.147793
+v -0.013717 -0.0126542 0.147793
+v -0.013717 0.0126542 0.147793
+v -0.00271879 -0.0181947 -0.147856
+v -0.00271879 0.0181947 -0.147856
+v 0.00271879 -0.0181947 -0.147856
+v 0.00271879 0.0181947 -0.147856
+v 0.00271879 -0.0181947 0.147856
+v 0.00271879 0.0181947 0.147856
+v -0.00271879 -0.0181947 0.147856
+v -0.00271879 0.0181947 0.147856
+v -1.43106e-17 -0.0181947 -0.147903
+v -1.43106e-17 0.0181947 -0.147903
+v 4.77021e-18 -0.0181947 0.147903
+v 4.77021e-18 0.0181947 0.147903
+v -0.0165682 -0.0070506 -0.147947
+v -0.0165682 0.0070506 -0.147947
+v 0.0165682 -0.0070506 -0.147947
+v 0.0165682 0.0070506 -0.147947
+v 0.0165682 -0.0070506 0.147947
+v 0.0165682 0.0070506 0.147947
+v -0.0165682 -0.0070506 0.147947
+v -0.0165682 0.0070506 0.147947
+v -0.00820518 -0.0154341 -0.148067
+v -0.00820518 0.0154341 -0.148067
+v 0.00820518 -0.0154341 -0.148067
+v 0.00820518 0.0154341 -0.148067
+v 0.00820518 -0.0154341 0.148067
+v 0.00820518 0.0154341 0.148067
+v -0.00820518 -0.0154341 0.148067
+v -0.00820518 0.0154341 0.148067
+v -0.0166096 -0.00423388 -0.148142
+v -0.0166096 0.00423388 -0.148142
+v 0.0166096 -0.00423388 -0.148142
+v 0.0166096 0.00423388 -0.148142
+v 0.0166096 -0.00423388 0.148142
+v 0.0166096 0.00423388 0.148142
+v -0.0166096 -0.00423388 0.148142
+v -0.0166096 0.00423388 0.148142
+v -0.013786 -0.00985854 -0.148184
+v -0.013786 0.00985854 -0.148184
+v 0.013786 -0.00985854 -0.148184
+v 0.013786 0.00985854 -0.148184
+v 0.013786 -0.00985854 0.148184
+v 0.013786 0.00985854 0.148184
+v -0.013786 -0.00985854 0.148184
+v -0.013786 0.00985854 0.148184
+v -0.0109937 -0.0126542 -0.148224
+v -0.0109937 0.0126542 -0.148224
+v 0.0109937 -0.0126542 -0.148224
+v 0.0109937 0.0126542 -0.148224
+v 0.0109937 -0.0126542 0.148224
+v 0.0109937 0.0126542 0.148224
+v -0.0109937 -0.0126542 0.148224
+v -0.0109937 0.0126542 0.148224
+v -0.0166303 -0.00141188 -0.14824
+v -0.0166303 0.00141188 -0.14824
+v 0.0166303 -0.00141188 -0.14824
+v 0.0166303 0.00141188 -0.14824
+v 0.0166303 -0.00141188 0.14824
+v 0.0166303 0.00141188 0.14824
+v -0.0166303 -0.00141188 0.14824
+v -0.0166303 0.00141188 0.14824
+v -0.00547568 -0.0154341 -0.148306
+v -0.00547568 0.0154341 -0.148306
+v 0.00547568 -0.0154341 -0.148306
+v 0.00547568 0.0154341 -0.148306
+v 0.00547568 -0.0154341 0.148306
+v 0.00547568 0.0154341 0.148306
+v -0.00547568 -0.0154341 0.148306
+v -0.00547568 0.0154341 0.148306
+v -0.00273951 -0.0154341 -0.148449
+v -0.00273951 0.0154341 -0.148449
+v 0.00273951 -0.0154341 -0.148449
+v 0.00273951 0.0154341 -0.148449
+v 0.00273951 -0.0154341 0.148449
+v 0.00273951 0.0154341 0.148449
+v -0.00273951 -0.0154341 0.148449
+v -0.00273951 0.0154341 0.148449
+v -0.0138378 -0.0070506 -0.148478
+v -0.0138378 0.0070506 -0.148478
+v 0.0138378 -0.0070506 -0.148478
+v 0.0138378 0.0070506 -0.148478
+v 0.0138378 -0.0070506 0.148478
+v 0.0138378 0.0070506 0.148478
+v -0.0138378 -0.0070506 0.148478
+v -0.0138378 0.0070506 0.148478
+v -1.44197e-17 -0.0154341 -0.148497
+v -1.44197e-17 0.0154341 -0.148497
+v 4.80656e-18 -0.0154341 0.148497
+v 4.80656e-18 0.0154341 0.148497
+v -0.008257 -0.0126542 -0.14856
+v -0.008257 0.0126542 -0.14856
+v 0.008257 -0.0126542 -0.14856
+v 0.008257 0.0126542 -0.14856
+v 0.008257 -0.0126542 0.14856
+v 0.008257 0.0126542 0.14856
+v -0.008257 -0.0126542 0.14856
+v -0.008257 0.0126542 0.14856
+v -0.011049 -0.00985854 -0.148618
+v -0.011049 0.00985854 -0.148618
+v 0.011049 -0.00985854 -0.148618
+v 0.011049 0.00985854 -0.148618
+v 0.011049 -0.00985854 0.148618
+v 0.011049 0.00985854 0.148618
+v -0.011049 -0.00985854 0.148618
+v -0.011049 0.00985854 0.148618
+v -0.0138724 -0.00423388 -0.148674
+v -0.0138724 0.00423388 -0.148674
+v 0.0138724 -0.00423388 -0.148674
+v 0.0138724 0.00423388 -0.148674
+v 0.0138724 -0.00423388 0.148674
+v 0.0138724 0.00423388 0.148674
+v -0.0138724 -0.00423388 0.148674
+v -0.0138724 0.00423388 0.148674
+v -0.0138897 -0.00141188 -0.148772
+v -0.0138897 0.00141188 -0.148772
+v 0.0138897 -0.00141188 -0.148772
+v 0.0138897 0.00141188 -0.148772
+v 0.0138897 -0.00141188 0.148772
+v 0.0138897 0.00141188 0.148772
+v -0.0138897 -0.00141188 0.148772
+v -0.0138897 0.00141188 0.148772
+v -0.00551026 -0.0126542 -0.1488
+v -0.00551026 0.0126542 -0.1488
+v 0.00551026 -0.0126542 -0.1488
+v 0.00551026 0.0126542 -0.1488
+v 0.00551026 -0.0126542 0.1488
+v 0.00551026 0.0126542 0.1488
+v -0.00551026 -0.0126542 0.1488
+v -0.00551026 0.0126542 0.1488
+v -0.0110905 -0.0070506 -0.148913
+v -0.0110905 0.0070506 -0.148913
+v 0.0110905 -0.0070506 -0.148913
+v 0.0110905 0.0070506 -0.148913
+v 0.0110905 -0.0070506 0.148913
+v 0.0110905 0.0070506 0.148913
+v -0.0110905 -0.0070506 0.148913
+v -0.0110905 0.0070506 0.148913
+v -0.00275681 -0.0126542 -0.148945
+v -0.00275681 0.0126542 -0.148945
+v 0.00275681 -0.0126542 -0.148945
+v 0.00275681 0.0126542 -0.148945
+v 0.00275681 -0.0126542 0.148945
+v 0.00275681 0.0126542 0.148945
+v -0.00275681 -0.0126542 0.148945
+v -0.00275681 0.0126542 0.148945
+v -0.00829854 -0.00985854 -0.148955
+v -0.00829854 0.00985854 -0.148955
+v 0.00829854 -0.00985854 -0.148955
+v 0.00829854 0.00985854 -0.148955
+v 0.00829854 -0.00985854 0.148955
+v 0.00829854 0.00985854 0.148955
+v -0.00829854 -0.00985854 0.148955
+v -0.00829854 0.00985854 0.148955
+v -1.45108e-17 -0.0126542 -0.148993
+v -1.45108e-17 0.0126542 -0.148993
+v 4.83692e-18 -0.0126542 0.148993
+v 4.83692e-18 0.0126542 0.148993
+v -0.0111182 -0.00423388 -0.14911
+v -0.0111182 0.00423388 -0.14911
+v 0.0111182 -0.00423388 -0.14911
+v 0.0111182 0.00423388 -0.14911
+v 0.0111182 -0.00423388 0.14911
+v 0.0111182 0.00423388 0.14911
+v -0.0111182 -0.00423388 0.14911
+v -0.0111182 0.00423388 0.14911
+v -0.00553798 -0.00985854 -0.149197
+v -0.00553798 0.00985854 -0.149197
+v 0.00553798 -0.00985854 -0.149197
+v 0.00553798 0.00985854 -0.149197
+v 0.00553798 -0.00985854 0.149197
+v 0.00553798 0.00985854 0.149197
+v -0.00553798 -0.00985854 0.149197
+v -0.00553798 0.00985854 0.149197
+v -0.0111321 -0.00141188 -0.149209
+v -0.0111321 0.00141188 -0.149209
+v 0.0111321 -0.00141188 -0.149209
+v 0.0111321 0.00141188 -0.149209
+v 0.0111321 -0.00141188 0.149209
+v 0.0111321 0.00141188 0.149209
+v -0.0111321 -0.00141188 0.149209
+v -0.0111321 0.00141188 0.149209
+v -0.00832974 -0.0070506 -0.149252
+v -0.00832974 0.0070506 -0.149252
+v 0.00832974 -0.0070506 -0.149252
+v 0.00832974 0.0070506 -0.149252
+v 0.00832974 -0.0070506 0.149252
+v 0.00832974 0.0070506 0.149252
+v -0.00832974 -0.0070506 0.149252
+v -0.00832974 0.0070506 0.149252
+v -0.00277068 -0.00985854 -0.149342
+v -0.00277068 0.00985854 -0.149342
+v 0.00277068 -0.00985854 -0.149342
+v 0.00277068 0.00985854 -0.149342
+v 0.00277068 -0.00985854 0.149342
+v 0.00277068 0.00985854 0.149342
+v -0.00277068 -0.00985854 0.149342
+v -0.00277068 0.00985854 0.149342
+v -1.45838e-17 -0.00985854 -0.14939
+v -1.45838e-17 0.00985854 -0.14939
+v 4.86125e-18 -0.00985854 0.14939
+v 4.86125e-18 0.00985854 0.14939
+v -0.00835056 -0.00423388 -0.14945
+v -0.00835056 0.00423388 -0.14945
+v 0.00835056 -0.00423388 -0.14945
+v 0.00835056 0.00423388 -0.14945
+v 0.00835056 -0.00423388 0.14945
+v 0.00835056 0.00423388 0.14945
+v -0.00835056 -0.00423388 0.14945
+v -0.00835056 0.00423388 0.14945
+v -0.0055588 -0.0070506 -0.149495
+v -0.0055588 0.0070506 -0.149495
+v 0.0055588 -0.0070506 -0.149495
+v 0.0055588 0.0070506 -0.149495
+v 0.0055588 -0.0070506 0.149495
+v 0.0055588 0.0070506 0.149495
+v -0.0055588 -0.0070506 0.149495
+v -0.0055588 0.0070506 0.149495
+v -0.00836097 -0.00141188 -0.149549
+v -0.00836097 0.00141188 -0.149549
+v 0.00836097 -0.00141188 -0.149549
+v 0.00836097 0.00141188 -0.149549
+v 0.00836097 -0.00141188 0.149549
+v 0.00836097 0.00141188 0.149549
+v -0.00836097 -0.00141188 0.149549
+v -0.00836097 0.00141188 0.149549
+v -0.0027811 -0.0070506 -0.14964
+v -0.0027811 0.0070506 -0.14964
+v 0.0027811 -0.0070506 -0.14964
+v 0.0027811 0.0070506 -0.14964
+v 0.0027811 -0.0070506 0.14964
+v 0.0027811 0.0070506 0.14964
+v -0.0027811 -0.0070506 0.14964
+v -0.0027811 0.0070506 0.14964
+v -1.46386e-17 -0.0070506 -0.149689
+v -1.46386e-17 0.0070506 -0.149689
+v 4.87953e-18 -0.0070506 0.149689
+v 4.87953e-18 0.0070506 0.149689
+v -0.0055727 -0.00423388 -0.149693
+v -0.0055727 0.00423388 -0.149693
+v 0.0055727 -0.00423388 -0.149693
+v 0.0055727 0.00423388 -0.149693
+v 0.0055727 -0.00423388 0.149693
+v 0.0055727 0.00423388 0.149693
+v -0.0055727 -0.00423388 0.149693
+v -0.0055727 0.00423388 0.149693
+v -0.00557965 -0.00141188 -0.149793
+v -0.00557965 0.00141188 -0.149793
+v 0.00557965 -0.00141188 -0.149793
+v 0.00557965 0.00141188 -0.149793
+v 0.00557965 -0.00141188 0.149793
+v 0.00557965 0.00141188 0.149793
+v -0.00557965 -0.00141188 0.149793
+v -0.00557965 0.00141188 0.149793
+v -0.00278805 -0.00423388 -0.149839
+v -0.00278805 0.00423388 -0.149839
+v 0.00278805 -0.00423388 -0.149839
+v 0.00278805 0.00423388 -0.149839
+v 0.00278805 -0.00423388 0.149839
+v 0.00278805 0.00423388 0.149839
+v -0.00278805 -0.00423388 0.149839
+v -0.00278805 0.00423388 0.149839
+v -1.46752e-17 -0.00423388 -0.149888
+v -1.46752e-17 0.00423388 -0.149888
+v 4.89172e-18 -0.00423388 0.149888
+v 4.89172e-18 0.00423388 0.149888
+v -0.00279152 -0.00141188 -0.149939
+v -0.00279152 0.00141188 -0.149939
+v 0.00279152 -0.00141188 -0.149939
+v 0.00279152 0.00141188 -0.149939
+v 0.00279152 -0.00141188 0.149939
+v 0.00279152 0.00141188 0.149939
+v -0.00279152 -0.00141188 0.149939
+v -0.00279152 0.00141188 0.149939
+v -1.46935e-17 -0.00141188 -0.149988
+v -1.46935e-17 0.00141188 -0.149988
+v 4.89782e-18 -0.00141188 0.149988
+v 4.89782e-18 0.00141188 0.149988
+# </points>
+
+# <faces count="32080">
+g zone0
+f 633 753 369
+f 753 769 369
+f 769 777 369
+f 777 801 369
+f 801 825 369
+f 825 841 369
+f 841 873 369
+f 873 889 369
+f 889 921 369
+f 921 945 369
+f 945 977 369
+f 977 993 369
+f 993 1041 369
+f 1041 1057 369
+f 1057 1089 369
+f 1089 1121 369
+f 1121 1161 369
+f 1161 1177 369
+f 1177 1193 369
+f 1193 1241 369
+f 1241 1257 369
+f 1257 1305 369
+f 1305 1321 369
+f 1321 1353 369
+f 1353 1385 369
+f 1385 1401 369
+f 1401 1417 369
+f 1417 1473 369
+f 1473 1497 369
+f 1497 1521 369
+f 1521 1553 369
+f 1553 1569 369
+f 1569 1585 369
+f 1585 1617 369
+f 1617 1649 369
+f 1649 1665 369
+f 1665 1681 369
+f 1681 1721 369
+f 1721 1737 369
+f 1737 1753 369
+f 1753 1785 369
+f 1785 1793 369
+f 1793 1801 369
+f 1801 1825 369
+f 1825 1833 369
+f 1833 1827 369
+f 1827 1803 369
+f 1803 1795 369
+f 1795 1787 369
+f 1787 1755 369
+f 1755 1739 369
+f 1739 1723 369
+f 1723 1683 369
+f 1683 1667 369
+f 1667 1651 369
+f 1651 1619 369
+f 1619 1587 369
+f 1587 1571 369
+f 1571 1555 369
+f 1555 1523 369
+f 1523 1499 369
+f 1499 1475 369
+f 1475 1419 369
+f 1419 1403 369
+f 1403 1387 369
+f 1387 1355 369
+f 1355 1323 369
+f 1323 1307 369
+f 1307 1259 369
+f 1259 1243 369
+f 1243 1195 369
+f 1195 1179 369
+f 1179 1163 369
+f 1163 1123 369
+f 1123 1091 369
+f 1091 1059 369
+f 1059 1043 369
+f 1043 995 369
+f 995 979 369
+f 979 947 369
+f 947 923 369
+f 923 891 369
+f 891 875 369
+f 875 843 369
+f 843 827 369
+f 827 803 369
+f 803 779 369
+f 779 771 369
+f 771 755 369
+f 755 635 369
+f 634 370 754
+f 754 370 770
+f 770 370 778
+f 778 370 802
+f 802 370 826
+f 826 370 842
+f 842 370 874
+f 874 370 890
+f 890 370 922
+f 922 370 946
+f 946 370 978
+f 978 370 994
+f 994 370 1042
+f 1042 370 1058
+f 1058 370 1090
+f 1090 370 1122
+f 1122 370 1162
+f 1162 370 1178
+f 1178 370 1194
+f 1194 370 1242
+f 1242 370 1258
+f 1258 370 1306
+f 1306 370 1322
+f 1322 370 1354
+f 1354 370 1386
+f 1386 370 1402
+f 1402 370 1418
+f 1418 370 1474
+f 1474 370 1498
+f 1498 370 1522
+f 1522 370 1554
+f 1554 370 1570
+f 1570 370 1586
+f 1586 370 1618
+f 1618 370 1650
+f 1650 370 1666
+f 1666 370 1682
+f 1682 370 1722
+f 1722 370 1738
+f 1738 370 1754
+f 1754 370 1786
+f 1786 370 1794
+f 1794 370 1802
+f 1802 370 1826
+f 1826 370 1834
+f 1834 370 1828
+f 1828 370 1804
+f 1804 370 1796
+f 1796 370 1788
+f 1788 370 1756
+f 1756 370 1740
+f 1740 370 1724
+f 1724 370 1684
+f 1684 370 1668
+f 1668 370 1652
+f 1652 370 1620
+f 1620 370 1588
+f 1588 370 1572
+f 1572 370 1556
+f 1556 370 1524
+f 1524 370 1500
+f 1500 370 1476
+f 1476 370 1420
+f 1420 370 1404
+f 1404 370 1388
+f 1388 370 1356
+f 1356 370 1324
+f 1324 370 1308
+f 1308 370 1260
+f 1260 370 1244
+f 1244 370 1196
+f 1196 370 1180
+f 1180 370 1164
+f 1164 370 1124
+f 1124 370 1092
+f 1092 370 1060
+f 1060 370 1044
+f 1044 370 996
+f 996 370 980
+f 980 370 948
+f 948 370 924
+f 924 370 892
+f 892 370 876
+f 876 370 844
+f 844 370 828
+f 828 370 804
+f 804 370 780
+f 780 370 772
+f 772 370 756
+f 756 370 636
+f 633 225 761
+f 633 761 753
+f 225 705 785
+f 225 785 761
+f 705 465 793
+f 705 793 785
+f 465 137 817
+f 465 817 793
+f 137 17 833
+f 137 833 817
+f 17 169 865
+f 17 865 833
+f 169 657 881
+f 169 881 865
+f 657 553 913
+f 657 913 881
+f 553 113 937
+f 553 937 913
+f 113 281 969
+f 113 969 937
+f 281 361 985
+f 281 985 969
+f 361 689 1033
+f 361 1033 985
+f 689 249 1049
+f 689 1049 1033
+f 249 273 1081
+f 249 1081 1049
+f 273 289 1113
+f 273 1113 1081
+f 289 409 1153
+f 289 1153 1113
+f 409 665 1169
+f 409 1169 1153
+f 665 345 1185
+f 665 1185 1169
+f 345 161 1233
+f 345 1233 1185
+f 161 545 1249
+f 161 1249 1233
+f 545 9 1297
+f 545 1297 1249
+f 9 153 1313
+f 9 1313 1297
+f 153 377 1345
+f 153 1345 1313
+f 377 41 1377
+f 377 1377 1345
+f 41 145 1393
+f 41 1393 1377
+f 145 385 1409
+f 145 1409 1393
+f 385 537 1457
+f 385 1457 1409
+f 537 313 1489
+f 537 1489 1457
+f 313 697 1505
+f 313 1505 1489
+f 697 57 1545
+f 697 1545 1505
+f 57 337 1561
+f 57 1561 1545
+f 337 641 1577
+f 337 1577 1561
+f 641 257 1593
+f 641 1593 1577
+f 257 265 1625
+f 257 1625 1593
+f 265 625 1657
+f 265 1657 1625
+f 625 97 1673
+f 625 1673 1657
+f 97 457 1689
+f 97 1689 1673
+f 457 649 1713
+f 457 1713 1689
+f 649 729 1729
+f 649 1729 1713
+f 729 105 1745
+f 729 1745 1729
+f 105 353 1761
+f 105 1761 1745
+f 353 433 1769
+f 353 1769 1761
+f 433 49 1777
+f 433 1777 1769
+f 49 50 1778
+f 49 1778 1777
+f 50 434 1770
+f 50 1770 1778
+f 434 354 1762
+f 434 1762 1770
+f 354 106 1746
+f 354 1746 1762
+f 106 730 1730
+f 106 1730 1746
+f 730 650 1714
+f 730 1714 1730
+f 650 458 1690
+f 650 1690 1714
+f 458 98 1674
+f 458 1674 1690
+f 98 626 1658
+f 98 1658 1674
+f 626 266 1626
+f 626 1626 1658
+f 266 258 1594
+f 266 1594 1626
+f 258 642 1578
+f 258 1578 1594
+f 642 338 1562
+f 642 1562 1578
+f 338 58 1546
+f 338 1546 1562
+f 58 698 1506
+f 58 1506 1546
+f 698 314 1490
+f 698 1490 1506
+f 314 538 1458
+f 314 1458 1490
+f 538 386 1410
+f 538 1410 1458
+f 386 146 1394
+f 386 1394 1410
+f 146 42 1378
+f 146 1378 1394
+f 42 378 1346
+f 42 1346 1378
+f 378 154 1314
+f 378 1314 1346
+f 154 10 1298
+f 154 1298 1314
+f 10 546 1250
+f 10 1250 1298
+f 546 162 1234
+f 546 1234 1250
+f 162 346 1186
+f 162 1186 1234
+f 346 666 1170
+f 346 1170 1186
+f 666 410 1154
+f 666 1154 1170
+f 410 290 1114
+f 410 1114 1154
+f 290 274 1082
+f 290 1082 1114
+f 274 250 1050
+f 274 1050 1082
+f 250 690 1034
+f 250 1034 1050
+f 690 362 986
+f 690 986 1034
+f 362 282 970
+f 362 970 986
+f 282 114 938
+f 282 938 970
+f 114 554 914
+f 114 914 938
+f 554 658 882
+f 554 882 914
+f 658 170 866
+f 658 866 882
+f 170 18 834
+f 170 834 866
+f 18 138 818
+f 18 818 834
+f 138 466 794
+f 138 794 818
+f 466 706 786
+f 466 786 794
+f 706 226 762
+f 706 762 786
+f 226 634 754
+f 226 754 762
+f 753 761 809
+f 753 809 769
+f 761 785 857
+f 761 857 809
+f 785 793 897
+f 785 897 857
+f 793 817 953
+f 793 953 897
+f 817 833 1001
+f 817 1001 953
+f 833 865 1065
+f 833 1065 1001
+f 865 881 1129
+f 865 1129 1065
+f 881 913 1201
+f 881 1201 1129
+f 913 937 1265
+f 913 1265 1201
+f 937 969 1361
+f 937 1361 1265
+f 969 985 1425
+f 969 1425 1361
+f 985 1033 1529
+f 985 1529 1425
+f 1033 1049 1633
+f 1033 1633 1529
+f 1049 1081 1809
+f 1049 1809 1633
+f 1081 1113 1869
+f 1081 1869 1809
+f 1113 1153 1901
+f 1113 1901 1869
+f 1153 1169 1933
+f 1153 1933 1901
+f 1169 1185 1981
+f 1169 1981 1933
+f 1185 1233 2021
+f 1185 2021 1981
+f 1233 1249 2053
+f 1233 2053 2021
+f 1249 1297 2101
+f 1249 2101 2053
+f 1297 1313 2133
+f 1297 2133 2101
+f 1313 1345 2165
+f 1313 2165 2133
+f 1345 1377 2213
+f 1345 2213 2165
+f 1377 1393 2245
+f 1377 2245 2213
+f 1393 1409 2277
+f 1393 2277 2245
+f 1409 1457 2325
+f 1409 2325 2277
+f 1457 1489 2365
+f 1457 2365 2325
+f 1489 1505 2397
+f 1489 2397 2365
+f 1505 1545 2429
+f 1505 2429 2397
+f 1545 1561 2461
+f 1545 2461 2429
+f 1561 1577 2477
+f 1561 2477 2461
+f 1577 1593 2517
+f 1577 2517 2477
+f 1593 1625 2557
+f 1593 2557 2517
+f 1625 1657 2589
+f 1625 2589 2557
+f 1657 1673 2605
+f 1657 2605 2589
+f 1673 1689 2645
+f 1673 2645 2605
+f 1689 1713 2669
+f 1689 2669 2645
+f 1713 1729 2677
+f 1713 2677 2669
+f 1729 1745 2693
+f 1729 2693 2677
+f 1745 1761 2709
+f 1745 2709 2693
+f 1761 1769 2717
+f 1761 2717 2709
+f 1769 1777 2725
+f 1769 2725 2717
+f 1777 1778 2726
+f 1777 2726 2725
+f 1778 1770 2718
+f 1778 2718 2726
+f 1770 1762 2710
+f 1770 2710 2718
+f 1762 1746 2694
+f 1762 2694 2710
+f 1746 1730 2678
+f 1746 2678 2694
+f 1730 1714 2670
+f 1730 2670 2678
+f 1714 1690 2646
+f 1714 2646 2670
+f 1690 1674 2606
+f 1690 2606 2646
+f 1674 1658 2590
+f 1674 2590 2606
+f 1658 1626 2558
+f 1658 2558 2590
+f 1626 1594 2518
+f 1626 2518 2558
+f 1594 1578 2478
+f 1594 2478 2518
+f 1578 1562 2462
+f 1578 2462 2478
+f 1562 1546 2430
+f 1562 2430 2462
+f 1546 1506 2398
+f 1546 2398 2430
+f 1506 1490 2366
+f 1506 2366 2398
+f 1490 1458 2326
+f 1490 2326 2366
+f 1458 1410 2278
+f 1458 2278 2326
+f 1410 1394 2246
+f 1410 2246 2278
+f 1394 1378 2214
+f 1394 2214 2246
+f 1378 1346 2166
+f 1378 2166 2214
+f 1346 1314 2134
+f 1346 2134 2166
+f 1314 1298 2102
+f 1314 2102 2134
+f 1298 1250 2054
+f 1298 2054 2102
+f 1250 1234 2022
+f 1250 2022 2054
+f 1234 1186 1982
+f 1234 1982 2022
+f 1186 1170 1934
+f 1186 1934 1982
+f 1170 1154 1902
+f 1170 1902 1934
+f 1154 1114 1870
+f 1154 1870 1902
+f 1114 1082 1810
+f 1114 1810 1870
+f 1082 1050 1634
+f 1082 1634 1810
+f 1050 1034 1530
+f 1050 1530 1634
+f 1034 986 1426
+f 1034 1426 1530
+f 986 970 1362
+f 986 1362 1426
+f 970 938 1266
+f 970 1266 1362
+f 938 914 1202
+f 938 1202 1266
+f 914 882 1130
+f 914 1130 1202
+f 882 866 1066
+f 882 1066 1130
+f 866 834 1002
+f 866 1002 1066
+f 834 818 954
+f 834 954 1002
+f 818 794 898
+f 818 898 954
+f 794 786 858
+f 794 858 898
+f 786 762 810
+f 786 810 858
+f 762 754 770
+f 762 770 810
+f 769 809 849
+f 769 849 777
+f 809 857 929
+f 809 929 849
+f 857 897 1017
+f 857 1017 929
+f 897 953 1097
+f 897 1097 1017
+f 953 1001 1217
+f 953 1217 1097
+f 1001 1065 1329
+f 1001 1329 1217
+f 1065 1129 1441
+f 1065 1441 1329
+f 1129 1201 1601
+f 1129 1601 1441
+f 1201 1265 1837
+f 1201 1837 1601
+f 1265 1361 1917
+f 1265 1917 1837
+f 1361 1425 1965
+f 1361 1965 1917
+f 1425 1529 2037
+f 1425 2037 1965
+f 1529 1633 2117
+f 1529 2117 2037
+f 1633 1809 2197
+f 1633 2197 2117
+f 1809 1869 2261
+f 1809 2261 2197
+f 1869 1901 2341
+f 1869 2341 2261
+f 1901 1933 2437
+f 1901 2437 2341
+f 1933 1981 2509
+f 1933 2509 2437
+f 1981 2021 2637
+f 1981 2637 2509
+f 2021 2053 2785
+f 2021 2785 2637
+f 2053 2101 2833
+f 2053 2833 2785
+f 2101 2133 2881
+f 2101 2881 2833
+f 2133 2165 2921
+f 2133 2921 2881
+f 2165 2213 2969
+f 2165 2969 2921
+f 2213 2245 3017
+f 2213 3017 2969
+f 2245 2277 3049
+f 2245 3049 3017
+f 2277 2325 3113
+f 2277 3113 3049
+f 2325 2365 3145
+f 2325 3145 3113
+f 2365 2397 3177
+f 2365 3177 3145
+f 2397 2429 3225
+f 2397 3225 3177
+f 2429 2461 3273
+f 2429 3273 3225
+f 2461 2477 3305
+f 2461 3305 3273
+f 2477 2517 3329
+f 2477 3329 3305
+f 2517 2557 3393
+f 2517 3393 3329
+f 2557 2589 3425
+f 2557 3425 3393
+f 2589 2605 3441
+f 2589 3441 3425
+f 2605 2645 3473
+f 2605 3473 3441
+f 2645 2669 3489
+f 2645 3489 3473
+f 2669 2677 3513
+f 2669 3513 3489
+f 2677 2693 3529
+f 2677 3529 3513
+f 2693 2709 3545
+f 2693 3545 3529
+f 2709 2717 3569
+f 2709 3569 3545
+f 2717 2725 3585
+f 2717 3585 3569
+f 2725 2726 3586
+f 2725 3586 3585
+f 2726 2718 3570
+f 2726 3570 3586
+f 2718 2710 3546
+f 2718 3546 3570
+f 2710 2694 3530
+f 2710 3530 3546
+f 2694 2678 3514
+f 2694 3514 3530
+f 2678 2670 3490
+f 2678 3490 3514
+f 2670 2646 3474
+f 2670 3474 3490
+f 2646 2606 3442
+f 2646 3442 3474
+f 2606 2590 3426
+f 2606 3426 3442
+f 2590 2558 3394
+f 2590 3394 3426
+f 2558 2518 3330
+f 2558 3330 3394
+f 2518 2478 3306
+f 2518 3306 3330
+f 2478 2462 3274
+f 2478 3274 3306
+f 2462 2430 3226
+f 2462 3226 3274
+f 2430 2398 3178
+f 2430 3178 3226
+f 2398 2366 3146
+f 2398 3146 3178
+f 2366 2326 3114
+f 2366 3114 3146
+f 2326 2278 3050
+f 2326 3050 3114
+f 2278 2246 3018
+f 2278 3018 3050
+f 2246 2214 2970
+f 2246 2970 3018
+f 2214 2166 2922
+f 2214 2922 2970
+f 2166 2134 2882
+f 2166 2882 2922
+f 2134 2102 2834
+f 2134 2834 2882
+f 2102 2054 2786
+f 2102 2786 2834
+f 2054 2022 2638
+f 2054 2638 2786
+f 2022 1982 2510
+f 2022 2510 2638
+f 1982 1934 2438
+f 1982 2438 2510
+f 1934 1902 2342
+f 1934 2342 2438
+f 1902 1870 2262
+f 1902 2262 2342
+f 1870 1810 2198
+f 1870 2198 2262
+f 1810 1634 2118
+f 1810 2118 2198
+f 1634 1530 2038
+f 1634 2038 2118
+f 1530 1426 1966
+f 1530 1966 2038
+f 1426 1362 1918
+f 1426 1918 1966
+f 1362 1266 1838
+f 1362 1838 1918
+f 1266 1202 1602
+f 1266 1602 1838
+f 1202 1130 1442
+f 1202 1442 1602
+f 1130 1066 1330
+f 1130 1330 1442
+f 1066 1002 1218
+f 1066 1218 1330
+f 1002 954 1098
+f 1002 1098 1218
+f 954 898 1018
+f 954 1018 1098
+f 898 858 930
+f 898 930 1018
+f 858 810 850
+f 858 850 930
+f 810 770 778
+f 810 778 850
+f 777 849 905
+f 777 905 801
+f 849 929 1025
+f 849 1025 905
+f 929 1017 1145
+f 929 1145 1025
+f 1017 1097 1281
+f 1017 1281 1145
+f 1097 1217 1465
+f 1097 1465 1281
+f 1217 1329 1697
+f 1217 1697 1465
+f 1329 1441 1885
+f 1329 1885 1697
+f 1441 1601 1997
+f 1441 1997 1885
+f 1601 1837 2069
+f 1601 2069 1997
+f 1837 1917 2181
+f 1837 2181 2069
+f 1917 1965 2293
+f 1917 2293 2181
+f 1965 2037 2413
+f 1965 2413 2293
+f 2037 2117 2565
+f 2037 2565 2413
+f 2117 2197 2749
+f 2117 2749 2565
+f 2197 2261 2849
+f 2197 2849 2749
+f 2261 2341 2937
+f 2261 2937 2849
+f 2341 2437 3001
+f 2341 3001 2937
+f 2437 2509 3097
+f 2437 3097 3001
+f 2509 2637 3161
+f 2509 3161 3097
+f 2637 2785 3257
+f 2637 3257 3161
+f 2785 2833 3337
+f 2785 3337 3257
+f 2833 2881 3449
+f 2833 3449 3337
+f 2881 2921 3553
+f 2881 3553 3449
+f 2921 2969 3685
+f 2921 3685 3553
+f 2969 3017 3717
+f 2969 3717 3685
+f 3017 3049 3781
+f 3017 3781 3717
+f 3049 3113 3813
+f 3049 3813 3781
+f 3113 3145 3885
+f 3113 3885 3813
+f 3145 3177 3901
+f 3145 3901 3885
+f 3177 3225 3981
+f 3177 3981 3901
+f 3225 3273 3997
+f 3225 3997 3981
+f 3273 3305 4045
+f 3273 4045 3997
+f 3305 3329 4109
+f 3305 4109 4045
+f 3329 3393 4157
+f 3329 4157 4109
+f 3393 3425 4173
+f 3393 4173 4157
+f 3425 3441 4197
+f 3425 4197 4173
+f 3441 3473 4237
+f 3441 4237 4197
+f 3473 3489 4253
+f 3473 4253 4237
+f 3489 3513 4293
+f 3489 4293 4253
+f 3513 3529 4317
+f 3513 4317 4293
+f 3529 3545 4341
+f 3529 4341 4317
+f 3545 3569 4349
+f 3545 4349 4341
+f 3569 3585 4357
+f 3569 4357 4349
+f 3585 3586 4358
+f 3585 4358 4357
+f 3586 3570 4350
+f 3586 4350 4358
+f 3570 3546 4342
+f 3570 4342 4350
+f 3546 3530 4318
+f 3546 4318 4342
+f 3530 3514 4294
+f 3530 4294 4318
+f 3514 3490 4254
+f 3514 4254 4294
+f 3490 3474 4238
+f 3490 4238 4254
+f 3474 3442 4198
+f 3474 4198 4238
+f 3442 3426 4174
+f 3442 4174 4198
+f 3426 3394 4158
+f 3426 4158 4174
+f 3394 3330 4110
+f 3394 4110 4158
+f 3330 3306 4046
+f 3330 4046 4110
+f 3306 3274 3998
+f 3306 3998 4046
+f 3274 3226 3982
+f 3274 3982 3998
+f 3226 3178 3902
+f 3226 3902 3982
+f 3178 3146 3886
+f 3178 3886 3902
+f 3146 3114 3814
+f 3146 3814 3886
+f 3114 3050 3782
+f 3114 3782 3814
+f 3050 3018 3718
+f 3050 3718 3782
+f 3018 2970 3686
+f 3018 3686 3718
+f 2970 2922 3554
+f 2970 3554 3686
+f 2922 2882 3450
+f 2922 3450 3554
+f 2882 2834 3338
+f 2882 3338 3450
+f 2834 2786 3258
+f 2834 3258 3338
+f 2786 2638 3162
+f 2786 3162 3258
+f 2638 2510 3098
+f 2638 3098 3162
+f 2510 2438 3002
+f 2510 3002 3098
+f 2438 2342 2938
+f 2438 2938 3002
+f 2342 2262 2850
+f 2342 2850 2938
+f 2262 2198 2750
+f 2262 2750 2850
+f 2198 2118 2566
+f 2198 2566 2750
+f 2118 2038 2414
+f 2118 2414 2566
+f 2038 1966 2294
+f 2038 2294 2414
+f 1966 1918 2182
+f 1966 2182 2294
+f 1918 1838 2070
+f 1918 2070 2182
+f 1838 1602 1998
+f 1838 1998 2070
+f 1602 1442 1886
+f 1602 1886 1998
+f 1442 1330 1698
+f 1442 1698 1886
+f 1330 1218 1466
+f 1330 1466 1698
+f 1218 1098 1282
+f 1218 1282 1466
+f 1098 1018 1146
+f 1098 1146 1282
+f 1018 930 1026
+f 1018 1026 1146
+f 930 850 906
+f 930 906 1026
+f 850 778 802
+f 850 802 906
+f 801 905 961
+f 801 961 825
+f 905 1025 1105
+f 905 1105 961
+f 1025 1145 1289
+f 1025 1289 1105
+f 1145 1281 1513
+f 1145 1513 1289
+f 1281 1465 1853
+f 1281 1853 1513
+f 1465 1697 1949
+f 1465 1949 1853
+f 1697 1885 2085
+f 1697 2085 1949
+f 1885 1997 2229
+f 1885 2229 2085
+f 1997 2069 2381
+f 1997 2381 2229
+f 2069 2181 2541
+f 2069 2541 2381
+f 2181 2293 2801
+f 2181 2801 2541
+f 2293 2413 2905
+f 2293 2905 2801
+f 2413 2565 2985
+f 2413 2985 2905
+f 2565 2749 3129
+f 2565 3129 2985
+f 2749 2849 3233
+f 2749 3233 3129
+f 2849 2937 3361
+f 2849 3361 3233
+f 2937 3001 3497
+f 2937 3497 3361
+f 3001 3097 3701
+f 3001 3701 3497
+f 3097 3161 3749
+f 3097 3749 3701
+f 3161 3257 3845
+f 3161 3845 3749
+f 3257 3337 3909
+f 3257 3909 3845
+f 3337 3449 4005
+f 3337 4005 3909
+f 3449 3553 4117
+f 3449 4117 4005
+f 3553 3685 4189
+f 3553 4189 4117
+f 3685 3717 4309
+f 3685 4309 4189
+f 3717 3781 4449
+f 3717 4449 4309
+f 3781 3813 4489
+f 3781 4489 4449
+f 3813 3885 4553
+f 3813 4553 4489
+f 3885 3901 4601
+f 3885 4601 4553
+f 3901 3981 4649
+f 3901 4649 4601
+f 3981 3997 4721
+f 3981 4721 4649
+f 3997 4045 4745
+f 3997 4745 4721
+f 4045 4109 4777
+f 4045 4777 4745
+f 4109 4157 4841
+f 4109 4841 4777
+f 4157 4173 4889
+f 4157 4889 4841
+f 4173 4197 4929
+f 4173 4929 4889
+f 4197 4237 4945
+f 4197 4945 4929
+f 4237 4253 4993
+f 4237 4993 4945
+f 4253 4293 5009
+f 4253 5009 4993
+f 4293 4317 5033
+f 4293 5033 5009
+f 4317 4341 5065
+f 4317 5065 5033
+f 4341 4349 5073
+f 4341 5073 5065
+f 4349 4357 5081
+f 4349 5081 5073
+f 4357 4358 5082
+f 4357 5082 5081
+f 4358 4350 5074
+f 4358 5074 5082
+f 4350 4342 5066
+f 4350 5066 5074
+f 4342 4318 5034
+f 4342 5034 5066
+f 4318 4294 5010
+f 4318 5010 5034
+f 4294 4254 4994
+f 4294 4994 5010
+f 4254 4238 4946
+f 4254 4946 4994
+f 4238 4198 4930
+f 4238 4930 4946
+f 4198 4174 4890
+f 4198 4890 4930
+f 4174 4158 4842
+f 4174 4842 4890
+f 4158 4110 4778
+f 4158 4778 4842
+f 4110 4046 4746
+f 4110 4746 4778
+f 4046 3998 4722
+f 4046 4722 4746
+f 3998 3982 4650
+f 3998 4650 4722
+f 3982 3902 4602
+f 3982 4602 4650
+f 3902 3886 4554
+f 3902 4554 4602
+f 3886 3814 4490
+f 3886 4490 4554
+f 3814 3782 4450
+f 3814 4450 4490
+f 3782 3718 4310
+f 3782 4310 4450
+f 3718 3686 4190
+f 3718 4190 4310
+f 3686 3554 4118
+f 3686 4118 4190
+f 3554 3450 4006
+f 3554 4006 4118
+f 3450 3338 3910
+f 3450 3910 4006
+f 3338 3258 3846
+f 3338 3846 3910
+f 3258 3162 3750
+f 3258 3750 3846
+f 3162 3098 3702
+f 3162 3702 3750
+f 3098 3002 3498
+f 3098 3498 3702
+f 3002 2938 3362
+f 3002 3362 3498
+f 2938 2850 3234
+f 2938 3234 3362
+f 2850 2750 3130
+f 2850 3130 3234
+f 2750 2566 2986
+f 2750 2986 3130
+f 2566 2414 2906
+f 2566 2906 2986
+f 2414 2294 2802
+f 2414 2802 2906
+f 2294 2182 2542
+f 2294 2542 2802
+f 2182 2070 2382
+f 2182 2382 2542
+f 2070 1998 2230
+f 2070 2230 2382
+f 1998 1886 2086
+f 1998 2086 2230
+f 1886 1698 1950
+f 1886 1950 2086
+f 1698 1466 1854
+f 1698 1854 1950
+f 1466 1282 1514
+f 1466 1514 1854
+f 1282 1146 1290
+f 1282 1290 1514
+f 1146 1026 1106
+f 1146 1106 1290
+f 1026 906 962
+f 1026 962 1106
+f 906 802 826
+f 906 826 962
+f 825 961 1009
+f 825 1009 841
+f 961 1105 1225
+f 961 1225 1009
+f 1105 1289 1481
+f 1105 1481 1225
+f 1289 1513 1861
+f 1289 1861 1481
+f 1513 1853 2013
+f 1513 2013 1861
+f 1853 1949 2149
+f 1853 2149 2013
+f 1949 2085 2309
+f 1949 2309 2149
+f 2085 2229 2493
+f 2085 2493 2309
+f 2229 2381 2817
+f 2229 2817 2493
+f 2381 2541 2953
+f 2381 2953 2817
+f 2541 2801 3057
+f 2541 3057 2953
+f 2801 2905 3209
+f 2801 3209 3057
+f 2905 2985 3377
+f 2905 3377 3209
+f 2985 3129 3609
+f 2985 3609 3377
+f 3129 3233 3733
+f 3129 3733 3609
+f 3233 3361 3853
+f 3233 3853 3733
+f 3361 3497 3965
+f 3361 3965 3853
+f 3497 3701 4061
+f 3497 4061 3965
+f 3701 3749 4213
+f 3701 4213 4061
+f 3749 3845 4405
+f 3749 4405 4213
+f 3845 3909 4505
+f 3845 4505 4405
+f 3909 4005 4585
+f 3909 4585 4505
+f 4005 4117 4673
+f 4005 4673 4585
+f 4117 4189 4761
+f 4117 4761 4673
+f 4189 4309 4857
+f 4189 4857 4761
+f 4309 4449 4953
+f 4309 4953 4857
+f 4449 4489 5089
+f 4449 5089 4953
+f 4489 4553 5173
+f 4489 5173 5089
+f 4553 4601 5237
+f 4553 5237 5173
+f 4601 4649 5301
+f 4601 5301 5237
+f 4649 4721 5349
+f 4649 5349 5301
+f 4721 4745 5381
+f 4721 5381 5349
+f 4745 4777 5477
+f 4745 5477 5381
+f 4777 4841 5501
+f 4777 5501 5477
+f 4841 4889 5533
+f 4841 5533 5501
+f 4889 4929 5589
+f 4889 5589 5533
+f 4929 4945 5621
+f 4929 5621 5589
+f 4945 4993 5661
+f 4945 5661 5621
+f 4993 5009 5669
+f 4993 5669 5661
+f 5009 5033 5701
+f 5009 5701 5669
+f 5033 5065 5741
+f 5033 5741 5701
+f 5065 5073 5757
+f 5065 5757 5741
+f 5073 5081 5765
+f 5073 5765 5757
+f 5081 5082 5766
+f 5081 5766 5765
+f 5082 5074 5758
+f 5082 5758 5766
+f 5074 5066 5742
+f 5074 5742 5758
+f 5066 5034 5702
+f 5066 5702 5742
+f 5034 5010 5670
+f 5034 5670 5702
+f 5010 4994 5662
+f 5010 5662 5670
+f 4994 4946 5622
+f 4994 5622 5662
+f 4946 4930 5590
+f 4946 5590 5622
+f 4930 4890 5534
+f 4930 5534 5590
+f 4890 4842 5502
+f 4890 5502 5534
+f 4842 4778 5478
+f 4842 5478 5502
+f 4778 4746 5382
+f 4778 5382 5478
+f 4746 4722 5350
+f 4746 5350 5382
+f 4722 4650 5302
+f 4722 5302 5350
+f 4650 4602 5238
+f 4650 5238 5302
+f 4602 4554 5174
+f 4602 5174 5238
+f 4554 4490 5090
+f 4554 5090 5174
+f 4490 4450 4954
+f 4490 4954 5090
+f 4450 4310 4858
+f 4450 4858 4954
+f 4310 4190 4762
+f 4310 4762 4858
+f 4190 4118 4674
+f 4190 4674 4762
+f 4118 4006 4586
+f 4118 4586 4674
+f 4006 3910 4506
+f 4006 4506 4586
+f 3910 3846 4406
+f 3910 4406 4506
+f 3846 3750 4214
+f 3846 4214 4406
+f 3750 3702 4062
+f 3750 4062 4214
+f 3702 3498 3966
+f 3702 3966 4062
+f 3498 3362 3854
+f 3498 3854 3966
+f 3362 3234 3734
+f 3362 3734 3854
+f 3234 3130 3610
+f 3234 3610 3734
+f 3130 2986 3378
+f 3130 3378 3610
+f 2986 2906 3210
+f 2986 3210 3378
+f 2906 2802 3058
+f 2906 3058 3210
+f 2802 2542 2954
+f 2802 2954 3058
+f 2542 2382 2818
+f 2542 2818 2954
+f 2382 2230 2494
+f 2382 2494 2818
+f 2230 2086 2310
+f 2230 2310 2494
+f 2086 1950 2150
+f 2086 2150 2310
+f 1950 1854 2014
+f 1950 2014 2150
+f 1854 1514 1862
+f 1854 1862 2014
+f 1514 1290 1482
+f 1514 1482 1862
+f 1290 1106 1226
+f 1290 1226 1482
+f 1106 962 1010
+f 1106 1010 1226
+f 962 826 842
+f 962 842 1010
+f 841 1009 1073
+f 841 1073 873
+f 1009 1225 1337
+f 1009 1337 1073
+f 1225 1481 1705
+f 1225 1705 1337
+f 1481 1861 1957
+f 1481 1957 1705
+f 1861 2013 2157
+f 1861 2157 1957
+f 2013 2149 2357
+f 2013 2357 2157
+f 2149 2309 2613
+f 2149 2613 2357
+f 2309 2493 2865
+f 2309 2865 2613
+f 2493 2817 3033
+f 2493 3033 2865
+f 2817 2953 3193
+f 2817 3193 3033
+f 2953 3057 3409
+f 2953 3409 3193
+f 3057 3209 3669
+f 3057 3669 3409
+f 3209 3377 3797
+f 3209 3797 3669
+f 3377 3609 3949
+f 3377 3949 3797
+f 3609 3733 4077
+f 3609 4077 3949
+f 3733 3853 4261
+f 3733 4261 4077
+f 3853 3965 4473
+f 3853 4473 4261
+f 3965 4061 4569
+f 3965 4569 4473
+f 4061 4213 4713
+f 4061 4713 4569
+f 4213 4405 4809
+f 4213 4809 4713
+f 4405 4505 4961
+f 4405 4961 4809
+f 4505 4585 5153
+f 4505 5153 4961
+f 4585 4673 5245
+f 4585 5245 5153
+f 4673 4761 5333
+f 4673 5333 5245
+f 4761 4857 5405
+f 4761 5405 5333
+f 4857 4953 5509
+f 4857 5509 5405
+f 4953 5089 5605
+f 4953 5605 5509
+f 5089 5173 5717
+f 5089 5717 5605
+f 5173 5237 5841
+f 5173 5841 5717
+f 5237 5301 5905
+f 5237 5905 5841
+f 5301 5349 5953
+f 5301 5953 5905
+f 5349 5381 6017
+f 5349 6017 5953
+f 5381 5477 6089
+f 5381 6089 6017
+f 5477 5501 6105
+f 5477 6105 6089
+f 5501 5533 6161
+f 5501 6161 6105
+f 5533 5589 6217
+f 5533 6217 6161
+f 5589 5621 6257
+f 5589 6257 6217
+f 5621 5661 6297
+f 5621 6297 6257
+f 5661 5669 6313
+f 5661 6313 6297
+f 5669 5701 6345
+f 5669 6345 6313
+f 5701 5741 6377
+f 5701 6377 6345
+f 5741 5757 6401
+f 5741 6401 6377
+f 5757 5765 6417
+f 5757 6417 6401
+f 5765 5766 6418
+f 5765 6418 6417
+f 5766 5758 6402
+f 5766 6402 6418
+f 5758 5742 6378
+f 5758 6378 6402
+f 5742 5702 6346
+f 5742 6346 6378
+f 5702 5670 6314
+f 5702 6314 6346
+f 5670 5662 6298
+f 5670 6298 6314
+f 5662 5622 6258
+f 5662 6258 6298
+f 5622 5590 6218
+f 5622 6218 6258
+f 5590 5534 6162
+f 5590 6162 6218
+f 5534 5502 6106
+f 5534 6106 6162
+f 5502 5478 6090
+f 5502 6090 6106
+f 5478 5382 6018
+f 5478 6018 6090
+f 5382 5350 5954
+f 5382 5954 6018
+f 5350 5302 5906
+f 5350 5906 5954
+f 5302 5238 5842
+f 5302 5842 5906
+f 5238 5174 5718
+f 5238 5718 5842
+f 5174 5090 5606
+f 5174 5606 5718
+f 5090 4954 5510
+f 5090 5510 5606
+f 4954 4858 5406
+f 4954 5406 5510
+f 4858 4762 5334
+f 4858 5334 5406
+f 4762 4674 5246
+f 4762 5246 5334
+f 4674 4586 5154
+f 4674 5154 5246
+f 4586 4506 4962
+f 4586 4962 5154
+f 4506 4406 4810
+f 4506 4810 4962
+f 4406 4214 4714
+f 4406 4714 4810
+f 4214 4062 4570
+f 4214 4570 4714
+f 4062 3966 4474
+f 4062 4474 4570
+f 3966 3854 4262
+f 3966 4262 4474
+f 3854 3734 4078
+f 3854 4078 4262
+f 3734 3610 3950
+f 3734 3950 4078
+f 3610 3378 3798
+f 3610 3798 3950
+f 3378 3210 3670
+f 3378 3670 3798
+f 3210 3058 3410
+f 3210 3410 3670
+f 3058 2954 3194
+f 3058 3194 3410
+f 2954 2818 3034
+f 2954 3034 3194
+f 2818 2494 2866
+f 2818 2866 3034
+f 2494 2310 2614
+f 2494 2614 2866
+f 2310 2150 2358
+f 2310 2358 2614
+f 2150 2014 2158
+f 2150 2158 2358
+f 2014 1862 1958
+f 2014 1958 2158
+f 1862 1482 1706
+f 1862 1706 1958
+f 1482 1226 1338
+f 1482 1338 1706
+f 1226 1010 1074
+f 1226 1074 1338
+f 1010 842 874
+f 1010 874 1074
+f 873 1073 1137
+f 873 1137 889
+f 1073 1337 1449
+f 1073 1449 1137
+f 1337 1705 1893
+f 1337 1893 1449
+f 1705 1957 2093
+f 1705 2093 1893
+f 1957 2157 2317
+f 1957 2317 2093
+f 2157 2357 2621
+f 2157 2621 2317
+f 2357 2613 2897
+f 2357 2897 2621
+f 2613 2865 3081
+f 2613 3081 2897
+f 2865 3033 3289
+f 2865 3289 3081
+f 3033 3193 3561
+f 3033 3561 3289
+f 3193 3409 3765
+f 3193 3765 3561
+f 3409 3669 3933
+f 3409 3933 3765
+f 3669 3797 4141
+f 3669 4141 3933
+f 3797 3949 4365
+f 3797 4365 4141
+f 3949 4077 4537
+f 3949 4537 4365
+f 4077 4261 4665
+f 4077 4665 4537
+f 4261 4473 4817
+f 4261 4817 4665
+f 4473 4569 5001
+f 4473 5001 4817
+f 4569 4713 5205
+f 4569 5205 5001
+f 4713 4809 5317
+f 4713 5317 5205
+f 4809 4961 5453
+f 4809 5453 5317
+f 4961 5153 5549
+f 4961 5549 5453
+f 5153 5245 5709
+f 5153 5709 5549
+f 5245 5333 5889
+f 5245 5889 5709
+f 5333 5405 5961
+f 5333 5961 5889
+f 5405 5509 6065
+f 5405 6065 5961
+f 5509 5605 6137
+f 5509 6137 6065
+f 5605 5717 6249
+f 5605 6249 6137
+f 5717 5841 6361
+f 5717 6361 6249
+f 5841 5905 6477
+f 5841 6477 6361
+f 5905 5953 6541
+f 5905 6541 6477
+f 5953 6017 6621
+f 5953 6621 6541
+f 6017 6089 6661
+f 6017 6661 6621
+f 6089 6105 6701
+f 6089 6701 6661
+f 6105 6161 6741
+f 6105 6741 6701
+f 6161 6217 6821
+f 6161 6821 6741
+f 6217 6257 6853
+f 6217 6853 6821
+f 6257 6297 6877
+f 6257 6877 6853
+f 6297 6313 6909
+f 6297 6909 6877
+f 6313 6345 6957
+f 6313 6957 6909
+f 6345 6377 6973
+f 6345 6973 6957
+f 6377 6401 7005
+f 6377 7005 6973
+f 6401 6417 7013
+f 6401 7013 7005
+f 6417 6418 7014
+f 6417 7014 7013
+f 6418 6402 7006
+f 6418 7006 7014
+f 6402 6378 6974
+f 6402 6974 7006
+f 6378 6346 6958
+f 6378 6958 6974
+f 6346 6314 6910
+f 6346 6910 6958
+f 6314 6298 6878
+f 6314 6878 6910
+f 6298 6258 6854
+f 6298 6854 6878
+f 6258 6218 6822
+f 6258 6822 6854
+f 6218 6162 6742
+f 6218 6742 6822
+f 6162 6106 6702
+f 6162 6702 6742
+f 6106 6090 6662
+f 6106 6662 6702
+f 6090 6018 6622
+f 6090 6622 6662
+f 6018 5954 6542
+f 6018 6542 6622
+f 5954 5906 6478
+f 5954 6478 6542
+f 5906 5842 6362
+f 5906 6362 6478
+f 5842 5718 6250
+f 5842 6250 6362
+f 5718 5606 6138
+f 5718 6138 6250
+f 5606 5510 6066
+f 5606 6066 6138
+f 5510 5406 5962
+f 5510 5962 6066
+f 5406 5334 5890
+f 5406 5890 5962
+f 5334 5246 5710
+f 5334 5710 5890
+f 5246 5154 5550
+f 5246 5550 5710
+f 5154 4962 5454
+f 5154 5454 5550
+f 4962 4810 5318
+f 4962 5318 5454
+f 4810 4714 5206
+f 4810 5206 5318
+f 4714 4570 5002
+f 4714 5002 5206
+f 4570 4474 4818
+f 4570 4818 5002
+f 4474 4262 4666
+f 4474 4666 4818
+f 4262 4078 4538
+f 4262 4538 4666
+f 4078 3950 4366
+f 4078 4366 4538
+f 3950 3798 4142
+f 3950 4142 4366
+f 3798 3670 3934
+f 3798 3934 4142
+f 3670 3410 3766
+f 3670 3766 3934
+f 3410 3194 3562
+f 3410 3562 3766
+f 3194 3034 3290
+f 3194 3290 3562
+f 3034 2866 3082
+f 3034 3082 3290
+f 2866 2614 2898
+f 2866 2898 3082
+f 2614 2358 2622
+f 2614 2622 2898
+f 2358 2158 2318
+f 2358 2318 2622
+f 2158 1958 2094
+f 2158 2094 2318
+f 1958 1706 1894
+f 1958 1894 2094
+f 1706 1338 1450
+f 1706 1450 1894
+f 1338 1074 1138
+f 1338 1138 1450
+f 1074 874 890
+f 1074 890 1138
+f 889 1137 1209
+f 889 1209 921
+f 1137 1449 1609
+f 1137 1609 1209
+f 1449 1893 2005
+f 1449 2005 1609
+f 1893 2093 2237
+f 1893 2237 2005
+f 2093 2317 2501
+f 2093 2501 2237
+f 2317 2621 2873
+f 2317 2873 2501
+f 2621 2897 3089
+f 2621 3089 2873
+f 2897 3081 3313
+f 2897 3313 3089
+f 3081 3289 3653
+f 3081 3653 3313
+f 3289 3561 3829
+f 3289 3829 3653
+f 3561 3765 4029
+f 3561 4029 3829
+f 3765 3933 4277
+f 3765 4277 4029
+f 3933 4141 4521
+f 3933 4521 4277
+f 4141 4365 4689
+f 4141 4689 4521
+f 4365 4537 4865
+f 4365 4865 4689
+f 4537 4665 5113
+f 4537 5113 4865
+f 4665 4817 5285
+f 4665 5285 5113
+f 4817 5001 5397
+f 4817 5397 5285
+f 5001 5205 5565
+f 5001 5565 5397
+f 5205 5317 5797
+f 5205 5797 5565
+f 5317 5453 5921
+f 5317 5921 5797
+f 5453 5549 6057
+f 5453 6057 5921
+f 5549 5709 6177
+f 5549 6177 6057
+f 5709 5889 6305
+f 5709 6305 6177
+f 5889 5961 6485
+f 5889 6485 6305
+f 5961 6065 6573
+f 5961 6573 6485
+f 6065 6137 6669
+f 6065 6669 6573
+f 6137 6249 6757
+f 6137 6757 6669
+f 6249 6361 6861
+f 6249 6861 6757
+f 6361 6477 6981
+f 6361 6981 6861
+f 6477 6541 7089
+f 6477 7089 6981
+f 6541 6621 7153
+f 6541 7153 7089
+f 6621 6661 7217
+f 6621 7217 7153
+f 6661 6701 7257
+f 6661 7257 7217
+f 6701 6741 7305
+f 6701 7305 7257
+f 6741 6821 7377
+f 6741 7377 7305
+f 6821 6853 7425
+f 6821 7425 7377
+f 6853 6877 7441
+f 6853 7441 7425
+f 6877 6909 7481
+f 6877 7481 7441
+f 6909 6957 7529
+f 6909 7529 7481
+f 6957 6973 7561
+f 6957 7561 7529
+f 6973 7005 7569
+f 6973 7569 7561
+f 7005 7013 7577
+f 7005 7577 7569
+f 7013 7014 7578
+f 7013 7578 7577
+f 7014 7006 7570
+f 7014 7570 7578
+f 7006 6974 7562
+f 7006 7562 7570
+f 6974 6958 7530
+f 6974 7530 7562
+f 6958 6910 7482
+f 6958 7482 7530
+f 6910 6878 7442
+f 6910 7442 7482
+f 6878 6854 7426
+f 6878 7426 7442
+f 6854 6822 7378
+f 6854 7378 7426
+f 6822 6742 7306
+f 6822 7306 7378
+f 6742 6702 7258
+f 6742 7258 7306
+f 6702 6662 7218
+f 6702 7218 7258
+f 6662 6622 7154
+f 6662 7154 7218
+f 6622 6542 7090
+f 6622 7090 7154
+f 6542 6478 6982
+f 6542 6982 7090
+f 6478 6362 6862
+f 6478 6862 6982
+f 6362 6250 6758
+f 6362 6758 6862
+f 6250 6138 6670
+f 6250 6670 6758
+f 6138 6066 6574
+f 6138 6574 6670
+f 6066 5962 6486
+f 6066 6486 6574
+f 5962 5890 6306
+f 5962 6306 6486
+f 5890 5710 6178
+f 5890 6178 6306
+f 5710 5550 6058
+f 5710 6058 6178
+f 5550 5454 5922
+f 5550 5922 6058
+f 5454 5318 5798
+f 5454 5798 5922
+f 5318 5206 5566
+f 5318 5566 5798
+f 5206 5002 5398
+f 5206 5398 5566
+f 5002 4818 5286
+f 5002 5286 5398
+f 4818 4666 5114
+f 4818 5114 5286
+f 4666 4538 4866
+f 4666 4866 5114
+f 4538 4366 4690
+f 4538 4690 4866
+f 4366 4142 4522
+f 4366 4522 4690
+f 4142 3934 4278
+f 4142 4278 4522
+f 3934 3766 4030
+f 3934 4030 4278
+f 3766 3562 3830
+f 3766 3830 4030
+f 3562 3290 3654
+f 3562 3654 3830
+f 3290 3082 3314
+f 3290 3314 3654
+f 3082 2898 3090
+f 3082 3090 3314
+f 2898 2622 2874
+f 2898 2874 3090
+f 2622 2318 2502
+f 2622 2502 2874
+f 2318 2094 2238
+f 2318 2238 2502
+f 2094 1894 2006
+f 2094 2006 2238
+f 1894 1450 1610
+f 1894 1610 2006
+f 1450 1138 1210
+f 1450 1210 1610
+f 1138 890 922
+f 1138 922 1210
+f 921 1209 1273
+f 921 1273 945
+f 1209 1609 1845
+f 1209 1845 1273
+f 1609 2005 2077
+f 1609 2077 1845
+f 2005 2237 2389
+f 2005 2389 2077
+f 2237 2501 2825
+f 2237 2825 2389
+f 2501 2873 3041
+f 2501 3041 2825
+f 2873 3089 3297
+f 2873 3297 3041
+f 3089 3313 3661
+f 3089 3661 3297
+f 3313 3653 3877
+f 3313 3877 3661
+f 3653 3829 4085
+f 3653 4085 3877
+f 3829 4029 4413
+f 3829 4413 4085
+f 4029 4277 4609
+f 4029 4609 4413
+f 4277 4521 4785
+f 4277 4785 4609
+f 4521 4689 5041
+f 4521 5041 4785
+f 4689 4865 5269
+f 4689 5269 5041
+f 4865 5113 5445
+f 4865 5445 5269
+f 5113 5285 5637
+f 5113 5637 5445
+f 5285 5397 5873
+f 5285 5873 5637
+f 5397 5565 6001
+f 5397 6001 5873
+f 5565 5797 6145
+f 5565 6145 6001
+f 5797 5921 6337
+f 5797 6337 6145
+f 5921 6057 6525
+f 5921 6525 6337
+f 6057 6177 6645
+f 6057 6645 6525
+f 6177 6305 6765
+f 6177 6765 6645
+f 6305 6485 6893
+f 6305 6893 6765
+f 6485 6573 7081
+f 6485 7081 6893
+f 6573 6669 7201
+f 6573 7201 7081
+f 6669 6757 7273
+f 6669 7273 7201
+f 6757 6861 7369
+f 6757 7369 7273
+f 6861 6981 7449
+f 6861 7449 7369
+f 6981 7089 7585
+f 6981 7585 7449
+f 7089 7153 7677
+f 7089 7677 7585
+f 7153 7217 7757
+f 7153 7757 7677
+f 7217 7257 7789
+f 7217 7789 7757
+f 7257 7305 7845
+f 7257 7845 7789
+f 7305 7377 7917
+f 7305 7917 7845
+f 7377 7425 7973
+f 7377 7973 7917
+f 7425 7441 7997
+f 7425 7997 7973
+f 7441 7481 8013
+f 7441 8013 7997
+f 7481 7529 8061
+f 7481 8061 8013
+f 7529 7561 8101
+f 7529 8101 8061
+f 7561 7569 8125
+f 7561 8125 8101
+f 7569 7577 8133
+f 7569 8133 8125
+f 7577 7578 8134
+f 7577 8134 8133
+f 7578 7570 8126
+f 7578 8126 8134
+f 7570 7562 8102
+f 7570 8102 8126
+f 7562 7530 8062
+f 7562 8062 8102
+f 7530 7482 8014
+f 7530 8014 8062
+f 7482 7442 7998
+f 7482 7998 8014
+f 7442 7426 7974
+f 7442 7974 7998
+f 7426 7378 7918
+f 7426 7918 7974
+f 7378 7306 7846
+f 7378 7846 7918
+f 7306 7258 7790
+f 7306 7790 7846
+f 7258 7218 7758
+f 7258 7758 7790
+f 7218 7154 7678
+f 7218 7678 7758
+f 7154 7090 7586
+f 7154 7586 7678
+f 7090 6982 7450
+f 7090 7450 7586
+f 6982 6862 7370
+f 6982 7370 7450
+f 6862 6758 7274
+f 6862 7274 7370
+f 6758 6670 7202
+f 6758 7202 7274
+f 6670 6574 7082
+f 6670 7082 7202
+f 6574 6486 6894
+f 6574 6894 7082
+f 6486 6306 6766
+f 6486 6766 6894
+f 6306 6178 6646
+f 6306 6646 6766
+f 6178 6058 6526
+f 6178 6526 6646
+f 6058 5922 6338
+f 6058 6338 6526
+f 5922 5798 6146
+f 5922 6146 6338
+f 5798 5566 6002
+f 5798 6002 6146
+f 5566 5398 5874
+f 5566 5874 6002
+f 5398 5286 5638
+f 5398 5638 5874
+f 5286 5114 5446
+f 5286 5446 5638
+f 5114 4866 5270
+f 5114 5270 5446
+f 4866 4690 5042
+f 4866 5042 5270
+f 4690 4522 4786
+f 4690 4786 5042
+f 4522 4278 4610
+f 4522 4610 4786
+f 4278 4030 4414
+f 4278 4414 4610
+f 4030 3830 4086
+f 4030 4086 4414
+f 3830 3654 3878
+f 3830 3878 4086
+f 3654 3314 3662
+f 3654 3662 3878
+f 3314 3090 3298
+f 3314 3298 3662
+f 3090 2874 3042
+f 3090 3042 3298
+f 2874 2502 2826
+f 2874 2826 3042
+f 2502 2238 2390
+f 2502 2390 2826
+f 2238 2006 2078
+f 2238 2078 2390
+f 2006 1610 1846
+f 2006 1846 2078
+f 1610 1210 1274
+f 1610 1274 1846
+f 1210 922 946
+f 1210 946 1274
+f 945 1273 1369
+f 945 1369 977
+f 1273 1845 1925
+f 1273 1925 1369
+f 1845 2077 2189
+f 1845 2189 1925
+f 2077 2389 2549
+f 2077 2549 2189
+f 2389 2825 2961
+f 2389 2961 2549
+f 2825 3041 3201
+f 2825 3201 2961
+f 3041 3297 3577
+f 3041 3577 3201
+f 3297 3661 3837
+f 3297 3837 3577
+f 3661 3877 4093
+f 3661 4093 3837
+f 3877 4085 4457
+f 3877 4457 4093
+f 4085 4413 4633
+f 4085 4633 4457
+f 4413 4609 4897
+f 4413 4897 4633
+f 4609 4785 5181
+f 4609 5181 4897
+f 4785 5041 5365
+f 4785 5365 5181
+f 5041 5269 5573
+f 5041 5573 5365
+f 5269 5445 5849
+f 5269 5849 5573
+f 5445 5637 6025
+f 5445 6025 5849
+f 5637 5873 6201
+f 5637 6201 6025
+f 5873 6001 6433
+f 5873 6433 6201
+f 6001 6145 6605
+f 6001 6605 6433
+f 6145 6337 6725
+f 6145 6725 6605
+f 6337 6525 6901
+f 6337 6901 6725
+f 6525 6645 7105
+f 6525 7105 6901
+f 6645 6765 7225
+f 6645 7225 7105
+f 6765 6893 7361
+f 6765 7361 7225
+f 6893 7081 7497
+f 6893 7497 7361
+f 7081 7201 7653
+f 7081 7653 7497
+f 7201 7273 7765
+f 7201 7765 7653
+f 7273 7369 7837
+f 7273 7837 7765
+f 7369 7449 7965
+f 7369 7965 7837
+f 7449 7585 8045
+f 7449 8045 7965
+f 7585 7677 8173
+f 7585 8173 8045
+f 7677 7757 8265
+f 7677 8265 8173
+f 7757 7789 8313
+f 7757 8313 8265
+f 7789 7845 8361
+f 7789 8361 8313
+f 7845 7917 8401
+f 7845 8401 8361
+f 7917 7973 8473
+f 7917 8473 8401
+f 7973 7997 8521
+f 7973 8521 8473
+f 7997 8013 8545
+f 7997 8545 8521
+f 8013 8061 8569
+f 8013 8569 8545
+f 8061 8101 8601
+f 8061 8601 8569
+f 8101 8125 8625
+f 8101 8625 8601
+f 8125 8133 8641
+f 8125 8641 8625
+f 8133 8134 8642
+f 8133 8642 8641
+f 8134 8126 8626
+f 8134 8626 8642
+f 8126 8102 8602
+f 8126 8602 8626
+f 8102 8062 8570
+f 8102 8570 8602
+f 8062 8014 8546
+f 8062 8546 8570
+f 8014 7998 8522
+f 8014 8522 8546
+f 7998 7974 8474
+f 7998 8474 8522
+f 7974 7918 8402
+f 7974 8402 8474
+f 7918 7846 8362
+f 7918 8362 8402
+f 7846 7790 8314
+f 7846 8314 8362
+f 7790 7758 8266
+f 7790 8266 8314
+f 7758 7678 8174
+f 7758 8174 8266
+f 7678 7586 8046
+f 7678 8046 8174
+f 7586 7450 7966
+f 7586 7966 8046
+f 7450 7370 7838
+f 7450 7838 7966
+f 7370 7274 7766
+f 7370 7766 7838
+f 7274 7202 7654
+f 7274 7654 7766
+f 7202 7082 7498
+f 7202 7498 7654
+f 7082 6894 7362
+f 7082 7362 7498
+f 6894 6766 7226
+f 6894 7226 7362
+f 6766 6646 7106
+f 6766 7106 7226
+f 6646 6526 6902
+f 6646 6902 7106
+f 6526 6338 6726
+f 6526 6726 6902
+f 6338 6146 6606
+f 6338 6606 6726
+f 6146 6002 6434
+f 6146 6434 6606
+f 6002 5874 6202
+f 6002 6202 6434
+f 5874 5638 6026
+f 5874 6026 6202
+f 5638 5446 5850
+f 5638 5850 6026
+f 5446 5270 5574
+f 5446 5574 5850
+f 5270 5042 5366
+f 5270 5366 5574
+f 5042 4786 5182
+f 5042 5182 5366
+f 4786 4610 4898
+f 4786 4898 5182
+f 4610 4414 4634
+f 4610 4634 4898
+f 4414 4086 4458
+f 4414 4458 4634
+f 4086 3878 4094
+f 4086 4094 4458
+f 3878 3662 3838
+f 3878 3838 4094
+f 3662 3298 3578
+f 3662 3578 3838
+f 3298 3042 3202
+f 3298 3202 3578
+f 3042 2826 2962
+f 3042 2962 3202
+f 2826 2390 2550
+f 2826 2550 2962
+f 2390 2078 2190
+f 2390 2190 2550
+f 2078 1846 1926
+f 2078 1926 2190
+f 1846 1274 1370
+f 1846 1370 1926
+f 1274 946 978
+f 1274 978 1370
+f 977 1369 1433
+f 977 1433 993
+f 1369 1925 1973
+f 1369 1973 1433
+f 1925 2189 2301
+f 1925 2301 1973
+f 2189 2549 2809
+f 2189 2809 2301
+f 2549 2961 3065
+f 2549 3065 2809
+f 2961 3201 3417
+f 2961 3417 3065
+f 3201 3577 3773
+f 3201 3773 3417
+f 3577 3837 4037
+f 3577 4037 3773
+f 3837 4093 4421
+f 3837 4421 4037
+f 4093 4457 4641
+f 4093 4641 4421
+f 4457 4633 4921
+f 4457 4921 4641
+f 4633 4897 5221
+f 4633 5221 4921
+f 4897 5181 5429
+f 4897 5429 5221
+f 5181 5365 5677
+f 5181 5677 5429
+f 5365 5573 5937
+f 5365 5937 5677
+f 5573 5849 6113
+f 5573 6113 5937
+f 5849 6025 6393
+f 5849 6393 6113
+f 6025 6201 6597
+f 6025 6597 6393
+f 6201 6433 6749
+f 6201 6749 6597
+f 6433 6605 6989
+f 6433 6989 6749
+f 6605 6725 7177
+f 6605 7177 6989
+f 6725 6901 7297
+f 6725 7297 7177
+f 6901 7105 7465
+f 6901 7465 7297
+f 7105 7225 7669
+f 7105 7669 7465
+f 7225 7361 7797
+f 7225 7797 7669
+f 7361 7497 7925
+f 7361 7925 7797
+f 7497 7653 8069
+f 7497 8069 7925
+f 7653 7765 8209
+f 7653 8209 8069
+f 7765 7837 8321
+f 7765 8321 8209
+f 7837 7965 8393
+f 7837 8393 8321
+f 7965 8045 8529
+f 7965 8529 8393
+f 8045 8173 8609
+f 8045 8609 8529
+f 8173 8265 8733
+f 8173 8733 8609
+f 8265 8313 8805
+f 8265 8805 8733
+f 8313 8361 8853
+f 8313 8853 8805
+f 8361 8401 8909
+f 8361 8909 8853
+f 8401 8473 8933
+f 8401 8933 8909
+f 8473 8521 9013
+f 8473 9013 8933
+f 8521 8545 9045
+f 8521 9045 9013
+f 8545 8569 9077
+f 8545 9077 9045
+f 8569 8601 9101
+f 8569 9101 9077
+f 8601 8625 9117
+f 8601 9117 9101
+f 8625 8641 9133
+f 8625 9133 9117
+f 8641 8642 9134
+f 8641 9134 9133
+f 8642 8626 9118
+f 8642 9118 9134
+f 8626 8602 9102
+f 8626 9102 9118
+f 8602 8570 9078
+f 8602 9078 9102
+f 8570 8546 9046
+f 8570 9046 9078
+f 8546 8522 9014
+f 8546 9014 9046
+f 8522 8474 8934
+f 8522 8934 9014
+f 8474 8402 8910
+f 8474 8910 8934
+f 8402 8362 8854
+f 8402 8854 8910
+f 8362 8314 8806
+f 8362 8806 8854
+f 8314 8266 8734
+f 8314 8734 8806
+f 8266 8174 8610
+f 8266 8610 8734
+f 8174 8046 8530
+f 8174 8530 8610
+f 8046 7966 8394
+f 8046 8394 8530
+f 7966 7838 8322
+f 7966 8322 8394
+f 7838 7766 8210
+f 7838 8210 8322
+f 7766 7654 8070
+f 7766 8070 8210
+f 7654 7498 7926
+f 7654 7926 8070
+f 7498 7362 7798
+f 7498 7798 7926
+f 7362 7226 7670
+f 7362 7670 7798
+f 7226 7106 7466
+f 7226 7466 7670
+f 7106 6902 7298
+f 7106 7298 7466
+f 6902 6726 7178
+f 6902 7178 7298
+f 6726 6606 6990
+f 6726 6990 7178
+f 6606 6434 6750
+f 6606 6750 6990
+f 6434 6202 6598
+f 6434 6598 6750
+f 6202 6026 6394
+f 6202 6394 6598
+f 6026 5850 6114
+f 6026 6114 6394
+f 5850 5574 5938
+f 5850 5938 6114
+f 5574 5366 5678
+f 5574 5678 5938
+f 5366 5182 5430
+f 5366 5430 5678
+f 5182 4898 5222
+f 5182 5222 5430
+f 4898 4634 4922
+f 4898 4922 5222
+f 4634 4458 4642
+f 4634 4642 4922
+f 4458 4094 4422
+f 4458 4422 4642
+f 4094 3838 4038
+f 4094 4038 4422
+f 3838 3578 3774
+f 3838 3774 4038
+f 3578 3202 3418
+f 3578 3418 3774
+f 3202 2962 3066
+f 3202 3066 3418
+f 2962 2550 2810
+f 2962 2810 3066
+f 2550 2190 2302
+f 2550 2302 2810
+f 2190 1926 1974
+f 2190 1974 2302
+f 1926 1370 1434
+f 1926 1434 1974
+f 1370 978 994
+f 1370 994 1434
+f 993 1433 1537
+f 993 1537 1041
+f 1433 1973 2045
+f 1433 2045 1537
+f 1973 2301 2421
+f 1973 2421 2045
+f 2301 2809 2913
+f 2301 2913 2421
+f 2809 3065 3217
+f 2809 3217 2913
+f 3065 3417 3677
+f 3065 3677 3217
+f 3417 3773 3941
+f 3417 3941 3677
+f 3773 4037 4285
+f 3773 4285 3941
+f 4037 4421 4617
+f 4037 4617 4285
+f 4421 4641 4905
+f 4421 4905 4617
+f 4641 4921 5229
+f 4641 5229 4905
+f 4921 5221 5485
+f 4921 5485 5229
+f 5221 5429 5773
+f 5221 5773 5485
+f 5429 5677 5985
+f 5429 5985 5773
+f 5677 5937 6225
+f 5677 6225 5985
+f 5937 6113 6509
+f 5937 6509 6225
+f 6113 6393 6693
+f 6113 6693 6509
+f 6393 6597 6933
+f 6393 6933 6693
+f 6597 6749 7161
+f 6597 7161 6933
+f 6749 6989 7321
+f 6749 7321 7161
+f 6989 7177 7537
+f 6989 7537 7321
+f 7177 7297 7741
+f 7177 7741 7537
+f 7297 7465 7861
+f 7297 7861 7741
+f 7465 7669 8037
+f 7465 8037 7861
+f 7669 7797 8233
+f 7669 8233 8037
+f 7797 7925 8345
+f 7797 8345 8233
+f 7925 8069 8497
+f 7925 8497 8345
+f 8069 8209 8633
+f 8069 8633 8497
+f 8209 8321 8765
+f 8209 8765 8633
+f 8321 8393 8861
+f 8321 8861 8765
+f 8393 8529 8941
+f 8393 8941 8861
+f 8529 8609 9069
+f 8529 9069 8941
+f 8609 8733 9157
+f 8609 9157 9069
+f 8733 8805 9257
+f 8733 9257 9157
+f 8805 8853 9329
+f 8805 9329 9257
+f 8853 8909 9377
+f 8853 9377 9329
+f 8909 8933 9417
+f 8909 9417 9377
+f 8933 9013 9457
+f 8933 9457 9417
+f 9013 9045 9513
+f 9013 9513 9457
+f 9045 9077 9561
+f 9045 9561 9513
+f 9077 9101 9585
+f 9077 9585 9561
+f 9101 9117 9609
+f 9101 9609 9585
+f 9117 9133 9617
+f 9117 9617 9609
+f 9133 9134 9618
+f 9133 9618 9617
+f 9134 9118 9610
+f 9134 9610 9618
+f 9118 9102 9586
+f 9118 9586 9610
+f 9102 9078 9562
+f 9102 9562 9586
+f 9078 9046 9514
+f 9078 9514 9562
+f 9046 9014 9458
+f 9046 9458 9514
+f 9014 8934 9418
+f 9014 9418 9458
+f 8934 8910 9378
+f 8934 9378 9418
+f 8910 8854 9330
+f 8910 9330 9378
+f 8854 8806 9258
+f 8854 9258 9330
+f 8806 8734 9158
+f 8806 9158 9258
+f 8734 8610 9070
+f 8734 9070 9158
+f 8610 8530 8942
+f 8610 8942 9070
+f 8530 8394 8862
+f 8530 8862 8942
+f 8394 8322 8766
+f 8394 8766 8862
+f 8322 8210 8634
+f 8322 8634 8766
+f 8210 8070 8498
+f 8210 8498 8634
+f 8070 7926 8346
+f 8070 8346 8498
+f 7926 7798 8234
+f 7926 8234 8346
+f 7798 7670 8038
+f 7798 8038 8234
+f 7670 7466 7862
+f 7670 7862 8038
+f 7466 7298 7742
+f 7466 7742 7862
+f 7298 7178 7538
+f 7298 7538 7742
+f 7178 6990 7322
+f 7178 7322 7538
+f 6990 6750 7162
+f 6990 7162 7322
+f 6750 6598 6934
+f 6750 6934 7162
+f 6598 6394 6694
+f 6598 6694 6934
+f 6394 6114 6510
+f 6394 6510 6694
+f 6114 5938 6226
+f 6114 6226 6510
+f 5938 5678 5986
+f 5938 5986 6226
+f 5678 5430 5774
+f 5678 5774 5986
+f 5430 5222 5486
+f 5430 5486 5774
+f 5222 4922 5230
+f 5222 5230 5486
+f 4922 4642 4906
+f 4922 4906 5230
+f 4642 4422 4618
+f 4642 4618 4906
+f 4422 4038 4286
+f 4422 4286 4618
+f 4038 3774 3942
+f 4038 3942 4286
+f 3774 3418 3678
+f 3774 3678 3942
+f 3418 3066 3218
+f 3418 3218 3678
+f 3066 2810 2914
+f 3066 2914 3218
+f 2810 2302 2422
+f 2810 2422 2914
+f 2302 1974 2046
+f 2302 2046 2422
+f 1974 1434 1538
+f 1974 1538 2046
+f 1434 994 1042
+f 1434 1042 1538
+f 1041 1537 1641
+f 1041 1641 1057
+f 1537 2045 2125
+f 1537 2125 1641
+f 2045 2421 2573
+f 2045 2573 2125
+f 2421 2913 2993
+f 2421 2993 2573
+f 2913 3217 3385
+f 2913 3385 2993
+f 3217 3677 3805
+f 3217 3805 3385
+f 3677 3941 4149
+f 3677 4149 3805
+f 3941 4285 4529
+f 3941 4529 4149
+f 4285 4617 4793
+f 4285 4793 4529
+f 4617 4905 5189
+f 4617 5189 4793
+f 4905 5229 5437
+f 4905 5437 5189
+f 5229 5485 5781
+f 5229 5781 5437
+f 5485 5773 6041
+f 5485 6041 5781
+f 5773 5985 6273
+f 5773 6273 6041
+f 5985 6225 6557
+f 5985 6557 6273
+f 6225 6509 6805
+f 6225 6805 6557
+f 6509 6693 7061
+f 6509 7061 6805
+f 6693 6933 7249
+f 6693 7249 7061
+f 6933 7161 7457
+f 6933 7457 7249
+f 7161 7321 7725
+f 7161 7725 7457
+f 7321 7537 7877
+f 7321 7877 7725
+f 7537 7741 8093
+f 7537 8093 7877
+f 7741 7861 8297
+f 7741 8297 8093
+f 7861 8037 8409
+f 7861 8409 8297
+f 8037 8233 8593
+f 8037 8593 8409
+f 8233 8345 8781
+f 8233 8781 8593
+f 8345 8497 8893
+f 8345 8893 8781
+f 8497 8633 9037
+f 8497 9037 8893
+f 8633 8765 9189
+f 8633 9189 9037
+f 8765 8861 9297
+f 8765 9297 9189
+f 8861 8941 9385
+f 8861 9385 9297
+f 8941 9069 9465
+f 8941 9465 9385
+f 9069 9157 9601
+f 9069 9601 9465
+f 9157 9257 9693
+f 9157 9693 9601
+f 9257 9329 9765
+f 9257 9765 9693
+f 9329 9377 9821
+f 9329 9821 9765
+f 9377 9417 9885
+f 9377 9885 9821
+f 9417 9457 9909
+f 9417 9909 9885
+f 9457 9513 9957
+f 9457 9957 9909
+f 9513 9561 9973
+f 9513 9973 9957
+f 9561 9585 10029
+f 9561 10029 9973
+f 9585 9609 10061
+f 9585 10061 10029
+f 9609 9617 10085
+f 9609 10085 10061
+f 9617 9618 10086
+f 9617 10086 10085
+f 9618 9610 10062
+f 9618 10062 10086
+f 9610 9586 10030
+f 9610 10030 10062
+f 9586 9562 9974
+f 9586 9974 10030
+f 9562 9514 9958
+f 9562 9958 9974
+f 9514 9458 9910
+f 9514 9910 9958
+f 9458 9418 9886
+f 9458 9886 9910
+f 9418 9378 9822
+f 9418 9822 9886
+f 9378 9330 9766
+f 9378 9766 9822
+f 9330 9258 9694
+f 9330 9694 9766
+f 9258 9158 9602
+f 9258 9602 9694
+f 9158 9070 9466
+f 9158 9466 9602
+f 9070 8942 9386
+f 9070 9386 9466
+f 8942 8862 9298
+f 8942 9298 9386
+f 8862 8766 9190
+f 8862 9190 9298
+f 8766 8634 9038
+f 8766 9038 9190
+f 8634 8498 8894
+f 8634 8894 9038
+f 8498 8346 8782
+f 8498 8782 8894
+f 8346 8234 8594
+f 8346 8594 8782
+f 8234 8038 8410
+f 8234 8410 8594
+f 8038 7862 8298
+f 8038 8298 8410
+f 7862 7742 8094
+f 7862 8094 8298
+f 7742 7538 7878
+f 7742 7878 8094
+f 7538 7322 7726
+f 7538 7726 7878
+f 7322 7162 7458
+f 7322 7458 7726
+f 7162 6934 7250
+f 7162 7250 7458
+f 6934 6694 7062
+f 6934 7062 7250
+f 6694 6510 6806
+f 6694 6806 7062
+f 6510 6226 6558
+f 6510 6558 6806
+f 6226 5986 6274
+f 6226 6274 6558
+f 5986 5774 6042
+f 5986 6042 6274
+f 5774 5486 5782
+f 5774 5782 6042
+f 5486 5230 5438
+f 5486 5438 5782
+f 5230 4906 5190
+f 5230 5190 5438
+f 4906 4618 4794
+f 4906 4794 5190
+f 4618 4286 4530
+f 4618 4530 4794
+f 4286 3942 4150
+f 4286 4150 4530
+f 3942 3678 3806
+f 3942 3806 4150
+f 3678 3218 3386
+f 3678 3386 3806
+f 3218 2914 2994
+f 3218 2994 3386
+f 2914 2422 2574
+f 2914 2574 2994
+f 2422 2046 2126
+f 2422 2126 2574
+f 2046 1538 1642
+f 2046 1642 2126
+f 1538 1042 1058
+f 1538 1058 1642
+f 1057 1641 1817
+f 1057 1817 1089
+f 1641 2125 2205
+f 1641 2205 1817
+f 2125 2573 2757
+f 2125 2757 2205
+f 2573 2993 3137
+f 2573 3137 2757
+f 2993 3385 3617
+f 2993 3617 3137
+f 3385 3805 3957
+f 3385 3957 3617
+f 3805 4149 4373
+f 3805 4373 3957
+f 4149 4529 4697
+f 4149 4697 4373
+f 4529 4793 5049
+f 4529 5049 4697
+f 4793 5189 5373
+f 4793 5373 5049
+f 5189 5437 5685
+f 5189 5685 5373
+f 5437 5781 5993
+f 5437 5993 5685
+f 5781 6041 6281
+f 5781 6281 5993
+f 6041 6273 6581
+f 6041 6581 6281
+f 6273 6557 6829
+f 6273 6829 6581
+f 6557 6805 7129
+f 6557 7129 6829
+f 6805 7061 7337
+f 6805 7337 7129
+f 7061 7249 7617
+f 7061 7617 7337
+f 7249 7457 7813
+f 7249 7813 7617
+f 7457 7725 8005
+f 7457 8005 7813
+f 7725 7877 8273
+f 7725 8273 8005
+f 7877 8093 8417
+f 7877 8417 8273
+f 8093 8297 8649
+f 8093 8649 8417
+f 8297 8409 8829
+f 8297 8829 8649
+f 8409 8593 8973
+f 8409 8973 8829
+f 8593 8781 9149
+f 8593 9149 8973
+f 8781 8893 9305
+f 8781 9305 9149
+f 8893 9037 9433
+f 8893 9433 9305
+f 9037 9189 9569
+f 9037 9569 9433
+f 9189 9297 9717
+f 9189 9717 9569
+f 9297 9385 9805
+f 9297 9805 9717
+f 9385 9465 9893
+f 9385 9893 9805
+f 9465 9601 9981
+f 9465 9981 9893
+f 9601 9693 10117
+f 9601 10117 9981
+f 9693 9765 10185
+f 9693 10185 10117
+f 9765 9821 10257
+f 9765 10257 10185
+f 9821 9885 10305
+f 9821 10305 10257
+f 9885 9909 10361
+f 9885 10361 10305
+f 9909 9957 10385
+f 9909 10385 10361
+f 9957 9973 10409
+f 9957 10409 10385
+f 9973 10029 10457
+f 9973 10457 10409
+f 10029 10061 10473
+f 10029 10473 10457
+f 10061 10085 10481
+f 10061 10481 10473
+f 10085 10086 10482
+f 10085 10482 10481
+f 10086 10062 10474
+f 10086 10474 10482
+f 10062 10030 10458
+f 10062 10458 10474
+f 10030 9974 10410
+f 10030 10410 10458
+f 9974 9958 10386
+f 9974 10386 10410
+f 9958 9910 10362
+f 9958 10362 10386
+f 9910 9886 10306
+f 9910 10306 10362
+f 9886 9822 10258
+f 9886 10258 10306
+f 9822 9766 10186
+f 9822 10186 10258
+f 9766 9694 10118
+f 9766 10118 10186
+f 9694 9602 9982
+f 9694 9982 10118
+f 9602 9466 9894
+f 9602 9894 9982
+f 9466 9386 9806
+f 9466 9806 9894
+f 9386 9298 9718
+f 9386 9718 9806
+f 9298 9190 9570
+f 9298 9570 9718
+f 9190 9038 9434
+f 9190 9434 9570
+f 9038 8894 9306
+f 9038 9306 9434
+f 8894 8782 9150
+f 8894 9150 9306
+f 8782 8594 8974
+f 8782 8974 9150
+f 8594 8410 8830
+f 8594 8830 8974
+f 8410 8298 8650
+f 8410 8650 8830
+f 8298 8094 8418
+f 8298 8418 8650
+f 8094 7878 8274
+f 8094 8274 8418
+f 7878 7726 8006
+f 7878 8006 8274
+f 7726 7458 7814
+f 7726 7814 8006
+f 7458 7250 7618
+f 7458 7618 7814
+f 7250 7062 7338
+f 7250 7338 7618
+f 7062 6806 7130
+f 7062 7130 7338
+f 6806 6558 6830
+f 6806 6830 7130
+f 6558 6274 6582
+f 6558 6582 6830
+f 6274 6042 6282
+f 6274 6282 6582
+f 6042 5782 5994
+f 6042 5994 6282
+f 5782 5438 5686
+f 5782 5686 5994
+f 5438 5190 5374
+f 5438 5374 5686
+f 5190 4794 5050
+f 5190 5050 5374
+f 4794 4530 4698
+f 4794 4698 5050
+f 4530 4150 4374
+f 4530 4374 4698
+f 4150 3806 3958
+f 4150 3958 4374
+f 3806 3386 3618
+f 3806 3618 3958
+f 3386 2994 3138
+f 3386 3138 3618
+f 2994 2574 2758
+f 2994 2758 3138
+f 2574 2126 2206
+f 2574 2206 2758
+f 2126 1642 1818
+f 2126 1818 2206
+f 1642 1058 1090
+f 1642 1090 1818
+f 1089 1817 1877
+f 1089 1877 1121
+f 1817 2205 2269
+f 1817 2269 1877
+f 2205 2757 2857
+f 2205 2857 2269
+f 2757 3137 3241
+f 2757 3241 2857
+f 3137 3617 3741
+f 3137 3741 3241
+f 3617 3957 4101
+f 3617 4101 3741
+f 3957 4373 4545
+f 3957 4545 4101
+f 4373 4697 4873
+f 4373 4873 4545
+f 4697 5049 5277
+f 4697 5277 4873
+f 5049 5373 5581
+f 5049 5581 5277
+f 5373 5685 5945
+f 5373 5945 5581
+f 5685 5993 6233
+f 5685 6233 5945
+f 5993 6281 6565
+f 5993 6565 6233
+f 6281 6581 6837
+f 6281 6837 6565
+f 6581 6829 7145
+f 6581 7145 6837
+f 6829 7129 7393
+f 6829 7393 7145
+f 7129 7337 7685
+f 7129 7685 7393
+f 7337 7617 7893
+f 7337 7893 7685
+f 7617 7813 8149
+f 7617 8149 7893
+f 7813 8005 8353
+f 7813 8353 8149
+f 8005 8273 8561
+f 8005 8561 8353
+f 8273 8417 8813
+f 8273 8813 8561
+f 8417 8649 8965
+f 8417 8965 8813
+f 8649 8829 9181
+f 8649 9181 8965
+f 8829 8973 9353
+f 8829 9353 9181
+f 8973 9149 9497
+f 8973 9497 9353
+f 9149 9305 9673
+f 9149 9673 9497
+f 9305 9433 9813
+f 9305 9813 9673
+f 9433 9569 9941
+f 9433 9941 9813
+f 9569 9717 10101
+f 9569 10101 9941
+f 9717 9805 10201
+f 9717 10201 10101
+f 9805 9893 10289
+f 9805 10289 10201
+f 9893 9981 10393
+f 9893 10393 10289
+f 9981 10117 10497
+f 9981 10497 10393
+f 10117 10185 10613
+f 10117 10613 10497
+f 10185 10257 10653
+f 10185 10653 10613
+f 10257 10305 10717
+f 10257 10717 10653
+f 10305 10361 10749
+f 10305 10749 10717
+f 10361 10385 10797
+f 10361 10797 10749
+f 10385 10409 10853
+f 10385 10853 10797
+f 10409 10457 10877
+f 10409 10877 10853
+f 10457 10473 10893
+f 10457 10893 10877
+f 10473 10481 10901
+f 10473 10901 10893
+f 10481 10482 10902
+f 10481 10902 10901
+f 10482 10474 10894
+f 10482 10894 10902
+f 10474 10458 10878
+f 10474 10878 10894
+f 10458 10410 10854
+f 10458 10854 10878
+f 10410 10386 10798
+f 10410 10798 10854
+f 10386 10362 10750
+f 10386 10750 10798
+f 10362 10306 10718
+f 10362 10718 10750
+f 10306 10258 10654
+f 10306 10654 10718
+f 10258 10186 10614
+f 10258 10614 10654
+f 10186 10118 10498
+f 10186 10498 10614
+f 10118 9982 10394
+f 10118 10394 10498
+f 9982 9894 10290
+f 9982 10290 10394
+f 9894 9806 10202
+f 9894 10202 10290
+f 9806 9718 10102
+f 9806 10102 10202
+f 9718 9570 9942
+f 9718 9942 10102
+f 9570 9434 9814
+f 9570 9814 9942
+f 9434 9306 9674
+f 9434 9674 9814
+f 9306 9150 9498
+f 9306 9498 9674
+f 9150 8974 9354
+f 9150 9354 9498
+f 8974 8830 9182
+f 8974 9182 9354
+f 8830 8650 8966
+f 8830 8966 9182
+f 8650 8418 8814
+f 8650 8814 8966
+f 8418 8274 8562
+f 8418 8562 8814
+f 8274 8006 8354
+f 8274 8354 8562
+f 8006 7814 8150
+f 8006 8150 8354
+f 7814 7618 7894
+f 7814 7894 8150
+f 7618 7338 7686
+f 7618 7686 7894
+f 7338 7130 7394
+f 7338 7394 7686
+f 7130 6830 7146
+f 7130 7146 7394
+f 6830 6582 6838
+f 6830 6838 7146
+f 6582 6282 6566
+f 6582 6566 6838
+f 6282 5994 6234
+f 6282 6234 6566
+f 5994 5686 5946
+f 5994 5946 6234
+f 5686 5374 5582
+f 5686 5582 5946
+f 5374 5050 5278
+f 5374 5278 5582
+f 5050 4698 4874
+f 5050 4874 5278
+f 4698 4374 4546
+f 4698 4546 4874
+f 4374 3958 4102
+f 4374 4102 4546
+f 3958 3618 3742
+f 3958 3742 4102
+f 3618 3138 3242
+f 3618 3242 3742
+f 3138 2758 2858
+f 3138 2858 3242
+f 2758 2206 2270
+f 2758 2270 2858
+f 2206 1818 1878
+f 2206 1878 2270
+f 1818 1090 1122
+f 1818 1122 1878
+f 1121 1877 1909
+f 1121 1909 1161
+f 1877 2269 2349
+f 1877 2349 1909
+f 2269 2857 2945
+f 2269 2945 2349
+f 2857 3241 3369
+f 2857 3369 2945
+f 3241 3741 3869
+f 3241 3869 3369
+f 3741 4101 4269
+f 3741 4269 3869
+f 4101 4545 4681
+f 4101 4681 4269
+f 4545 4873 5129
+f 4545 5129 4681
+f 4873 5277 5461
+f 4873 5461 5129
+f 5277 5581 5857
+f 5277 5857 5461
+f 5581 5945 6129
+f 5581 6129 5857
+f 5945 6233 6517
+f 5945 6517 6129
+f 6233 6565 6813
+f 6233 6813 6517
+f 6565 6837 7137
+f 6565 7137 6813
+f 6837 7145 7401
+f 6837 7401 7137
+f 7145 7393 7709
+f 7145 7709 7401
+f 7393 7685 7933
+f 7393 7933 7709
+f 7685 7893 8217
+f 7685 8217 7933
+f 7893 8149 8425
+f 7893 8425 8217
+f 8149 8353 8697
+f 8149 8697 8425
+f 8353 8561 8885
+f 8353 8885 8697
+f 8561 8813 9109
+f 8561 9109 8885
+f 8813 8965 9337
+f 8813 9337 9109
+f 8965 9181 9489
+f 8965 9489 9337
+f 9181 9353 9709
+f 9181 9709 9489
+f 9353 9497 9861
+f 9353 9861 9709
+f 9497 9673 10013
+f 9497 10013 9861
+f 9673 9813 10177
+f 9673 10177 10013
+f 9813 9941 10313
+f 9813 10313 10177
+f 9941 10101 10433
+f 9941 10433 10313
+f 10101 10201 10605
+f 10101 10605 10433
+f 10201 10289 10669
+f 10201 10669 10605
+f 10289 10393 10773
+f 10289 10773 10669
+f 10393 10497 10885
+f 10393 10885 10773
+f 10497 10613 10973
+f 10497 10973 10885
+f 10613 10653 11065
+f 10613 11065 10973
+f 10653 10717 11097
+f 10653 11097 11065
+f 10717 10749 11145
+f 10717 11145 11097
+f 10749 10797 11193
+f 10749 11193 11145
+f 10797 10853 11217
+f 10797 11217 11193
+f 10853 10877 11273
+f 10853 11273 11217
+f 10877 10893 11289
+f 10877 11289 11273
+f 10893 10901 11313
+f 10893 11313 11289
+f 10901 10902 11314
+f 10901 11314 11313
+f 10902 10894 11290
+f 10902 11290 11314
+f 10894 10878 11274
+f 10894 11274 11290
+f 10878 10854 11218
+f 10878 11218 11274
+f 10854 10798 11194
+f 10854 11194 11218
+f 10798 10750 11146
+f 10798 11146 11194
+f 10750 10718 11098
+f 10750 11098 11146
+f 10718 10654 11066
+f 10718 11066 11098
+f 10654 10614 10974
+f 10654 10974 11066
+f 10614 10498 10886
+f 10614 10886 10974
+f 10498 10394 10774
+f 10498 10774 10886
+f 10394 10290 10670
+f 10394 10670 10774
+f 10290 10202 10606
+f 10290 10606 10670
+f 10202 10102 10434
+f 10202 10434 10606
+f 10102 9942 10314
+f 10102 10314 10434
+f 9942 9814 10178
+f 9942 10178 10314
+f 9814 9674 10014
+f 9814 10014 10178
+f 9674 9498 9862
+f 9674 9862 10014
+f 9498 9354 9710
+f 9498 9710 9862
+f 9354 9182 9490
+f 9354 9490 9710
+f 9182 8966 9338
+f 9182 9338 9490
+f 8966 8814 9110
+f 8966 9110 9338
+f 8814 8562 8886
+f 8814 8886 9110
+f 8562 8354 8698
+f 8562 8698 8886
+f 8354 8150 8426
+f 8354 8426 8698
+f 8150 7894 8218
+f 8150 8218 8426
+f 7894 7686 7934
+f 7894 7934 8218
+f 7686 7394 7710
+f 7686 7710 7934
+f 7394 7146 7402
+f 7394 7402 7710
+f 7146 6838 7138
+f 7146 7138 7402
+f 6838 6566 6814
+f 6838 6814 7138
+f 6566 6234 6518
+f 6566 6518 6814
+f 6234 5946 6130
+f 6234 6130 6518
+f 5946 5582 5858
+f 5946 5858 6130
+f 5582 5278 5462
+f 5582 5462 5858
+f 5278 4874 5130
+f 5278 5130 5462
+f 4874 4546 4682
+f 4874 4682 5130
+f 4546 4102 4270
+f 4546 4270 4682
+f 4102 3742 3870
+f 4102 3870 4270
+f 3742 3242 3370
+f 3742 3370 3870
+f 3242 2858 2946
+f 3242 2946 3370
+f 2858 2270 2350
+f 2858 2350 2946
+f 2270 1878 1910
+f 2270 1910 2350
+f 1878 1122 1162
+f 1878 1162 1910
+f 1161 1909 1941
+f 1161 1941 1177
+f 1909 2349 2445
+f 1909 2445 1941
+f 2349 2945 3009
+f 2349 3009 2445
+f 2945 3369 3505
+f 2945 3505 3009
+f 3369 3869 3973
+f 3369 3973 3505
+f 3869 4269 4481
+f 3869 4481 3973
+f 4269 4681 4833
+f 4269 4833 4481
+f 4681 5129 5293
+f 4681 5293 4833
+f 5129 5461 5645
+f 5129 5645 5293
+f 5461 5857 6033
+f 5461 6033 5645
+f 5857 6129 6409
+f 5857 6409 6033
+f 6129 6517 6709
+f 6129 6709 6409
+f 6517 6813 7073
+f 6517 7073 6709
+f 6813 7137 7345
+f 6813 7345 7073
+f 7137 7401 7693
+f 7137 7693 7345
+f 7401 7709 7941
+f 7401 7941 7693
+f 7709 7933 8249
+f 7709 8249 7941
+f 7933 8217 8481
+f 7933 8481 8249
+f 8217 8425 8749
+f 8217 8749 8481
+f 8425 8697 8949
+f 8425 8949 8749
+f 8697 8885 9241
+f 8697 9241 8949
+f 8885 9109 9409
+f 8885 9409 9241
+f 9109 9337 9641
+f 9109 9641 9409
+f 9337 9489 9837
+f 9337 9837 9641
+f 9489 9709 10005
+f 9489 10005 9837
+f 9709 9861 10209
+f 9709 10209 10005
+f 9861 10013 10369
+f 9861 10369 10209
+f 10013 10177 10529
+f 10013 10529 10369
+f 10177 10313 10661
+f 10177 10661 10529
+f 10313 10433 10789
+f 10313 10789 10661
+f 10433 10605 10933
+f 10433 10933 10789
+f 10605 10669 11073
+f 10605 11073 10933
+f 10669 10773 11129
+f 10669 11129 11073
+f 10773 10885 11225
+f 10773 11225 11129
+f 10885 10973 11345
+f 10885 11345 11225
+f 10973 11065 11421
+f 10973 11421 11345
+f 11065 11097 11477
+f 11065 11477 11421
+f 11097 11145 11541
+f 11097 11541 11477
+f 11145 11193 11557
+f 11145 11557 11541
+f 11193 11217 11605
+f 11193 11605 11557
+f 11217 11273 11645
+f 11217 11645 11605
+f 11273 11289 11661
+f 11273 11661 11645
+f 11289 11313 11677
+f 11289 11677 11661
+f 11313 11314 11678
+f 11313 11678 11677
+f 11314 11290 11662
+f 11314 11662 11678
+f 11290 11274 11646
+f 11290 11646 11662
+f 11274 11218 11606
+f 11274 11606 11646
+f 11218 11194 11558
+f 11218 11558 11606
+f 11194 11146 11542
+f 11194 11542 11558
+f 11146 11098 11478
+f 11146 11478 11542
+f 11098 11066 11422
+f 11098 11422 11478
+f 11066 10974 11346
+f 11066 11346 11422
+f 10974 10886 11226
+f 10974 11226 11346
+f 10886 10774 11130
+f 10886 11130 11226
+f 10774 10670 11074
+f 10774 11074 11130
+f 10670 10606 10934
+f 10670 10934 11074
+f 10606 10434 10790
+f 10606 10790 10934
+f 10434 10314 10662
+f 10434 10662 10790
+f 10314 10178 10530
+f 10314 10530 10662
+f 10178 10014 10370
+f 10178 10370 10530
+f 10014 9862 10210
+f 10014 10210 10370
+f 9862 9710 10006
+f 9862 10006 10210
+f 9710 9490 9838
+f 9710 9838 10006
+f 9490 9338 9642
+f 9490 9642 9838
+f 9338 9110 9410
+f 9338 9410 9642
+f 9110 8886 9242
+f 9110 9242 9410
+f 8886 8698 8950
+f 8886 8950 9242
+f 8698 8426 8750
+f 8698 8750 8950
+f 8426 8218 8482
+f 8426 8482 8750
+f 8218 7934 8250
+f 8218 8250 8482
+f 7934 7710 7942
+f 7934 7942 8250
+f 7710 7402 7694
+f 7710 7694 7942
+f 7402 7138 7346
+f 7402 7346 7694
+f 7138 6814 7074
+f 7138 7074 7346
+f 6814 6518 6710
+f 6814 6710 7074
+f 6518 6130 6410
+f 6518 6410 6710
+f 6130 5858 6034
+f 6130 6034 6410
+f 5858 5462 5646
+f 5858 5646 6034
+f 5462 5130 5294
+f 5462 5294 5646
+f 5130 4682 4834
+f 5130 4834 5294
+f 4682 4270 4482
+f 4682 4482 4834
+f 4270 3870 3974
+f 4270 3974 4482
+f 3870 3370 3506
+f 3870 3506 3974
+f 3370 2946 3010
+f 3370 3010 3506
+f 2946 2350 2446
+f 2946 2446 3010
+f 2350 1910 1942
+f 2350 1942 2446
+f 1910 1162 1178
+f 1910 1178 1942
+f 1177 1941 1989
+f 1177 1989 1193
+f 1941 2445 2525
+f 1941 2525 1989
+f 2445 3009 3105
+f 2445 3105 2525
+f 3009 3505 3709
+f 3009 3709 3105
+f 3505 3973 4069
+f 3505 4069 3709
+f 3973 4481 4577
+f 3973 4577 4069
+f 4481 4833 5017
+f 4481 5017 4577
+f 4833 5293 5413
+f 4833 5413 5017
+f 5293 5645 5881
+f 5293 5881 5413
+f 5645 6033 6209
+f 5645 6209 5881
+f 6033 6409 6613
+f 6033 6613 6209
+f 6409 6709 6949
+f 6409 6949 6613
+f 6709 7073 7265
+f 6709 7265 6949
+f 7073 7345 7625
+f 7073 7625 7265
+f 7345 7693 7909
+f 7345 7909 7625
+f 7693 7941 8225
+f 7693 8225 7909
+f 7941 8249 8489
+f 7941 8489 8225
+f 8249 8481 8773
+f 8249 8773 8489
+f 8481 8749 9021
+f 8481 9021 8773
+f 8749 8949 9265
+f 8749 9265 9021
+f 8949 9241 9473
+f 8949 9473 9265
+f 9241 9409 9749
+f 9241 9749 9473
+f 9409 9641 9917
+f 9409 9917 9749
+f 9641 9837 10161
+f 9641 10161 9917
+f 9837 10005 10329
+f 9837 10329 10161
+f 10005 10209 10521
+f 10005 10521 10329
+f 10209 10369 10685
+f 10209 10685 10521
+f 10369 10529 10845
+f 10369 10845 10685
+f 10529 10661 11001
+f 10529 11001 10845
+f 10661 10789 11121
+f 10661 11121 11001
+f 10789 10933 11257
+f 10789 11257 11121
+f 10933 11073 11397
+f 10933 11397 11257
+f 11073 11129 11501
+f 11073 11501 11397
+f 11129 11225 11589
+f 11129 11589 11501
+f 11225 11345 11693
+f 11225 11693 11589
+f 11345 11421 11785
+f 11345 11785 11693
+f 11421 11477 11833
+f 11421 11833 11785
+f 11477 11541 11873
+f 11477 11873 11833
+f 11541 11557 11937
+f 11541 11937 11873
+f 11557 11605 11977
+f 11557 11977 11937
+f 11605 11645 11993
+f 11605 11993 11977
+f 11645 11661 12025
+f 11645 12025 11993
+f 11661 11677 12049
+f 11661 12049 12025
+f 11677 11678 12050
+f 11677 12050 12049
+f 11678 11662 12026
+f 11678 12026 12050
+f 11662 11646 11994
+f 11662 11994 12026
+f 11646 11606 11978
+f 11646 11978 11994
+f 11606 11558 11938
+f 11606 11938 11978
+f 11558 11542 11874
+f 11558 11874 11938
+f 11542 11478 11834
+f 11542 11834 11874
+f 11478 11422 11786
+f 11478 11786 11834
+f 11422 11346 11694
+f 11422 11694 11786
+f 11346 11226 11590
+f 11346 11590 11694
+f 11226 11130 11502
+f 11226 11502 11590
+f 11130 11074 11398
+f 11130 11398 11502
+f 11074 10934 11258
+f 11074 11258 11398
+f 10934 10790 11122
+f 10934 11122 11258
+f 10790 10662 11002
+f 10790 11002 11122
+f 10662 10530 10846
+f 10662 10846 11002
+f 10530 10370 10686
+f 10530 10686 10846
+f 10370 10210 10522
+f 10370 10522 10686
+f 10210 10006 10330
+f 10210 10330 10522
+f 10006 9838 10162
+f 10006 10162 10330
+f 9838 9642 9918
+f 9838 9918 10162
+f 9642 9410 9750
+f 9642 9750 9918
+f 9410 9242 9474
+f 9410 9474 9750
+f 9242 8950 9266
+f 9242 9266 9474
+f 8950 8750 9022
+f 8950 9022 9266
+f 8750 8482 8774
+f 8750 8774 9022
+f 8482 8250 8490
+f 8482 8490 8774
+f 8250 7942 8226
+f 8250 8226 8490
+f 7942 7694 7910
+f 7942 7910 8226
+f 7694 7346 7626
+f 7694 7626 7910
+f 7346 7074 7266
+f 7346 7266 7626
+f 7074 6710 6950
+f 7074 6950 7266
+f 6710 6410 6614
+f 6710 6614 6950
+f 6410 6034 6210
+f 6410 6210 6614
+f 6034 5646 5882
+f 6034 5882 6210
+f 5646 5294 5414
+f 5646 5414 5882
+f 5294 4834 5018
+f 5294 5018 5414
+f 4834 4482 4578
+f 4834 4578 5018
+f 4482 3974 4070
+f 4482 4070 4578
+f 3974 3506 3710
+f 3974 3710 4070
+f 3506 3010 3106
+f 3506 3106 3710
+f 3010 2446 2526
+f 3010 2526 3106
+f 2446 1942 1990
+f 2446 1990 2526
+f 1942 1178 1194
+f 1942 1194 1990
+f 1193 1989 2029
+f 1193 2029 1241
+f 1989 2525 2653
+f 1989 2653 2029
+f 2525 3105 3169
+f 2525 3169 2653
+f 3105 3709 3757
+f 3105 3757 3169
+f 3709 4069 4221
+f 3709 4221 3757
+f 4069 4577 4729
+f 4069 4729 4221
+f 4577 5017 5213
+f 4577 5213 4729
+f 5017 5413 5597
+f 5017 5597 5213
+f 5413 5881 6009
+f 5413 6009 5597
+f 5881 6209 6449
+f 5881 6449 6009
+f 6209 6613 6773
+f 6209 6773 6449
+f 6613 6949 7169
+f 6613 7169 6773
+f 6949 7265 7473
+f 6949 7473 7169
+f 7265 7625 7821
+f 7265 7821 7473
+f 7625 7909 8165
+f 7625 8165 7821
+f 7909 8225 8441
+f 7909 8441 8165
+f 8225 8489 8757
+f 8225 8757 8441
+f 8489 8773 9029
+f 8489 9029 8757
+f 8773 9021 9289
+f 8773 9289 9029
+f 9021 9265 9545
+f 9021 9545 9289
+f 9265 9473 9773
+f 9265 9773 9545
+f 9473 9749 9989
+f 9473 9989 9773
+f 9749 9917 10241
+f 9749 10241 9989
+f 9917 10161 10425
+f 9917 10425 10241
+f 10161 10329 10637
+f 10161 10637 10425
+f 10329 10521 10821
+f 10329 10821 10637
+f 10521 10685 11009
+f 10521 11009 10821
+f 10685 10845 11161
+f 10685 11161 11009
+f 10845 11001 11337
+f 10845 11337 11161
+f 11001 11121 11445
+f 11001 11445 11337
+f 11121 11257 11581
+f 11121 11581 11445
+f 11257 11397 11725
+f 11257 11725 11581
+f 11397 11501 11825
+f 11397 11825 11725
+f 11501 11589 11929
+f 11501 11929 11825
+f 11589 11693 12001
+f 11589 12001 11929
+f 11693 11785 12105
+f 11693 12105 12001
+f 11785 11833 12181
+f 11785 12181 12105
+f 11833 11873 12237
+f 11833 12237 12181
+f 11873 11937 12277
+f 11873 12277 12237
+f 11937 11977 12293
+f 11937 12293 12277
+f 11977 11993 12357
+f 11977 12357 12293
+f 11993 12025 12373
+f 11993 12373 12357
+f 12025 12049 12413
+f 12025 12413 12373
+f 12049 12050 12414
+f 12049 12414 12413
+f 12050 12026 12374
+f 12050 12374 12414
+f 12026 11994 12358
+f 12026 12358 12374
+f 11994 11978 12294
+f 11994 12294 12358
+f 11978 11938 12278
+f 11978 12278 12294
+f 11938 11874 12238
+f 11938 12238 12278
+f 11874 11834 12182
+f 11874 12182 12238
+f 11834 11786 12106
+f 11834 12106 12182
+f 11786 11694 12002
+f 11786 12002 12106
+f 11694 11590 11930
+f 11694 11930 12002
+f 11590 11502 11826
+f 11590 11826 11930
+f 11502 11398 11726
+f 11502 11726 11826
+f 11398 11258 11582
+f 11398 11582 11726
+f 11258 11122 11446
+f 11258 11446 11582
+f 11122 11002 11338
+f 11122 11338 11446
+f 11002 10846 11162
+f 11002 11162 11338
+f 10846 10686 11010
+f 10846 11010 11162
+f 10686 10522 10822
+f 10686 10822 11010
+f 10522 10330 10638
+f 10522 10638 10822
+f 10330 10162 10426
+f 10330 10426 10638
+f 10162 9918 10242
+f 10162 10242 10426
+f 9918 9750 9990
+f 9918 9990 10242
+f 9750 9474 9774
+f 9750 9774 9990
+f 9474 9266 9546
+f 9474 9546 9774
+f 9266 9022 9290
+f 9266 9290 9546
+f 9022 8774 9030
+f 9022 9030 9290
+f 8774 8490 8758
+f 8774 8758 9030
+f 8490 8226 8442
+f 8490 8442 8758
+f 8226 7910 8166
+f 8226 8166 8442
+f 7910 7626 7822
+f 7910 7822 8166
+f 7626 7266 7474
+f 7626 7474 7822
+f 7266 6950 7170
+f 7266 7170 7474
+f 6950 6614 6774
+f 6950 6774 7170
+f 6614 6210 6450
+f 6614 6450 6774
+f 6210 5882 6010
+f 6210 6010 6450
+f 5882 5414 5598
+f 5882 5598 6010
+f 5414 5018 5214
+f 5414 5214 5598
+f 5018 4578 4730
+f 5018 4730 5214
+f 4578 4070 4222
+f 4578 4222 4730
+f 4070 3710 3758
+f 4070 3758 4222
+f 3710 3106 3170
+f 3710 3170 3758
+f 3106 2526 2654
+f 3106 2654 3170
+f 2526 1990 2030
+f 2526 2030 2654
+f 1990 1194 1242
+f 1990 1242 2030
+f 1241 2029 2061
+f 1241 2061 1257
+f 2029 2653 2793
+f 2029 2793 2061
+f 2653 3169 3265
+f 2653 3265 2793
+f 3169 3757 3861
+f 3169 3861 3265
+f 3757 4221 4437
+f 3757 4437 3861
+f 4221 4729 4825
+f 4221 4825 4437
+f 4729 5213 5325
+f 4729 5325 4825
+f 5213 5597 5805
+f 5213 5805 5325
+f 5597 6009 6169
+f 5597 6169 5805
+f 6009 6449 6629
+f 6009 6629 6169
+f 6449 6773 6997
+f 6449 6997 6629
+f 6773 7169 7329
+f 6773 7329 6997
+f 7169 7473 7733
+f 7169 7733 7329
+f 7473 7821 8021
+f 7473 8021 7733
+f 7821 8165 8369
+f 7821 8369 8021
+f 8165 8441 8713
+f 8165 8713 8369
+f 8441 8757 8957
+f 8441 8957 8713
+f 8757 9029 9273
+f 8757 9273 8957
+f 9029 9289 9553
+f 9029 9553 9273
+f 9289 9545 9797
+f 9289 9797 9553
+f 9545 9773 10069
+f 9545 10069 9797
+f 9773 9989 10265
+f 9773 10265 10069
+f 9989 10241 10505
+f 9989 10505 10265
+f 10241 10425 10725
+f 10241 10725 10505
+f 10425 10637 10925
+f 10425 10925 10725
+f 10637 10821 11105
+f 10637 11105 10925
+f 10821 11009 11305
+f 10821 11305 11105
+f 11009 11161 11461
+f 11009 11461 11305
+f 11161 11337 11613
+f 11161 11613 11461
+f 11337 11445 11801
+f 11337 11801 11613
+f 11445 11581 11881
+f 11445 11881 11801
+f 11581 11725 12017
+f 11581 12017 11881
+f 11725 11825 12149
+f 11725 12149 12017
+f 11825 11929 12245
+f 11825 12245 12149
+f 11929 12001 12325
+f 11929 12325 12245
+f 12001 12105 12429
+f 12001 12429 12325
+f 12105 12181 12505
+f 12105 12505 12429
+f 12181 12237 12553
+f 12181 12553 12505
+f 12237 12277 12609
+f 12237 12609 12553
+f 12277 12293 12649
+f 12277 12649 12609
+f 12293 12357 12665
+f 12293 12665 12649
+f 12357 12373 12689
+f 12357 12689 12665
+f 12373 12413 12713
+f 12373 12713 12689
+f 12413 12414 12714
+f 12413 12714 12713
+f 12414 12374 12690
+f 12414 12690 12714
+f 12374 12358 12666
+f 12374 12666 12690
+f 12358 12294 12650
+f 12358 12650 12666
+f 12294 12278 12610
+f 12294 12610 12650
+f 12278 12238 12554
+f 12278 12554 12610
+f 12238 12182 12506
+f 12238 12506 12554
+f 12182 12106 12430
+f 12182 12430 12506
+f 12106 12002 12326
+f 12106 12326 12430
+f 12002 11930 12246
+f 12002 12246 12326
+f 11930 11826 12150
+f 11930 12150 12246
+f 11826 11726 12018
+f 11826 12018 12150
+f 11726 11582 11882
+f 11726 11882 12018
+f 11582 11446 11802
+f 11582 11802 11882
+f 11446 11338 11614
+f 11446 11614 11802
+f 11338 11162 11462
+f 11338 11462 11614
+f 11162 11010 11306
+f 11162 11306 11462
+f 11010 10822 11106
+f 11010 11106 11306
+f 10822 10638 10926
+f 10822 10926 11106
+f 10638 10426 10726
+f 10638 10726 10926
+f 10426 10242 10506
+f 10426 10506 10726
+f 10242 9990 10266
+f 10242 10266 10506
+f 9990 9774 10070
+f 9990 10070 10266
+f 9774 9546 9798
+f 9774 9798 10070
+f 9546 9290 9554
+f 9546 9554 9798
+f 9290 9030 9274
+f 9290 9274 9554
+f 9030 8758 8958
+f 9030 8958 9274
+f 8758 8442 8714
+f 8758 8714 8958
+f 8442 8166 8370
+f 8442 8370 8714
+f 8166 7822 8022
+f 8166 8022 8370
+f 7822 7474 7734
+f 7822 7734 8022
+f 7474 7170 7330
+f 7474 7330 7734
+f 7170 6774 6998
+f 7170 6998 7330
+f 6774 6450 6630
+f 6774 6630 6998
+f 6450 6010 6170
+f 6450 6170 6630
+f 6010 5598 5806
+f 6010 5806 6170
+f 5598 5214 5326
+f 5598 5326 5806
+f 5214 4730 4826
+f 5214 4826 5326
+f 4730 4222 4438
+f 4730 4438 4826
+f 4222 3758 3862
+f 4222 3862 4438
+f 3758 3170 3266
+f 3758 3266 3862
+f 3170 2654 2794
+f 3170 2794 3266
+f 2654 2030 2062
+f 2654 2062 2794
+f 2030 1242 1258
+f 2030 1258 2062
+f 1257 2061 2109
+f 1257 2109 1305
+f 2061 2793 2841
+f 2061 2841 2109
+f 2793 3265 3345
+f 2793 3345 2841
+f 3265 3861 3925
+f 3265 3925 3345
+f 3861 4437 4513
+f 3861 4513 3925
+f 4437 4825 4969
+f 4437 4969 4513
+f 4825 5325 5469
+f 4825 5469 4969
+f 5325 5805 5929
+f 5325 5929 5469
+f 5805 6169 6353
+f 5805 6353 5929
+f 6169 6629 6733
+f 6169 6733 6353
+f 6629 6997 7193
+f 6629 7193 6733
+f 6997 7329 7553
+f 6997 7553 7193
+f 7329 7733 7901
+f 7329 7901 7553
+f 7733 8021 8281
+f 7733 8281 7901
+f 8021 8369 8577
+f 8021 8577 8281
+f 8369 8713 8901
+f 8369 8901 8577
+f 8713 8957 9249
+f 8713 9249 8901
+f 8957 9273 9481
+f 8957 9481 9249
+f 9273 9553 9781
+f 9273 9781 9481
+f 9553 9797 10077
+f 9553 10077 9781
+f 9797 10069 10297
+f 9797 10297 10077
+f 10069 10265 10577
+f 10069 10577 10297
+f 10265 10505 10757
+f 10265 10757 10577
+f 10505 10725 10993
+f 10505 10993 10757
+f 10725 10925 11185
+f 10725 11185 10993
+f 10925 11105 11405
+f 10925 11405 11185
+f 11105 11305 11549
+f 11105 11549 11405
+f 11305 11461 11773
+f 11305 11773 11549
+f 11461 11613 11889
+f 11461 11889 11773
+f 11613 11801 12073
+f 11613 12073 11889
+f 11801 11881 12205
+f 11801 12205 12073
+f 11881 12017 12301
+f 11881 12301 12205
+f 12017 12149 12445
+f 12017 12445 12301
+f 12149 12245 12545
+f 12149 12545 12445
+f 12245 12325 12641
+f 12245 12641 12545
+f 12325 12429 12721
+f 12325 12721 12641
+f 12429 12505 12829
+f 12429 12829 12721
+f 12505 12553 12861
+f 12505 12861 12829
+f 12553 12609 12909
+f 12553 12909 12861
+f 12609 12649 12941
+f 12609 12941 12909
+f 12649 12665 12981
+f 12649 12981 12941
+f 12665 12689 13013
+f 12665 13013 12981
+f 12689 12713 13045
+f 12689 13045 13013
+f 12713 12714 13046
+f 12713 13046 13045
+f 12714 12690 13014
+f 12714 13014 13046
+f 12690 12666 12982
+f 12690 12982 13014
+f 12666 12650 12942
+f 12666 12942 12982
+f 12650 12610 12910
+f 12650 12910 12942
+f 12610 12554 12862
+f 12610 12862 12910
+f 12554 12506 12830
+f 12554 12830 12862
+f 12506 12430 12722
+f 12506 12722 12830
+f 12430 12326 12642
+f 12430 12642 12722
+f 12326 12246 12546
+f 12326 12546 12642
+f 12246 12150 12446
+f 12246 12446 12546
+f 12150 12018 12302
+f 12150 12302 12446
+f 12018 11882 12206
+f 12018 12206 12302
+f 11882 11802 12074
+f 11882 12074 12206
+f 11802 11614 11890
+f 11802 11890 12074
+f 11614 11462 11774
+f 11614 11774 11890
+f 11462 11306 11550
+f 11462 11550 11774
+f 11306 11106 11406
+f 11306 11406 11550
+f 11106 10926 11186
+f 11106 11186 11406
+f 10926 10726 10994
+f 10926 10994 11186
+f 10726 10506 10758
+f 10726 10758 10994
+f 10506 10266 10578
+f 10506 10578 10758
+f 10266 10070 10298
+f 10266 10298 10578
+f 10070 9798 10078
+f 10070 10078 10298
+f 9798 9554 9782
+f 9798 9782 10078
+f 9554 9274 9482
+f 9554 9482 9782
+f 9274 8958 9250
+f 9274 9250 9482
+f 8958 8714 8902
+f 8958 8902 9250
+f 8714 8370 8578
+f 8714 8578 8902
+f 8370 8022 8282
+f 8370 8282 8578
+f 8022 7734 7902
+f 8022 7902 8282
+f 7734 7330 7554
+f 7734 7554 7902
+f 7330 6998 7194
+f 7330 7194 7554
+f 6998 6630 6734
+f 6998 6734 7194
+f 6630 6170 6354
+f 6630 6354 6734
+f 6170 5806 5930
+f 6170 5930 6354
+f 5806 5326 5470
+f 5806 5470 5930
+f 5326 4826 4970
+f 5326 4970 5470
+f 4826 4438 4514
+f 4826 4514 4970
+f 4438 3862 3926
+f 4438 3926 4514
+f 3862 3266 3346
+f 3862 3346 3926
+f 3266 2794 2842
+f 3266 2842 3346
+f 2794 2062 2110
+f 2794 2110 2842
+f 2062 1258 1306
+f 2062 1306 2110
+f 1305 2109 2141
+f 1305 2141 1321
+f 2109 2841 2889
+f 2109 2889 2141
+f 2841 3345 3457
+f 2841 3457 2889
+f 3345 3925 4013
+f 3345 4013 3457
+f 3925 4513 4593
+f 3925 4593 4013
+f 4513 4969 5165
+f 4513 5165 4593
+f 4969 5469 5557
+f 4969 5557 5165
+f 5469 5929 6073
+f 5469 6073 5557
+f 5929 6353 6533
+f 5929 6533 6073
+f 6353 6733 6917
+f 6353 6917 6533
+f 6733 7193 7313
+f 6733 7313 6917
+f 7193 7553 7749
+f 7193 7749 7313
+f 7553 7901 8117
+f 7553 8117 7749
+f 7901 8281 8449
+f 7901 8449 8117
+f 8281 8577 8821
+f 8281 8821 8449
+f 8577 8901 9125
+f 8577 9125 8821
+f 8901 9249 9425
+f 8901 9425 9125
+f 9249 9481 9757
+f 9249 9757 9425
+f 9481 9781 9997
+f 9481 9997 9757
+f 9781 10077 10281
+f 9781 10281 9997
+f 10077 10297 10585
+f 10077 10585 10281
+f 10297 10577 10781
+f 10297 10781 10585
+f 10577 10757 11049
+f 10577 11049 10781
+f 10757 10993 11233
+f 10757 11233 11049
+f 10993 11185 11453
+f 10993 11453 11233
+f 11185 11405 11653
+f 11185 11653 11453
+f 11405 11549 11841
+f 11405 11841 11653
+f 11549 11773 12009
+f 11549 12009 11841
+f 11773 11889 12197
+f 11773 12197 12009
+f 11889 12073 12317
+f 11889 12317 12197
+f 12073 12205 12497
+f 12073 12497 12317
+f 12205 12301 12617
+f 12205 12617 12497
+f 12301 12445 12729
+f 12301 12729 12617
+f 12445 12545 12837
+f 12445 12837 12729
+f 12545 12641 12925
+f 12545 12925 12837
+f 12641 12721 13037
+f 12641 13037 12925
+f 12721 12829 13101
+f 12721 13101 13037
+f 12829 12861 13169
+f 12829 13169 13101
+f 12861 12909 13217
+f 12861 13217 13169
+f 12909 12941 13249
+f 12909 13249 13217
+f 12941 12981 13281
+f 12941 13281 13249
+f 12981 13013 13297
+f 12981 13297 13281
+f 13013 13045 13321
+f 13013 13321 13297
+f 13045 13046 13322
+f 13045 13322 13321
+f 13046 13014 13298
+f 13046 13298 13322
+f 13014 12982 13282
+f 13014 13282 13298
+f 12982 12942 13250
+f 12982 13250 13282
+f 12942 12910 13218
+f 12942 13218 13250
+f 12910 12862 13170
+f 12910 13170 13218
+f 12862 12830 13102
+f 12862 13102 13170
+f 12830 12722 13038
+f 12830 13038 13102
+f 12722 12642 12926
+f 12722 12926 13038
+f 12642 12546 12838
+f 12642 12838 12926
+f 12546 12446 12730
+f 12546 12730 12838
+f 12446 12302 12618
+f 12446 12618 12730
+f 12302 12206 12498
+f 12302 12498 12618
+f 12206 12074 12318
+f 12206 12318 12498
+f 12074 11890 12198
+f 12074 12198 12318
+f 11890 11774 12010
+f 11890 12010 12198
+f 11774 11550 11842
+f 11774 11842 12010
+f 11550 11406 11654
+f 11550 11654 11842
+f 11406 11186 11454
+f 11406 11454 11654
+f 11186 10994 11234
+f 11186 11234 11454
+f 10994 10758 11050
+f 10994 11050 11234
+f 10758 10578 10782
+f 10758 10782 11050
+f 10578 10298 10586
+f 10578 10586 10782
+f 10298 10078 10282
+f 10298 10282 10586
+f 10078 9782 9998
+f 10078 9998 10282
+f 9782 9482 9758
+f 9782 9758 9998
+f 9482 9250 9426
+f 9482 9426 9758
+f 9250 8902 9126
+f 9250 9126 9426
+f 8902 8578 8822
+f 8902 8822 9126
+f 8578 8282 8450
+f 8578 8450 8822
+f 8282 7902 8118
+f 8282 8118 8450
+f 7902 7554 7750
+f 7902 7750 8118
+f 7554 7194 7314
+f 7554 7314 7750
+f 7194 6734 6918
+f 7194 6918 7314
+f 6734 6354 6534
+f 6734 6534 6918
+f 6354 5930 6074
+f 6354 6074 6534
+f 5930 5470 5558
+f 5930 5558 6074
+f 5470 4970 5166
+f 5470 5166 5558
+f 4970 4514 4594
+f 4970 4594 5166
+f 4514 3926 4014
+f 4514 4014 4594
+f 3926 3346 3458
+f 3926 3458 4014
+f 3346 2842 2890
+f 3346 2890 3458
+f 2842 2110 2142
+f 2842 2142 2890
+f 2110 1306 1322
+f 2110 1322 2142
+f 1321 2141 2173
+f 1321 2173 1353
+f 2141 2889 2929
+f 2141 2929 2173
+f 2889 3457 3593
+f 2889 3593 2929
+f 3457 4013 4133
+f 3457 4133 3593
+f 4013 4593 4705
+f 4013 4705 4133
+f 4593 5165 5253
+f 4593 5253 4705
+f 5165 5557 5733
+f 5165 5733 5253
+f 5557 6073 6185
+f 5557 6185 5733
+f 6073 6533 6653
+f 6073 6653 6185
+f 6533 6917 7121
+f 6533 7121 6653
+f 6917 7313 7505
+f 6917 7505 7121
+f 7313 7749 7885
+f 7313 7885 7505
+f 7749 8117 8305
+f 7749 8305 7885
+f 8117 8449 8665
+f 8117 8665 8305
+f 8449 8821 8981
+f 8449 8981 8665
+f 8821 9125 9345
+f 8821 9345 8981
+f 9125 9425 9657
+f 9125 9657 9345
+f 9425 9757 9933
+f 9425 9933 9657
+f 9757 9997 10249
+f 9757 10249 9933
+f 9997 10281 10513
+f 9997 10513 10249
+f 10281 10585 10765
+f 10281 10765 10513
+f 10585 10781 11057
+f 10585 11057 10765
+f 10781 11049 11265
+f 10781 11265 11057
+f 11049 11233 11509
+f 11049 11509 11265
+f 11233 11453 11709
+f 11233 11709 11509
+f 11453 11653 11897
+f 11453 11897 11709
+f 11653 11841 12113
+f 11653 12113 11897
+f 11841 12009 12269
+f 11841 12269 12113
+f 12009 12197 12453
+f 12009 12453 12269
+f 12197 12317 12593
+f 12197 12593 12453
+f 12317 12497 12745
+f 12317 12745 12593
+f 12497 12617 12885
+f 12497 12885 12745
+f 12617 12729 13005
+f 12617 13005 12885
+f 12729 12837 13121
+f 12729 13121 13005
+f 12837 12925 13209
+f 12837 13209 13121
+f 12925 13037 13289
+f 12925 13289 13209
+f 13037 13101 13377
+f 13037 13377 13289
+f 13101 13169 13445
+f 13101 13445 13377
+f 13169 13217 13485
+f 13169 13485 13445
+f 13217 13249 13533
+f 13217 13533 13485
+f 13249 13281 13573
+f 13249 13573 13533
+f 13281 13297 13581
+f 13281 13581 13573
+f 13297 13321 13605
+f 13297 13605 13581
+f 13321 13322 13606
+f 13321 13606 13605
+f 13322 13298 13582
+f 13322 13582 13606
+f 13298 13282 13574
+f 13298 13574 13582
+f 13282 13250 13534
+f 13282 13534 13574
+f 13250 13218 13486
+f 13250 13486 13534
+f 13218 13170 13446
+f 13218 13446 13486
+f 13170 13102 13378
+f 13170 13378 13446
+f 13102 13038 13290
+f 13102 13290 13378
+f 13038 12926 13210
+f 13038 13210 13290
+f 12926 12838 13122
+f 12926 13122 13210
+f 12838 12730 13006
+f 12838 13006 13122
+f 12730 12618 12886
+f 12730 12886 13006
+f 12618 12498 12746
+f 12618 12746 12886
+f 12498 12318 12594
+f 12498 12594 12746
+f 12318 12198 12454
+f 12318 12454 12594
+f 12198 12010 12270
+f 12198 12270 12454
+f 12010 11842 12114
+f 12010 12114 12270
+f 11842 11654 11898
+f 11842 11898 12114
+f 11654 11454 11710
+f 11654 11710 11898
+f 11454 11234 11510
+f 11454 11510 11710
+f 11234 11050 11266
+f 11234 11266 11510
+f 11050 10782 11058
+f 11050 11058 11266
+f 10782 10586 10766
+f 10782 10766 11058
+f 10586 10282 10514
+f 10586 10514 10766
+f 10282 9998 10250
+f 10282 10250 10514
+f 9998 9758 9934
+f 9998 9934 10250
+f 9758 9426 9658
+f 9758 9658 9934
+f 9426 9126 9346
+f 9426 9346 9658
+f 9126 8822 8982
+f 9126 8982 9346
+f 8822 8450 8666
+f 8822 8666 8982
+f 8450 8118 8306
+f 8450 8306 8666
+f 8118 7750 7886
+f 8118 7886 8306
+f 7750 7314 7506
+f 7750 7506 7886
+f 7314 6918 7122
+f 7314 7122 7506
+f 6918 6534 6654
+f 6918 6654 7122
+f 6534 6074 6186
+f 6534 6186 6654
+f 6074 5558 5734
+f 6074 5734 6186
+f 5558 5166 5254
+f 5558 5254 5734
+f 5166 4594 4706
+f 5166 4706 5254
+f 4594 4014 4134
+f 4594 4134 4706
+f 4014 3458 3594
+f 4014 3594 4134
+f 3458 2890 2930
+f 3458 2930 3594
+f 2890 2142 2174
+f 2890 2174 2930
+f 2142 1322 1354
+f 2142 1354 2174
+f 1353 2173 2221
+f 1353 2221 1385
+f 2173 2929 2977
+f 2173 2977 2221
+f 2929 3593 3693
+f 2929 3693 2977
+f 3593 4133 4205
+f 3593 4205 3693
+f 4133 4705 4769
+f 4133 4769 4205
+f 4705 5253 5341
+f 4705 5341 4769
+f 5253 5733 5897
+f 5253 5897 5341
+f 5733 6185 6329
+f 5733 6329 5897
+f 6185 6653 6781
+f 6185 6781 6329
+f 6653 7121 7241
+f 6653 7241 6781
+f 7121 7505 7701
+f 7121 7701 7241
+f 7505 7885 8053
+f 7505 8053 7701
+f 7885 8305 8457
+f 7885 8457 8053
+f 8305 8665 8845
+f 8305 8845 8457
+f 8665 8981 9197
+f 8665 9197 8845
+f 8981 9345 9505
+f 8981 9505 9197
+f 9345 9657 9853
+f 9345 9853 9505
+f 9657 9933 10169
+f 9657 10169 9853
+f 9933 10249 10441
+f 9933 10441 10169
+f 10249 10513 10733
+f 10249 10733 10441
+f 10513 10765 11017
+f 10513 11017 10733
+f 10765 11057 11241
+f 10765 11241 11017
+f 11057 11265 11517
+f 11057 11517 11241
+f 11265 11509 11741
+f 11265 11741 11517
+f 11509 11709 11953
+f 11509 11953 11741
+f 11709 11897 12157
+f 11709 12157 11953
+f 11897 12113 12333
+f 11897 12333 12157
+f 12113 12269 12521
+f 12113 12521 12333
+f 12269 12453 12681
+f 12269 12681 12521
+f 12453 12593 12853
+f 12453 12853 12681
+f 12593 12745 12997
+f 12593 12997 12853
+f 12745 12885 13129
+f 12745 13129 12997
+f 12885 13005 13257
+f 12885 13257 13129
+f 13005 13121 13369
+f 13005 13369 13257
+f 13121 13209 13461
+f 13121 13461 13369
+f 13209 13289 13549
+f 13209 13549 13461
+f 13289 13377 13645
+f 13289 13645 13549
+f 13377 13445 13705
+f 13377 13705 13645
+f 13445 13485 13777
+f 13445 13777 13705
+f 13485 13533 13785
+f 13485 13785 13777
+f 13533 13573 13825
+f 13533 13825 13785
+f 13573 13581 13857
+f 13573 13857 13825
+f 13581 13605 13865
+f 13581 13865 13857
+f 13605 13606 13866
+f 13605 13866 13865
+f 13606 13582 13858
+f 13606 13858 13866
+f 13582 13574 13826
+f 13582 13826 13858
+f 13574 13534 13786
+f 13574 13786 13826
+f 13534 13486 13778
+f 13534 13778 13786
+f 13486 13446 13706
+f 13486 13706 13778
+f 13446 13378 13646
+f 13446 13646 13706
+f 13378 13290 13550
+f 13378 13550 13646
+f 13290 13210 13462
+f 13290 13462 13550
+f 13210 13122 13370
+f 13210 13370 13462
+f 13122 13006 13258
+f 13122 13258 13370
+f 13006 12886 13130
+f 13006 13130 13258
+f 12886 12746 12998
+f 12886 12998 13130
+f 12746 12594 12854
+f 12746 12854 12998
+f 12594 12454 12682
+f 12594 12682 12854
+f 12454 12270 12522
+f 12454 12522 12682
+f 12270 12114 12334
+f 12270 12334 12522
+f 12114 11898 12158
+f 12114 12158 12334
+f 11898 11710 11954
+f 11898 11954 12158
+f 11710 11510 11742
+f 11710 11742 11954
+f 11510 11266 11518
+f 11510 11518 11742
+f 11266 11058 11242
+f 11266 11242 11518
+f 11058 10766 11018
+f 11058 11018 11242
+f 10766 10514 10734
+f 10766 10734 11018
+f 10514 10250 10442
+f 10514 10442 10734
+f 10250 9934 10170
+f 10250 10170 10442
+f 9934 9658 9854
+f 9934 9854 10170
+f 9658 9346 9506
+f 9658 9506 9854
+f 9346 8982 9198
+f 9346 9198 9506
+f 8982 8666 8846
+f 8982 8846 9198
+f 8666 8306 8458
+f 8666 8458 8846
+f 8306 7886 8054
+f 8306 8054 8458
+f 7886 7506 7702
+f 7886 7702 8054
+f 7506 7122 7242
+f 7506 7242 7702
+f 7122 6654 6782
+f 7122 6782 7242
+f 6654 6186 6330
+f 6654 6330 6782
+f 6186 5734 5898
+f 6186 5898 6330
+f 5734 5254 5342
+f 5734 5342 5898
+f 5254 4706 4770
+f 5254 4770 5342
+f 4706 4134 4206
+f 4706 4206 4770
+f 4134 3594 3694
+f 4134 3694 4206
+f 3594 2930 2978
+f 3594 2978 3694
+f 2930 2174 2222
+f 2930 2222 2978
+f 2174 1354 1386
+f 2174 1386 2222
+f 1385 2221 2253
+f 1385 2253 1401
+f 2221 2977 3025
+f 2221 3025 2253
+f 2977 3693 3725
+f 2977 3725 3025
+f 3693 4205 4325
+f 3693 4325 3725
+f 4205 4769 4881
+f 4205 4881 4325
+f 4769 5341 5421
+f 4769 5421 4881
+f 5341 5897 5969
+f 5341 5969 5421
+f 5897 6329 6501
+f 5897 6501 5969
+f 6329 6781 6925
+f 6329 6925 6501
+f 6781 7241 7385
+f 6781 7385 6925
+f 7241 7701 7805
+f 7241 7805 7385
+f 7701 8053 8257
+f 7701 8257 7805
+f 8053 8457 8617
+f 8053 8617 8257
+f 8457 8845 8989
+f 8457 8989 8617
+f 8845 9197 9369
+f 8845 9369 8989
+f 9197 9505 9725
+f 9197 9725 9369
+f 9505 9853 10037
+f 9505 10037 9725
+f 9853 10169 10345
+f 9853 10345 10037
+f 10169 10441 10645
+f 10169 10645 10345
+f 10441 10733 10941
+f 10441 10941 10645
+f 10733 11017 11201
+f 10733 11201 10941
+f 11017 11241 11469
+f 11017 11469 11201
+f 11241 11517 11717
+f 11241 11717 11469
+f 11517 11741 11961
+f 11517 11961 11717
+f 11741 11953 12173
+f 11741 12173 11961
+f 11953 12157 12389
+f 11953 12389 12173
+f 12157 12333 12561
+f 12157 12561 12389
+f 12333 12521 12761
+f 12333 12761 12561
+f 12521 12681 12917
+f 12521 12917 12761
+f 12681 12853 13085
+f 12681 13085 12917
+f 12853 12997 13225
+f 12853 13225 13085
+f 12997 13129 13393
+f 12997 13393 13225
+f 13129 13257 13493
+f 13129 13493 13393
+f 13257 13369 13621
+f 13257 13621 13493
+f 13369 13461 13713
+f 13369 13713 13621
+f 13461 13549 13793
+f 13461 13793 13713
+f 13549 13645 13889
+f 13549 13889 13793
+f 13645 13705 13973
+f 13645 13973 13889
+f 13705 13777 14005
+f 13705 14005 13973
+f 13777 13785 14037
+f 13777 14037 14005
+f 13785 13825 14101
+f 13785 14101 14037
+f 13825 13857 14117
+f 13825 14117 14101
+f 13857 13865 14133
+f 13857 14133 14117
+f 13865 13866 14134
+f 13865 14134 14133
+f 13866 13858 14118
+f 13866 14118 14134
+f 13858 13826 14102
+f 13858 14102 14118
+f 13826 13786 14038
+f 13826 14038 14102
+f 13786 13778 14006
+f 13786 14006 14038
+f 13778 13706 13974
+f 13778 13974 14006
+f 13706 13646 13890
+f 13706 13890 13974
+f 13646 13550 13794
+f 13646 13794 13890
+f 13550 13462 13714
+f 13550 13714 13794
+f 13462 13370 13622
+f 13462 13622 13714
+f 13370 13258 13494
+f 13370 13494 13622
+f 13258 13130 13394
+f 13258 13394 13494
+f 13130 12998 13226
+f 13130 13226 13394
+f 12998 12854 13086
+f 12998 13086 13226
+f 12854 12682 12918
+f 12854 12918 13086
+f 12682 12522 12762
+f 12682 12762 12918
+f 12522 12334 12562
+f 12522 12562 12762
+f 12334 12158 12390
+f 12334 12390 12562
+f 12158 11954 12174
+f 12158 12174 12390
+f 11954 11742 11962
+f 11954 11962 12174
+f 11742 11518 11718
+f 11742 11718 11962
+f 11518 11242 11470
+f 11518 11470 11718
+f 11242 11018 11202
+f 11242 11202 11470
+f 11018 10734 10942
+f 11018 10942 11202
+f 10734 10442 10646
+f 10734 10646 10942
+f 10442 10170 10346
+f 10442 10346 10646
+f 10170 9854 10038
+f 10170 10038 10346
+f 9854 9506 9726
+f 9854 9726 10038
+f 9506 9198 9370
+f 9506 9370 9726
+f 9198 8846 8990
+f 9198 8990 9370
+f 8846 8458 8618
+f 8846 8618 8990
+f 8458 8054 8258
+f 8458 8258 8618
+f 8054 7702 7806
+f 8054 7806 8258
+f 7702 7242 7386
+f 7702 7386 7806
+f 7242 6782 6926
+f 7242 6926 7386
+f 6782 6330 6502
+f 6782 6502 6926
+f 6330 5898 5970
+f 6330 5970 6502
+f 5898 5342 5422
+f 5898 5422 5970
+f 5342 4770 4882
+f 5342 4882 5422
+f 4770 4206 4326
+f 4770 4326 4882
+f 4206 3694 3726
+f 4206 3726 4326
+f 3694 2978 3026
+f 3694 3026 3726
+f 2978 2222 2254
+f 2978 2254 3026
+f 2222 1386 1402
+f 2222 1402 2254
+f 1401 2253 2285
+f 1401 2285 1417
+f 2253 3025 3073
+f 2253 3073 2285
+f 3025 3725 3789
+f 3025 3789 3073
+f 3725 4325 4465
+f 3725 4465 3789
+f 4325 4881 4977
+f 4325 4977 4465
+f 4881 5421 5525
+f 4881 5525 4977
+f 5421 5969 6081
+f 5421 6081 5525
+f 5969 6501 6589
+f 5969 6589 6081
+f 6501 6925 7097
+f 6501 7097 6589
+f 6925 7385 7521
+f 6925 7521 7097
+f 7385 7805 7957
+f 7385 7957 7521
+f 7805 8257 8377
+f 7805 8377 7957
+f 8257 8617 8797
+f 8257 8797 8377
+f 8617 8989 9165
+f 8617 9165 8797
+f 8989 9369 9521
+f 8989 9521 9165
+f 9369 9725 9877
+f 9369 9877 9521
+f 9725 10037 10217
+f 9725 10217 9877
+f 10037 10345 10545
+f 10037 10545 10217
+f 10345 10645 10837
+f 10345 10837 10545
+f 10645 10941 11113
+f 10645 11113 10837
+f 10941 11201 11413
+f 10941 11413 11113
+f 11201 11469 11669
+f 11201 11669 11413
+f 11469 11717 11905
+f 11469 11905 11669
+f 11717 11961 12165
+f 11717 12165 11905
+f 11961 12173 12405
+f 11961 12405 12165
+f 12173 12389 12585
+f 12173 12585 12405
+f 12389 12561 12813
+f 12389 12813 12585
+f 12561 12761 12965
+f 12561 12965 12813
+f 12761 12917 13153
+f 12761 13153 12965
+f 12917 13085 13313
+f 12917 13313 13153
+f 13085 13225 13453
+f 13085 13453 13313
+f 13225 13393 13613
+f 13225 13613 13453
+f 13393 13493 13737
+f 13393 13737 13613
+f 13493 13621 13841
+f 13493 13841 13737
+f 13621 13713 13965
+f 13621 13965 13841
+f 13713 13793 14029
+f 13713 14029 13965
+f 13793 13889 14125
+f 13793 14125 14029
+f 13889 13973 14197
+f 13889 14197 14125
+f 13973 14005 14257
+f 13973 14257 14197
+f 14005 14037 14305
+f 14005 14305 14257
+f 14037 14101 14313
+f 14037 14313 14305
+f 14101 14117 14345
+f 14101 14345 14313
+f 14117 14133 14361
+f 14117 14361 14345
+f 14133 14134 14362
+f 14133 14362 14361
+f 14134 14118 14346
+f 14134 14346 14362
+f 14118 14102 14314
+f 14118 14314 14346
+f 14102 14038 14306
+f 14102 14306 14314
+f 14038 14006 14258
+f 14038 14258 14306
+f 14006 13974 14198
+f 14006 14198 14258
+f 13974 13890 14126
+f 13974 14126 14198
+f 13890 13794 14030
+f 13890 14030 14126
+f 13794 13714 13966
+f 13794 13966 14030
+f 13714 13622 13842
+f 13714 13842 13966
+f 13622 13494 13738
+f 13622 13738 13842
+f 13494 13394 13614
+f 13494 13614 13738
+f 13394 13226 13454
+f 13394 13454 13614
+f 13226 13086 13314
+f 13226 13314 13454
+f 13086 12918 13154
+f 13086 13154 13314
+f 12918 12762 12966
+f 12918 12966 13154
+f 12762 12562 12814
+f 12762 12814 12966
+f 12562 12390 12586
+f 12562 12586 12814
+f 12390 12174 12406
+f 12390 12406 12586
+f 12174 11962 12166
+f 12174 12166 12406
+f 11962 11718 11906
+f 11962 11906 12166
+f 11718 11470 11670
+f 11718 11670 11906
+f 11470 11202 11414
+f 11470 11414 11670
+f 11202 10942 11114
+f 11202 11114 11414
+f 10942 10646 10838
+f 10942 10838 11114
+f 10646 10346 10546
+f 10646 10546 10838
+f 10346 10038 10218
+f 10346 10218 10546
+f 10038 9726 9878
+f 10038 9878 10218
+f 9726 9370 9522
+f 9726 9522 9878
+f 9370 8990 9166
+f 9370 9166 9522
+f 8990 8618 8798
+f 8990 8798 9166
+f 8618 8258 8378
+f 8618 8378 8798
+f 8258 7806 7958
+f 8258 7958 8378
+f 7806 7386 7522
+f 7806 7522 7958
+f 7386 6926 7098
+f 7386 7098 7522
+f 6926 6502 6590
+f 6926 6590 7098
+f 6502 5970 6082
+f 6502 6082 6590
+f 5970 5422 5526
+f 5970 5526 6082
+f 5422 4882 4978
+f 5422 4978 5526
+f 4882 4326 4466
+f 4882 4466 4978
+f 4326 3726 3790
+f 4326 3790 4466
+f 3726 3026 3074
+f 3726 3074 3790
+f 3026 2254 2286
+f 3026 2286 3074
+f 2254 1402 1418
+f 2254 1418 2286
+f 1417 2285 2333
+f 1417 2333 1473
+f 2285 3073 3121
+f 2285 3121 2333
+f 3073 3789 3821
+f 3073 3821 3121
+f 3789 4465 4497
+f 3789 4497 3821
+f 4465 4977 5105
+f 4465 5105 4497
+f 4977 5525 5629
+f 4977 5629 5105
+f 5525 6081 6153
+f 5525 6153 5629
+f 6081 6589 6685
+f 6081 6685 6153
+f 6589 7097 7209
+f 6589 7209 6685
+f 7097 7521 7661
+f 7097 7661 7209
+f 7521 7957 8109
+f 7521 8109 7661
+f 7957 8377 8505
+f 7957 8505 8109
+f 8377 8797 8917
+f 8377 8917 8505
+f 8797 9165 9313
+f 8797 9313 8917
+f 9165 9521 9701
+f 9165 9701 9313
+f 9521 9877 10045
+f 9521 10045 9701
+f 9877 10217 10377
+f 9877 10377 10045
+f 10217 10545 10701
+f 10217 10701 10377
+f 10545 10837 11033
+f 10545 11033 10701
+f 10837 11113 11329
+f 10837 11329 11033
+f 11113 11413 11573
+f 11113 11573 11329
+f 11413 11669 11849
+f 11413 11849 11573
+f 11669 11905 12129
+f 11669 12129 11849
+f 11905 12165 12349
+f 11905 12349 12129
+f 12165 12405 12569
+f 12165 12569 12349
+f 12405 12585 12821
+f 12405 12821 12569
+f 12585 12813 12989
+f 12585 12989 12821
+f 12813 12965 13185
+f 12813 13185 12989
+f 12965 13153 13353
+f 12965 13353 13185
+f 13153 13313 13517
+f 13153 13517 13353
+f 13313 13453 13689
+f 13313 13689 13517
+f 13453 13613 13809
+f 13453 13809 13689
+f 13613 13737 13957
+f 13613 13957 13809
+f 13737 13841 14053
+f 13737 14053 13957
+f 13841 13965 14173
+f 13841 14173 14053
+f 13965 14029 14265
+f 13965 14265 14173
+f 14029 14125 14337
+f 14029 14337 14265
+f 14125 14197 14433
+f 14125 14433 14337
+f 14197 14257 14477
+f 14197 14477 14433
+f 14257 14305 14509
+f 14257 14509 14477
+f 14305 14313 14541
+f 14305 14541 14509
+f 14313 14345 14581
+f 14313 14581 14541
+f 14345 14361 14597
+f 14345 14597 14581
+f 14361 14362 14598
+f 14361 14598 14597
+f 14362 14346 14582
+f 14362 14582 14598
+f 14346 14314 14542
+f 14346 14542 14582
+f 14314 14306 14510
+f 14314 14510 14542
+f 14306 14258 14478
+f 14306 14478 14510
+f 14258 14198 14434
+f 14258 14434 14478
+f 14198 14126 14338
+f 14198 14338 14434
+f 14126 14030 14266
+f 14126 14266 14338
+f 14030 13966 14174
+f 14030 14174 14266
+f 13966 13842 14054
+f 13966 14054 14174
+f 13842 13738 13958
+f 13842 13958 14054
+f 13738 13614 13810
+f 13738 13810 13958
+f 13614 13454 13690
+f 13614 13690 13810
+f 13454 13314 13518
+f 13454 13518 13690
+f 13314 13154 13354
+f 13314 13354 13518
+f 13154 12966 13186
+f 13154 13186 13354
+f 12966 12814 12990
+f 12966 12990 13186
+f 12814 12586 12822
+f 12814 12822 12990
+f 12586 12406 12570
+f 12586 12570 12822
+f 12406 12166 12350
+f 12406 12350 12570
+f 12166 11906 12130
+f 12166 12130 12350
+f 11906 11670 11850
+f 11906 11850 12130
+f 11670 11414 11574
+f 11670 11574 11850
+f 11414 11114 11330
+f 11414 11330 11574
+f 11114 10838 11034
+f 11114 11034 11330
+f 10838 10546 10702
+f 10838 10702 11034
+f 10546 10218 10378
+f 10546 10378 10702
+f 10218 9878 10046
+f 10218 10046 10378
+f 9878 9522 9702
+f 9878 9702 10046
+f 9522 9166 9314
+f 9522 9314 9702
+f 9166 8798 8918
+f 9166 8918 9314
+f 8798 8378 8506
+f 8798 8506 8918
+f 8378 7958 8110
+f 8378 8110 8506
+f 7958 7522 7662
+f 7958 7662 8110
+f 7522 7098 7210
+f 7522 7210 7662
+f 7098 6590 6686
+f 7098 6686 7210
+f 6590 6082 6154
+f 6590 6154 6686
+f 6082 5526 5630
+f 6082 5630 6154
+f 5526 4978 5106
+f 5526 5106 5630
+f 4978 4466 4498
+f 4978 4498 5106
+f 4466 3790 3822
+f 4466 3822 4498
+f 3790 3074 3122
+f 3790 3122 3822
+f 3074 2286 2334
+f 3074 2334 3122
+f 2286 1418 1474
+f 2286 1474 2334
+f 1473 2333 2373
+f 1473 2373 1497
+f 2333 3121 3153
+f 2333 3153 2373
+f 3121 3821 3893
+f 3121 3893 3153
+f 3821 4497 4561
+f 3821 4561 3893
+f 4497 5105 5197
+f 4497 5197 4561
+f 5105 5629 5749
+f 5105 5749 5197
+f 5629 6153 6265
+f 5629 6265 5749
+f 6153 6685 6789
+f 6153 6789 6265
+f 6685 7209 7281
+f 6685 7281 6789
+f 7209 7661 7781
+f 7209 7781 7281
+f 7661 8109 8241
+f 7661 8241 7781
+f 8109 8505 8681
+f 8109 8681 8241
+f 8505 8917 9061
+f 8505 9061 8681
+f 8917 9313 9441
+f 8917 9441 9061
+f 9313 9701 9829
+f 9313 9829 9441
+f 9701 10045 10193
+f 9701 10193 9829
+f 10045 10377 10561
+f 10045 10561 10193
+f 10377 10701 10861
+f 10377 10861 10561
+f 10701 11033 11169
+f 10701 11169 10861
+f 11033 11329 11485
+f 11033 11485 11169
+f 11329 11573 11793
+f 11329 11793 11485
+f 11573 11849 12033
+f 11573 12033 11793
+f 11849 12129 12285
+f 11849 12285 12033
+f 12129 12349 12529
+f 12129 12529 12285
+f 12349 12569 12777
+f 12349 12777 12529
+f 12569 12821 12973
+f 12569 12973 12777
+f 12821 12989 13193
+f 12821 13193 12973
+f 12989 13185 13401
+f 12989 13401 13193
+f 13185 13353 13557
+f 13185 13557 13401
+f 13353 13517 13721
+f 13353 13721 13557
+f 13517 13689 13881
+f 13517 13881 13721
+f 13689 13809 14013
+f 13689 14013 13881
+f 13809 13957 14149
+f 13809 14149 14013
+f 13957 14053 14273
+f 13957 14273 14149
+f 14053 14173 14369
+f 14053 14369 14273
+f 14173 14265 14469
+f 14173 14469 14369
+f 14265 14337 14549
+f 14265 14549 14469
+f 14337 14433 14621
+f 14337 14621 14549
+f 14433 14477 14681
+f 14433 14681 14621
+f 14477 14509 14729
+f 14477 14729 14681
+f 14509 14541 14753
+f 14509 14753 14729
+f 14541 14581 14785
+f 14541 14785 14753
+f 14581 14597 14793
+f 14581 14793 14785
+f 14597 14598 14794
+f 14597 14794 14793
+f 14598 14582 14786
+f 14598 14786 14794
+f 14582 14542 14754
+f 14582 14754 14786
+f 14542 14510 14730
+f 14542 14730 14754
+f 14510 14478 14682
+f 14510 14682 14730
+f 14478 14434 14622
+f 14478 14622 14682
+f 14434 14338 14550
+f 14434 14550 14622
+f 14338 14266 14470
+f 14338 14470 14550
+f 14266 14174 14370
+f 14266 14370 14470
+f 14174 14054 14274
+f 14174 14274 14370
+f 14054 13958 14150
+f 14054 14150 14274
+f 13958 13810 14014
+f 13958 14014 14150
+f 13810 13690 13882
+f 13810 13882 14014
+f 13690 13518 13722
+f 13690 13722 13882
+f 13518 13354 13558
+f 13518 13558 13722
+f 13354 13186 13402
+f 13354 13402 13558
+f 13186 12990 13194
+f 13186 13194 13402
+f 12990 12822 12974
+f 12990 12974 13194
+f 12822 12570 12778
+f 12822 12778 12974
+f 12570 12350 12530
+f 12570 12530 12778
+f 12350 12130 12286
+f 12350 12286 12530
+f 12130 11850 12034
+f 12130 12034 12286
+f 11850 11574 11794
+f 11850 11794 12034
+f 11574 11330 11486
+f 11574 11486 11794
+f 11330 11034 11170
+f 11330 11170 11486
+f 11034 10702 10862
+f 11034 10862 11170
+f 10702 10378 10562
+f 10702 10562 10862
+f 10378 10046 10194
+f 10378 10194 10562
+f 10046 9702 9830
+f 10046 9830 10194
+f 9702 9314 9442
+f 9702 9442 9830
+f 9314 8918 9062
+f 9314 9062 9442
+f 8918 8506 8682
+f 8918 8682 9062
+f 8506 8110 8242
+f 8506 8242 8682
+f 8110 7662 7782
+f 8110 7782 8242
+f 7662 7210 7282
+f 7662 7282 7782
+f 7210 6686 6790
+f 7210 6790 7282
+f 6686 6154 6266
+f 6686 6266 6790
+f 6154 5630 5750
+f 6154 5750 6266
+f 5630 5106 5198
+f 5630 5198 5750
+f 5106 4498 4562
+f 5106 4562 5198
+f 4498 3822 3894
+f 4498 3894 4562
+f 3822 3122 3154
+f 3822 3154 3894
+f 3122 2334 2374
+f 3122 2374 3154
+f 2334 1474 1498
+f 2334 1498 2374
+f 1497 2373 2405
+f 1497 2405 1521
+f 2373 3153 3185
+f 2373 3185 2405
+f 3153 3893 3917
+f 3153 3917 3185
+f 3893 4561 4625
+f 3893 4625 3917
+f 4561 5197 5261
+f 4561 5261 4625
+f 5197 5749 5865
+f 5197 5865 5261
+f 5749 6265 6385
+f 5749 6385 5865
+f 6265 6789 6885
+f 6265 6885 6385
+f 6789 7281 7409
+f 6789 7409 6885
+f 7281 7781 7853
+f 7281 7853 7409
+f 7781 8241 8337
+f 7781 8337 7853
+f 8241 8681 8789
+f 8241 8789 8337
+f 8681 9061 9221
+f 8681 9221 8789
+f 9061 9441 9593
+f 9061 9593 9221
+f 9441 9829 9949
+f 9441 9949 9593
+f 9829 10193 10337
+f 9829 10337 9949
+f 10193 10561 10677
+f 10193 10677 10337
+f 10561 10861 11041
+f 10561 11041 10677
+f 10861 11169 11361
+f 10861 11361 11041
+f 11169 11485 11637
+f 11169 11637 11361
+f 11485 11793 11921
+f 11485 11921 11637
+f 11793 12033 12213
+f 11793 12213 11921
+f 12033 12285 12473
+f 12033 12473 12213
+f 12285 12529 12705
+f 12285 12705 12473
+f 12529 12777 12933
+f 12529 12933 12705
+f 12777 12973 13177
+f 12777 13177 12933
+f 12973 13193 13361
+f 12973 13361 13177
+f 13193 13401 13565
+f 13193 13565 13361
+f 13401 13557 13745
+f 13401 13745 13565
+f 13557 13721 13913
+f 13557 13913 13745
+f 13721 13881 14061
+f 13721 14061 13913
+f 13881 14013 14217
+f 13881 14217 14061
+f 14013 14149 14321
+f 14013 14321 14217
+f 14149 14273 14461
+f 14149 14461 14321
+f 14273 14369 14573
+f 14273 14573 14461
+f 14369 14469 14673
+f 14369 14673 14573
+f 14469 14549 14737
+f 14469 14737 14673
+f 14549 14621 14825
+f 14549 14825 14737
+f 14621 14681 14893
+f 14621 14893 14825
+f 14681 14729 14917
+f 14681 14917 14893
+f 14729 14753 14949
+f 14729 14949 14917
+f 14753 14785 14989
+f 14753 14989 14949
+f 14785 14793 14997
+f 14785 14997 14989
+f 14793 14794 14998
+f 14793 14998 14997
+f 14794 14786 14990
+f 14794 14990 14998
+f 14786 14754 14950
+f 14786 14950 14990
+f 14754 14730 14918
+f 14754 14918 14950
+f 14730 14682 14894
+f 14730 14894 14918
+f 14682 14622 14826
+f 14682 14826 14894
+f 14622 14550 14738
+f 14622 14738 14826
+f 14550 14470 14674
+f 14550 14674 14738
+f 14470 14370 14574
+f 14470 14574 14674
+f 14370 14274 14462
+f 14370 14462 14574
+f 14274 14150 14322
+f 14274 14322 14462
+f 14150 14014 14218
+f 14150 14218 14322
+f 14014 13882 14062
+f 14014 14062 14218
+f 13882 13722 13914
+f 13882 13914 14062
+f 13722 13558 13746
+f 13722 13746 13914
+f 13558 13402 13566
+f 13558 13566 13746
+f 13402 13194 13362
+f 13402 13362 13566
+f 13194 12974 13178
+f 13194 13178 13362
+f 12974 12778 12934
+f 12974 12934 13178
+f 12778 12530 12706
+f 12778 12706 12934
+f 12530 12286 12474
+f 12530 12474 12706
+f 12286 12034 12214
+f 12286 12214 12474
+f 12034 11794 11922
+f 12034 11922 12214
+f 11794 11486 11638
+f 11794 11638 11922
+f 11486 11170 11362
+f 11486 11362 11638
+f 11170 10862 11042
+f 11170 11042 11362
+f 10862 10562 10678
+f 10862 10678 11042
+f 10562 10194 10338
+f 10562 10338 10678
+f 10194 9830 9950
+f 10194 9950 10338
+f 9830 9442 9594
+f 9830 9594 9950
+f 9442 9062 9222
+f 9442 9222 9594
+f 9062 8682 8790
+f 9062 8790 9222
+f 8682 8242 8338
+f 8682 8338 8790
+f 8242 7782 7854
+f 8242 7854 8338
+f 7782 7282 7410
+f 7782 7410 7854
+f 7282 6790 6886
+f 7282 6886 7410
+f 6790 6266 6386
+f 6790 6386 6886
+f 6266 5750 5866
+f 6266 5866 6386
+f 5750 5198 5262
+f 5750 5262 5866
+f 5198 4562 4626
+f 5198 4626 5262
+f 4562 3894 3918
+f 4562 3918 4626
+f 3894 3154 3186
+f 3894 3186 3918
+f 3154 2374 2406
+f 3154 2406 3186
+f 2374 1498 1522
+f 2374 1522 2406
+f 1521 2405 2453
+f 1521 2453 1553
+f 2405 3185 3249
+f 2405 3249 2453
+f 3185 3917 3989
+f 3185 3989 3249
+f 3917 4625 4657
+f 3917 4657 3989
+f 4625 5261 5309
+f 4625 5309 4657
+f 5261 5865 5913
+f 5261 5913 5309
+f 5865 6385 6493
+f 5865 6493 5913
+f 6385 6885 7021
+f 6385 7021 6493
+f 6885 7409 7489
+f 6885 7489 7021
+f 7409 7853 7981
+f 7409 7981 7489
+f 7853 8337 8433
+f 7853 8433 7981
+f 8337 8789 8877
+f 8337 8877 8433
+f 8789 9221 9321
+f 8789 9321 8877
+f 9221 9593 9741
+f 9221 9741 9321
+f 9593 9949 10125
+f 9593 10125 9741
+f 9949 10337 10465
+f 9949 10465 10125
+f 10337 10677 10829
+f 10337 10829 10465
+f 10677 11041 11153
+f 10677 11153 10829
+f 11041 11361 11493
+f 11041 11493 11153
+f 11361 11637 11809
+f 11361 11809 11493
+f 11637 11921 12089
+f 11637 12089 11809
+f 11921 12213 12365
+f 11921 12365 12089
+f 12213 12473 12625
+f 12213 12625 12365
+f 12473 12705 12877
+f 12473 12877 12625
+f 12705 12933 13113
+f 12705 13113 12877
+f 12933 13177 13329
+f 12933 13329 13113
+f 13177 13361 13525
+f 13177 13525 13329
+f 13361 13565 13729
+f 13361 13729 13525
+f 13565 13745 13921
+f 13565 13921 13729
+f 13745 13913 14085
+f 13745 14085 13921
+f 13913 14061 14241
+f 13913 14241 14085
+f 14061 14217 14393
+f 14061 14393 14241
+f 14217 14321 14517
+f 14217 14517 14393
+f 14321 14461 14637
+f 14321 14637 14517
+f 14461 14573 14745
+f 14461 14745 14637
+f 14573 14673 14857
+f 14573 14857 14745
+f 14673 14737 14925
+f 14673 14925 14857
+f 14737 14825 15005
+f 14737 15005 14925
+f 14825 14893 15061
+f 14825 15061 15005
+f 14893 14917 15121
+f 14893 15121 15061
+f 14917 14949 15137
+f 14917 15137 15121
+f 14949 14989 15161
+f 14949 15161 15137
+f 14989 14997 15177
+f 14989 15177 15161
+f 14997 14998 15178
+f 14997 15178 15177
+f 14998 14990 15162
+f 14998 15162 15178
+f 14990 14950 15138
+f 14990 15138 15162
+f 14950 14918 15122
+f 14950 15122 15138
+f 14918 14894 15062
+f 14918 15062 15122
+f 14894 14826 15006
+f 14894 15006 15062
+f 14826 14738 14926
+f 14826 14926 15006
+f 14738 14674 14858
+f 14738 14858 14926
+f 14674 14574 14746
+f 14674 14746 14858
+f 14574 14462 14638
+f 14574 14638 14746
+f 14462 14322 14518
+f 14462 14518 14638
+f 14322 14218 14394
+f 14322 14394 14518
+f 14218 14062 14242
+f 14218 14242 14394
+f 14062 13914 14086
+f 14062 14086 14242
+f 13914 13746 13922
+f 13914 13922 14086
+f 13746 13566 13730
+f 13746 13730 13922
+f 13566 13362 13526
+f 13566 13526 13730
+f 13362 13178 13330
+f 13362 13330 13526
+f 13178 12934 13114
+f 13178 13114 13330
+f 12934 12706 12878
+f 12934 12878 13114
+f 12706 12474 12626
+f 12706 12626 12878
+f 12474 12214 12366
+f 12474 12366 12626
+f 12214 11922 12090
+f 12214 12090 12366
+f 11922 11638 11810
+f 11922 11810 12090
+f 11638 11362 11494
+f 11638 11494 11810
+f 11362 11042 11154
+f 11362 11154 11494
+f 11042 10678 10830
+f 11042 10830 11154
+f 10678 10338 10466
+f 10678 10466 10830
+f 10338 9950 10126
+f 10338 10126 10466
+f 9950 9594 9742
+f 9950 9742 10126
+f 9594 9222 9322
+f 9594 9322 9742
+f 9222 8790 8878
+f 9222 8878 9322
+f 8790 8338 8434
+f 8790 8434 8878
+f 8338 7854 7982
+f 8338 7982 8434
+f 7854 7410 7490
+f 7854 7490 7982
+f 7410 6886 7022
+f 7410 7022 7490
+f 6886 6386 6494
+f 6886 6494 7022
+f 6386 5866 5914
+f 6386 5914 6494
+f 5866 5262 5310
+f 5866 5310 5914
+f 5262 4626 4658
+f 5262 4658 5310
+f 4626 3918 3990
+f 4626 3990 4658
+f 3918 3186 3250
+f 3918 3250 3990
+f 3186 2406 2454
+f 3186 2454 3250
+f 2406 1522 1554
+f 2406 1554 2454
+f 1553 2453 2469
+f 1553 2469 1569
+f 2453 3249 3281
+f 2453 3281 2469
+f 3249 3989 4021
+f 3249 4021 3281
+f 3989 4657 4737
+f 3989 4737 4021
+f 4657 5309 5357
+f 4657 5357 4737
+f 5309 5913 5977
+f 5309 5977 5357
+f 5913 6493 6549
+f 5913 6549 5977
+f 6493 7021 7113
+f 6493 7113 6549
+f 7021 7489 7609
+f 7021 7609 7113
+f 7489 7981 8077
+f 7489 8077 7609
+f 7981 8433 8537
+f 7981 8537 8077
+f 8433 8877 8997
+f 8433 8997 8537
+f 8877 9321 9401
+f 8877 9401 8997
+f 9321 9741 9845
+f 9321 9845 9401
+f 9741 10125 10233
+f 9741 10233 9845
+f 10125 10465 10621
+f 10125 10621 10233
+f 10465 10829 10957
+f 10465 10957 10621
+f 10829 11153 11297
+f 10829 11297 10957
+f 11153 11493 11597
+f 11153 11597 11297
+f 11493 11809 11913
+f 11493 11913 11597
+f 11809 12089 12229
+f 11809 12229 11913
+f 12089 12365 12513
+f 12089 12513 12229
+f 12365 12625 12769
+f 12365 12769 12513
+f 12625 12877 13029
+f 12625 13029 12769
+f 12877 13113 13241
+f 12877 13241 13029
+f 13113 13329 13469
+f 13113 13469 13241
+f 13329 13525 13697
+f 13329 13697 13469
+f 13525 13729 13897
+f 13525 13897 13697
+f 13729 13921 14077
+f 13729 14077 13897
+f 13921 14085 14249
+f 13921 14249 14077
+f 14085 14241 14417
+f 14085 14417 14249
+f 14241 14393 14533
+f 14241 14533 14417
+f 14393 14517 14689
+f 14393 14689 14533
+f 14517 14637 14801
+f 14517 14801 14689
+f 14637 14745 14909
+f 14637 14909 14801
+f 14745 14857 15021
+f 14745 15021 14909
+f 14857 14925 15097
+f 14857 15097 15021
+f 14925 15005 15169
+f 14925 15169 15097
+f 15005 15061 15241
+f 15005 15241 15169
+f 15061 15121 15285
+f 15061 15285 15241
+f 15121 15137 15301
+f 15121 15301 15285
+f 15137 15161 15333
+f 15137 15333 15301
+f 15161 15177 15357
+f 15161 15357 15333
+f 15177 15178 15358
+f 15177 15358 15357
+f 15178 15162 15334
+f 15178 15334 15358
+f 15162 15138 15302
+f 15162 15302 15334
+f 15138 15122 15286
+f 15138 15286 15302
+f 15122 15062 15242
+f 15122 15242 15286
+f 15062 15006 15170
+f 15062 15170 15242
+f 15006 14926 15098
+f 15006 15098 15170
+f 14926 14858 15022
+f 14926 15022 15098
+f 14858 14746 14910
+f 14858 14910 15022
+f 14746 14638 14802
+f 14746 14802 14910
+f 14638 14518 14690
+f 14638 14690 14802
+f 14518 14394 14534
+f 14518 14534 14690
+f 14394 14242 14418
+f 14394 14418 14534
+f 14242 14086 14250
+f 14242 14250 14418
+f 14086 13922 14078
+f 14086 14078 14250
+f 13922 13730 13898
+f 13922 13898 14078
+f 13730 13526 13698
+f 13730 13698 13898
+f 13526 13330 13470
+f 13526 13470 13698
+f 13330 13114 13242
+f 13330 13242 13470
+f 13114 12878 13030
+f 13114 13030 13242
+f 12878 12626 12770
+f 12878 12770 13030
+f 12626 12366 12514
+f 12626 12514 12770
+f 12366 12090 12230
+f 12366 12230 12514
+f 12090 11810 11914
+f 12090 11914 12230
+f 11810 11494 11598
+f 11810 11598 11914
+f 11494 11154 11298
+f 11494 11298 11598
+f 11154 10830 10958
+f 11154 10958 11298
+f 10830 10466 10622
+f 10830 10622 10958
+f 10466 10126 10234
+f 10466 10234 10622
+f 10126 9742 9846
+f 10126 9846 10234
+f 9742 9322 9402
+f 9742 9402 9846
+f 9322 8878 8998
+f 9322 8998 9402
+f 8878 8434 8538
+f 8878 8538 8998
+f 8434 7982 8078
+f 8434 8078 8538
+f 7982 7490 7610
+f 7982 7610 8078
+f 7490 7022 7114
+f 7490 7114 7610
+f 7022 6494 6550
+f 7022 6550 7114
+f 6494 5914 5978
+f 6494 5978 6550
+f 5914 5310 5358
+f 5914 5358 5978
+f 5310 4658 4738
+f 5310 4738 5358
+f 4658 3990 4022
+f 4658 4022 4738
+f 3990 3250 3282
+f 3990 3282 4022
+f 3250 2454 2470
+f 3250 2470 3282
+f 2454 1554 1570
+f 2454 1570 2470
+f 1569 2469 2485
+f 1569 2485 1585
+f 2469 3281 3321
+f 2469 3321 2485
+f 3281 4021 4053
+f 3281 4053 3321
+f 4021 4737 4753
+f 4021 4753 4053
+f 4737 5357 5389
+f 4737 5389 4753
+f 5357 5977 6049
+f 5357 6049 5389
+f 5977 6549 6637
+f 5977 6637 6049
+f 6549 7113 7185
+f 6549 7185 6637
+f 7113 7609 7717
+f 7113 7717 7185
+f 7609 8077 8201
+f 7609 8201 7717
+f 8077 8537 8673
+f 8077 8673 8201
+f 8537 8997 9085
+f 8537 9085 8673
+f 8997 9401 9537
+f 8997 9537 9085
+f 9401 9845 9925
+f 9401 9925 9537
+f 9845 10233 10321
+f 9845 10321 9925
+f 10233 10621 10709
+f 10233 10709 10321
+f 10621 10957 11081
+f 10621 11081 10709
+f 10957 11297 11429
+f 10957 11429 11081
+f 11297 11597 11757
+f 11297 11757 11429
+f 11597 11913 12057
+f 11597 12057 11757
+f 11913 12229 12341
+f 11913 12341 12057
+f 12229 12513 12633
+f 12229 12633 12341
+f 12513 12769 12893
+f 12513 12893 12633
+f 12769 13029 13161
+f 12769 13161 12893
+f 13029 13241 13421
+f 13029 13421 13161
+f 13241 13469 13629
+f 13241 13629 13421
+f 13469 13697 13817
+f 13469 13817 13629
+f 13697 13897 14021
+f 13697 14021 13817
+f 13897 14077 14225
+f 13897 14225 14021
+f 14077 14249 14401
+f 14077 14401 14225
+f 14249 14417 14557
+f 14249 14557 14401
+f 14417 14533 14713
+f 14417 14713 14557
+f 14533 14689 14833
+f 14533 14833 14713
+f 14689 14801 14957
+f 14689 14957 14833
+f 14801 14909 15073
+f 14801 15073 14957
+f 14909 15021 15153
+f 14909 15153 15073
+f 15021 15097 15261
+f 15021 15261 15153
+f 15097 15169 15325
+f 15097 15325 15261
+f 15169 15241 15389
+f 15169 15389 15325
+f 15241 15285 15433
+f 15241 15433 15389
+f 15285 15301 15481
+f 15285 15481 15433
+f 15301 15333 15497
+f 15301 15497 15481
+f 15333 15357 15505
+f 15333 15505 15497
+f 15357 15358 15506
+f 15357 15506 15505
+f 15358 15334 15498
+f 15358 15498 15506
+f 15334 15302 15482
+f 15334 15482 15498
+f 15302 15286 15434
+f 15302 15434 15482
+f 15286 15242 15390
+f 15286 15390 15434
+f 15242 15170 15326
+f 15242 15326 15390
+f 15170 15098 15262
+f 15170 15262 15326
+f 15098 15022 15154
+f 15098 15154 15262
+f 15022 14910 15074
+f 15022 15074 15154
+f 14910 14802 14958
+f 14910 14958 15074
+f 14802 14690 14834
+f 14802 14834 14958
+f 14690 14534 14714
+f 14690 14714 14834
+f 14534 14418 14558
+f 14534 14558 14714
+f 14418 14250 14402
+f 14418 14402 14558
+f 14250 14078 14226
+f 14250 14226 14402
+f 14078 13898 14022
+f 14078 14022 14226
+f 13898 13698 13818
+f 13898 13818 14022
+f 13698 13470 13630
+f 13698 13630 13818
+f 13470 13242 13422
+f 13470 13422 13630
+f 13242 13030 13162
+f 13242 13162 13422
+f 13030 12770 12894
+f 13030 12894 13162
+f 12770 12514 12634
+f 12770 12634 12894
+f 12514 12230 12342
+f 12514 12342 12634
+f 12230 11914 12058
+f 12230 12058 12342
+f 11914 11598 11758
+f 11914 11758 12058
+f 11598 11298 11430
+f 11598 11430 11758
+f 11298 10958 11082
+f 11298 11082 11430
+f 10958 10622 10710
+f 10958 10710 11082
+f 10622 10234 10322
+f 10622 10322 10710
+f 10234 9846 9926
+f 10234 9926 10322
+f 9846 9402 9538
+f 9846 9538 9926
+f 9402 8998 9086
+f 9402 9086 9538
+f 8998 8538 8674
+f 8998 8674 9086
+f 8538 8078 8202
+f 8538 8202 8674
+f 8078 7610 7718
+f 8078 7718 8202
+f 7610 7114 7186
+f 7610 7186 7718
+f 7114 6550 6638
+f 7114 6638 7186
+f 6550 5978 6050
+f 6550 6050 6638
+f 5978 5358 5390
+f 5978 5390 6050
+f 5358 4738 4754
+f 5358 4754 5390
+f 4738 4022 4054
+f 4738 4054 4754
+f 4022 3282 3322
+f 4022 3322 4054
+f 3282 2470 2486
+f 3282 2486 3322
+f 2470 1570 1586
+f 2470 1586 2486
+f 1585 2485 2533
+f 1585 2533 1617
+f 2485 3321 3353
+f 2485 3353 2533
+f 3321 4053 4125
+f 3321 4125 3353
+f 4053 4753 4801
+f 4053 4801 4125
+f 4753 5389 5493
+f 4753 5493 4801
+f 5389 6049 6097
+f 5389 6097 5493
+f 6049 6637 6677
+f 6049 6677 6097
+f 6637 7185 7233
+f 6637 7233 6677
+f 7185 7717 7773
+f 7185 7773 7233
+f 7717 8201 8289
+f 7717 8289 7773
+f 8201 8673 8741
+f 8201 8741 8289
+f 8673 9085 9213
+f 8673 9213 8741
+f 9085 9537 9633
+f 9085 9633 9213
+f 9537 9925 10053
+f 9537 10053 9633
+f 9925 10321 10417
+f 9925 10417 10053
+f 10321 10709 10813
+f 10321 10813 10417
+f 10709 11081 11177
+f 10709 11177 10813
+f 11081 11429 11533
+f 11081 11533 11177
+f 11429 11757 11857
+f 11429 11857 11533
+f 11757 12057 12189
+f 11757 12189 11857
+f 12057 12341 12489
+f 12057 12489 12189
+f 12341 12633 12753
+f 12341 12753 12489
+f 12633 12893 13053
+f 12633 13053 12753
+f 12893 13161 13273
+f 12893 13273 13053
+f 13161 13421 13509
+f 13161 13509 13273
+f 13421 13629 13769
+f 13421 13769 13509
+f 13629 13817 13981
+f 13629 13981 13769
+f 13817 14021 14165
+f 13817 14165 13981
+f 14021 14225 14353
+f 14021 14353 14165
+f 14225 14401 14525
+f 14225 14525 14353
+f 14401 14557 14705
+f 14401 14705 14525
+f 14557 14713 14841
+f 14557 14841 14705
+f 14713 14833 14981
+f 14713 14981 14841
+f 14833 14957 15105
+f 14833 15105 14981
+f 14957 15073 15209
+f 14957 15209 15105
+f 15073 15153 15293
+f 15073 15293 15209
+f 15153 15261 15397
+f 15153 15397 15293
+f 15261 15325 15465
+f 15261 15465 15397
+f 15325 15389 15529
+f 15325 15529 15465
+f 15389 15433 15589
+f 15389 15589 15529
+f 15433 15481 15613
+f 15433 15613 15589
+f 15481 15497 15629
+f 15481 15629 15613
+f 15497 15505 15661
+f 15497 15661 15629
+f 15505 15506 15662
+f 15505 15662 15661
+f 15506 15498 15630
+f 15506 15630 15662
+f 15498 15482 15614
+f 15498 15614 15630
+f 15482 15434 15590
+f 15482 15590 15614
+f 15434 15390 15530
+f 15434 15530 15590
+f 15390 15326 15466
+f 15390 15466 15530
+f 15326 15262 15398
+f 15326 15398 15466
+f 15262 15154 15294
+f 15262 15294 15398
+f 15154 15074 15210
+f 15154 15210 15294
+f 15074 14958 15106
+f 15074 15106 15210
+f 14958 14834 14982
+f 14958 14982 15106
+f 14834 14714 14842
+f 14834 14842 14982
+f 14714 14558 14706
+f 14714 14706 14842
+f 14558 14402 14526
+f 14558 14526 14706
+f 14402 14226 14354
+f 14402 14354 14526
+f 14226 14022 14166
+f 14226 14166 14354
+f 14022 13818 13982
+f 14022 13982 14166
+f 13818 13630 13770
+f 13818 13770 13982
+f 13630 13422 13510
+f 13630 13510 13770
+f 13422 13162 13274
+f 13422 13274 13510
+f 13162 12894 13054
+f 13162 13054 13274
+f 12894 12634 12754
+f 12894 12754 13054
+f 12634 12342 12490
+f 12634 12490 12754
+f 12342 12058 12190
+f 12342 12190 12490
+f 12058 11758 11858
+f 12058 11858 12190
+f 11758 11430 11534
+f 11758 11534 11858
+f 11430 11082 11178
+f 11430 11178 11534
+f 11082 10710 10814
+f 11082 10814 11178
+f 10710 10322 10418
+f 10710 10418 10814
+f 10322 9926 10054
+f 10322 10054 10418
+f 9926 9538 9634
+f 9926 9634 10054
+f 9538 9086 9214
+f 9538 9214 9634
+f 9086 8674 8742
+f 9086 8742 9214
+f 8674 8202 8290
+f 8674 8290 8742
+f 8202 7718 7774
+f 8202 7774 8290
+f 7718 7186 7234
+f 7718 7234 7774
+f 7186 6638 6678
+f 7186 6678 7234
+f 6638 6050 6098
+f 6638 6098 6678
+f 6050 5390 5494
+f 6050 5494 6098
+f 5390 4754 4802
+f 5390 4802 5494
+f 4754 4054 4126
+f 4754 4126 4802
+f 4054 3322 3354
+f 4054 3354 4126
+f 3322 2486 2534
+f 3322 2534 3354
+f 2486 1586 1618
+f 2486 1618 2534
+f 1617 2533 2581
+f 1617 2581 1649
+f 2533 3353 3401
+f 2533 3401 2581
+f 3353 4125 4165
+f 3353 4165 3401
+f 4125 4801 4849
+f 4125 4849 4165
+f 4801 5493 5517
+f 4801 5517 4849
+f 5493 6097 6121
+f 5493 6121 5517
+f 6097 6677 6717
+f 6097 6717 6121
+f 6677 7233 7289
+f 6677 7289 6717
+f 7233 7773 7829
+f 7233 7829 7289
+f 7773 8289 8329
+f 7773 8329 7829
+f 8289 8741 8837
+f 8289 8837 8329
+f 8741 9213 9281
+f 8741 9281 8837
+f 9213 9633 9733
+f 9213 9733 9281
+f 9633 10053 10153
+f 9633 10153 9733
+f 10053 10417 10553
+f 10053 10553 10153
+f 10417 10813 10917
+f 10417 10917 10553
+f 10813 11177 11281
+f 10813 11281 10917
+f 11177 11533 11621
+f 11177 11621 11281
+f 11533 11857 11969
+f 11533 11969 11621
+f 11857 12189 12253
+f 11857 12253 11969
+f 12189 12489 12577
+f 12189 12577 12253
+f 12489 12753 12869
+f 12489 12869 12577
+f 12753 13053 13145
+f 12753 13145 12869
+f 13053 13273 13429
+f 13053 13429 13145
+f 13273 13509 13653
+f 13273 13653 13429
+f 13509 13769 13873
+f 13509 13873 13653
+f 13769 13981 14093
+f 13769 14093 13873
+f 13981 14165 14281
+f 13981 14281 14093
+f 14165 14353 14485
+f 14165 14485 14281
+f 14353 14525 14653
+f 14353 14653 14485
+f 14525 14705 14817
+f 14525 14817 14653
+f 14705 14841 14965
+f 14705 14965 14817
+f 14841 14981 15113
+f 14841 15113 14965
+f 14981 15105 15233
+f 14981 15233 15113
+f 15105 15209 15341
+f 15105 15341 15233
+f 15209 15293 15441
+f 15209 15441 15341
+f 15293 15397 15521
+f 15293 15521 15441
+f 15397 15465 15597
+f 15397 15597 15521
+f 15465 15529 15677
+f 15465 15677 15597
+f 15529 15589 15713
+f 15529 15713 15677
+f 15589 15613 15745
+f 15589 15745 15713
+f 15613 15629 15769
+f 15613 15769 15745
+f 15629 15661 15793
+f 15629 15793 15769
+f 15661 15662 15794
+f 15661 15794 15793
+f 15662 15630 15770
+f 15662 15770 15794
+f 15630 15614 15746
+f 15630 15746 15770
+f 15614 15590 15714
+f 15614 15714 15746
+f 15590 15530 15678
+f 15590 15678 15714
+f 15530 15466 15598
+f 15530 15598 15678
+f 15466 15398 15522
+f 15466 15522 15598
+f 15398 15294 15442
+f 15398 15442 15522
+f 15294 15210 15342
+f 15294 15342 15442
+f 15210 15106 15234
+f 15210 15234 15342
+f 15106 14982 15114
+f 15106 15114 15234
+f 14982 14842 14966
+f 14982 14966 15114
+f 14842 14706 14818
+f 14842 14818 14966
+f 14706 14526 14654
+f 14706 14654 14818
+f 14526 14354 14486
+f 14526 14486 14654
+f 14354 14166 14282
+f 14354 14282 14486
+f 14166 13982 14094
+f 14166 14094 14282
+f 13982 13770 13874
+f 13982 13874 14094
+f 13770 13510 13654
+f 13770 13654 13874
+f 13510 13274 13430
+f 13510 13430 13654
+f 13274 13054 13146
+f 13274 13146 13430
+f 13054 12754 12870
+f 13054 12870 13146
+f 12754 12490 12578
+f 12754 12578 12870
+f 12490 12190 12254
+f 12490 12254 12578
+f 12190 11858 11970
+f 12190 11970 12254
+f 11858 11534 11622
+f 11858 11622 11970
+f 11534 11178 11282
+f 11534 11282 11622
+f 11178 10814 10918
+f 11178 10918 11282
+f 10814 10418 10554
+f 10814 10554 10918
+f 10418 10054 10154
+f 10418 10154 10554
+f 10054 9634 9734
+f 10054 9734 10154
+f 9634 9214 9282
+f 9634 9282 9734
+f 9214 8742 8838
+f 9214 8838 9282
+f 8742 8290 8330
+f 8742 8330 8838
+f 8290 7774 7830
+f 8290 7830 8330
+f 7774 7234 7290
+f 7774 7290 7830
+f 7234 6678 6718
+f 7234 6718 7290
+f 6678 6098 6122
+f 6678 6122 6718
+f 6098 5494 5518
+f 6098 5518 6122
+f 5494 4802 4850
+f 5494 4850 5518
+f 4802 4126 4166
+f 4802 4166 4850
+f 4126 3354 3402
+f 4126 3402 4166
+f 3354 2534 2582
+f 3354 2582 3402
+f 2534 1618 1650
+f 2534 1650 2582
+f 1649 2581 2597
+f 1649 2597 1665
+f 2581 3401 3433
+f 2581 3433 2597
+f 3401 4165 4181
+f 3401 4181 3433
+f 4165 4849 4913
+f 4165 4913 4181
+f 4849 5517 5541
+f 4849 5541 4913
+f 5517 6121 6193
+f 5517 6193 5541
+f 6121 6717 6797
+f 6121 6797 6193
+f 6717 7289 7353
+f 6717 7353 6797
+f 7289 7829 7869
+f 7289 7869 7353
+f 7829 8329 8385
+f 7829 8385 7869
+f 8329 8837 8869
+f 8329 8869 8385
+f 8837 9281 9361
+f 8837 9361 8869
+f 9281 9733 9789
+f 9281 9789 9361
+f 9733 10153 10225
+f 9733 10225 9789
+f 10153 10553 10629
+f 10153 10629 10225
+f 10553 10917 11025
+f 10553 11025 10629
+f 10917 11281 11385
+f 10917 11385 11025
+f 11281 11621 11733
+f 11281 11733 11385
+f 11621 11969 12065
+f 11621 12065 11733
+f 11969 12253 12381
+f 11969 12381 12065
+f 12253 12577 12673
+f 12253 12673 12381
+f 12577 12869 12949
+f 12577 12949 12673
+f 12869 13145 13233
+f 12869 13233 12949
+f 13145 13429 13501
+f 13145 13501 13233
+f 13429 13653 13753
+f 13429 13753 13501
+f 13653 13873 13989
+f 13653 13989 13753
+f 13873 14093 14205
+f 13873 14205 13989
+f 14093 14281 14409
+f 14093 14409 14205
+f 14281 14485 14605
+f 14281 14605 14409
+f 14485 14653 14761
+f 14485 14761 14605
+f 14653 14817 14933
+f 14653 14933 14761
+f 14817 14965 15081
+f 14817 15081 14933
+f 14965 15113 15225
+f 14965 15225 15081
+f 15113 15233 15349
+f 15113 15349 15225
+f 15233 15341 15457
+f 15233 15457 15349
+f 15341 15441 15553
+f 15341 15553 15457
+f 15441 15521 15637
+f 15441 15637 15553
+f 15521 15597 15721
+f 15521 15721 15637
+f 15597 15677 15777
+f 15597 15777 15721
+f 15677 15713 15833
+f 15677 15833 15777
+f 15713 15745 15869
+f 15713 15869 15833
+f 15745 15769 15885
+f 15745 15885 15869
+f 15769 15793 15909
+f 15769 15909 15885
+f 15793 15794 15910
+f 15793 15910 15909
+f 15794 15770 15886
+f 15794 15886 15910
+f 15770 15746 15870
+f 15770 15870 15886
+f 15746 15714 15834
+f 15746 15834 15870
+f 15714 15678 15778
+f 15714 15778 15834
+f 15678 15598 15722
+f 15678 15722 15778
+f 15598 15522 15638
+f 15598 15638 15722
+f 15522 15442 15554
+f 15522 15554 15638
+f 15442 15342 15458
+f 15442 15458 15554
+f 15342 15234 15350
+f 15342 15350 15458
+f 15234 15114 15226
+f 15234 15226 15350
+f 15114 14966 15082
+f 15114 15082 15226
+f 14966 14818 14934
+f 14966 14934 15082
+f 14818 14654 14762
+f 14818 14762 14934
+f 14654 14486 14606
+f 14654 14606 14762
+f 14486 14282 14410
+f 14486 14410 14606
+f 14282 14094 14206
+f 14282 14206 14410
+f 14094 13874 13990
+f 14094 13990 14206
+f 13874 13654 13754
+f 13874 13754 13990
+f 13654 13430 13502
+f 13654 13502 13754
+f 13430 13146 13234
+f 13430 13234 13502
+f 13146 12870 12950
+f 13146 12950 13234
+f 12870 12578 12674
+f 12870 12674 12950
+f 12578 12254 12382
+f 12578 12382 12674
+f 12254 11970 12066
+f 12254 12066 12382
+f 11970 11622 11734
+f 11970 11734 12066
+f 11622 11282 11386
+f 11622 11386 11734
+f 11282 10918 11026
+f 11282 11026 11386
+f 10918 10554 10630
+f 10918 10630 11026
+f 10554 10154 10226
+f 10554 10226 10630
+f 10154 9734 9790
+f 10154 9790 10226
+f 9734 9282 9362
+f 9734 9362 9790
+f 9282 8838 8870
+f 9282 8870 9362
+f 8838 8330 8386
+f 8838 8386 8870
+f 8330 7830 7870
+f 8330 7870 8386
+f 7830 7290 7354
+f 7830 7354 7870
+f 7290 6718 6798
+f 7290 6798 7354
+f 6718 6122 6194
+f 6718 6194 6798
+f 6122 5518 5542
+f 6122 5542 6194
+f 5518 4850 4914
+f 5518 4914 5542
+f 4850 4166 4182
+f 4850 4182 4914
+f 4166 3402 3434
+f 4166 3434 4182
+f 3402 2582 2598
+f 3402 2598 3434
+f 2582 1650 1666
+f 2582 1666 2598
+f 1665 2597 2629
+f 1665 2629 1681
+f 2597 3433 3465
+f 2597 3465 2629
+f 3433 4181 4229
+f 3433 4229 3465
+f 4181 4913 4937
+f 4181 4937 4229
+f 4913 5541 5613
+f 4913 5613 4937
+f 5541 6193 6241
+f 5541 6241 5613
+f 6193 6797 6845
+f 6193 6845 6241
+f 6797 7353 7417
+f 6797 7417 6845
+f 7353 7869 7949
+f 7353 7949 7417
+f 7869 8385 8465
+f 7869 8465 7949
+f 8385 8869 8925
+f 8385 8925 8465
+f 8869 9361 9393
+f 8869 9393 8925
+f 9361 9789 9869
+f 9361 9869 9393
+f 9789 10225 10273
+f 9789 10273 9869
+f 10225 10629 10693
+f 10225 10693 10273
+f 10629 11025 11089
+f 10629 11089 10693
+f 11025 11385 11437
+f 11025 11437 11089
+f 11385 11733 11817
+f 11385 11817 11437
+f 11733 12065 12141
+f 11733 12141 11817
+f 12065 12381 12481
+f 12065 12481 12141
+f 12381 12673 12793
+f 12381 12793 12481
+f 12673 12949 13069
+f 12673 13069 12793
+f 12949 13233 13337
+f 12949 13337 13069
+f 13233 13501 13597
+f 13233 13597 13337
+f 13501 13753 13833
+f 13501 13833 13597
+f 13753 13989 14069
+f 13753 14069 13833
+f 13989 14205 14289
+f 13989 14289 14069
+f 14205 14409 14493
+f 14205 14493 14289
+f 14409 14605 14697
+f 14409 14697 14493
+f 14605 14761 14885
+f 14605 14885 14697
+f 14761 14933 15037
+f 14761 15037 14885
+f 14933 15081 15185
+f 14933 15185 15037
+f 15081 15225 15317
+f 15081 15317 15185
+f 15225 15349 15449
+f 15225 15449 15317
+f 15349 15457 15577
+f 15349 15577 15449
+f 15457 15553 15669
+f 15457 15669 15577
+f 15553 15637 15753
+f 15553 15753 15669
+f 15637 15721 15817
+f 15637 15817 15753
+f 15721 15777 15877
+f 15721 15877 15817
+f 15777 15833 15941
+f 15777 15941 15877
+f 15833 15869 15969
+f 15833 15969 15941
+f 15869 15885 16009
+f 15869 16009 15969
+f 15885 15909 16017
+f 15885 16017 16009
+f 15909 15910 16018
+f 15909 16018 16017
+f 15910 15886 16010
+f 15910 16010 16018
+f 15886 15870 15970
+f 15886 15970 16010
+f 15870 15834 15942
+f 15870 15942 15970
+f 15834 15778 15878
+f 15834 15878 15942
+f 15778 15722 15818
+f 15778 15818 15878
+f 15722 15638 15754
+f 15722 15754 15818
+f 15638 15554 15670
+f 15638 15670 15754
+f 15554 15458 15578
+f 15554 15578 15670
+f 15458 15350 15450
+f 15458 15450 15578
+f 15350 15226 15318
+f 15350 15318 15450
+f 15226 15082 15186
+f 15226 15186 15318
+f 15082 14934 15038
+f 15082 15038 15186
+f 14934 14762 14886
+f 14934 14886 15038
+f 14762 14606 14698
+f 14762 14698 14886
+f 14606 14410 14494
+f 14606 14494 14698
+f 14410 14206 14290
+f 14410 14290 14494
+f 14206 13990 14070
+f 14206 14070 14290
+f 13990 13754 13834
+f 13990 13834 14070
+f 13754 13502 13598
+f 13754 13598 13834
+f 13502 13234 13338
+f 13502 13338 13598
+f 13234 12950 13070
+f 13234 13070 13338
+f 12950 12674 12794
+f 12950 12794 13070
+f 12674 12382 12482
+f 12674 12482 12794
+f 12382 12066 12142
+f 12382 12142 12482
+f 12066 11734 11818
+f 12066 11818 12142
+f 11734 11386 11438
+f 11734 11438 11818
+f 11386 11026 11090
+f 11386 11090 11438
+f 11026 10630 10694
+f 11026 10694 11090
+f 10630 10226 10274
+f 10630 10274 10694
+f 10226 9790 9870
+f 10226 9870 10274
+f 9790 9362 9394
+f 9790 9394 9870
+f 9362 8870 8926
+f 9362 8926 9394
+f 8870 8386 8466
+f 8870 8466 8926
+f 8386 7870 7950
+f 8386 7950 8466
+f 7870 7354 7418
+f 7870 7418 7950
+f 7354 6798 6846
+f 7354 6846 7418
+f 6798 6194 6242
+f 6798 6242 6846
+f 6194 5542 5614
+f 6194 5614 6242
+f 5542 4914 4938
+f 5542 4938 5614
+f 4914 4182 4230
+f 4914 4230 4938
+f 4182 3434 3466
+f 4182 3466 4230
+f 3434 2598 2630
+f 3434 2630 3466
+f 2598 1666 1682
+f 2598 1682 2630
+f 1681 2629 2661
+f 1681 2661 1721
+f 2629 3465 3481
+f 2629 3481 2661
+f 3465 4229 4245
+f 3465 4245 3481
+f 4229 4937 4985
+f 4229 4985 4245
+f 4937 5613 5653
+f 4937 5653 4985
+f 5613 6241 6289
+f 5613 6289 5653
+f 6241 6845 6869
+f 6241 6869 6289
+f 6845 7417 7433
+f 6845 7433 6869
+f 7417 7949 7989
+f 7417 7989 7433
+f 7949 8465 8513
+f 7949 8513 7989
+f 8465 8925 9005
+f 8465 9005 8513
+f 8925 9393 9449
+f 8925 9449 9005
+f 9393 9869 9901
+f 9393 9901 9449
+f 9869 10273 10353
+f 9869 10353 9901
+f 10273 10693 10741
+f 10273 10741 10353
+f 10693 11089 11137
+f 10693 11137 10741
+f 11089 11437 11525
+f 11089 11525 11137
+f 11437 11817 11865
+f 11437 11865 11525
+f 11817 12141 12221
+f 11817 12221 11865
+f 12141 12481 12537
+f 12141 12537 12221
+f 12481 12793 12845
+f 12481 12845 12537
+f 12793 13069 13137
+f 12793 13137 12845
+f 13069 13337 13437
+f 13069 13437 13137
+f 13337 13597 13677
+f 13337 13677 13437
+f 13597 13833 13937
+f 13597 13937 13677
+f 13833 14069 14157
+f 13833 14157 13937
+f 14069 14289 14377
+f 14069 14377 14157
+f 14289 14493 14589
+f 14289 14589 14377
+f 14493 14697 14777
+f 14493 14777 14589
+f 14697 14885 14941
+f 14697 14941 14777
+f 14885 15037 15129
+f 14885 15129 14941
+f 15037 15185 15277
+f 15037 15277 15129
+f 15185 15317 15417
+f 15185 15417 15277
+f 15317 15449 15537
+f 15317 15537 15417
+f 15449 15577 15645
+f 15449 15645 15537
+f 15577 15669 15761
+f 15577 15761 15645
+f 15669 15753 15853
+f 15669 15853 15761
+f 15753 15817 15917
+f 15753 15917 15853
+f 15817 15877 15977
+f 15817 15977 15917
+f 15877 15941 16033
+f 15877 16033 15977
+f 15941 15969 16077
+f 15941 16077 16033
+f 15969 16009 16093
+f 15969 16093 16077
+f 16009 16017 16101
+f 16009 16101 16093
+f 16017 16018 16102
+f 16017 16102 16101
+f 16018 16010 16094
+f 16018 16094 16102
+f 16010 15970 16078
+f 16010 16078 16094
+f 15970 15942 16034
+f 15970 16034 16078
+f 15942 15878 15978
+f 15942 15978 16034
+f 15878 15818 15918
+f 15878 15918 15978
+f 15818 15754 15854
+f 15818 15854 15918
+f 15754 15670 15762
+f 15754 15762 15854
+f 15670 15578 15646
+f 15670 15646 15762
+f 15578 15450 15538
+f 15578 15538 15646
+f 15450 15318 15418
+f 15450 15418 15538
+f 15318 15186 15278
+f 15318 15278 15418
+f 15186 15038 15130
+f 15186 15130 15278
+f 15038 14886 14942
+f 15038 14942 15130
+f 14886 14698 14778
+f 14886 14778 14942
+f 14698 14494 14590
+f 14698 14590 14778
+f 14494 14290 14378
+f 14494 14378 14590
+f 14290 14070 14158
+f 14290 14158 14378
+f 14070 13834 13938
+f 14070 13938 14158
+f 13834 13598 13678
+f 13834 13678 13938
+f 13598 13338 13438
+f 13598 13438 13678
+f 13338 13070 13138
+f 13338 13138 13438
+f 13070 12794 12846
+f 13070 12846 13138
+f 12794 12482 12538
+f 12794 12538 12846
+f 12482 12142 12222
+f 12482 12222 12538
+f 12142 11818 11866
+f 12142 11866 12222
+f 11818 11438 11526
+f 11818 11526 11866
+f 11438 11090 11138
+f 11438 11138 11526
+f 11090 10694 10742
+f 11090 10742 11138
+f 10694 10274 10354
+f 10694 10354 10742
+f 10274 9870 9902
+f 10274 9902 10354
+f 9870 9394 9450
+f 9870 9450 9902
+f 9394 8926 9006
+f 9394 9006 9450
+f 8926 8466 8514
+f 8926 8514 9006
+f 8466 7950 7990
+f 8466 7990 8514
+f 7950 7418 7434
+f 7950 7434 7990
+f 7418 6846 6870
+f 7418 6870 7434
+f 6846 6242 6290
+f 6846 6290 6870
+f 6242 5614 5654
+f 6242 5654 6290
+f 5614 4938 4986
+f 5614 4986 5654
+f 4938 4230 4246
+f 4938 4246 4986
+f 4230 3466 3482
+f 4230 3482 4246
+f 3466 2630 2662
+f 3466 2662 3482
+f 2630 1682 1722
+f 2630 1722 2662
+f 1721 2661 2685
+f 1721 2685 1737
+f 2661 3481 3521
+f 2661 3521 2685
+f 3481 4245 4301
+f 3481 4301 3521
+f 4245 4985 5025
+f 4245 5025 4301
+f 4985 5653 5693
+f 4985 5693 5025
+f 5653 6289 6321
+f 5653 6321 5693
+f 6289 6869 6941
+f 6289 6941 6321
+f 6869 7433 7513
+f 6869 7513 6941
+f 7433 7989 8029
+f 7433 8029 7513
+f 7989 8513 8553
+f 7989 8553 8029
+f 8513 9005 9053
+f 8513 9053 8553
+f 9005 9449 9529
+f 9005 9529 9053
+f 9449 9901 9965
+f 9449 9965 9529
+f 9901 10353 10401
+f 9901 10401 9965
+f 10353 10741 10805
+f 10353 10805 10401
+f 10741 11137 11209
+f 10741 11209 10805
+f 11137 11525 11565
+f 11137 11565 11209
+f 11525 11865 11945
+f 11525 11945 11565
+f 11865 12221 12261
+f 11865 12261 11945
+f 12221 12537 12601
+f 12221 12601 12261
+f 12537 12845 12901
+f 12537 12901 12601
+f 12845 13137 13201
+f 12845 13201 12901
+f 13137 13437 13477
+f 13137 13477 13201
+f 13437 13677 13761
+f 13437 13761 13477
+f 13677 13937 13997
+f 13677 13997 13761
+f 13937 14157 14233
+f 13937 14233 13997
+f 14157 14377 14453
+f 14157 14453 14233
+f 14377 14589 14665
+f 14377 14665 14453
+f 14589 14777 14865
+f 14589 14865 14665
+f 14777 14941 15029
+f 14777 15029 14865
+f 14941 15129 15201
+f 14941 15201 15029
+f 15129 15277 15365
+f 15129 15365 15201
+f 15277 15417 15489
+f 15277 15489 15365
+f 15417 15537 15621
+f 15417 15621 15489
+f 15537 15645 15729
+f 15537 15729 15621
+f 15645 15761 15841
+f 15645 15841 15729
+f 15761 15853 15925
+f 15761 15925 15841
+f 15853 15917 15993
+f 15853 15993 15925
+f 15917 15977 16061
+f 15917 16061 15993
+f 15977 16033 16109
+f 15977 16109 16061
+f 16033 16077 16153
+f 16033 16153 16109
+f 16077 16093 16169
+f 16077 16169 16153
+f 16093 16101 16193
+f 16093 16193 16169
+f 16101 16102 16194
+f 16101 16194 16193
+f 16102 16094 16170
+f 16102 16170 16194
+f 16094 16078 16154
+f 16094 16154 16170
+f 16078 16034 16110
+f 16078 16110 16154
+f 16034 15978 16062
+f 16034 16062 16110
+f 15978 15918 15994
+f 15978 15994 16062
+f 15918 15854 15926
+f 15918 15926 15994
+f 15854 15762 15842
+f 15854 15842 15926
+f 15762 15646 15730
+f 15762 15730 15842
+f 15646 15538 15622
+f 15646 15622 15730
+f 15538 15418 15490
+f 15538 15490 15622
+f 15418 15278 15366
+f 15418 15366 15490
+f 15278 15130 15202
+f 15278 15202 15366
+f 15130 14942 15030
+f 15130 15030 15202
+f 14942 14778 14866
+f 14942 14866 15030
+f 14778 14590 14666
+f 14778 14666 14866
+f 14590 14378 14454
+f 14590 14454 14666
+f 14378 14158 14234
+f 14378 14234 14454
+f 14158 13938 13998
+f 14158 13998 14234
+f 13938 13678 13762
+f 13938 13762 13998
+f 13678 13438 13478
+f 13678 13478 13762
+f 13438 13138 13202
+f 13438 13202 13478
+f 13138 12846 12902
+f 13138 12902 13202
+f 12846 12538 12602
+f 12846 12602 12902
+f 12538 12222 12262
+f 12538 12262 12602
+f 12222 11866 11946
+f 12222 11946 12262
+f 11866 11526 11566
+f 11866 11566 11946
+f 11526 11138 11210
+f 11526 11210 11566
+f 11138 10742 10806
+f 11138 10806 11210
+f 10742 10354 10402
+f 10742 10402 10806
+f 10354 9902 9966
+f 10354 9966 10402
+f 9902 9450 9530
+f 9902 9530 9966
+f 9450 9006 9054
+f 9450 9054 9530
+f 9006 8514 8554
+f 9006 8554 9054
+f 8514 7990 8030
+f 8514 8030 8554
+f 7990 7434 7514
+f 7990 7514 8030
+f 7434 6870 6942
+f 7434 6942 7514
+f 6870 6290 6322
+f 6870 6322 6942
+f 6290 5654 5694
+f 6290 5694 6322
+f 5654 4986 5026
+f 5654 5026 5694
+f 4986 4246 4302
+f 4986 4302 5026
+f 4246 3482 3522
+f 4246 3522 4302
+f 3482 2662 2686
+f 3482 2686 3522
+f 2662 1722 1738
+f 2662 1738 2686
+f 1737 2685 2701
+f 1737 2701 1753
+f 2685 3521 3537
+f 2685 3537 2701
+f 3521 4301 4333
+f 3521 4333 3537
+f 4301 5025 5057
+f 4301 5057 4333
+f 5025 5693 5725
+f 5025 5725 5057
+f 5693 6321 6369
+f 5693 6369 5725
+f 6321 6941 6965
+f 6321 6965 6369
+f 6941 7513 7545
+f 6941 7545 6965
+f 7513 8029 8085
+f 7513 8085 7545
+f 8029 8553 8585
+f 8029 8585 8085
+f 8553 9053 9093
+f 8553 9093 8585
+f 9053 9529 9577
+f 9053 9577 9093
+f 9529 9965 10021
+f 9529 10021 9577
+f 9965 10401 10449
+f 9965 10449 10021
+f 10401 10805 10869
+f 10401 10869 10449
+f 10805 11209 11249
+f 10805 11249 10869
+f 11209 11565 11629
+f 11209 11629 11249
+f 11565 11945 11985
+f 11565 11985 11629
+f 11945 12261 12309
+f 11945 12309 11985
+f 12261 12601 12657
+f 12261 12657 12309
+f 12601 12901 12957
+f 12601 12957 12657
+f 12901 13201 13265
+f 12901 13265 12957
+f 13201 13477 13541
+f 13201 13541 13265
+f 13477 13761 13801
+f 13477 13801 13541
+f 13761 13997 14045
+f 13761 14045 13801
+f 13997 14233 14297
+f 13997 14297 14045
+f 14233 14453 14501
+f 14233 14501 14297
+f 14453 14665 14721
+f 14453 14721 14501
+f 14665 14865 14901
+f 14665 14901 14721
+f 14865 15029 15089
+f 14865 15089 14901
+f 15029 15201 15269
+f 15029 15269 15089
+f 15201 15365 15425
+f 15201 15425 15269
+f 15365 15489 15561
+f 15365 15561 15425
+f 15489 15621 15693
+f 15489 15693 15561
+f 15621 15729 15801
+f 15621 15801 15693
+f 15729 15841 15901
+f 15729 15901 15801
+f 15841 15925 15985
+f 15841 15985 15901
+f 15925 15993 16069
+f 15925 16069 15985
+f 15993 16061 16133
+f 15993 16133 16069
+f 16061 16109 16177
+f 16061 16177 16133
+f 16109 16153 16217
+f 16109 16217 16177
+f 16153 16169 16245
+f 16153 16245 16217
+f 16169 16193 16253
+f 16169 16253 16245
+f 16193 16194 16254
+f 16193 16254 16253
+f 16194 16170 16246
+f 16194 16246 16254
+f 16170 16154 16218
+f 16170 16218 16246
+f 16154 16110 16178
+f 16154 16178 16218
+f 16110 16062 16134
+f 16110 16134 16178
+f 16062 15994 16070
+f 16062 16070 16134
+f 15994 15926 15986
+f 15994 15986 16070
+f 15926 15842 15902
+f 15926 15902 15986
+f 15842 15730 15802
+f 15842 15802 15902
+f 15730 15622 15694
+f 15730 15694 15802
+f 15622 15490 15562
+f 15622 15562 15694
+f 15490 15366 15426
+f 15490 15426 15562
+f 15366 15202 15270
+f 15366 15270 15426
+f 15202 15030 15090
+f 15202 15090 15270
+f 15030 14866 14902
+f 15030 14902 15090
+f 14866 14666 14722
+f 14866 14722 14902
+f 14666 14454 14502
+f 14666 14502 14722
+f 14454 14234 14298
+f 14454 14298 14502
+f 14234 13998 14046
+f 14234 14046 14298
+f 13998 13762 13802
+f 13998 13802 14046
+f 13762 13478 13542
+f 13762 13542 13802
+f 13478 13202 13266
+f 13478 13266 13542
+f 13202 12902 12958
+f 13202 12958 13266
+f 12902 12602 12658
+f 12902 12658 12958
+f 12602 12262 12310
+f 12602 12310 12658
+f 12262 11946 11986
+f 12262 11986 12310
+f 11946 11566 11630
+f 11946 11630 11986
+f 11566 11210 11250
+f 11566 11250 11630
+f 11210 10806 10870
+f 11210 10870 11250
+f 10806 10402 10450
+f 10806 10450 10870
+f 10402 9966 10022
+f 10402 10022 10450
+f 9966 9530 9578
+f 9966 9578 10022
+f 9530 9054 9094
+f 9530 9094 9578
+f 9054 8554 8586
+f 9054 8586 9094
+f 8554 8030 8086
+f 8554 8086 8586
+f 8030 7514 7546
+f 8030 7546 8086
+f 7514 6942 6966
+f 7514 6966 7546
+f 6942 6322 6370
+f 6942 6370 6966
+f 6322 5694 5726
+f 6322 5726 6370
+f 5694 5026 5058
+f 5694 5058 5726
+f 5026 4302 4334
+f 5026 4334 5058
+f 4302 3522 3538
+f 4302 3538 4334
+f 3522 2686 2702
+f 3522 2702 3538
+f 2686 1738 1754
+f 2686 1754 2702
+f 1753 2701 2733
+f 1753 2733 1785
+f 2701 3537 3601
+f 2701 3601 2733
+f 3537 4333 4381
+f 3537 4381 3601
+f 4333 5057 5097
+f 4333 5097 4381
+f 5057 5725 5789
+f 5057 5789 5097
+f 5725 6369 6425
+f 5725 6425 5789
+f 6369 6965 7029
+f 6369 7029 6425
+f 6965 7545 7593
+f 6965 7593 7029
+f 7545 8085 8141
+f 7545 8141 7593
+f 8085 8585 8657
+f 8085 8657 8141
+f 8585 9093 9141
+f 8585 9141 8657
+f 9093 9577 9625
+f 9093 9625 9141
+f 9577 10021 10093
+f 9577 10093 9625
+f 10021 10449 10489
+f 10021 10489 10093
+f 10449 10869 10909
+f 10449 10909 10489
+f 10869 11249 11321
+f 10869 11321 10909
+f 11249 11629 11685
+f 11249 11685 11321
+f 11629 11985 12041
+f 11629 12041 11685
+f 11985 12309 12397
+f 11985 12397 12041
+f 12309 12657 12697
+f 12309 12697 12397
+f 12657 12957 13021
+f 12657 13021 12697
+f 12957 13265 13305
+f 12957 13305 13021
+f 13265 13541 13589
+f 13265 13589 13305
+f 13541 13801 13849
+f 13541 13849 13589
+f 13801 14045 14109
+f 13801 14109 13849
+f 14045 14297 14329
+f 14045 14329 14109
+f 14297 14501 14565
+f 14297 14565 14329
+f 14501 14721 14769
+f 14501 14769 14565
+f 14721 14901 14973
+f 14721 14973 14769
+f 14901 15089 15145
+f 14901 15145 14973
+f 15089 15269 15309
+f 15089 15309 15145
+f 15269 15425 15473
+f 15269 15473 15309
+f 15425 15561 15605
+f 15425 15605 15473
+f 15561 15693 15737
+f 15561 15737 15605
+f 15693 15801 15861
+f 15693 15861 15737
+f 15801 15901 15961
+f 15801 15961 15861
+f 15901 15985 16041
+f 15901 16041 15961
+f 15985 16069 16125
+f 15985 16125 16041
+f 16069 16133 16185
+f 16069 16185 16125
+f 16133 16177 16237
+f 16133 16237 16185
+f 16177 16217 16269
+f 16177 16269 16237
+f 16217 16245 16297
+f 16217 16297 16269
+f 16245 16253 16313
+f 16245 16313 16297
+f 16253 16254 16314
+f 16253 16314 16313
+f 16254 16246 16298
+f 16254 16298 16314
+f 16246 16218 16270
+f 16246 16270 16298
+f 16218 16178 16238
+f 16218 16238 16270
+f 16178 16134 16186
+f 16178 16186 16238
+f 16134 16070 16126
+f 16134 16126 16186
+f 16070 15986 16042
+f 16070 16042 16126
+f 15986 15902 15962
+f 15986 15962 16042
+f 15902 15802 15862
+f 15902 15862 15962
+f 15802 15694 15738
+f 15802 15738 15862
+f 15694 15562 15606
+f 15694 15606 15738
+f 15562 15426 15474
+f 15562 15474 15606
+f 15426 15270 15310
+f 15426 15310 15474
+f 15270 15090 15146
+f 15270 15146 15310
+f 15090 14902 14974
+f 15090 14974 15146
+f 14902 14722 14770
+f 14902 14770 14974
+f 14722 14502 14566
+f 14722 14566 14770
+f 14502 14298 14330
+f 14502 14330 14566
+f 14298 14046 14110
+f 14298 14110 14330
+f 14046 13802 13850
+f 14046 13850 14110
+f 13802 13542 13590
+f 13802 13590 13850
+f 13542 13266 13306
+f 13542 13306 13590
+f 13266 12958 13022
+f 13266 13022 13306
+f 12958 12658 12698
+f 12958 12698 13022
+f 12658 12310 12398
+f 12658 12398 12698
+f 12310 11986 12042
+f 12310 12042 12398
+f 11986 11630 11686
+f 11986 11686 12042
+f 11630 11250 11322
+f 11630 11322 11686
+f 11250 10870 10910
+f 11250 10910 11322
+f 10870 10450 10490
+f 10870 10490 10910
+f 10450 10022 10094
+f 10450 10094 10490
+f 10022 9578 9626
+f 10022 9626 10094
+f 9578 9094 9142
+f 9578 9142 9626
+f 9094 8586 8658
+f 9094 8658 9142
+f 8586 8086 8142
+f 8586 8142 8658
+f 8086 7546 7594
+f 8086 7594 8142
+f 7546 6966 7030
+f 7546 7030 7594
+f 6966 6370 6426
+f 6966 6426 7030
+f 6370 5726 5790
+f 6370 5790 6426
+f 5726 5058 5098
+f 5726 5098 5790
+f 5058 4334 4382
+f 5058 4382 5098
+f 4334 3538 3602
+f 4334 3602 4382
+f 3538 2702 2734
+f 3538 2734 3602
+f 2702 1754 1786
+f 2702 1786 2734
+f 1785 2733 2741
+f 1785 2741 1793
+f 2733 3601 3625
+f 2733 3625 2741
+f 3601 4381 4389
+f 3601 4389 3625
+f 4381 5097 5121
+f 4381 5121 4389
+f 5097 5789 5813
+f 5097 5813 5121
+f 5789 6425 6441
+f 5789 6441 5813
+f 6425 7029 7037
+f 6425 7037 6441
+f 7029 7593 7601
+f 7029 7601 7037
+f 7593 8141 8157
+f 7593 8157 7601
+f 8141 8657 8689
+f 8141 8689 8157
+f 8657 9141 9173
+f 8657 9173 8689
+f 9141 9625 9649
+f 9141 9649 9173
+f 9625 10093 10109
+f 9625 10109 9649
+f 10093 10489 10537
+f 10093 10537 10109
+f 10489 10909 10949
+f 10489 10949 10537
+f 10909 11321 11353
+f 10909 11353 10949
+f 11321 11685 11701
+f 11321 11701 11353
+f 11685 12041 12081
+f 11685 12081 11701
+f 12041 12397 12421
+f 12041 12421 12081
+f 12397 12697 12737
+f 12397 12737 12421
+f 12697 13021 13061
+f 12697 13061 12737
+f 13021 13305 13345
+f 13021 13345 13061
+f 13305 13589 13637
+f 13305 13637 13345
+f 13589 13849 13905
+f 13589 13905 13637
+f 13849 14109 14141
+f 13849 14141 13905
+f 14109 14329 14385
+f 14109 14385 14141
+f 14329 14565 14613
+f 14329 14613 14385
+f 14565 14769 14809
+f 14565 14809 14613
+f 14769 14973 15013
+f 14769 15013 14809
+f 14973 15145 15193
+f 14973 15193 15013
+f 15145 15309 15373
+f 15145 15373 15193
+f 15309 15473 15513
+f 15309 15513 15373
+f 15473 15605 15653
+f 15473 15653 15513
+f 15605 15737 15785
+f 15605 15785 15653
+f 15737 15861 15893
+f 15737 15893 15785
+f 15861 15961 16001
+f 15861 16001 15893
+f 15961 16041 16085
+f 15961 16085 16001
+f 16041 16125 16161
+f 16041 16161 16085
+f 16125 16185 16229
+f 16125 16229 16161
+f 16185 16237 16285
+f 16185 16285 16229
+f 16237 16269 16321
+f 16237 16321 16285
+f 16269 16297 16341
+f 16269 16341 16321
+f 16297 16313 16357
+f 16297 16357 16341
+f 16313 16314 16358
+f 16313 16358 16357
+f 16314 16298 16342
+f 16314 16342 16358
+f 16298 16270 16322
+f 16298 16322 16342
+f 16270 16238 16286
+f 16270 16286 16322
+f 16238 16186 16230
+f 16238 16230 16286
+f 16186 16126 16162
+f 16186 16162 16230
+f 16126 16042 16086
+f 16126 16086 16162
+f 16042 15962 16002
+f 16042 16002 16086
+f 15962 15862 15894
+f 15962 15894 16002
+f 15862 15738 15786
+f 15862 15786 15894
+f 15738 15606 15654
+f 15738 15654 15786
+f 15606 15474 15514
+f 15606 15514 15654
+f 15474 15310 15374
+f 15474 15374 15514
+f 15310 15146 15194
+f 15310 15194 15374
+f 15146 14974 15014
+f 15146 15014 15194
+f 14974 14770 14810
+f 14974 14810 15014
+f 14770 14566 14614
+f 14770 14614 14810
+f 14566 14330 14386
+f 14566 14386 14614
+f 14330 14110 14142
+f 14330 14142 14386
+f 14110 13850 13906
+f 14110 13906 14142
+f 13850 13590 13638
+f 13850 13638 13906
+f 13590 13306 13346
+f 13590 13346 13638
+f 13306 13022 13062
+f 13306 13062 13346
+f 13022 12698 12738
+f 13022 12738 13062
+f 12698 12398 12422
+f 12698 12422 12738
+f 12398 12042 12082
+f 12398 12082 12422
+f 12042 11686 11702
+f 12042 11702 12082
+f 11686 11322 11354
+f 11686 11354 11702
+f 11322 10910 10950
+f 11322 10950 11354
+f 10910 10490 10538
+f 10910 10538 10950
+f 10490 10094 10110
+f 10490 10110 10538
+f 10094 9626 9650
+f 10094 9650 10110
+f 9626 9142 9174
+f 9626 9174 9650
+f 9142 8658 8690
+f 9142 8690 9174
+f 8658 8142 8158
+f 8658 8158 8690
+f 8142 7594 7602
+f 8142 7602 8158
+f 7594 7030 7038
+f 7594 7038 7602
+f 7030 6426 6442
+f 7030 6442 7038
+f 6426 5790 5814
+f 6426 5814 6442
+f 5790 5098 5122
+f 5790 5122 5814
+f 5098 4382 4390
+f 5098 4390 5122
+f 4382 3602 3626
+f 4382 3626 4390
+f 3602 2734 2742
+f 3602 2742 3626
+f 2734 1786 1794
+f 2734 1794 2742
+f 1793 2741 2765
+f 1793 2765 1801
+f 2741 3625 3633
+f 2741 3633 2765
+f 3625 4389 4397
+f 3625 4397 3633
+f 4389 5121 5137
+f 4389 5137 4397
+f 5121 5813 5821
+f 5121 5821 5137
+f 5813 6441 6457
+f 5813 6457 5821
+f 6441 7037 7045
+f 6441 7045 6457
+f 7037 7601 7633
+f 7037 7633 7045
+f 7601 8157 8181
+f 7601 8181 7633
+f 8157 8689 8705
+f 8157 8705 8181
+f 8689 9173 9205
+f 8689 9205 8705
+f 9173 9649 9665
+f 9173 9665 9205
+f 9649 10109 10133
+f 9649 10133 9665
+f 10109 10537 10569
+f 10109 10569 10133
+f 10537 10949 10965
+f 10537 10965 10569
+f 10949 11353 11369
+f 10949 11369 10965
+f 11353 11701 11749
+f 11353 11749 11369
+f 11701 12081 12097
+f 11701 12097 11749
+f 12081 12421 12437
+f 12081 12437 12097
+f 12421 12737 12785
+f 12421 12785 12437
+f 12737 13061 13077
+f 12737 13077 12785
+f 13061 13345 13385
+f 13061 13385 13077
+f 13345 13637 13661
+f 13345 13661 13385
+f 13637 13905 13929
+f 13637 13929 13661
+f 13905 14141 14181
+f 13905 14181 13929
+f 14141 14385 14425
+f 14141 14425 14181
+f 14385 14613 14629
+f 14385 14629 14425
+f 14613 14809 14849
+f 14613 14849 14629
+f 14809 15013 15045
+f 14809 15045 14849
+f 15013 15193 15217
+f 15013 15217 15045
+f 15193 15373 15381
+f 15193 15381 15217
+f 15373 15513 15545
+f 15373 15545 15381
+f 15513 15653 15685
+f 15513 15685 15545
+f 15653 15785 15809
+f 15653 15809 15685
+f 15785 15893 15933
+f 15785 15933 15809
+f 15893 16001 16025
+f 15893 16025 15933
+f 16001 16085 16117
+f 16001 16117 16025
+f 16085 16161 16201
+f 16085 16201 16117
+f 16161 16229 16261
+f 16161 16261 16201
+f 16229 16285 16305
+f 16229 16305 16261
+f 16285 16321 16349
+f 16285 16349 16305
+f 16321 16341 16377
+f 16321 16377 16349
+f 16341 16357 16385
+f 16341 16385 16377
+f 16357 16358 16386
+f 16357 16386 16385
+f 16358 16342 16378
+f 16358 16378 16386
+f 16342 16322 16350
+f 16342 16350 16378
+f 16322 16286 16306
+f 16322 16306 16350
+f 16286 16230 16262
+f 16286 16262 16306
+f 16230 16162 16202
+f 16230 16202 16262
+f 16162 16086 16118
+f 16162 16118 16202
+f 16086 16002 16026
+f 16086 16026 16118
+f 16002 15894 15934
+f 16002 15934 16026
+f 15894 15786 15810
+f 15894 15810 15934
+f 15786 15654 15686
+f 15786 15686 15810
+f 15654 15514 15546
+f 15654 15546 15686
+f 15514 15374 15382
+f 15514 15382 15546
+f 15374 15194 15218
+f 15374 15218 15382
+f 15194 15014 15046
+f 15194 15046 15218
+f 15014 14810 14850
+f 15014 14850 15046
+f 14810 14614 14630
+f 14810 14630 14850
+f 14614 14386 14426
+f 14614 14426 14630
+f 14386 14142 14182
+f 14386 14182 14426
+f 14142 13906 13930
+f 14142 13930 14182
+f 13906 13638 13662
+f 13906 13662 13930
+f 13638 13346 13386
+f 13638 13386 13662
+f 13346 13062 13078
+f 13346 13078 13386
+f 13062 12738 12786
+f 13062 12786 13078
+f 12738 12422 12438
+f 12738 12438 12786
+f 12422 12082 12098
+f 12422 12098 12438
+f 12082 11702 11750
+f 12082 11750 12098
+f 11702 11354 11370
+f 11702 11370 11750
+f 11354 10950 10966
+f 11354 10966 11370
+f 10950 10538 10570
+f 10950 10570 10966
+f 10538 10110 10134
+f 10538 10134 10570
+f 10110 9650 9666
+f 10110 9666 10134
+f 9650 9174 9206
+f 9650 9206 9666
+f 9174 8690 8706
+f 9174 8706 9206
+f 8690 8158 8182
+f 8690 8182 8706
+f 8158 7602 7634
+f 8158 7634 8182
+f 7602 7038 7046
+f 7602 7046 7634
+f 7038 6442 6458
+f 7038 6458 7046
+f 6442 5814 5822
+f 6442 5822 6458
+f 5814 5122 5138
+f 5814 5138 5822
+f 5122 4390 4398
+f 5122 4398 5138
+f 4390 3626 3634
+f 4390 3634 4398
+f 3626 2742 2766
+f 3626 2766 3634
+f 2742 1794 1802
+f 2742 1802 2766
+f 1801 2765 2773
+f 1801 2773 1825
+f 2765 3633 3641
+f 2765 3641 2773
+f 3633 4397 4429
+f 3633 4429 3641
+f 4397 5137 5145
+f 4397 5145 4429
+f 5137 5821 5829
+f 5137 5829 5145
+f 5821 6457 6465
+f 5821 6465 5829
+f 6457 7045 7053
+f 6457 7053 6465
+f 7045 7633 7641
+f 7045 7641 7053
+f 7633 8181 8189
+f 7633 8189 7641
+f 8181 8705 8721
+f 8181 8721 8189
+f 8705 9205 9229
+f 8705 9229 8721
+f 9205 9665 9681
+f 9205 9681 9229
+f 9665 10133 10141
+f 9665 10141 9681
+f 10133 10569 10593
+f 10133 10593 10141
+f 10569 10965 10981
+f 10569 10981 10593
+f 10965 11369 11377
+f 10965 11377 10981
+f 11369 11749 11765
+f 11369 11765 11377
+f 11749 12097 12121
+f 11749 12121 11765
+f 12097 12437 12461
+f 12097 12461 12121
+f 12437 12785 12801
+f 12437 12801 12461
+f 12785 13077 13093
+f 12785 13093 12801
+f 13077 13385 13409
+f 13077 13409 13093
+f 13385 13661 13669
+f 13385 13669 13409
+f 13661 13929 13945
+f 13661 13945 13669
+f 13929 14181 14189
+f 13929 14189 13945
+f 14181 14425 14441
+f 14181 14441 14189
+f 14425 14629 14645
+f 14425 14645 14441
+f 14629 14849 14873
+f 14629 14873 14645
+f 14849 15045 15053
+f 14849 15053 14873
+f 15045 15217 15249
+f 15045 15249 15053
+f 15217 15381 15405
+f 15217 15405 15249
+f 15381 15545 15569
+f 15381 15569 15405
+f 15545 15685 15701
+f 15545 15701 15569
+f 15685 15809 15825
+f 15685 15825 15701
+f 15809 15933 15949
+f 15809 15949 15825
+f 15933 16025 16049
+f 15933 16049 15949
+f 16025 16117 16141
+f 16025 16141 16049
+f 16117 16201 16209
+f 16117 16209 16141
+f 16201 16261 16277
+f 16201 16277 16209
+f 16261 16305 16329
+f 16261 16329 16277
+f 16305 16349 16365
+f 16305 16365 16329
+f 16349 16377 16393
+f 16349 16393 16365
+f 16377 16385 16405
+f 16377 16405 16393
+f 16385 16386 16406
+f 16385 16406 16405
+f 16386 16378 16394
+f 16386 16394 16406
+f 16378 16350 16366
+f 16378 16366 16394
+f 16350 16306 16330
+f 16350 16330 16366
+f 16306 16262 16278
+f 16306 16278 16330
+f 16262 16202 16210
+f 16262 16210 16278
+f 16202 16118 16142
+f 16202 16142 16210
+f 16118 16026 16050
+f 16118 16050 16142
+f 16026 15934 15950
+f 16026 15950 16050
+f 15934 15810 15826
+f 15934 15826 15950
+f 15810 15686 15702
+f 15810 15702 15826
+f 15686 15546 15570
+f 15686 15570 15702
+f 15546 15382 15406
+f 15546 15406 15570
+f 15382 15218 15250
+f 15382 15250 15406
+f 15218 15046 15054
+f 15218 15054 15250
+f 15046 14850 14874
+f 15046 14874 15054
+f 14850 14630 14646
+f 14850 14646 14874
+f 14630 14426 14442
+f 14630 14442 14646
+f 14426 14182 14190
+f 14426 14190 14442
+f 14182 13930 13946
+f 14182 13946 14190
+f 13930 13662 13670
+f 13930 13670 13946
+f 13662 13386 13410
+f 13662 13410 13670
+f 13386 13078 13094
+f 13386 13094 13410
+f 13078 12786 12802
+f 13078 12802 13094
+f 12786 12438 12462
+f 12786 12462 12802
+f 12438 12098 12122
+f 12438 12122 12462
+f 12098 11750 11766
+f 12098 11766 12122
+f 11750 11370 11378
+f 11750 11378 11766
+f 11370 10966 10982
+f 11370 10982 11378
+f 10966 10570 10594
+f 10966 10594 10982
+f 10570 10134 10142
+f 10570 10142 10594
+f 10134 9666 9682
+f 10134 9682 10142
+f 9666 9206 9230
+f 9666 9230 9682
+f 9206 8706 8722
+f 9206 8722 9230
+f 8706 8182 8190
+f 8706 8190 8722
+f 8182 7634 7642
+f 8182 7642 8190
+f 7634 7046 7054
+f 7634 7054 7642
+f 7046 6458 6466
+f 7046 6466 7054
+f 6458 5822 5830
+f 6458 5830 6466
+f 5822 5138 5146
+f 5822 5146 5830
+f 5138 4398 4430
+f 5138 4430 5146
+f 4398 3634 3642
+f 4398 3642 4430
+f 3634 2766 2774
+f 3634 2774 3642
+f 2766 1802 1826
+f 2766 1826 2774
+f 1825 2773 2781
+f 1825 2781 1833
+f 2773 3641 3649
+f 2773 3649 2781
+f 3641 4429 4445
+f 3641 4445 3649
+f 4429 5145 5161
+f 4429 5161 4445
+f 5145 5829 5837
+f 5145 5837 5161
+f 5829 6465 6473
+f 5829 6473 5837
+f 6465 7053 7069
+f 6465 7069 6473
+f 7053 7641 7649
+f 7053 7649 7069
+f 7641 8189 8197
+f 7641 8197 7649
+f 8189 8721 8729
+f 8189 8729 8197
+f 8721 9229 9237
+f 8721 9237 8729
+f 9229 9681 9689
+f 9229 9689 9237
+f 9681 10141 10149
+f 9681 10149 9689
+f 10141 10593 10601
+f 10141 10601 10149
+f 10593 10981 10989
+f 10593 10989 10601
+f 10981 11377 11393
+f 10981 11393 10989
+f 11377 11765 11781
+f 11377 11781 11393
+f 11765 12121 12137
+f 11765 12137 11781
+f 12121 12461 12469
+f 12121 12469 12137
+f 12461 12801 12809
+f 12461 12809 12469
+f 12801 13093 13109
+f 12801 13109 12809
+f 13093 13409 13417
+f 13093 13417 13109
+f 13409 13669 13685
+f 13409 13685 13417
+f 13669 13945 13953
+f 13669 13953 13685
+f 13945 14189 14213
+f 13945 14213 13953
+f 14189 14441 14449
+f 14189 14449 14213
+f 14441 14645 14661
+f 14441 14661 14449
+f 14645 14873 14881
+f 14645 14881 14661
+f 14873 15053 15069
+f 14873 15069 14881
+f 15053 15249 15257
+f 15053 15257 15069
+f 15249 15405 15413
+f 15249 15413 15257
+f 15405 15569 15585
+f 15405 15585 15413
+f 15569 15701 15709
+f 15569 15709 15585
+f 15701 15825 15849
+f 15701 15849 15709
+f 15825 15949 15957
+f 15825 15957 15849
+f 15949 16049 16057
+f 15949 16057 15957
+f 16049 16141 16149
+f 16049 16149 16057
+f 16141 16209 16225
+f 16141 16225 16149
+f 16209 16277 16293
+f 16209 16293 16225
+f 16277 16329 16337
+f 16277 16337 16293
+f 16329 16365 16373
+f 16329 16373 16337
+f 16365 16393 16401
+f 16365 16401 16373
+f 16393 16405 16413
+f 16393 16413 16401
+f 16405 16406 16414
+f 16405 16414 16413
+f 16406 16394 16402
+f 16406 16402 16414
+f 16394 16366 16374
+f 16394 16374 16402
+f 16366 16330 16338
+f 16366 16338 16374
+f 16330 16278 16294
+f 16330 16294 16338
+f 16278 16210 16226
+f 16278 16226 16294
+f 16210 16142 16150
+f 16210 16150 16226
+f 16142 16050 16058
+f 16142 16058 16150
+f 16050 15950 15958
+f 16050 15958 16058
+f 15950 15826 15850
+f 15950 15850 15958
+f 15826 15702 15710
+f 15826 15710 15850
+f 15702 15570 15586
+f 15702 15586 15710
+f 15570 15406 15414
+f 15570 15414 15586
+f 15406 15250 15258
+f 15406 15258 15414
+f 15250 15054 15070
+f 15250 15070 15258
+f 15054 14874 14882
+f 15054 14882 15070
+f 14874 14646 14662
+f 14874 14662 14882
+f 14646 14442 14450
+f 14646 14450 14662
+f 14442 14190 14214
+f 14442 14214 14450
+f 14190 13946 13954
+f 14190 13954 14214
+f 13946 13670 13686
+f 13946 13686 13954
+f 13670 13410 13418
+f 13670 13418 13686
+f 13410 13094 13110
+f 13410 13110 13418
+f 13094 12802 12810
+f 13094 12810 13110
+f 12802 12462 12470
+f 12802 12470 12810
+f 12462 12122 12138
+f 12462 12138 12470
+f 12122 11766 11782
+f 12122 11782 12138
+f 11766 11378 11394
+f 11766 11394 11782
+f 11378 10982 10990
+f 11378 10990 11394
+f 10982 10594 10602
+f 10982 10602 10990
+f 10594 10142 10150
+f 10594 10150 10602
+f 10142 9682 9690
+f 10142 9690 10150
+f 9682 9230 9238
+f 9682 9238 9690
+f 9230 8722 8730
+f 9230 8730 9238
+f 8722 8190 8198
+f 8722 8198 8730
+f 8190 7642 7650
+f 8190 7650 8198
+f 7642 7054 7070
+f 7642 7070 7650
+f 7054 6466 6474
+f 7054 6474 7070
+f 6466 5830 5838
+f 6466 5838 6474
+f 5830 5146 5162
+f 5830 5162 5838
+f 5146 4430 4446
+f 5146 4446 5162
+f 4430 3642 3650
+f 4430 3650 4446
+f 3642 2774 2782
+f 3642 2782 3650
+f 2774 1826 1834
+f 2774 1834 2782
+f 1833 2781 2775
+f 1833 2775 1827
+f 2781 3649 3643
+f 2781 3643 2775
+f 3649 4445 4431
+f 3649 4431 3643
+f 4445 5161 5147
+f 4445 5147 4431
+f 5161 5837 5831
+f 5161 5831 5147
+f 5837 6473 6467
+f 5837 6467 5831
+f 6473 7069 7055
+f 6473 7055 6467
+f 7069 7649 7643
+f 7069 7643 7055
+f 7649 8197 8191
+f 7649 8191 7643
+f 8197 8729 8723
+f 8197 8723 8191
+f 8729 9237 9231
+f 8729 9231 8723
+f 9237 9689 9683
+f 9237 9683 9231
+f 9689 10149 10143
+f 9689 10143 9683
+f 10149 10601 10595
+f 10149 10595 10143
+f 10601 10989 10983
+f 10601 10983 10595
+f 10989 11393 11379
+f 10989 11379 10983
+f 11393 11781 11767
+f 11393 11767 11379
+f 11781 12137 12123
+f 11781 12123 11767
+f 12137 12469 12463
+f 12137 12463 12123
+f 12469 12809 12803
+f 12469 12803 12463
+f 12809 13109 13095
+f 12809 13095 12803
+f 13109 13417 13411
+f 13109 13411 13095
+f 13417 13685 13671
+f 13417 13671 13411
+f 13685 13953 13947
+f 13685 13947 13671
+f 13953 14213 14191
+f 13953 14191 13947
+f 14213 14449 14443
+f 14213 14443 14191
+f 14449 14661 14647
+f 14449 14647 14443
+f 14661 14881 14875
+f 14661 14875 14647
+f 14881 15069 15055
+f 14881 15055 14875
+f 15069 15257 15251
+f 15069 15251 15055
+f 15257 15413 15407
+f 15257 15407 15251
+f 15413 15585 15571
+f 15413 15571 15407
+f 15585 15709 15703
+f 15585 15703 15571
+f 15709 15849 15827
+f 15709 15827 15703
+f 15849 15957 15951
+f 15849 15951 15827
+f 15957 16057 16051
+f 15957 16051 15951
+f 16057 16149 16143
+f 16057 16143 16051
+f 16149 16225 16211
+f 16149 16211 16143
+f 16225 16293 16279
+f 16225 16279 16211
+f 16293 16337 16331
+f 16293 16331 16279
+f 16337 16373 16367
+f 16337 16367 16331
+f 16373 16401 16395
+f 16373 16395 16367
+f 16401 16413 16407
+f 16401 16407 16395
+f 16413 16414 16408
+f 16413 16408 16407
+f 16414 16402 16396
+f 16414 16396 16408
+f 16402 16374 16368
+f 16402 16368 16396
+f 16374 16338 16332
+f 16374 16332 16368
+f 16338 16294 16280
+f 16338 16280 16332
+f 16294 16226 16212
+f 16294 16212 16280
+f 16226 16150 16144
+f 16226 16144 16212
+f 16150 16058 16052
+f 16150 16052 16144
+f 16058 15958 15952
+f 16058 15952 16052
+f 15958 15850 15828
+f 15958 15828 15952
+f 15850 15710 15704
+f 15850 15704 15828
+f 15710 15586 15572
+f 15710 15572 15704
+f 15586 15414 15408
+f 15586 15408 15572
+f 15414 15258 15252
+f 15414 15252 15408
+f 15258 15070 15056
+f 15258 15056 15252
+f 15070 14882 14876
+f 15070 14876 15056
+f 14882 14662 14648
+f 14882 14648 14876
+f 14662 14450 14444
+f 14662 14444 14648
+f 14450 14214 14192
+f 14450 14192 14444
+f 14214 13954 13948
+f 14214 13948 14192
+f 13954 13686 13672
+f 13954 13672 13948
+f 13686 13418 13412
+f 13686 13412 13672
+f 13418 13110 13096
+f 13418 13096 13412
+f 13110 12810 12804
+f 13110 12804 13096
+f 12810 12470 12464
+f 12810 12464 12804
+f 12470 12138 12124
+f 12470 12124 12464
+f 12138 11782 11768
+f 12138 11768 12124
+f 11782 11394 11380
+f 11782 11380 11768
+f 11394 10990 10984
+f 11394 10984 11380
+f 10990 10602 10596
+f 10990 10596 10984
+f 10602 10150 10144
+f 10602 10144 10596
+f 10150 9690 9684
+f 10150 9684 10144
+f 9690 9238 9232
+f 9690 9232 9684
+f 9238 8730 8724
+f 9238 8724 9232
+f 8730 8198 8192
+f 8730 8192 8724
+f 8198 7650 7644
+f 8198 7644 8192
+f 7650 7070 7056
+f 7650 7056 7644
+f 7070 6474 6468
+f 7070 6468 7056
+f 6474 5838 5832
+f 6474 5832 6468
+f 5838 5162 5148
+f 5838 5148 5832
+f 5162 4446 4432
+f 5162 4432 5148
+f 4446 3650 3644
+f 4446 3644 4432
+f 3650 2782 2776
+f 3650 2776 3644
+f 2782 1834 1828
+f 2782 1828 2776
+f 1827 2775 2767
+f 1827 2767 1803
+f 2775 3643 3635
+f 2775 3635 2767
+f 3643 4431 4399
+f 3643 4399 3635
+f 4431 5147 5139
+f 4431 5139 4399
+f 5147 5831 5823
+f 5147 5823 5139
+f 5831 6467 6459
+f 5831 6459 5823
+f 6467 7055 7047
+f 6467 7047 6459
+f 7055 7643 7635
+f 7055 7635 7047
+f 7643 8191 8183
+f 7643 8183 7635
+f 8191 8723 8707
+f 8191 8707 8183
+f 8723 9231 9207
+f 8723 9207 8707
+f 9231 9683 9667
+f 9231 9667 9207
+f 9683 10143 10135
+f 9683 10135 9667
+f 10143 10595 10571
+f 10143 10571 10135
+f 10595 10983 10967
+f 10595 10967 10571
+f 10983 11379 11371
+f 10983 11371 10967
+f 11379 11767 11751
+f 11379 11751 11371
+f 11767 12123 12099
+f 11767 12099 11751
+f 12123 12463 12439
+f 12123 12439 12099
+f 12463 12803 12787
+f 12463 12787 12439
+f 12803 13095 13079
+f 12803 13079 12787
+f 13095 13411 13387
+f 13095 13387 13079
+f 13411 13671 13663
+f 13411 13663 13387
+f 13671 13947 13931
+f 13671 13931 13663
+f 13947 14191 14183
+f 13947 14183 13931
+f 14191 14443 14427
+f 14191 14427 14183
+f 14443 14647 14631
+f 14443 14631 14427
+f 14647 14875 14851
+f 14647 14851 14631
+f 14875 15055 15047
+f 14875 15047 14851
+f 15055 15251 15219
+f 15055 15219 15047
+f 15251 15407 15383
+f 15251 15383 15219
+f 15407 15571 15547
+f 15407 15547 15383
+f 15571 15703 15687
+f 15571 15687 15547
+f 15703 15827 15811
+f 15703 15811 15687
+f 15827 15951 15935
+f 15827 15935 15811
+f 15951 16051 16027
+f 15951 16027 15935
+f 16051 16143 16119
+f 16051 16119 16027
+f 16143 16211 16203
+f 16143 16203 16119
+f 16211 16279 16263
+f 16211 16263 16203
+f 16279 16331 16307
+f 16279 16307 16263
+f 16331 16367 16351
+f 16331 16351 16307
+f 16367 16395 16379
+f 16367 16379 16351
+f 16395 16407 16387
+f 16395 16387 16379
+f 16407 16408 16388
+f 16407 16388 16387
+f 16408 16396 16380
+f 16408 16380 16388
+f 16396 16368 16352
+f 16396 16352 16380
+f 16368 16332 16308
+f 16368 16308 16352
+f 16332 16280 16264
+f 16332 16264 16308
+f 16280 16212 16204
+f 16280 16204 16264
+f 16212 16144 16120
+f 16212 16120 16204
+f 16144 16052 16028
+f 16144 16028 16120
+f 16052 15952 15936
+f 16052 15936 16028
+f 15952 15828 15812
+f 15952 15812 15936
+f 15828 15704 15688
+f 15828 15688 15812
+f 15704 15572 15548
+f 15704 15548 15688
+f 15572 15408 15384
+f 15572 15384 15548
+f 15408 15252 15220
+f 15408 15220 15384
+f 15252 15056 15048
+f 15252 15048 15220
+f 15056 14876 14852
+f 15056 14852 15048
+f 14876 14648 14632
+f 14876 14632 14852
+f 14648 14444 14428
+f 14648 14428 14632
+f 14444 14192 14184
+f 14444 14184 14428
+f 14192 13948 13932
+f 14192 13932 14184
+f 13948 13672 13664
+f 13948 13664 13932
+f 13672 13412 13388
+f 13672 13388 13664
+f 13412 13096 13080
+f 13412 13080 13388
+f 13096 12804 12788
+f 13096 12788 13080
+f 12804 12464 12440
+f 12804 12440 12788
+f 12464 12124 12100
+f 12464 12100 12440
+f 12124 11768 11752
+f 12124 11752 12100
+f 11768 11380 11372
+f 11768 11372 11752
+f 11380 10984 10968
+f 11380 10968 11372
+f 10984 10596 10572
+f 10984 10572 10968
+f 10596 10144 10136
+f 10596 10136 10572
+f 10144 9684 9668
+f 10144 9668 10136
+f 9684 9232 9208
+f 9684 9208 9668
+f 9232 8724 8708
+f 9232 8708 9208
+f 8724 8192 8184
+f 8724 8184 8708
+f 8192 7644 7636
+f 8192 7636 8184
+f 7644 7056 7048
+f 7644 7048 7636
+f 7056 6468 6460
+f 7056 6460 7048
+f 6468 5832 5824
+f 6468 5824 6460
+f 5832 5148 5140
+f 5832 5140 5824
+f 5148 4432 4400
+f 5148 4400 5140
+f 4432 3644 3636
+f 4432 3636 4400
+f 3644 2776 2768
+f 3644 2768 3636
+f 2776 1828 1804
+f 2776 1804 2768
+f 1803 2767 2743
+f 1803 2743 1795
+f 2767 3635 3627
+f 2767 3627 2743
+f 3635 4399 4391
+f 3635 4391 3627
+f 4399 5139 5123
+f 4399 5123 4391
+f 5139 5823 5815
+f 5139 5815 5123
+f 5823 6459 6443
+f 5823 6443 5815
+f 6459 7047 7039
+f 6459 7039 6443
+f 7047 7635 7603
+f 7047 7603 7039
+f 7635 8183 8159
+f 7635 8159 7603
+f 8183 8707 8691
+f 8183 8691 8159
+f 8707 9207 9175
+f 8707 9175 8691
+f 9207 9667 9651
+f 9207 9651 9175
+f 9667 10135 10111
+f 9667 10111 9651
+f 10135 10571 10539
+f 10135 10539 10111
+f 10571 10967 10951
+f 10571 10951 10539
+f 10967 11371 11355
+f 10967 11355 10951
+f 11371 11751 11703
+f 11371 11703 11355
+f 11751 12099 12083
+f 11751 12083 11703
+f 12099 12439 12423
+f 12099 12423 12083
+f 12439 12787 12739
+f 12439 12739 12423
+f 12787 13079 13063
+f 12787 13063 12739
+f 13079 13387 13347
+f 13079 13347 13063
+f 13387 13663 13639
+f 13387 13639 13347
+f 13663 13931 13907
+f 13663 13907 13639
+f 13931 14183 14143
+f 13931 14143 13907
+f 14183 14427 14387
+f 14183 14387 14143
+f 14427 14631 14615
+f 14427 14615 14387
+f 14631 14851 14811
+f 14631 14811 14615
+f 14851 15047 15015
+f 14851 15015 14811
+f 15047 15219 15195
+f 15047 15195 15015
+f 15219 15383 15375
+f 15219 15375 15195
+f 15383 15547 15515
+f 15383 15515 15375
+f 15547 15687 15655
+f 15547 15655 15515
+f 15687 15811 15787
+f 15687 15787 15655
+f 15811 15935 15895
+f 15811 15895 15787
+f 15935 16027 16003
+f 15935 16003 15895
+f 16027 16119 16087
+f 16027 16087 16003
+f 16119 16203 16163
+f 16119 16163 16087
+f 16203 16263 16231
+f 16203 16231 16163
+f 16263 16307 16287
+f 16263 16287 16231
+f 16307 16351 16323
+f 16307 16323 16287
+f 16351 16379 16343
+f 16351 16343 16323
+f 16379 16387 16359
+f 16379 16359 16343
+f 16387 16388 16360
+f 16387 16360 16359
+f 16388 16380 16344
+f 16388 16344 16360
+f 16380 16352 16324
+f 16380 16324 16344
+f 16352 16308 16288
+f 16352 16288 16324
+f 16308 16264 16232
+f 16308 16232 16288
+f 16264 16204 16164
+f 16264 16164 16232
+f 16204 16120 16088
+f 16204 16088 16164
+f 16120 16028 16004
+f 16120 16004 16088
+f 16028 15936 15896
+f 16028 15896 16004
+f 15936 15812 15788
+f 15936 15788 15896
+f 15812 15688 15656
+f 15812 15656 15788
+f 15688 15548 15516
+f 15688 15516 15656
+f 15548 15384 15376
+f 15548 15376 15516
+f 15384 15220 15196
+f 15384 15196 15376
+f 15220 15048 15016
+f 15220 15016 15196
+f 15048 14852 14812
+f 15048 14812 15016
+f 14852 14632 14616
+f 14852 14616 14812
+f 14632 14428 14388
+f 14632 14388 14616
+f 14428 14184 14144
+f 14428 14144 14388
+f 14184 13932 13908
+f 14184 13908 14144
+f 13932 13664 13640
+f 13932 13640 13908
+f 13664 13388 13348
+f 13664 13348 13640
+f 13388 13080 13064
+f 13388 13064 13348
+f 13080 12788 12740
+f 13080 12740 13064
+f 12788 12440 12424
+f 12788 12424 12740
+f 12440 12100 12084
+f 12440 12084 12424
+f 12100 11752 11704
+f 12100 11704 12084
+f 11752 11372 11356
+f 11752 11356 11704
+f 11372 10968 10952
+f 11372 10952 11356
+f 10968 10572 10540
+f 10968 10540 10952
+f 10572 10136 10112
+f 10572 10112 10540
+f 10136 9668 9652
+f 10136 9652 10112
+f 9668 9208 9176
+f 9668 9176 9652
+f 9208 8708 8692
+f 9208 8692 9176
+f 8708 8184 8160
+f 8708 8160 8692
+f 8184 7636 7604
+f 8184 7604 8160
+f 7636 7048 7040
+f 7636 7040 7604
+f 7048 6460 6444
+f 7048 6444 7040
+f 6460 5824 5816
+f 6460 5816 6444
+f 5824 5140 5124
+f 5824 5124 5816
+f 5140 4400 4392
+f 5140 4392 5124
+f 4400 3636 3628
+f 4400 3628 4392
+f 3636 2768 2744
+f 3636 2744 3628
+f 2768 1804 1796
+f 2768 1796 2744
+f 1795 2743 2735
+f 1795 2735 1787
+f 2743 3627 3603
+f 2743 3603 2735
+f 3627 4391 4383
+f 3627 4383 3603
+f 4391 5123 5099
+f 4391 5099 4383
+f 5123 5815 5791
+f 5123 5791 5099
+f 5815 6443 6427
+f 5815 6427 5791
+f 6443 7039 7031
+f 6443 7031 6427
+f 7039 7603 7595
+f 7039 7595 7031
+f 7603 8159 8143
+f 7603 8143 7595
+f 8159 8691 8659
+f 8159 8659 8143
+f 8691 9175 9143
+f 8691 9143 8659
+f 9175 9651 9627
+f 9175 9627 9143
+f 9651 10111 10095
+f 9651 10095 9627
+f 10111 10539 10491
+f 10111 10491 10095
+f 10539 10951 10911
+f 10539 10911 10491
+f 10951 11355 11323
+f 10951 11323 10911
+f 11355 11703 11687
+f 11355 11687 11323
+f 11703 12083 12043
+f 11703 12043 11687
+f 12083 12423 12399
+f 12083 12399 12043
+f 12423 12739 12699
+f 12423 12699 12399
+f 12739 13063 13023
+f 12739 13023 12699
+f 13063 13347 13307
+f 13063 13307 13023
+f 13347 13639 13591
+f 13347 13591 13307
+f 13639 13907 13851
+f 13639 13851 13591
+f 13907 14143 14111
+f 13907 14111 13851
+f 14143 14387 14331
+f 14143 14331 14111
+f 14387 14615 14567
+f 14387 14567 14331
+f 14615 14811 14771
+f 14615 14771 14567
+f 14811 15015 14975
+f 14811 14975 14771
+f 15015 15195 15147
+f 15015 15147 14975
+f 15195 15375 15311
+f 15195 15311 15147
+f 15375 15515 15475
+f 15375 15475 15311
+f 15515 15655 15607
+f 15515 15607 15475
+f 15655 15787 15739
+f 15655 15739 15607
+f 15787 15895 15863
+f 15787 15863 15739
+f 15895 16003 15963
+f 15895 15963 15863
+f 16003 16087 16043
+f 16003 16043 15963
+f 16087 16163 16127
+f 16087 16127 16043
+f 16163 16231 16187
+f 16163 16187 16127
+f 16231 16287 16239
+f 16231 16239 16187
+f 16287 16323 16271
+f 16287 16271 16239
+f 16323 16343 16299
+f 16323 16299 16271
+f 16343 16359 16315
+f 16343 16315 16299
+f 16359 16360 16316
+f 16359 16316 16315
+f 16360 16344 16300
+f 16360 16300 16316
+f 16344 16324 16272
+f 16344 16272 16300
+f 16324 16288 16240
+f 16324 16240 16272
+f 16288 16232 16188
+f 16288 16188 16240
+f 16232 16164 16128
+f 16232 16128 16188
+f 16164 16088 16044
+f 16164 16044 16128
+f 16088 16004 15964
+f 16088 15964 16044
+f 16004 15896 15864
+f 16004 15864 15964
+f 15896 15788 15740
+f 15896 15740 15864
+f 15788 15656 15608
+f 15788 15608 15740
+f 15656 15516 15476
+f 15656 15476 15608
+f 15516 15376 15312
+f 15516 15312 15476
+f 15376 15196 15148
+f 15376 15148 15312
+f 15196 15016 14976
+f 15196 14976 15148
+f 15016 14812 14772
+f 15016 14772 14976
+f 14812 14616 14568
+f 14812 14568 14772
+f 14616 14388 14332
+f 14616 14332 14568
+f 14388 14144 14112
+f 14388 14112 14332
+f 14144 13908 13852
+f 14144 13852 14112
+f 13908 13640 13592
+f 13908 13592 13852
+f 13640 13348 13308
+f 13640 13308 13592
+f 13348 13064 13024
+f 13348 13024 13308
+f 13064 12740 12700
+f 13064 12700 13024
+f 12740 12424 12400
+f 12740 12400 12700
+f 12424 12084 12044
+f 12424 12044 12400
+f 12084 11704 11688
+f 12084 11688 12044
+f 11704 11356 11324
+f 11704 11324 11688
+f 11356 10952 10912
+f 11356 10912 11324
+f 10952 10540 10492
+f 10952 10492 10912
+f 10540 10112 10096
+f 10540 10096 10492
+f 10112 9652 9628
+f 10112 9628 10096
+f 9652 9176 9144
+f 9652 9144 9628
+f 9176 8692 8660
+f 9176 8660 9144
+f 8692 8160 8144
+f 8692 8144 8660
+f 8160 7604 7596
+f 8160 7596 8144
+f 7604 7040 7032
+f 7604 7032 7596
+f 7040 6444 6428
+f 7040 6428 7032
+f 6444 5816 5792
+f 6444 5792 6428
+f 5816 5124 5100
+f 5816 5100 5792
+f 5124 4392 4384
+f 5124 4384 5100
+f 4392 3628 3604
+f 4392 3604 4384
+f 3628 2744 2736
+f 3628 2736 3604
+f 2744 1796 1788
+f 2744 1788 2736
+f 1787 2735 2703
+f 1787 2703 1755
+f 2735 3603 3539
+f 2735 3539 2703
+f 3603 4383 4335
+f 3603 4335 3539
+f 4383 5099 5059
+f 4383 5059 4335
+f 5099 5791 5727
+f 5099 5727 5059
+f 5791 6427 6371
+f 5791 6371 5727
+f 6427 7031 6967
+f 6427 6967 6371
+f 7031 7595 7547
+f 7031 7547 6967
+f 7595 8143 8087
+f 7595 8087 7547
+f 8143 8659 8587
+f 8143 8587 8087
+f 8659 9143 9095
+f 8659 9095 8587
+f 9143 9627 9579
+f 9143 9579 9095
+f 9627 10095 10023
+f 9627 10023 9579
+f 10095 10491 10451
+f 10095 10451 10023
+f 10491 10911 10871
+f 10491 10871 10451
+f 10911 11323 11251
+f 10911 11251 10871
+f 11323 11687 11631
+f 11323 11631 11251
+f 11687 12043 11987
+f 11687 11987 11631
+f 12043 12399 12311
+f 12043 12311 11987
+f 12399 12699 12659
+f 12399 12659 12311
+f 12699 13023 12959
+f 12699 12959 12659
+f 13023 13307 13267
+f 13023 13267 12959
+f 13307 13591 13543
+f 13307 13543 13267
+f 13591 13851 13803
+f 13591 13803 13543
+f 13851 14111 14047
+f 13851 14047 13803
+f 14111 14331 14299
+f 14111 14299 14047
+f 14331 14567 14503
+f 14331 14503 14299
+f 14567 14771 14723
+f 14567 14723 14503
+f 14771 14975 14903
+f 14771 14903 14723
+f 14975 15147 15091
+f 14975 15091 14903
+f 15147 15311 15271
+f 15147 15271 15091
+f 15311 15475 15427
+f 15311 15427 15271
+f 15475 15607 15563
+f 15475 15563 15427
+f 15607 15739 15695
+f 15607 15695 15563
+f 15739 15863 15803
+f 15739 15803 15695
+f 15863 15963 15903
+f 15863 15903 15803
+f 15963 16043 15987
+f 15963 15987 15903
+f 16043 16127 16071
+f 16043 16071 15987
+f 16127 16187 16135
+f 16127 16135 16071
+f 16187 16239 16179
+f 16187 16179 16135
+f 16239 16271 16219
+f 16239 16219 16179
+f 16271 16299 16247
+f 16271 16247 16219
+f 16299 16315 16255
+f 16299 16255 16247
+f 16315 16316 16256
+f 16315 16256 16255
+f 16316 16300 16248
+f 16316 16248 16256
+f 16300 16272 16220
+f 16300 16220 16248
+f 16272 16240 16180
+f 16272 16180 16220
+f 16240 16188 16136
+f 16240 16136 16180
+f 16188 16128 16072
+f 16188 16072 16136
+f 16128 16044 15988
+f 16128 15988 16072
+f 16044 15964 15904
+f 16044 15904 15988
+f 15964 15864 15804
+f 15964 15804 15904
+f 15864 15740 15696
+f 15864 15696 15804
+f 15740 15608 15564
+f 15740 15564 15696
+f 15608 15476 15428
+f 15608 15428 15564
+f 15476 15312 15272
+f 15476 15272 15428
+f 15312 15148 15092
+f 15312 15092 15272
+f 15148 14976 14904
+f 15148 14904 15092
+f 14976 14772 14724
+f 14976 14724 14904
+f 14772 14568 14504
+f 14772 14504 14724
+f 14568 14332 14300
+f 14568 14300 14504
+f 14332 14112 14048
+f 14332 14048 14300
+f 14112 13852 13804
+f 14112 13804 14048
+f 13852 13592 13544
+f 13852 13544 13804
+f 13592 13308 13268
+f 13592 13268 13544
+f 13308 13024 12960
+f 13308 12960 13268
+f 13024 12700 12660
+f 13024 12660 12960
+f 12700 12400 12312
+f 12700 12312 12660
+f 12400 12044 11988
+f 12400 11988 12312
+f 12044 11688 11632
+f 12044 11632 11988
+f 11688 11324 11252
+f 11688 11252 11632
+f 11324 10912 10872
+f 11324 10872 11252
+f 10912 10492 10452
+f 10912 10452 10872
+f 10492 10096 10024
+f 10492 10024 10452
+f 10096 9628 9580
+f 10096 9580 10024
+f 9628 9144 9096
+f 9628 9096 9580
+f 9144 8660 8588
+f 9144 8588 9096
+f 8660 8144 8088
+f 8660 8088 8588
+f 8144 7596 7548
+f 8144 7548 8088
+f 7596 7032 6968
+f 7596 6968 7548
+f 7032 6428 6372
+f 7032 6372 6968
+f 6428 5792 5728
+f 6428 5728 6372
+f 5792 5100 5060
+f 5792 5060 5728
+f 5100 4384 4336
+f 5100 4336 5060
+f 4384 3604 3540
+f 4384 3540 4336
+f 3604 2736 2704
+f 3604 2704 3540
+f 2736 1788 1756
+f 2736 1756 2704
+f 1755 2703 2687
+f 1755 2687 1739
+f 2703 3539 3523
+f 2703 3523 2687
+f 3539 4335 4303
+f 3539 4303 3523
+f 4335 5059 5027
+f 4335 5027 4303
+f 5059 5727 5695
+f 5059 5695 5027
+f 5727 6371 6323
+f 5727 6323 5695
+f 6371 6967 6943
+f 6371 6943 6323
+f 6967 7547 7515
+f 6967 7515 6943
+f 7547 8087 8031
+f 7547 8031 7515
+f 8087 8587 8555
+f 8087 8555 8031
+f 8587 9095 9055
+f 8587 9055 8555
+f 9095 9579 9531
+f 9095 9531 9055
+f 9579 10023 9967
+f 9579 9967 9531
+f 10023 10451 10403
+f 10023 10403 9967
+f 10451 10871 10807
+f 10451 10807 10403
+f 10871 11251 11211
+f 10871 11211 10807
+f 11251 11631 11567
+f 11251 11567 11211
+f 11631 11987 11947
+f 11631 11947 11567
+f 11987 12311 12263
+f 11987 12263 11947
+f 12311 12659 12603
+f 12311 12603 12263
+f 12659 12959 12903
+f 12659 12903 12603
+f 12959 13267 13203
+f 12959 13203 12903
+f 13267 13543 13479
+f 13267 13479 13203
+f 13543 13803 13763
+f 13543 13763 13479
+f 13803 14047 13999
+f 13803 13999 13763
+f 14047 14299 14235
+f 14047 14235 13999
+f 14299 14503 14455
+f 14299 14455 14235
+f 14503 14723 14667
+f 14503 14667 14455
+f 14723 14903 14867
+f 14723 14867 14667
+f 14903 15091 15031
+f 14903 15031 14867
+f 15091 15271 15203
+f 15091 15203 15031
+f 15271 15427 15367
+f 15271 15367 15203
+f 15427 15563 15491
+f 15427 15491 15367
+f 15563 15695 15623
+f 15563 15623 15491
+f 15695 15803 15731
+f 15695 15731 15623
+f 15803 15903 15843
+f 15803 15843 15731
+f 15903 15987 15927
+f 15903 15927 15843
+f 15987 16071 15995
+f 15987 15995 15927
+f 16071 16135 16063
+f 16071 16063 15995
+f 16135 16179 16111
+f 16135 16111 16063
+f 16179 16219 16155
+f 16179 16155 16111
+f 16219 16247 16171
+f 16219 16171 16155
+f 16247 16255 16195
+f 16247 16195 16171
+f 16255 16256 16196
+f 16255 16196 16195
+f 16256 16248 16172
+f 16256 16172 16196
+f 16248 16220 16156
+f 16248 16156 16172
+f 16220 16180 16112
+f 16220 16112 16156
+f 16180 16136 16064
+f 16180 16064 16112
+f 16136 16072 15996
+f 16136 15996 16064
+f 16072 15988 15928
+f 16072 15928 15996
+f 15988 15904 15844
+f 15988 15844 15928
+f 15904 15804 15732
+f 15904 15732 15844
+f 15804 15696 15624
+f 15804 15624 15732
+f 15696 15564 15492
+f 15696 15492 15624
+f 15564 15428 15368
+f 15564 15368 15492
+f 15428 15272 15204
+f 15428 15204 15368
+f 15272 15092 15032
+f 15272 15032 15204
+f 15092 14904 14868
+f 15092 14868 15032
+f 14904 14724 14668
+f 14904 14668 14868
+f 14724 14504 14456
+f 14724 14456 14668
+f 14504 14300 14236
+f 14504 14236 14456
+f 14300 14048 14000
+f 14300 14000 14236
+f 14048 13804 13764
+f 14048 13764 14000
+f 13804 13544 13480
+f 13804 13480 13764
+f 13544 13268 13204
+f 13544 13204 13480
+f 13268 12960 12904
+f 13268 12904 13204
+f 12960 12660 12604
+f 12960 12604 12904
+f 12660 12312 12264
+f 12660 12264 12604
+f 12312 11988 11948
+f 12312 11948 12264
+f 11988 11632 11568
+f 11988 11568 11948
+f 11632 11252 11212
+f 11632 11212 11568
+f 11252 10872 10808
+f 11252 10808 11212
+f 10872 10452 10404
+f 10872 10404 10808
+f 10452 10024 9968
+f 10452 9968 10404
+f 10024 9580 9532
+f 10024 9532 9968
+f 9580 9096 9056
+f 9580 9056 9532
+f 9096 8588 8556
+f 9096 8556 9056
+f 8588 8088 8032
+f 8588 8032 8556
+f 8088 7548 7516
+f 8088 7516 8032
+f 7548 6968 6944
+f 7548 6944 7516
+f 6968 6372 6324
+f 6968 6324 6944
+f 6372 5728 5696
+f 6372 5696 6324
+f 5728 5060 5028
+f 5728 5028 5696
+f 5060 4336 4304
+f 5060 4304 5028
+f 4336 3540 3524
+f 4336 3524 4304
+f 3540 2704 2688
+f 3540 2688 3524
+f 2704 1756 1740
+f 2704 1740 2688
+f 1739 2687 2663
+f 1739 2663 1723
+f 2687 3523 3483
+f 2687 3483 2663
+f 3523 4303 4247
+f 3523 4247 3483
+f 4303 5027 4987
+f 4303 4987 4247
+f 5027 5695 5655
+f 5027 5655 4987
+f 5695 6323 6291
+f 5695 6291 5655
+f 6323 6943 6871
+f 6323 6871 6291
+f 6943 7515 7435
+f 6943 7435 6871
+f 7515 8031 7991
+f 7515 7991 7435
+f 8031 8555 8515
+f 8031 8515 7991
+f 8555 9055 9007
+f 8555 9007 8515
+f 9055 9531 9451
+f 9055 9451 9007
+f 9531 9967 9903
+f 9531 9903 9451
+f 9967 10403 10355
+f 9967 10355 9903
+f 10403 10807 10743
+f 10403 10743 10355
+f 10807 11211 11139
+f 10807 11139 10743
+f 11211 11567 11527
+f 11211 11527 11139
+f 11567 11947 11867
+f 11567 11867 11527
+f 11947 12263 12223
+f 11947 12223 11867
+f 12263 12603 12539
+f 12263 12539 12223
+f 12603 12903 12847
+f 12603 12847 12539
+f 12903 13203 13139
+f 12903 13139 12847
+f 13203 13479 13439
+f 13203 13439 13139
+f 13479 13763 13679
+f 13479 13679 13439
+f 13763 13999 13939
+f 13763 13939 13679
+f 13999 14235 14159
+f 13999 14159 13939
+f 14235 14455 14379
+f 14235 14379 14159
+f 14455 14667 14591
+f 14455 14591 14379
+f 14667 14867 14779
+f 14667 14779 14591
+f 14867 15031 14943
+f 14867 14943 14779
+f 15031 15203 15131
+f 15031 15131 14943
+f 15203 15367 15279
+f 15203 15279 15131
+f 15367 15491 15419
+f 15367 15419 15279
+f 15491 15623 15539
+f 15491 15539 15419
+f 15623 15731 15647
+f 15623 15647 15539
+f 15731 15843 15763
+f 15731 15763 15647
+f 15843 15927 15855
+f 15843 15855 15763
+f 15927 15995 15919
+f 15927 15919 15855
+f 15995 16063 15979
+f 15995 15979 15919
+f 16063 16111 16035
+f 16063 16035 15979
+f 16111 16155 16079
+f 16111 16079 16035
+f 16155 16171 16095
+f 16155 16095 16079
+f 16171 16195 16103
+f 16171 16103 16095
+f 16195 16196 16104
+f 16195 16104 16103
+f 16196 16172 16096
+f 16196 16096 16104
+f 16172 16156 16080
+f 16172 16080 16096
+f 16156 16112 16036
+f 16156 16036 16080
+f 16112 16064 15980
+f 16112 15980 16036
+f 16064 15996 15920
+f 16064 15920 15980
+f 15996 15928 15856
+f 15996 15856 15920
+f 15928 15844 15764
+f 15928 15764 15856
+f 15844 15732 15648
+f 15844 15648 15764
+f 15732 15624 15540
+f 15732 15540 15648
+f 15624 15492 15420
+f 15624 15420 15540
+f 15492 15368 15280
+f 15492 15280 15420
+f 15368 15204 15132
+f 15368 15132 15280
+f 15204 15032 14944
+f 15204 14944 15132
+f 15032 14868 14780
+f 15032 14780 14944
+f 14868 14668 14592
+f 14868 14592 14780
+f 14668 14456 14380
+f 14668 14380 14592
+f 14456 14236 14160
+f 14456 14160 14380
+f 14236 14000 13940
+f 14236 13940 14160
+f 14000 13764 13680
+f 14000 13680 13940
+f 13764 13480 13440
+f 13764 13440 13680
+f 13480 13204 13140
+f 13480 13140 13440
+f 13204 12904 12848
+f 13204 12848 13140
+f 12904 12604 12540
+f 12904 12540 12848
+f 12604 12264 12224
+f 12604 12224 12540
+f 12264 11948 11868
+f 12264 11868 12224
+f 11948 11568 11528
+f 11948 11528 11868
+f 11568 11212 11140
+f 11568 11140 11528
+f 11212 10808 10744
+f 11212 10744 11140
+f 10808 10404 10356
+f 10808 10356 10744
+f 10404 9968 9904
+f 10404 9904 10356
+f 9968 9532 9452
+f 9968 9452 9904
+f 9532 9056 9008
+f 9532 9008 9452
+f 9056 8556 8516
+f 9056 8516 9008
+f 8556 8032 7992
+f 8556 7992 8516
+f 8032 7516 7436
+f 8032 7436 7992
+f 7516 6944 6872
+f 7516 6872 7436
+f 6944 6324 6292
+f 6944 6292 6872
+f 6324 5696 5656
+f 6324 5656 6292
+f 5696 5028 4988
+f 5696 4988 5656
+f 5028 4304 4248
+f 5028 4248 4988
+f 4304 3524 3484
+f 4304 3484 4248
+f 3524 2688 2664
+f 3524 2664 3484
+f 2688 1740 1724
+f 2688 1724 2664
+f 1723 2663 2631
+f 1723 2631 1683
+f 2663 3483 3467
+f 2663 3467 2631
+f 3483 4247 4231
+f 3483 4231 3467
+f 4247 4987 4939
+f 4247 4939 4231
+f 4987 5655 5615
+f 4987 5615 4939
+f 5655 6291 6243
+f 5655 6243 5615
+f 6291 6871 6847
+f 6291 6847 6243
+f 6871 7435 7419
+f 6871 7419 6847
+f 7435 7991 7951
+f 7435 7951 7419
+f 7991 8515 8467
+f 7991 8467 7951
+f 8515 9007 8927
+f 8515 8927 8467
+f 9007 9451 9395
+f 9007 9395 8927
+f 9451 9903 9871
+f 9451 9871 9395
+f 9903 10355 10275
+f 9903 10275 9871
+f 10355 10743 10695
+f 10355 10695 10275
+f 10743 11139 11091
+f 10743 11091 10695
+f 11139 11527 11439
+f 11139 11439 11091
+f 11527 11867 11819
+f 11527 11819 11439
+f 11867 12223 12143
+f 11867 12143 11819
+f 12223 12539 12483
+f 12223 12483 12143
+f 12539 12847 12795
+f 12539 12795 12483
+f 12847 13139 13071
+f 12847 13071 12795
+f 13139 13439 13339
+f 13139 13339 13071
+f 13439 13679 13599
+f 13439 13599 13339
+f 13679 13939 13835
+f 13679 13835 13599
+f 13939 14159 14071
+f 13939 14071 13835
+f 14159 14379 14291
+f 14159 14291 14071
+f 14379 14591 14495
+f 14379 14495 14291
+f 14591 14779 14699
+f 14591 14699 14495
+f 14779 14943 14887
+f 14779 14887 14699
+f 14943 15131 15039
+f 14943 15039 14887
+f 15131 15279 15187
+f 15131 15187 15039
+f 15279 15419 15319
+f 15279 15319 15187
+f 15419 15539 15451
+f 15419 15451 15319
+f 15539 15647 15579
+f 15539 15579 15451
+f 15647 15763 15671
+f 15647 15671 15579
+f 15763 15855 15755
+f 15763 15755 15671
+f 15855 15919 15819
+f 15855 15819 15755
+f 15919 15979 15879
+f 15919 15879 15819
+f 15979 16035 15943
+f 15979 15943 15879
+f 16035 16079 15971
+f 16035 15971 15943
+f 16079 16095 16011
+f 16079 16011 15971
+f 16095 16103 16019
+f 16095 16019 16011
+f 16103 16104 16020
+f 16103 16020 16019
+f 16104 16096 16012
+f 16104 16012 16020
+f 16096 16080 15972
+f 16096 15972 16012
+f 16080 16036 15944
+f 16080 15944 15972
+f 16036 15980 15880
+f 16036 15880 15944
+f 15980 15920 15820
+f 15980 15820 15880
+f 15920 15856 15756
+f 15920 15756 15820
+f 15856 15764 15672
+f 15856 15672 15756
+f 15764 15648 15580
+f 15764 15580 15672
+f 15648 15540 15452
+f 15648 15452 15580
+f 15540 15420 15320
+f 15540 15320 15452
+f 15420 15280 15188
+f 15420 15188 15320
+f 15280 15132 15040
+f 15280 15040 15188
+f 15132 14944 14888
+f 15132 14888 15040
+f 14944 14780 14700
+f 14944 14700 14888
+f 14780 14592 14496
+f 14780 14496 14700
+f 14592 14380 14292
+f 14592 14292 14496
+f 14380 14160 14072
+f 14380 14072 14292
+f 14160 13940 13836
+f 14160 13836 14072
+f 13940 13680 13600
+f 13940 13600 13836
+f 13680 13440 13340
+f 13680 13340 13600
+f 13440 13140 13072
+f 13440 13072 13340
+f 13140 12848 12796
+f 13140 12796 13072
+f 12848 12540 12484
+f 12848 12484 12796
+f 12540 12224 12144
+f 12540 12144 12484
+f 12224 11868 11820
+f 12224 11820 12144
+f 11868 11528 11440
+f 11868 11440 11820
+f 11528 11140 11092
+f 11528 11092 11440
+f 11140 10744 10696
+f 11140 10696 11092
+f 10744 10356 10276
+f 10744 10276 10696
+f 10356 9904 9872
+f 10356 9872 10276
+f 9904 9452 9396
+f 9904 9396 9872
+f 9452 9008 8928
+f 9452 8928 9396
+f 9008 8516 8468
+f 9008 8468 8928
+f 8516 7992 7952
+f 8516 7952 8468
+f 7992 7436 7420
+f 7992 7420 7952
+f 7436 6872 6848
+f 7436 6848 7420
+f 6872 6292 6244
+f 6872 6244 6848
+f 6292 5656 5616
+f 6292 5616 6244
+f 5656 4988 4940
+f 5656 4940 5616
+f 4988 4248 4232
+f 4988 4232 4940
+f 4248 3484 3468
+f 4248 3468 4232
+f 3484 2664 2632
+f 3484 2632 3468
+f 2664 1724 1684
+f 2664 1684 2632
+f 1683 2631 2599
+f 1683 2599 1667
+f 2631 3467 3435
+f 2631 3435 2599
+f 3467 4231 4183
+f 3467 4183 3435
+f 4231 4939 4915
+f 4231 4915 4183
+f 4939 5615 5543
+f 4939 5543 4915
+f 5615 6243 6195
+f 5615 6195 5543
+f 6243 6847 6799
+f 6243 6799 6195
+f 6847 7419 7355
+f 6847 7355 6799
+f 7419 7951 7871
+f 7419 7871 7355
+f 7951 8467 8387
+f 7951 8387 7871
+f 8467 8927 8871
+f 8467 8871 8387
+f 8927 9395 9363
+f 8927 9363 8871
+f 9395 9871 9791
+f 9395 9791 9363
+f 9871 10275 10227
+f 9871 10227 9791
+f 10275 10695 10631
+f 10275 10631 10227
+f 10695 11091 11027
+f 10695 11027 10631
+f 11091 11439 11387
+f 11091 11387 11027
+f 11439 11819 11735
+f 11439 11735 11387
+f 11819 12143 12067
+f 11819 12067 11735
+f 12143 12483 12383
+f 12143 12383 12067
+f 12483 12795 12675
+f 12483 12675 12383
+f 12795 13071 12951
+f 12795 12951 12675
+f 13071 13339 13235
+f 13071 13235 12951
+f 13339 13599 13503
+f 13339 13503 13235
+f 13599 13835 13755
+f 13599 13755 13503
+f 13835 14071 13991
+f 13835 13991 13755
+f 14071 14291 14207
+f 14071 14207 13991
+f 14291 14495 14411
+f 14291 14411 14207
+f 14495 14699 14607
+f 14495 14607 14411
+f 14699 14887 14763
+f 14699 14763 14607
+f 14887 15039 14935
+f 14887 14935 14763
+f 15039 15187 15083
+f 15039 15083 14935
+f 15187 15319 15227
+f 15187 15227 15083
+f 15319 15451 15351
+f 15319 15351 15227
+f 15451 15579 15459
+f 15451 15459 15351
+f 15579 15671 15555
+f 15579 15555 15459
+f 15671 15755 15639
+f 15671 15639 15555
+f 15755 15819 15723
+f 15755 15723 15639
+f 15819 15879 15779
+f 15819 15779 15723
+f 15879 15943 15835
+f 15879 15835 15779
+f 15943 15971 15871
+f 15943 15871 15835
+f 15971 16011 15887
+f 15971 15887 15871
+f 16011 16019 15911
+f 16011 15911 15887
+f 16019 16020 15912
+f 16019 15912 15911
+f 16020 16012 15888
+f 16020 15888 15912
+f 16012 15972 15872
+f 16012 15872 15888
+f 15972 15944 15836
+f 15972 15836 15872
+f 15944 15880 15780
+f 15944 15780 15836
+f 15880 15820 15724
+f 15880 15724 15780
+f 15820 15756 15640
+f 15820 15640 15724
+f 15756 15672 15556
+f 15756 15556 15640
+f 15672 15580 15460
+f 15672 15460 15556
+f 15580 15452 15352
+f 15580 15352 15460
+f 15452 15320 15228
+f 15452 15228 15352
+f 15320 15188 15084
+f 15320 15084 15228
+f 15188 15040 14936
+f 15188 14936 15084
+f 15040 14888 14764
+f 15040 14764 14936
+f 14888 14700 14608
+f 14888 14608 14764
+f 14700 14496 14412
+f 14700 14412 14608
+f 14496 14292 14208
+f 14496 14208 14412
+f 14292 14072 13992
+f 14292 13992 14208
+f 14072 13836 13756
+f 14072 13756 13992
+f 13836 13600 13504
+f 13836 13504 13756
+f 13600 13340 13236
+f 13600 13236 13504
+f 13340 13072 12952
+f 13340 12952 13236
+f 13072 12796 12676
+f 13072 12676 12952
+f 12796 12484 12384
+f 12796 12384 12676
+f 12484 12144 12068
+f 12484 12068 12384
+f 12144 11820 11736
+f 12144 11736 12068
+f 11820 11440 11388
+f 11820 11388 11736
+f 11440 11092 11028
+f 11440 11028 11388
+f 11092 10696 10632
+f 11092 10632 11028
+f 10696 10276 10228
+f 10696 10228 10632
+f 10276 9872 9792
+f 10276 9792 10228
+f 9872 9396 9364
+f 9872 9364 9792
+f 9396 8928 8872
+f 9396 8872 9364
+f 8928 8468 8388
+f 8928 8388 8872
+f 8468 7952 7872
+f 8468 7872 8388
+f 7952 7420 7356
+f 7952 7356 7872
+f 7420 6848 6800
+f 7420 6800 7356
+f 6848 6244 6196
+f 6848 6196 6800
+f 6244 5616 5544
+f 6244 5544 6196
+f 5616 4940 4916
+f 5616 4916 5544
+f 4940 4232 4184
+f 4940 4184 4916
+f 4232 3468 3436
+f 4232 3436 4184
+f 3468 2632 2600
+f 3468 2600 3436
+f 2632 1684 1668
+f 2632 1668 2600
+f 1667 2599 2583
+f 1667 2583 1651
+f 2599 3435 3403
+f 2599 3403 2583
+f 3435 4183 4167
+f 3435 4167 3403
+f 4183 4915 4851
+f 4183 4851 4167
+f 4915 5543 5519
+f 4915 5519 4851
+f 5543 6195 6123
+f 5543 6123 5519
+f 6195 6799 6719
+f 6195 6719 6123
+f 6799 7355 7291
+f 6799 7291 6719
+f 7355 7871 7831
+f 7355 7831 7291
+f 7871 8387 8331
+f 7871 8331 7831
+f 8387 8871 8839
+f 8387 8839 8331
+f 8871 9363 9283
+f 8871 9283 8839
+f 9363 9791 9735
+f 9363 9735 9283
+f 9791 10227 10155
+f 9791 10155 9735
+f 10227 10631 10555
+f 10227 10555 10155
+f 10631 11027 10919
+f 10631 10919 10555
+f 11027 11387 11283
+f 11027 11283 10919
+f 11387 11735 11623
+f 11387 11623 11283
+f 11735 12067 11971
+f 11735 11971 11623
+f 12067 12383 12255
+f 12067 12255 11971
+f 12383 12675 12579
+f 12383 12579 12255
+f 12675 12951 12871
+f 12675 12871 12579
+f 12951 13235 13147
+f 12951 13147 12871
+f 13235 13503 13431
+f 13235 13431 13147
+f 13503 13755 13655
+f 13503 13655 13431
+f 13755 13991 13875
+f 13755 13875 13655
+f 13991 14207 14095
+f 13991 14095 13875
+f 14207 14411 14283
+f 14207 14283 14095
+f 14411 14607 14487
+f 14411 14487 14283
+f 14607 14763 14655
+f 14607 14655 14487
+f 14763 14935 14819
+f 14763 14819 14655
+f 14935 15083 14967
+f 14935 14967 14819
+f 15083 15227 15115
+f 15083 15115 14967
+f 15227 15351 15235
+f 15227 15235 15115
+f 15351 15459 15343
+f 15351 15343 15235
+f 15459 15555 15443
+f 15459 15443 15343
+f 15555 15639 15523
+f 15555 15523 15443
+f 15639 15723 15599
+f 15639 15599 15523
+f 15723 15779 15679
+f 15723 15679 15599
+f 15779 15835 15715
+f 15779 15715 15679
+f 15835 15871 15747
+f 15835 15747 15715
+f 15871 15887 15771
+f 15871 15771 15747
+f 15887 15911 15795
+f 15887 15795 15771
+f 15911 15912 15796
+f 15911 15796 15795
+f 15912 15888 15772
+f 15912 15772 15796
+f 15888 15872 15748
+f 15888 15748 15772
+f 15872 15836 15716
+f 15872 15716 15748
+f 15836 15780 15680
+f 15836 15680 15716
+f 15780 15724 15600
+f 15780 15600 15680
+f 15724 15640 15524
+f 15724 15524 15600
+f 15640 15556 15444
+f 15640 15444 15524
+f 15556 15460 15344
+f 15556 15344 15444
+f 15460 15352 15236
+f 15460 15236 15344
+f 15352 15228 15116
+f 15352 15116 15236
+f 15228 15084 14968
+f 15228 14968 15116
+f 15084 14936 14820
+f 15084 14820 14968
+f 14936 14764 14656
+f 14936 14656 14820
+f 14764 14608 14488
+f 14764 14488 14656
+f 14608 14412 14284
+f 14608 14284 14488
+f 14412 14208 14096
+f 14412 14096 14284
+f 14208 13992 13876
+f 14208 13876 14096
+f 13992 13756 13656
+f 13992 13656 13876
+f 13756 13504 13432
+f 13756 13432 13656
+f 13504 13236 13148
+f 13504 13148 13432
+f 13236 12952 12872
+f 13236 12872 13148
+f 12952 12676 12580
+f 12952 12580 12872
+f 12676 12384 12256
+f 12676 12256 12580
+f 12384 12068 11972
+f 12384 11972 12256
+f 12068 11736 11624
+f 12068 11624 11972
+f 11736 11388 11284
+f 11736 11284 11624
+f 11388 11028 10920
+f 11388 10920 11284
+f 11028 10632 10556
+f 11028 10556 10920
+f 10632 10228 10156
+f 10632 10156 10556
+f 10228 9792 9736
+f 10228 9736 10156
+f 9792 9364 9284
+f 9792 9284 9736
+f 9364 8872 8840
+f 9364 8840 9284
+f 8872 8388 8332
+f 8872 8332 8840
+f 8388 7872 7832
+f 8388 7832 8332
+f 7872 7356 7292
+f 7872 7292 7832
+f 7356 6800 6720
+f 7356 6720 7292
+f 6800 6196 6124
+f 6800 6124 6720
+f 6196 5544 5520
+f 6196 5520 6124
+f 5544 4916 4852
+f 5544 4852 5520
+f 4916 4184 4168
+f 4916 4168 4852
+f 4184 3436 3404
+f 4184 3404 4168
+f 3436 2600 2584
+f 3436 2584 3404
+f 2600 1668 1652
+f 2600 1652 2584
+f 1651 2583 2535
+f 1651 2535 1619
+f 2583 3403 3355
+f 2583 3355 2535
+f 3403 4167 4127
+f 3403 4127 3355
+f 4167 4851 4803
+f 4167 4803 4127
+f 4851 5519 5495
+f 4851 5495 4803
+f 5519 6123 6099
+f 5519 6099 5495
+f 6123 6719 6679
+f 6123 6679 6099
+f 6719 7291 7235
+f 6719 7235 6679
+f 7291 7831 7775
+f 7291 7775 7235
+f 7831 8331 8291
+f 7831 8291 7775
+f 8331 8839 8743
+f 8331 8743 8291
+f 8839 9283 9215
+f 8839 9215 8743
+f 9283 9735 9635
+f 9283 9635 9215
+f 9735 10155 10055
+f 9735 10055 9635
+f 10155 10555 10419
+f 10155 10419 10055
+f 10555 10919 10815
+f 10555 10815 10419
+f 10919 11283 11179
+f 10919 11179 10815
+f 11283 11623 11535
+f 11283 11535 11179
+f 11623 11971 11859
+f 11623 11859 11535
+f 11971 12255 12191
+f 11971 12191 11859
+f 12255 12579 12491
+f 12255 12491 12191
+f 12579 12871 12755
+f 12579 12755 12491
+f 12871 13147 13055
+f 12871 13055 12755
+f 13147 13431 13275
+f 13147 13275 13055
+f 13431 13655 13511
+f 13431 13511 13275
+f 13655 13875 13771
+f 13655 13771 13511
+f 13875 14095 13983
+f 13875 13983 13771
+f 14095 14283 14167
+f 14095 14167 13983
+f 14283 14487 14355
+f 14283 14355 14167
+f 14487 14655 14527
+f 14487 14527 14355
+f 14655 14819 14707
+f 14655 14707 14527
+f 14819 14967 14843
+f 14819 14843 14707
+f 14967 15115 14983
+f 14967 14983 14843
+f 15115 15235 15107
+f 15115 15107 14983
+f 15235 15343 15211
+f 15235 15211 15107
+f 15343 15443 15295
+f 15343 15295 15211
+f 15443 15523 15399
+f 15443 15399 15295
+f 15523 15599 15467
+f 15523 15467 15399
+f 15599 15679 15531
+f 15599 15531 15467
+f 15679 15715 15591
+f 15679 15591 15531
+f 15715 15747 15615
+f 15715 15615 15591
+f 15747 15771 15631
+f 15747 15631 15615
+f 15771 15795 15663
+f 15771 15663 15631
+f 15795 15796 15664
+f 15795 15664 15663
+f 15796 15772 15632
+f 15796 15632 15664
+f 15772 15748 15616
+f 15772 15616 15632
+f 15748 15716 15592
+f 15748 15592 15616
+f 15716 15680 15532
+f 15716 15532 15592
+f 15680 15600 15468
+f 15680 15468 15532
+f 15600 15524 15400
+f 15600 15400 15468
+f 15524 15444 15296
+f 15524 15296 15400
+f 15444 15344 15212
+f 15444 15212 15296
+f 15344 15236 15108
+f 15344 15108 15212
+f 15236 15116 14984
+f 15236 14984 15108
+f 15116 14968 14844
+f 15116 14844 14984
+f 14968 14820 14708
+f 14968 14708 14844
+f 14820 14656 14528
+f 14820 14528 14708
+f 14656 14488 14356
+f 14656 14356 14528
+f 14488 14284 14168
+f 14488 14168 14356
+f 14284 14096 13984
+f 14284 13984 14168
+f 14096 13876 13772
+f 14096 13772 13984
+f 13876 13656 13512
+f 13876 13512 13772
+f 13656 13432 13276
+f 13656 13276 13512
+f 13432 13148 13056
+f 13432 13056 13276
+f 13148 12872 12756
+f 13148 12756 13056
+f 12872 12580 12492
+f 12872 12492 12756
+f 12580 12256 12192
+f 12580 12192 12492
+f 12256 11972 11860
+f 12256 11860 12192
+f 11972 11624 11536
+f 11972 11536 11860
+f 11624 11284 11180
+f 11624 11180 11536
+f 11284 10920 10816
+f 11284 10816 11180
+f 10920 10556 10420
+f 10920 10420 10816
+f 10556 10156 10056
+f 10556 10056 10420
+f 10156 9736 9636
+f 10156 9636 10056
+f 9736 9284 9216
+f 9736 9216 9636
+f 9284 8840 8744
+f 9284 8744 9216
+f 8840 8332 8292
+f 8840 8292 8744
+f 8332 7832 7776
+f 8332 7776 8292
+f 7832 7292 7236
+f 7832 7236 7776
+f 7292 6720 6680
+f 7292 6680 7236
+f 6720 6124 6100
+f 6720 6100 6680
+f 6124 5520 5496
+f 6124 5496 6100
+f 5520 4852 4804
+f 5520 4804 5496
+f 4852 4168 4128
+f 4852 4128 4804
+f 4168 3404 3356
+f 4168 3356 4128
+f 3404 2584 2536
+f 3404 2536 3356
+f 2584 1652 1620
+f 2584 1620 2536
+f 1619 2535 2487
+f 1619 2487 1587
+f 2535 3355 3323
+f 2535 3323 2487
+f 3355 4127 4055
+f 3355 4055 3323
+f 4127 4803 4755
+f 4127 4755 4055
+f 4803 5495 5391
+f 4803 5391 4755
+f 5495 6099 6051
+f 5495 6051 5391
+f 6099 6679 6639
+f 6099 6639 6051
+f 6679 7235 7187
+f 6679 7187 6639
+f 7235 7775 7719
+f 7235 7719 7187
+f 7775 8291 8203
+f 7775 8203 7719
+f 8291 8743 8675
+f 8291 8675 8203
+f 8743 9215 9087
+f 8743 9087 8675
+f 9215 9635 9539
+f 9215 9539 9087
+f 9635 10055 9927
+f 9635 9927 9539
+f 10055 10419 10323
+f 10055 10323 9927
+f 10419 10815 10711
+f 10419 10711 10323
+f 10815 11179 11083
+f 10815 11083 10711
+f 11179 11535 11431
+f 11179 11431 11083
+f 11535 11859 11759
+f 11535 11759 11431
+f 11859 12191 12059
+f 11859 12059 11759
+f 12191 12491 12343
+f 12191 12343 12059
+f 12491 12755 12635
+f 12491 12635 12343
+f 12755 13055 12895
+f 12755 12895 12635
+f 13055 13275 13163
+f 13055 13163 12895
+f 13275 13511 13423
+f 13275 13423 13163
+f 13511 13771 13631
+f 13511 13631 13423
+f 13771 13983 13819
+f 13771 13819 13631
+f 13983 14167 14023
+f 13983 14023 13819
+f 14167 14355 14227
+f 14167 14227 14023
+f 14355 14527 14403
+f 14355 14403 14227
+f 14527 14707 14559
+f 14527 14559 14403
+f 14707 14843 14715
+f 14707 14715 14559
+f 14843 14983 14835
+f 14843 14835 14715
+f 14983 15107 14959
+f 14983 14959 14835
+f 15107 15211 15075
+f 15107 15075 14959
+f 15211 15295 15155
+f 15211 15155 15075
+f 15295 15399 15263
+f 15295 15263 15155
+f 15399 15467 15327
+f 15399 15327 15263
+f 15467 15531 15391
+f 15467 15391 15327
+f 15531 15591 15435
+f 15531 15435 15391
+f 15591 15615 15483
+f 15591 15483 15435
+f 15615 15631 15499
+f 15615 15499 15483
+f 15631 15663 15507
+f 15631 15507 15499
+f 15663 15664 15508
+f 15663 15508 15507
+f 15664 15632 15500
+f 15664 15500 15508
+f 15632 15616 15484
+f 15632 15484 15500
+f 15616 15592 15436
+f 15616 15436 15484
+f 15592 15532 15392
+f 15592 15392 15436
+f 15532 15468 15328
+f 15532 15328 15392
+f 15468 15400 15264
+f 15468 15264 15328
+f 15400 15296 15156
+f 15400 15156 15264
+f 15296 15212 15076
+f 15296 15076 15156
+f 15212 15108 14960
+f 15212 14960 15076
+f 15108 14984 14836
+f 15108 14836 14960
+f 14984 14844 14716
+f 14984 14716 14836
+f 14844 14708 14560
+f 14844 14560 14716
+f 14708 14528 14404
+f 14708 14404 14560
+f 14528 14356 14228
+f 14528 14228 14404
+f 14356 14168 14024
+f 14356 14024 14228
+f 14168 13984 13820
+f 14168 13820 14024
+f 13984 13772 13632
+f 13984 13632 13820
+f 13772 13512 13424
+f 13772 13424 13632
+f 13512 13276 13164
+f 13512 13164 13424
+f 13276 13056 12896
+f 13276 12896 13164
+f 13056 12756 12636
+f 13056 12636 12896
+f 12756 12492 12344
+f 12756 12344 12636
+f 12492 12192 12060
+f 12492 12060 12344
+f 12192 11860 11760
+f 12192 11760 12060
+f 11860 11536 11432
+f 11860 11432 11760
+f 11536 11180 11084
+f 11536 11084 11432
+f 11180 10816 10712
+f 11180 10712 11084
+f 10816 10420 10324
+f 10816 10324 10712
+f 10420 10056 9928
+f 10420 9928 10324
+f 10056 9636 9540
+f 10056 9540 9928
+f 9636 9216 9088
+f 9636 9088 9540
+f 9216 8744 8676
+f 9216 8676 9088
+f 8744 8292 8204
+f 8744 8204 8676
+f 8292 7776 7720
+f 8292 7720 8204
+f 7776 7236 7188
+f 7776 7188 7720
+f 7236 6680 6640
+f 7236 6640 7188
+f 6680 6100 6052
+f 6680 6052 6640
+f 6100 5496 5392
+f 6100 5392 6052
+f 5496 4804 4756
+f 5496 4756 5392
+f 4804 4128 4056
+f 4804 4056 4756
+f 4128 3356 3324
+f 4128 3324 4056
+f 3356 2536 2488
+f 3356 2488 3324
+f 2536 1620 1588
+f 2536 1588 2488
+f 1587 2487 2471
+f 1587 2471 1571
+f 2487 3323 3283
+f 2487 3283 2471
+f 3323 4055 4023
+f 3323 4023 3283
+f 4055 4755 4739
+f 4055 4739 4023
+f 4755 5391 5359
+f 4755 5359 4739
+f 5391 6051 5979
+f 5391 5979 5359
+f 6051 6639 6551
+f 6051 6551 5979
+f 6639 7187 7115
+f 6639 7115 6551
+f 7187 7719 7611
+f 7187 7611 7115
+f 7719 8203 8079
+f 7719 8079 7611
+f 8203 8675 8539
+f 8203 8539 8079
+f 8675 9087 8999
+f 8675 8999 8539
+f 9087 9539 9403
+f 9087 9403 8999
+f 9539 9927 9847
+f 9539 9847 9403
+f 9927 10323 10235
+f 9927 10235 9847
+f 10323 10711 10623
+f 10323 10623 10235
+f 10711 11083 10959
+f 10711 10959 10623
+f 11083 11431 11299
+f 11083 11299 10959
+f 11431 11759 11599
+f 11431 11599 11299
+f 11759 12059 11915
+f 11759 11915 11599
+f 12059 12343 12231
+f 12059 12231 11915
+f 12343 12635 12515
+f 12343 12515 12231
+f 12635 12895 12771
+f 12635 12771 12515
+f 12895 13163 13031
+f 12895 13031 12771
+f 13163 13423 13243
+f 13163 13243 13031
+f 13423 13631 13471
+f 13423 13471 13243
+f 13631 13819 13699
+f 13631 13699 13471
+f 13819 14023 13899
+f 13819 13899 13699
+f 14023 14227 14079
+f 14023 14079 13899
+f 14227 14403 14251
+f 14227 14251 14079
+f 14403 14559 14419
+f 14403 14419 14251
+f 14559 14715 14535
+f 14559 14535 14419
+f 14715 14835 14691
+f 14715 14691 14535
+f 14835 14959 14803
+f 14835 14803 14691
+f 14959 15075 14911
+f 14959 14911 14803
+f 15075 15155 15023
+f 15075 15023 14911
+f 15155 15263 15099
+f 15155 15099 15023
+f 15263 15327 15171
+f 15263 15171 15099
+f 15327 15391 15243
+f 15327 15243 15171
+f 15391 15435 15287
+f 15391 15287 15243
+f 15435 15483 15303
+f 15435 15303 15287
+f 15483 15499 15335
+f 15483 15335 15303
+f 15499 15507 15359
+f 15499 15359 15335
+f 15507 15508 15360
+f 15507 15360 15359
+f 15508 15500 15336
+f 15508 15336 15360
+f 15500 15484 15304
+f 15500 15304 15336
+f 15484 15436 15288
+f 15484 15288 15304
+f 15436 15392 15244
+f 15436 15244 15288
+f 15392 15328 15172
+f 15392 15172 15244
+f 15328 15264 15100
+f 15328 15100 15172
+f 15264 15156 15024
+f 15264 15024 15100
+f 15156 15076 14912
+f 15156 14912 15024
+f 15076 14960 14804
+f 15076 14804 14912
+f 14960 14836 14692
+f 14960 14692 14804
+f 14836 14716 14536
+f 14836 14536 14692
+f 14716 14560 14420
+f 14716 14420 14536
+f 14560 14404 14252
+f 14560 14252 14420
+f 14404 14228 14080
+f 14404 14080 14252
+f 14228 14024 13900
+f 14228 13900 14080
+f 14024 13820 13700
+f 14024 13700 13900
+f 13820 13632 13472
+f 13820 13472 13700
+f 13632 13424 13244
+f 13632 13244 13472
+f 13424 13164 13032
+f 13424 13032 13244
+f 13164 12896 12772
+f 13164 12772 13032
+f 12896 12636 12516
+f 12896 12516 12772
+f 12636 12344 12232
+f 12636 12232 12516
+f 12344 12060 11916
+f 12344 11916 12232
+f 12060 11760 11600
+f 12060 11600 11916
+f 11760 11432 11300
+f 11760 11300 11600
+f 11432 11084 10960
+f 11432 10960 11300
+f 11084 10712 10624
+f 11084 10624 10960
+f 10712 10324 10236
+f 10712 10236 10624
+f 10324 9928 9848
+f 10324 9848 10236
+f 9928 9540 9404
+f 9928 9404 9848
+f 9540 9088 9000
+f 9540 9000 9404
+f 9088 8676 8540
+f 9088 8540 9000
+f 8676 8204 8080
+f 8676 8080 8540
+f 8204 7720 7612
+f 8204 7612 8080
+f 7720 7188 7116
+f 7720 7116 7612
+f 7188 6640 6552
+f 7188 6552 7116
+f 6640 6052 5980
+f 6640 5980 6552
+f 6052 5392 5360
+f 6052 5360 5980
+f 5392 4756 4740
+f 5392 4740 5360
+f 4756 4056 4024
+f 4756 4024 4740
+f 4056 3324 3284
+f 4056 3284 4024
+f 3324 2488 2472
+f 3324 2472 3284
+f 2488 1588 1572
+f 2488 1572 2472
+f 1571 2471 2455
+f 1571 2455 1555
+f 2471 3283 3251
+f 2471 3251 2455
+f 3283 4023 3991
+f 3283 3991 3251
+f 4023 4739 4659
+f 4023 4659 3991
+f 4739 5359 5311
+f 4739 5311 4659
+f 5359 5979 5915
+f 5359 5915 5311
+f 5979 6551 6495
+f 5979 6495 5915
+f 6551 7115 7023
+f 6551 7023 6495
+f 7115 7611 7491
+f 7115 7491 7023
+f 7611 8079 7983
+f 7611 7983 7491
+f 8079 8539 8435
+f 8079 8435 7983
+f 8539 8999 8879
+f 8539 8879 8435
+f 8999 9403 9323
+f 8999 9323 8879
+f 9403 9847 9743
+f 9403 9743 9323
+f 9847 10235 10127
+f 9847 10127 9743
+f 10235 10623 10467
+f 10235 10467 10127
+f 10623 10959 10831
+f 10623 10831 10467
+f 10959 11299 11155
+f 10959 11155 10831
+f 11299 11599 11495
+f 11299 11495 11155
+f 11599 11915 11811
+f 11599 11811 11495
+f 11915 12231 12091
+f 11915 12091 11811
+f 12231 12515 12367
+f 12231 12367 12091
+f 12515 12771 12627
+f 12515 12627 12367
+f 12771 13031 12879
+f 12771 12879 12627
+f 13031 13243 13115
+f 13031 13115 12879
+f 13243 13471 13331
+f 13243 13331 13115
+f 13471 13699 13527
+f 13471 13527 13331
+f 13699 13899 13731
+f 13699 13731 13527
+f 13899 14079 13923
+f 13899 13923 13731
+f 14079 14251 14087
+f 14079 14087 13923
+f 14251 14419 14243
+f 14251 14243 14087
+f 14419 14535 14395
+f 14419 14395 14243
+f 14535 14691 14519
+f 14535 14519 14395
+f 14691 14803 14639
+f 14691 14639 14519
+f 14803 14911 14747
+f 14803 14747 14639
+f 14911 15023 14859
+f 14911 14859 14747
+f 15023 15099 14927
+f 15023 14927 14859
+f 15099 15171 15007
+f 15099 15007 14927
+f 15171 15243 15063
+f 15171 15063 15007
+f 15243 15287 15123
+f 15243 15123 15063
+f 15287 15303 15139
+f 15287 15139 15123
+f 15303 15335 15163
+f 15303 15163 15139
+f 15335 15359 15179
+f 15335 15179 15163
+f 15359 15360 15180
+f 15359 15180 15179
+f 15360 15336 15164
+f 15360 15164 15180
+f 15336 15304 15140
+f 15336 15140 15164
+f 15304 15288 15124
+f 15304 15124 15140
+f 15288 15244 15064
+f 15288 15064 15124
+f 15244 15172 15008
+f 15244 15008 15064
+f 15172 15100 14928
+f 15172 14928 15008
+f 15100 15024 14860
+f 15100 14860 14928
+f 15024 14912 14748
+f 15024 14748 14860
+f 14912 14804 14640
+f 14912 14640 14748
+f 14804 14692 14520
+f 14804 14520 14640
+f 14692 14536 14396
+f 14692 14396 14520
+f 14536 14420 14244
+f 14536 14244 14396
+f 14420 14252 14088
+f 14420 14088 14244
+f 14252 14080 13924
+f 14252 13924 14088
+f 14080 13900 13732
+f 14080 13732 13924
+f 13900 13700 13528
+f 13900 13528 13732
+f 13700 13472 13332
+f 13700 13332 13528
+f 13472 13244 13116
+f 13472 13116 13332
+f 13244 13032 12880
+f 13244 12880 13116
+f 13032 12772 12628
+f 13032 12628 12880
+f 12772 12516 12368
+f 12772 12368 12628
+f 12516 12232 12092
+f 12516 12092 12368
+f 12232 11916 11812
+f 12232 11812 12092
+f 11916 11600 11496
+f 11916 11496 11812
+f 11600 11300 11156
+f 11600 11156 11496
+f 11300 10960 10832
+f 11300 10832 11156
+f 10960 10624 10468
+f 10960 10468 10832
+f 10624 10236 10128
+f 10624 10128 10468
+f 10236 9848 9744
+f 10236 9744 10128
+f 9848 9404 9324
+f 9848 9324 9744
+f 9404 9000 8880
+f 9404 8880 9324
+f 9000 8540 8436
+f 9000 8436 8880
+f 8540 8080 7984
+f 8540 7984 8436
+f 8080 7612 7492
+f 8080 7492 7984
+f 7612 7116 7024
+f 7612 7024 7492
+f 7116 6552 6496
+f 7116 6496 7024
+f 6552 5980 5916
+f 6552 5916 6496
+f 5980 5360 5312
+f 5980 5312 5916
+f 5360 4740 4660
+f 5360 4660 5312
+f 4740 4024 3992
+f 4740 3992 4660
+f 4024 3284 3252
+f 4024 3252 3992
+f 3284 2472 2456
+f 3284 2456 3252
+f 2472 1572 1556
+f 2472 1556 2456
+f 1555 2455 2407
+f 1555 2407 1523
+f 2455 3251 3187
+f 2455 3187 2407
+f 3251 3991 3919
+f 3251 3919 3187
+f 3991 4659 4627
+f 3991 4627 3919
+f 4659 5311 5263
+f 4659 5263 4627
+f 5311 5915 5867
+f 5311 5867 5263
+f 5915 6495 6387
+f 5915 6387 5867
+f 6495 7023 6887
+f 6495 6887 6387
+f 7023 7491 7411
+f 7023 7411 6887
+f 7491 7983 7855
+f 7491 7855 7411
+f 7983 8435 8339
+f 7983 8339 7855
+f 8435 8879 8791
+f 8435 8791 8339
+f 8879 9323 9223
+f 8879 9223 8791
+f 9323 9743 9595
+f 9323 9595 9223
+f 9743 10127 9951
+f 9743 9951 9595
+f 10127 10467 10339
+f 10127 10339 9951
+f 10467 10831 10679
+f 10467 10679 10339
+f 10831 11155 11043
+f 10831 11043 10679
+f 11155 11495 11363
+f 11155 11363 11043
+f 11495 11811 11639
+f 11495 11639 11363
+f 11811 12091 11923
+f 11811 11923 11639
+f 12091 12367 12215
+f 12091 12215 11923
+f 12367 12627 12475
+f 12367 12475 12215
+f 12627 12879 12707
+f 12627 12707 12475
+f 12879 13115 12935
+f 12879 12935 12707
+f 13115 13331 13179
+f 13115 13179 12935
+f 13331 13527 13363
+f 13331 13363 13179
+f 13527 13731 13567
+f 13527 13567 13363
+f 13731 13923 13747
+f 13731 13747 13567
+f 13923 14087 13915
+f 13923 13915 13747
+f 14087 14243 14063
+f 14087 14063 13915
+f 14243 14395 14219
+f 14243 14219 14063
+f 14395 14519 14323
+f 14395 14323 14219
+f 14519 14639 14463
+f 14519 14463 14323
+f 14639 14747 14575
+f 14639 14575 14463
+f 14747 14859 14675
+f 14747 14675 14575
+f 14859 14927 14739
+f 14859 14739 14675
+f 14927 15007 14827
+f 14927 14827 14739
+f 15007 15063 14895
+f 15007 14895 14827
+f 15063 15123 14919
+f 15063 14919 14895
+f 15123 15139 14951
+f 15123 14951 14919
+f 15139 15163 14991
+f 15139 14991 14951
+f 15163 15179 14999
+f 15163 14999 14991
+f 15179 15180 15000
+f 15179 15000 14999
+f 15180 15164 14992
+f 15180 14992 15000
+f 15164 15140 14952
+f 15164 14952 14992
+f 15140 15124 14920
+f 15140 14920 14952
+f 15124 15064 14896
+f 15124 14896 14920
+f 15064 15008 14828
+f 15064 14828 14896
+f 15008 14928 14740
+f 15008 14740 14828
+f 14928 14860 14676
+f 14928 14676 14740
+f 14860 14748 14576
+f 14860 14576 14676
+f 14748 14640 14464
+f 14748 14464 14576
+f 14640 14520 14324
+f 14640 14324 14464
+f 14520 14396 14220
+f 14520 14220 14324
+f 14396 14244 14064
+f 14396 14064 14220
+f 14244 14088 13916
+f 14244 13916 14064
+f 14088 13924 13748
+f 14088 13748 13916
+f 13924 13732 13568
+f 13924 13568 13748
+f 13732 13528 13364
+f 13732 13364 13568
+f 13528 13332 13180
+f 13528 13180 13364
+f 13332 13116 12936
+f 13332 12936 13180
+f 13116 12880 12708
+f 13116 12708 12936
+f 12880 12628 12476
+f 12880 12476 12708
+f 12628 12368 12216
+f 12628 12216 12476
+f 12368 12092 11924
+f 12368 11924 12216
+f 12092 11812 11640
+f 12092 11640 11924
+f 11812 11496 11364
+f 11812 11364 11640
+f 11496 11156 11044
+f 11496 11044 11364
+f 11156 10832 10680
+f 11156 10680 11044
+f 10832 10468 10340
+f 10832 10340 10680
+f 10468 10128 9952
+f 10468 9952 10340
+f 10128 9744 9596
+f 10128 9596 9952
+f 9744 9324 9224
+f 9744 9224 9596
+f 9324 8880 8792
+f 9324 8792 9224
+f 8880 8436 8340
+f 8880 8340 8792
+f 8436 7984 7856
+f 8436 7856 8340
+f 7984 7492 7412
+f 7984 7412 7856
+f 7492 7024 6888
+f 7492 6888 7412
+f 7024 6496 6388
+f 7024 6388 6888
+f 6496 5916 5868
+f 6496 5868 6388
+f 5916 5312 5264
+f 5916 5264 5868
+f 5312 4660 4628
+f 5312 4628 5264
+f 4660 3992 3920
+f 4660 3920 4628
+f 3992 3252 3188
+f 3992 3188 3920
+f 3252 2456 2408
+f 3252 2408 3188
+f 2456 1556 1524
+f 2456 1524 2408
+f 1523 2407 2375
+f 1523 2375 1499
+f 2407 3187 3155
+f 2407 3155 2375
+f 3187 3919 3895
+f 3187 3895 3155
+f 3919 4627 4563
+f 3919 4563 3895
+f 4627 5263 5199
+f 4627 5199 4563
+f 5263 5867 5751
+f 5263 5751 5199
+f 5867 6387 6267
+f 5867 6267 5751
+f 6387 6887 6791
+f 6387 6791 6267
+f 6887 7411 7283
+f 6887 7283 6791
+f 7411 7855 7783
+f 7411 7783 7283
+f 7855 8339 8243
+f 7855 8243 7783
+f 8339 8791 8683
+f 8339 8683 8243
+f 8791 9223 9063
+f 8791 9063 8683
+f 9223 9595 9443
+f 9223 9443 9063
+f 9595 9951 9831
+f 9595 9831 9443
+f 9951 10339 10195
+f 9951 10195 9831
+f 10339 10679 10563
+f 10339 10563 10195
+f 10679 11043 10863
+f 10679 10863 10563
+f 11043 11363 11171
+f 11043 11171 10863
+f 11363 11639 11487
+f 11363 11487 11171
+f 11639 11923 11795
+f 11639 11795 11487
+f 11923 12215 12035
+f 11923 12035 11795
+f 12215 12475 12287
+f 12215 12287 12035
+f 12475 12707 12531
+f 12475 12531 12287
+f 12707 12935 12779
+f 12707 12779 12531
+f 12935 13179 12975
+f 12935 12975 12779
+f 13179 13363 13195
+f 13179 13195 12975
+f 13363 13567 13403
+f 13363 13403 13195
+f 13567 13747 13559
+f 13567 13559 13403
+f 13747 13915 13723
+f 13747 13723 13559
+f 13915 14063 13883
+f 13915 13883 13723
+f 14063 14219 14015
+f 14063 14015 13883
+f 14219 14323 14151
+f 14219 14151 14015
+f 14323 14463 14275
+f 14323 14275 14151
+f 14463 14575 14371
+f 14463 14371 14275
+f 14575 14675 14471
+f 14575 14471 14371
+f 14675 14739 14551
+f 14675 14551 14471
+f 14739 14827 14623
+f 14739 14623 14551
+f 14827 14895 14683
+f 14827 14683 14623
+f 14895 14919 14731
+f 14895 14731 14683
+f 14919 14951 14755
+f 14919 14755 14731
+f 14951 14991 14787
+f 14951 14787 14755
+f 14991 14999 14795
+f 14991 14795 14787
+f 14999 15000 14796
+f 14999 14796 14795
+f 15000 14992 14788
+f 15000 14788 14796
+f 14992 14952 14756
+f 14992 14756 14788
+f 14952 14920 14732
+f 14952 14732 14756
+f 14920 14896 14684
+f 14920 14684 14732
+f 14896 14828 14624
+f 14896 14624 14684
+f 14828 14740 14552
+f 14828 14552 14624
+f 14740 14676 14472
+f 14740 14472 14552
+f 14676 14576 14372
+f 14676 14372 14472
+f 14576 14464 14276
+f 14576 14276 14372
+f 14464 14324 14152
+f 14464 14152 14276
+f 14324 14220 14016
+f 14324 14016 14152
+f 14220 14064 13884
+f 14220 13884 14016
+f 14064 13916 13724
+f 14064 13724 13884
+f 13916 13748 13560
+f 13916 13560 13724
+f 13748 13568 13404
+f 13748 13404 13560
+f 13568 13364 13196
+f 13568 13196 13404
+f 13364 13180 12976
+f 13364 12976 13196
+f 13180 12936 12780
+f 13180 12780 12976
+f 12936 12708 12532
+f 12936 12532 12780
+f 12708 12476 12288
+f 12708 12288 12532
+f 12476 12216 12036
+f 12476 12036 12288
+f 12216 11924 11796
+f 12216 11796 12036
+f 11924 11640 11488
+f 11924 11488 11796
+f 11640 11364 11172
+f 11640 11172 11488
+f 11364 11044 10864
+f 11364 10864 11172
+f 11044 10680 10564
+f 11044 10564 10864
+f 10680 10340 10196
+f 10680 10196 10564
+f 10340 9952 9832
+f 10340 9832 10196
+f 9952 9596 9444
+f 9952 9444 9832
+f 9596 9224 9064
+f 9596 9064 9444
+f 9224 8792 8684
+f 9224 8684 9064
+f 8792 8340 8244
+f 8792 8244 8684
+f 8340 7856 7784
+f 8340 7784 8244
+f 7856 7412 7284
+f 7856 7284 7784
+f 7412 6888 6792
+f 7412 6792 7284
+f 6888 6388 6268
+f 6888 6268 6792
+f 6388 5868 5752
+f 6388 5752 6268
+f 5868 5264 5200
+f 5868 5200 5752
+f 5264 4628 4564
+f 5264 4564 5200
+f 4628 3920 3896
+f 4628 3896 4564
+f 3920 3188 3156
+f 3920 3156 3896
+f 3188 2408 2376
+f 3188 2376 3156
+f 2408 1524 1500
+f 2408 1500 2376
+f 1499 2375 2335
+f 1499 2335 1475
+f 2375 3155 3123
+f 2375 3123 2335
+f 3155 3895 3823
+f 3155 3823 3123
+f 3895 4563 4499
+f 3895 4499 3823
+f 4563 5199 5107
+f 4563 5107 4499
+f 5199 5751 5631
+f 5199 5631 5107
+f 5751 6267 6155
+f 5751 6155 5631
+f 6267 6791 6687
+f 6267 6687 6155
+f 6791 7283 7211
+f 6791 7211 6687
+f 7283 7783 7663
+f 7283 7663 7211
+f 7783 8243 8111
+f 7783 8111 7663
+f 8243 8683 8507
+f 8243 8507 8111
+f 8683 9063 8919
+f 8683 8919 8507
+f 9063 9443 9315
+f 9063 9315 8919
+f 9443 9831 9703
+f 9443 9703 9315
+f 9831 10195 10047
+f 9831 10047 9703
+f 10195 10563 10379
+f 10195 10379 10047
+f 10563 10863 10703
+f 10563 10703 10379
+f 10863 11171 11035
+f 10863 11035 10703
+f 11171 11487 11331
+f 11171 11331 11035
+f 11487 11795 11575
+f 11487 11575 11331
+f 11795 12035 11851
+f 11795 11851 11575
+f 12035 12287 12131
+f 12035 12131 11851
+f 12287 12531 12351
+f 12287 12351 12131
+f 12531 12779 12571
+f 12531 12571 12351
+f 12779 12975 12823
+f 12779 12823 12571
+f 12975 13195 12991
+f 12975 12991 12823
+f 13195 13403 13187
+f 13195 13187 12991
+f 13403 13559 13355
+f 13403 13355 13187
+f 13559 13723 13519
+f 13559 13519 13355
+f 13723 13883 13691
+f 13723 13691 13519
+f 13883 14015 13811
+f 13883 13811 13691
+f 14015 14151 13959
+f 14015 13959 13811
+f 14151 14275 14055
+f 14151 14055 13959
+f 14275 14371 14175
+f 14275 14175 14055
+f 14371 14471 14267
+f 14371 14267 14175
+f 14471 14551 14339
+f 14471 14339 14267
+f 14551 14623 14435
+f 14551 14435 14339
+f 14623 14683 14479
+f 14623 14479 14435
+f 14683 14731 14511
+f 14683 14511 14479
+f 14731 14755 14543
+f 14731 14543 14511
+f 14755 14787 14583
+f 14755 14583 14543
+f 14787 14795 14599
+f 14787 14599 14583
+f 14795 14796 14600
+f 14795 14600 14599
+f 14796 14788 14584
+f 14796 14584 14600
+f 14788 14756 14544
+f 14788 14544 14584
+f 14756 14732 14512
+f 14756 14512 14544
+f 14732 14684 14480
+f 14732 14480 14512
+f 14684 14624 14436
+f 14684 14436 14480
+f 14624 14552 14340
+f 14624 14340 14436
+f 14552 14472 14268
+f 14552 14268 14340
+f 14472 14372 14176
+f 14472 14176 14268
+f 14372 14276 14056
+f 14372 14056 14176
+f 14276 14152 13960
+f 14276 13960 14056
+f 14152 14016 13812
+f 14152 13812 13960
+f 14016 13884 13692
+f 14016 13692 13812
+f 13884 13724 13520
+f 13884 13520 13692
+f 13724 13560 13356
+f 13724 13356 13520
+f 13560 13404 13188
+f 13560 13188 13356
+f 13404 13196 12992
+f 13404 12992 13188
+f 13196 12976 12824
+f 13196 12824 12992
+f 12976 12780 12572
+f 12976 12572 12824
+f 12780 12532 12352
+f 12780 12352 12572
+f 12532 12288 12132
+f 12532 12132 12352
+f 12288 12036 11852
+f 12288 11852 12132
+f 12036 11796 11576
+f 12036 11576 11852
+f 11796 11488 11332
+f 11796 11332 11576
+f 11488 11172 11036
+f 11488 11036 11332
+f 11172 10864 10704
+f 11172 10704 11036
+f 10864 10564 10380
+f 10864 10380 10704
+f 10564 10196 10048
+f 10564 10048 10380
+f 10196 9832 9704
+f 10196 9704 10048
+f 9832 9444 9316
+f 9832 9316 9704
+f 9444 9064 8920
+f 9444 8920 9316
+f 9064 8684 8508
+f 9064 8508 8920
+f 8684 8244 8112
+f 8684 8112 8508
+f 8244 7784 7664
+f 8244 7664 8112
+f 7784 7284 7212
+f 7784 7212 7664
+f 7284 6792 6688
+f 7284 6688 7212
+f 6792 6268 6156
+f 6792 6156 6688
+f 6268 5752 5632
+f 6268 5632 6156
+f 5752 5200 5108
+f 5752 5108 5632
+f 5200 4564 4500
+f 5200 4500 5108
+f 4564 3896 3824
+f 4564 3824 4500
+f 3896 3156 3124
+f 3896 3124 3824
+f 3156 2376 2336
+f 3156 2336 3124
+f 2376 1500 1476
+f 2376 1476 2336
+f 1475 2335 2287
+f 1475 2287 1419
+f 2335 3123 3075
+f 2335 3075 2287
+f 3123 3823 3791
+f 3123 3791 3075
+f 3823 4499 4467
+f 3823 4467 3791
+f 4499 5107 4979
+f 4499 4979 4467
+f 5107 5631 5527
+f 5107 5527 4979
+f 5631 6155 6083
+f 5631 6083 5527
+f 6155 6687 6591
+f 6155 6591 6083
+f 6687 7211 7099
+f 6687 7099 6591
+f 7211 7663 7523
+f 7211 7523 7099
+f 7663 8111 7959
+f 7663 7959 7523
+f 8111 8507 8379
+f 8111 8379 7959
+f 8507 8919 8799
+f 8507 8799 8379
+f 8919 9315 9167
+f 8919 9167 8799
+f 9315 9703 9523
+f 9315 9523 9167
+f 9703 10047 9879
+f 9703 9879 9523
+f 10047 10379 10219
+f 10047 10219 9879
+f 10379 10703 10547
+f 10379 10547 10219
+f 10703 11035 10839
+f 10703 10839 10547
+f 11035 11331 11115
+f 11035 11115 10839
+f 11331 11575 11415
+f 11331 11415 11115
+f 11575 11851 11671
+f 11575 11671 11415
+f 11851 12131 11907
+f 11851 11907 11671
+f 12131 12351 12167
+f 12131 12167 11907
+f 12351 12571 12407
+f 12351 12407 12167
+f 12571 12823 12587
+f 12571 12587 12407
+f 12823 12991 12815
+f 12823 12815 12587
+f 12991 13187 12967
+f 12991 12967 12815
+f 13187 13355 13155
+f 13187 13155 12967
+f 13355 13519 13315
+f 13355 13315 13155
+f 13519 13691 13455
+f 13519 13455 13315
+f 13691 13811 13615
+f 13691 13615 13455
+f 13811 13959 13739
+f 13811 13739 13615
+f 13959 14055 13843
+f 13959 13843 13739
+f 14055 14175 13967
+f 14055 13967 13843
+f 14175 14267 14031
+f 14175 14031 13967
+f 14267 14339 14127
+f 14267 14127 14031
+f 14339 14435 14199
+f 14339 14199 14127
+f 14435 14479 14259
+f 14435 14259 14199
+f 14479 14511 14307
+f 14479 14307 14259
+f 14511 14543 14315
+f 14511 14315 14307
+f 14543 14583 14347
+f 14543 14347 14315
+f 14583 14599 14363
+f 14583 14363 14347
+f 14599 14600 14364
+f 14599 14364 14363
+f 14600 14584 14348
+f 14600 14348 14364
+f 14584 14544 14316
+f 14584 14316 14348
+f 14544 14512 14308
+f 14544 14308 14316
+f 14512 14480 14260
+f 14512 14260 14308
+f 14480 14436 14200
+f 14480 14200 14260
+f 14436 14340 14128
+f 14436 14128 14200
+f 14340 14268 14032
+f 14340 14032 14128
+f 14268 14176 13968
+f 14268 13968 14032
+f 14176 14056 13844
+f 14176 13844 13968
+f 14056 13960 13740
+f 14056 13740 13844
+f 13960 13812 13616
+f 13960 13616 13740
+f 13812 13692 13456
+f 13812 13456 13616
+f 13692 13520 13316
+f 13692 13316 13456
+f 13520 13356 13156
+f 13520 13156 13316
+f 13356 13188 12968
+f 13356 12968 13156
+f 13188 12992 12816
+f 13188 12816 12968
+f 12992 12824 12588
+f 12992 12588 12816
+f 12824 12572 12408
+f 12824 12408 12588
+f 12572 12352 12168
+f 12572 12168 12408
+f 12352 12132 11908
+f 12352 11908 12168
+f 12132 11852 11672
+f 12132 11672 11908
+f 11852 11576 11416
+f 11852 11416 11672
+f 11576 11332 11116
+f 11576 11116 11416
+f 11332 11036 10840
+f 11332 10840 11116
+f 11036 10704 10548
+f 11036 10548 10840
+f 10704 10380 10220
+f 10704 10220 10548
+f 10380 10048 9880
+f 10380 9880 10220
+f 10048 9704 9524
+f 10048 9524 9880
+f 9704 9316 9168
+f 9704 9168 9524
+f 9316 8920 8800
+f 9316 8800 9168
+f 8920 8508 8380
+f 8920 8380 8800
+f 8508 8112 7960
+f 8508 7960 8380
+f 8112 7664 7524
+f 8112 7524 7960
+f 7664 7212 7100
+f 7664 7100 7524
+f 7212 6688 6592
+f 7212 6592 7100
+f 6688 6156 6084
+f 6688 6084 6592
+f 6156 5632 5528
+f 6156 5528 6084
+f 5632 5108 4980
+f 5632 4980 5528
+f 5108 4500 4468
+f 5108 4468 4980
+f 4500 3824 3792
+f 4500 3792 4468
+f 3824 3124 3076
+f 3824 3076 3792
+f 3124 2336 2288
+f 3124 2288 3076
+f 2336 1476 1420
+f 2336 1420 2288
+f 1419 2287 2255
+f 1419 2255 1403
+f 2287 3075 3027
+f 2287 3027 2255
+f 3075 3791 3727
+f 3075 3727 3027
+f 3791 4467 4327
+f 3791 4327 3727
+f 4467 4979 4883
+f 4467 4883 4327
+f 4979 5527 5423
+f 4979 5423 4883
+f 5527 6083 5971
+f 5527 5971 5423
+f 6083 6591 6503
+f 6083 6503 5971
+f 6591 7099 6927
+f 6591 6927 6503
+f 7099 7523 7387
+f 7099 7387 6927
+f 7523 7959 7807
+f 7523 7807 7387
+f 7959 8379 8259
+f 7959 8259 7807
+f 8379 8799 8619
+f 8379 8619 8259
+f 8799 9167 8991
+f 8799 8991 8619
+f 9167 9523 9371
+f 9167 9371 8991
+f 9523 9879 9727
+f 9523 9727 9371
+f 9879 10219 10039
+f 9879 10039 9727
+f 10219 10547 10347
+f 10219 10347 10039
+f 10547 10839 10647
+f 10547 10647 10347
+f 10839 11115 10943
+f 10839 10943 10647
+f 11115 11415 11203
+f 11115 11203 10943
+f 11415 11671 11471
+f 11415 11471 11203
+f 11671 11907 11719
+f 11671 11719 11471
+f 11907 12167 11963
+f 11907 11963 11719
+f 12167 12407 12175
+f 12167 12175 11963
+f 12407 12587 12391
+f 12407 12391 12175
+f 12587 12815 12563
+f 12587 12563 12391
+f 12815 12967 12763
+f 12815 12763 12563
+f 12967 13155 12919
+f 12967 12919 12763
+f 13155 13315 13087
+f 13155 13087 12919
+f 13315 13455 13227
+f 13315 13227 13087
+f 13455 13615 13395
+f 13455 13395 13227
+f 13615 13739 13495
+f 13615 13495 13395
+f 13739 13843 13623
+f 13739 13623 13495
+f 13843 13967 13715
+f 13843 13715 13623
+f 13967 14031 13795
+f 13967 13795 13715
+f 14031 14127 13891
+f 14031 13891 13795
+f 14127 14199 13975
+f 14127 13975 13891
+f 14199 14259 14007
+f 14199 14007 13975
+f 14259 14307 14039
+f 14259 14039 14007
+f 14307 14315 14103
+f 14307 14103 14039
+f 14315 14347 14119
+f 14315 14119 14103
+f 14347 14363 14135
+f 14347 14135 14119
+f 14363 14364 14136
+f 14363 14136 14135
+f 14364 14348 14120
+f 14364 14120 14136
+f 14348 14316 14104
+f 14348 14104 14120
+f 14316 14308 14040
+f 14316 14040 14104
+f 14308 14260 14008
+f 14308 14008 14040
+f 14260 14200 13976
+f 14260 13976 14008
+f 14200 14128 13892
+f 14200 13892 13976
+f 14128 14032 13796
+f 14128 13796 13892
+f 14032 13968 13716
+f 14032 13716 13796
+f 13968 13844 13624
+f 13968 13624 13716
+f 13844 13740 13496
+f 13844 13496 13624
+f 13740 13616 13396
+f 13740 13396 13496
+f 13616 13456 13228
+f 13616 13228 13396
+f 13456 13316 13088
+f 13456 13088 13228
+f 13316 13156 12920
+f 13316 12920 13088
+f 13156 12968 12764
+f 13156 12764 12920
+f 12968 12816 12564
+f 12968 12564 12764
+f 12816 12588 12392
+f 12816 12392 12564
+f 12588 12408 12176
+f 12588 12176 12392
+f 12408 12168 11964
+f 12408 11964 12176
+f 12168 11908 11720
+f 12168 11720 11964
+f 11908 11672 11472
+f 11908 11472 11720
+f 11672 11416 11204
+f 11672 11204 11472
+f 11416 11116 10944
+f 11416 10944 11204
+f 11116 10840 10648
+f 11116 10648 10944
+f 10840 10548 10348
+f 10840 10348 10648
+f 10548 10220 10040
+f 10548 10040 10348
+f 10220 9880 9728
+f 10220 9728 10040
+f 9880 9524 9372
+f 9880 9372 9728
+f 9524 9168 8992
+f 9524 8992 9372
+f 9168 8800 8620
+f 9168 8620 8992
+f 8800 8380 8260
+f 8800 8260 8620
+f 8380 7960 7808
+f 8380 7808 8260
+f 7960 7524 7388
+f 7960 7388 7808
+f 7524 7100 6928
+f 7524 6928 7388
+f 7100 6592 6504
+f 7100 6504 6928
+f 6592 6084 5972
+f 6592 5972 6504
+f 6084 5528 5424
+f 6084 5424 5972
+f 5528 4980 4884
+f 5528 4884 5424
+f 4980 4468 4328
+f 4980 4328 4884
+f 4468 3792 3728
+f 4468 3728 4328
+f 3792 3076 3028
+f 3792 3028 3728
+f 3076 2288 2256
+f 3076 2256 3028
+f 2288 1420 1404
+f 2288 1404 2256
+f 1403 2255 2223
+f 1403 2223 1387
+f 2255 3027 2979
+f 2255 2979 2223
+f 3027 3727 3695
+f 3027 3695 2979
+f 3727 4327 4207
+f 3727 4207 3695
+f 4327 4883 4771
+f 4327 4771 4207
+f 4883 5423 5343
+f 4883 5343 4771
+f 5423 5971 5899
+f 5423 5899 5343
+f 5971 6503 6331
+f 5971 6331 5899
+f 6503 6927 6783
+f 6503 6783 6331
+f 6927 7387 7243
+f 6927 7243 6783
+f 7387 7807 7703
+f 7387 7703 7243
+f 7807 8259 8055
+f 7807 8055 7703
+f 8259 8619 8459
+f 8259 8459 8055
+f 8619 8991 8847
+f 8619 8847 8459
+f 8991 9371 9199
+f 8991 9199 8847
+f 9371 9727 9507
+f 9371 9507 9199
+f 9727 10039 9855
+f 9727 9855 9507
+f 10039 10347 10171
+f 10039 10171 9855
+f 10347 10647 10443
+f 10347 10443 10171
+f 10647 10943 10735
+f 10647 10735 10443
+f 10943 11203 11019
+f 10943 11019 10735
+f 11203 11471 11243
+f 11203 11243 11019
+f 11471 11719 11519
+f 11471 11519 11243
+f 11719 11963 11743
+f 11719 11743 11519
+f 11963 12175 11955
+f 11963 11955 11743
+f 12175 12391 12159
+f 12175 12159 11955
+f 12391 12563 12335
+f 12391 12335 12159
+f 12563 12763 12523
+f 12563 12523 12335
+f 12763 12919 12683
+f 12763 12683 12523
+f 12919 13087 12855
+f 12919 12855 12683
+f 13087 13227 12999
+f 13087 12999 12855
+f 13227 13395 13131
+f 13227 13131 12999
+f 13395 13495 13259
+f 13395 13259 13131
+f 13495 13623 13371
+f 13495 13371 13259
+f 13623 13715 13463
+f 13623 13463 13371
+f 13715 13795 13551
+f 13715 13551 13463
+f 13795 13891 13647
+f 13795 13647 13551
+f 13891 13975 13707
+f 13891 13707 13647
+f 13975 14007 13779
+f 13975 13779 13707
+f 14007 14039 13787
+f 14007 13787 13779
+f 14039 14103 13827
+f 14039 13827 13787
+f 14103 14119 13859
+f 14103 13859 13827
+f 14119 14135 13867
+f 14119 13867 13859
+f 14135 14136 13868
+f 14135 13868 13867
+f 14136 14120 13860
+f 14136 13860 13868
+f 14120 14104 13828
+f 14120 13828 13860
+f 14104 14040 13788
+f 14104 13788 13828
+f 14040 14008 13780
+f 14040 13780 13788
+f 14008 13976 13708
+f 14008 13708 13780
+f 13976 13892 13648
+f 13976 13648 13708
+f 13892 13796 13552
+f 13892 13552 13648
+f 13796 13716 13464
+f 13796 13464 13552
+f 13716 13624 13372
+f 13716 13372 13464
+f 13624 13496 13260
+f 13624 13260 13372
+f 13496 13396 13132
+f 13496 13132 13260
+f 13396 13228 13000
+f 13396 13000 13132
+f 13228 13088 12856
+f 13228 12856 13000
+f 13088 12920 12684
+f 13088 12684 12856
+f 12920 12764 12524
+f 12920 12524 12684
+f 12764 12564 12336
+f 12764 12336 12524
+f 12564 12392 12160
+f 12564 12160 12336
+f 12392 12176 11956
+f 12392 11956 12160
+f 12176 11964 11744
+f 12176 11744 11956
+f 11964 11720 11520
+f 11964 11520 11744
+f 11720 11472 11244
+f 11720 11244 11520
+f 11472 11204 11020
+f 11472 11020 11244
+f 11204 10944 10736
+f 11204 10736 11020
+f 10944 10648 10444
+f 10944 10444 10736
+f 10648 10348 10172
+f 10648 10172 10444
+f 10348 10040 9856
+f 10348 9856 10172
+f 10040 9728 9508
+f 10040 9508 9856
+f 9728 9372 9200
+f 9728 9200 9508
+f 9372 8992 8848
+f 9372 8848 9200
+f 8992 8620 8460
+f 8992 8460 8848
+f 8620 8260 8056
+f 8620 8056 8460
+f 8260 7808 7704
+f 8260 7704 8056
+f 7808 7388 7244
+f 7808 7244 7704
+f 7388 6928 6784
+f 7388 6784 7244
+f 6928 6504 6332
+f 6928 6332 6784
+f 6504 5972 5900
+f 6504 5900 6332
+f 5972 5424 5344
+f 5972 5344 5900
+f 5424 4884 4772
+f 5424 4772 5344
+f 4884 4328 4208
+f 4884 4208 4772
+f 4328 3728 3696
+f 4328 3696 4208
+f 3728 3028 2980
+f 3728 2980 3696
+f 3028 2256 2224
+f 3028 2224 2980
+f 2256 1404 1388
+f 2256 1388 2224
+f 1387 2223 2175
+f 1387 2175 1355
+f 2223 2979 2931
+f 2223 2931 2175
+f 2979 3695 3595
+f 2979 3595 2931
+f 3695 4207 4135
+f 3695 4135 3595
+f 4207 4771 4707
+f 4207 4707 4135
+f 4771 5343 5255
+f 4771 5255 4707
+f 5343 5899 5735
+f 5343 5735 5255
+f 5899 6331 6187
+f 5899 6187 5735
+f 6331 6783 6655
+f 6331 6655 6187
+f 6783 7243 7123
+f 6783 7123 6655
+f 7243 7703 7507
+f 7243 7507 7123
+f 7703 8055 7887
+f 7703 7887 7507
+f 8055 8459 8307
+f 8055 8307 7887
+f 8459 8847 8667
+f 8459 8667 8307
+f 8847 9199 8983
+f 8847 8983 8667
+f 9199 9507 9347
+f 9199 9347 8983
+f 9507 9855 9659
+f 9507 9659 9347
+f 9855 10171 9935
+f 9855 9935 9659
+f 10171 10443 10251
+f 10171 10251 9935
+f 10443 10735 10515
+f 10443 10515 10251
+f 10735 11019 10767
+f 10735 10767 10515
+f 11019 11243 11059
+f 11019 11059 10767
+f 11243 11519 11267
+f 11243 11267 11059
+f 11519 11743 11511
+f 11519 11511 11267
+f 11743 11955 11711
+f 11743 11711 11511
+f 11955 12159 11899
+f 11955 11899 11711
+f 12159 12335 12115
+f 12159 12115 11899
+f 12335 12523 12271
+f 12335 12271 12115
+f 12523 12683 12455
+f 12523 12455 12271
+f 12683 12855 12595
+f 12683 12595 12455
+f 12855 12999 12747
+f 12855 12747 12595
+f 12999 13131 12887
+f 12999 12887 12747
+f 13131 13259 13007
+f 13131 13007 12887
+f 13259 13371 13123
+f 13259 13123 13007
+f 13371 13463 13211
+f 13371 13211 13123
+f 13463 13551 13291
+f 13463 13291 13211
+f 13551 13647 13379
+f 13551 13379 13291
+f 13647 13707 13447
+f 13647 13447 13379
+f 13707 13779 13487
+f 13707 13487 13447
+f 13779 13787 13535
+f 13779 13535 13487
+f 13787 13827 13575
+f 13787 13575 13535
+f 13827 13859 13583
+f 13827 13583 13575
+f 13859 13867 13607
+f 13859 13607 13583
+f 13867 13868 13608
+f 13867 13608 13607
+f 13868 13860 13584
+f 13868 13584 13608
+f 13860 13828 13576
+f 13860 13576 13584
+f 13828 13788 13536
+f 13828 13536 13576
+f 13788 13780 13488
+f 13788 13488 13536
+f 13780 13708 13448
+f 13780 13448 13488
+f 13708 13648 13380
+f 13708 13380 13448
+f 13648 13552 13292
+f 13648 13292 13380
+f 13552 13464 13212
+f 13552 13212 13292
+f 13464 13372 13124
+f 13464 13124 13212
+f 13372 13260 13008
+f 13372 13008 13124
+f 13260 13132 12888
+f 13260 12888 13008
+f 13132 13000 12748
+f 13132 12748 12888
+f 13000 12856 12596
+f 13000 12596 12748
+f 12856 12684 12456
+f 12856 12456 12596
+f 12684 12524 12272
+f 12684 12272 12456
+f 12524 12336 12116
+f 12524 12116 12272
+f 12336 12160 11900
+f 12336 11900 12116
+f 12160 11956 11712
+f 12160 11712 11900
+f 11956 11744 11512
+f 11956 11512 11712
+f 11744 11520 11268
+f 11744 11268 11512
+f 11520 11244 11060
+f 11520 11060 11268
+f 11244 11020 10768
+f 11244 10768 11060
+f 11020 10736 10516
+f 11020 10516 10768
+f 10736 10444 10252
+f 10736 10252 10516
+f 10444 10172 9936
+f 10444 9936 10252
+f 10172 9856 9660
+f 10172 9660 9936
+f 9856 9508 9348
+f 9856 9348 9660
+f 9508 9200 8984
+f 9508 8984 9348
+f 9200 8848 8668
+f 9200 8668 8984
+f 8848 8460 8308
+f 8848 8308 8668
+f 8460 8056 7888
+f 8460 7888 8308
+f 8056 7704 7508
+f 8056 7508 7888
+f 7704 7244 7124
+f 7704 7124 7508
+f 7244 6784 6656
+f 7244 6656 7124
+f 6784 6332 6188
+f 6784 6188 6656
+f 6332 5900 5736
+f 6332 5736 6188
+f 5900 5344 5256
+f 5900 5256 5736
+f 5344 4772 4708
+f 5344 4708 5256
+f 4772 4208 4136
+f 4772 4136 4708
+f 4208 3696 3596
+f 4208 3596 4136
+f 3696 2980 2932
+f 3696 2932 3596
+f 2980 2224 2176
+f 2980 2176 2932
+f 2224 1388 1356
+f 2224 1356 2176
+f 1355 2175 2143
+f 1355 2143 1323
+f 2175 2931 2891
+f 2175 2891 2143
+f 2931 3595 3459
+f 2931 3459 2891
+f 3595 4135 4015
+f 3595 4015 3459
+f 4135 4707 4595
+f 4135 4595 4015
+f 4707 5255 5167
+f 4707 5167 4595
+f 5255 5735 5559
+f 5255 5559 5167
+f 5735 6187 6075
+f 5735 6075 5559
+f 6187 6655 6535
+f 6187 6535 6075
+f 6655 7123 6919
+f 6655 6919 6535
+f 7123 7507 7315
+f 7123 7315 6919
+f 7507 7887 7751
+f 7507 7751 7315
+f 7887 8307 8119
+f 7887 8119 7751
+f 8307 8667 8451
+f 8307 8451 8119
+f 8667 8983 8823
+f 8667 8823 8451
+f 8983 9347 9127
+f 8983 9127 8823
+f 9347 9659 9427
+f 9347 9427 9127
+f 9659 9935 9759
+f 9659 9759 9427
+f 9935 10251 9999
+f 9935 9999 9759
+f 10251 10515 10283
+f 10251 10283 9999
+f 10515 10767 10587
+f 10515 10587 10283
+f 10767 11059 10783
+f 10767 10783 10587
+f 11059 11267 11051
+f 11059 11051 10783
+f 11267 11511 11235
+f 11267 11235 11051
+f 11511 11711 11455
+f 11511 11455 11235
+f 11711 11899 11655
+f 11711 11655 11455
+f 11899 12115 11843
+f 11899 11843 11655
+f 12115 12271 12011
+f 12115 12011 11843
+f 12271 12455 12199
+f 12271 12199 12011
+f 12455 12595 12319
+f 12455 12319 12199
+f 12595 12747 12499
+f 12595 12499 12319
+f 12747 12887 12619
+f 12747 12619 12499
+f 12887 13007 12731
+f 12887 12731 12619
+f 13007 13123 12839
+f 13007 12839 12731
+f 13123 13211 12927
+f 13123 12927 12839
+f 13211 13291 13039
+f 13211 13039 12927
+f 13291 13379 13103
+f 13291 13103 13039
+f 13379 13447 13171
+f 13379 13171 13103
+f 13447 13487 13219
+f 13447 13219 13171
+f 13487 13535 13251
+f 13487 13251 13219
+f 13535 13575 13283
+f 13535 13283 13251
+f 13575 13583 13299
+f 13575 13299 13283
+f 13583 13607 13323
+f 13583 13323 13299
+f 13607 13608 13324
+f 13607 13324 13323
+f 13608 13584 13300
+f 13608 13300 13324
+f 13584 13576 13284
+f 13584 13284 13300
+f 13576 13536 13252
+f 13576 13252 13284
+f 13536 13488 13220
+f 13536 13220 13252
+f 13488 13448 13172
+f 13488 13172 13220
+f 13448 13380 13104
+f 13448 13104 13172
+f 13380 13292 13040
+f 13380 13040 13104
+f 13292 13212 12928
+f 13292 12928 13040
+f 13212 13124 12840
+f 13212 12840 12928
+f 13124 13008 12732
+f 13124 12732 12840
+f 13008 12888 12620
+f 13008 12620 12732
+f 12888 12748 12500
+f 12888 12500 12620
+f 12748 12596 12320
+f 12748 12320 12500
+f 12596 12456 12200
+f 12596 12200 12320
+f 12456 12272 12012
+f 12456 12012 12200
+f 12272 12116 11844
+f 12272 11844 12012
+f 12116 11900 11656
+f 12116 11656 11844
+f 11900 11712 11456
+f 11900 11456 11656
+f 11712 11512 11236
+f 11712 11236 11456
+f 11512 11268 11052
+f 11512 11052 11236
+f 11268 11060 10784
+f 11268 10784 11052
+f 11060 10768 10588
+f 11060 10588 10784
+f 10768 10516 10284
+f 10768 10284 10588
+f 10516 10252 10000
+f 10516 10000 10284
+f 10252 9936 9760
+f 10252 9760 10000
+f 9936 9660 9428
+f 9936 9428 9760
+f 9660 9348 9128
+f 9660 9128 9428
+f 9348 8984 8824
+f 9348 8824 9128
+f 8984 8668 8452
+f 8984 8452 8824
+f 8668 8308 8120
+f 8668 8120 8452
+f 8308 7888 7752
+f 8308 7752 8120
+f 7888 7508 7316
+f 7888 7316 7752
+f 7508 7124 6920
+f 7508 6920 7316
+f 7124 6656 6536
+f 7124 6536 6920
+f 6656 6188 6076
+f 6656 6076 6536
+f 6188 5736 5560
+f 6188 5560 6076
+f 5736 5256 5168
+f 5736 5168 5560
+f 5256 4708 4596
+f 5256 4596 5168
+f 4708 4136 4016
+f 4708 4016 4596
+f 4136 3596 3460
+f 4136 3460 4016
+f 3596 2932 2892
+f 3596 2892 3460
+f 2932 2176 2144
+f 2932 2144 2892
+f 2176 1356 1324
+f 2176 1324 2144
+f 1323 2143 2111
+f 1323 2111 1307
+f 2143 2891 2843
+f 2143 2843 2111
+f 2891 3459 3347
+f 2891 3347 2843
+f 3459 4015 3927
+f 3459 3927 3347
+f 4015 4595 4515
+f 4015 4515 3927
+f 4595 5167 4971
+f 4595 4971 4515
+f 5167 5559 5471
+f 5167 5471 4971
+f 5559 6075 5931
+f 5559 5931 5471
+f 6075 6535 6355
+f 6075 6355 5931
+f 6535 6919 6735
+f 6535 6735 6355
+f 6919 7315 7195
+f 6919 7195 6735
+f 7315 7751 7555
+f 7315 7555 7195
+f 7751 8119 7903
+f 7751 7903 7555
+f 8119 8451 8283
+f 8119 8283 7903
+f 8451 8823 8579
+f 8451 8579 8283
+f 8823 9127 8903
+f 8823 8903 8579
+f 9127 9427 9251
+f 9127 9251 8903
+f 9427 9759 9483
+f 9427 9483 9251
+f 9759 9999 9783
+f 9759 9783 9483
+f 9999 10283 10079
+f 9999 10079 9783
+f 10283 10587 10299
+f 10283 10299 10079
+f 10587 10783 10579
+f 10587 10579 10299
+f 10783 11051 10759
+f 10783 10759 10579
+f 11051 11235 10995
+f 11051 10995 10759
+f 11235 11455 11187
+f 11235 11187 10995
+f 11455 11655 11407
+f 11455 11407 11187
+f 11655 11843 11551
+f 11655 11551 11407
+f 11843 12011 11775
+f 11843 11775 11551
+f 12011 12199 11891
+f 12011 11891 11775
+f 12199 12319 12075
+f 12199 12075 11891
+f 12319 12499 12207
+f 12319 12207 12075
+f 12499 12619 12303
+f 12499 12303 12207
+f 12619 12731 12447
+f 12619 12447 12303
+f 12731 12839 12547
+f 12731 12547 12447
+f 12839 12927 12643
+f 12839 12643 12547
+f 12927 13039 12723
+f 12927 12723 12643
+f 13039 13103 12831
+f 13039 12831 12723
+f 13103 13171 12863
+f 13103 12863 12831
+f 13171 13219 12911
+f 13171 12911 12863
+f 13219 13251 12943
+f 13219 12943 12911
+f 13251 13283 12983
+f 13251 12983 12943
+f 13283 13299 13015
+f 13283 13015 12983
+f 13299 13323 13047
+f 13299 13047 13015
+f 13323 13324 13048
+f 13323 13048 13047
+f 13324 13300 13016
+f 13324 13016 13048
+f 13300 13284 12984
+f 13300 12984 13016
+f 13284 13252 12944
+f 13284 12944 12984
+f 13252 13220 12912
+f 13252 12912 12944
+f 13220 13172 12864
+f 13220 12864 12912
+f 13172 13104 12832
+f 13172 12832 12864
+f 13104 13040 12724
+f 13104 12724 12832
+f 13040 12928 12644
+f 13040 12644 12724
+f 12928 12840 12548
+f 12928 12548 12644
+f 12840 12732 12448
+f 12840 12448 12548
+f 12732 12620 12304
+f 12732 12304 12448
+f 12620 12500 12208
+f 12620 12208 12304
+f 12500 12320 12076
+f 12500 12076 12208
+f 12320 12200 11892
+f 12320 11892 12076
+f 12200 12012 11776
+f 12200 11776 11892
+f 12012 11844 11552
+f 12012 11552 11776
+f 11844 11656 11408
+f 11844 11408 11552
+f 11656 11456 11188
+f 11656 11188 11408
+f 11456 11236 10996
+f 11456 10996 11188
+f 11236 11052 10760
+f 11236 10760 10996
+f 11052 10784 10580
+f 11052 10580 10760
+f 10784 10588 10300
+f 10784 10300 10580
+f 10588 10284 10080
+f 10588 10080 10300
+f 10284 10000 9784
+f 10284 9784 10080
+f 10000 9760 9484
+f 10000 9484 9784
+f 9760 9428 9252
+f 9760 9252 9484
+f 9428 9128 8904
+f 9428 8904 9252
+f 9128 8824 8580
+f 9128 8580 8904
+f 8824 8452 8284
+f 8824 8284 8580
+f 8452 8120 7904
+f 8452 7904 8284
+f 8120 7752 7556
+f 8120 7556 7904
+f 7752 7316 7196
+f 7752 7196 7556
+f 7316 6920 6736
+f 7316 6736 7196
+f 6920 6536 6356
+f 6920 6356 6736
+f 6536 6076 5932
+f 6536 5932 6356
+f 6076 5560 5472
+f 6076 5472 5932
+f 5560 5168 4972
+f 5560 4972 5472
+f 5168 4596 4516
+f 5168 4516 4972
+f 4596 4016 3928
+f 4596 3928 4516
+f 4016 3460 3348
+f 4016 3348 3928
+f 3460 2892 2844
+f 3460 2844 3348
+f 2892 2144 2112
+f 2892 2112 2844
+f 2144 1324 1308
+f 2144 1308 2112
+f 1307 2111 2063
+f 1307 2063 1259
+f 2111 2843 2795
+f 2111 2795 2063
+f 2843 3347 3267
+f 2843 3267 2795
+f 3347 3927 3863
+f 3347 3863 3267
+f 3927 4515 4439
+f 3927 4439 3863
+f 4515 4971 4827
+f 4515 4827 4439
+f 4971 5471 5327
+f 4971 5327 4827
+f 5471 5931 5807
+f 5471 5807 5327
+f 5931 6355 6171
+f 5931 6171 5807
+f 6355 6735 6631
+f 6355 6631 6171
+f 6735 7195 6999
+f 6735 6999 6631
+f 7195 7555 7331
+f 7195 7331 6999
+f 7555 7903 7735
+f 7555 7735 7331
+f 7903 8283 8023
+f 7903 8023 7735
+f 8283 8579 8371
+f 8283 8371 8023
+f 8579 8903 8715
+f 8579 8715 8371
+f 8903 9251 8959
+f 8903 8959 8715
+f 9251 9483 9275
+f 9251 9275 8959
+f 9483 9783 9555
+f 9483 9555 9275
+f 9783 10079 9799
+f 9783 9799 9555
+f 10079 10299 10071
+f 10079 10071 9799
+f 10299 10579 10267
+f 10299 10267 10071
+f 10579 10759 10507
+f 10579 10507 10267
+f 10759 10995 10727
+f 10759 10727 10507
+f 10995 11187 10927
+f 10995 10927 10727
+f 11187 11407 11107
+f 11187 11107 10927
+f 11407 11551 11307
+f 11407 11307 11107
+f 11551 11775 11463
+f 11551 11463 11307
+f 11775 11891 11615
+f 11775 11615 11463
+f 11891 12075 11803
+f 11891 11803 11615
+f 12075 12207 11883
+f 12075 11883 11803
+f 12207 12303 12019
+f 12207 12019 11883
+f 12303 12447 12151
+f 12303 12151 12019
+f 12447 12547 12247
+f 12447 12247 12151
+f 12547 12643 12327
+f 12547 12327 12247
+f 12643 12723 12431
+f 12643 12431 12327
+f 12723 12831 12507
+f 12723 12507 12431
+f 12831 12863 12555
+f 12831 12555 12507
+f 12863 12911 12611
+f 12863 12611 12555
+f 12911 12943 12651
+f 12911 12651 12611
+f 12943 12983 12667
+f 12943 12667 12651
+f 12983 13015 12691
+f 12983 12691 12667
+f 13015 13047 12715
+f 13015 12715 12691
+f 13047 13048 12716
+f 13047 12716 12715
+f 13048 13016 12692
+f 13048 12692 12716
+f 13016 12984 12668
+f 13016 12668 12692
+f 12984 12944 12652
+f 12984 12652 12668
+f 12944 12912 12612
+f 12944 12612 12652
+f 12912 12864 12556
+f 12912 12556 12612
+f 12864 12832 12508
+f 12864 12508 12556
+f 12832 12724 12432
+f 12832 12432 12508
+f 12724 12644 12328
+f 12724 12328 12432
+f 12644 12548 12248
+f 12644 12248 12328
+f 12548 12448 12152
+f 12548 12152 12248
+f 12448 12304 12020
+f 12448 12020 12152
+f 12304 12208 11884
+f 12304 11884 12020
+f 12208 12076 11804
+f 12208 11804 11884
+f 12076 11892 11616
+f 12076 11616 11804
+f 11892 11776 11464
+f 11892 11464 11616
+f 11776 11552 11308
+f 11776 11308 11464
+f 11552 11408 11108
+f 11552 11108 11308
+f 11408 11188 10928
+f 11408 10928 11108
+f 11188 10996 10728
+f 11188 10728 10928
+f 10996 10760 10508
+f 10996 10508 10728
+f 10760 10580 10268
+f 10760 10268 10508
+f 10580 10300 10072
+f 10580 10072 10268
+f 10300 10080 9800
+f 10300 9800 10072
+f 10080 9784 9556
+f 10080 9556 9800
+f 9784 9484 9276
+f 9784 9276 9556
+f 9484 9252 8960
+f 9484 8960 9276
+f 9252 8904 8716
+f 9252 8716 8960
+f 8904 8580 8372
+f 8904 8372 8716
+f 8580 8284 8024
+f 8580 8024 8372
+f 8284 7904 7736
+f 8284 7736 8024
+f 7904 7556 7332
+f 7904 7332 7736
+f 7556 7196 7000
+f 7556 7000 7332
+f 7196 6736 6632
+f 7196 6632 7000
+f 6736 6356 6172
+f 6736 6172 6632
+f 6356 5932 5808
+f 6356 5808 6172
+f 5932 5472 5328
+f 5932 5328 5808
+f 5472 4972 4828
+f 5472 4828 5328
+f 4972 4516 4440
+f 4972 4440 4828
+f 4516 3928 3864
+f 4516 3864 4440
+f 3928 3348 3268
+f 3928 3268 3864
+f 3348 2844 2796
+f 3348 2796 3268
+f 2844 2112 2064
+f 2844 2064 2796
+f 2112 1308 1260
+f 2112 1260 2064
+f 1259 2063 2031
+f 1259 2031 1243
+f 2063 2795 2655
+f 2063 2655 2031
+f 2795 3267 3171
+f 2795 3171 2655
+f 3267 3863 3759
+f 3267 3759 3171
+f 3863 4439 4223
+f 3863 4223 3759
+f 4439 4827 4731
+f 4439 4731 4223
+f 4827 5327 5215
+f 4827 5215 4731
+f 5327 5807 5599
+f 5327 5599 5215
+f 5807 6171 6011
+f 5807 6011 5599
+f 6171 6631 6451
+f 6171 6451 6011
+f 6631 6999 6775
+f 6631 6775 6451
+f 6999 7331 7171
+f 6999 7171 6775
+f 7331 7735 7475
+f 7331 7475 7171
+f 7735 8023 7823
+f 7735 7823 7475
+f 8023 8371 8167
+f 8023 8167 7823
+f 8371 8715 8443
+f 8371 8443 8167
+f 8715 8959 8759
+f 8715 8759 8443
+f 8959 9275 9031
+f 8959 9031 8759
+f 9275 9555 9291
+f 9275 9291 9031
+f 9555 9799 9547
+f 9555 9547 9291
+f 9799 10071 9775
+f 9799 9775 9547
+f 10071 10267 9991
+f 10071 9991 9775
+f 10267 10507 10243
+f 10267 10243 9991
+f 10507 10727 10427
+f 10507 10427 10243
+f 10727 10927 10639
+f 10727 10639 10427
+f 10927 11107 10823
+f 10927 10823 10639
+f 11107 11307 11011
+f 11107 11011 10823
+f 11307 11463 11163
+f 11307 11163 11011
+f 11463 11615 11339
+f 11463 11339 11163
+f 11615 11803 11447
+f 11615 11447 11339
+f 11803 11883 11583
+f 11803 11583 11447
+f 11883 12019 11727
+f 11883 11727 11583
+f 12019 12151 11827
+f 12019 11827 11727
+f 12151 12247 11931
+f 12151 11931 11827
+f 12247 12327 12003
+f 12247 12003 11931
+f 12327 12431 12107
+f 12327 12107 12003
+f 12431 12507 12183
+f 12431 12183 12107
+f 12507 12555 12239
+f 12507 12239 12183
+f 12555 12611 12279
+f 12555 12279 12239
+f 12611 12651 12295
+f 12611 12295 12279
+f 12651 12667 12359
+f 12651 12359 12295
+f 12667 12691 12375
+f 12667 12375 12359
+f 12691 12715 12415
+f 12691 12415 12375
+f 12715 12716 12416
+f 12715 12416 12415
+f 12716 12692 12376
+f 12716 12376 12416
+f 12692 12668 12360
+f 12692 12360 12376
+f 12668 12652 12296
+f 12668 12296 12360
+f 12652 12612 12280
+f 12652 12280 12296
+f 12612 12556 12240
+f 12612 12240 12280
+f 12556 12508 12184
+f 12556 12184 12240
+f 12508 12432 12108
+f 12508 12108 12184
+f 12432 12328 12004
+f 12432 12004 12108
+f 12328 12248 11932
+f 12328 11932 12004
+f 12248 12152 11828
+f 12248 11828 11932
+f 12152 12020 11728
+f 12152 11728 11828
+f 12020 11884 11584
+f 12020 11584 11728
+f 11884 11804 11448
+f 11884 11448 11584
+f 11804 11616 11340
+f 11804 11340 11448
+f 11616 11464 11164
+f 11616 11164 11340
+f 11464 11308 11012
+f 11464 11012 11164
+f 11308 11108 10824
+f 11308 10824 11012
+f 11108 10928 10640
+f 11108 10640 10824
+f 10928 10728 10428
+f 10928 10428 10640
+f 10728 10508 10244
+f 10728 10244 10428
+f 10508 10268 9992
+f 10508 9992 10244
+f 10268 10072 9776
+f 10268 9776 9992
+f 10072 9800 9548
+f 10072 9548 9776
+f 9800 9556 9292
+f 9800 9292 9548
+f 9556 9276 9032
+f 9556 9032 9292
+f 9276 8960 8760
+f 9276 8760 9032
+f 8960 8716 8444
+f 8960 8444 8760
+f 8716 8372 8168
+f 8716 8168 8444
+f 8372 8024 7824
+f 8372 7824 8168
+f 8024 7736 7476
+f 8024 7476 7824
+f 7736 7332 7172
+f 7736 7172 7476
+f 7332 7000 6776
+f 7332 6776 7172
+f 7000 6632 6452
+f 7000 6452 6776
+f 6632 6172 6012
+f 6632 6012 6452
+f 6172 5808 5600
+f 6172 5600 6012
+f 5808 5328 5216
+f 5808 5216 5600
+f 5328 4828 4732
+f 5328 4732 5216
+f 4828 4440 4224
+f 4828 4224 4732
+f 4440 3864 3760
+f 4440 3760 4224
+f 3864 3268 3172
+f 3864 3172 3760
+f 3268 2796 2656
+f 3268 2656 3172
+f 2796 2064 2032
+f 2796 2032 2656
+f 2064 1260 1244
+f 2064 1244 2032
+f 1243 2031 1991
+f 1243 1991 1195
+f 2031 2655 2527
+f 2031 2527 1991
+f 2655 3171 3107
+f 2655 3107 2527
+f 3171 3759 3711
+f 3171 3711 3107
+f 3759 4223 4071
+f 3759 4071 3711
+f 4223 4731 4579
+f 4223 4579 4071
+f 4731 5215 5019
+f 4731 5019 4579
+f 5215 5599 5415
+f 5215 5415 5019
+f 5599 6011 5883
+f 5599 5883 5415
+f 6011 6451 6211
+f 6011 6211 5883
+f 6451 6775 6615
+f 6451 6615 6211
+f 6775 7171 6951
+f 6775 6951 6615
+f 7171 7475 7267
+f 7171 7267 6951
+f 7475 7823 7627
+f 7475 7627 7267
+f 7823 8167 7911
+f 7823 7911 7627
+f 8167 8443 8227
+f 8167 8227 7911
+f 8443 8759 8491
+f 8443 8491 8227
+f 8759 9031 8775
+f 8759 8775 8491
+f 9031 9291 9023
+f 9031 9023 8775
+f 9291 9547 9267
+f 9291 9267 9023
+f 9547 9775 9475
+f 9547 9475 9267
+f 9775 9991 9751
+f 9775 9751 9475
+f 9991 10243 9919
+f 9991 9919 9751
+f 10243 10427 10163
+f 10243 10163 9919
+f 10427 10639 10331
+f 10427 10331 10163
+f 10639 10823 10523
+f 10639 10523 10331
+f 10823 11011 10687
+f 10823 10687 10523
+f 11011 11163 10847
+f 11011 10847 10687
+f 11163 11339 11003
+f 11163 11003 10847
+f 11339 11447 11123
+f 11339 11123 11003
+f 11447 11583 11259
+f 11447 11259 11123
+f 11583 11727 11399
+f 11583 11399 11259
+f 11727 11827 11503
+f 11727 11503 11399
+f 11827 11931 11591
+f 11827 11591 11503
+f 11931 12003 11695
+f 11931 11695 11591
+f 12003 12107 11787
+f 12003 11787 11695
+f 12107 12183 11835
+f 12107 11835 11787
+f 12183 12239 11875
+f 12183 11875 11835
+f 12239 12279 11939
+f 12239 11939 11875
+f 12279 12295 11979
+f 12279 11979 11939
+f 12295 12359 11995
+f 12295 11995 11979
+f 12359 12375 12027
+f 12359 12027 11995
+f 12375 12415 12051
+f 12375 12051 12027
+f 12415 12416 12052
+f 12415 12052 12051
+f 12416 12376 12028
+f 12416 12028 12052
+f 12376 12360 11996
+f 12376 11996 12028
+f 12360 12296 11980
+f 12360 11980 11996
+f 12296 12280 11940
+f 12296 11940 11980
+f 12280 12240 11876
+f 12280 11876 11940
+f 12240 12184 11836
+f 12240 11836 11876
+f 12184 12108 11788
+f 12184 11788 11836
+f 12108 12004 11696
+f 12108 11696 11788
+f 12004 11932 11592
+f 12004 11592 11696
+f 11932 11828 11504
+f 11932 11504 11592
+f 11828 11728 11400
+f 11828 11400 11504
+f 11728 11584 11260
+f 11728 11260 11400
+f 11584 11448 11124
+f 11584 11124 11260
+f 11448 11340 11004
+f 11448 11004 11124
+f 11340 11164 10848
+f 11340 10848 11004
+f 11164 11012 10688
+f 11164 10688 10848
+f 11012 10824 10524
+f 11012 10524 10688
+f 10824 10640 10332
+f 10824 10332 10524
+f 10640 10428 10164
+f 10640 10164 10332
+f 10428 10244 9920
+f 10428 9920 10164
+f 10244 9992 9752
+f 10244 9752 9920
+f 9992 9776 9476
+f 9992 9476 9752
+f 9776 9548 9268
+f 9776 9268 9476
+f 9548 9292 9024
+f 9548 9024 9268
+f 9292 9032 8776
+f 9292 8776 9024
+f 9032 8760 8492
+f 9032 8492 8776
+f 8760 8444 8228
+f 8760 8228 8492
+f 8444 8168 7912
+f 8444 7912 8228
+f 8168 7824 7628
+f 8168 7628 7912
+f 7824 7476 7268
+f 7824 7268 7628
+f 7476 7172 6952
+f 7476 6952 7268
+f 7172 6776 6616
+f 7172 6616 6952
+f 6776 6452 6212
+f 6776 6212 6616
+f 6452 6012 5884
+f 6452 5884 6212
+f 6012 5600 5416
+f 6012 5416 5884
+f 5600 5216 5020
+f 5600 5020 5416
+f 5216 4732 4580
+f 5216 4580 5020
+f 4732 4224 4072
+f 4732 4072 4580
+f 4224 3760 3712
+f 4224 3712 4072
+f 3760 3172 3108
+f 3760 3108 3712
+f 3172 2656 2528
+f 3172 2528 3108
+f 2656 2032 1992
+f 2656 1992 2528
+f 2032 1244 1196
+f 2032 1196 1992
+f 1195 1991 1943
+f 1195 1943 1179
+f 1991 2527 2447
+f 1991 2447 1943
+f 2527 3107 3011
+f 2527 3011 2447
+f 3107 3711 3507
+f 3107 3507 3011
+f 3711 4071 3975
+f 3711 3975 3507
+f 4071 4579 4483
+f 4071 4483 3975
+f 4579 5019 4835
+f 4579 4835 4483
+f 5019 5415 5295
+f 5019 5295 4835
+f 5415 5883 5647
+f 5415 5647 5295
+f 5883 6211 6035
+f 5883 6035 5647
+f 6211 6615 6411
+f 6211 6411 6035
+f 6615 6951 6711
+f 6615 6711 6411
+f 6951 7267 7075
+f 6951 7075 6711
+f 7267 7627 7347
+f 7267 7347 7075
+f 7627 7911 7695
+f 7627 7695 7347
+f 7911 8227 7943
+f 7911 7943 7695
+f 8227 8491 8251
+f 8227 8251 7943
+f 8491 8775 8483
+f 8491 8483 8251
+f 8775 9023 8751
+f 8775 8751 8483
+f 9023 9267 8951
+f 9023 8951 8751
+f 9267 9475 9243
+f 9267 9243 8951
+f 9475 9751 9411
+f 9475 9411 9243
+f 9751 9919 9643
+f 9751 9643 9411
+f 9919 10163 9839
+f 9919 9839 9643
+f 10163 10331 10007
+f 10163 10007 9839
+f 10331 10523 10211
+f 10331 10211 10007
+f 10523 10687 10371
+f 10523 10371 10211
+f 10687 10847 10531
+f 10687 10531 10371
+f 10847 11003 10663
+f 10847 10663 10531
+f 11003 11123 10791
+f 11003 10791 10663
+f 11123 11259 10935
+f 11123 10935 10791
+f 11259 11399 11075
+f 11259 11075 10935
+f 11399 11503 11131
+f 11399 11131 11075
+f 11503 11591 11227
+f 11503 11227 11131
+f 11591 11695 11347
+f 11591 11347 11227
+f 11695 11787 11423
+f 11695 11423 11347
+f 11787 11835 11479
+f 11787 11479 11423
+f 11835 11875 11543
+f 11835 11543 11479
+f 11875 11939 11559
+f 11875 11559 11543
+f 11939 11979 11607
+f 11939 11607 11559
+f 11979 11995 11647
+f 11979 11647 11607
+f 11995 12027 11663
+f 11995 11663 11647
+f 12027 12051 11679
+f 12027 11679 11663
+f 12051 12052 11680
+f 12051 11680 11679
+f 12052 12028 11664
+f 12052 11664 11680
+f 12028 11996 11648
+f 12028 11648 11664
+f 11996 11980 11608
+f 11996 11608 11648
+f 11980 11940 11560
+f 11980 11560 11608
+f 11940 11876 11544
+f 11940 11544 11560
+f 11876 11836 11480
+f 11876 11480 11544
+f 11836 11788 11424
+f 11836 11424 11480
+f 11788 11696 11348
+f 11788 11348 11424
+f 11696 11592 11228
+f 11696 11228 11348
+f 11592 11504 11132
+f 11592 11132 11228
+f 11504 11400 11076
+f 11504 11076 11132
+f 11400 11260 10936
+f 11400 10936 11076
+f 11260 11124 10792
+f 11260 10792 10936
+f 11124 11004 10664
+f 11124 10664 10792
+f 11004 10848 10532
+f 11004 10532 10664
+f 10848 10688 10372
+f 10848 10372 10532
+f 10688 10524 10212
+f 10688 10212 10372
+f 10524 10332 10008
+f 10524 10008 10212
+f 10332 10164 9840
+f 10332 9840 10008
+f 10164 9920 9644
+f 10164 9644 9840
+f 9920 9752 9412
+f 9920 9412 9644
+f 9752 9476 9244
+f 9752 9244 9412
+f 9476 9268 8952
+f 9476 8952 9244
+f 9268 9024 8752
+f 9268 8752 8952
+f 9024 8776 8484
+f 9024 8484 8752
+f 8776 8492 8252
+f 8776 8252 8484
+f 8492 8228 7944
+f 8492 7944 8252
+f 8228 7912 7696
+f 8228 7696 7944
+f 7912 7628 7348
+f 7912 7348 7696
+f 7628 7268 7076
+f 7628 7076 7348
+f 7268 6952 6712
+f 7268 6712 7076
+f 6952 6616 6412
+f 6952 6412 6712
+f 6616 6212 6036
+f 6616 6036 6412
+f 6212 5884 5648
+f 6212 5648 6036
+f 5884 5416 5296
+f 5884 5296 5648
+f 5416 5020 4836
+f 5416 4836 5296
+f 5020 4580 4484
+f 5020 4484 4836
+f 4580 4072 3976
+f 4580 3976 4484
+f 4072 3712 3508
+f 4072 3508 3976
+f 3712 3108 3012
+f 3712 3012 3508
+f 3108 2528 2448
+f 3108 2448 3012
+f 2528 1992 1944
+f 2528 1944 2448
+f 1992 1196 1180
+f 1992 1180 1944
+f 1179 1943 1911
+f 1179 1911 1163
+f 1943 2447 2351
+f 1943 2351 1911
+f 2447 3011 2947
+f 2447 2947 2351
+f 3011 3507 3371
+f 3011 3371 2947
+f 3507 3975 3871
+f 3507 3871 3371
+f 3975 4483 4271
+f 3975 4271 3871
+f 4483 4835 4683
+f 4483 4683 4271
+f 4835 5295 5131
+f 4835 5131 4683
+f 5295 5647 5463
+f 5295 5463 5131
+f 5647 6035 5859
+f 5647 5859 5463
+f 6035 6411 6131
+f 6035 6131 5859
+f 6411 6711 6519
+f 6411 6519 6131
+f 6711 7075 6815
+f 6711 6815 6519
+f 7075 7347 7139
+f 7075 7139 6815
+f 7347 7695 7403
+f 7347 7403 7139
+f 7695 7943 7711
+f 7695 7711 7403
+f 7943 8251 7935
+f 7943 7935 7711
+f 8251 8483 8219
+f 8251 8219 7935
+f 8483 8751 8427
+f 8483 8427 8219
+f 8751 8951 8699
+f 8751 8699 8427
+f 8951 9243 8887
+f 8951 8887 8699
+f 9243 9411 9111
+f 9243 9111 8887
+f 9411 9643 9339
+f 9411 9339 9111
+f 9643 9839 9491
+f 9643 9491 9339
+f 9839 10007 9711
+f 9839 9711 9491
+f 10007 10211 9863
+f 10007 9863 9711
+f 10211 10371 10015
+f 10211 10015 9863
+f 10371 10531 10179
+f 10371 10179 10015
+f 10531 10663 10315
+f 10531 10315 10179
+f 10663 10791 10435
+f 10663 10435 10315
+f 10791 10935 10607
+f 10791 10607 10435
+f 10935 11075 10671
+f 10935 10671 10607
+f 11075 11131 10775
+f 11075 10775 10671
+f 11131 11227 10887
+f 11131 10887 10775
+f 11227 11347 10975
+f 11227 10975 10887
+f 11347 11423 11067
+f 11347 11067 10975
+f 11423 11479 11099
+f 11423 11099 11067
+f 11479 11543 11147
+f 11479 11147 11099
+f 11543 11559 11195
+f 11543 11195 11147
+f 11559 11607 11219
+f 11559 11219 11195
+f 11607 11647 11275
+f 11607 11275 11219
+f 11647 11663 11291
+f 11647 11291 11275
+f 11663 11679 11315
+f 11663 11315 11291
+f 11679 11680 11316
+f 11679 11316 11315
+f 11680 11664 11292
+f 11680 11292 11316
+f 11664 11648 11276
+f 11664 11276 11292
+f 11648 11608 11220
+f 11648 11220 11276
+f 11608 11560 11196
+f 11608 11196 11220
+f 11560 11544 11148
+f 11560 11148 11196
+f 11544 11480 11100
+f 11544 11100 11148
+f 11480 11424 11068
+f 11480 11068 11100
+f 11424 11348 10976
+f 11424 10976 11068
+f 11348 11228 10888
+f 11348 10888 10976
+f 11228 11132 10776
+f 11228 10776 10888
+f 11132 11076 10672
+f 11132 10672 10776
+f 11076 10936 10608
+f 11076 10608 10672
+f 10936 10792 10436
+f 10936 10436 10608
+f 10792 10664 10316
+f 10792 10316 10436
+f 10664 10532 10180
+f 10664 10180 10316
+f 10532 10372 10016
+f 10532 10016 10180
+f 10372 10212 9864
+f 10372 9864 10016
+f 10212 10008 9712
+f 10212 9712 9864
+f 10008 9840 9492
+f 10008 9492 9712
+f 9840 9644 9340
+f 9840 9340 9492
+f 9644 9412 9112
+f 9644 9112 9340
+f 9412 9244 8888
+f 9412 8888 9112
+f 9244 8952 8700
+f 9244 8700 8888
+f 8952 8752 8428
+f 8952 8428 8700
+f 8752 8484 8220
+f 8752 8220 8428
+f 8484 8252 7936
+f 8484 7936 8220
+f 8252 7944 7712
+f 8252 7712 7936
+f 7944 7696 7404
+f 7944 7404 7712
+f 7696 7348 7140
+f 7696 7140 7404
+f 7348 7076 6816
+f 7348 6816 7140
+f 7076 6712 6520
+f 7076 6520 6816
+f 6712 6412 6132
+f 6712 6132 6520
+f 6412 6036 5860
+f 6412 5860 6132
+f 6036 5648 5464
+f 6036 5464 5860
+f 5648 5296 5132
+f 5648 5132 5464
+f 5296 4836 4684
+f 5296 4684 5132
+f 4836 4484 4272
+f 4836 4272 4684
+f 4484 3976 3872
+f 4484 3872 4272
+f 3976 3508 3372
+f 3976 3372 3872
+f 3508 3012 2948
+f 3508 2948 3372
+f 3012 2448 2352
+f 3012 2352 2948
+f 2448 1944 1912
+f 2448 1912 2352
+f 1944 1180 1164
+f 1944 1164 1912
+f 1163 1911 1879
+f 1163 1879 1123
+f 1911 2351 2271
+f 1911 2271 1879
+f 2351 2947 2859
+f 2351 2859 2271
+f 2947 3371 3243
+f 2947 3243 2859
+f 3371 3871 3743
+f 3371 3743 3243
+f 3871 4271 4103
+f 3871 4103 3743
+f 4271 4683 4547
+f 4271 4547 4103
+f 4683 5131 4875
+f 4683 4875 4547
+f 5131 5463 5279
+f 5131 5279 4875
+f 5463 5859 5583
+f 5463 5583 5279
+f 5859 6131 5947
+f 5859 5947 5583
+f 6131 6519 6235
+f 6131 6235 5947
+f 6519 6815 6567
+f 6519 6567 6235
+f 6815 7139 6839
+f 6815 6839 6567
+f 7139 7403 7147
+f 7139 7147 6839
+f 7403 7711 7395
+f 7403 7395 7147
+f 7711 7935 7687
+f 7711 7687 7395
+f 7935 8219 7895
+f 7935 7895 7687
+f 8219 8427 8151
+f 8219 8151 7895
+f 8427 8699 8355
+f 8427 8355 8151
+f 8699 8887 8563
+f 8699 8563 8355
+f 8887 9111 8815
+f 8887 8815 8563
+f 9111 9339 8967
+f 9111 8967 8815
+f 9339 9491 9183
+f 9339 9183 8967
+f 9491 9711 9355
+f 9491 9355 9183
+f 9711 9863 9499
+f 9711 9499 9355
+f 9863 10015 9675
+f 9863 9675 9499
+f 10015 10179 9815
+f 10015 9815 9675
+f 10179 10315 9943
+f 10179 9943 9815
+f 10315 10435 10103
+f 10315 10103 9943
+f 10435 10607 10203
+f 10435 10203 10103
+f 10607 10671 10291
+f 10607 10291 10203
+f 10671 10775 10395
+f 10671 10395 10291
+f 10775 10887 10499
+f 10775 10499 10395
+f 10887 10975 10615
+f 10887 10615 10499
+f 10975 11067 10655
+f 10975 10655 10615
+f 11067 11099 10719
+f 11067 10719 10655
+f 11099 11147 10751
+f 11099 10751 10719
+f 11147 11195 10799
+f 11147 10799 10751
+f 11195 11219 10855
+f 11195 10855 10799
+f 11219 11275 10879
+f 11219 10879 10855
+f 11275 11291 10895
+f 11275 10895 10879
+f 11291 11315 10903
+f 11291 10903 10895
+f 11315 11316 10904
+f 11315 10904 10903
+f 11316 11292 10896
+f 11316 10896 10904
+f 11292 11276 10880
+f 11292 10880 10896
+f 11276 11220 10856
+f 11276 10856 10880
+f 11220 11196 10800
+f 11220 10800 10856
+f 11196 11148 10752
+f 11196 10752 10800
+f 11148 11100 10720
+f 11148 10720 10752
+f 11100 11068 10656
+f 11100 10656 10720
+f 11068 10976 10616
+f 11068 10616 10656
+f 10976 10888 10500
+f 10976 10500 10616
+f 10888 10776 10396
+f 10888 10396 10500
+f 10776 10672 10292
+f 10776 10292 10396
+f 10672 10608 10204
+f 10672 10204 10292
+f 10608 10436 10104
+f 10608 10104 10204
+f 10436 10316 9944
+f 10436 9944 10104
+f 10316 10180 9816
+f 10316 9816 9944
+f 10180 10016 9676
+f 10180 9676 9816
+f 10016 9864 9500
+f 10016 9500 9676
+f 9864 9712 9356
+f 9864 9356 9500
+f 9712 9492 9184
+f 9712 9184 9356
+f 9492 9340 8968
+f 9492 8968 9184
+f 9340 9112 8816
+f 9340 8816 8968
+f 9112 8888 8564
+f 9112 8564 8816
+f 8888 8700 8356
+f 8888 8356 8564
+f 8700 8428 8152
+f 8700 8152 8356
+f 8428 8220 7896
+f 8428 7896 8152
+f 8220 7936 7688
+f 8220 7688 7896
+f 7936 7712 7396
+f 7936 7396 7688
+f 7712 7404 7148
+f 7712 7148 7396
+f 7404 7140 6840
+f 7404 6840 7148
+f 7140 6816 6568
+f 7140 6568 6840
+f 6816 6520 6236
+f 6816 6236 6568
+f 6520 6132 5948
+f 6520 5948 6236
+f 6132 5860 5584
+f 6132 5584 5948
+f 5860 5464 5280
+f 5860 5280 5584
+f 5464 5132 4876
+f 5464 4876 5280
+f 5132 4684 4548
+f 5132 4548 4876
+f 4684 4272 4104
+f 4684 4104 4548
+f 4272 3872 3744
+f 4272 3744 4104
+f 3872 3372 3244
+f 3872 3244 3744
+f 3372 2948 2860
+f 3372 2860 3244
+f 2948 2352 2272
+f 2948 2272 2860
+f 2352 1912 1880
+f 2352 1880 2272
+f 1912 1164 1124
+f 1912 1124 1880
+f 1123 1879 1819
+f 1123 1819 1091
+f 1879 2271 2207
+f 1879 2207 1819
+f 2271 2859 2759
+f 2271 2759 2207
+f 2859 3243 3139
+f 2859 3139 2759
+f 3243 3743 3619
+f 3243 3619 3139
+f 3743 4103 3959
+f 3743 3959 3619
+f 4103 4547 4375
+f 4103 4375 3959
+f 4547 4875 4699
+f 4547 4699 4375
+f 4875 5279 5051
+f 4875 5051 4699
+f 5279 5583 5375
+f 5279 5375 5051
+f 5583 5947 5687
+f 5583 5687 5375
+f 5947 6235 5995
+f 5947 5995 5687
+f 6235 6567 6283
+f 6235 6283 5995
+f 6567 6839 6583
+f 6567 6583 6283
+f 6839 7147 6831
+f 6839 6831 6583
+f 7147 7395 7131
+f 7147 7131 6831
+f 7395 7687 7339
+f 7395 7339 7131
+f 7687 7895 7619
+f 7687 7619 7339
+f 7895 8151 7815
+f 7895 7815 7619
+f 8151 8355 8007
+f 8151 8007 7815
+f 8355 8563 8275
+f 8355 8275 8007
+f 8563 8815 8419
+f 8563 8419 8275
+f 8815 8967 8651
+f 8815 8651 8419
+f 8967 9183 8831
+f 8967 8831 8651
+f 9183 9355 8975
+f 9183 8975 8831
+f 9355 9499 9151
+f 9355 9151 8975
+f 9499 9675 9307
+f 9499 9307 9151
+f 9675 9815 9435
+f 9675 9435 9307
+f 9815 9943 9571
+f 9815 9571 9435
+f 9943 10103 9719
+f 9943 9719 9571
+f 10103 10203 9807
+f 10103 9807 9719
+f 10203 10291 9895
+f 10203 9895 9807
+f 10291 10395 9983
+f 10291 9983 9895
+f 10395 10499 10119
+f 10395 10119 9983
+f 10499 10615 10187
+f 10499 10187 10119
+f 10615 10655 10259
+f 10615 10259 10187
+f 10655 10719 10307
+f 10655 10307 10259
+f 10719 10751 10363
+f 10719 10363 10307
+f 10751 10799 10387
+f 10751 10387 10363
+f 10799 10855 10411
+f 10799 10411 10387
+f 10855 10879 10459
+f 10855 10459 10411
+f 10879 10895 10475
+f 10879 10475 10459
+f 10895 10903 10483
+f 10895 10483 10475
+f 10903 10904 10484
+f 10903 10484 10483
+f 10904 10896 10476
+f 10904 10476 10484
+f 10896 10880 10460
+f 10896 10460 10476
+f 10880 10856 10412
+f 10880 10412 10460
+f 10856 10800 10388
+f 10856 10388 10412
+f 10800 10752 10364
+f 10800 10364 10388
+f 10752 10720 10308
+f 10752 10308 10364
+f 10720 10656 10260
+f 10720 10260 10308
+f 10656 10616 10188
+f 10656 10188 10260
+f 10616 10500 10120
+f 10616 10120 10188
+f 10500 10396 9984
+f 10500 9984 10120
+f 10396 10292 9896
+f 10396 9896 9984
+f 10292 10204 9808
+f 10292 9808 9896
+f 10204 10104 9720
+f 10204 9720 9808
+f 10104 9944 9572
+f 10104 9572 9720
+f 9944 9816 9436
+f 9944 9436 9572
+f 9816 9676 9308
+f 9816 9308 9436
+f 9676 9500 9152
+f 9676 9152 9308
+f 9500 9356 8976
+f 9500 8976 9152
+f 9356 9184 8832
+f 9356 8832 8976
+f 9184 8968 8652
+f 9184 8652 8832
+f 8968 8816 8420
+f 8968 8420 8652
+f 8816 8564 8276
+f 8816 8276 8420
+f 8564 8356 8008
+f 8564 8008 8276
+f 8356 8152 7816
+f 8356 7816 8008
+f 8152 7896 7620
+f 8152 7620 7816
+f 7896 7688 7340
+f 7896 7340 7620
+f 7688 7396 7132
+f 7688 7132 7340
+f 7396 7148 6832
+f 7396 6832 7132
+f 7148 6840 6584
+f 7148 6584 6832
+f 6840 6568 6284
+f 6840 6284 6584
+f 6568 6236 5996
+f 6568 5996 6284
+f 6236 5948 5688
+f 6236 5688 5996
+f 5948 5584 5376
+f 5948 5376 5688
+f 5584 5280 5052
+f 5584 5052 5376
+f 5280 4876 4700
+f 5280 4700 5052
+f 4876 4548 4376
+f 4876 4376 4700
+f 4548 4104 3960
+f 4548 3960 4376
+f 4104 3744 3620
+f 4104 3620 3960
+f 3744 3244 3140
+f 3744 3140 3620
+f 3244 2860 2760
+f 3244 2760 3140
+f 2860 2272 2208
+f 2860 2208 2760
+f 2272 1880 1820
+f 2272 1820 2208
+f 1880 1124 1092
+f 1880 1092 1820
+f 1091 1819 1643
+f 1091 1643 1059
+f 1819 2207 2127
+f 1819 2127 1643
+f 2207 2759 2575
+f 2207 2575 2127
+f 2759 3139 2995
+f 2759 2995 2575
+f 3139 3619 3387
+f 3139 3387 2995
+f 3619 3959 3807
+f 3619 3807 3387
+f 3959 4375 4151
+f 3959 4151 3807
+f 4375 4699 4531
+f 4375 4531 4151
+f 4699 5051 4795
+f 4699 4795 4531
+f 5051 5375 5191
+f 5051 5191 4795
+f 5375 5687 5439
+f 5375 5439 5191
+f 5687 5995 5783
+f 5687 5783 5439
+f 5995 6283 6043
+f 5995 6043 5783
+f 6283 6583 6275
+f 6283 6275 6043
+f 6583 6831 6559
+f 6583 6559 6275
+f 6831 7131 6807
+f 6831 6807 6559
+f 7131 7339 7063
+f 7131 7063 6807
+f 7339 7619 7251
+f 7339 7251 7063
+f 7619 7815 7459
+f 7619 7459 7251
+f 7815 8007 7727
+f 7815 7727 7459
+f 8007 8275 7879
+f 8007 7879 7727
+f 8275 8419 8095
+f 8275 8095 7879
+f 8419 8651 8299
+f 8419 8299 8095
+f 8651 8831 8411
+f 8651 8411 8299
+f 8831 8975 8595
+f 8831 8595 8411
+f 8975 9151 8783
+f 8975 8783 8595
+f 9151 9307 8895
+f 9151 8895 8783
+f 9307 9435 9039
+f 9307 9039 8895
+f 9435 9571 9191
+f 9435 9191 9039
+f 9571 9719 9299
+f 9571 9299 9191
+f 9719 9807 9387
+f 9719 9387 9299
+f 9807 9895 9467
+f 9807 9467 9387
+f 9895 9983 9603
+f 9895 9603 9467
+f 9983 10119 9695
+f 9983 9695 9603
+f 10119 10187 9767
+f 10119 9767 9695
+f 10187 10259 9823
+f 10187 9823 9767
+f 10259 10307 9887
+f 10259 9887 9823
+f 10307 10363 9911
+f 10307 9911 9887
+f 10363 10387 9959
+f 10363 9959 9911
+f 10387 10411 9975
+f 10387 9975 9959
+f 10411 10459 10031
+f 10411 10031 9975
+f 10459 10475 10063
+f 10459 10063 10031
+f 10475 10483 10087
+f 10475 10087 10063
+f 10483 10484 10088
+f 10483 10088 10087
+f 10484 10476 10064
+f 10484 10064 10088
+f 10476 10460 10032
+f 10476 10032 10064
+f 10460 10412 9976
+f 10460 9976 10032
+f 10412 10388 9960
+f 10412 9960 9976
+f 10388 10364 9912
+f 10388 9912 9960
+f 10364 10308 9888
+f 10364 9888 9912
+f 10308 10260 9824
+f 10308 9824 9888
+f 10260 10188 9768
+f 10260 9768 9824
+f 10188 10120 9696
+f 10188 9696 9768
+f 10120 9984 9604
+f 10120 9604 9696
+f 9984 9896 9468
+f 9984 9468 9604
+f 9896 9808 9388
+f 9896 9388 9468
+f 9808 9720 9300
+f 9808 9300 9388
+f 9720 9572 9192
+f 9720 9192 9300
+f 9572 9436 9040
+f 9572 9040 9192
+f 9436 9308 8896
+f 9436 8896 9040
+f 9308 9152 8784
+f 9308 8784 8896
+f 9152 8976 8596
+f 9152 8596 8784
+f 8976 8832 8412
+f 8976 8412 8596
+f 8832 8652 8300
+f 8832 8300 8412
+f 8652 8420 8096
+f 8652 8096 8300
+f 8420 8276 7880
+f 8420 7880 8096
+f 8276 8008 7728
+f 8276 7728 7880
+f 8008 7816 7460
+f 8008 7460 7728
+f 7816 7620 7252
+f 7816 7252 7460
+f 7620 7340 7064
+f 7620 7064 7252
+f 7340 7132 6808
+f 7340 6808 7064
+f 7132 6832 6560
+f 7132 6560 6808
+f 6832 6584 6276
+f 6832 6276 6560
+f 6584 6284 6044
+f 6584 6044 6276
+f 6284 5996 5784
+f 6284 5784 6044
+f 5996 5688 5440
+f 5996 5440 5784
+f 5688 5376 5192
+f 5688 5192 5440
+f 5376 5052 4796
+f 5376 4796 5192
+f 5052 4700 4532
+f 5052 4532 4796
+f 4700 4376 4152
+f 4700 4152 4532
+f 4376 3960 3808
+f 4376 3808 4152
+f 3960 3620 3388
+f 3960 3388 3808
+f 3620 3140 2996
+f 3620 2996 3388
+f 3140 2760 2576
+f 3140 2576 2996
+f 2760 2208 2128
+f 2760 2128 2576
+f 2208 1820 1644
+f 2208 1644 2128
+f 1820 1092 1060
+f 1820 1060 1644
+f 1059 1643 1539
+f 1059 1539 1043
+f 1643 2127 2047
+f 1643 2047 1539
+f 2127 2575 2423
+f 2127 2423 2047
+f 2575 2995 2915
+f 2575 2915 2423
+f 2995 3387 3219
+f 2995 3219 2915
+f 3387 3807 3679
+f 3387 3679 3219
+f 3807 4151 3943
+f 3807 3943 3679
+f 4151 4531 4287
+f 4151 4287 3943
+f 4531 4795 4619
+f 4531 4619 4287
+f 4795 5191 4907
+f 4795 4907 4619
+f 5191 5439 5231
+f 5191 5231 4907
+f 5439 5783 5487
+f 5439 5487 5231
+f 5783 6043 5775
+f 5783 5775 5487
+f 6043 6275 5987
+f 6043 5987 5775
+f 6275 6559 6227
+f 6275 6227 5987
+f 6559 6807 6511
+f 6559 6511 6227
+f 6807 7063 6695
+f 6807 6695 6511
+f 7063 7251 6935
+f 7063 6935 6695
+f 7251 7459 7163
+f 7251 7163 6935
+f 7459 7727 7323
+f 7459 7323 7163
+f 7727 7879 7539
+f 7727 7539 7323
+f 7879 8095 7743
+f 7879 7743 7539
+f 8095 8299 7863
+f 8095 7863 7743
+f 8299 8411 8039
+f 8299 8039 7863
+f 8411 8595 8235
+f 8411 8235 8039
+f 8595 8783 8347
+f 8595 8347 8235
+f 8783 8895 8499
+f 8783 8499 8347
+f 8895 9039 8635
+f 8895 8635 8499
+f 9039 9191 8767
+f 9039 8767 8635
+f 9191 9299 8863
+f 9191 8863 8767
+f 9299 9387 8943
+f 9299 8943 8863
+f 9387 9467 9071
+f 9387 9071 8943
+f 9467 9603 9159
+f 9467 9159 9071
+f 9603 9695 9259
+f 9603 9259 9159
+f 9695 9767 9331
+f 9695 9331 9259
+f 9767 9823 9379
+f 9767 9379 9331
+f 9823 9887 9419
+f 9823 9419 9379
+f 9887 9911 9459
+f 9887 9459 9419
+f 9911 9959 9515
+f 9911 9515 9459
+f 9959 9975 9563
+f 9959 9563 9515
+f 9975 10031 9587
+f 9975 9587 9563
+f 10031 10063 9611
+f 10031 9611 9587
+f 10063 10087 9619
+f 10063 9619 9611
+f 10087 10088 9620
+f 10087 9620 9619
+f 10088 10064 9612
+f 10088 9612 9620
+f 10064 10032 9588
+f 10064 9588 9612
+f 10032 9976 9564
+f 10032 9564 9588
+f 9976 9960 9516
+f 9976 9516 9564
+f 9960 9912 9460
+f 9960 9460 9516
+f 9912 9888 9420
+f 9912 9420 9460
+f 9888 9824 9380
+f 9888 9380 9420
+f 9824 9768 9332
+f 9824 9332 9380
+f 9768 9696 9260
+f 9768 9260 9332
+f 9696 9604 9160
+f 9696 9160 9260
+f 9604 9468 9072
+f 9604 9072 9160
+f 9468 9388 8944
+f 9468 8944 9072
+f 9388 9300 8864
+f 9388 8864 8944
+f 9300 9192 8768
+f 9300 8768 8864
+f 9192 9040 8636
+f 9192 8636 8768
+f 9040 8896 8500
+f 9040 8500 8636
+f 8896 8784 8348
+f 8896 8348 8500
+f 8784 8596 8236
+f 8784 8236 8348
+f 8596 8412 8040
+f 8596 8040 8236
+f 8412 8300 7864
+f 8412 7864 8040
+f 8300 8096 7744
+f 8300 7744 7864
+f 8096 7880 7540
+f 8096 7540 7744
+f 7880 7728 7324
+f 7880 7324 7540
+f 7728 7460 7164
+f 7728 7164 7324
+f 7460 7252 6936
+f 7460 6936 7164
+f 7252 7064 6696
+f 7252 6696 6936
+f 7064 6808 6512
+f 7064 6512 6696
+f 6808 6560 6228
+f 6808 6228 6512
+f 6560 6276 5988
+f 6560 5988 6228
+f 6276 6044 5776
+f 6276 5776 5988
+f 6044 5784 5488
+f 6044 5488 5776
+f 5784 5440 5232
+f 5784 5232 5488
+f 5440 5192 4908
+f 5440 4908 5232
+f 5192 4796 4620
+f 5192 4620 4908
+f 4796 4532 4288
+f 4796 4288 4620
+f 4532 4152 3944
+f 4532 3944 4288
+f 4152 3808 3680
+f 4152 3680 3944
+f 3808 3388 3220
+f 3808 3220 3680
+f 3388 2996 2916
+f 3388 2916 3220
+f 2996 2576 2424
+f 2996 2424 2916
+f 2576 2128 2048
+f 2576 2048 2424
+f 2128 1644 1540
+f 2128 1540 2048
+f 1644 1060 1044
+f 1644 1044 1540
+f 1043 1539 1435
+f 1043 1435 995
+f 1539 2047 1975
+f 1539 1975 1435
+f 2047 2423 2303
+f 2047 2303 1975
+f 2423 2915 2811
+f 2423 2811 2303
+f 2915 3219 3067
+f 2915 3067 2811
+f 3219 3679 3419
+f 3219 3419 3067
+f 3679 3943 3775
+f 3679 3775 3419
+f 3943 4287 4039
+f 3943 4039 3775
+f 4287 4619 4423
+f 4287 4423 4039
+f 4619 4907 4643
+f 4619 4643 4423
+f 4907 5231 4923
+f 4907 4923 4643
+f 5231 5487 5223
+f 5231 5223 4923
+f 5487 5775 5431
+f 5487 5431 5223
+f 5775 5987 5679
+f 5775 5679 5431
+f 5987 6227 5939
+f 5987 5939 5679
+f 6227 6511 6115
+f 6227 6115 5939
+f 6511 6695 6395
+f 6511 6395 6115
+f 6695 6935 6599
+f 6695 6599 6395
+f 6935 7163 6751
+f 6935 6751 6599
+f 7163 7323 6991
+f 7163 6991 6751
+f 7323 7539 7179
+f 7323 7179 6991
+f 7539 7743 7299
+f 7539 7299 7179
+f 7743 7863 7467
+f 7743 7467 7299
+f 7863 8039 7671
+f 7863 7671 7467
+f 8039 8235 7799
+f 8039 7799 7671
+f 8235 8347 7927
+f 8235 7927 7799
+f 8347 8499 8071
+f 8347 8071 7927
+f 8499 8635 8211
+f 8499 8211 8071
+f 8635 8767 8323
+f 8635 8323 8211
+f 8767 8863 8395
+f 8767 8395 8323
+f 8863 8943 8531
+f 8863 8531 8395
+f 8943 9071 8611
+f 8943 8611 8531
+f 9071 9159 8735
+f 9071 8735 8611
+f 9159 9259 8807
+f 9159 8807 8735
+f 9259 9331 8855
+f 9259 8855 8807
+f 9331 9379 8911
+f 9331 8911 8855
+f 9379 9419 8935
+f 9379 8935 8911
+f 9419 9459 9015
+f 9419 9015 8935
+f 9459 9515 9047
+f 9459 9047 9015
+f 9515 9563 9079
+f 9515 9079 9047
+f 9563 9587 9103
+f 9563 9103 9079
+f 9587 9611 9119
+f 9587 9119 9103
+f 9611 9619 9135
+f 9611 9135 9119
+f 9619 9620 9136
+f 9619 9136 9135
+f 9620 9612 9120
+f 9620 9120 9136
+f 9612 9588 9104
+f 9612 9104 9120
+f 9588 9564 9080
+f 9588 9080 9104
+f 9564 9516 9048
+f 9564 9048 9080
+f 9516 9460 9016
+f 9516 9016 9048
+f 9460 9420 8936
+f 9460 8936 9016
+f 9420 9380 8912
+f 9420 8912 8936
+f 9380 9332 8856
+f 9380 8856 8912
+f 9332 9260 8808
+f 9332 8808 8856
+f 9260 9160 8736
+f 9260 8736 8808
+f 9160 9072 8612
+f 9160 8612 8736
+f 9072 8944 8532
+f 9072 8532 8612
+f 8944 8864 8396
+f 8944 8396 8532
+f 8864 8768 8324
+f 8864 8324 8396
+f 8768 8636 8212
+f 8768 8212 8324
+f 8636 8500 8072
+f 8636 8072 8212
+f 8500 8348 7928
+f 8500 7928 8072
+f 8348 8236 7800
+f 8348 7800 7928
+f 8236 8040 7672
+f 8236 7672 7800
+f 8040 7864 7468
+f 8040 7468 7672
+f 7864 7744 7300
+f 7864 7300 7468
+f 7744 7540 7180
+f 7744 7180 7300
+f 7540 7324 6992
+f 7540 6992 7180
+f 7324 7164 6752
+f 7324 6752 6992
+f 7164 6936 6600
+f 7164 6600 6752
+f 6936 6696 6396
+f 6936 6396 6600
+f 6696 6512 6116
+f 6696 6116 6396
+f 6512 6228 5940
+f 6512 5940 6116
+f 6228 5988 5680
+f 6228 5680 5940
+f 5988 5776 5432
+f 5988 5432 5680
+f 5776 5488 5224
+f 5776 5224 5432
+f 5488 5232 4924
+f 5488 4924 5224
+f 5232 4908 4644
+f 5232 4644 4924
+f 4908 4620 4424
+f 4908 4424 4644
+f 4620 4288 4040
+f 4620 4040 4424
+f 4288 3944 3776
+f 4288 3776 4040
+f 3944 3680 3420
+f 3944 3420 3776
+f 3680 3220 3068
+f 3680 3068 3420
+f 3220 2916 2812
+f 3220 2812 3068
+f 2916 2424 2304
+f 2916 2304 2812
+f 2424 2048 1976
+f 2424 1976 2304
+f 2048 1540 1436
+f 2048 1436 1976
+f 1540 1044 996
+f 1540 996 1436
+f 995 1435 1371
+f 995 1371 979
+f 1435 1975 1927
+f 1435 1927 1371
+f 1975 2303 2191
+f 1975 2191 1927
+f 2303 2811 2551
+f 2303 2551 2191
+f 2811 3067 2963
+f 2811 2963 2551
+f 3067 3419 3203
+f 3067 3203 2963
+f 3419 3775 3579
+f 3419 3579 3203
+f 3775 4039 3839
+f 3775 3839 3579
+f 4039 4423 4095
+f 4039 4095 3839
+f 4423 4643 4459
+f 4423 4459 4095
+f 4643 4923 4635
+f 4643 4635 4459
+f 4923 5223 4899
+f 4923 4899 4635
+f 5223 5431 5183
+f 5223 5183 4899
+f 5431 5679 5367
+f 5431 5367 5183
+f 5679 5939 5575
+f 5679 5575 5367
+f 5939 6115 5851
+f 5939 5851 5575
+f 6115 6395 6027
+f 6115 6027 5851
+f 6395 6599 6203
+f 6395 6203 6027
+f 6599 6751 6435
+f 6599 6435 6203
+f 6751 6991 6607
+f 6751 6607 6435
+f 6991 7179 6727
+f 6991 6727 6607
+f 7179 7299 6903
+f 7179 6903 6727
+f 7299 7467 7107
+f 7299 7107 6903
+f 7467 7671 7227
+f 7467 7227 7107
+f 7671 7799 7363
+f 7671 7363 7227
+f 7799 7927 7499
+f 7799 7499 7363
+f 7927 8071 7655
+f 7927 7655 7499
+f 8071 8211 7767
+f 8071 7767 7655
+f 8211 8323 7839
+f 8211 7839 7767
+f 8323 8395 7967
+f 8323 7967 7839
+f 8395 8531 8047
+f 8395 8047 7967
+f 8531 8611 8175
+f 8531 8175 8047
+f 8611 8735 8267
+f 8611 8267 8175
+f 8735 8807 8315
+f 8735 8315 8267
+f 8807 8855 8363
+f 8807 8363 8315
+f 8855 8911 8403
+f 8855 8403 8363
+f 8911 8935 8475
+f 8911 8475 8403
+f 8935 9015 8523
+f 8935 8523 8475
+f 9015 9047 8547
+f 9015 8547 8523
+f 9047 9079 8571
+f 9047 8571 8547
+f 9079 9103 8603
+f 9079 8603 8571
+f 9103 9119 8627
+f 9103 8627 8603
+f 9119 9135 8643
+f 9119 8643 8627
+f 9135 9136 8644
+f 9135 8644 8643
+f 9136 9120 8628
+f 9136 8628 8644
+f 9120 9104 8604
+f 9120 8604 8628
+f 9104 9080 8572
+f 9104 8572 8604
+f 9080 9048 8548
+f 9080 8548 8572
+f 9048 9016 8524
+f 9048 8524 8548
+f 9016 8936 8476
+f 9016 8476 8524
+f 8936 8912 8404
+f 8936 8404 8476
+f 8912 8856 8364
+f 8912 8364 8404
+f 8856 8808 8316
+f 8856 8316 8364
+f 8808 8736 8268
+f 8808 8268 8316
+f 8736 8612 8176
+f 8736 8176 8268
+f 8612 8532 8048
+f 8612 8048 8176
+f 8532 8396 7968
+f 8532 7968 8048
+f 8396 8324 7840
+f 8396 7840 7968
+f 8324 8212 7768
+f 8324 7768 7840
+f 8212 8072 7656
+f 8212 7656 7768
+f 8072 7928 7500
+f 8072 7500 7656
+f 7928 7800 7364
+f 7928 7364 7500
+f 7800 7672 7228
+f 7800 7228 7364
+f 7672 7468 7108
+f 7672 7108 7228
+f 7468 7300 6904
+f 7468 6904 7108
+f 7300 7180 6728
+f 7300 6728 6904
+f 7180 6992 6608
+f 7180 6608 6728
+f 6992 6752 6436
+f 6992 6436 6608
+f 6752 6600 6204
+f 6752 6204 6436
+f 6600 6396 6028
+f 6600 6028 6204
+f 6396 6116 5852
+f 6396 5852 6028
+f 6116 5940 5576
+f 6116 5576 5852
+f 5940 5680 5368
+f 5940 5368 5576
+f 5680 5432 5184
+f 5680 5184 5368
+f 5432 5224 4900
+f 5432 4900 5184
+f 5224 4924 4636
+f 5224 4636 4900
+f 4924 4644 4460
+f 4924 4460 4636
+f 4644 4424 4096
+f 4644 4096 4460
+f 4424 4040 3840
+f 4424 3840 4096
+f 4040 3776 3580
+f 4040 3580 3840
+f 3776 3420 3204
+f 3776 3204 3580
+f 3420 3068 2964
+f 3420 2964 3204
+f 3068 2812 2552
+f 3068 2552 2964
+f 2812 2304 2192
+f 2812 2192 2552
+f 2304 1976 1928
+f 2304 1928 2192
+f 1976 1436 1372
+f 1976 1372 1928
+f 1436 996 980
+f 1436 980 1372
+f 979 1371 1275
+f 979 1275 947
+f 1371 1927 1847
+f 1371 1847 1275
+f 1927 2191 2079
+f 1927 2079 1847
+f 2191 2551 2391
+f 2191 2391 2079
+f 2551 2963 2827
+f 2551 2827 2391
+f 2963 3203 3043
+f 2963 3043 2827
+f 3203 3579 3299
+f 3203 3299 3043
+f 3579 3839 3663
+f 3579 3663 3299
+f 3839 4095 3879
+f 3839 3879 3663
+f 4095 4459 4087
+f 4095 4087 3879
+f 4459 4635 4415
+f 4459 4415 4087
+f 4635 4899 4611
+f 4635 4611 4415
+f 4899 5183 4787
+f 4899 4787 4611
+f 5183 5367 5043
+f 5183 5043 4787
+f 5367 5575 5271
+f 5367 5271 5043
+f 5575 5851 5447
+f 5575 5447 5271
+f 5851 6027 5639
+f 5851 5639 5447
+f 6027 6203 5875
+f 6027 5875 5639
+f 6203 6435 6003
+f 6203 6003 5875
+f 6435 6607 6147
+f 6435 6147 6003
+f 6607 6727 6339
+f 6607 6339 6147
+f 6727 6903 6527
+f 6727 6527 6339
+f 6903 7107 6647
+f 6903 6647 6527
+f 7107 7227 6767
+f 7107 6767 6647
+f 7227 7363 6895
+f 7227 6895 6767
+f 7363 7499 7083
+f 7363 7083 6895
+f 7499 7655 7203
+f 7499 7203 7083
+f 7655 7767 7275
+f 7655 7275 7203
+f 7767 7839 7371
+f 7767 7371 7275
+f 7839 7967 7451
+f 7839 7451 7371
+f 7967 8047 7587
+f 7967 7587 7451
+f 8047 8175 7679
+f 8047 7679 7587
+f 8175 8267 7759
+f 8175 7759 7679
+f 8267 8315 7791
+f 8267 7791 7759
+f 8315 8363 7847
+f 8315 7847 7791
+f 8363 8403 7919
+f 8363 7919 7847
+f 8403 8475 7975
+f 8403 7975 7919
+f 8475 8523 7999
+f 8475 7999 7975
+f 8523 8547 8015
+f 8523 8015 7999
+f 8547 8571 8063
+f 8547 8063 8015
+f 8571 8603 8103
+f 8571 8103 8063
+f 8603 8627 8127
+f 8603 8127 8103
+f 8627 8643 8135
+f 8627 8135 8127
+f 8643 8644 8136
+f 8643 8136 8135
+f 8644 8628 8128
+f 8644 8128 8136
+f 8628 8604 8104
+f 8628 8104 8128
+f 8604 8572 8064
+f 8604 8064 8104
+f 8572 8548 8016
+f 8572 8016 8064
+f 8548 8524 8000
+f 8548 8000 8016
+f 8524 8476 7976
+f 8524 7976 8000
+f 8476 8404 7920
+f 8476 7920 7976
+f 8404 8364 7848
+f 8404 7848 7920
+f 8364 8316 7792
+f 8364 7792 7848
+f 8316 8268 7760
+f 8316 7760 7792
+f 8268 8176 7680
+f 8268 7680 7760
+f 8176 8048 7588
+f 8176 7588 7680
+f 8048 7968 7452
+f 8048 7452 7588
+f 7968 7840 7372
+f 7968 7372 7452
+f 7840 7768 7276
+f 7840 7276 7372
+f 7768 7656 7204
+f 7768 7204 7276
+f 7656 7500 7084
+f 7656 7084 7204
+f 7500 7364 6896
+f 7500 6896 7084
+f 7364 7228 6768
+f 7364 6768 6896
+f 7228 7108 6648
+f 7228 6648 6768
+f 7108 6904 6528
+f 7108 6528 6648
+f 6904 6728 6340
+f 6904 6340 6528
+f 6728 6608 6148
+f 6728 6148 6340
+f 6608 6436 6004
+f 6608 6004 6148
+f 6436 6204 5876
+f 6436 5876 6004
+f 6204 6028 5640
+f 6204 5640 5876
+f 6028 5852 5448
+f 6028 5448 5640
+f 5852 5576 5272
+f 5852 5272 5448
+f 5576 5368 5044
+f 5576 5044 5272
+f 5368 5184 4788
+f 5368 4788 5044
+f 5184 4900 4612
+f 5184 4612 4788
+f 4900 4636 4416
+f 4900 4416 4612
+f 4636 4460 4088
+f 4636 4088 4416
+f 4460 4096 3880
+f 4460 3880 4088
+f 4096 3840 3664
+f 4096 3664 3880
+f 3840 3580 3300
+f 3840 3300 3664
+f 3580 3204 3044
+f 3580 3044 3300
+f 3204 2964 2828
+f 3204 2828 3044
+f 2964 2552 2392
+f 2964 2392 2828
+f 2552 2192 2080
+f 2552 2080 2392
+f 2192 1928 1848
+f 2192 1848 2080
+f 1928 1372 1276
+f 1928 1276 1848
+f 1372 980 948
+f 1372 948 1276
+f 947 1275 1211
+f 947 1211 923
+f 1275 1847 1611
+f 1275 1611 1211
+f 1847 2079 2007
+f 1847 2007 1611
+f 2079 2391 2239
+f 2079 2239 2007
+f 2391 2827 2503
+f 2391 2503 2239
+f 2827 3043 2875
+f 2827 2875 2503
+f 3043 3299 3091
+f 3043 3091 2875
+f 3299 3663 3315
+f 3299 3315 3091
+f 3663 3879 3655
+f 3663 3655 3315
+f 3879 4087 3831
+f 3879 3831 3655
+f 4087 4415 4031
+f 4087 4031 3831
+f 4415 4611 4279
+f 4415 4279 4031
+f 4611 4787 4523
+f 4611 4523 4279
+f 4787 5043 4691
+f 4787 4691 4523
+f 5043 5271 4867
+f 5043 4867 4691
+f 5271 5447 5115
+f 5271 5115 4867
+f 5447 5639 5287
+f 5447 5287 5115
+f 5639 5875 5399
+f 5639 5399 5287
+f 5875 6003 5567
+f 5875 5567 5399
+f 6003 6147 5799
+f 6003 5799 5567
+f 6147 6339 5923
+f 6147 5923 5799
+f 6339 6527 6059
+f 6339 6059 5923
+f 6527 6647 6179
+f 6527 6179 6059
+f 6647 6767 6307
+f 6647 6307 6179
+f 6767 6895 6487
+f 6767 6487 6307
+f 6895 7083 6575
+f 6895 6575 6487
+f 7083 7203 6671
+f 7083 6671 6575
+f 7203 7275 6759
+f 7203 6759 6671
+f 7275 7371 6863
+f 7275 6863 6759
+f 7371 7451 6983
+f 7371 6983 6863
+f 7451 7587 7091
+f 7451 7091 6983
+f 7587 7679 7155
+f 7587 7155 7091
+f 7679 7759 7219
+f 7679 7219 7155
+f 7759 7791 7259
+f 7759 7259 7219
+f 7791 7847 7307
+f 7791 7307 7259
+f 7847 7919 7379
+f 7847 7379 7307
+f 7919 7975 7427
+f 7919 7427 7379
+f 7975 7999 7443
+f 7975 7443 7427
+f 7999 8015 7483
+f 7999 7483 7443
+f 8015 8063 7531
+f 8015 7531 7483
+f 8063 8103 7563
+f 8063 7563 7531
+f 8103 8127 7571
+f 8103 7571 7563
+f 8127 8135 7579
+f 8127 7579 7571
+f 8135 8136 7580
+f 8135 7580 7579
+f 8136 8128 7572
+f 8136 7572 7580
+f 8128 8104 7564
+f 8128 7564 7572
+f 8104 8064 7532
+f 8104 7532 7564
+f 8064 8016 7484
+f 8064 7484 7532
+f 8016 8000 7444
+f 8016 7444 7484
+f 8000 7976 7428
+f 8000 7428 7444
+f 7976 7920 7380
+f 7976 7380 7428
+f 7920 7848 7308
+f 7920 7308 7380
+f 7848 7792 7260
+f 7848 7260 7308
+f 7792 7760 7220
+f 7792 7220 7260
+f 7760 7680 7156
+f 7760 7156 7220
+f 7680 7588 7092
+f 7680 7092 7156
+f 7588 7452 6984
+f 7588 6984 7092
+f 7452 7372 6864
+f 7452 6864 6984
+f 7372 7276 6760
+f 7372 6760 6864
+f 7276 7204 6672
+f 7276 6672 6760
+f 7204 7084 6576
+f 7204 6576 6672
+f 7084 6896 6488
+f 7084 6488 6576
+f 6896 6768 6308
+f 6896 6308 6488
+f 6768 6648 6180
+f 6768 6180 6308
+f 6648 6528 6060
+f 6648 6060 6180
+f 6528 6340 5924
+f 6528 5924 6060
+f 6340 6148 5800
+f 6340 5800 5924
+f 6148 6004 5568
+f 6148 5568 5800
+f 6004 5876 5400
+f 6004 5400 5568
+f 5876 5640 5288
+f 5876 5288 5400
+f 5640 5448 5116
+f 5640 5116 5288
+f 5448 5272 4868
+f 5448 4868 5116
+f 5272 5044 4692
+f 5272 4692 4868
+f 5044 4788 4524
+f 5044 4524 4692
+f 4788 4612 4280
+f 4788 4280 4524
+f 4612 4416 4032
+f 4612 4032 4280
+f 4416 4088 3832
+f 4416 3832 4032
+f 4088 3880 3656
+f 4088 3656 3832
+f 3880 3664 3316
+f 3880 3316 3656
+f 3664 3300 3092
+f 3664 3092 3316
+f 3300 3044 2876
+f 3300 2876 3092
+f 3044 2828 2504
+f 3044 2504 2876
+f 2828 2392 2240
+f 2828 2240 2504
+f 2392 2080 2008
+f 2392 2008 2240
+f 2080 1848 1612
+f 2080 1612 2008
+f 1848 1276 1212
+f 1848 1212 1612
+f 1276 948 924
+f 1276 924 1212
+f 923 1211 1139
+f 923 1139 891
+f 1211 1611 1451
+f 1211 1451 1139
+f 1611 2007 1895
+f 1611 1895 1451
+f 2007 2239 2095
+f 2007 2095 1895
+f 2239 2503 2319
+f 2239 2319 2095
+f 2503 2875 2623
+f 2503 2623 2319
+f 2875 3091 2899
+f 2875 2899 2623
+f 3091 3315 3083
+f 3091 3083 2899
+f 3315 3655 3291
+f 3315 3291 3083
+f 3655 3831 3563
+f 3655 3563 3291
+f 3831 4031 3767
+f 3831 3767 3563
+f 4031 4279 3935
+f 4031 3935 3767
+f 4279 4523 4143
+f 4279 4143 3935
+f 4523 4691 4367
+f 4523 4367 4143
+f 4691 4867 4539
+f 4691 4539 4367
+f 4867 5115 4667
+f 4867 4667 4539
+f 5115 5287 4819
+f 5115 4819 4667
+f 5287 5399 5003
+f 5287 5003 4819
+f 5399 5567 5207
+f 5399 5207 5003
+f 5567 5799 5319
+f 5567 5319 5207
+f 5799 5923 5455
+f 5799 5455 5319
+f 5923 6059 5551
+f 5923 5551 5455
+f 6059 6179 5711
+f 6059 5711 5551
+f 6179 6307 5891
+f 6179 5891 5711
+f 6307 6487 5963
+f 6307 5963 5891
+f 6487 6575 6067
+f 6487 6067 5963
+f 6575 6671 6139
+f 6575 6139 6067
+f 6671 6759 6251
+f 6671 6251 6139
+f 6759 6863 6363
+f 6759 6363 6251
+f 6863 6983 6479
+f 6863 6479 6363
+f 6983 7091 6543
+f 6983 6543 6479
+f 7091 7155 6623
+f 7091 6623 6543
+f 7155 7219 6663
+f 7155 6663 6623
+f 7219 7259 6703
+f 7219 6703 6663
+f 7259 7307 6743
+f 7259 6743 6703
+f 7307 7379 6823
+f 7307 6823 6743
+f 7379 7427 6855
+f 7379 6855 6823
+f 7427 7443 6879
+f 7427 6879 6855
+f 7443 7483 6911
+f 7443 6911 6879
+f 7483 7531 6959
+f 7483 6959 6911
+f 7531 7563 6975
+f 7531 6975 6959
+f 7563 7571 7007
+f 7563 7007 6975
+f 7571 7579 7015
+f 7571 7015 7007
+f 7579 7580 7016
+f 7579 7016 7015
+f 7580 7572 7008
+f 7580 7008 7016
+f 7572 7564 6976
+f 7572 6976 7008
+f 7564 7532 6960
+f 7564 6960 6976
+f 7532 7484 6912
+f 7532 6912 6960
+f 7484 7444 6880
+f 7484 6880 6912
+f 7444 7428 6856
+f 7444 6856 6880
+f 7428 7380 6824
+f 7428 6824 6856
+f 7380 7308 6744
+f 7380 6744 6824
+f 7308 7260 6704
+f 7308 6704 6744
+f 7260 7220 6664
+f 7260 6664 6704
+f 7220 7156 6624
+f 7220 6624 6664
+f 7156 7092 6544
+f 7156 6544 6624
+f 7092 6984 6480
+f 7092 6480 6544
+f 6984 6864 6364
+f 6984 6364 6480
+f 6864 6760 6252
+f 6864 6252 6364
+f 6760 6672 6140
+f 6760 6140 6252
+f 6672 6576 6068
+f 6672 6068 6140
+f 6576 6488 5964
+f 6576 5964 6068
+f 6488 6308 5892
+f 6488 5892 5964
+f 6308 6180 5712
+f 6308 5712 5892
+f 6180 6060 5552
+f 6180 5552 5712
+f 6060 5924 5456
+f 6060 5456 5552
+f 5924 5800 5320
+f 5924 5320 5456
+f 5800 5568 5208
+f 5800 5208 5320
+f 5568 5400 5004
+f 5568 5004 5208
+f 5400 5288 4820
+f 5400 4820 5004
+f 5288 5116 4668
+f 5288 4668 4820
+f 5116 4868 4540
+f 5116 4540 4668
+f 4868 4692 4368
+f 4868 4368 4540
+f 4692 4524 4144
+f 4692 4144 4368
+f 4524 4280 3936
+f 4524 3936 4144
+f 4280 4032 3768
+f 4280 3768 3936
+f 4032 3832 3564
+f 4032 3564 3768
+f 3832 3656 3292
+f 3832 3292 3564
+f 3656 3316 3084
+f 3656 3084 3292
+f 3316 3092 2900
+f 3316 2900 3084
+f 3092 2876 2624
+f 3092 2624 2900
+f 2876 2504 2320
+f 2876 2320 2624
+f 2504 2240 2096
+f 2504 2096 2320
+f 2240 2008 1896
+f 2240 1896 2096
+f 2008 1612 1452
+f 2008 1452 1896
+f 1612 1212 1140
+f 1612 1140 1452
+f 1212 924 892
+f 1212 892 1140
+f 891 1139 1075
+f 891 1075 875
+f 1139 1451 1339
+f 1139 1339 1075
+f 1451 1895 1707
+f 1451 1707 1339
+f 1895 2095 1959
+f 1895 1959 1707
+f 2095 2319 2159
+f 2095 2159 1959
+f 2319 2623 2359
+f 2319 2359 2159
+f 2623 2899 2615
+f 2623 2615 2359
+f 2899 3083 2867
+f 2899 2867 2615
+f 3083 3291 3035
+f 3083 3035 2867
+f 3291 3563 3195
+f 3291 3195 3035
+f 3563 3767 3411
+f 3563 3411 3195
+f 3767 3935 3671
+f 3767 3671 3411
+f 3935 4143 3799
+f 3935 3799 3671
+f 4143 4367 3951
+f 4143 3951 3799
+f 4367 4539 4079
+f 4367 4079 3951
+f 4539 4667 4263
+f 4539 4263 4079
+f 4667 4819 4475
+f 4667 4475 4263
+f 4819 5003 4571
+f 4819 4571 4475
+f 5003 5207 4715
+f 5003 4715 4571
+f 5207 5319 4811
+f 5207 4811 4715
+f 5319 5455 4963
+f 5319 4963 4811
+f 5455 5551 5155
+f 5455 5155 4963
+f 5551 5711 5247
+f 5551 5247 5155
+f 5711 5891 5335
+f 5711 5335 5247
+f 5891 5963 5407
+f 5891 5407 5335
+f 5963 6067 5511
+f 5963 5511 5407
+f 6067 6139 5607
+f 6067 5607 5511
+f 6139 6251 5719
+f 6139 5719 5607
+f 6251 6363 5843
+f 6251 5843 5719
+f 6363 6479 5907
+f 6363 5907 5843
+f 6479 6543 5955
+f 6479 5955 5907
+f 6543 6623 6019
+f 6543 6019 5955
+f 6623 6663 6091
+f 6623 6091 6019
+f 6663 6703 6107
+f 6663 6107 6091
+f 6703 6743 6163
+f 6703 6163 6107
+f 6743 6823 6219
+f 6743 6219 6163
+f 6823 6855 6259
+f 6823 6259 6219
+f 6855 6879 6299
+f 6855 6299 6259
+f 6879 6911 6315
+f 6879 6315 6299
+f 6911 6959 6347
+f 6911 6347 6315
+f 6959 6975 6379
+f 6959 6379 6347
+f 6975 7007 6403
+f 6975 6403 6379
+f 7007 7015 6419
+f 7007 6419 6403
+f 7015 7016 6420
+f 7015 6420 6419
+f 7016 7008 6404
+f 7016 6404 6420
+f 7008 6976 6380
+f 7008 6380 6404
+f 6976 6960 6348
+f 6976 6348 6380
+f 6960 6912 6316
+f 6960 6316 6348
+f 6912 6880 6300
+f 6912 6300 6316
+f 6880 6856 6260
+f 6880 6260 6300
+f 6856 6824 6220
+f 6856 6220 6260
+f 6824 6744 6164
+f 6824 6164 6220
+f 6744 6704 6108
+f 6744 6108 6164
+f 6704 6664 6092
+f 6704 6092 6108
+f 6664 6624 6020
+f 6664 6020 6092
+f 6624 6544 5956
+f 6624 5956 6020
+f 6544 6480 5908
+f 6544 5908 5956
+f 6480 6364 5844
+f 6480 5844 5908
+f 6364 6252 5720
+f 6364 5720 5844
+f 6252 6140 5608
+f 6252 5608 5720
+f 6140 6068 5512
+f 6140 5512 5608
+f 6068 5964 5408
+f 6068 5408 5512
+f 5964 5892 5336
+f 5964 5336 5408
+f 5892 5712 5248
+f 5892 5248 5336
+f 5712 5552 5156
+f 5712 5156 5248
+f 5552 5456 4964
+f 5552 4964 5156
+f 5456 5320 4812
+f 5456 4812 4964
+f 5320 5208 4716
+f 5320 4716 4812
+f 5208 5004 4572
+f 5208 4572 4716
+f 5004 4820 4476
+f 5004 4476 4572
+f 4820 4668 4264
+f 4820 4264 4476
+f 4668 4540 4080
+f 4668 4080 4264
+f 4540 4368 3952
+f 4540 3952 4080
+f 4368 4144 3800
+f 4368 3800 3952
+f 4144 3936 3672
+f 4144 3672 3800
+f 3936 3768 3412
+f 3936 3412 3672
+f 3768 3564 3196
+f 3768 3196 3412
+f 3564 3292 3036
+f 3564 3036 3196
+f 3292 3084 2868
+f 3292 2868 3036
+f 3084 2900 2616
+f 3084 2616 2868
+f 2900 2624 2360
+f 2900 2360 2616
+f 2624 2320 2160
+f 2624 2160 2360
+f 2320 2096 1960
+f 2320 1960 2160
+f 2096 1896 1708
+f 2096 1708 1960
+f 1896 1452 1340
+f 1896 1340 1708
+f 1452 1140 1076
+f 1452 1076 1340
+f 1140 892 876
+f 1140 876 1076
+f 875 1075 1011
+f 875 1011 843
+f 1075 1339 1227
+f 1075 1227 1011
+f 1339 1707 1483
+f 1339 1483 1227
+f 1707 1959 1863
+f 1707 1863 1483
+f 1959 2159 2015
+f 1959 2015 1863
+f 2159 2359 2151
+f 2159 2151 2015
+f 2359 2615 2311
+f 2359 2311 2151
+f 2615 2867 2495
+f 2615 2495 2311
+f 2867 3035 2819
+f 2867 2819 2495
+f 3035 3195 2955
+f 3035 2955 2819
+f 3195 3411 3059
+f 3195 3059 2955
+f 3411 3671 3211
+f 3411 3211 3059
+f 3671 3799 3379
+f 3671 3379 3211
+f 3799 3951 3611
+f 3799 3611 3379
+f 3951 4079 3735
+f 3951 3735 3611
+f 4079 4263 3855
+f 4079 3855 3735
+f 4263 4475 3967
+f 4263 3967 3855
+f 4475 4571 4063
+f 4475 4063 3967
+f 4571 4715 4215
+f 4571 4215 4063
+f 4715 4811 4407
+f 4715 4407 4215
+f 4811 4963 4507
+f 4811 4507 4407
+f 4963 5155 4587
+f 4963 4587 4507
+f 5155 5247 4675
+f 5155 4675 4587
+f 5247 5335 4763
+f 5247 4763 4675
+f 5335 5407 4859
+f 5335 4859 4763
+f 5407 5511 4955
+f 5407 4955 4859
+f 5511 5607 5091
+f 5511 5091 4955
+f 5607 5719 5175
+f 5607 5175 5091
+f 5719 5843 5239
+f 5719 5239 5175
+f 5843 5907 5303
+f 5843 5303 5239
+f 5907 5955 5351
+f 5907 5351 5303
+f 5955 6019 5383
+f 5955 5383 5351
+f 6019 6091 5479
+f 6019 5479 5383
+f 6091 6107 5503
+f 6091 5503 5479
+f 6107 6163 5535
+f 6107 5535 5503
+f 6163 6219 5591
+f 6163 5591 5535
+f 6219 6259 5623
+f 6219 5623 5591
+f 6259 6299 5663
+f 6259 5663 5623
+f 6299 6315 5671
+f 6299 5671 5663
+f 6315 6347 5703
+f 6315 5703 5671
+f 6347 6379 5743
+f 6347 5743 5703
+f 6379 6403 5759
+f 6379 5759 5743
+f 6403 6419 5767
+f 6403 5767 5759
+f 6419 6420 5768
+f 6419 5768 5767
+f 6420 6404 5760
+f 6420 5760 5768
+f 6404 6380 5744
+f 6404 5744 5760
+f 6380 6348 5704
+f 6380 5704 5744
+f 6348 6316 5672
+f 6348 5672 5704
+f 6316 6300 5664
+f 6316 5664 5672
+f 6300 6260 5624
+f 6300 5624 5664
+f 6260 6220 5592
+f 6260 5592 5624
+f 6220 6164 5536
+f 6220 5536 5592
+f 6164 6108 5504
+f 6164 5504 5536
+f 6108 6092 5480
+f 6108 5480 5504
+f 6092 6020 5384
+f 6092 5384 5480
+f 6020 5956 5352
+f 6020 5352 5384
+f 5956 5908 5304
+f 5956 5304 5352
+f 5908 5844 5240
+f 5908 5240 5304
+f 5844 5720 5176
+f 5844 5176 5240
+f 5720 5608 5092
+f 5720 5092 5176
+f 5608 5512 4956
+f 5608 4956 5092
+f 5512 5408 4860
+f 5512 4860 4956
+f 5408 5336 4764
+f 5408 4764 4860
+f 5336 5248 4676
+f 5336 4676 4764
+f 5248 5156 4588
+f 5248 4588 4676
+f 5156 4964 4508
+f 5156 4508 4588
+f 4964 4812 4408
+f 4964 4408 4508
+f 4812 4716 4216
+f 4812 4216 4408
+f 4716 4572 4064
+f 4716 4064 4216
+f 4572 4476 3968
+f 4572 3968 4064
+f 4476 4264 3856
+f 4476 3856 3968
+f 4264 4080 3736
+f 4264 3736 3856
+f 4080 3952 3612
+f 4080 3612 3736
+f 3952 3800 3380
+f 3952 3380 3612
+f 3800 3672 3212
+f 3800 3212 3380
+f 3672 3412 3060
+f 3672 3060 3212
+f 3412 3196 2956
+f 3412 2956 3060
+f 3196 3036 2820
+f 3196 2820 2956
+f 3036 2868 2496
+f 3036 2496 2820
+f 2868 2616 2312
+f 2868 2312 2496
+f 2616 2360 2152
+f 2616 2152 2312
+f 2360 2160 2016
+f 2360 2016 2152
+f 2160 1960 1864
+f 2160 1864 2016
+f 1960 1708 1484
+f 1960 1484 1864
+f 1708 1340 1228
+f 1708 1228 1484
+f 1340 1076 1012
+f 1340 1012 1228
+f 1076 876 844
+f 1076 844 1012
+f 843 1011 963
+f 843 963 827
+f 1011 1227 1107
+f 1011 1107 963
+f 1227 1483 1291
+f 1227 1291 1107
+f 1483 1863 1515
+f 1483 1515 1291
+f 1863 2015 1855
+f 1863 1855 1515
+f 2015 2151 1951
+f 2015 1951 1855
+f 2151 2311 2087
+f 2151 2087 1951
+f 2311 2495 2231
+f 2311 2231 2087
+f 2495 2819 2383
+f 2495 2383 2231
+f 2819 2955 2543
+f 2819 2543 2383
+f 2955 3059 2803
+f 2955 2803 2543
+f 3059 3211 2907
+f 3059 2907 2803
+f 3211 3379 2987
+f 3211 2987 2907
+f 3379 3611 3131
+f 3379 3131 2987
+f 3611 3735 3235
+f 3611 3235 3131
+f 3735 3855 3363
+f 3735 3363 3235
+f 3855 3967 3499
+f 3855 3499 3363
+f 3967 4063 3703
+f 3967 3703 3499
+f 4063 4215 3751
+f 4063 3751 3703
+f 4215 4407 3847
+f 4215 3847 3751
+f 4407 4507 3911
+f 4407 3911 3847
+f 4507 4587 4007
+f 4507 4007 3911
+f 4587 4675 4119
+f 4587 4119 4007
+f 4675 4763 4191
+f 4675 4191 4119
+f 4763 4859 4311
+f 4763 4311 4191
+f 4859 4955 4451
+f 4859 4451 4311
+f 4955 5091 4491
+f 4955 4491 4451
+f 5091 5175 4555
+f 5091 4555 4491
+f 5175 5239 4603
+f 5175 4603 4555
+f 5239 5303 4651
+f 5239 4651 4603
+f 5303 5351 4723
+f 5303 4723 4651
+f 5351 5383 4747
+f 5351 4747 4723
+f 5383 5479 4779
+f 5383 4779 4747
+f 5479 5503 4843
+f 5479 4843 4779
+f 5503 5535 4891
+f 5503 4891 4843
+f 5535 5591 4931
+f 5535 4931 4891
+f 5591 5623 4947
+f 5591 4947 4931
+f 5623 5663 4995
+f 5623 4995 4947
+f 5663 5671 5011
+f 5663 5011 4995
+f 5671 5703 5035
+f 5671 5035 5011
+f 5703 5743 5067
+f 5703 5067 5035
+f 5743 5759 5075
+f 5743 5075 5067
+f 5759 5767 5083
+f 5759 5083 5075
+f 5767 5768 5084
+f 5767 5084 5083
+f 5768 5760 5076
+f 5768 5076 5084
+f 5760 5744 5068
+f 5760 5068 5076
+f 5744 5704 5036
+f 5744 5036 5068
+f 5704 5672 5012
+f 5704 5012 5036
+f 5672 5664 4996
+f 5672 4996 5012
+f 5664 5624 4948
+f 5664 4948 4996
+f 5624 5592 4932
+f 5624 4932 4948
+f 5592 5536 4892
+f 5592 4892 4932
+f 5536 5504 4844
+f 5536 4844 4892
+f 5504 5480 4780
+f 5504 4780 4844
+f 5480 5384 4748
+f 5480 4748 4780
+f 5384 5352 4724
+f 5384 4724 4748
+f 5352 5304 4652
+f 5352 4652 4724
+f 5304 5240 4604
+f 5304 4604 4652
+f 5240 5176 4556
+f 5240 4556 4604
+f 5176 5092 4492
+f 5176 4492 4556
+f 5092 4956 4452
+f 5092 4452 4492
+f 4956 4860 4312
+f 4956 4312 4452
+f 4860 4764 4192
+f 4860 4192 4312
+f 4764 4676 4120
+f 4764 4120 4192
+f 4676 4588 4008
+f 4676 4008 4120
+f 4588 4508 3912
+f 4588 3912 4008
+f 4508 4408 3848
+f 4508 3848 3912
+f 4408 4216 3752
+f 4408 3752 3848
+f 4216 4064 3704
+f 4216 3704 3752
+f 4064 3968 3500
+f 4064 3500 3704
+f 3968 3856 3364
+f 3968 3364 3500
+f 3856 3736 3236
+f 3856 3236 3364
+f 3736 3612 3132
+f 3736 3132 3236
+f 3612 3380 2988
+f 3612 2988 3132
+f 3380 3212 2908
+f 3380 2908 2988
+f 3212 3060 2804
+f 3212 2804 2908
+f 3060 2956 2544
+f 3060 2544 2804
+f 2956 2820 2384
+f 2956 2384 2544
+f 2820 2496 2232
+f 2820 2232 2384
+f 2496 2312 2088
+f 2496 2088 2232
+f 2312 2152 1952
+f 2312 1952 2088
+f 2152 2016 1856
+f 2152 1856 1952
+f 2016 1864 1516
+f 2016 1516 1856
+f 1864 1484 1292
+f 1864 1292 1516
+f 1484 1228 1108
+f 1484 1108 1292
+f 1228 1012 964
+f 1228 964 1108
+f 1012 844 828
+f 1012 828 964
+f 827 963 907
+f 827 907 803
+f 963 1107 1027
+f 963 1027 907
+f 1107 1291 1147
+f 1107 1147 1027
+f 1291 1515 1283
+f 1291 1283 1147
+f 1515 1855 1467
+f 1515 1467 1283
+f 1855 1951 1699
+f 1855 1699 1467
+f 1951 2087 1887
+f 1951 1887 1699
+f 2087 2231 1999
+f 2087 1999 1887
+f 2231 2383 2071
+f 2231 2071 1999
+f 2383 2543 2183
+f 2383 2183 2071
+f 2543 2803 2295
+f 2543 2295 2183
+f 2803 2907 2415
+f 2803 2415 2295
+f 2907 2987 2567
+f 2907 2567 2415
+f 2987 3131 2751
+f 2987 2751 2567
+f 3131 3235 2851
+f 3131 2851 2751
+f 3235 3363 2939
+f 3235 2939 2851
+f 3363 3499 3003
+f 3363 3003 2939
+f 3499 3703 3099
+f 3499 3099 3003
+f 3703 3751 3163
+f 3703 3163 3099
+f 3751 3847 3259
+f 3751 3259 3163
+f 3847 3911 3339
+f 3847 3339 3259
+f 3911 4007 3451
+f 3911 3451 3339
+f 4007 4119 3555
+f 4007 3555 3451
+f 4119 4191 3687
+f 4119 3687 3555
+f 4191 4311 3719
+f 4191 3719 3687
+f 4311 4451 3783
+f 4311 3783 3719
+f 4451 4491 3815
+f 4451 3815 3783
+f 4491 4555 3887
+f 4491 3887 3815
+f 4555 4603 3903
+f 4555 3903 3887
+f 4603 4651 3983
+f 4603 3983 3903
+f 4651 4723 3999
+f 4651 3999 3983
+f 4723 4747 4047
+f 4723 4047 3999
+f 4747 4779 4111
+f 4747 4111 4047
+f 4779 4843 4159
+f 4779 4159 4111
+f 4843 4891 4175
+f 4843 4175 4159
+f 4891 4931 4199
+f 4891 4199 4175
+f 4931 4947 4239
+f 4931 4239 4199
+f 4947 4995 4255
+f 4947 4255 4239
+f 4995 5011 4295
+f 4995 4295 4255
+f 5011 5035 4319
+f 5011 4319 4295
+f 5035 5067 4343
+f 5035 4343 4319
+f 5067 5075 4351
+f 5067 4351 4343
+f 5075 5083 4359
+f 5075 4359 4351
+f 5083 5084 4360
+f 5083 4360 4359
+f 5084 5076 4352
+f 5084 4352 4360
+f 5076 5068 4344
+f 5076 4344 4352
+f 5068 5036 4320
+f 5068 4320 4344
+f 5036 5012 4296
+f 5036 4296 4320
+f 5012 4996 4256
+f 5012 4256 4296
+f 4996 4948 4240
+f 4996 4240 4256
+f 4948 4932 4200
+f 4948 4200 4240
+f 4932 4892 4176
+f 4932 4176 4200
+f 4892 4844 4160
+f 4892 4160 4176
+f 4844 4780 4112
+f 4844 4112 4160
+f 4780 4748 4048
+f 4780 4048 4112
+f 4748 4724 4000
+f 4748 4000 4048
+f 4724 4652 3984
+f 4724 3984 4000
+f 4652 4604 3904
+f 4652 3904 3984
+f 4604 4556 3888
+f 4604 3888 3904
+f 4556 4492 3816
+f 4556 3816 3888
+f 4492 4452 3784
+f 4492 3784 3816
+f 4452 4312 3720
+f 4452 3720 3784
+f 4312 4192 3688
+f 4312 3688 3720
+f 4192 4120 3556
+f 4192 3556 3688
+f 4120 4008 3452
+f 4120 3452 3556
+f 4008 3912 3340
+f 4008 3340 3452
+f 3912 3848 3260
+f 3912 3260 3340
+f 3848 3752 3164
+f 3848 3164 3260
+f 3752 3704 3100
+f 3752 3100 3164
+f 3704 3500 3004
+f 3704 3004 3100
+f 3500 3364 2940
+f 3500 2940 3004
+f 3364 3236 2852
+f 3364 2852 2940
+f 3236 3132 2752
+f 3236 2752 2852
+f 3132 2988 2568
+f 3132 2568 2752
+f 2988 2908 2416
+f 2988 2416 2568
+f 2908 2804 2296
+f 2908 2296 2416
+f 2804 2544 2184
+f 2804 2184 2296
+f 2544 2384 2072
+f 2544 2072 2184
+f 2384 2232 2000
+f 2384 2000 2072
+f 2232 2088 1888
+f 2232 1888 2000
+f 2088 1952 1700
+f 2088 1700 1888
+f 1952 1856 1468
+f 1952 1468 1700
+f 1856 1516 1284
+f 1856 1284 1468
+f 1516 1292 1148
+f 1516 1148 1284
+f 1292 1108 1028
+f 1292 1028 1148
+f 1108 964 908
+f 1108 908 1028
+f 964 828 804
+f 964 804 908
+f 803 907 851
+f 803 851 779
+f 907 1027 931
+f 907 931 851
+f 1027 1147 1019
+f 1027 1019 931
+f 1147 1283 1099
+f 1147 1099 1019
+f 1283 1467 1219
+f 1283 1219 1099
+f 1467 1699 1331
+f 1467 1331 1219
+f 1699 1887 1443
+f 1699 1443 1331
+f 1887 1999 1603
+f 1887 1603 1443
+f 1999 2071 1839
+f 1999 1839 1603
+f 2071 2183 1919
+f 2071 1919 1839
+f 2183 2295 1967
+f 2183 1967 1919
+f 2295 2415 2039
+f 2295 2039 1967
+f 2415 2567 2119
+f 2415 2119 2039
+f 2567 2751 2199
+f 2567 2199 2119
+f 2751 2851 2263
+f 2751 2263 2199
+f 2851 2939 2343
+f 2851 2343 2263
+f 2939 3003 2439
+f 2939 2439 2343
+f 3003 3099 2511
+f 3003 2511 2439
+f 3099 3163 2639
+f 3099 2639 2511
+f 3163 3259 2787
+f 3163 2787 2639
+f 3259 3339 2835
+f 3259 2835 2787
+f 3339 3451 2883
+f 3339 2883 2835
+f 3451 3555 2923
+f 3451 2923 2883
+f 3555 3687 2971
+f 3555 2971 2923
+f 3687 3719 3019
+f 3687 3019 2971
+f 3719 3783 3051
+f 3719 3051 3019
+f 3783 3815 3115
+f 3783 3115 3051
+f 3815 3887 3147
+f 3815 3147 3115
+f 3887 3903 3179
+f 3887 3179 3147
+f 3903 3983 3227
+f 3903 3227 3179
+f 3983 3999 3275
+f 3983 3275 3227
+f 3999 4047 3307
+f 3999 3307 3275
+f 4047 4111 3331
+f 4047 3331 3307
+f 4111 4159 3395
+f 4111 3395 3331
+f 4159 4175 3427
+f 4159 3427 3395
+f 4175 4199 3443
+f 4175 3443 3427
+f 4199 4239 3475
+f 4199 3475 3443
+f 4239 4255 3491
+f 4239 3491 3475
+f 4255 4295 3515
+f 4255 3515 3491
+f 4295 4319 3531
+f 4295 3531 3515
+f 4319 4343 3547
+f 4319 3547 3531
+f 4343 4351 3571
+f 4343 3571 3547
+f 4351 4359 3587
+f 4351 3587 3571
+f 4359 4360 3588
+f 4359 3588 3587
+f 4360 4352 3572
+f 4360 3572 3588
+f 4352 4344 3548
+f 4352 3548 3572
+f 4344 4320 3532
+f 4344 3532 3548
+f 4320 4296 3516
+f 4320 3516 3532
+f 4296 4256 3492
+f 4296 3492 3516
+f 4256 4240 3476
+f 4256 3476 3492
+f 4240 4200 3444
+f 4240 3444 3476
+f 4200 4176 3428
+f 4200 3428 3444
+f 4176 4160 3396
+f 4176 3396 3428
+f 4160 4112 3332
+f 4160 3332 3396
+f 4112 4048 3308
+f 4112 3308 3332
+f 4048 4000 3276
+f 4048 3276 3308
+f 4000 3984 3228
+f 4000 3228 3276
+f 3984 3904 3180
+f 3984 3180 3228
+f 3904 3888 3148
+f 3904 3148 3180
+f 3888 3816 3116
+f 3888 3116 3148
+f 3816 3784 3052
+f 3816 3052 3116
+f 3784 3720 3020
+f 3784 3020 3052
+f 3720 3688 2972
+f 3720 2972 3020
+f 3688 3556 2924
+f 3688 2924 2972
+f 3556 3452 2884
+f 3556 2884 2924
+f 3452 3340 2836
+f 3452 2836 2884
+f 3340 3260 2788
+f 3340 2788 2836
+f 3260 3164 2640
+f 3260 2640 2788
+f 3164 3100 2512
+f 3164 2512 2640
+f 3100 3004 2440
+f 3100 2440 2512
+f 3004 2940 2344
+f 3004 2344 2440
+f 2940 2852 2264
+f 2940 2264 2344
+f 2852 2752 2200
+f 2852 2200 2264
+f 2752 2568 2120
+f 2752 2120 2200
+f 2568 2416 2040
+f 2568 2040 2120
+f 2416 2296 1968
+f 2416 1968 2040
+f 2296 2184 1920
+f 2296 1920 1968
+f 2184 2072 1840
+f 2184 1840 1920
+f 2072 2000 1604
+f 2072 1604 1840
+f 2000 1888 1444
+f 2000 1444 1604
+f 1888 1700 1332
+f 1888 1332 1444
+f 1700 1468 1220
+f 1700 1220 1332
+f 1468 1284 1100
+f 1468 1100 1220
+f 1284 1148 1020
+f 1284 1020 1100
+f 1148 1028 932
+f 1148 932 1020
+f 1028 908 852
+f 1028 852 932
+f 908 804 780
+f 908 780 852
+f 779 851 811
+f 779 811 771
+f 851 931 859
+f 851 859 811
+f 931 1019 899
+f 931 899 859
+f 1019 1099 955
+f 1019 955 899
+f 1099 1219 1003
+f 1099 1003 955
+f 1219 1331 1067
+f 1219 1067 1003
+f 1331 1443 1131
+f 1331 1131 1067
+f 1443 1603 1203
+f 1443 1203 1131
+f 1603 1839 1267
+f 1603 1267 1203
+f 1839 1919 1363
+f 1839 1363 1267
+f 1919 1967 1427
+f 1919 1427 1363
+f 1967 2039 1531
+f 1967 1531 1427
+f 2039 2119 1635
+f 2039 1635 1531
+f 2119 2199 1811
+f 2119 1811 1635
+f 2199 2263 1871
+f 2199 1871 1811
+f 2263 2343 1903
+f 2263 1903 1871
+f 2343 2439 1935
+f 2343 1935 1903
+f 2439 2511 1983
+f 2439 1983 1935
+f 2511 2639 2023
+f 2511 2023 1983
+f 2639 2787 2055
+f 2639 2055 2023
+f 2787 2835 2103
+f 2787 2103 2055
+f 2835 2883 2135
+f 2835 2135 2103
+f 2883 2923 2167
+f 2883 2167 2135
+f 2923 2971 2215
+f 2923 2215 2167
+f 2971 3019 2247
+f 2971 2247 2215
+f 3019 3051 2279
+f 3019 2279 2247
+f 3051 3115 2327
+f 3051 2327 2279
+f 3115 3147 2367
+f 3115 2367 2327
+f 3147 3179 2399
+f 3147 2399 2367
+f 3179 3227 2431
+f 3179 2431 2399
+f 3227 3275 2463
+f 3227 2463 2431
+f 3275 3307 2479
+f 3275 2479 2463
+f 3307 3331 2519
+f 3307 2519 2479
+f 3331 3395 2559
+f 3331 2559 2519
+f 3395 3427 2591
+f 3395 2591 2559
+f 3427 3443 2607
+f 3427 2607 2591
+f 3443 3475 2647
+f 3443 2647 2607
+f 3475 3491 2671
+f 3475 2671 2647
+f 3491 3515 2679
+f 3491 2679 2671
+f 3515 3531 2695
+f 3515 2695 2679
+f 3531 3547 2711
+f 3531 2711 2695
+f 3547 3571 2719
+f 3547 2719 2711
+f 3571 3587 2727
+f 3571 2727 2719
+f 3587 3588 2728
+f 3587 2728 2727
+f 3588 3572 2720
+f 3588 2720 2728
+f 3572 3548 2712
+f 3572 2712 2720
+f 3548 3532 2696
+f 3548 2696 2712
+f 3532 3516 2680
+f 3532 2680 2696
+f 3516 3492 2672
+f 3516 2672 2680
+f 3492 3476 2648
+f 3492 2648 2672
+f 3476 3444 2608
+f 3476 2608 2648
+f 3444 3428 2592
+f 3444 2592 2608
+f 3428 3396 2560
+f 3428 2560 2592
+f 3396 3332 2520
+f 3396 2520 2560
+f 3332 3308 2480
+f 3332 2480 2520
+f 3308 3276 2464
+f 3308 2464 2480
+f 3276 3228 2432
+f 3276 2432 2464
+f 3228 3180 2400
+f 3228 2400 2432
+f 3180 3148 2368
+f 3180 2368 2400
+f 3148 3116 2328
+f 3148 2328 2368
+f 3116 3052 2280
+f 3116 2280 2328
+f 3052 3020 2248
+f 3052 2248 2280
+f 3020 2972 2216
+f 3020 2216 2248
+f 2972 2924 2168
+f 2972 2168 2216
+f 2924 2884 2136
+f 2924 2136 2168
+f 2884 2836 2104
+f 2884 2104 2136
+f 2836 2788 2056
+f 2836 2056 2104
+f 2788 2640 2024
+f 2788 2024 2056
+f 2640 2512 1984
+f 2640 1984 2024
+f 2512 2440 1936
+f 2512 1936 1984
+f 2440 2344 1904
+f 2440 1904 1936
+f 2344 2264 1872
+f 2344 1872 1904
+f 2264 2200 1812
+f 2264 1812 1872
+f 2200 2120 1636
+f 2200 1636 1812
+f 2120 2040 1532
+f 2120 1532 1636
+f 2040 1968 1428
+f 2040 1428 1532
+f 1968 1920 1364
+f 1968 1364 1428
+f 1920 1840 1268
+f 1920 1268 1364
+f 1840 1604 1204
+f 1840 1204 1268
+f 1604 1444 1132
+f 1604 1132 1204
+f 1444 1332 1068
+f 1444 1068 1132
+f 1332 1220 1004
+f 1332 1004 1068
+f 1220 1100 956
+f 1220 956 1004
+f 1100 1020 900
+f 1100 900 956
+f 1020 932 860
+f 1020 860 900
+f 932 852 812
+f 932 812 860
+f 852 780 772
+f 852 772 812
+f 771 811 763
+f 771 763 755
+f 811 859 787
+f 811 787 763
+f 859 899 795
+f 859 795 787
+f 899 955 819
+f 899 819 795
+f 955 1003 835
+f 955 835 819
+f 1003 1067 867
+f 1003 867 835
+f 1067 1131 883
+f 1067 883 867
+f 1131 1203 915
+f 1131 915 883
+f 1203 1267 939
+f 1203 939 915
+f 1267 1363 971
+f 1267 971 939
+f 1363 1427 987
+f 1363 987 971
+f 1427 1531 1035
+f 1427 1035 987
+f 1531 1635 1051
+f 1531 1051 1035
+f 1635 1811 1083
+f 1635 1083 1051
+f 1811 1871 1115
+f 1811 1115 1083
+f 1871 1903 1155
+f 1871 1155 1115
+f 1903 1935 1171
+f 1903 1171 1155
+f 1935 1983 1187
+f 1935 1187 1171
+f 1983 2023 1235
+f 1983 1235 1187
+f 2023 2055 1251
+f 2023 1251 1235
+f 2055 2103 1299
+f 2055 1299 1251
+f 2103 2135 1315
+f 2103 1315 1299
+f 2135 2167 1347
+f 2135 1347 1315
+f 2167 2215 1379
+f 2167 1379 1347
+f 2215 2247 1395
+f 2215 1395 1379
+f 2247 2279 1411
+f 2247 1411 1395
+f 2279 2327 1459
+f 2279 1459 1411
+f 2327 2367 1491
+f 2327 1491 1459
+f 2367 2399 1507
+f 2367 1507 1491
+f 2399 2431 1547
+f 2399 1547 1507
+f 2431 2463 1563
+f 2431 1563 1547
+f 2463 2479 1579
+f 2463 1579 1563
+f 2479 2519 1595
+f 2479 1595 1579
+f 2519 2559 1627
+f 2519 1627 1595
+f 2559 2591 1659
+f 2559 1659 1627
+f 2591 2607 1675
+f 2591 1675 1659
+f 2607 2647 1691
+f 2607 1691 1675
+f 2647 2671 1715
+f 2647 1715 1691
+f 2671 2679 1731
+f 2671 1731 1715
+f 2679 2695 1747
+f 2679 1747 1731
+f 2695 2711 1763
+f 2695 1763 1747
+f 2711 2719 1771
+f 2711 1771 1763
+f 2719 2727 1779
+f 2719 1779 1771
+f 2727 2728 1780
+f 2727 1780 1779
+f 2728 2720 1772
+f 2728 1772 1780
+f 2720 2712 1764
+f 2720 1764 1772
+f 2712 2696 1748
+f 2712 1748 1764
+f 2696 2680 1732
+f 2696 1732 1748
+f 2680 2672 1716
+f 2680 1716 1732
+f 2672 2648 1692
+f 2672 1692 1716
+f 2648 2608 1676
+f 2648 1676 1692
+f 2608 2592 1660
+f 2608 1660 1676
+f 2592 2560 1628
+f 2592 1628 1660
+f 2560 2520 1596
+f 2560 1596 1628
+f 2520 2480 1580
+f 2520 1580 1596
+f 2480 2464 1564
+f 2480 1564 1580
+f 2464 2432 1548
+f 2464 1548 1564
+f 2432 2400 1508
+f 2432 1508 1548
+f 2400 2368 1492
+f 2400 1492 1508
+f 2368 2328 1460
+f 2368 1460 1492
+f 2328 2280 1412
+f 2328 1412 1460
+f 2280 2248 1396
+f 2280 1396 1412
+f 2248 2216 1380
+f 2248 1380 1396
+f 2216 2168 1348
+f 2216 1348 1380
+f 2168 2136 1316
+f 2168 1316 1348
+f 2136 2104 1300
+f 2136 1300 1316
+f 2104 2056 1252
+f 2104 1252 1300
+f 2056 2024 1236
+f 2056 1236 1252
+f 2024 1984 1188
+f 2024 1188 1236
+f 1984 1936 1172
+f 1984 1172 1188
+f 1936 1904 1156
+f 1936 1156 1172
+f 1904 1872 1116
+f 1904 1116 1156
+f 1872 1812 1084
+f 1872 1084 1116
+f 1812 1636 1052
+f 1812 1052 1084
+f 1636 1532 1036
+f 1636 1036 1052
+f 1532 1428 988
+f 1532 988 1036
+f 1428 1364 972
+f 1428 972 988
+f 1364 1268 940
+f 1364 940 972
+f 1268 1204 916
+f 1268 916 940
+f 1204 1132 884
+f 1204 884 916
+f 1132 1068 868
+f 1132 868 884
+f 1068 1004 836
+f 1068 836 868
+f 1004 956 820
+f 1004 820 836
+f 956 900 796
+f 956 796 820
+f 900 860 788
+f 900 788 796
+f 860 812 764
+f 860 764 788
+f 812 772 756
+f 812 756 764
+f 755 763 227
+f 755 227 635
+f 763 787 707
+f 763 707 227
+f 787 795 467
+f 787 467 707
+f 795 819 139
+f 795 139 467
+f 819 835 19
+f 819 19 139
+f 835 867 171
+f 835 171 19
+f 867 883 659
+f 867 659 171
+f 883 915 555
+f 883 555 659
+f 915 939 115
+f 915 115 555
+f 939 971 283
+f 939 283 115
+f 971 987 363
+f 971 363 283
+f 987 1035 691
+f 987 691 363
+f 1035 1051 251
+f 1035 251 691
+f 1051 1083 275
+f 1051 275 251
+f 1083 1115 291
+f 1083 291 275
+f 1115 1155 411
+f 1115 411 291
+f 1155 1171 667
+f 1155 667 411
+f 1171 1187 347
+f 1171 347 667
+f 1187 1235 163
+f 1187 163 347
+f 1235 1251 547
+f 1235 547 163
+f 1251 1299 11
+f 1251 11 547
+f 1299 1315 155
+f 1299 155 11
+f 1315 1347 379
+f 1315 379 155
+f 1347 1379 43
+f 1347 43 379
+f 1379 1395 147
+f 1379 147 43
+f 1395 1411 387
+f 1395 387 147
+f 1411 1459 539
+f 1411 539 387
+f 1459 1491 315
+f 1459 315 539
+f 1491 1507 699
+f 1491 699 315
+f 1507 1547 59
+f 1507 59 699
+f 1547 1563 339
+f 1547 339 59
+f 1563 1579 643
+f 1563 643 339
+f 1579 1595 259
+f 1579 259 643
+f 1595 1627 267
+f 1595 267 259
+f 1627 1659 627
+f 1627 627 267
+f 1659 1675 99
+f 1659 99 627
+f 1675 1691 459
+f 1675 459 99
+f 1691 1715 651
+f 1691 651 459
+f 1715 1731 731
+f 1715 731 651
+f 1731 1747 107
+f 1731 107 731
+f 1747 1763 355
+f 1747 355 107
+f 1763 1771 435
+f 1763 435 355
+f 1771 1779 51
+f 1771 51 435
+f 1779 1780 52
+f 1779 52 51
+f 1780 1772 436
+f 1780 436 52
+f 1772 1764 356
+f 1772 356 436
+f 1764 1748 108
+f 1764 108 356
+f 1748 1732 732
+f 1748 732 108
+f 1732 1716 652
+f 1732 652 732
+f 1716 1692 460
+f 1716 460 652
+f 1692 1676 100
+f 1692 100 460
+f 1676 1660 628
+f 1676 628 100
+f 1660 1628 268
+f 1660 268 628
+f 1628 1596 260
+f 1628 260 268
+f 1596 1580 644
+f 1596 644 260
+f 1580 1564 340
+f 1580 340 644
+f 1564 1548 60
+f 1564 60 340
+f 1548 1508 700
+f 1548 700 60
+f 1508 1492 316
+f 1508 316 700
+f 1492 1460 540
+f 1492 540 316
+f 1460 1412 388
+f 1460 388 540
+f 1412 1396 148
+f 1412 148 388
+f 1396 1380 44
+f 1396 44 148
+f 1380 1348 380
+f 1380 380 44
+f 1348 1316 156
+f 1348 156 380
+f 1316 1300 12
+f 1316 12 156
+f 1300 1252 548
+f 1300 548 12
+f 1252 1236 164
+f 1252 164 548
+f 1236 1188 348
+f 1236 348 164
+f 1188 1172 668
+f 1188 668 348
+f 1172 1156 412
+f 1172 412 668
+f 1156 1116 292
+f 1156 292 412
+f 1116 1084 276
+f 1116 276 292
+f 1084 1052 252
+f 1084 252 276
+f 1052 1036 692
+f 1052 692 252
+f 1036 988 364
+f 1036 364 692
+f 988 972 284
+f 988 284 364
+f 972 940 116
+f 972 116 284
+f 940 916 556
+f 940 556 116
+f 916 884 660
+f 916 660 556
+f 884 868 172
+f 884 172 660
+f 868 836 20
+f 868 20 172
+f 836 820 140
+f 836 140 20
+f 820 796 468
+f 820 468 140
+f 796 788 708
+f 796 708 468
+f 788 764 228
+f 788 228 708
+f 764 756 636
+f 764 636 228
+f 637 757 371
+f 757 773 371
+f 773 781 371
+f 781 805 371
+f 805 829 371
+f 829 845 371
+f 845 877 371
+f 877 893 371
+f 893 925 371
+f 925 949 371
+f 949 981 371
+f 981 997 371
+f 997 1045 371
+f 1045 1061 371
+f 1061 1093 371
+f 1093 1125 371
+f 1125 1165 371
+f 1165 1181 371
+f 1181 1197 371
+f 1197 1245 371
+f 1245 1261 371
+f 1261 1309 371
+f 1309 1325 371
+f 1325 1357 371
+f 1357 1389 371
+f 1389 1405 371
+f 1405 1421 371
+f 1421 1477 371
+f 1477 1501 371
+f 1501 1525 371
+f 1525 1557 371
+f 1557 1573 371
+f 1573 1589 371
+f 1589 1621 371
+f 1621 1653 371
+f 1653 1669 371
+f 1669 1685 371
+f 1685 1725 371
+f 1725 1741 371
+f 1741 1757 371
+f 1757 1789 371
+f 1789 1797 371
+f 1797 1805 371
+f 1805 1829 371
+f 1829 1835 371
+f 1835 1831 371
+f 1831 1807 371
+f 1807 1799 371
+f 1799 1791 371
+f 1791 1759 371
+f 1759 1743 371
+f 1743 1727 371
+f 1727 1687 371
+f 1687 1671 371
+f 1671 1655 371
+f 1655 1623 371
+f 1623 1591 371
+f 1591 1575 371
+f 1575 1559 371
+f 1559 1527 371
+f 1527 1503 371
+f 1503 1479 371
+f 1479 1423 371
+f 1423 1407 371
+f 1407 1391 371
+f 1391 1359 371
+f 1359 1327 371
+f 1327 1311 371
+f 1311 1263 371
+f 1263 1247 371
+f 1247 1199 371
+f 1199 1183 371
+f 1183 1167 371
+f 1167 1127 371
+f 1127 1095 371
+f 1095 1063 371
+f 1063 1047 371
+f 1047 999 371
+f 999 983 371
+f 983 951 371
+f 951 927 371
+f 927 895 371
+f 895 879 371
+f 879 847 371
+f 847 831 371
+f 831 807 371
+f 807 783 371
+f 783 775 371
+f 775 759 371
+f 759 639 371
+f 638 372 758
+f 758 372 774
+f 774 372 782
+f 782 372 806
+f 806 372 830
+f 830 372 846
+f 846 372 878
+f 878 372 894
+f 894 372 926
+f 926 372 950
+f 950 372 982
+f 982 372 998
+f 998 372 1046
+f 1046 372 1062
+f 1062 372 1094
+f 1094 372 1126
+f 1126 372 1166
+f 1166 372 1182
+f 1182 372 1198
+f 1198 372 1246
+f 1246 372 1262
+f 1262 372 1310
+f 1310 372 1326
+f 1326 372 1358
+f 1358 372 1390
+f 1390 372 1406
+f 1406 372 1422
+f 1422 372 1478
+f 1478 372 1502
+f 1502 372 1526
+f 1526 372 1558
+f 1558 372 1574
+f 1574 372 1590
+f 1590 372 1622
+f 1622 372 1654
+f 1654 372 1670
+f 1670 372 1686
+f 1686 372 1726
+f 1726 372 1742
+f 1742 372 1758
+f 1758 372 1790
+f 1790 372 1798
+f 1798 372 1806
+f 1806 372 1830
+f 1830 372 1836
+f 1836 372 1832
+f 1832 372 1808
+f 1808 372 1800
+f 1800 372 1792
+f 1792 372 1760
+f 1760 372 1744
+f 1744 372 1728
+f 1728 372 1688
+f 1688 372 1672
+f 1672 372 1656
+f 1656 372 1624
+f 1624 372 1592
+f 1592 372 1576
+f 1576 372 1560
+f 1560 372 1528
+f 1528 372 1504
+f 1504 372 1480
+f 1480 372 1424
+f 1424 372 1408
+f 1408 372 1392
+f 1392 372 1360
+f 1360 372 1328
+f 1328 372 1312
+f 1312 372 1264
+f 1264 372 1248
+f 1248 372 1200
+f 1200 372 1184
+f 1184 372 1168
+f 1168 372 1128
+f 1128 372 1096
+f 1096 372 1064
+f 1064 372 1048
+f 1048 372 1000
+f 1000 372 984
+f 984 372 952
+f 952 372 928
+f 928 372 896
+f 896 372 880
+f 880 372 848
+f 848 372 832
+f 832 372 808
+f 808 372 784
+f 784 372 776
+f 776 372 760
+f 760 372 640
+f 637 229 765
+f 637 765 757
+f 229 709 789
+f 229 789 765
+f 709 469 797
+f 709 797 789
+f 469 141 821
+f 469 821 797
+f 141 21 837
+f 141 837 821
+f 21 173 869
+f 21 869 837
+f 173 661 885
+f 173 885 869
+f 661 557 917
+f 661 917 885
+f 557 117 941
+f 557 941 917
+f 117 285 973
+f 117 973 941
+f 285 365 989
+f 285 989 973
+f 365 693 1037
+f 365 1037 989
+f 693 253 1053
+f 693 1053 1037
+f 253 277 1085
+f 253 1085 1053
+f 277 293 1117
+f 277 1117 1085
+f 293 413 1157
+f 293 1157 1117
+f 413 669 1173
+f 413 1173 1157
+f 669 349 1189
+f 669 1189 1173
+f 349 165 1237
+f 349 1237 1189
+f 165 549 1253
+f 165 1253 1237
+f 549 13 1301
+f 549 1301 1253
+f 13 157 1317
+f 13 1317 1301
+f 157 381 1349
+f 157 1349 1317
+f 381 45 1381
+f 381 1381 1349
+f 45 149 1397
+f 45 1397 1381
+f 149 389 1413
+f 149 1413 1397
+f 389 541 1461
+f 389 1461 1413
+f 541 317 1493
+f 541 1493 1461
+f 317 701 1509
+f 317 1509 1493
+f 701 61 1549
+f 701 1549 1509
+f 61 341 1565
+f 61 1565 1549
+f 341 645 1581
+f 341 1581 1565
+f 645 261 1597
+f 645 1597 1581
+f 261 269 1629
+f 261 1629 1597
+f 269 629 1661
+f 269 1661 1629
+f 629 101 1677
+f 629 1677 1661
+f 101 461 1693
+f 101 1693 1677
+f 461 653 1717
+f 461 1717 1693
+f 653 733 1733
+f 653 1733 1717
+f 733 109 1749
+f 733 1749 1733
+f 109 357 1765
+f 109 1765 1749
+f 357 437 1773
+f 357 1773 1765
+f 437 53 1781
+f 437 1781 1773
+f 53 54 1782
+f 53 1782 1781
+f 54 438 1774
+f 54 1774 1782
+f 438 358 1766
+f 438 1766 1774
+f 358 110 1750
+f 358 1750 1766
+f 110 734 1734
+f 110 1734 1750
+f 734 654 1718
+f 734 1718 1734
+f 654 462 1694
+f 654 1694 1718
+f 462 102 1678
+f 462 1678 1694
+f 102 630 1662
+f 102 1662 1678
+f 630 270 1630
+f 630 1630 1662
+f 270 262 1598
+f 270 1598 1630
+f 262 646 1582
+f 262 1582 1598
+f 646 342 1566
+f 646 1566 1582
+f 342 62 1550
+f 342 1550 1566
+f 62 702 1510
+f 62 1510 1550
+f 702 318 1494
+f 702 1494 1510
+f 318 542 1462
+f 318 1462 1494
+f 542 390 1414
+f 542 1414 1462
+f 390 150 1398
+f 390 1398 1414
+f 150 46 1382
+f 150 1382 1398
+f 46 382 1350
+f 46 1350 1382
+f 382 158 1318
+f 382 1318 1350
+f 158 14 1302
+f 158 1302 1318
+f 14 550 1254
+f 14 1254 1302
+f 550 166 1238
+f 550 1238 1254
+f 166 350 1190
+f 166 1190 1238
+f 350 670 1174
+f 350 1174 1190
+f 670 414 1158
+f 670 1158 1174
+f 414 294 1118
+f 414 1118 1158
+f 294 278 1086
+f 294 1086 1118
+f 278 254 1054
+f 278 1054 1086
+f 254 694 1038
+f 254 1038 1054
+f 694 366 990
+f 694 990 1038
+f 366 286 974
+f 366 974 990
+f 286 118 942
+f 286 942 974
+f 118 558 918
+f 118 918 942
+f 558 662 886
+f 558 886 918
+f 662 174 870
+f 662 870 886
+f 174 22 838
+f 174 838 870
+f 22 142 822
+f 22 822 838
+f 142 470 798
+f 142 798 822
+f 470 710 790
+f 470 790 798
+f 710 230 766
+f 710 766 790
+f 230 638 758
+f 230 758 766
+f 757 765 813
+f 757 813 773
+f 765 789 861
+f 765 861 813
+f 789 797 901
+f 789 901 861
+f 797 821 957
+f 797 957 901
+f 821 837 1005
+f 821 1005 957
+f 837 869 1069
+f 837 1069 1005
+f 869 885 1133
+f 869 1133 1069
+f 885 917 1205
+f 885 1205 1133
+f 917 941 1269
+f 917 1269 1205
+f 941 973 1365
+f 941 1365 1269
+f 973 989 1429
+f 973 1429 1365
+f 989 1037 1533
+f 989 1533 1429
+f 1037 1053 1637
+f 1037 1637 1533
+f 1053 1085 1813
+f 1053 1813 1637
+f 1085 1117 1873
+f 1085 1873 1813
+f 1117 1157 1905
+f 1117 1905 1873
+f 1157 1173 1937
+f 1157 1937 1905
+f 1173 1189 1985
+f 1173 1985 1937
+f 1189 1237 2025
+f 1189 2025 1985
+f 1237 1253 2057
+f 1237 2057 2025
+f 1253 1301 2105
+f 1253 2105 2057
+f 1301 1317 2137
+f 1301 2137 2105
+f 1317 1349 2169
+f 1317 2169 2137
+f 1349 1381 2217
+f 1349 2217 2169
+f 1381 1397 2249
+f 1381 2249 2217
+f 1397 1413 2281
+f 1397 2281 2249
+f 1413 1461 2329
+f 1413 2329 2281
+f 1461 1493 2369
+f 1461 2369 2329
+f 1493 1509 2401
+f 1493 2401 2369
+f 1509 1549 2433
+f 1509 2433 2401
+f 1549 1565 2465
+f 1549 2465 2433
+f 1565 1581 2481
+f 1565 2481 2465
+f 1581 1597 2521
+f 1581 2521 2481
+f 1597 1629 2561
+f 1597 2561 2521
+f 1629 1661 2593
+f 1629 2593 2561
+f 1661 1677 2609
+f 1661 2609 2593
+f 1677 1693 2649
+f 1677 2649 2609
+f 1693 1717 2673
+f 1693 2673 2649
+f 1717 1733 2681
+f 1717 2681 2673
+f 1733 1749 2697
+f 1733 2697 2681
+f 1749 1765 2713
+f 1749 2713 2697
+f 1765 1773 2721
+f 1765 2721 2713
+f 1773 1781 2729
+f 1773 2729 2721
+f 1781 1782 2730
+f 1781 2730 2729
+f 1782 1774 2722
+f 1782 2722 2730
+f 1774 1766 2714
+f 1774 2714 2722
+f 1766 1750 2698
+f 1766 2698 2714
+f 1750 1734 2682
+f 1750 2682 2698
+f 1734 1718 2674
+f 1734 2674 2682
+f 1718 1694 2650
+f 1718 2650 2674
+f 1694 1678 2610
+f 1694 2610 2650
+f 1678 1662 2594
+f 1678 2594 2610
+f 1662 1630 2562
+f 1662 2562 2594
+f 1630 1598 2522
+f 1630 2522 2562
+f 1598 1582 2482
+f 1598 2482 2522
+f 1582 1566 2466
+f 1582 2466 2482
+f 1566 1550 2434
+f 1566 2434 2466
+f 1550 1510 2402
+f 1550 2402 2434
+f 1510 1494 2370
+f 1510 2370 2402
+f 1494 1462 2330
+f 1494 2330 2370
+f 1462 1414 2282
+f 1462 2282 2330
+f 1414 1398 2250
+f 1414 2250 2282
+f 1398 1382 2218
+f 1398 2218 2250
+f 1382 1350 2170
+f 1382 2170 2218
+f 1350 1318 2138
+f 1350 2138 2170
+f 1318 1302 2106
+f 1318 2106 2138
+f 1302 1254 2058
+f 1302 2058 2106
+f 1254 1238 2026
+f 1254 2026 2058
+f 1238 1190 1986
+f 1238 1986 2026
+f 1190 1174 1938
+f 1190 1938 1986
+f 1174 1158 1906
+f 1174 1906 1938
+f 1158 1118 1874
+f 1158 1874 1906
+f 1118 1086 1814
+f 1118 1814 1874
+f 1086 1054 1638
+f 1086 1638 1814
+f 1054 1038 1534
+f 1054 1534 1638
+f 1038 990 1430
+f 1038 1430 1534
+f 990 974 1366
+f 990 1366 1430
+f 974 942 1270
+f 974 1270 1366
+f 942 918 1206
+f 942 1206 1270
+f 918 886 1134
+f 918 1134 1206
+f 886 870 1070
+f 886 1070 1134
+f 870 838 1006
+f 870 1006 1070
+f 838 822 958
+f 838 958 1006
+f 822 798 902
+f 822 902 958
+f 798 790 862
+f 798 862 902
+f 790 766 814
+f 790 814 862
+f 766 758 774
+f 766 774 814
+f 773 813 853
+f 773 853 781
+f 813 861 933
+f 813 933 853
+f 861 901 1021
+f 861 1021 933
+f 901 957 1101
+f 901 1101 1021
+f 957 1005 1221
+f 957 1221 1101
+f 1005 1069 1333
+f 1005 1333 1221
+f 1069 1133 1445
+f 1069 1445 1333
+f 1133 1205 1605
+f 1133 1605 1445
+f 1205 1269 1841
+f 1205 1841 1605
+f 1269 1365 1921
+f 1269 1921 1841
+f 1365 1429 1969
+f 1365 1969 1921
+f 1429 1533 2041
+f 1429 2041 1969
+f 1533 1637 2121
+f 1533 2121 2041
+f 1637 1813 2201
+f 1637 2201 2121
+f 1813 1873 2265
+f 1813 2265 2201
+f 1873 1905 2345
+f 1873 2345 2265
+f 1905 1937 2441
+f 1905 2441 2345
+f 1937 1985 2513
+f 1937 2513 2441
+f 1985 2025 2641
+f 1985 2641 2513
+f 2025 2057 2789
+f 2025 2789 2641
+f 2057 2105 2837
+f 2057 2837 2789
+f 2105 2137 2885
+f 2105 2885 2837
+f 2137 2169 2925
+f 2137 2925 2885
+f 2169 2217 2973
+f 2169 2973 2925
+f 2217 2249 3021
+f 2217 3021 2973
+f 2249 2281 3053
+f 2249 3053 3021
+f 2281 2329 3117
+f 2281 3117 3053
+f 2329 2369 3149
+f 2329 3149 3117
+f 2369 2401 3181
+f 2369 3181 3149
+f 2401 2433 3229
+f 2401 3229 3181
+f 2433 2465 3277
+f 2433 3277 3229
+f 2465 2481 3309
+f 2465 3309 3277
+f 2481 2521 3333
+f 2481 3333 3309
+f 2521 2561 3397
+f 2521 3397 3333
+f 2561 2593 3429
+f 2561 3429 3397
+f 2593 2609 3445
+f 2593 3445 3429
+f 2609 2649 3477
+f 2609 3477 3445
+f 2649 2673 3493
+f 2649 3493 3477
+f 2673 2681 3517
+f 2673 3517 3493
+f 2681 2697 3533
+f 2681 3533 3517
+f 2697 2713 3549
+f 2697 3549 3533
+f 2713 2721 3573
+f 2713 3573 3549
+f 2721 2729 3589
+f 2721 3589 3573
+f 2729 2730 3590
+f 2729 3590 3589
+f 2730 2722 3574
+f 2730 3574 3590
+f 2722 2714 3550
+f 2722 3550 3574
+f 2714 2698 3534
+f 2714 3534 3550
+f 2698 2682 3518
+f 2698 3518 3534
+f 2682 2674 3494
+f 2682 3494 3518
+f 2674 2650 3478
+f 2674 3478 3494
+f 2650 2610 3446
+f 2650 3446 3478
+f 2610 2594 3430
+f 2610 3430 3446
+f 2594 2562 3398
+f 2594 3398 3430
+f 2562 2522 3334
+f 2562 3334 3398
+f 2522 2482 3310
+f 2522 3310 3334
+f 2482 2466 3278
+f 2482 3278 3310
+f 2466 2434 3230
+f 2466 3230 3278
+f 2434 2402 3182
+f 2434 3182 3230
+f 2402 2370 3150
+f 2402 3150 3182
+f 2370 2330 3118
+f 2370 3118 3150
+f 2330 2282 3054
+f 2330 3054 3118
+f 2282 2250 3022
+f 2282 3022 3054
+f 2250 2218 2974
+f 2250 2974 3022
+f 2218 2170 2926
+f 2218 2926 2974
+f 2170 2138 2886
+f 2170 2886 2926
+f 2138 2106 2838
+f 2138 2838 2886
+f 2106 2058 2790
+f 2106 2790 2838
+f 2058 2026 2642
+f 2058 2642 2790
+f 2026 1986 2514
+f 2026 2514 2642
+f 1986 1938 2442
+f 1986 2442 2514
+f 1938 1906 2346
+f 1938 2346 2442
+f 1906 1874 2266
+f 1906 2266 2346
+f 1874 1814 2202
+f 1874 2202 2266
+f 1814 1638 2122
+f 1814 2122 2202
+f 1638 1534 2042
+f 1638 2042 2122
+f 1534 1430 1970
+f 1534 1970 2042
+f 1430 1366 1922
+f 1430 1922 1970
+f 1366 1270 1842
+f 1366 1842 1922
+f 1270 1206 1606
+f 1270 1606 1842
+f 1206 1134 1446
+f 1206 1446 1606
+f 1134 1070 1334
+f 1134 1334 1446
+f 1070 1006 1222
+f 1070 1222 1334
+f 1006 958 1102
+f 1006 1102 1222
+f 958 902 1022
+f 958 1022 1102
+f 902 862 934
+f 902 934 1022
+f 862 814 854
+f 862 854 934
+f 814 774 782
+f 814 782 854
+f 781 853 909
+f 781 909 805
+f 853 933 1029
+f 853 1029 909
+f 933 1021 1149
+f 933 1149 1029
+f 1021 1101 1285
+f 1021 1285 1149
+f 1101 1221 1469
+f 1101 1469 1285
+f 1221 1333 1701
+f 1221 1701 1469
+f 1333 1445 1889
+f 1333 1889 1701
+f 1445 1605 2001
+f 1445 2001 1889
+f 1605 1841 2073
+f 1605 2073 2001
+f 1841 1921 2185
+f 1841 2185 2073
+f 1921 1969 2297
+f 1921 2297 2185
+f 1969 2041 2417
+f 1969 2417 2297
+f 2041 2121 2569
+f 2041 2569 2417
+f 2121 2201 2753
+f 2121 2753 2569
+f 2201 2265 2853
+f 2201 2853 2753
+f 2265 2345 2941
+f 2265 2941 2853
+f 2345 2441 3005
+f 2345 3005 2941
+f 2441 2513 3101
+f 2441 3101 3005
+f 2513 2641 3165
+f 2513 3165 3101
+f 2641 2789 3261
+f 2641 3261 3165
+f 2789 2837 3341
+f 2789 3341 3261
+f 2837 2885 3453
+f 2837 3453 3341
+f 2885 2925 3557
+f 2885 3557 3453
+f 2925 2973 3689
+f 2925 3689 3557
+f 2973 3021 3721
+f 2973 3721 3689
+f 3021 3053 3785
+f 3021 3785 3721
+f 3053 3117 3817
+f 3053 3817 3785
+f 3117 3149 3889
+f 3117 3889 3817
+f 3149 3181 3905
+f 3149 3905 3889
+f 3181 3229 3985
+f 3181 3985 3905
+f 3229 3277 4001
+f 3229 4001 3985
+f 3277 3309 4049
+f 3277 4049 4001
+f 3309 3333 4113
+f 3309 4113 4049
+f 3333 3397 4161
+f 3333 4161 4113
+f 3397 3429 4177
+f 3397 4177 4161
+f 3429 3445 4201
+f 3429 4201 4177
+f 3445 3477 4241
+f 3445 4241 4201
+f 3477 3493 4257
+f 3477 4257 4241
+f 3493 3517 4297
+f 3493 4297 4257
+f 3517 3533 4321
+f 3517 4321 4297
+f 3533 3549 4345
+f 3533 4345 4321
+f 3549 3573 4353
+f 3549 4353 4345
+f 3573 3589 4361
+f 3573 4361 4353
+f 3589 3590 4362
+f 3589 4362 4361
+f 3590 3574 4354
+f 3590 4354 4362
+f 3574 3550 4346
+f 3574 4346 4354
+f 3550 3534 4322
+f 3550 4322 4346
+f 3534 3518 4298
+f 3534 4298 4322
+f 3518 3494 4258
+f 3518 4258 4298
+f 3494 3478 4242
+f 3494 4242 4258
+f 3478 3446 4202
+f 3478 4202 4242
+f 3446 3430 4178
+f 3446 4178 4202
+f 3430 3398 4162
+f 3430 4162 4178
+f 3398 3334 4114
+f 3398 4114 4162
+f 3334 3310 4050
+f 3334 4050 4114
+f 3310 3278 4002
+f 3310 4002 4050
+f 3278 3230 3986
+f 3278 3986 4002
+f 3230 3182 3906
+f 3230 3906 3986
+f 3182 3150 3890
+f 3182 3890 3906
+f 3150 3118 3818
+f 3150 3818 3890
+f 3118 3054 3786
+f 3118 3786 3818
+f 3054 3022 3722
+f 3054 3722 3786
+f 3022 2974 3690
+f 3022 3690 3722
+f 2974 2926 3558
+f 2974 3558 3690
+f 2926 2886 3454
+f 2926 3454 3558
+f 2886 2838 3342
+f 2886 3342 3454
+f 2838 2790 3262
+f 2838 3262 3342
+f 2790 2642 3166
+f 2790 3166 3262
+f 2642 2514 3102
+f 2642 3102 3166
+f 2514 2442 3006
+f 2514 3006 3102
+f 2442 2346 2942
+f 2442 2942 3006
+f 2346 2266 2854
+f 2346 2854 2942
+f 2266 2202 2754
+f 2266 2754 2854
+f 2202 2122 2570
+f 2202 2570 2754
+f 2122 2042 2418
+f 2122 2418 2570
+f 2042 1970 2298
+f 2042 2298 2418
+f 1970 1922 2186
+f 1970 2186 2298
+f 1922 1842 2074
+f 1922 2074 2186
+f 1842 1606 2002
+f 1842 2002 2074
+f 1606 1446 1890
+f 1606 1890 2002
+f 1446 1334 1702
+f 1446 1702 1890
+f 1334 1222 1470
+f 1334 1470 1702
+f 1222 1102 1286
+f 1222 1286 1470
+f 1102 1022 1150
+f 1102 1150 1286
+f 1022 934 1030
+f 1022 1030 1150
+f 934 854 910
+f 934 910 1030
+f 854 782 806
+f 854 806 910
+f 805 909 965
+f 805 965 829
+f 909 1029 1109
+f 909 1109 965
+f 1029 1149 1293
+f 1029 1293 1109
+f 1149 1285 1517
+f 1149 1517 1293
+f 1285 1469 1857
+f 1285 1857 1517
+f 1469 1701 1953
+f 1469 1953 1857
+f 1701 1889 2089
+f 1701 2089 1953
+f 1889 2001 2233
+f 1889 2233 2089
+f 2001 2073 2385
+f 2001 2385 2233
+f 2073 2185 2545
+f 2073 2545 2385
+f 2185 2297 2805
+f 2185 2805 2545
+f 2297 2417 2909
+f 2297 2909 2805
+f 2417 2569 2989
+f 2417 2989 2909
+f 2569 2753 3133
+f 2569 3133 2989
+f 2753 2853 3237
+f 2753 3237 3133
+f 2853 2941 3365
+f 2853 3365 3237
+f 2941 3005 3501
+f 2941 3501 3365
+f 3005 3101 3705
+f 3005 3705 3501
+f 3101 3165 3753
+f 3101 3753 3705
+f 3165 3261 3849
+f 3165 3849 3753
+f 3261 3341 3913
+f 3261 3913 3849
+f 3341 3453 4009
+f 3341 4009 3913
+f 3453 3557 4121
+f 3453 4121 4009
+f 3557 3689 4193
+f 3557 4193 4121
+f 3689 3721 4313
+f 3689 4313 4193
+f 3721 3785 4453
+f 3721 4453 4313
+f 3785 3817 4493
+f 3785 4493 4453
+f 3817 3889 4557
+f 3817 4557 4493
+f 3889 3905 4605
+f 3889 4605 4557
+f 3905 3985 4653
+f 3905 4653 4605
+f 3985 4001 4725
+f 3985 4725 4653
+f 4001 4049 4749
+f 4001 4749 4725
+f 4049 4113 4781
+f 4049 4781 4749
+f 4113 4161 4845
+f 4113 4845 4781
+f 4161 4177 4893
+f 4161 4893 4845
+f 4177 4201 4933
+f 4177 4933 4893
+f 4201 4241 4949
+f 4201 4949 4933
+f 4241 4257 4997
+f 4241 4997 4949
+f 4257 4297 5013
+f 4257 5013 4997
+f 4297 4321 5037
+f 4297 5037 5013
+f 4321 4345 5069
+f 4321 5069 5037
+f 4345 4353 5077
+f 4345 5077 5069
+f 4353 4361 5085
+f 4353 5085 5077
+f 4361 4362 5086
+f 4361 5086 5085
+f 4362 4354 5078
+f 4362 5078 5086
+f 4354 4346 5070
+f 4354 5070 5078
+f 4346 4322 5038
+f 4346 5038 5070
+f 4322 4298 5014
+f 4322 5014 5038
+f 4298 4258 4998
+f 4298 4998 5014
+f 4258 4242 4950
+f 4258 4950 4998
+f 4242 4202 4934
+f 4242 4934 4950
+f 4202 4178 4894
+f 4202 4894 4934
+f 4178 4162 4846
+f 4178 4846 4894
+f 4162 4114 4782
+f 4162 4782 4846
+f 4114 4050 4750
+f 4114 4750 4782
+f 4050 4002 4726
+f 4050 4726 4750
+f 4002 3986 4654
+f 4002 4654 4726
+f 3986 3906 4606
+f 3986 4606 4654
+f 3906 3890 4558
+f 3906 4558 4606
+f 3890 3818 4494
+f 3890 4494 4558
+f 3818 3786 4454
+f 3818 4454 4494
+f 3786 3722 4314
+f 3786 4314 4454
+f 3722 3690 4194
+f 3722 4194 4314
+f 3690 3558 4122
+f 3690 4122 4194
+f 3558 3454 4010
+f 3558 4010 4122
+f 3454 3342 3914
+f 3454 3914 4010
+f 3342 3262 3850
+f 3342 3850 3914
+f 3262 3166 3754
+f 3262 3754 3850
+f 3166 3102 3706
+f 3166 3706 3754
+f 3102 3006 3502
+f 3102 3502 3706
+f 3006 2942 3366
+f 3006 3366 3502
+f 2942 2854 3238
+f 2942 3238 3366
+f 2854 2754 3134
+f 2854 3134 3238
+f 2754 2570 2990
+f 2754 2990 3134
+f 2570 2418 2910
+f 2570 2910 2990
+f 2418 2298 2806
+f 2418 2806 2910
+f 2298 2186 2546
+f 2298 2546 2806
+f 2186 2074 2386
+f 2186 2386 2546
+f 2074 2002 2234
+f 2074 2234 2386
+f 2002 1890 2090
+f 2002 2090 2234
+f 1890 1702 1954
+f 1890 1954 2090
+f 1702 1470 1858
+f 1702 1858 1954
+f 1470 1286 1518
+f 1470 1518 1858
+f 1286 1150 1294
+f 1286 1294 1518
+f 1150 1030 1110
+f 1150 1110 1294
+f 1030 910 966
+f 1030 966 1110
+f 910 806 830
+f 910 830 966
+f 829 965 1013
+f 829 1013 845
+f 965 1109 1229
+f 965 1229 1013
+f 1109 1293 1485
+f 1109 1485 1229
+f 1293 1517 1865
+f 1293 1865 1485
+f 1517 1857 2017
+f 1517 2017 1865
+f 1857 1953 2153
+f 1857 2153 2017
+f 1953 2089 2313
+f 1953 2313 2153
+f 2089 2233 2497
+f 2089 2497 2313
+f 2233 2385 2821
+f 2233 2821 2497
+f 2385 2545 2957
+f 2385 2957 2821
+f 2545 2805 3061
+f 2545 3061 2957
+f 2805 2909 3213
+f 2805 3213 3061
+f 2909 2989 3381
+f 2909 3381 3213
+f 2989 3133 3613
+f 2989 3613 3381
+f 3133 3237 3737
+f 3133 3737 3613
+f 3237 3365 3857
+f 3237 3857 3737
+f 3365 3501 3969
+f 3365 3969 3857
+f 3501 3705 4065
+f 3501 4065 3969
+f 3705 3753 4217
+f 3705 4217 4065
+f 3753 3849 4409
+f 3753 4409 4217
+f 3849 3913 4509
+f 3849 4509 4409
+f 3913 4009 4589
+f 3913 4589 4509
+f 4009 4121 4677
+f 4009 4677 4589
+f 4121 4193 4765
+f 4121 4765 4677
+f 4193 4313 4861
+f 4193 4861 4765
+f 4313 4453 4957
+f 4313 4957 4861
+f 4453 4493 5093
+f 4453 5093 4957
+f 4493 4557 5177
+f 4493 5177 5093
+f 4557 4605 5241
+f 4557 5241 5177
+f 4605 4653 5305
+f 4605 5305 5241
+f 4653 4725 5353
+f 4653 5353 5305
+f 4725 4749 5385
+f 4725 5385 5353
+f 4749 4781 5481
+f 4749 5481 5385
+f 4781 4845 5505
+f 4781 5505 5481
+f 4845 4893 5537
+f 4845 5537 5505
+f 4893 4933 5593
+f 4893 5593 5537
+f 4933 4949 5625
+f 4933 5625 5593
+f 4949 4997 5665
+f 4949 5665 5625
+f 4997 5013 5673
+f 4997 5673 5665
+f 5013 5037 5705
+f 5013 5705 5673
+f 5037 5069 5745
+f 5037 5745 5705
+f 5069 5077 5761
+f 5069 5761 5745
+f 5077 5085 5769
+f 5077 5769 5761
+f 5085 5086 5770
+f 5085 5770 5769
+f 5086 5078 5762
+f 5086 5762 5770
+f 5078 5070 5746
+f 5078 5746 5762
+f 5070 5038 5706
+f 5070 5706 5746
+f 5038 5014 5674
+f 5038 5674 5706
+f 5014 4998 5666
+f 5014 5666 5674
+f 4998 4950 5626
+f 4998 5626 5666
+f 4950 4934 5594
+f 4950 5594 5626
+f 4934 4894 5538
+f 4934 5538 5594
+f 4894 4846 5506
+f 4894 5506 5538
+f 4846 4782 5482
+f 4846 5482 5506
+f 4782 4750 5386
+f 4782 5386 5482
+f 4750 4726 5354
+f 4750 5354 5386
+f 4726 4654 5306
+f 4726 5306 5354
+f 4654 4606 5242
+f 4654 5242 5306
+f 4606 4558 5178
+f 4606 5178 5242
+f 4558 4494 5094
+f 4558 5094 5178
+f 4494 4454 4958
+f 4494 4958 5094
+f 4454 4314 4862
+f 4454 4862 4958
+f 4314 4194 4766
+f 4314 4766 4862
+f 4194 4122 4678
+f 4194 4678 4766
+f 4122 4010 4590
+f 4122 4590 4678
+f 4010 3914 4510
+f 4010 4510 4590
+f 3914 3850 4410
+f 3914 4410 4510
+f 3850 3754 4218
+f 3850 4218 4410
+f 3754 3706 4066
+f 3754 4066 4218
+f 3706 3502 3970
+f 3706 3970 4066
+f 3502 3366 3858
+f 3502 3858 3970
+f 3366 3238 3738
+f 3366 3738 3858
+f 3238 3134 3614
+f 3238 3614 3738
+f 3134 2990 3382
+f 3134 3382 3614
+f 2990 2910 3214
+f 2990 3214 3382
+f 2910 2806 3062
+f 2910 3062 3214
+f 2806 2546 2958
+f 2806 2958 3062
+f 2546 2386 2822
+f 2546 2822 2958
+f 2386 2234 2498
+f 2386 2498 2822
+f 2234 2090 2314
+f 2234 2314 2498
+f 2090 1954 2154
+f 2090 2154 2314
+f 1954 1858 2018
+f 1954 2018 2154
+f 1858 1518 1866
+f 1858 1866 2018
+f 1518 1294 1486
+f 1518 1486 1866
+f 1294 1110 1230
+f 1294 1230 1486
+f 1110 966 1014
+f 1110 1014 1230
+f 966 830 846
+f 966 846 1014
+f 845 1013 1077
+f 845 1077 877
+f 1013 1229 1341
+f 1013 1341 1077
+f 1229 1485 1709
+f 1229 1709 1341
+f 1485 1865 1961
+f 1485 1961 1709
+f 1865 2017 2161
+f 1865 2161 1961
+f 2017 2153 2361
+f 2017 2361 2161
+f 2153 2313 2617
+f 2153 2617 2361
+f 2313 2497 2869
+f 2313 2869 2617
+f 2497 2821 3037
+f 2497 3037 2869
+f 2821 2957 3197
+f 2821 3197 3037
+f 2957 3061 3413
+f 2957 3413 3197
+f 3061 3213 3673
+f 3061 3673 3413
+f 3213 3381 3801
+f 3213 3801 3673
+f 3381 3613 3953
+f 3381 3953 3801
+f 3613 3737 4081
+f 3613 4081 3953
+f 3737 3857 4265
+f 3737 4265 4081
+f 3857 3969 4477
+f 3857 4477 4265
+f 3969 4065 4573
+f 3969 4573 4477
+f 4065 4217 4717
+f 4065 4717 4573
+f 4217 4409 4813
+f 4217 4813 4717
+f 4409 4509 4965
+f 4409 4965 4813
+f 4509 4589 5157
+f 4509 5157 4965
+f 4589 4677 5249
+f 4589 5249 5157
+f 4677 4765 5337
+f 4677 5337 5249
+f 4765 4861 5409
+f 4765 5409 5337
+f 4861 4957 5513
+f 4861 5513 5409
+f 4957 5093 5609
+f 4957 5609 5513
+f 5093 5177 5721
+f 5093 5721 5609
+f 5177 5241 5845
+f 5177 5845 5721
+f 5241 5305 5909
+f 5241 5909 5845
+f 5305 5353 5957
+f 5305 5957 5909
+f 5353 5385 6021
+f 5353 6021 5957
+f 5385 5481 6093
+f 5385 6093 6021
+f 5481 5505 6109
+f 5481 6109 6093
+f 5505 5537 6165
+f 5505 6165 6109
+f 5537 5593 6221
+f 5537 6221 6165
+f 5593 5625 6261
+f 5593 6261 6221
+f 5625 5665 6301
+f 5625 6301 6261
+f 5665 5673 6317
+f 5665 6317 6301
+f 5673 5705 6349
+f 5673 6349 6317
+f 5705 5745 6381
+f 5705 6381 6349
+f 5745 5761 6405
+f 5745 6405 6381
+f 5761 5769 6421
+f 5761 6421 6405
+f 5769 5770 6422
+f 5769 6422 6421
+f 5770 5762 6406
+f 5770 6406 6422
+f 5762 5746 6382
+f 5762 6382 6406
+f 5746 5706 6350
+f 5746 6350 6382
+f 5706 5674 6318
+f 5706 6318 6350
+f 5674 5666 6302
+f 5674 6302 6318
+f 5666 5626 6262
+f 5666 6262 6302
+f 5626 5594 6222
+f 5626 6222 6262
+f 5594 5538 6166
+f 5594 6166 6222
+f 5538 5506 6110
+f 5538 6110 6166
+f 5506 5482 6094
+f 5506 6094 6110
+f 5482 5386 6022
+f 5482 6022 6094
+f 5386 5354 5958
+f 5386 5958 6022
+f 5354 5306 5910
+f 5354 5910 5958
+f 5306 5242 5846
+f 5306 5846 5910
+f 5242 5178 5722
+f 5242 5722 5846
+f 5178 5094 5610
+f 5178 5610 5722
+f 5094 4958 5514
+f 5094 5514 5610
+f 4958 4862 5410
+f 4958 5410 5514
+f 4862 4766 5338
+f 4862 5338 5410
+f 4766 4678 5250
+f 4766 5250 5338
+f 4678 4590 5158
+f 4678 5158 5250
+f 4590 4510 4966
+f 4590 4966 5158
+f 4510 4410 4814
+f 4510 4814 4966
+f 4410 4218 4718
+f 4410 4718 4814
+f 4218 4066 4574
+f 4218 4574 4718
+f 4066 3970 4478
+f 4066 4478 4574
+f 3970 3858 4266
+f 3970 4266 4478
+f 3858 3738 4082
+f 3858 4082 4266
+f 3738 3614 3954
+f 3738 3954 4082
+f 3614 3382 3802
+f 3614 3802 3954
+f 3382 3214 3674
+f 3382 3674 3802
+f 3214 3062 3414
+f 3214 3414 3674
+f 3062 2958 3198
+f 3062 3198 3414
+f 2958 2822 3038
+f 2958 3038 3198
+f 2822 2498 2870
+f 2822 2870 3038
+f 2498 2314 2618
+f 2498 2618 2870
+f 2314 2154 2362
+f 2314 2362 2618
+f 2154 2018 2162
+f 2154 2162 2362
+f 2018 1866 1962
+f 2018 1962 2162
+f 1866 1486 1710
+f 1866 1710 1962
+f 1486 1230 1342
+f 1486 1342 1710
+f 1230 1014 1078
+f 1230 1078 1342
+f 1014 846 878
+f 1014 878 1078
+f 877 1077 1141
+f 877 1141 893
+f 1077 1341 1453
+f 1077 1453 1141
+f 1341 1709 1897
+f 1341 1897 1453
+f 1709 1961 2097
+f 1709 2097 1897
+f 1961 2161 2321
+f 1961 2321 2097
+f 2161 2361 2625
+f 2161 2625 2321
+f 2361 2617 2901
+f 2361 2901 2625
+f 2617 2869 3085
+f 2617 3085 2901
+f 2869 3037 3293
+f 2869 3293 3085
+f 3037 3197 3565
+f 3037 3565 3293
+f 3197 3413 3769
+f 3197 3769 3565
+f 3413 3673 3937
+f 3413 3937 3769
+f 3673 3801 4145
+f 3673 4145 3937
+f 3801 3953 4369
+f 3801 4369 4145
+f 3953 4081 4541
+f 3953 4541 4369
+f 4081 4265 4669
+f 4081 4669 4541
+f 4265 4477 4821
+f 4265 4821 4669
+f 4477 4573 5005
+f 4477 5005 4821
+f 4573 4717 5209
+f 4573 5209 5005
+f 4717 4813 5321
+f 4717 5321 5209
+f 4813 4965 5457
+f 4813 5457 5321
+f 4965 5157 5553
+f 4965 5553 5457
+f 5157 5249 5713
+f 5157 5713 5553
+f 5249 5337 5893
+f 5249 5893 5713
+f 5337 5409 5965
+f 5337 5965 5893
+f 5409 5513 6069
+f 5409 6069 5965
+f 5513 5609 6141
+f 5513 6141 6069
+f 5609 5721 6253
+f 5609 6253 6141
+f 5721 5845 6365
+f 5721 6365 6253
+f 5845 5909 6481
+f 5845 6481 6365
+f 5909 5957 6545
+f 5909 6545 6481
+f 5957 6021 6625
+f 5957 6625 6545
+f 6021 6093 6665
+f 6021 6665 6625
+f 6093 6109 6705
+f 6093 6705 6665
+f 6109 6165 6745
+f 6109 6745 6705
+f 6165 6221 6825
+f 6165 6825 6745
+f 6221 6261 6857
+f 6221 6857 6825
+f 6261 6301 6881
+f 6261 6881 6857
+f 6301 6317 6913
+f 6301 6913 6881
+f 6317 6349 6961
+f 6317 6961 6913
+f 6349 6381 6977
+f 6349 6977 6961
+f 6381 6405 7009
+f 6381 7009 6977
+f 6405 6421 7017
+f 6405 7017 7009
+f 6421 6422 7018
+f 6421 7018 7017
+f 6422 6406 7010
+f 6422 7010 7018
+f 6406 6382 6978
+f 6406 6978 7010
+f 6382 6350 6962
+f 6382 6962 6978
+f 6350 6318 6914
+f 6350 6914 6962
+f 6318 6302 6882
+f 6318 6882 6914
+f 6302 6262 6858
+f 6302 6858 6882
+f 6262 6222 6826
+f 6262 6826 6858
+f 6222 6166 6746
+f 6222 6746 6826
+f 6166 6110 6706
+f 6166 6706 6746
+f 6110 6094 6666
+f 6110 6666 6706
+f 6094 6022 6626
+f 6094 6626 6666
+f 6022 5958 6546
+f 6022 6546 6626
+f 5958 5910 6482
+f 5958 6482 6546
+f 5910 5846 6366
+f 5910 6366 6482
+f 5846 5722 6254
+f 5846 6254 6366
+f 5722 5610 6142
+f 5722 6142 6254
+f 5610 5514 6070
+f 5610 6070 6142
+f 5514 5410 5966
+f 5514 5966 6070
+f 5410 5338 5894
+f 5410 5894 5966
+f 5338 5250 5714
+f 5338 5714 5894
+f 5250 5158 5554
+f 5250 5554 5714
+f 5158 4966 5458
+f 5158 5458 5554
+f 4966 4814 5322
+f 4966 5322 5458
+f 4814 4718 5210
+f 4814 5210 5322
+f 4718 4574 5006
+f 4718 5006 5210
+f 4574 4478 4822
+f 4574 4822 5006
+f 4478 4266 4670
+f 4478 4670 4822
+f 4266 4082 4542
+f 4266 4542 4670
+f 4082 3954 4370
+f 4082 4370 4542
+f 3954 3802 4146
+f 3954 4146 4370
+f 3802 3674 3938
+f 3802 3938 4146
+f 3674 3414 3770
+f 3674 3770 3938
+f 3414 3198 3566
+f 3414 3566 3770
+f 3198 3038 3294
+f 3198 3294 3566
+f 3038 2870 3086
+f 3038 3086 3294
+f 2870 2618 2902
+f 2870 2902 3086
+f 2618 2362 2626
+f 2618 2626 2902
+f 2362 2162 2322
+f 2362 2322 2626
+f 2162 1962 2098
+f 2162 2098 2322
+f 1962 1710 1898
+f 1962 1898 2098
+f 1710 1342 1454
+f 1710 1454 1898
+f 1342 1078 1142
+f 1342 1142 1454
+f 1078 878 894
+f 1078 894 1142
+f 893 1141 1213
+f 893 1213 925
+f 1141 1453 1613
+f 1141 1613 1213
+f 1453 1897 2009
+f 1453 2009 1613
+f 1897 2097 2241
+f 1897 2241 2009
+f 2097 2321 2505
+f 2097 2505 2241
+f 2321 2625 2877
+f 2321 2877 2505
+f 2625 2901 3093
+f 2625 3093 2877
+f 2901 3085 3317
+f 2901 3317 3093
+f 3085 3293 3657
+f 3085 3657 3317
+f 3293 3565 3833
+f 3293 3833 3657
+f 3565 3769 4033
+f 3565 4033 3833
+f 3769 3937 4281
+f 3769 4281 4033
+f 3937 4145 4525
+f 3937 4525 4281
+f 4145 4369 4693
+f 4145 4693 4525
+f 4369 4541 4869
+f 4369 4869 4693
+f 4541 4669 5117
+f 4541 5117 4869
+f 4669 4821 5289
+f 4669 5289 5117
+f 4821 5005 5401
+f 4821 5401 5289
+f 5005 5209 5569
+f 5005 5569 5401
+f 5209 5321 5801
+f 5209 5801 5569
+f 5321 5457 5925
+f 5321 5925 5801
+f 5457 5553 6061
+f 5457 6061 5925
+f 5553 5713 6181
+f 5553 6181 6061
+f 5713 5893 6309
+f 5713 6309 6181
+f 5893 5965 6489
+f 5893 6489 6309
+f 5965 6069 6577
+f 5965 6577 6489
+f 6069 6141 6673
+f 6069 6673 6577
+f 6141 6253 6761
+f 6141 6761 6673
+f 6253 6365 6865
+f 6253 6865 6761
+f 6365 6481 6985
+f 6365 6985 6865
+f 6481 6545 7093
+f 6481 7093 6985
+f 6545 6625 7157
+f 6545 7157 7093
+f 6625 6665 7221
+f 6625 7221 7157
+f 6665 6705 7261
+f 6665 7261 7221
+f 6705 6745 7309
+f 6705 7309 7261
+f 6745 6825 7381
+f 6745 7381 7309
+f 6825 6857 7429
+f 6825 7429 7381
+f 6857 6881 7445
+f 6857 7445 7429
+f 6881 6913 7485
+f 6881 7485 7445
+f 6913 6961 7533
+f 6913 7533 7485
+f 6961 6977 7565
+f 6961 7565 7533
+f 6977 7009 7573
+f 6977 7573 7565
+f 7009 7017 7581
+f 7009 7581 7573
+f 7017 7018 7582
+f 7017 7582 7581
+f 7018 7010 7574
+f 7018 7574 7582
+f 7010 6978 7566
+f 7010 7566 7574
+f 6978 6962 7534
+f 6978 7534 7566
+f 6962 6914 7486
+f 6962 7486 7534
+f 6914 6882 7446
+f 6914 7446 7486
+f 6882 6858 7430
+f 6882 7430 7446
+f 6858 6826 7382
+f 6858 7382 7430
+f 6826 6746 7310
+f 6826 7310 7382
+f 6746 6706 7262
+f 6746 7262 7310
+f 6706 6666 7222
+f 6706 7222 7262
+f 6666 6626 7158
+f 6666 7158 7222
+f 6626 6546 7094
+f 6626 7094 7158
+f 6546 6482 6986
+f 6546 6986 7094
+f 6482 6366 6866
+f 6482 6866 6986
+f 6366 6254 6762
+f 6366 6762 6866
+f 6254 6142 6674
+f 6254 6674 6762
+f 6142 6070 6578
+f 6142 6578 6674
+f 6070 5966 6490
+f 6070 6490 6578
+f 5966 5894 6310
+f 5966 6310 6490
+f 5894 5714 6182
+f 5894 6182 6310
+f 5714 5554 6062
+f 5714 6062 6182
+f 5554 5458 5926
+f 5554 5926 6062
+f 5458 5322 5802
+f 5458 5802 5926
+f 5322 5210 5570
+f 5322 5570 5802
+f 5210 5006 5402
+f 5210 5402 5570
+f 5006 4822 5290
+f 5006 5290 5402
+f 4822 4670 5118
+f 4822 5118 5290
+f 4670 4542 4870
+f 4670 4870 5118
+f 4542 4370 4694
+f 4542 4694 4870
+f 4370 4146 4526
+f 4370 4526 4694
+f 4146 3938 4282
+f 4146 4282 4526
+f 3938 3770 4034
+f 3938 4034 4282
+f 3770 3566 3834
+f 3770 3834 4034
+f 3566 3294 3658
+f 3566 3658 3834
+f 3294 3086 3318
+f 3294 3318 3658
+f 3086 2902 3094
+f 3086 3094 3318
+f 2902 2626 2878
+f 2902 2878 3094
+f 2626 2322 2506
+f 2626 2506 2878
+f 2322 2098 2242
+f 2322 2242 2506
+f 2098 1898 2010
+f 2098 2010 2242
+f 1898 1454 1614
+f 1898 1614 2010
+f 1454 1142 1214
+f 1454 1214 1614
+f 1142 894 926
+f 1142 926 1214
+f 925 1213 1277
+f 925 1277 949
+f 1213 1613 1849
+f 1213 1849 1277
+f 1613 2009 2081
+f 1613 2081 1849
+f 2009 2241 2393
+f 2009 2393 2081
+f 2241 2505 2829
+f 2241 2829 2393
+f 2505 2877 3045
+f 2505 3045 2829
+f 2877 3093 3301
+f 2877 3301 3045
+f 3093 3317 3665
+f 3093 3665 3301
+f 3317 3657 3881
+f 3317 3881 3665
+f 3657 3833 4089
+f 3657 4089 3881
+f 3833 4033 4417
+f 3833 4417 4089
+f 4033 4281 4613
+f 4033 4613 4417
+f 4281 4525 4789
+f 4281 4789 4613
+f 4525 4693 5045
+f 4525 5045 4789
+f 4693 4869 5273
+f 4693 5273 5045
+f 4869 5117 5449
+f 4869 5449 5273
+f 5117 5289 5641
+f 5117 5641 5449
+f 5289 5401 5877
+f 5289 5877 5641
+f 5401 5569 6005
+f 5401 6005 5877
+f 5569 5801 6149
+f 5569 6149 6005
+f 5801 5925 6341
+f 5801 6341 6149
+f 5925 6061 6529
+f 5925 6529 6341
+f 6061 6181 6649
+f 6061 6649 6529
+f 6181 6309 6769
+f 6181 6769 6649
+f 6309 6489 6897
+f 6309 6897 6769
+f 6489 6577 7085
+f 6489 7085 6897
+f 6577 6673 7205
+f 6577 7205 7085
+f 6673 6761 7277
+f 6673 7277 7205
+f 6761 6865 7373
+f 6761 7373 7277
+f 6865 6985 7453
+f 6865 7453 7373
+f 6985 7093 7589
+f 6985 7589 7453
+f 7093 7157 7681
+f 7093 7681 7589
+f 7157 7221 7761
+f 7157 7761 7681
+f 7221 7261 7793
+f 7221 7793 7761
+f 7261 7309 7849
+f 7261 7849 7793
+f 7309 7381 7921
+f 7309 7921 7849
+f 7381 7429 7977
+f 7381 7977 7921
+f 7429 7445 8001
+f 7429 8001 7977
+f 7445 7485 8017
+f 7445 8017 8001
+f 7485 7533 8065
+f 7485 8065 8017
+f 7533 7565 8105
+f 7533 8105 8065
+f 7565 7573 8129
+f 7565 8129 8105
+f 7573 7581 8137
+f 7573 8137 8129
+f 7581 7582 8138
+f 7581 8138 8137
+f 7582 7574 8130
+f 7582 8130 8138
+f 7574 7566 8106
+f 7574 8106 8130
+f 7566 7534 8066
+f 7566 8066 8106
+f 7534 7486 8018
+f 7534 8018 8066
+f 7486 7446 8002
+f 7486 8002 8018
+f 7446 7430 7978
+f 7446 7978 8002
+f 7430 7382 7922
+f 7430 7922 7978
+f 7382 7310 7850
+f 7382 7850 7922
+f 7310 7262 7794
+f 7310 7794 7850
+f 7262 7222 7762
+f 7262 7762 7794
+f 7222 7158 7682
+f 7222 7682 7762
+f 7158 7094 7590
+f 7158 7590 7682
+f 7094 6986 7454
+f 7094 7454 7590
+f 6986 6866 7374
+f 6986 7374 7454
+f 6866 6762 7278
+f 6866 7278 7374
+f 6762 6674 7206
+f 6762 7206 7278
+f 6674 6578 7086
+f 6674 7086 7206
+f 6578 6490 6898
+f 6578 6898 7086
+f 6490 6310 6770
+f 6490 6770 6898
+f 6310 6182 6650
+f 6310 6650 6770
+f 6182 6062 6530
+f 6182 6530 6650
+f 6062 5926 6342
+f 6062 6342 6530
+f 5926 5802 6150
+f 5926 6150 6342
+f 5802 5570 6006
+f 5802 6006 6150
+f 5570 5402 5878
+f 5570 5878 6006
+f 5402 5290 5642
+f 5402 5642 5878
+f 5290 5118 5450
+f 5290 5450 5642
+f 5118 4870 5274
+f 5118 5274 5450
+f 4870 4694 5046
+f 4870 5046 5274
+f 4694 4526 4790
+f 4694 4790 5046
+f 4526 4282 4614
+f 4526 4614 4790
+f 4282 4034 4418
+f 4282 4418 4614
+f 4034 3834 4090
+f 4034 4090 4418
+f 3834 3658 3882
+f 3834 3882 4090
+f 3658 3318 3666
+f 3658 3666 3882
+f 3318 3094 3302
+f 3318 3302 3666
+f 3094 2878 3046
+f 3094 3046 3302
+f 2878 2506 2830
+f 2878 2830 3046
+f 2506 2242 2394
+f 2506 2394 2830
+f 2242 2010 2082
+f 2242 2082 2394
+f 2010 1614 1850
+f 2010 1850 2082
+f 1614 1214 1278
+f 1614 1278 1850
+f 1214 926 950
+f 1214 950 1278
+f 949 1277 1373
+f 949 1373 981
+f 1277 1849 1929
+f 1277 1929 1373
+f 1849 2081 2193
+f 1849 2193 1929
+f 2081 2393 2553
+f 2081 2553 2193
+f 2393 2829 2965
+f 2393 2965 2553
+f 2829 3045 3205
+f 2829 3205 2965
+f 3045 3301 3581
+f 3045 3581 3205
+f 3301 3665 3841
+f 3301 3841 3581
+f 3665 3881 4097
+f 3665 4097 3841
+f 3881 4089 4461
+f 3881 4461 4097
+f 4089 4417 4637
+f 4089 4637 4461
+f 4417 4613 4901
+f 4417 4901 4637
+f 4613 4789 5185
+f 4613 5185 4901
+f 4789 5045 5369
+f 4789 5369 5185
+f 5045 5273 5577
+f 5045 5577 5369
+f 5273 5449 5853
+f 5273 5853 5577
+f 5449 5641 6029
+f 5449 6029 5853
+f 5641 5877 6205
+f 5641 6205 6029
+f 5877 6005 6437
+f 5877 6437 6205
+f 6005 6149 6609
+f 6005 6609 6437
+f 6149 6341 6729
+f 6149 6729 6609
+f 6341 6529 6905
+f 6341 6905 6729
+f 6529 6649 7109
+f 6529 7109 6905
+f 6649 6769 7229
+f 6649 7229 7109
+f 6769 6897 7365
+f 6769 7365 7229
+f 6897 7085 7501
+f 6897 7501 7365
+f 7085 7205 7657
+f 7085 7657 7501
+f 7205 7277 7769
+f 7205 7769 7657
+f 7277 7373 7841
+f 7277 7841 7769
+f 7373 7453 7969
+f 7373 7969 7841
+f 7453 7589 8049
+f 7453 8049 7969
+f 7589 7681 8177
+f 7589 8177 8049
+f 7681 7761 8269
+f 7681 8269 8177
+f 7761 7793 8317
+f 7761 8317 8269
+f 7793 7849 8365
+f 7793 8365 8317
+f 7849 7921 8405
+f 7849 8405 8365
+f 7921 7977 8477
+f 7921 8477 8405
+f 7977 8001 8525
+f 7977 8525 8477
+f 8001 8017 8549
+f 8001 8549 8525
+f 8017 8065 8573
+f 8017 8573 8549
+f 8065 8105 8605
+f 8065 8605 8573
+f 8105 8129 8629
+f 8105 8629 8605
+f 8129 8137 8645
+f 8129 8645 8629
+f 8137 8138 8646
+f 8137 8646 8645
+f 8138 8130 8630
+f 8138 8630 8646
+f 8130 8106 8606
+f 8130 8606 8630
+f 8106 8066 8574
+f 8106 8574 8606
+f 8066 8018 8550
+f 8066 8550 8574
+f 8018 8002 8526
+f 8018 8526 8550
+f 8002 7978 8478
+f 8002 8478 8526
+f 7978 7922 8406
+f 7978 8406 8478
+f 7922 7850 8366
+f 7922 8366 8406
+f 7850 7794 8318
+f 7850 8318 8366
+f 7794 7762 8270
+f 7794 8270 8318
+f 7762 7682 8178
+f 7762 8178 8270
+f 7682 7590 8050
+f 7682 8050 8178
+f 7590 7454 7970
+f 7590 7970 8050
+f 7454 7374 7842
+f 7454 7842 7970
+f 7374 7278 7770
+f 7374 7770 7842
+f 7278 7206 7658
+f 7278 7658 7770
+f 7206 7086 7502
+f 7206 7502 7658
+f 7086 6898 7366
+f 7086 7366 7502
+f 6898 6770 7230
+f 6898 7230 7366
+f 6770 6650 7110
+f 6770 7110 7230
+f 6650 6530 6906
+f 6650 6906 7110
+f 6530 6342 6730
+f 6530 6730 6906
+f 6342 6150 6610
+f 6342 6610 6730
+f 6150 6006 6438
+f 6150 6438 6610
+f 6006 5878 6206
+f 6006 6206 6438
+f 5878 5642 6030
+f 5878 6030 6206
+f 5642 5450 5854
+f 5642 5854 6030
+f 5450 5274 5578
+f 5450 5578 5854
+f 5274 5046 5370
+f 5274 5370 5578
+f 5046 4790 5186
+f 5046 5186 5370
+f 4790 4614 4902
+f 4790 4902 5186
+f 4614 4418 4638
+f 4614 4638 4902
+f 4418 4090 4462
+f 4418 4462 4638
+f 4090 3882 4098
+f 4090 4098 4462
+f 3882 3666 3842
+f 3882 3842 4098
+f 3666 3302 3582
+f 3666 3582 3842
+f 3302 3046 3206
+f 3302 3206 3582
+f 3046 2830 2966
+f 3046 2966 3206
+f 2830 2394 2554
+f 2830 2554 2966
+f 2394 2082 2194
+f 2394 2194 2554
+f 2082 1850 1930
+f 2082 1930 2194
+f 1850 1278 1374
+f 1850 1374 1930
+f 1278 950 982
+f 1278 982 1374
+f 981 1373 1437
+f 981 1437 997
+f 1373 1929 1977
+f 1373 1977 1437
+f 1929 2193 2305
+f 1929 2305 1977
+f 2193 2553 2813
+f 2193 2813 2305
+f 2553 2965 3069
+f 2553 3069 2813
+f 2965 3205 3421
+f 2965 3421 3069
+f 3205 3581 3777
+f 3205 3777 3421
+f 3581 3841 4041
+f 3581 4041 3777
+f 3841 4097 4425
+f 3841 4425 4041
+f 4097 4461 4645
+f 4097 4645 4425
+f 4461 4637 4925
+f 4461 4925 4645
+f 4637 4901 5225
+f 4637 5225 4925
+f 4901 5185 5433
+f 4901 5433 5225
+f 5185 5369 5681
+f 5185 5681 5433
+f 5369 5577 5941
+f 5369 5941 5681
+f 5577 5853 6117
+f 5577 6117 5941
+f 5853 6029 6397
+f 5853 6397 6117
+f 6029 6205 6601
+f 6029 6601 6397
+f 6205 6437 6753
+f 6205 6753 6601
+f 6437 6609 6993
+f 6437 6993 6753
+f 6609 6729 7181
+f 6609 7181 6993
+f 6729 6905 7301
+f 6729 7301 7181
+f 6905 7109 7469
+f 6905 7469 7301
+f 7109 7229 7673
+f 7109 7673 7469
+f 7229 7365 7801
+f 7229 7801 7673
+f 7365 7501 7929
+f 7365 7929 7801
+f 7501 7657 8073
+f 7501 8073 7929
+f 7657 7769 8213
+f 7657 8213 8073
+f 7769 7841 8325
+f 7769 8325 8213
+f 7841 7969 8397
+f 7841 8397 8325
+f 7969 8049 8533
+f 7969 8533 8397
+f 8049 8177 8613
+f 8049 8613 8533
+f 8177 8269 8737
+f 8177 8737 8613
+f 8269 8317 8809
+f 8269 8809 8737
+f 8317 8365 8857
+f 8317 8857 8809
+f 8365 8405 8913
+f 8365 8913 8857
+f 8405 8477 8937
+f 8405 8937 8913
+f 8477 8525 9017
+f 8477 9017 8937
+f 8525 8549 9049
+f 8525 9049 9017
+f 8549 8573 9081
+f 8549 9081 9049
+f 8573 8605 9105
+f 8573 9105 9081
+f 8605 8629 9121
+f 8605 9121 9105
+f 8629 8645 9137
+f 8629 9137 9121
+f 8645 8646 9138
+f 8645 9138 9137
+f 8646 8630 9122
+f 8646 9122 9138
+f 8630 8606 9106
+f 8630 9106 9122
+f 8606 8574 9082
+f 8606 9082 9106
+f 8574 8550 9050
+f 8574 9050 9082
+f 8550 8526 9018
+f 8550 9018 9050
+f 8526 8478 8938
+f 8526 8938 9018
+f 8478 8406 8914
+f 8478 8914 8938
+f 8406 8366 8858
+f 8406 8858 8914
+f 8366 8318 8810
+f 8366 8810 8858
+f 8318 8270 8738
+f 8318 8738 8810
+f 8270 8178 8614
+f 8270 8614 8738
+f 8178 8050 8534
+f 8178 8534 8614
+f 8050 7970 8398
+f 8050 8398 8534
+f 7970 7842 8326
+f 7970 8326 8398
+f 7842 7770 8214
+f 7842 8214 8326
+f 7770 7658 8074
+f 7770 8074 8214
+f 7658 7502 7930
+f 7658 7930 8074
+f 7502 7366 7802
+f 7502 7802 7930
+f 7366 7230 7674
+f 7366 7674 7802
+f 7230 7110 7470
+f 7230 7470 7674
+f 7110 6906 7302
+f 7110 7302 7470
+f 6906 6730 7182
+f 6906 7182 7302
+f 6730 6610 6994
+f 6730 6994 7182
+f 6610 6438 6754
+f 6610 6754 6994
+f 6438 6206 6602
+f 6438 6602 6754
+f 6206 6030 6398
+f 6206 6398 6602
+f 6030 5854 6118
+f 6030 6118 6398
+f 5854 5578 5942
+f 5854 5942 6118
+f 5578 5370 5682
+f 5578 5682 5942
+f 5370 5186 5434
+f 5370 5434 5682
+f 5186 4902 5226
+f 5186 5226 5434
+f 4902 4638 4926
+f 4902 4926 5226
+f 4638 4462 4646
+f 4638 4646 4926
+f 4462 4098 4426
+f 4462 4426 4646
+f 4098 3842 4042
+f 4098 4042 4426
+f 3842 3582 3778
+f 3842 3778 4042
+f 3582 3206 3422
+f 3582 3422 3778
+f 3206 2966 3070
+f 3206 3070 3422
+f 2966 2554 2814
+f 2966 2814 3070
+f 2554 2194 2306
+f 2554 2306 2814
+f 2194 1930 1978
+f 2194 1978 2306
+f 1930 1374 1438
+f 1930 1438 1978
+f 1374 982 998
+f 1374 998 1438
+f 997 1437 1541
+f 997 1541 1045
+f 1437 1977 2049
+f 1437 2049 1541
+f 1977 2305 2425
+f 1977 2425 2049
+f 2305 2813 2917
+f 2305 2917 2425
+f 2813 3069 3221
+f 2813 3221 2917
+f 3069 3421 3681
+f 3069 3681 3221
+f 3421 3777 3945
+f 3421 3945 3681
+f 3777 4041 4289
+f 3777 4289 3945
+f 4041 4425 4621
+f 4041 4621 4289
+f 4425 4645 4909
+f 4425 4909 4621
+f 4645 4925 5233
+f 4645 5233 4909
+f 4925 5225 5489
+f 4925 5489 5233
+f 5225 5433 5777
+f 5225 5777 5489
+f 5433 5681 5989
+f 5433 5989 5777
+f 5681 5941 6229
+f 5681 6229 5989
+f 5941 6117 6513
+f 5941 6513 6229
+f 6117 6397 6697
+f 6117 6697 6513
+f 6397 6601 6937
+f 6397 6937 6697
+f 6601 6753 7165
+f 6601 7165 6937
+f 6753 6993 7325
+f 6753 7325 7165
+f 6993 7181 7541
+f 6993 7541 7325
+f 7181 7301 7745
+f 7181 7745 7541
+f 7301 7469 7865
+f 7301 7865 7745
+f 7469 7673 8041
+f 7469 8041 7865
+f 7673 7801 8237
+f 7673 8237 8041
+f 7801 7929 8349
+f 7801 8349 8237
+f 7929 8073 8501
+f 7929 8501 8349
+f 8073 8213 8637
+f 8073 8637 8501
+f 8213 8325 8769
+f 8213 8769 8637
+f 8325 8397 8865
+f 8325 8865 8769
+f 8397 8533 8945
+f 8397 8945 8865
+f 8533 8613 9073
+f 8533 9073 8945
+f 8613 8737 9161
+f 8613 9161 9073
+f 8737 8809 9261
+f 8737 9261 9161
+f 8809 8857 9333
+f 8809 9333 9261
+f 8857 8913 9381
+f 8857 9381 9333
+f 8913 8937 9421
+f 8913 9421 9381
+f 8937 9017 9461
+f 8937 9461 9421
+f 9017 9049 9517
+f 9017 9517 9461
+f 9049 9081 9565
+f 9049 9565 9517
+f 9081 9105 9589
+f 9081 9589 9565
+f 9105 9121 9613
+f 9105 9613 9589
+f 9121 9137 9621
+f 9121 9621 9613
+f 9137 9138 9622
+f 9137 9622 9621
+f 9138 9122 9614
+f 9138 9614 9622
+f 9122 9106 9590
+f 9122 9590 9614
+f 9106 9082 9566
+f 9106 9566 9590
+f 9082 9050 9518
+f 9082 9518 9566
+f 9050 9018 9462
+f 9050 9462 9518
+f 9018 8938 9422
+f 9018 9422 9462
+f 8938 8914 9382
+f 8938 9382 9422
+f 8914 8858 9334
+f 8914 9334 9382
+f 8858 8810 9262
+f 8858 9262 9334
+f 8810 8738 9162
+f 8810 9162 9262
+f 8738 8614 9074
+f 8738 9074 9162
+f 8614 8534 8946
+f 8614 8946 9074
+f 8534 8398 8866
+f 8534 8866 8946
+f 8398 8326 8770
+f 8398 8770 8866
+f 8326 8214 8638
+f 8326 8638 8770
+f 8214 8074 8502
+f 8214 8502 8638
+f 8074 7930 8350
+f 8074 8350 8502
+f 7930 7802 8238
+f 7930 8238 8350
+f 7802 7674 8042
+f 7802 8042 8238
+f 7674 7470 7866
+f 7674 7866 8042
+f 7470 7302 7746
+f 7470 7746 7866
+f 7302 7182 7542
+f 7302 7542 7746
+f 7182 6994 7326
+f 7182 7326 7542
+f 6994 6754 7166
+f 6994 7166 7326
+f 6754 6602 6938
+f 6754 6938 7166
+f 6602 6398 6698
+f 6602 6698 6938
+f 6398 6118 6514
+f 6398 6514 6698
+f 6118 5942 6230
+f 6118 6230 6514
+f 5942 5682 5990
+f 5942 5990 6230
+f 5682 5434 5778
+f 5682 5778 5990
+f 5434 5226 5490
+f 5434 5490 5778
+f 5226 4926 5234
+f 5226 5234 5490
+f 4926 4646 4910
+f 4926 4910 5234
+f 4646 4426 4622
+f 4646 4622 4910
+f 4426 4042 4290
+f 4426 4290 4622
+f 4042 3778 3946
+f 4042 3946 4290
+f 3778 3422 3682
+f 3778 3682 3946
+f 3422 3070 3222
+f 3422 3222 3682
+f 3070 2814 2918
+f 3070 2918 3222
+f 2814 2306 2426
+f 2814 2426 2918
+f 2306 1978 2050
+f 2306 2050 2426
+f 1978 1438 1542
+f 1978 1542 2050
+f 1438 998 1046
+f 1438 1046 1542
+f 1045 1541 1645
+f 1045 1645 1061
+f 1541 2049 2129
+f 1541 2129 1645
+f 2049 2425 2577
+f 2049 2577 2129
+f 2425 2917 2997
+f 2425 2997 2577
+f 2917 3221 3389
+f 2917 3389 2997
+f 3221 3681 3809
+f 3221 3809 3389
+f 3681 3945 4153
+f 3681 4153 3809
+f 3945 4289 4533
+f 3945 4533 4153
+f 4289 4621 4797
+f 4289 4797 4533
+f 4621 4909 5193
+f 4621 5193 4797
+f 4909 5233 5441
+f 4909 5441 5193
+f 5233 5489 5785
+f 5233 5785 5441
+f 5489 5777 6045
+f 5489 6045 5785
+f 5777 5989 6277
+f 5777 6277 6045
+f 5989 6229 6561
+f 5989 6561 6277
+f 6229 6513 6809
+f 6229 6809 6561
+f 6513 6697 7065
+f 6513 7065 6809
+f 6697 6937 7253
+f 6697 7253 7065
+f 6937 7165 7461
+f 6937 7461 7253
+f 7165 7325 7729
+f 7165 7729 7461
+f 7325 7541 7881
+f 7325 7881 7729
+f 7541 7745 8097
+f 7541 8097 7881
+f 7745 7865 8301
+f 7745 8301 8097
+f 7865 8041 8413
+f 7865 8413 8301
+f 8041 8237 8597
+f 8041 8597 8413
+f 8237 8349 8785
+f 8237 8785 8597
+f 8349 8501 8897
+f 8349 8897 8785
+f 8501 8637 9041
+f 8501 9041 8897
+f 8637 8769 9193
+f 8637 9193 9041
+f 8769 8865 9301
+f 8769 9301 9193
+f 8865 8945 9389
+f 8865 9389 9301
+f 8945 9073 9469
+f 8945 9469 9389
+f 9073 9161 9605
+f 9073 9605 9469
+f 9161 9261 9697
+f 9161 9697 9605
+f 9261 9333 9769
+f 9261 9769 9697
+f 9333 9381 9825
+f 9333 9825 9769
+f 9381 9421 9889
+f 9381 9889 9825
+f 9421 9461 9913
+f 9421 9913 9889
+f 9461 9517 9961
+f 9461 9961 9913
+f 9517 9565 9977
+f 9517 9977 9961
+f 9565 9589 10033
+f 9565 10033 9977
+f 9589 9613 10065
+f 9589 10065 10033
+f 9613 9621 10089
+f 9613 10089 10065
+f 9621 9622 10090
+f 9621 10090 10089
+f 9622 9614 10066
+f 9622 10066 10090
+f 9614 9590 10034
+f 9614 10034 10066
+f 9590 9566 9978
+f 9590 9978 10034
+f 9566 9518 9962
+f 9566 9962 9978
+f 9518 9462 9914
+f 9518 9914 9962
+f 9462 9422 9890
+f 9462 9890 9914
+f 9422 9382 9826
+f 9422 9826 9890
+f 9382 9334 9770
+f 9382 9770 9826
+f 9334 9262 9698
+f 9334 9698 9770
+f 9262 9162 9606
+f 9262 9606 9698
+f 9162 9074 9470
+f 9162 9470 9606
+f 9074 8946 9390
+f 9074 9390 9470
+f 8946 8866 9302
+f 8946 9302 9390
+f 8866 8770 9194
+f 8866 9194 9302
+f 8770 8638 9042
+f 8770 9042 9194
+f 8638 8502 8898
+f 8638 8898 9042
+f 8502 8350 8786
+f 8502 8786 8898
+f 8350 8238 8598
+f 8350 8598 8786
+f 8238 8042 8414
+f 8238 8414 8598
+f 8042 7866 8302
+f 8042 8302 8414
+f 7866 7746 8098
+f 7866 8098 8302
+f 7746 7542 7882
+f 7746 7882 8098
+f 7542 7326 7730
+f 7542 7730 7882
+f 7326 7166 7462
+f 7326 7462 7730
+f 7166 6938 7254
+f 7166 7254 7462
+f 6938 6698 7066
+f 6938 7066 7254
+f 6698 6514 6810
+f 6698 6810 7066
+f 6514 6230 6562
+f 6514 6562 6810
+f 6230 5990 6278
+f 6230 6278 6562
+f 5990 5778 6046
+f 5990 6046 6278
+f 5778 5490 5786
+f 5778 5786 6046
+f 5490 5234 5442
+f 5490 5442 5786
+f 5234 4910 5194
+f 5234 5194 5442
+f 4910 4622 4798
+f 4910 4798 5194
+f 4622 4290 4534
+f 4622 4534 4798
+f 4290 3946 4154
+f 4290 4154 4534
+f 3946 3682 3810
+f 3946 3810 4154
+f 3682 3222 3390
+f 3682 3390 3810
+f 3222 2918 2998
+f 3222 2998 3390
+f 2918 2426 2578
+f 2918 2578 2998
+f 2426 2050 2130
+f 2426 2130 2578
+f 2050 1542 1646
+f 2050 1646 2130
+f 1542 1046 1062
+f 1542 1062 1646
+f 1061 1645 1821
+f 1061 1821 1093
+f 1645 2129 2209
+f 1645 2209 1821
+f 2129 2577 2761
+f 2129 2761 2209
+f 2577 2997 3141
+f 2577 3141 2761
+f 2997 3389 3621
+f 2997 3621 3141
+f 3389 3809 3961
+f 3389 3961 3621
+f 3809 4153 4377
+f 3809 4377 3961
+f 4153 4533 4701
+f 4153 4701 4377
+f 4533 4797 5053
+f 4533 5053 4701
+f 4797 5193 5377
+f 4797 5377 5053
+f 5193 5441 5689
+f 5193 5689 5377
+f 5441 5785 5997
+f 5441 5997 5689
+f 5785 6045 6285
+f 5785 6285 5997
+f 6045 6277 6585
+f 6045 6585 6285
+f 6277 6561 6833
+f 6277 6833 6585
+f 6561 6809 7133
+f 6561 7133 6833
+f 6809 7065 7341
+f 6809 7341 7133
+f 7065 7253 7621
+f 7065 7621 7341
+f 7253 7461 7817
+f 7253 7817 7621
+f 7461 7729 8009
+f 7461 8009 7817
+f 7729 7881 8277
+f 7729 8277 8009
+f 7881 8097 8421
+f 7881 8421 8277
+f 8097 8301 8653
+f 8097 8653 8421
+f 8301 8413 8833
+f 8301 8833 8653
+f 8413 8597 8977
+f 8413 8977 8833
+f 8597 8785 9153
+f 8597 9153 8977
+f 8785 8897 9309
+f 8785 9309 9153
+f 8897 9041 9437
+f 8897 9437 9309
+f 9041 9193 9573
+f 9041 9573 9437
+f 9193 9301 9721
+f 9193 9721 9573
+f 9301 9389 9809
+f 9301 9809 9721
+f 9389 9469 9897
+f 9389 9897 9809
+f 9469 9605 9985
+f 9469 9985 9897
+f 9605 9697 10121
+f 9605 10121 9985
+f 9697 9769 10189
+f 9697 10189 10121
+f 9769 9825 10261
+f 9769 10261 10189
+f 9825 9889 10309
+f 9825 10309 10261
+f 9889 9913 10365
+f 9889 10365 10309
+f 9913 9961 10389
+f 9913 10389 10365
+f 9961 9977 10413
+f 9961 10413 10389
+f 9977 10033 10461
+f 9977 10461 10413
+f 10033 10065 10477
+f 10033 10477 10461
+f 10065 10089 10485
+f 10065 10485 10477
+f 10089 10090 10486
+f 10089 10486 10485
+f 10090 10066 10478
+f 10090 10478 10486
+f 10066 10034 10462
+f 10066 10462 10478
+f 10034 9978 10414
+f 10034 10414 10462
+f 9978 9962 10390
+f 9978 10390 10414
+f 9962 9914 10366
+f 9962 10366 10390
+f 9914 9890 10310
+f 9914 10310 10366
+f 9890 9826 10262
+f 9890 10262 10310
+f 9826 9770 10190
+f 9826 10190 10262
+f 9770 9698 10122
+f 9770 10122 10190
+f 9698 9606 9986
+f 9698 9986 10122
+f 9606 9470 9898
+f 9606 9898 9986
+f 9470 9390 9810
+f 9470 9810 9898
+f 9390 9302 9722
+f 9390 9722 9810
+f 9302 9194 9574
+f 9302 9574 9722
+f 9194 9042 9438
+f 9194 9438 9574
+f 9042 8898 9310
+f 9042 9310 9438
+f 8898 8786 9154
+f 8898 9154 9310
+f 8786 8598 8978
+f 8786 8978 9154
+f 8598 8414 8834
+f 8598 8834 8978
+f 8414 8302 8654
+f 8414 8654 8834
+f 8302 8098 8422
+f 8302 8422 8654
+f 8098 7882 8278
+f 8098 8278 8422
+f 7882 7730 8010
+f 7882 8010 8278
+f 7730 7462 7818
+f 7730 7818 8010
+f 7462 7254 7622
+f 7462 7622 7818
+f 7254 7066 7342
+f 7254 7342 7622
+f 7066 6810 7134
+f 7066 7134 7342
+f 6810 6562 6834
+f 6810 6834 7134
+f 6562 6278 6586
+f 6562 6586 6834
+f 6278 6046 6286
+f 6278 6286 6586
+f 6046 5786 5998
+f 6046 5998 6286
+f 5786 5442 5690
+f 5786 5690 5998
+f 5442 5194 5378
+f 5442 5378 5690
+f 5194 4798 5054
+f 5194 5054 5378
+f 4798 4534 4702
+f 4798 4702 5054
+f 4534 4154 4378
+f 4534 4378 4702
+f 4154 3810 3962
+f 4154 3962 4378
+f 3810 3390 3622
+f 3810 3622 3962
+f 3390 2998 3142
+f 3390 3142 3622
+f 2998 2578 2762
+f 2998 2762 3142
+f 2578 2130 2210
+f 2578 2210 2762
+f 2130 1646 1822
+f 2130 1822 2210
+f 1646 1062 1094
+f 1646 1094 1822
+f 1093 1821 1881
+f 1093 1881 1125
+f 1821 2209 2273
+f 1821 2273 1881
+f 2209 2761 2861
+f 2209 2861 2273
+f 2761 3141 3245
+f 2761 3245 2861
+f 3141 3621 3745
+f 3141 3745 3245
+f 3621 3961 4105
+f 3621 4105 3745
+f 3961 4377 4549
+f 3961 4549 4105
+f 4377 4701 4877
+f 4377 4877 4549
+f 4701 5053 5281
+f 4701 5281 4877
+f 5053 5377 5585
+f 5053 5585 5281
+f 5377 5689 5949
+f 5377 5949 5585
+f 5689 5997 6237
+f 5689 6237 5949
+f 5997 6285 6569
+f 5997 6569 6237
+f 6285 6585 6841
+f 6285 6841 6569
+f 6585 6833 7149
+f 6585 7149 6841
+f 6833 7133 7397
+f 6833 7397 7149
+f 7133 7341 7689
+f 7133 7689 7397
+f 7341 7621 7897
+f 7341 7897 7689
+f 7621 7817 8153
+f 7621 8153 7897
+f 7817 8009 8357
+f 7817 8357 8153
+f 8009 8277 8565
+f 8009 8565 8357
+f 8277 8421 8817
+f 8277 8817 8565
+f 8421 8653 8969
+f 8421 8969 8817
+f 8653 8833 9185
+f 8653 9185 8969
+f 8833 8977 9357
+f 8833 9357 9185
+f 8977 9153 9501
+f 8977 9501 9357
+f 9153 9309 9677
+f 9153 9677 9501
+f 9309 9437 9817
+f 9309 9817 9677
+f 9437 9573 9945
+f 9437 9945 9817
+f 9573 9721 10105
+f 9573 10105 9945
+f 9721 9809 10205
+f 9721 10205 10105
+f 9809 9897 10293
+f 9809 10293 10205
+f 9897 9985 10397
+f 9897 10397 10293
+f 9985 10121 10501
+f 9985 10501 10397
+f 10121 10189 10617
+f 10121 10617 10501
+f 10189 10261 10657
+f 10189 10657 10617
+f 10261 10309 10721
+f 10261 10721 10657
+f 10309 10365 10753
+f 10309 10753 10721
+f 10365 10389 10801
+f 10365 10801 10753
+f 10389 10413 10857
+f 10389 10857 10801
+f 10413 10461 10881
+f 10413 10881 10857
+f 10461 10477 10897
+f 10461 10897 10881
+f 10477 10485 10905
+f 10477 10905 10897
+f 10485 10486 10906
+f 10485 10906 10905
+f 10486 10478 10898
+f 10486 10898 10906
+f 10478 10462 10882
+f 10478 10882 10898
+f 10462 10414 10858
+f 10462 10858 10882
+f 10414 10390 10802
+f 10414 10802 10858
+f 10390 10366 10754
+f 10390 10754 10802
+f 10366 10310 10722
+f 10366 10722 10754
+f 10310 10262 10658
+f 10310 10658 10722
+f 10262 10190 10618
+f 10262 10618 10658
+f 10190 10122 10502
+f 10190 10502 10618
+f 10122 9986 10398
+f 10122 10398 10502
+f 9986 9898 10294
+f 9986 10294 10398
+f 9898 9810 10206
+f 9898 10206 10294
+f 9810 9722 10106
+f 9810 10106 10206
+f 9722 9574 9946
+f 9722 9946 10106
+f 9574 9438 9818
+f 9574 9818 9946
+f 9438 9310 9678
+f 9438 9678 9818
+f 9310 9154 9502
+f 9310 9502 9678
+f 9154 8978 9358
+f 9154 9358 9502
+f 8978 8834 9186
+f 8978 9186 9358
+f 8834 8654 8970
+f 8834 8970 9186
+f 8654 8422 8818
+f 8654 8818 8970
+f 8422 8278 8566
+f 8422 8566 8818
+f 8278 8010 8358
+f 8278 8358 8566
+f 8010 7818 8154
+f 8010 8154 8358
+f 7818 7622 7898
+f 7818 7898 8154
+f 7622 7342 7690
+f 7622 7690 7898
+f 7342 7134 7398
+f 7342 7398 7690
+f 7134 6834 7150
+f 7134 7150 7398
+f 6834 6586 6842
+f 6834 6842 7150
+f 6586 6286 6570
+f 6586 6570 6842
+f 6286 5998 6238
+f 6286 6238 6570
+f 5998 5690 5950
+f 5998 5950 6238
+f 5690 5378 5586
+f 5690 5586 5950
+f 5378 5054 5282
+f 5378 5282 5586
+f 5054 4702 4878
+f 5054 4878 5282
+f 4702 4378 4550
+f 4702 4550 4878
+f 4378 3962 4106
+f 4378 4106 4550
+f 3962 3622 3746
+f 3962 3746 4106
+f 3622 3142 3246
+f 3622 3246 3746
+f 3142 2762 2862
+f 3142 2862 3246
+f 2762 2210 2274
+f 2762 2274 2862
+f 2210 1822 1882
+f 2210 1882 2274
+f 1822 1094 1126
+f 1822 1126 1882
+f 1125 1881 1913
+f 1125 1913 1165
+f 1881 2273 2353
+f 1881 2353 1913
+f 2273 2861 2949
+f 2273 2949 2353
+f 2861 3245 3373
+f 2861 3373 2949
+f 3245 3745 3873
+f 3245 3873 3373
+f 3745 4105 4273
+f 3745 4273 3873
+f 4105 4549 4685
+f 4105 4685 4273
+f 4549 4877 5133
+f 4549 5133 4685
+f 4877 5281 5465
+f 4877 5465 5133
+f 5281 5585 5861
+f 5281 5861 5465
+f 5585 5949 6133
+f 5585 6133 5861
+f 5949 6237 6521
+f 5949 6521 6133
+f 6237 6569 6817
+f 6237 6817 6521
+f 6569 6841 7141
+f 6569 7141 6817
+f 6841 7149 7405
+f 6841 7405 7141
+f 7149 7397 7713
+f 7149 7713 7405
+f 7397 7689 7937
+f 7397 7937 7713
+f 7689 7897 8221
+f 7689 8221 7937
+f 7897 8153 8429
+f 7897 8429 8221
+f 8153 8357 8701
+f 8153 8701 8429
+f 8357 8565 8889
+f 8357 8889 8701
+f 8565 8817 9113
+f 8565 9113 8889
+f 8817 8969 9341
+f 8817 9341 9113
+f 8969 9185 9493
+f 8969 9493 9341
+f 9185 9357 9713
+f 9185 9713 9493
+f 9357 9501 9865
+f 9357 9865 9713
+f 9501 9677 10017
+f 9501 10017 9865
+f 9677 9817 10181
+f 9677 10181 10017
+f 9817 9945 10317
+f 9817 10317 10181
+f 9945 10105 10437
+f 9945 10437 10317
+f 10105 10205 10609
+f 10105 10609 10437
+f 10205 10293 10673
+f 10205 10673 10609
+f 10293 10397 10777
+f 10293 10777 10673
+f 10397 10501 10889
+f 10397 10889 10777
+f 10501 10617 10977
+f 10501 10977 10889
+f 10617 10657 11069
+f 10617 11069 10977
+f 10657 10721 11101
+f 10657 11101 11069
+f 10721 10753 11149
+f 10721 11149 11101
+f 10753 10801 11197
+f 10753 11197 11149
+f 10801 10857 11221
+f 10801 11221 11197
+f 10857 10881 11277
+f 10857 11277 11221
+f 10881 10897 11293
+f 10881 11293 11277
+f 10897 10905 11317
+f 10897 11317 11293
+f 10905 10906 11318
+f 10905 11318 11317
+f 10906 10898 11294
+f 10906 11294 11318
+f 10898 10882 11278
+f 10898 11278 11294
+f 10882 10858 11222
+f 10882 11222 11278
+f 10858 10802 11198
+f 10858 11198 11222
+f 10802 10754 11150
+f 10802 11150 11198
+f 10754 10722 11102
+f 10754 11102 11150
+f 10722 10658 11070
+f 10722 11070 11102
+f 10658 10618 10978
+f 10658 10978 11070
+f 10618 10502 10890
+f 10618 10890 10978
+f 10502 10398 10778
+f 10502 10778 10890
+f 10398 10294 10674
+f 10398 10674 10778
+f 10294 10206 10610
+f 10294 10610 10674
+f 10206 10106 10438
+f 10206 10438 10610
+f 10106 9946 10318
+f 10106 10318 10438
+f 9946 9818 10182
+f 9946 10182 10318
+f 9818 9678 10018
+f 9818 10018 10182
+f 9678 9502 9866
+f 9678 9866 10018
+f 9502 9358 9714
+f 9502 9714 9866
+f 9358 9186 9494
+f 9358 9494 9714
+f 9186 8970 9342
+f 9186 9342 9494
+f 8970 8818 9114
+f 8970 9114 9342
+f 8818 8566 8890
+f 8818 8890 9114
+f 8566 8358 8702
+f 8566 8702 8890
+f 8358 8154 8430
+f 8358 8430 8702
+f 8154 7898 8222
+f 8154 8222 8430
+f 7898 7690 7938
+f 7898 7938 8222
+f 7690 7398 7714
+f 7690 7714 7938
+f 7398 7150 7406
+f 7398 7406 7714
+f 7150 6842 7142
+f 7150 7142 7406
+f 6842 6570 6818
+f 6842 6818 7142
+f 6570 6238 6522
+f 6570 6522 6818
+f 6238 5950 6134
+f 6238 6134 6522
+f 5950 5586 5862
+f 5950 5862 6134
+f 5586 5282 5466
+f 5586 5466 5862
+f 5282 4878 5134
+f 5282 5134 5466
+f 4878 4550 4686
+f 4878 4686 5134
+f 4550 4106 4274
+f 4550 4274 4686
+f 4106 3746 3874
+f 4106 3874 4274
+f 3746 3246 3374
+f 3746 3374 3874
+f 3246 2862 2950
+f 3246 2950 3374
+f 2862 2274 2354
+f 2862 2354 2950
+f 2274 1882 1914
+f 2274 1914 2354
+f 1882 1126 1166
+f 1882 1166 1914
+f 1165 1913 1945
+f 1165 1945 1181
+f 1913 2353 2449
+f 1913 2449 1945
+f 2353 2949 3013
+f 2353 3013 2449
+f 2949 3373 3509
+f 2949 3509 3013
+f 3373 3873 3977
+f 3373 3977 3509
+f 3873 4273 4485
+f 3873 4485 3977
+f 4273 4685 4837
+f 4273 4837 4485
+f 4685 5133 5297
+f 4685 5297 4837
+f 5133 5465 5649
+f 5133 5649 5297
+f 5465 5861 6037
+f 5465 6037 5649
+f 5861 6133 6413
+f 5861 6413 6037
+f 6133 6521 6713
+f 6133 6713 6413
+f 6521 6817 7077
+f 6521 7077 6713
+f 6817 7141 7349
+f 6817 7349 7077
+f 7141 7405 7697
+f 7141 7697 7349
+f 7405 7713 7945
+f 7405 7945 7697
+f 7713 7937 8253
+f 7713 8253 7945
+f 7937 8221 8485
+f 7937 8485 8253
+f 8221 8429 8753
+f 8221 8753 8485
+f 8429 8701 8953
+f 8429 8953 8753
+f 8701 8889 9245
+f 8701 9245 8953
+f 8889 9113 9413
+f 8889 9413 9245
+f 9113 9341 9645
+f 9113 9645 9413
+f 9341 9493 9841
+f 9341 9841 9645
+f 9493 9713 10009
+f 9493 10009 9841
+f 9713 9865 10213
+f 9713 10213 10009
+f 9865 10017 10373
+f 9865 10373 10213
+f 10017 10181 10533
+f 10017 10533 10373
+f 10181 10317 10665
+f 10181 10665 10533
+f 10317 10437 10793
+f 10317 10793 10665
+f 10437 10609 10937
+f 10437 10937 10793
+f 10609 10673 11077
+f 10609 11077 10937
+f 10673 10777 11133
+f 10673 11133 11077
+f 10777 10889 11229
+f 10777 11229 11133
+f 10889 10977 11349
+f 10889 11349 11229
+f 10977 11069 11425
+f 10977 11425 11349
+f 11069 11101 11481
+f 11069 11481 11425
+f 11101 11149 11545
+f 11101 11545 11481
+f 11149 11197 11561
+f 11149 11561 11545
+f 11197 11221 11609
+f 11197 11609 11561
+f 11221 11277 11649
+f 11221 11649 11609
+f 11277 11293 11665
+f 11277 11665 11649
+f 11293 11317 11681
+f 11293 11681 11665
+f 11317 11318 11682
+f 11317 11682 11681
+f 11318 11294 11666
+f 11318 11666 11682
+f 11294 11278 11650
+f 11294 11650 11666
+f 11278 11222 11610
+f 11278 11610 11650
+f 11222 11198 11562
+f 11222 11562 11610
+f 11198 11150 11546
+f 11198 11546 11562
+f 11150 11102 11482
+f 11150 11482 11546
+f 11102 11070 11426
+f 11102 11426 11482
+f 11070 10978 11350
+f 11070 11350 11426
+f 10978 10890 11230
+f 10978 11230 11350
+f 10890 10778 11134
+f 10890 11134 11230
+f 10778 10674 11078
+f 10778 11078 11134
+f 10674 10610 10938
+f 10674 10938 11078
+f 10610 10438 10794
+f 10610 10794 10938
+f 10438 10318 10666
+f 10438 10666 10794
+f 10318 10182 10534
+f 10318 10534 10666
+f 10182 10018 10374
+f 10182 10374 10534
+f 10018 9866 10214
+f 10018 10214 10374
+f 9866 9714 10010
+f 9866 10010 10214
+f 9714 9494 9842
+f 9714 9842 10010
+f 9494 9342 9646
+f 9494 9646 9842
+f 9342 9114 9414
+f 9342 9414 9646
+f 9114 8890 9246
+f 9114 9246 9414
+f 8890 8702 8954
+f 8890 8954 9246
+f 8702 8430 8754
+f 8702 8754 8954
+f 8430 8222 8486
+f 8430 8486 8754
+f 8222 7938 8254
+f 8222 8254 8486
+f 7938 7714 7946
+f 7938 7946 8254
+f 7714 7406 7698
+f 7714 7698 7946
+f 7406 7142 7350
+f 7406 7350 7698
+f 7142 6818 7078
+f 7142 7078 7350
+f 6818 6522 6714
+f 6818 6714 7078
+f 6522 6134 6414
+f 6522 6414 6714
+f 6134 5862 6038
+f 6134 6038 6414
+f 5862 5466 5650
+f 5862 5650 6038
+f 5466 5134 5298
+f 5466 5298 5650
+f 5134 4686 4838
+f 5134 4838 5298
+f 4686 4274 4486
+f 4686 4486 4838
+f 4274 3874 3978
+f 4274 3978 4486
+f 3874 3374 3510
+f 3874 3510 3978
+f 3374 2950 3014
+f 3374 3014 3510
+f 2950 2354 2450
+f 2950 2450 3014
+f 2354 1914 1946
+f 2354 1946 2450
+f 1914 1166 1182
+f 1914 1182 1946
+f 1181 1945 1993
+f 1181 1993 1197
+f 1945 2449 2529
+f 1945 2529 1993
+f 2449 3013 3109
+f 2449 3109 2529
+f 3013 3509 3713
+f 3013 3713 3109
+f 3509 3977 4073
+f 3509 4073 3713
+f 3977 4485 4581
+f 3977 4581 4073
+f 4485 4837 5021
+f 4485 5021 4581
+f 4837 5297 5417
+f 4837 5417 5021
+f 5297 5649 5885
+f 5297 5885 5417
+f 5649 6037 6213
+f 5649 6213 5885
+f 6037 6413 6617
+f 6037 6617 6213
+f 6413 6713 6953
+f 6413 6953 6617
+f 6713 7077 7269
+f 6713 7269 6953
+f 7077 7349 7629
+f 7077 7629 7269
+f 7349 7697 7913
+f 7349 7913 7629
+f 7697 7945 8229
+f 7697 8229 7913
+f 7945 8253 8493
+f 7945 8493 8229
+f 8253 8485 8777
+f 8253 8777 8493
+f 8485 8753 9025
+f 8485 9025 8777
+f 8753 8953 9269
+f 8753 9269 9025
+f 8953 9245 9477
+f 8953 9477 9269
+f 9245 9413 9753
+f 9245 9753 9477
+f 9413 9645 9921
+f 9413 9921 9753
+f 9645 9841 10165
+f 9645 10165 9921
+f 9841 10009 10333
+f 9841 10333 10165
+f 10009 10213 10525
+f 10009 10525 10333
+f 10213 10373 10689
+f 10213 10689 10525
+f 10373 10533 10849
+f 10373 10849 10689
+f 10533 10665 11005
+f 10533 11005 10849
+f 10665 10793 11125
+f 10665 11125 11005
+f 10793 10937 11261
+f 10793 11261 11125
+f 10937 11077 11401
+f 10937 11401 11261
+f 11077 11133 11505
+f 11077 11505 11401
+f 11133 11229 11593
+f 11133 11593 11505
+f 11229 11349 11697
+f 11229 11697 11593
+f 11349 11425 11789
+f 11349 11789 11697
+f 11425 11481 11837
+f 11425 11837 11789
+f 11481 11545 11877
+f 11481 11877 11837
+f 11545 11561 11941
+f 11545 11941 11877
+f 11561 11609 11981
+f 11561 11981 11941
+f 11609 11649 11997
+f 11609 11997 11981
+f 11649 11665 12029
+f 11649 12029 11997
+f 11665 11681 12053
+f 11665 12053 12029
+f 11681 11682 12054
+f 11681 12054 12053
+f 11682 11666 12030
+f 11682 12030 12054
+f 11666 11650 11998
+f 11666 11998 12030
+f 11650 11610 11982
+f 11650 11982 11998
+f 11610 11562 11942
+f 11610 11942 11982
+f 11562 11546 11878
+f 11562 11878 11942
+f 11546 11482 11838
+f 11546 11838 11878
+f 11482 11426 11790
+f 11482 11790 11838
+f 11426 11350 11698
+f 11426 11698 11790
+f 11350 11230 11594
+f 11350 11594 11698
+f 11230 11134 11506
+f 11230 11506 11594
+f 11134 11078 11402
+f 11134 11402 11506
+f 11078 10938 11262
+f 11078 11262 11402
+f 10938 10794 11126
+f 10938 11126 11262
+f 10794 10666 11006
+f 10794 11006 11126
+f 10666 10534 10850
+f 10666 10850 11006
+f 10534 10374 10690
+f 10534 10690 10850
+f 10374 10214 10526
+f 10374 10526 10690
+f 10214 10010 10334
+f 10214 10334 10526
+f 10010 9842 10166
+f 10010 10166 10334
+f 9842 9646 9922
+f 9842 9922 10166
+f 9646 9414 9754
+f 9646 9754 9922
+f 9414 9246 9478
+f 9414 9478 9754
+f 9246 8954 9270
+f 9246 9270 9478
+f 8954 8754 9026
+f 8954 9026 9270
+f 8754 8486 8778
+f 8754 8778 9026
+f 8486 8254 8494
+f 8486 8494 8778
+f 8254 7946 8230
+f 8254 8230 8494
+f 7946 7698 7914
+f 7946 7914 8230
+f 7698 7350 7630
+f 7698 7630 7914
+f 7350 7078 7270
+f 7350 7270 7630
+f 7078 6714 6954
+f 7078 6954 7270
+f 6714 6414 6618
+f 6714 6618 6954
+f 6414 6038 6214
+f 6414 6214 6618
+f 6038 5650 5886
+f 6038 5886 6214
+f 5650 5298 5418
+f 5650 5418 5886
+f 5298 4838 5022
+f 5298 5022 5418
+f 4838 4486 4582
+f 4838 4582 5022
+f 4486 3978 4074
+f 4486 4074 4582
+f 3978 3510 3714
+f 3978 3714 4074
+f 3510 3014 3110
+f 3510 3110 3714
+f 3014 2450 2530
+f 3014 2530 3110
+f 2450 1946 1994
+f 2450 1994 2530
+f 1946 1182 1198
+f 1946 1198 1994
+f 1197 1993 2033
+f 1197 2033 1245
+f 1993 2529 2657
+f 1993 2657 2033
+f 2529 3109 3173
+f 2529 3173 2657
+f 3109 3713 3761
+f 3109 3761 3173
+f 3713 4073 4225
+f 3713 4225 3761
+f 4073 4581 4733
+f 4073 4733 4225
+f 4581 5021 5217
+f 4581 5217 4733
+f 5021 5417 5601
+f 5021 5601 5217
+f 5417 5885 6013
+f 5417 6013 5601
+f 5885 6213 6453
+f 5885 6453 6013
+f 6213 6617 6777
+f 6213 6777 6453
+f 6617 6953 7173
+f 6617 7173 6777
+f 6953 7269 7477
+f 6953 7477 7173
+f 7269 7629 7825
+f 7269 7825 7477
+f 7629 7913 8169
+f 7629 8169 7825
+f 7913 8229 8445
+f 7913 8445 8169
+f 8229 8493 8761
+f 8229 8761 8445
+f 8493 8777 9033
+f 8493 9033 8761
+f 8777 9025 9293
+f 8777 9293 9033
+f 9025 9269 9549
+f 9025 9549 9293
+f 9269 9477 9777
+f 9269 9777 9549
+f 9477 9753 9993
+f 9477 9993 9777
+f 9753 9921 10245
+f 9753 10245 9993
+f 9921 10165 10429
+f 9921 10429 10245
+f 10165 10333 10641
+f 10165 10641 10429
+f 10333 10525 10825
+f 10333 10825 10641
+f 10525 10689 11013
+f 10525 11013 10825
+f 10689 10849 11165
+f 10689 11165 11013
+f 10849 11005 11341
+f 10849 11341 11165
+f 11005 11125 11449
+f 11005 11449 11341
+f 11125 11261 11585
+f 11125 11585 11449
+f 11261 11401 11729
+f 11261 11729 11585
+f 11401 11505 11829
+f 11401 11829 11729
+f 11505 11593 11933
+f 11505 11933 11829
+f 11593 11697 12005
+f 11593 12005 11933
+f 11697 11789 12109
+f 11697 12109 12005
+f 11789 11837 12185
+f 11789 12185 12109
+f 11837 11877 12241
+f 11837 12241 12185
+f 11877 11941 12281
+f 11877 12281 12241
+f 11941 11981 12297
+f 11941 12297 12281
+f 11981 11997 12361
+f 11981 12361 12297
+f 11997 12029 12377
+f 11997 12377 12361
+f 12029 12053 12417
+f 12029 12417 12377
+f 12053 12054 12418
+f 12053 12418 12417
+f 12054 12030 12378
+f 12054 12378 12418
+f 12030 11998 12362
+f 12030 12362 12378
+f 11998 11982 12298
+f 11998 12298 12362
+f 11982 11942 12282
+f 11982 12282 12298
+f 11942 11878 12242
+f 11942 12242 12282
+f 11878 11838 12186
+f 11878 12186 12242
+f 11838 11790 12110
+f 11838 12110 12186
+f 11790 11698 12006
+f 11790 12006 12110
+f 11698 11594 11934
+f 11698 11934 12006
+f 11594 11506 11830
+f 11594 11830 11934
+f 11506 11402 11730
+f 11506 11730 11830
+f 11402 11262 11586
+f 11402 11586 11730
+f 11262 11126 11450
+f 11262 11450 11586
+f 11126 11006 11342
+f 11126 11342 11450
+f 11006 10850 11166
+f 11006 11166 11342
+f 10850 10690 11014
+f 10850 11014 11166
+f 10690 10526 10826
+f 10690 10826 11014
+f 10526 10334 10642
+f 10526 10642 10826
+f 10334 10166 10430
+f 10334 10430 10642
+f 10166 9922 10246
+f 10166 10246 10430
+f 9922 9754 9994
+f 9922 9994 10246
+f 9754 9478 9778
+f 9754 9778 9994
+f 9478 9270 9550
+f 9478 9550 9778
+f 9270 9026 9294
+f 9270 9294 9550
+f 9026 8778 9034
+f 9026 9034 9294
+f 8778 8494 8762
+f 8778 8762 9034
+f 8494 8230 8446
+f 8494 8446 8762
+f 8230 7914 8170
+f 8230 8170 8446
+f 7914 7630 7826
+f 7914 7826 8170
+f 7630 7270 7478
+f 7630 7478 7826
+f 7270 6954 7174
+f 7270 7174 7478
+f 6954 6618 6778
+f 6954 6778 7174
+f 6618 6214 6454
+f 6618 6454 6778
+f 6214 5886 6014
+f 6214 6014 6454
+f 5886 5418 5602
+f 5886 5602 6014
+f 5418 5022 5218
+f 5418 5218 5602
+f 5022 4582 4734
+f 5022 4734 5218
+f 4582 4074 4226
+f 4582 4226 4734
+f 4074 3714 3762
+f 4074 3762 4226
+f 3714 3110 3174
+f 3714 3174 3762
+f 3110 2530 2658
+f 3110 2658 3174
+f 2530 1994 2034
+f 2530 2034 2658
+f 1994 1198 1246
+f 1994 1246 2034
+f 1245 2033 2065
+f 1245 2065 1261
+f 2033 2657 2797
+f 2033 2797 2065
+f 2657 3173 3269
+f 2657 3269 2797
+f 3173 3761 3865
+f 3173 3865 3269
+f 3761 4225 4441
+f 3761 4441 3865
+f 4225 4733 4829
+f 4225 4829 4441
+f 4733 5217 5329
+f 4733 5329 4829
+f 5217 5601 5809
+f 5217 5809 5329
+f 5601 6013 6173
+f 5601 6173 5809
+f 6013 6453 6633
+f 6013 6633 6173
+f 6453 6777 7001
+f 6453 7001 6633
+f 6777 7173 7333
+f 6777 7333 7001
+f 7173 7477 7737
+f 7173 7737 7333
+f 7477 7825 8025
+f 7477 8025 7737
+f 7825 8169 8373
+f 7825 8373 8025
+f 8169 8445 8717
+f 8169 8717 8373
+f 8445 8761 8961
+f 8445 8961 8717
+f 8761 9033 9277
+f 8761 9277 8961
+f 9033 9293 9557
+f 9033 9557 9277
+f 9293 9549 9801
+f 9293 9801 9557
+f 9549 9777 10073
+f 9549 10073 9801
+f 9777 9993 10269
+f 9777 10269 10073
+f 9993 10245 10509
+f 9993 10509 10269
+f 10245 10429 10729
+f 10245 10729 10509
+f 10429 10641 10929
+f 10429 10929 10729
+f 10641 10825 11109
+f 10641 11109 10929
+f 10825 11013 11309
+f 10825 11309 11109
+f 11013 11165 11465
+f 11013 11465 11309
+f 11165 11341 11617
+f 11165 11617 11465
+f 11341 11449 11805
+f 11341 11805 11617
+f 11449 11585 11885
+f 11449 11885 11805
+f 11585 11729 12021
+f 11585 12021 11885
+f 11729 11829 12153
+f 11729 12153 12021
+f 11829 11933 12249
+f 11829 12249 12153
+f 11933 12005 12329
+f 11933 12329 12249
+f 12005 12109 12433
+f 12005 12433 12329
+f 12109 12185 12509
+f 12109 12509 12433
+f 12185 12241 12557
+f 12185 12557 12509
+f 12241 12281 12613
+f 12241 12613 12557
+f 12281 12297 12653
+f 12281 12653 12613
+f 12297 12361 12669
+f 12297 12669 12653
+f 12361 12377 12693
+f 12361 12693 12669
+f 12377 12417 12717
+f 12377 12717 12693
+f 12417 12418 12718
+f 12417 12718 12717
+f 12418 12378 12694
+f 12418 12694 12718
+f 12378 12362 12670
+f 12378 12670 12694
+f 12362 12298 12654
+f 12362 12654 12670
+f 12298 12282 12614
+f 12298 12614 12654
+f 12282 12242 12558
+f 12282 12558 12614
+f 12242 12186 12510
+f 12242 12510 12558
+f 12186 12110 12434
+f 12186 12434 12510
+f 12110 12006 12330
+f 12110 12330 12434
+f 12006 11934 12250
+f 12006 12250 12330
+f 11934 11830 12154
+f 11934 12154 12250
+f 11830 11730 12022
+f 11830 12022 12154
+f 11730 11586 11886
+f 11730 11886 12022
+f 11586 11450 11806
+f 11586 11806 11886
+f 11450 11342 11618
+f 11450 11618 11806
+f 11342 11166 11466
+f 11342 11466 11618
+f 11166 11014 11310
+f 11166 11310 11466
+f 11014 10826 11110
+f 11014 11110 11310
+f 10826 10642 10930
+f 10826 10930 11110
+f 10642 10430 10730
+f 10642 10730 10930
+f 10430 10246 10510
+f 10430 10510 10730
+f 10246 9994 10270
+f 10246 10270 10510
+f 9994 9778 10074
+f 9994 10074 10270
+f 9778 9550 9802
+f 9778 9802 10074
+f 9550 9294 9558
+f 9550 9558 9802
+f 9294 9034 9278
+f 9294 9278 9558
+f 9034 8762 8962
+f 9034 8962 9278
+f 8762 8446 8718
+f 8762 8718 8962
+f 8446 8170 8374
+f 8446 8374 8718
+f 8170 7826 8026
+f 8170 8026 8374
+f 7826 7478 7738
+f 7826 7738 8026
+f 7478 7174 7334
+f 7478 7334 7738
+f 7174 6778 7002
+f 7174 7002 7334
+f 6778 6454 6634
+f 6778 6634 7002
+f 6454 6014 6174
+f 6454 6174 6634
+f 6014 5602 5810
+f 6014 5810 6174
+f 5602 5218 5330
+f 5602 5330 5810
+f 5218 4734 4830
+f 5218 4830 5330
+f 4734 4226 4442
+f 4734 4442 4830
+f 4226 3762 3866
+f 4226 3866 4442
+f 3762 3174 3270
+f 3762 3270 3866
+f 3174 2658 2798
+f 3174 2798 3270
+f 2658 2034 2066
+f 2658 2066 2798
+f 2034 1246 1262
+f 2034 1262 2066
+f 1261 2065 2113
+f 1261 2113 1309
+f 2065 2797 2845
+f 2065 2845 2113
+f 2797 3269 3349
+f 2797 3349 2845
+f 3269 3865 3929
+f 3269 3929 3349
+f 3865 4441 4517
+f 3865 4517 3929
+f 4441 4829 4973
+f 4441 4973 4517
+f 4829 5329 5473
+f 4829 5473 4973
+f 5329 5809 5933
+f 5329 5933 5473
+f 5809 6173 6357
+f 5809 6357 5933
+f 6173 6633 6737
+f 6173 6737 6357
+f 6633 7001 7197
+f 6633 7197 6737
+f 7001 7333 7557
+f 7001 7557 7197
+f 7333 7737 7905
+f 7333 7905 7557
+f 7737 8025 8285
+f 7737 8285 7905
+f 8025 8373 8581
+f 8025 8581 8285
+f 8373 8717 8905
+f 8373 8905 8581
+f 8717 8961 9253
+f 8717 9253 8905
+f 8961 9277 9485
+f 8961 9485 9253
+f 9277 9557 9785
+f 9277 9785 9485
+f 9557 9801 10081
+f 9557 10081 9785
+f 9801 10073 10301
+f 9801 10301 10081
+f 10073 10269 10581
+f 10073 10581 10301
+f 10269 10509 10761
+f 10269 10761 10581
+f 10509 10729 10997
+f 10509 10997 10761
+f 10729 10929 11189
+f 10729 11189 10997
+f 10929 11109 11409
+f 10929 11409 11189
+f 11109 11309 11553
+f 11109 11553 11409
+f 11309 11465 11777
+f 11309 11777 11553
+f 11465 11617 11893
+f 11465 11893 11777
+f 11617 11805 12077
+f 11617 12077 11893
+f 11805 11885 12209
+f 11805 12209 12077
+f 11885 12021 12305
+f 11885 12305 12209
+f 12021 12153 12449
+f 12021 12449 12305
+f 12153 12249 12549
+f 12153 12549 12449
+f 12249 12329 12645
+f 12249 12645 12549
+f 12329 12433 12725
+f 12329 12725 12645
+f 12433 12509 12833
+f 12433 12833 12725
+f 12509 12557 12865
+f 12509 12865 12833
+f 12557 12613 12913
+f 12557 12913 12865
+f 12613 12653 12945
+f 12613 12945 12913
+f 12653 12669 12985
+f 12653 12985 12945
+f 12669 12693 13017
+f 12669 13017 12985
+f 12693 12717 13049
+f 12693 13049 13017
+f 12717 12718 13050
+f 12717 13050 13049
+f 12718 12694 13018
+f 12718 13018 13050
+f 12694 12670 12986
+f 12694 12986 13018
+f 12670 12654 12946
+f 12670 12946 12986
+f 12654 12614 12914
+f 12654 12914 12946
+f 12614 12558 12866
+f 12614 12866 12914
+f 12558 12510 12834
+f 12558 12834 12866
+f 12510 12434 12726
+f 12510 12726 12834
+f 12434 12330 12646
+f 12434 12646 12726
+f 12330 12250 12550
+f 12330 12550 12646
+f 12250 12154 12450
+f 12250 12450 12550
+f 12154 12022 12306
+f 12154 12306 12450
+f 12022 11886 12210
+f 12022 12210 12306
+f 11886 11806 12078
+f 11886 12078 12210
+f 11806 11618 11894
+f 11806 11894 12078
+f 11618 11466 11778
+f 11618 11778 11894
+f 11466 11310 11554
+f 11466 11554 11778
+f 11310 11110 11410
+f 11310 11410 11554
+f 11110 10930 11190
+f 11110 11190 11410
+f 10930 10730 10998
+f 10930 10998 11190
+f 10730 10510 10762
+f 10730 10762 10998
+f 10510 10270 10582
+f 10510 10582 10762
+f 10270 10074 10302
+f 10270 10302 10582
+f 10074 9802 10082
+f 10074 10082 10302
+f 9802 9558 9786
+f 9802 9786 10082
+f 9558 9278 9486
+f 9558 9486 9786
+f 9278 8962 9254
+f 9278 9254 9486
+f 8962 8718 8906
+f 8962 8906 9254
+f 8718 8374 8582
+f 8718 8582 8906
+f 8374 8026 8286
+f 8374 8286 8582
+f 8026 7738 7906
+f 8026 7906 8286
+f 7738 7334 7558
+f 7738 7558 7906
+f 7334 7002 7198
+f 7334 7198 7558
+f 7002 6634 6738
+f 7002 6738 7198
+f 6634 6174 6358
+f 6634 6358 6738
+f 6174 5810 5934
+f 6174 5934 6358
+f 5810 5330 5474
+f 5810 5474 5934
+f 5330 4830 4974
+f 5330 4974 5474
+f 4830 4442 4518
+f 4830 4518 4974
+f 4442 3866 3930
+f 4442 3930 4518
+f 3866 3270 3350
+f 3866 3350 3930
+f 3270 2798 2846
+f 3270 2846 3350
+f 2798 2066 2114
+f 2798 2114 2846
+f 2066 1262 1310
+f 2066 1310 2114
+f 1309 2113 2145
+f 1309 2145 1325
+f 2113 2845 2893
+f 2113 2893 2145
+f 2845 3349 3461
+f 2845 3461 2893
+f 3349 3929 4017
+f 3349 4017 3461
+f 3929 4517 4597
+f 3929 4597 4017
+f 4517 4973 5169
+f 4517 5169 4597
+f 4973 5473 5561
+f 4973 5561 5169
+f 5473 5933 6077
+f 5473 6077 5561
+f 5933 6357 6537
+f 5933 6537 6077
+f 6357 6737 6921
+f 6357 6921 6537
+f 6737 7197 7317
+f 6737 7317 6921
+f 7197 7557 7753
+f 7197 7753 7317
+f 7557 7905 8121
+f 7557 8121 7753
+f 7905 8285 8453
+f 7905 8453 8121
+f 8285 8581 8825
+f 8285 8825 8453
+f 8581 8905 9129
+f 8581 9129 8825
+f 8905 9253 9429
+f 8905 9429 9129
+f 9253 9485 9761
+f 9253 9761 9429
+f 9485 9785 10001
+f 9485 10001 9761
+f 9785 10081 10285
+f 9785 10285 10001
+f 10081 10301 10589
+f 10081 10589 10285
+f 10301 10581 10785
+f 10301 10785 10589
+f 10581 10761 11053
+f 10581 11053 10785
+f 10761 10997 11237
+f 10761 11237 11053
+f 10997 11189 11457
+f 10997 11457 11237
+f 11189 11409 11657
+f 11189 11657 11457
+f 11409 11553 11845
+f 11409 11845 11657
+f 11553 11777 12013
+f 11553 12013 11845
+f 11777 11893 12201
+f 11777 12201 12013
+f 11893 12077 12321
+f 11893 12321 12201
+f 12077 12209 12501
+f 12077 12501 12321
+f 12209 12305 12621
+f 12209 12621 12501
+f 12305 12449 12733
+f 12305 12733 12621
+f 12449 12549 12841
+f 12449 12841 12733
+f 12549 12645 12929
+f 12549 12929 12841
+f 12645 12725 13041
+f 12645 13041 12929
+f 12725 12833 13105
+f 12725 13105 13041
+f 12833 12865 13173
+f 12833 13173 13105
+f 12865 12913 13221
+f 12865 13221 13173
+f 12913 12945 13253
+f 12913 13253 13221
+f 12945 12985 13285
+f 12945 13285 13253
+f 12985 13017 13301
+f 12985 13301 13285
+f 13017 13049 13325
+f 13017 13325 13301
+f 13049 13050 13326
+f 13049 13326 13325
+f 13050 13018 13302
+f 13050 13302 13326
+f 13018 12986 13286
+f 13018 13286 13302
+f 12986 12946 13254
+f 12986 13254 13286
+f 12946 12914 13222
+f 12946 13222 13254
+f 12914 12866 13174
+f 12914 13174 13222
+f 12866 12834 13106
+f 12866 13106 13174
+f 12834 12726 13042
+f 12834 13042 13106
+f 12726 12646 12930
+f 12726 12930 13042
+f 12646 12550 12842
+f 12646 12842 12930
+f 12550 12450 12734
+f 12550 12734 12842
+f 12450 12306 12622
+f 12450 12622 12734
+f 12306 12210 12502
+f 12306 12502 12622
+f 12210 12078 12322
+f 12210 12322 12502
+f 12078 11894 12202
+f 12078 12202 12322
+f 11894 11778 12014
+f 11894 12014 12202
+f 11778 11554 11846
+f 11778 11846 12014
+f 11554 11410 11658
+f 11554 11658 11846
+f 11410 11190 11458
+f 11410 11458 11658
+f 11190 10998 11238
+f 11190 11238 11458
+f 10998 10762 11054
+f 10998 11054 11238
+f 10762 10582 10786
+f 10762 10786 11054
+f 10582 10302 10590
+f 10582 10590 10786
+f 10302 10082 10286
+f 10302 10286 10590
+f 10082 9786 10002
+f 10082 10002 10286
+f 9786 9486 9762
+f 9786 9762 10002
+f 9486 9254 9430
+f 9486 9430 9762
+f 9254 8906 9130
+f 9254 9130 9430
+f 8906 8582 8826
+f 8906 8826 9130
+f 8582 8286 8454
+f 8582 8454 8826
+f 8286 7906 8122
+f 8286 8122 8454
+f 7906 7558 7754
+f 7906 7754 8122
+f 7558 7198 7318
+f 7558 7318 7754
+f 7198 6738 6922
+f 7198 6922 7318
+f 6738 6358 6538
+f 6738 6538 6922
+f 6358 5934 6078
+f 6358 6078 6538
+f 5934 5474 5562
+f 5934 5562 6078
+f 5474 4974 5170
+f 5474 5170 5562
+f 4974 4518 4598
+f 4974 4598 5170
+f 4518 3930 4018
+f 4518 4018 4598
+f 3930 3350 3462
+f 3930 3462 4018
+f 3350 2846 2894
+f 3350 2894 3462
+f 2846 2114 2146
+f 2846 2146 2894
+f 2114 1310 1326
+f 2114 1326 2146
+f 1325 2145 2177
+f 1325 2177 1357
+f 2145 2893 2933
+f 2145 2933 2177
+f 2893 3461 3597
+f 2893 3597 2933
+f 3461 4017 4137
+f 3461 4137 3597
+f 4017 4597 4709
+f 4017 4709 4137
+f 4597 5169 5257
+f 4597 5257 4709
+f 5169 5561 5737
+f 5169 5737 5257
+f 5561 6077 6189
+f 5561 6189 5737
+f 6077 6537 6657
+f 6077 6657 6189
+f 6537 6921 7125
+f 6537 7125 6657
+f 6921 7317 7509
+f 6921 7509 7125
+f 7317 7753 7889
+f 7317 7889 7509
+f 7753 8121 8309
+f 7753 8309 7889
+f 8121 8453 8669
+f 8121 8669 8309
+f 8453 8825 8985
+f 8453 8985 8669
+f 8825 9129 9349
+f 8825 9349 8985
+f 9129 9429 9661
+f 9129 9661 9349
+f 9429 9761 9937
+f 9429 9937 9661
+f 9761 10001 10253
+f 9761 10253 9937
+f 10001 10285 10517
+f 10001 10517 10253
+f 10285 10589 10769
+f 10285 10769 10517
+f 10589 10785 11061
+f 10589 11061 10769
+f 10785 11053 11269
+f 10785 11269 11061
+f 11053 11237 11513
+f 11053 11513 11269
+f 11237 11457 11713
+f 11237 11713 11513
+f 11457 11657 11901
+f 11457 11901 11713
+f 11657 11845 12117
+f 11657 12117 11901
+f 11845 12013 12273
+f 11845 12273 12117
+f 12013 12201 12457
+f 12013 12457 12273
+f 12201 12321 12597
+f 12201 12597 12457
+f 12321 12501 12749
+f 12321 12749 12597
+f 12501 12621 12889
+f 12501 12889 12749
+f 12621 12733 13009
+f 12621 13009 12889
+f 12733 12841 13125
+f 12733 13125 13009
+f 12841 12929 13213
+f 12841 13213 13125
+f 12929 13041 13293
+f 12929 13293 13213
+f 13041 13105 13381
+f 13041 13381 13293
+f 13105 13173 13449
+f 13105 13449 13381
+f 13173 13221 13489
+f 13173 13489 13449
+f 13221 13253 13537
+f 13221 13537 13489
+f 13253 13285 13577
+f 13253 13577 13537
+f 13285 13301 13585
+f 13285 13585 13577
+f 13301 13325 13609
+f 13301 13609 13585
+f 13325 13326 13610
+f 13325 13610 13609
+f 13326 13302 13586
+f 13326 13586 13610
+f 13302 13286 13578
+f 13302 13578 13586
+f 13286 13254 13538
+f 13286 13538 13578
+f 13254 13222 13490
+f 13254 13490 13538
+f 13222 13174 13450
+f 13222 13450 13490
+f 13174 13106 13382
+f 13174 13382 13450
+f 13106 13042 13294
+f 13106 13294 13382
+f 13042 12930 13214
+f 13042 13214 13294
+f 12930 12842 13126
+f 12930 13126 13214
+f 12842 12734 13010
+f 12842 13010 13126
+f 12734 12622 12890
+f 12734 12890 13010
+f 12622 12502 12750
+f 12622 12750 12890
+f 12502 12322 12598
+f 12502 12598 12750
+f 12322 12202 12458
+f 12322 12458 12598
+f 12202 12014 12274
+f 12202 12274 12458
+f 12014 11846 12118
+f 12014 12118 12274
+f 11846 11658 11902
+f 11846 11902 12118
+f 11658 11458 11714
+f 11658 11714 11902
+f 11458 11238 11514
+f 11458 11514 11714
+f 11238 11054 11270
+f 11238 11270 11514
+f 11054 10786 11062
+f 11054 11062 11270
+f 10786 10590 10770
+f 10786 10770 11062
+f 10590 10286 10518
+f 10590 10518 10770
+f 10286 10002 10254
+f 10286 10254 10518
+f 10002 9762 9938
+f 10002 9938 10254
+f 9762 9430 9662
+f 9762 9662 9938
+f 9430 9130 9350
+f 9430 9350 9662
+f 9130 8826 8986
+f 9130 8986 9350
+f 8826 8454 8670
+f 8826 8670 8986
+f 8454 8122 8310
+f 8454 8310 8670
+f 8122 7754 7890
+f 8122 7890 8310
+f 7754 7318 7510
+f 7754 7510 7890
+f 7318 6922 7126
+f 7318 7126 7510
+f 6922 6538 6658
+f 6922 6658 7126
+f 6538 6078 6190
+f 6538 6190 6658
+f 6078 5562 5738
+f 6078 5738 6190
+f 5562 5170 5258
+f 5562 5258 5738
+f 5170 4598 4710
+f 5170 4710 5258
+f 4598 4018 4138
+f 4598 4138 4710
+f 4018 3462 3598
+f 4018 3598 4138
+f 3462 2894 2934
+f 3462 2934 3598
+f 2894 2146 2178
+f 2894 2178 2934
+f 2146 1326 1358
+f 2146 1358 2178
+f 1357 2177 2225
+f 1357 2225 1389
+f 2177 2933 2981
+f 2177 2981 2225
+f 2933 3597 3697
+f 2933 3697 2981
+f 3597 4137 4209
+f 3597 4209 3697
+f 4137 4709 4773
+f 4137 4773 4209
+f 4709 5257 5345
+f 4709 5345 4773
+f 5257 5737 5901
+f 5257 5901 5345
+f 5737 6189 6333
+f 5737 6333 5901
+f 6189 6657 6785
+f 6189 6785 6333
+f 6657 7125 7245
+f 6657 7245 6785
+f 7125 7509 7705
+f 7125 7705 7245
+f 7509 7889 8057
+f 7509 8057 7705
+f 7889 8309 8461
+f 7889 8461 8057
+f 8309 8669 8849
+f 8309 8849 8461
+f 8669 8985 9201
+f 8669 9201 8849
+f 8985 9349 9509
+f 8985 9509 9201
+f 9349 9661 9857
+f 9349 9857 9509
+f 9661 9937 10173
+f 9661 10173 9857
+f 9937 10253 10445
+f 9937 10445 10173
+f 10253 10517 10737
+f 10253 10737 10445
+f 10517 10769 11021
+f 10517 11021 10737
+f 10769 11061 11245
+f 10769 11245 11021
+f 11061 11269 11521
+f 11061 11521 11245
+f 11269 11513 11745
+f 11269 11745 11521
+f 11513 11713 11957
+f 11513 11957 11745
+f 11713 11901 12161
+f 11713 12161 11957
+f 11901 12117 12337
+f 11901 12337 12161
+f 12117 12273 12525
+f 12117 12525 12337
+f 12273 12457 12685
+f 12273 12685 12525
+f 12457 12597 12857
+f 12457 12857 12685
+f 12597 12749 13001
+f 12597 13001 12857
+f 12749 12889 13133
+f 12749 13133 13001
+f 12889 13009 13261
+f 12889 13261 13133
+f 13009 13125 13373
+f 13009 13373 13261
+f 13125 13213 13465
+f 13125 13465 13373
+f 13213 13293 13553
+f 13213 13553 13465
+f 13293 13381 13649
+f 13293 13649 13553
+f 13381 13449 13709
+f 13381 13709 13649
+f 13449 13489 13781
+f 13449 13781 13709
+f 13489 13537 13789
+f 13489 13789 13781
+f 13537 13577 13829
+f 13537 13829 13789
+f 13577 13585 13861
+f 13577 13861 13829
+f 13585 13609 13869
+f 13585 13869 13861
+f 13609 13610 13870
+f 13609 13870 13869
+f 13610 13586 13862
+f 13610 13862 13870
+f 13586 13578 13830
+f 13586 13830 13862
+f 13578 13538 13790
+f 13578 13790 13830
+f 13538 13490 13782
+f 13538 13782 13790
+f 13490 13450 13710
+f 13490 13710 13782
+f 13450 13382 13650
+f 13450 13650 13710
+f 13382 13294 13554
+f 13382 13554 13650
+f 13294 13214 13466
+f 13294 13466 13554
+f 13214 13126 13374
+f 13214 13374 13466
+f 13126 13010 13262
+f 13126 13262 13374
+f 13010 12890 13134
+f 13010 13134 13262
+f 12890 12750 13002
+f 12890 13002 13134
+f 12750 12598 12858
+f 12750 12858 13002
+f 12598 12458 12686
+f 12598 12686 12858
+f 12458 12274 12526
+f 12458 12526 12686
+f 12274 12118 12338
+f 12274 12338 12526
+f 12118 11902 12162
+f 12118 12162 12338
+f 11902 11714 11958
+f 11902 11958 12162
+f 11714 11514 11746
+f 11714 11746 11958
+f 11514 11270 11522
+f 11514 11522 11746
+f 11270 11062 11246
+f 11270 11246 11522
+f 11062 10770 11022
+f 11062 11022 11246
+f 10770 10518 10738
+f 10770 10738 11022
+f 10518 10254 10446
+f 10518 10446 10738
+f 10254 9938 10174
+f 10254 10174 10446
+f 9938 9662 9858
+f 9938 9858 10174
+f 9662 9350 9510
+f 9662 9510 9858
+f 9350 8986 9202
+f 9350 9202 9510
+f 8986 8670 8850
+f 8986 8850 9202
+f 8670 8310 8462
+f 8670 8462 8850
+f 8310 7890 8058
+f 8310 8058 8462
+f 7890 7510 7706
+f 7890 7706 8058
+f 7510 7126 7246
+f 7510 7246 7706
+f 7126 6658 6786
+f 7126 6786 7246
+f 6658 6190 6334
+f 6658 6334 6786
+f 6190 5738 5902
+f 6190 5902 6334
+f 5738 5258 5346
+f 5738 5346 5902
+f 5258 4710 4774
+f 5258 4774 5346
+f 4710 4138 4210
+f 4710 4210 4774
+f 4138 3598 3698
+f 4138 3698 4210
+f 3598 2934 2982
+f 3598 2982 3698
+f 2934 2178 2226
+f 2934 2226 2982
+f 2178 1358 1390
+f 2178 1390 2226
+f 1389 2225 2257
+f 1389 2257 1405
+f 2225 2981 3029
+f 2225 3029 2257
+f 2981 3697 3729
+f 2981 3729 3029
+f 3697 4209 4329
+f 3697 4329 3729
+f 4209 4773 4885
+f 4209 4885 4329
+f 4773 5345 5425
+f 4773 5425 4885
+f 5345 5901 5973
+f 5345 5973 5425
+f 5901 6333 6505
+f 5901 6505 5973
+f 6333 6785 6929
+f 6333 6929 6505
+f 6785 7245 7389
+f 6785 7389 6929
+f 7245 7705 7809
+f 7245 7809 7389
+f 7705 8057 8261
+f 7705 8261 7809
+f 8057 8461 8621
+f 8057 8621 8261
+f 8461 8849 8993
+f 8461 8993 8621
+f 8849 9201 9373
+f 8849 9373 8993
+f 9201 9509 9729
+f 9201 9729 9373
+f 9509 9857 10041
+f 9509 10041 9729
+f 9857 10173 10349
+f 9857 10349 10041
+f 10173 10445 10649
+f 10173 10649 10349
+f 10445 10737 10945
+f 10445 10945 10649
+f 10737 11021 11205
+f 10737 11205 10945
+f 11021 11245 11473
+f 11021 11473 11205
+f 11245 11521 11721
+f 11245 11721 11473
+f 11521 11745 11965
+f 11521 11965 11721
+f 11745 11957 12177
+f 11745 12177 11965
+f 11957 12161 12393
+f 11957 12393 12177
+f 12161 12337 12565
+f 12161 12565 12393
+f 12337 12525 12765
+f 12337 12765 12565
+f 12525 12685 12921
+f 12525 12921 12765
+f 12685 12857 13089
+f 12685 13089 12921
+f 12857 13001 13229
+f 12857 13229 13089
+f 13001 13133 13397
+f 13001 13397 13229
+f 13133 13261 13497
+f 13133 13497 13397
+f 13261 13373 13625
+f 13261 13625 13497
+f 13373 13465 13717
+f 13373 13717 13625
+f 13465 13553 13797
+f 13465 13797 13717
+f 13553 13649 13893
+f 13553 13893 13797
+f 13649 13709 13977
+f 13649 13977 13893
+f 13709 13781 14009
+f 13709 14009 13977
+f 13781 13789 14041
+f 13781 14041 14009
+f 13789 13829 14105
+f 13789 14105 14041
+f 13829 13861 14121
+f 13829 14121 14105
+f 13861 13869 14137
+f 13861 14137 14121
+f 13869 13870 14138
+f 13869 14138 14137
+f 13870 13862 14122
+f 13870 14122 14138
+f 13862 13830 14106
+f 13862 14106 14122
+f 13830 13790 14042
+f 13830 14042 14106
+f 13790 13782 14010
+f 13790 14010 14042
+f 13782 13710 13978
+f 13782 13978 14010
+f 13710 13650 13894
+f 13710 13894 13978
+f 13650 13554 13798
+f 13650 13798 13894
+f 13554 13466 13718
+f 13554 13718 13798
+f 13466 13374 13626
+f 13466 13626 13718
+f 13374 13262 13498
+f 13374 13498 13626
+f 13262 13134 13398
+f 13262 13398 13498
+f 13134 13002 13230
+f 13134 13230 13398
+f 13002 12858 13090
+f 13002 13090 13230
+f 12858 12686 12922
+f 12858 12922 13090
+f 12686 12526 12766
+f 12686 12766 12922
+f 12526 12338 12566
+f 12526 12566 12766
+f 12338 12162 12394
+f 12338 12394 12566
+f 12162 11958 12178
+f 12162 12178 12394
+f 11958 11746 11966
+f 11958 11966 12178
+f 11746 11522 11722
+f 11746 11722 11966
+f 11522 11246 11474
+f 11522 11474 11722
+f 11246 11022 11206
+f 11246 11206 11474
+f 11022 10738 10946
+f 11022 10946 11206
+f 10738 10446 10650
+f 10738 10650 10946
+f 10446 10174 10350
+f 10446 10350 10650
+f 10174 9858 10042
+f 10174 10042 10350
+f 9858 9510 9730
+f 9858 9730 10042
+f 9510 9202 9374
+f 9510 9374 9730
+f 9202 8850 8994
+f 9202 8994 9374
+f 8850 8462 8622
+f 8850 8622 8994
+f 8462 8058 8262
+f 8462 8262 8622
+f 8058 7706 7810
+f 8058 7810 8262
+f 7706 7246 7390
+f 7706 7390 7810
+f 7246 6786 6930
+f 7246 6930 7390
+f 6786 6334 6506
+f 6786 6506 6930
+f 6334 5902 5974
+f 6334 5974 6506
+f 5902 5346 5426
+f 5902 5426 5974
+f 5346 4774 4886
+f 5346 4886 5426
+f 4774 4210 4330
+f 4774 4330 4886
+f 4210 3698 3730
+f 4210 3730 4330
+f 3698 2982 3030
+f 3698 3030 3730
+f 2982 2226 2258
+f 2982 2258 3030
+f 2226 1390 1406
+f 2226 1406 2258
+f 1405 2257 2289
+f 1405 2289 1421
+f 2257 3029 3077
+f 2257 3077 2289
+f 3029 3729 3793
+f 3029 3793 3077
+f 3729 4329 4469
+f 3729 4469 3793
+f 4329 4885 4981
+f 4329 4981 4469
+f 4885 5425 5529
+f 4885 5529 4981
+f 5425 5973 6085
+f 5425 6085 5529
+f 5973 6505 6593
+f 5973 6593 6085
+f 6505 6929 7101
+f 6505 7101 6593
+f 6929 7389 7525
+f 6929 7525 7101
+f 7389 7809 7961
+f 7389 7961 7525
+f 7809 8261 8381
+f 7809 8381 7961
+f 8261 8621 8801
+f 8261 8801 8381
+f 8621 8993 9169
+f 8621 9169 8801
+f 8993 9373 9525
+f 8993 9525 9169
+f 9373 9729 9881
+f 9373 9881 9525
+f 9729 10041 10221
+f 9729 10221 9881
+f 10041 10349 10549
+f 10041 10549 10221
+f 10349 10649 10841
+f 10349 10841 10549
+f 10649 10945 11117
+f 10649 11117 10841
+f 10945 11205 11417
+f 10945 11417 11117
+f 11205 11473 11673
+f 11205 11673 11417
+f 11473 11721 11909
+f 11473 11909 11673
+f 11721 11965 12169
+f 11721 12169 11909
+f 11965 12177 12409
+f 11965 12409 12169
+f 12177 12393 12589
+f 12177 12589 12409
+f 12393 12565 12817
+f 12393 12817 12589
+f 12565 12765 12969
+f 12565 12969 12817
+f 12765 12921 13157
+f 12765 13157 12969
+f 12921 13089 13317
+f 12921 13317 13157
+f 13089 13229 13457
+f 13089 13457 13317
+f 13229 13397 13617
+f 13229 13617 13457
+f 13397 13497 13741
+f 13397 13741 13617
+f 13497 13625 13845
+f 13497 13845 13741
+f 13625 13717 13969
+f 13625 13969 13845
+f 13717 13797 14033
+f 13717 14033 13969
+f 13797 13893 14129
+f 13797 14129 14033
+f 13893 13977 14201
+f 13893 14201 14129
+f 13977 14009 14261
+f 13977 14261 14201
+f 14009 14041 14309
+f 14009 14309 14261
+f 14041 14105 14317
+f 14041 14317 14309
+f 14105 14121 14349
+f 14105 14349 14317
+f 14121 14137 14365
+f 14121 14365 14349
+f 14137 14138 14366
+f 14137 14366 14365
+f 14138 14122 14350
+f 14138 14350 14366
+f 14122 14106 14318
+f 14122 14318 14350
+f 14106 14042 14310
+f 14106 14310 14318
+f 14042 14010 14262
+f 14042 14262 14310
+f 14010 13978 14202
+f 14010 14202 14262
+f 13978 13894 14130
+f 13978 14130 14202
+f 13894 13798 14034
+f 13894 14034 14130
+f 13798 13718 13970
+f 13798 13970 14034
+f 13718 13626 13846
+f 13718 13846 13970
+f 13626 13498 13742
+f 13626 13742 13846
+f 13498 13398 13618
+f 13498 13618 13742
+f 13398 13230 13458
+f 13398 13458 13618
+f 13230 13090 13318
+f 13230 13318 13458
+f 13090 12922 13158
+f 13090 13158 13318
+f 12922 12766 12970
+f 12922 12970 13158
+f 12766 12566 12818
+f 12766 12818 12970
+f 12566 12394 12590
+f 12566 12590 12818
+f 12394 12178 12410
+f 12394 12410 12590
+f 12178 11966 12170
+f 12178 12170 12410
+f 11966 11722 11910
+f 11966 11910 12170
+f 11722 11474 11674
+f 11722 11674 11910
+f 11474 11206 11418
+f 11474 11418 11674
+f 11206 10946 11118
+f 11206 11118 11418
+f 10946 10650 10842
+f 10946 10842 11118
+f 10650 10350 10550
+f 10650 10550 10842
+f 10350 10042 10222
+f 10350 10222 10550
+f 10042 9730 9882
+f 10042 9882 10222
+f 9730 9374 9526
+f 9730 9526 9882
+f 9374 8994 9170
+f 9374 9170 9526
+f 8994 8622 8802
+f 8994 8802 9170
+f 8622 8262 8382
+f 8622 8382 8802
+f 8262 7810 7962
+f 8262 7962 8382
+f 7810 7390 7526
+f 7810 7526 7962
+f 7390 6930 7102
+f 7390 7102 7526
+f 6930 6506 6594
+f 6930 6594 7102
+f 6506 5974 6086
+f 6506 6086 6594
+f 5974 5426 5530
+f 5974 5530 6086
+f 5426 4886 4982
+f 5426 4982 5530
+f 4886 4330 4470
+f 4886 4470 4982
+f 4330 3730 3794
+f 4330 3794 4470
+f 3730 3030 3078
+f 3730 3078 3794
+f 3030 2258 2290
+f 3030 2290 3078
+f 2258 1406 1422
+f 2258 1422 2290
+f 1421 2289 2337
+f 1421 2337 1477
+f 2289 3077 3125
+f 2289 3125 2337
+f 3077 3793 3825
+f 3077 3825 3125
+f 3793 4469 4501
+f 3793 4501 3825
+f 4469 4981 5109
+f 4469 5109 4501
+f 4981 5529 5633
+f 4981 5633 5109
+f 5529 6085 6157
+f 5529 6157 5633
+f 6085 6593 6689
+f 6085 6689 6157
+f 6593 7101 7213
+f 6593 7213 6689
+f 7101 7525 7665
+f 7101 7665 7213
+f 7525 7961 8113
+f 7525 8113 7665
+f 7961 8381 8509
+f 7961 8509 8113
+f 8381 8801 8921
+f 8381 8921 8509
+f 8801 9169 9317
+f 8801 9317 8921
+f 9169 9525 9705
+f 9169 9705 9317
+f 9525 9881 10049
+f 9525 10049 9705
+f 9881 10221 10381
+f 9881 10381 10049
+f 10221 10549 10705
+f 10221 10705 10381
+f 10549 10841 11037
+f 10549 11037 10705
+f 10841 11117 11333
+f 10841 11333 11037
+f 11117 11417 11577
+f 11117 11577 11333
+f 11417 11673 11853
+f 11417 11853 11577
+f 11673 11909 12133
+f 11673 12133 11853
+f 11909 12169 12353
+f 11909 12353 12133
+f 12169 12409 12573
+f 12169 12573 12353
+f 12409 12589 12825
+f 12409 12825 12573
+f 12589 12817 12993
+f 12589 12993 12825
+f 12817 12969 13189
+f 12817 13189 12993
+f 12969 13157 13357
+f 12969 13357 13189
+f 13157 13317 13521
+f 13157 13521 13357
+f 13317 13457 13693
+f 13317 13693 13521
+f 13457 13617 13813
+f 13457 13813 13693
+f 13617 13741 13961
+f 13617 13961 13813
+f 13741 13845 14057
+f 13741 14057 13961
+f 13845 13969 14177
+f 13845 14177 14057
+f 13969 14033 14269
+f 13969 14269 14177
+f 14033 14129 14341
+f 14033 14341 14269
+f 14129 14201 14437
+f 14129 14437 14341
+f 14201 14261 14481
+f 14201 14481 14437
+f 14261 14309 14513
+f 14261 14513 14481
+f 14309 14317 14545
+f 14309 14545 14513
+f 14317 14349 14585
+f 14317 14585 14545
+f 14349 14365 14601
+f 14349 14601 14585
+f 14365 14366 14602
+f 14365 14602 14601
+f 14366 14350 14586
+f 14366 14586 14602
+f 14350 14318 14546
+f 14350 14546 14586
+f 14318 14310 14514
+f 14318 14514 14546
+f 14310 14262 14482
+f 14310 14482 14514
+f 14262 14202 14438
+f 14262 14438 14482
+f 14202 14130 14342
+f 14202 14342 14438
+f 14130 14034 14270
+f 14130 14270 14342
+f 14034 13970 14178
+f 14034 14178 14270
+f 13970 13846 14058
+f 13970 14058 14178
+f 13846 13742 13962
+f 13846 13962 14058
+f 13742 13618 13814
+f 13742 13814 13962
+f 13618 13458 13694
+f 13618 13694 13814
+f 13458 13318 13522
+f 13458 13522 13694
+f 13318 13158 13358
+f 13318 13358 13522
+f 13158 12970 13190
+f 13158 13190 13358
+f 12970 12818 12994
+f 12970 12994 13190
+f 12818 12590 12826
+f 12818 12826 12994
+f 12590 12410 12574
+f 12590 12574 12826
+f 12410 12170 12354
+f 12410 12354 12574
+f 12170 11910 12134
+f 12170 12134 12354
+f 11910 11674 11854
+f 11910 11854 12134
+f 11674 11418 11578
+f 11674 11578 11854
+f 11418 11118 11334
+f 11418 11334 11578
+f 11118 10842 11038
+f 11118 11038 11334
+f 10842 10550 10706
+f 10842 10706 11038
+f 10550 10222 10382
+f 10550 10382 10706
+f 10222 9882 10050
+f 10222 10050 10382
+f 9882 9526 9706
+f 9882 9706 10050
+f 9526 9170 9318
+f 9526 9318 9706
+f 9170 8802 8922
+f 9170 8922 9318
+f 8802 8382 8510
+f 8802 8510 8922
+f 8382 7962 8114
+f 8382 8114 8510
+f 7962 7526 7666
+f 7962 7666 8114
+f 7526 7102 7214
+f 7526 7214 7666
+f 7102 6594 6690
+f 7102 6690 7214
+f 6594 6086 6158
+f 6594 6158 6690
+f 6086 5530 5634
+f 6086 5634 6158
+f 5530 4982 5110
+f 5530 5110 5634
+f 4982 4470 4502
+f 4982 4502 5110
+f 4470 3794 3826
+f 4470 3826 4502
+f 3794 3078 3126
+f 3794 3126 3826
+f 3078 2290 2338
+f 3078 2338 3126
+f 2290 1422 1478
+f 2290 1478 2338
+f 1477 2337 2377
+f 1477 2377 1501
+f 2337 3125 3157
+f 2337 3157 2377
+f 3125 3825 3897
+f 3125 3897 3157
+f 3825 4501 4565
+f 3825 4565 3897
+f 4501 5109 5201
+f 4501 5201 4565
+f 5109 5633 5753
+f 5109 5753 5201
+f 5633 6157 6269
+f 5633 6269 5753
+f 6157 6689 6793
+f 6157 6793 6269
+f 6689 7213 7285
+f 6689 7285 6793
+f 7213 7665 7785
+f 7213 7785 7285
+f 7665 8113 8245
+f 7665 8245 7785
+f 8113 8509 8685
+f 8113 8685 8245
+f 8509 8921 9065
+f 8509 9065 8685
+f 8921 9317 9445
+f 8921 9445 9065
+f 9317 9705 9833
+f 9317 9833 9445
+f 9705 10049 10197
+f 9705 10197 9833
+f 10049 10381 10565
+f 10049 10565 10197
+f 10381 10705 10865
+f 10381 10865 10565
+f 10705 11037 11173
+f 10705 11173 10865
+f 11037 11333 11489
+f 11037 11489 11173
+f 11333 11577 11797
+f 11333 11797 11489
+f 11577 11853 12037
+f 11577 12037 11797
+f 11853 12133 12289
+f 11853 12289 12037
+f 12133 12353 12533
+f 12133 12533 12289
+f 12353 12573 12781
+f 12353 12781 12533
+f 12573 12825 12977
+f 12573 12977 12781
+f 12825 12993 13197
+f 12825 13197 12977
+f 12993 13189 13405
+f 12993 13405 13197
+f 13189 13357 13561
+f 13189 13561 13405
+f 13357 13521 13725
+f 13357 13725 13561
+f 13521 13693 13885
+f 13521 13885 13725
+f 13693 13813 14017
+f 13693 14017 13885
+f 13813 13961 14153
+f 13813 14153 14017
+f 13961 14057 14277
+f 13961 14277 14153
+f 14057 14177 14373
+f 14057 14373 14277
+f 14177 14269 14473
+f 14177 14473 14373
+f 14269 14341 14553
+f 14269 14553 14473
+f 14341 14437 14625
+f 14341 14625 14553
+f 14437 14481 14685
+f 14437 14685 14625
+f 14481 14513 14733
+f 14481 14733 14685
+f 14513 14545 14757
+f 14513 14757 14733
+f 14545 14585 14789
+f 14545 14789 14757
+f 14585 14601 14797
+f 14585 14797 14789
+f 14601 14602 14798
+f 14601 14798 14797
+f 14602 14586 14790
+f 14602 14790 14798
+f 14586 14546 14758
+f 14586 14758 14790
+f 14546 14514 14734
+f 14546 14734 14758
+f 14514 14482 14686
+f 14514 14686 14734
+f 14482 14438 14626
+f 14482 14626 14686
+f 14438 14342 14554
+f 14438 14554 14626
+f 14342 14270 14474
+f 14342 14474 14554
+f 14270 14178 14374
+f 14270 14374 14474
+f 14178 14058 14278
+f 14178 14278 14374
+f 14058 13962 14154
+f 14058 14154 14278
+f 13962 13814 14018
+f 13962 14018 14154
+f 13814 13694 13886
+f 13814 13886 14018
+f 13694 13522 13726
+f 13694 13726 13886
+f 13522 13358 13562
+f 13522 13562 13726
+f 13358 13190 13406
+f 13358 13406 13562
+f 13190 12994 13198
+f 13190 13198 13406
+f 12994 12826 12978
+f 12994 12978 13198
+f 12826 12574 12782
+f 12826 12782 12978
+f 12574 12354 12534
+f 12574 12534 12782
+f 12354 12134 12290
+f 12354 12290 12534
+f 12134 11854 12038
+f 12134 12038 12290
+f 11854 11578 11798
+f 11854 11798 12038
+f 11578 11334 11490
+f 11578 11490 11798
+f 11334 11038 11174
+f 11334 11174 11490
+f 11038 10706 10866
+f 11038 10866 11174
+f 10706 10382 10566
+f 10706 10566 10866
+f 10382 10050 10198
+f 10382 10198 10566
+f 10050 9706 9834
+f 10050 9834 10198
+f 9706 9318 9446
+f 9706 9446 9834
+f 9318 8922 9066
+f 9318 9066 9446
+f 8922 8510 8686
+f 8922 8686 9066
+f 8510 8114 8246
+f 8510 8246 8686
+f 8114 7666 7786
+f 8114 7786 8246
+f 7666 7214 7286
+f 7666 7286 7786
+f 7214 6690 6794
+f 7214 6794 7286
+f 6690 6158 6270
+f 6690 6270 6794
+f 6158 5634 5754
+f 6158 5754 6270
+f 5634 5110 5202
+f 5634 5202 5754
+f 5110 4502 4566
+f 5110 4566 5202
+f 4502 3826 3898
+f 4502 3898 4566
+f 3826 3126 3158
+f 3826 3158 3898
+f 3126 2338 2378
+f 3126 2378 3158
+f 2338 1478 1502
+f 2338 1502 2378
+f 1501 2377 2409
+f 1501 2409 1525
+f 2377 3157 3189
+f 2377 3189 2409
+f 3157 3897 3921
+f 3157 3921 3189
+f 3897 4565 4629
+f 3897 4629 3921
+f 4565 5201 5265
+f 4565 5265 4629
+f 5201 5753 5869
+f 5201 5869 5265
+f 5753 6269 6389
+f 5753 6389 5869
+f 6269 6793 6889
+f 6269 6889 6389
+f 6793 7285 7413
+f 6793 7413 6889
+f 7285 7785 7857
+f 7285 7857 7413
+f 7785 8245 8341
+f 7785 8341 7857
+f 8245 8685 8793
+f 8245 8793 8341
+f 8685 9065 9225
+f 8685 9225 8793
+f 9065 9445 9597
+f 9065 9597 9225
+f 9445 9833 9953
+f 9445 9953 9597
+f 9833 10197 10341
+f 9833 10341 9953
+f 10197 10565 10681
+f 10197 10681 10341
+f 10565 10865 11045
+f 10565 11045 10681
+f 10865 11173 11365
+f 10865 11365 11045
+f 11173 11489 11641
+f 11173 11641 11365
+f 11489 11797 11925
+f 11489 11925 11641
+f 11797 12037 12217
+f 11797 12217 11925
+f 12037 12289 12477
+f 12037 12477 12217
+f 12289 12533 12709
+f 12289 12709 12477
+f 12533 12781 12937
+f 12533 12937 12709
+f 12781 12977 13181
+f 12781 13181 12937
+f 12977 13197 13365
+f 12977 13365 13181
+f 13197 13405 13569
+f 13197 13569 13365
+f 13405 13561 13749
+f 13405 13749 13569
+f 13561 13725 13917
+f 13561 13917 13749
+f 13725 13885 14065
+f 13725 14065 13917
+f 13885 14017 14221
+f 13885 14221 14065
+f 14017 14153 14325
+f 14017 14325 14221
+f 14153 14277 14465
+f 14153 14465 14325
+f 14277 14373 14577
+f 14277 14577 14465
+f 14373 14473 14677
+f 14373 14677 14577
+f 14473 14553 14741
+f 14473 14741 14677
+f 14553 14625 14829
+f 14553 14829 14741
+f 14625 14685 14897
+f 14625 14897 14829
+f 14685 14733 14921
+f 14685 14921 14897
+f 14733 14757 14953
+f 14733 14953 14921
+f 14757 14789 14993
+f 14757 14993 14953
+f 14789 14797 15001
+f 14789 15001 14993
+f 14797 14798 15002
+f 14797 15002 15001
+f 14798 14790 14994
+f 14798 14994 15002
+f 14790 14758 14954
+f 14790 14954 14994
+f 14758 14734 14922
+f 14758 14922 14954
+f 14734 14686 14898
+f 14734 14898 14922
+f 14686 14626 14830
+f 14686 14830 14898
+f 14626 14554 14742
+f 14626 14742 14830
+f 14554 14474 14678
+f 14554 14678 14742
+f 14474 14374 14578
+f 14474 14578 14678
+f 14374 14278 14466
+f 14374 14466 14578
+f 14278 14154 14326
+f 14278 14326 14466
+f 14154 14018 14222
+f 14154 14222 14326
+f 14018 13886 14066
+f 14018 14066 14222
+f 13886 13726 13918
+f 13886 13918 14066
+f 13726 13562 13750
+f 13726 13750 13918
+f 13562 13406 13570
+f 13562 13570 13750
+f 13406 13198 13366
+f 13406 13366 13570
+f 13198 12978 13182
+f 13198 13182 13366
+f 12978 12782 12938
+f 12978 12938 13182
+f 12782 12534 12710
+f 12782 12710 12938
+f 12534 12290 12478
+f 12534 12478 12710
+f 12290 12038 12218
+f 12290 12218 12478
+f 12038 11798 11926
+f 12038 11926 12218
+f 11798 11490 11642
+f 11798 11642 11926
+f 11490 11174 11366
+f 11490 11366 11642
+f 11174 10866 11046
+f 11174 11046 11366
+f 10866 10566 10682
+f 10866 10682 11046
+f 10566 10198 10342
+f 10566 10342 10682
+f 10198 9834 9954
+f 10198 9954 10342
+f 9834 9446 9598
+f 9834 9598 9954
+f 9446 9066 9226
+f 9446 9226 9598
+f 9066 8686 8794
+f 9066 8794 9226
+f 8686 8246 8342
+f 8686 8342 8794
+f 8246 7786 7858
+f 8246 7858 8342
+f 7786 7286 7414
+f 7786 7414 7858
+f 7286 6794 6890
+f 7286 6890 7414
+f 6794 6270 6390
+f 6794 6390 6890
+f 6270 5754 5870
+f 6270 5870 6390
+f 5754 5202 5266
+f 5754 5266 5870
+f 5202 4566 4630
+f 5202 4630 5266
+f 4566 3898 3922
+f 4566 3922 4630
+f 3898 3158 3190
+f 3898 3190 3922
+f 3158 2378 2410
+f 3158 2410 3190
+f 2378 1502 1526
+f 2378 1526 2410
+f 1525 2409 2457
+f 1525 2457 1557
+f 2409 3189 3253
+f 2409 3253 2457
+f 3189 3921 3993
+f 3189 3993 3253
+f 3921 4629 4661
+f 3921 4661 3993
+f 4629 5265 5313
+f 4629 5313 4661
+f 5265 5869 5917
+f 5265 5917 5313
+f 5869 6389 6497
+f 5869 6497 5917
+f 6389 6889 7025
+f 6389 7025 6497
+f 6889 7413 7493
+f 6889 7493 7025
+f 7413 7857 7985
+f 7413 7985 7493
+f 7857 8341 8437
+f 7857 8437 7985
+f 8341 8793 8881
+f 8341 8881 8437
+f 8793 9225 9325
+f 8793 9325 8881
+f 9225 9597 9745
+f 9225 9745 9325
+f 9597 9953 10129
+f 9597 10129 9745
+f 9953 10341 10469
+f 9953 10469 10129
+f 10341 10681 10833
+f 10341 10833 10469
+f 10681 11045 11157
+f 10681 11157 10833
+f 11045 11365 11497
+f 11045 11497 11157
+f 11365 11641 11813
+f 11365 11813 11497
+f 11641 11925 12093
+f 11641 12093 11813
+f 11925 12217 12369
+f 11925 12369 12093
+f 12217 12477 12629
+f 12217 12629 12369
+f 12477 12709 12881
+f 12477 12881 12629
+f 12709 12937 13117
+f 12709 13117 12881
+f 12937 13181 13333
+f 12937 13333 13117
+f 13181 13365 13529
+f 13181 13529 13333
+f 13365 13569 13733
+f 13365 13733 13529
+f 13569 13749 13925
+f 13569 13925 13733
+f 13749 13917 14089
+f 13749 14089 13925
+f 13917 14065 14245
+f 13917 14245 14089
+f 14065 14221 14397
+f 14065 14397 14245
+f 14221 14325 14521
+f 14221 14521 14397
+f 14325 14465 14641
+f 14325 14641 14521
+f 14465 14577 14749
+f 14465 14749 14641
+f 14577 14677 14861
+f 14577 14861 14749
+f 14677 14741 14929
+f 14677 14929 14861
+f 14741 14829 15009
+f 14741 15009 14929
+f 14829 14897 15065
+f 14829 15065 15009
+f 14897 14921 15125
+f 14897 15125 15065
+f 14921 14953 15141
+f 14921 15141 15125
+f 14953 14993 15165
+f 14953 15165 15141
+f 14993 15001 15181
+f 14993 15181 15165
+f 15001 15002 15182
+f 15001 15182 15181
+f 15002 14994 15166
+f 15002 15166 15182
+f 14994 14954 15142
+f 14994 15142 15166
+f 14954 14922 15126
+f 14954 15126 15142
+f 14922 14898 15066
+f 14922 15066 15126
+f 14898 14830 15010
+f 14898 15010 15066
+f 14830 14742 14930
+f 14830 14930 15010
+f 14742 14678 14862
+f 14742 14862 14930
+f 14678 14578 14750
+f 14678 14750 14862
+f 14578 14466 14642
+f 14578 14642 14750
+f 14466 14326 14522
+f 14466 14522 14642
+f 14326 14222 14398
+f 14326 14398 14522
+f 14222 14066 14246
+f 14222 14246 14398
+f 14066 13918 14090
+f 14066 14090 14246
+f 13918 13750 13926
+f 13918 13926 14090
+f 13750 13570 13734
+f 13750 13734 13926
+f 13570 13366 13530
+f 13570 13530 13734
+f 13366 13182 13334
+f 13366 13334 13530
+f 13182 12938 13118
+f 13182 13118 13334
+f 12938 12710 12882
+f 12938 12882 13118
+f 12710 12478 12630
+f 12710 12630 12882
+f 12478 12218 12370
+f 12478 12370 12630
+f 12218 11926 12094
+f 12218 12094 12370
+f 11926 11642 11814
+f 11926 11814 12094
+f 11642 11366 11498
+f 11642 11498 11814
+f 11366 11046 11158
+f 11366 11158 11498
+f 11046 10682 10834
+f 11046 10834 11158
+f 10682 10342 10470
+f 10682 10470 10834
+f 10342 9954 10130
+f 10342 10130 10470
+f 9954 9598 9746
+f 9954 9746 10130
+f 9598 9226 9326
+f 9598 9326 9746
+f 9226 8794 8882
+f 9226 8882 9326
+f 8794 8342 8438
+f 8794 8438 8882
+f 8342 7858 7986
+f 8342 7986 8438
+f 7858 7414 7494
+f 7858 7494 7986
+f 7414 6890 7026
+f 7414 7026 7494
+f 6890 6390 6498
+f 6890 6498 7026
+f 6390 5870 5918
+f 6390 5918 6498
+f 5870 5266 5314
+f 5870 5314 5918
+f 5266 4630 4662
+f 5266 4662 5314
+f 4630 3922 3994
+f 4630 3994 4662
+f 3922 3190 3254
+f 3922 3254 3994
+f 3190 2410 2458
+f 3190 2458 3254
+f 2410 1526 1558
+f 2410 1558 2458
+f 1557 2457 2473
+f 1557 2473 1573
+f 2457 3253 3285
+f 2457 3285 2473
+f 3253 3993 4025
+f 3253 4025 3285
+f 3993 4661 4741
+f 3993 4741 4025
+f 4661 5313 5361
+f 4661 5361 4741
+f 5313 5917 5981
+f 5313 5981 5361
+f 5917 6497 6553
+f 5917 6553 5981
+f 6497 7025 7117
+f 6497 7117 6553
+f 7025 7493 7613
+f 7025 7613 7117
+f 7493 7985 8081
+f 7493 8081 7613
+f 7985 8437 8541
+f 7985 8541 8081
+f 8437 8881 9001
+f 8437 9001 8541
+f 8881 9325 9405
+f 8881 9405 9001
+f 9325 9745 9849
+f 9325 9849 9405
+f 9745 10129 10237
+f 9745 10237 9849
+f 10129 10469 10625
+f 10129 10625 10237
+f 10469 10833 10961
+f 10469 10961 10625
+f 10833 11157 11301
+f 10833 11301 10961
+f 11157 11497 11601
+f 11157 11601 11301
+f 11497 11813 11917
+f 11497 11917 11601
+f 11813 12093 12233
+f 11813 12233 11917
+f 12093 12369 12517
+f 12093 12517 12233
+f 12369 12629 12773
+f 12369 12773 12517
+f 12629 12881 13033
+f 12629 13033 12773
+f 12881 13117 13245
+f 12881 13245 13033
+f 13117 13333 13473
+f 13117 13473 13245
+f 13333 13529 13701
+f 13333 13701 13473
+f 13529 13733 13901
+f 13529 13901 13701
+f 13733 13925 14081
+f 13733 14081 13901
+f 13925 14089 14253
+f 13925 14253 14081
+f 14089 14245 14421
+f 14089 14421 14253
+f 14245 14397 14537
+f 14245 14537 14421
+f 14397 14521 14693
+f 14397 14693 14537
+f 14521 14641 14805
+f 14521 14805 14693
+f 14641 14749 14913
+f 14641 14913 14805
+f 14749 14861 15025
+f 14749 15025 14913
+f 14861 14929 15101
+f 14861 15101 15025
+f 14929 15009 15173
+f 14929 15173 15101
+f 15009 15065 15245
+f 15009 15245 15173
+f 15065 15125 15289
+f 15065 15289 15245
+f 15125 15141 15305
+f 15125 15305 15289
+f 15141 15165 15337
+f 15141 15337 15305
+f 15165 15181 15361
+f 15165 15361 15337
+f 15181 15182 15362
+f 15181 15362 15361
+f 15182 15166 15338
+f 15182 15338 15362
+f 15166 15142 15306
+f 15166 15306 15338
+f 15142 15126 15290
+f 15142 15290 15306
+f 15126 15066 15246
+f 15126 15246 15290
+f 15066 15010 15174
+f 15066 15174 15246
+f 15010 14930 15102
+f 15010 15102 15174
+f 14930 14862 15026
+f 14930 15026 15102
+f 14862 14750 14914
+f 14862 14914 15026
+f 14750 14642 14806
+f 14750 14806 14914
+f 14642 14522 14694
+f 14642 14694 14806
+f 14522 14398 14538
+f 14522 14538 14694
+f 14398 14246 14422
+f 14398 14422 14538
+f 14246 14090 14254
+f 14246 14254 14422
+f 14090 13926 14082
+f 14090 14082 14254
+f 13926 13734 13902
+f 13926 13902 14082
+f 13734 13530 13702
+f 13734 13702 13902
+f 13530 13334 13474
+f 13530 13474 13702
+f 13334 13118 13246
+f 13334 13246 13474
+f 13118 12882 13034
+f 13118 13034 13246
+f 12882 12630 12774
+f 12882 12774 13034
+f 12630 12370 12518
+f 12630 12518 12774
+f 12370 12094 12234
+f 12370 12234 12518
+f 12094 11814 11918
+f 12094 11918 12234
+f 11814 11498 11602
+f 11814 11602 11918
+f 11498 11158 11302
+f 11498 11302 11602
+f 11158 10834 10962
+f 11158 10962 11302
+f 10834 10470 10626
+f 10834 10626 10962
+f 10470 10130 10238
+f 10470 10238 10626
+f 10130 9746 9850
+f 10130 9850 10238
+f 9746 9326 9406
+f 9746 9406 9850
+f 9326 8882 9002
+f 9326 9002 9406
+f 8882 8438 8542
+f 8882 8542 9002
+f 8438 7986 8082
+f 8438 8082 8542
+f 7986 7494 7614
+f 7986 7614 8082
+f 7494 7026 7118
+f 7494 7118 7614
+f 7026 6498 6554
+f 7026 6554 7118
+f 6498 5918 5982
+f 6498 5982 6554
+f 5918 5314 5362
+f 5918 5362 5982
+f 5314 4662 4742
+f 5314 4742 5362
+f 4662 3994 4026
+f 4662 4026 4742
+f 3994 3254 3286
+f 3994 3286 4026
+f 3254 2458 2474
+f 3254 2474 3286
+f 2458 1558 1574
+f 2458 1574 2474
+f 1573 2473 2489
+f 1573 2489 1589
+f 2473 3285 3325
+f 2473 3325 2489
+f 3285 4025 4057
+f 3285 4057 3325
+f 4025 4741 4757
+f 4025 4757 4057
+f 4741 5361 5393
+f 4741 5393 4757
+f 5361 5981 6053
+f 5361 6053 5393
+f 5981 6553 6641
+f 5981 6641 6053
+f 6553 7117 7189
+f 6553 7189 6641
+f 7117 7613 7721
+f 7117 7721 7189
+f 7613 8081 8205
+f 7613 8205 7721
+f 8081 8541 8677
+f 8081 8677 8205
+f 8541 9001 9089
+f 8541 9089 8677
+f 9001 9405 9541
+f 9001 9541 9089
+f 9405 9849 9929
+f 9405 9929 9541
+f 9849 10237 10325
+f 9849 10325 9929
+f 10237 10625 10713
+f 10237 10713 10325
+f 10625 10961 11085
+f 10625 11085 10713
+f 10961 11301 11433
+f 10961 11433 11085
+f 11301 11601 11761
+f 11301 11761 11433
+f 11601 11917 12061
+f 11601 12061 11761
+f 11917 12233 12345
+f 11917 12345 12061
+f 12233 12517 12637
+f 12233 12637 12345
+f 12517 12773 12897
+f 12517 12897 12637
+f 12773 13033 13165
+f 12773 13165 12897
+f 13033 13245 13425
+f 13033 13425 13165
+f 13245 13473 13633
+f 13245 13633 13425
+f 13473 13701 13821
+f 13473 13821 13633
+f 13701 13901 14025
+f 13701 14025 13821
+f 13901 14081 14229
+f 13901 14229 14025
+f 14081 14253 14405
+f 14081 14405 14229
+f 14253 14421 14561
+f 14253 14561 14405
+f 14421 14537 14717
+f 14421 14717 14561
+f 14537 14693 14837
+f 14537 14837 14717
+f 14693 14805 14961
+f 14693 14961 14837
+f 14805 14913 15077
+f 14805 15077 14961
+f 14913 15025 15157
+f 14913 15157 15077
+f 15025 15101 15265
+f 15025 15265 15157
+f 15101 15173 15329
+f 15101 15329 15265
+f 15173 15245 15393
+f 15173 15393 15329
+f 15245 15289 15437
+f 15245 15437 15393
+f 15289 15305 15485
+f 15289 15485 15437
+f 15305 15337 15501
+f 15305 15501 15485
+f 15337 15361 15509
+f 15337 15509 15501
+f 15361 15362 15510
+f 15361 15510 15509
+f 15362 15338 15502
+f 15362 15502 15510
+f 15338 15306 15486
+f 15338 15486 15502
+f 15306 15290 15438
+f 15306 15438 15486
+f 15290 15246 15394
+f 15290 15394 15438
+f 15246 15174 15330
+f 15246 15330 15394
+f 15174 15102 15266
+f 15174 15266 15330
+f 15102 15026 15158
+f 15102 15158 15266
+f 15026 14914 15078
+f 15026 15078 15158
+f 14914 14806 14962
+f 14914 14962 15078
+f 14806 14694 14838
+f 14806 14838 14962
+f 14694 14538 14718
+f 14694 14718 14838
+f 14538 14422 14562
+f 14538 14562 14718
+f 14422 14254 14406
+f 14422 14406 14562
+f 14254 14082 14230
+f 14254 14230 14406
+f 14082 13902 14026
+f 14082 14026 14230
+f 13902 13702 13822
+f 13902 13822 14026
+f 13702 13474 13634
+f 13702 13634 13822
+f 13474 13246 13426
+f 13474 13426 13634
+f 13246 13034 13166
+f 13246 13166 13426
+f 13034 12774 12898
+f 13034 12898 13166
+f 12774 12518 12638
+f 12774 12638 12898
+f 12518 12234 12346
+f 12518 12346 12638
+f 12234 11918 12062
+f 12234 12062 12346
+f 11918 11602 11762
+f 11918 11762 12062
+f 11602 11302 11434
+f 11602 11434 11762
+f 11302 10962 11086
+f 11302 11086 11434
+f 10962 10626 10714
+f 10962 10714 11086
+f 10626 10238 10326
+f 10626 10326 10714
+f 10238 9850 9930
+f 10238 9930 10326
+f 9850 9406 9542
+f 9850 9542 9930
+f 9406 9002 9090
+f 9406 9090 9542
+f 9002 8542 8678
+f 9002 8678 9090
+f 8542 8082 8206
+f 8542 8206 8678
+f 8082 7614 7722
+f 8082 7722 8206
+f 7614 7118 7190
+f 7614 7190 7722
+f 7118 6554 6642
+f 7118 6642 7190
+f 6554 5982 6054
+f 6554 6054 6642
+f 5982 5362 5394
+f 5982 5394 6054
+f 5362 4742 4758
+f 5362 4758 5394
+f 4742 4026 4058
+f 4742 4058 4758
+f 4026 3286 3326
+f 4026 3326 4058
+f 3286 2474 2490
+f 3286 2490 3326
+f 2474 1574 1590
+f 2474 1590 2490
+f 1589 2489 2537
+f 1589 2537 1621
+f 2489 3325 3357
+f 2489 3357 2537
+f 3325 4057 4129
+f 3325 4129 3357
+f 4057 4757 4805
+f 4057 4805 4129
+f 4757 5393 5497
+f 4757 5497 4805
+f 5393 6053 6101
+f 5393 6101 5497
+f 6053 6641 6681
+f 6053 6681 6101
+f 6641 7189 7237
+f 6641 7237 6681
+f 7189 7721 7777
+f 7189 7777 7237
+f 7721 8205 8293
+f 7721 8293 7777
+f 8205 8677 8745
+f 8205 8745 8293
+f 8677 9089 9217
+f 8677 9217 8745
+f 9089 9541 9637
+f 9089 9637 9217
+f 9541 9929 10057
+f 9541 10057 9637
+f 9929 10325 10421
+f 9929 10421 10057
+f 10325 10713 10817
+f 10325 10817 10421
+f 10713 11085 11181
+f 10713 11181 10817
+f 11085 11433 11537
+f 11085 11537 11181
+f 11433 11761 11861
+f 11433 11861 11537
+f 11761 12061 12193
+f 11761 12193 11861
+f 12061 12345 12493
+f 12061 12493 12193
+f 12345 12637 12757
+f 12345 12757 12493
+f 12637 12897 13057
+f 12637 13057 12757
+f 12897 13165 13277
+f 12897 13277 13057
+f 13165 13425 13513
+f 13165 13513 13277
+f 13425 13633 13773
+f 13425 13773 13513
+f 13633 13821 13985
+f 13633 13985 13773
+f 13821 14025 14169
+f 13821 14169 13985
+f 14025 14229 14357
+f 14025 14357 14169
+f 14229 14405 14529
+f 14229 14529 14357
+f 14405 14561 14709
+f 14405 14709 14529
+f 14561 14717 14845
+f 14561 14845 14709
+f 14717 14837 14985
+f 14717 14985 14845
+f 14837 14961 15109
+f 14837 15109 14985
+f 14961 15077 15213
+f 14961 15213 15109
+f 15077 15157 15297
+f 15077 15297 15213
+f 15157 15265 15401
+f 15157 15401 15297
+f 15265 15329 15469
+f 15265 15469 15401
+f 15329 15393 15533
+f 15329 15533 15469
+f 15393 15437 15593
+f 15393 15593 15533
+f 15437 15485 15617
+f 15437 15617 15593
+f 15485 15501 15633
+f 15485 15633 15617
+f 15501 15509 15665
+f 15501 15665 15633
+f 15509 15510 15666
+f 15509 15666 15665
+f 15510 15502 15634
+f 15510 15634 15666
+f 15502 15486 15618
+f 15502 15618 15634
+f 15486 15438 15594
+f 15486 15594 15618
+f 15438 15394 15534
+f 15438 15534 15594
+f 15394 15330 15470
+f 15394 15470 15534
+f 15330 15266 15402
+f 15330 15402 15470
+f 15266 15158 15298
+f 15266 15298 15402
+f 15158 15078 15214
+f 15158 15214 15298
+f 15078 14962 15110
+f 15078 15110 15214
+f 14962 14838 14986
+f 14962 14986 15110
+f 14838 14718 14846
+f 14838 14846 14986
+f 14718 14562 14710
+f 14718 14710 14846
+f 14562 14406 14530
+f 14562 14530 14710
+f 14406 14230 14358
+f 14406 14358 14530
+f 14230 14026 14170
+f 14230 14170 14358
+f 14026 13822 13986
+f 14026 13986 14170
+f 13822 13634 13774
+f 13822 13774 13986
+f 13634 13426 13514
+f 13634 13514 13774
+f 13426 13166 13278
+f 13426 13278 13514
+f 13166 12898 13058
+f 13166 13058 13278
+f 12898 12638 12758
+f 12898 12758 13058
+f 12638 12346 12494
+f 12638 12494 12758
+f 12346 12062 12194
+f 12346 12194 12494
+f 12062 11762 11862
+f 12062 11862 12194
+f 11762 11434 11538
+f 11762 11538 11862
+f 11434 11086 11182
+f 11434 11182 11538
+f 11086 10714 10818
+f 11086 10818 11182
+f 10714 10326 10422
+f 10714 10422 10818
+f 10326 9930 10058
+f 10326 10058 10422
+f 9930 9542 9638
+f 9930 9638 10058
+f 9542 9090 9218
+f 9542 9218 9638
+f 9090 8678 8746
+f 9090 8746 9218
+f 8678 8206 8294
+f 8678 8294 8746
+f 8206 7722 7778
+f 8206 7778 8294
+f 7722 7190 7238
+f 7722 7238 7778
+f 7190 6642 6682
+f 7190 6682 7238
+f 6642 6054 6102
+f 6642 6102 6682
+f 6054 5394 5498
+f 6054 5498 6102
+f 5394 4758 4806
+f 5394 4806 5498
+f 4758 4058 4130
+f 4758 4130 4806
+f 4058 3326 3358
+f 4058 3358 4130
+f 3326 2490 2538
+f 3326 2538 3358
+f 2490 1590 1622
+f 2490 1622 2538
+f 1621 2537 2585
+f 1621 2585 1653
+f 2537 3357 3405
+f 2537 3405 2585
+f 3357 4129 4169
+f 3357 4169 3405
+f 4129 4805 4853
+f 4129 4853 4169
+f 4805 5497 5521
+f 4805 5521 4853
+f 5497 6101 6125
+f 5497 6125 5521
+f 6101 6681 6721
+f 6101 6721 6125
+f 6681 7237 7293
+f 6681 7293 6721
+f 7237 7777 7833
+f 7237 7833 7293
+f 7777 8293 8333
+f 7777 8333 7833
+f 8293 8745 8841
+f 8293 8841 8333
+f 8745 9217 9285
+f 8745 9285 8841
+f 9217 9637 9737
+f 9217 9737 9285
+f 9637 10057 10157
+f 9637 10157 9737
+f 10057 10421 10557
+f 10057 10557 10157
+f 10421 10817 10921
+f 10421 10921 10557
+f 10817 11181 11285
+f 10817 11285 10921
+f 11181 11537 11625
+f 11181 11625 11285
+f 11537 11861 11973
+f 11537 11973 11625
+f 11861 12193 12257
+f 11861 12257 11973
+f 12193 12493 12581
+f 12193 12581 12257
+f 12493 12757 12873
+f 12493 12873 12581
+f 12757 13057 13149
+f 12757 13149 12873
+f 13057 13277 13433
+f 13057 13433 13149
+f 13277 13513 13657
+f 13277 13657 13433
+f 13513 13773 13877
+f 13513 13877 13657
+f 13773 13985 14097
+f 13773 14097 13877
+f 13985 14169 14285
+f 13985 14285 14097
+f 14169 14357 14489
+f 14169 14489 14285
+f 14357 14529 14657
+f 14357 14657 14489
+f 14529 14709 14821
+f 14529 14821 14657
+f 14709 14845 14969
+f 14709 14969 14821
+f 14845 14985 15117
+f 14845 15117 14969
+f 14985 15109 15237
+f 14985 15237 15117
+f 15109 15213 15345
+f 15109 15345 15237
+f 15213 15297 15445
+f 15213 15445 15345
+f 15297 15401 15525
+f 15297 15525 15445
+f 15401 15469 15601
+f 15401 15601 15525
+f 15469 15533 15681
+f 15469 15681 15601
+f 15533 15593 15717
+f 15533 15717 15681
+f 15593 15617 15749
+f 15593 15749 15717
+f 15617 15633 15773
+f 15617 15773 15749
+f 15633 15665 15797
+f 15633 15797 15773
+f 15665 15666 15798
+f 15665 15798 15797
+f 15666 15634 15774
+f 15666 15774 15798
+f 15634 15618 15750
+f 15634 15750 15774
+f 15618 15594 15718
+f 15618 15718 15750
+f 15594 15534 15682
+f 15594 15682 15718
+f 15534 15470 15602
+f 15534 15602 15682
+f 15470 15402 15526
+f 15470 15526 15602
+f 15402 15298 15446
+f 15402 15446 15526
+f 15298 15214 15346
+f 15298 15346 15446
+f 15214 15110 15238
+f 15214 15238 15346
+f 15110 14986 15118
+f 15110 15118 15238
+f 14986 14846 14970
+f 14986 14970 15118
+f 14846 14710 14822
+f 14846 14822 14970
+f 14710 14530 14658
+f 14710 14658 14822
+f 14530 14358 14490
+f 14530 14490 14658
+f 14358 14170 14286
+f 14358 14286 14490
+f 14170 13986 14098
+f 14170 14098 14286
+f 13986 13774 13878
+f 13986 13878 14098
+f 13774 13514 13658
+f 13774 13658 13878
+f 13514 13278 13434
+f 13514 13434 13658
+f 13278 13058 13150
+f 13278 13150 13434
+f 13058 12758 12874
+f 13058 12874 13150
+f 12758 12494 12582
+f 12758 12582 12874
+f 12494 12194 12258
+f 12494 12258 12582
+f 12194 11862 11974
+f 12194 11974 12258
+f 11862 11538 11626
+f 11862 11626 11974
+f 11538 11182 11286
+f 11538 11286 11626
+f 11182 10818 10922
+f 11182 10922 11286
+f 10818 10422 10558
+f 10818 10558 10922
+f 10422 10058 10158
+f 10422 10158 10558
+f 10058 9638 9738
+f 10058 9738 10158
+f 9638 9218 9286
+f 9638 9286 9738
+f 9218 8746 8842
+f 9218 8842 9286
+f 8746 8294 8334
+f 8746 8334 8842
+f 8294 7778 7834
+f 8294 7834 8334
+f 7778 7238 7294
+f 7778 7294 7834
+f 7238 6682 6722
+f 7238 6722 7294
+f 6682 6102 6126
+f 6682 6126 6722
+f 6102 5498 5522
+f 6102 5522 6126
+f 5498 4806 4854
+f 5498 4854 5522
+f 4806 4130 4170
+f 4806 4170 4854
+f 4130 3358 3406
+f 4130 3406 4170
+f 3358 2538 2586
+f 3358 2586 3406
+f 2538 1622 1654
+f 2538 1654 2586
+f 1653 2585 2601
+f 1653 2601 1669
+f 2585 3405 3437
+f 2585 3437 2601
+f 3405 4169 4185
+f 3405 4185 3437
+f 4169 4853 4917
+f 4169 4917 4185
+f 4853 5521 5545
+f 4853 5545 4917
+f 5521 6125 6197
+f 5521 6197 5545
+f 6125 6721 6801
+f 6125 6801 6197
+f 6721 7293 7357
+f 6721 7357 6801
+f 7293 7833 7873
+f 7293 7873 7357
+f 7833 8333 8389
+f 7833 8389 7873
+f 8333 8841 8873
+f 8333 8873 8389
+f 8841 9285 9365
+f 8841 9365 8873
+f 9285 9737 9793
+f 9285 9793 9365
+f 9737 10157 10229
+f 9737 10229 9793
+f 10157 10557 10633
+f 10157 10633 10229
+f 10557 10921 11029
+f 10557 11029 10633
+f 10921 11285 11389
+f 10921 11389 11029
+f 11285 11625 11737
+f 11285 11737 11389
+f 11625 11973 12069
+f 11625 12069 11737
+f 11973 12257 12385
+f 11973 12385 12069
+f 12257 12581 12677
+f 12257 12677 12385
+f 12581 12873 12953
+f 12581 12953 12677
+f 12873 13149 13237
+f 12873 13237 12953
+f 13149 13433 13505
+f 13149 13505 13237
+f 13433 13657 13757
+f 13433 13757 13505
+f 13657 13877 13993
+f 13657 13993 13757
+f 13877 14097 14209
+f 13877 14209 13993
+f 14097 14285 14413
+f 14097 14413 14209
+f 14285 14489 14609
+f 14285 14609 14413
+f 14489 14657 14765
+f 14489 14765 14609
+f 14657 14821 14937
+f 14657 14937 14765
+f 14821 14969 15085
+f 14821 15085 14937
+f 14969 15117 15229
+f 14969 15229 15085
+f 15117 15237 15353
+f 15117 15353 15229
+f 15237 15345 15461
+f 15237 15461 15353
+f 15345 15445 15557
+f 15345 15557 15461
+f 15445 15525 15641
+f 15445 15641 15557
+f 15525 15601 15725
+f 15525 15725 15641
+f 15601 15681 15781
+f 15601 15781 15725
+f 15681 15717 15837
+f 15681 15837 15781
+f 15717 15749 15873
+f 15717 15873 15837
+f 15749 15773 15889
+f 15749 15889 15873
+f 15773 15797 15913
+f 15773 15913 15889
+f 15797 15798 15914
+f 15797 15914 15913
+f 15798 15774 15890
+f 15798 15890 15914
+f 15774 15750 15874
+f 15774 15874 15890
+f 15750 15718 15838
+f 15750 15838 15874
+f 15718 15682 15782
+f 15718 15782 15838
+f 15682 15602 15726
+f 15682 15726 15782
+f 15602 15526 15642
+f 15602 15642 15726
+f 15526 15446 15558
+f 15526 15558 15642
+f 15446 15346 15462
+f 15446 15462 15558
+f 15346 15238 15354
+f 15346 15354 15462
+f 15238 15118 15230
+f 15238 15230 15354
+f 15118 14970 15086
+f 15118 15086 15230
+f 14970 14822 14938
+f 14970 14938 15086
+f 14822 14658 14766
+f 14822 14766 14938
+f 14658 14490 14610
+f 14658 14610 14766
+f 14490 14286 14414
+f 14490 14414 14610
+f 14286 14098 14210
+f 14286 14210 14414
+f 14098 13878 13994
+f 14098 13994 14210
+f 13878 13658 13758
+f 13878 13758 13994
+f 13658 13434 13506
+f 13658 13506 13758
+f 13434 13150 13238
+f 13434 13238 13506
+f 13150 12874 12954
+f 13150 12954 13238
+f 12874 12582 12678
+f 12874 12678 12954
+f 12582 12258 12386
+f 12582 12386 12678
+f 12258 11974 12070
+f 12258 12070 12386
+f 11974 11626 11738
+f 11974 11738 12070
+f 11626 11286 11390
+f 11626 11390 11738
+f 11286 10922 11030
+f 11286 11030 11390
+f 10922 10558 10634
+f 10922 10634 11030
+f 10558 10158 10230
+f 10558 10230 10634
+f 10158 9738 9794
+f 10158 9794 10230
+f 9738 9286 9366
+f 9738 9366 9794
+f 9286 8842 8874
+f 9286 8874 9366
+f 8842 8334 8390
+f 8842 8390 8874
+f 8334 7834 7874
+f 8334 7874 8390
+f 7834 7294 7358
+f 7834 7358 7874
+f 7294 6722 6802
+f 7294 6802 7358
+f 6722 6126 6198
+f 6722 6198 6802
+f 6126 5522 5546
+f 6126 5546 6198
+f 5522 4854 4918
+f 5522 4918 5546
+f 4854 4170 4186
+f 4854 4186 4918
+f 4170 3406 3438
+f 4170 3438 4186
+f 3406 2586 2602
+f 3406 2602 3438
+f 2586 1654 1670
+f 2586 1670 2602
+f 1669 2601 2633
+f 1669 2633 1685
+f 2601 3437 3469
+f 2601 3469 2633
+f 3437 4185 4233
+f 3437 4233 3469
+f 4185 4917 4941
+f 4185 4941 4233
+f 4917 5545 5617
+f 4917 5617 4941
+f 5545 6197 6245
+f 5545 6245 5617
+f 6197 6801 6849
+f 6197 6849 6245
+f 6801 7357 7421
+f 6801 7421 6849
+f 7357 7873 7953
+f 7357 7953 7421
+f 7873 8389 8469
+f 7873 8469 7953
+f 8389 8873 8929
+f 8389 8929 8469
+f 8873 9365 9397
+f 8873 9397 8929
+f 9365 9793 9873
+f 9365 9873 9397
+f 9793 10229 10277
+f 9793 10277 9873
+f 10229 10633 10697
+f 10229 10697 10277
+f 10633 11029 11093
+f 10633 11093 10697
+f 11029 11389 11441
+f 11029 11441 11093
+f 11389 11737 11821
+f 11389 11821 11441
+f 11737 12069 12145
+f 11737 12145 11821
+f 12069 12385 12485
+f 12069 12485 12145
+f 12385 12677 12797
+f 12385 12797 12485
+f 12677 12953 13073
+f 12677 13073 12797
+f 12953 13237 13341
+f 12953 13341 13073
+f 13237 13505 13601
+f 13237 13601 13341
+f 13505 13757 13837
+f 13505 13837 13601
+f 13757 13993 14073
+f 13757 14073 13837
+f 13993 14209 14293
+f 13993 14293 14073
+f 14209 14413 14497
+f 14209 14497 14293
+f 14413 14609 14701
+f 14413 14701 14497
+f 14609 14765 14889
+f 14609 14889 14701
+f 14765 14937 15041
+f 14765 15041 14889
+f 14937 15085 15189
+f 14937 15189 15041
+f 15085 15229 15321
+f 15085 15321 15189
+f 15229 15353 15453
+f 15229 15453 15321
+f 15353 15461 15581
+f 15353 15581 15453
+f 15461 15557 15673
+f 15461 15673 15581
+f 15557 15641 15757
+f 15557 15757 15673
+f 15641 15725 15821
+f 15641 15821 15757
+f 15725 15781 15881
+f 15725 15881 15821
+f 15781 15837 15945
+f 15781 15945 15881
+f 15837 15873 15973
+f 15837 15973 15945
+f 15873 15889 16013
+f 15873 16013 15973
+f 15889 15913 16021
+f 15889 16021 16013
+f 15913 15914 16022
+f 15913 16022 16021
+f 15914 15890 16014
+f 15914 16014 16022
+f 15890 15874 15974
+f 15890 15974 16014
+f 15874 15838 15946
+f 15874 15946 15974
+f 15838 15782 15882
+f 15838 15882 15946
+f 15782 15726 15822
+f 15782 15822 15882
+f 15726 15642 15758
+f 15726 15758 15822
+f 15642 15558 15674
+f 15642 15674 15758
+f 15558 15462 15582
+f 15558 15582 15674
+f 15462 15354 15454
+f 15462 15454 15582
+f 15354 15230 15322
+f 15354 15322 15454
+f 15230 15086 15190
+f 15230 15190 15322
+f 15086 14938 15042
+f 15086 15042 15190
+f 14938 14766 14890
+f 14938 14890 15042
+f 14766 14610 14702
+f 14766 14702 14890
+f 14610 14414 14498
+f 14610 14498 14702
+f 14414 14210 14294
+f 14414 14294 14498
+f 14210 13994 14074
+f 14210 14074 14294
+f 13994 13758 13838
+f 13994 13838 14074
+f 13758 13506 13602
+f 13758 13602 13838
+f 13506 13238 13342
+f 13506 13342 13602
+f 13238 12954 13074
+f 13238 13074 13342
+f 12954 12678 12798
+f 12954 12798 13074
+f 12678 12386 12486
+f 12678 12486 12798
+f 12386 12070 12146
+f 12386 12146 12486
+f 12070 11738 11822
+f 12070 11822 12146
+f 11738 11390 11442
+f 11738 11442 11822
+f 11390 11030 11094
+f 11390 11094 11442
+f 11030 10634 10698
+f 11030 10698 11094
+f 10634 10230 10278
+f 10634 10278 10698
+f 10230 9794 9874
+f 10230 9874 10278
+f 9794 9366 9398
+f 9794 9398 9874
+f 9366 8874 8930
+f 9366 8930 9398
+f 8874 8390 8470
+f 8874 8470 8930
+f 8390 7874 7954
+f 8390 7954 8470
+f 7874 7358 7422
+f 7874 7422 7954
+f 7358 6802 6850
+f 7358 6850 7422
+f 6802 6198 6246
+f 6802 6246 6850
+f 6198 5546 5618
+f 6198 5618 6246
+f 5546 4918 4942
+f 5546 4942 5618
+f 4918 4186 4234
+f 4918 4234 4942
+f 4186 3438 3470
+f 4186 3470 4234
+f 3438 2602 2634
+f 3438 2634 3470
+f 2602 1670 1686
+f 2602 1686 2634
+f 1685 2633 2665
+f 1685 2665 1725
+f 2633 3469 3485
+f 2633 3485 2665
+f 3469 4233 4249
+f 3469 4249 3485
+f 4233 4941 4989
+f 4233 4989 4249
+f 4941 5617 5657
+f 4941 5657 4989
+f 5617 6245 6293
+f 5617 6293 5657
+f 6245 6849 6873
+f 6245 6873 6293
+f 6849 7421 7437
+f 6849 7437 6873
+f 7421 7953 7993
+f 7421 7993 7437
+f 7953 8469 8517
+f 7953 8517 7993
+f 8469 8929 9009
+f 8469 9009 8517
+f 8929 9397 9453
+f 8929 9453 9009
+f 9397 9873 9905
+f 9397 9905 9453
+f 9873 10277 10357
+f 9873 10357 9905
+f 10277 10697 10745
+f 10277 10745 10357
+f 10697 11093 11141
+f 10697 11141 10745
+f 11093 11441 11529
+f 11093 11529 11141
+f 11441 11821 11869
+f 11441 11869 11529
+f 11821 12145 12225
+f 11821 12225 11869
+f 12145 12485 12541
+f 12145 12541 12225
+f 12485 12797 12849
+f 12485 12849 12541
+f 12797 13073 13141
+f 12797 13141 12849
+f 13073 13341 13441
+f 13073 13441 13141
+f 13341 13601 13681
+f 13341 13681 13441
+f 13601 13837 13941
+f 13601 13941 13681
+f 13837 14073 14161
+f 13837 14161 13941
+f 14073 14293 14381
+f 14073 14381 14161
+f 14293 14497 14593
+f 14293 14593 14381
+f 14497 14701 14781
+f 14497 14781 14593
+f 14701 14889 14945
+f 14701 14945 14781
+f 14889 15041 15133
+f 14889 15133 14945
+f 15041 15189 15281
+f 15041 15281 15133
+f 15189 15321 15421
+f 15189 15421 15281
+f 15321 15453 15541
+f 15321 15541 15421
+f 15453 15581 15649
+f 15453 15649 15541
+f 15581 15673 15765
+f 15581 15765 15649
+f 15673 15757 15857
+f 15673 15857 15765
+f 15757 15821 15921
+f 15757 15921 15857
+f 15821 15881 15981
+f 15821 15981 15921
+f 15881 15945 16037
+f 15881 16037 15981
+f 15945 15973 16081
+f 15945 16081 16037
+f 15973 16013 16097
+f 15973 16097 16081
+f 16013 16021 16105
+f 16013 16105 16097
+f 16021 16022 16106
+f 16021 16106 16105
+f 16022 16014 16098
+f 16022 16098 16106
+f 16014 15974 16082
+f 16014 16082 16098
+f 15974 15946 16038
+f 15974 16038 16082
+f 15946 15882 15982
+f 15946 15982 16038
+f 15882 15822 15922
+f 15882 15922 15982
+f 15822 15758 15858
+f 15822 15858 15922
+f 15758 15674 15766
+f 15758 15766 15858
+f 15674 15582 15650
+f 15674 15650 15766
+f 15582 15454 15542
+f 15582 15542 15650
+f 15454 15322 15422
+f 15454 15422 15542
+f 15322 15190 15282
+f 15322 15282 15422
+f 15190 15042 15134
+f 15190 15134 15282
+f 15042 14890 14946
+f 15042 14946 15134
+f 14890 14702 14782
+f 14890 14782 14946
+f 14702 14498 14594
+f 14702 14594 14782
+f 14498 14294 14382
+f 14498 14382 14594
+f 14294 14074 14162
+f 14294 14162 14382
+f 14074 13838 13942
+f 14074 13942 14162
+f 13838 13602 13682
+f 13838 13682 13942
+f 13602 13342 13442
+f 13602 13442 13682
+f 13342 13074 13142
+f 13342 13142 13442
+f 13074 12798 12850
+f 13074 12850 13142
+f 12798 12486 12542
+f 12798 12542 12850
+f 12486 12146 12226
+f 12486 12226 12542
+f 12146 11822 11870
+f 12146 11870 12226
+f 11822 11442 11530
+f 11822 11530 11870
+f 11442 11094 11142
+f 11442 11142 11530
+f 11094 10698 10746
+f 11094 10746 11142
+f 10698 10278 10358
+f 10698 10358 10746
+f 10278 9874 9906
+f 10278 9906 10358
+f 9874 9398 9454
+f 9874 9454 9906
+f 9398 8930 9010
+f 9398 9010 9454
+f 8930 8470 8518
+f 8930 8518 9010
+f 8470 7954 7994
+f 8470 7994 8518
+f 7954 7422 7438
+f 7954 7438 7994
+f 7422 6850 6874
+f 7422 6874 7438
+f 6850 6246 6294
+f 6850 6294 6874
+f 6246 5618 5658
+f 6246 5658 6294
+f 5618 4942 4990
+f 5618 4990 5658
+f 4942 4234 4250
+f 4942 4250 4990
+f 4234 3470 3486
+f 4234 3486 4250
+f 3470 2634 2666
+f 3470 2666 3486
+f 2634 1686 1726
+f 2634 1726 2666
+f 1725 2665 2689
+f 1725 2689 1741
+f 2665 3485 3525
+f 2665 3525 2689
+f 3485 4249 4305
+f 3485 4305 3525
+f 4249 4989 5029
+f 4249 5029 4305
+f 4989 5657 5697
+f 4989 5697 5029
+f 5657 6293 6325
+f 5657 6325 5697
+f 6293 6873 6945
+f 6293 6945 6325
+f 6873 7437 7517
+f 6873 7517 6945
+f 7437 7993 8033
+f 7437 8033 7517
+f 7993 8517 8557
+f 7993 8557 8033
+f 8517 9009 9057
+f 8517 9057 8557
+f 9009 9453 9533
+f 9009 9533 9057
+f 9453 9905 9969
+f 9453 9969 9533
+f 9905 10357 10405
+f 9905 10405 9969
+f 10357 10745 10809
+f 10357 10809 10405
+f 10745 11141 11213
+f 10745 11213 10809
+f 11141 11529 11569
+f 11141 11569 11213
+f 11529 11869 11949
+f 11529 11949 11569
+f 11869 12225 12265
+f 11869 12265 11949
+f 12225 12541 12605
+f 12225 12605 12265
+f 12541 12849 12905
+f 12541 12905 12605
+f 12849 13141 13205
+f 12849 13205 12905
+f 13141 13441 13481
+f 13141 13481 13205
+f 13441 13681 13765
+f 13441 13765 13481
+f 13681 13941 14001
+f 13681 14001 13765
+f 13941 14161 14237
+f 13941 14237 14001
+f 14161 14381 14457
+f 14161 14457 14237
+f 14381 14593 14669
+f 14381 14669 14457
+f 14593 14781 14869
+f 14593 14869 14669
+f 14781 14945 15033
+f 14781 15033 14869
+f 14945 15133 15205
+f 14945 15205 15033
+f 15133 15281 15369
+f 15133 15369 15205
+f 15281 15421 15493
+f 15281 15493 15369
+f 15421 15541 15625
+f 15421 15625 15493
+f 15541 15649 15733
+f 15541 15733 15625
+f 15649 15765 15845
+f 15649 15845 15733
+f 15765 15857 15929
+f 15765 15929 15845
+f 15857 15921 15997
+f 15857 15997 15929
+f 15921 15981 16065
+f 15921 16065 15997
+f 15981 16037 16113
+f 15981 16113 16065
+f 16037 16081 16157
+f 16037 16157 16113
+f 16081 16097 16173
+f 16081 16173 16157
+f 16097 16105 16197
+f 16097 16197 16173
+f 16105 16106 16198
+f 16105 16198 16197
+f 16106 16098 16174
+f 16106 16174 16198
+f 16098 16082 16158
+f 16098 16158 16174
+f 16082 16038 16114
+f 16082 16114 16158
+f 16038 15982 16066
+f 16038 16066 16114
+f 15982 15922 15998
+f 15982 15998 16066
+f 15922 15858 15930
+f 15922 15930 15998
+f 15858 15766 15846
+f 15858 15846 15930
+f 15766 15650 15734
+f 15766 15734 15846
+f 15650 15542 15626
+f 15650 15626 15734
+f 15542 15422 15494
+f 15542 15494 15626
+f 15422 15282 15370
+f 15422 15370 15494
+f 15282 15134 15206
+f 15282 15206 15370
+f 15134 14946 15034
+f 15134 15034 15206
+f 14946 14782 14870
+f 14946 14870 15034
+f 14782 14594 14670
+f 14782 14670 14870
+f 14594 14382 14458
+f 14594 14458 14670
+f 14382 14162 14238
+f 14382 14238 14458
+f 14162 13942 14002
+f 14162 14002 14238
+f 13942 13682 13766
+f 13942 13766 14002
+f 13682 13442 13482
+f 13682 13482 13766
+f 13442 13142 13206
+f 13442 13206 13482
+f 13142 12850 12906
+f 13142 12906 13206
+f 12850 12542 12606
+f 12850 12606 12906
+f 12542 12226 12266
+f 12542 12266 12606
+f 12226 11870 11950
+f 12226 11950 12266
+f 11870 11530 11570
+f 11870 11570 11950
+f 11530 11142 11214
+f 11530 11214 11570
+f 11142 10746 10810
+f 11142 10810 11214
+f 10746 10358 10406
+f 10746 10406 10810
+f 10358 9906 9970
+f 10358 9970 10406
+f 9906 9454 9534
+f 9906 9534 9970
+f 9454 9010 9058
+f 9454 9058 9534
+f 9010 8518 8558
+f 9010 8558 9058
+f 8518 7994 8034
+f 8518 8034 8558
+f 7994 7438 7518
+f 7994 7518 8034
+f 7438 6874 6946
+f 7438 6946 7518
+f 6874 6294 6326
+f 6874 6326 6946
+f 6294 5658 5698
+f 6294 5698 6326
+f 5658 4990 5030
+f 5658 5030 5698
+f 4990 4250 4306
+f 4990 4306 5030
+f 4250 3486 3526
+f 4250 3526 4306
+f 3486 2666 2690
+f 3486 2690 3526
+f 2666 1726 1742
+f 2666 1742 2690
+f 1741 2689 2705
+f 1741 2705 1757
+f 2689 3525 3541
+f 2689 3541 2705
+f 3525 4305 4337
+f 3525 4337 3541
+f 4305 5029 5061
+f 4305 5061 4337
+f 5029 5697 5729
+f 5029 5729 5061
+f 5697 6325 6373
+f 5697 6373 5729
+f 6325 6945 6969
+f 6325 6969 6373
+f 6945 7517 7549
+f 6945 7549 6969
+f 7517 8033 8089
+f 7517 8089 7549
+f 8033 8557 8589
+f 8033 8589 8089
+f 8557 9057 9097
+f 8557 9097 8589
+f 9057 9533 9581
+f 9057 9581 9097
+f 9533 9969 10025
+f 9533 10025 9581
+f 9969 10405 10453
+f 9969 10453 10025
+f 10405 10809 10873
+f 10405 10873 10453
+f 10809 11213 11253
+f 10809 11253 10873
+f 11213 11569 11633
+f 11213 11633 11253
+f 11569 11949 11989
+f 11569 11989 11633
+f 11949 12265 12313
+f 11949 12313 11989
+f 12265 12605 12661
+f 12265 12661 12313
+f 12605 12905 12961
+f 12605 12961 12661
+f 12905 13205 13269
+f 12905 13269 12961
+f 13205 13481 13545
+f 13205 13545 13269
+f 13481 13765 13805
+f 13481 13805 13545
+f 13765 14001 14049
+f 13765 14049 13805
+f 14001 14237 14301
+f 14001 14301 14049
+f 14237 14457 14505
+f 14237 14505 14301
+f 14457 14669 14725
+f 14457 14725 14505
+f 14669 14869 14905
+f 14669 14905 14725
+f 14869 15033 15093
+f 14869 15093 14905
+f 15033 15205 15273
+f 15033 15273 15093
+f 15205 15369 15429
+f 15205 15429 15273
+f 15369 15493 15565
+f 15369 15565 15429
+f 15493 15625 15697
+f 15493 15697 15565
+f 15625 15733 15805
+f 15625 15805 15697
+f 15733 15845 15905
+f 15733 15905 15805
+f 15845 15929 15989
+f 15845 15989 15905
+f 15929 15997 16073
+f 15929 16073 15989
+f 15997 16065 16137
+f 15997 16137 16073
+f 16065 16113 16181
+f 16065 16181 16137
+f 16113 16157 16221
+f 16113 16221 16181
+f 16157 16173 16249
+f 16157 16249 16221
+f 16173 16197 16257
+f 16173 16257 16249
+f 16197 16198 16258
+f 16197 16258 16257
+f 16198 16174 16250
+f 16198 16250 16258
+f 16174 16158 16222
+f 16174 16222 16250
+f 16158 16114 16182
+f 16158 16182 16222
+f 16114 16066 16138
+f 16114 16138 16182
+f 16066 15998 16074
+f 16066 16074 16138
+f 15998 15930 15990
+f 15998 15990 16074
+f 15930 15846 15906
+f 15930 15906 15990
+f 15846 15734 15806
+f 15846 15806 15906
+f 15734 15626 15698
+f 15734 15698 15806
+f 15626 15494 15566
+f 15626 15566 15698
+f 15494 15370 15430
+f 15494 15430 15566
+f 15370 15206 15274
+f 15370 15274 15430
+f 15206 15034 15094
+f 15206 15094 15274
+f 15034 14870 14906
+f 15034 14906 15094
+f 14870 14670 14726
+f 14870 14726 14906
+f 14670 14458 14506
+f 14670 14506 14726
+f 14458 14238 14302
+f 14458 14302 14506
+f 14238 14002 14050
+f 14238 14050 14302
+f 14002 13766 13806
+f 14002 13806 14050
+f 13766 13482 13546
+f 13766 13546 13806
+f 13482 13206 13270
+f 13482 13270 13546
+f 13206 12906 12962
+f 13206 12962 13270
+f 12906 12606 12662
+f 12906 12662 12962
+f 12606 12266 12314
+f 12606 12314 12662
+f 12266 11950 11990
+f 12266 11990 12314
+f 11950 11570 11634
+f 11950 11634 11990
+f 11570 11214 11254
+f 11570 11254 11634
+f 11214 10810 10874
+f 11214 10874 11254
+f 10810 10406 10454
+f 10810 10454 10874
+f 10406 9970 10026
+f 10406 10026 10454
+f 9970 9534 9582
+f 9970 9582 10026
+f 9534 9058 9098
+f 9534 9098 9582
+f 9058 8558 8590
+f 9058 8590 9098
+f 8558 8034 8090
+f 8558 8090 8590
+f 8034 7518 7550
+f 8034 7550 8090
+f 7518 6946 6970
+f 7518 6970 7550
+f 6946 6326 6374
+f 6946 6374 6970
+f 6326 5698 5730
+f 6326 5730 6374
+f 5698 5030 5062
+f 5698 5062 5730
+f 5030 4306 4338
+f 5030 4338 5062
+f 4306 3526 3542
+f 4306 3542 4338
+f 3526 2690 2706
+f 3526 2706 3542
+f 2690 1742 1758
+f 2690 1758 2706
+f 1757 2705 2737
+f 1757 2737 1789
+f 2705 3541 3605
+f 2705 3605 2737
+f 3541 4337 4385
+f 3541 4385 3605
+f 4337 5061 5101
+f 4337 5101 4385
+f 5061 5729 5793
+f 5061 5793 5101
+f 5729 6373 6429
+f 5729 6429 5793
+f 6373 6969 7033
+f 6373 7033 6429
+f 6969 7549 7597
+f 6969 7597 7033
+f 7549 8089 8145
+f 7549 8145 7597
+f 8089 8589 8661
+f 8089 8661 8145
+f 8589 9097 9145
+f 8589 9145 8661
+f 9097 9581 9629
+f 9097 9629 9145
+f 9581 10025 10097
+f 9581 10097 9629
+f 10025 10453 10493
+f 10025 10493 10097
+f 10453 10873 10913
+f 10453 10913 10493
+f 10873 11253 11325
+f 10873 11325 10913
+f 11253 11633 11689
+f 11253 11689 11325
+f 11633 11989 12045
+f 11633 12045 11689
+f 11989 12313 12401
+f 11989 12401 12045
+f 12313 12661 12701
+f 12313 12701 12401
+f 12661 12961 13025
+f 12661 13025 12701
+f 12961 13269 13309
+f 12961 13309 13025
+f 13269 13545 13593
+f 13269 13593 13309
+f 13545 13805 13853
+f 13545 13853 13593
+f 13805 14049 14113
+f 13805 14113 13853
+f 14049 14301 14333
+f 14049 14333 14113
+f 14301 14505 14569
+f 14301 14569 14333
+f 14505 14725 14773
+f 14505 14773 14569
+f 14725 14905 14977
+f 14725 14977 14773
+f 14905 15093 15149
+f 14905 15149 14977
+f 15093 15273 15313
+f 15093 15313 15149
+f 15273 15429 15477
+f 15273 15477 15313
+f 15429 15565 15609
+f 15429 15609 15477
+f 15565 15697 15741
+f 15565 15741 15609
+f 15697 15805 15865
+f 15697 15865 15741
+f 15805 15905 15965
+f 15805 15965 15865
+f 15905 15989 16045
+f 15905 16045 15965
+f 15989 16073 16129
+f 15989 16129 16045
+f 16073 16137 16189
+f 16073 16189 16129
+f 16137 16181 16241
+f 16137 16241 16189
+f 16181 16221 16273
+f 16181 16273 16241
+f 16221 16249 16301
+f 16221 16301 16273
+f 16249 16257 16317
+f 16249 16317 16301
+f 16257 16258 16318
+f 16257 16318 16317
+f 16258 16250 16302
+f 16258 16302 16318
+f 16250 16222 16274
+f 16250 16274 16302
+f 16222 16182 16242
+f 16222 16242 16274
+f 16182 16138 16190
+f 16182 16190 16242
+f 16138 16074 16130
+f 16138 16130 16190
+f 16074 15990 16046
+f 16074 16046 16130
+f 15990 15906 15966
+f 15990 15966 16046
+f 15906 15806 15866
+f 15906 15866 15966
+f 15806 15698 15742
+f 15806 15742 15866
+f 15698 15566 15610
+f 15698 15610 15742
+f 15566 15430 15478
+f 15566 15478 15610
+f 15430 15274 15314
+f 15430 15314 15478
+f 15274 15094 15150
+f 15274 15150 15314
+f 15094 14906 14978
+f 15094 14978 15150
+f 14906 14726 14774
+f 14906 14774 14978
+f 14726 14506 14570
+f 14726 14570 14774
+f 14506 14302 14334
+f 14506 14334 14570
+f 14302 14050 14114
+f 14302 14114 14334
+f 14050 13806 13854
+f 14050 13854 14114
+f 13806 13546 13594
+f 13806 13594 13854
+f 13546 13270 13310
+f 13546 13310 13594
+f 13270 12962 13026
+f 13270 13026 13310
+f 12962 12662 12702
+f 12962 12702 13026
+f 12662 12314 12402
+f 12662 12402 12702
+f 12314 11990 12046
+f 12314 12046 12402
+f 11990 11634 11690
+f 11990 11690 12046
+f 11634 11254 11326
+f 11634 11326 11690
+f 11254 10874 10914
+f 11254 10914 11326
+f 10874 10454 10494
+f 10874 10494 10914
+f 10454 10026 10098
+f 10454 10098 10494
+f 10026 9582 9630
+f 10026 9630 10098
+f 9582 9098 9146
+f 9582 9146 9630
+f 9098 8590 8662
+f 9098 8662 9146
+f 8590 8090 8146
+f 8590 8146 8662
+f 8090 7550 7598
+f 8090 7598 8146
+f 7550 6970 7034
+f 7550 7034 7598
+f 6970 6374 6430
+f 6970 6430 7034
+f 6374 5730 5794
+f 6374 5794 6430
+f 5730 5062 5102
+f 5730 5102 5794
+f 5062 4338 4386
+f 5062 4386 5102
+f 4338 3542 3606
+f 4338 3606 4386
+f 3542 2706 2738
+f 3542 2738 3606
+f 2706 1758 1790
+f 2706 1790 2738
+f 1789 2737 2745
+f 1789 2745 1797
+f 2737 3605 3629
+f 2737 3629 2745
+f 3605 4385 4393
+f 3605 4393 3629
+f 4385 5101 5125
+f 4385 5125 4393
+f 5101 5793 5817
+f 5101 5817 5125
+f 5793 6429 6445
+f 5793 6445 5817
+f 6429 7033 7041
+f 6429 7041 6445
+f 7033 7597 7605
+f 7033 7605 7041
+f 7597 8145 8161
+f 7597 8161 7605
+f 8145 8661 8693
+f 8145 8693 8161
+f 8661 9145 9177
+f 8661 9177 8693
+f 9145 9629 9653
+f 9145 9653 9177
+f 9629 10097 10113
+f 9629 10113 9653
+f 10097 10493 10541
+f 10097 10541 10113
+f 10493 10913 10953
+f 10493 10953 10541
+f 10913 11325 11357
+f 10913 11357 10953
+f 11325 11689 11705
+f 11325 11705 11357
+f 11689 12045 12085
+f 11689 12085 11705
+f 12045 12401 12425
+f 12045 12425 12085
+f 12401 12701 12741
+f 12401 12741 12425
+f 12701 13025 13065
+f 12701 13065 12741
+f 13025 13309 13349
+f 13025 13349 13065
+f 13309 13593 13641
+f 13309 13641 13349
+f 13593 13853 13909
+f 13593 13909 13641
+f 13853 14113 14145
+f 13853 14145 13909
+f 14113 14333 14389
+f 14113 14389 14145
+f 14333 14569 14617
+f 14333 14617 14389
+f 14569 14773 14813
+f 14569 14813 14617
+f 14773 14977 15017
+f 14773 15017 14813
+f 14977 15149 15197
+f 14977 15197 15017
+f 15149 15313 15377
+f 15149 15377 15197
+f 15313 15477 15517
+f 15313 15517 15377
+f 15477 15609 15657
+f 15477 15657 15517
+f 15609 15741 15789
+f 15609 15789 15657
+f 15741 15865 15897
+f 15741 15897 15789
+f 15865 15965 16005
+f 15865 16005 15897
+f 15965 16045 16089
+f 15965 16089 16005
+f 16045 16129 16165
+f 16045 16165 16089
+f 16129 16189 16233
+f 16129 16233 16165
+f 16189 16241 16289
+f 16189 16289 16233
+f 16241 16273 16325
+f 16241 16325 16289
+f 16273 16301 16345
+f 16273 16345 16325
+f 16301 16317 16361
+f 16301 16361 16345
+f 16317 16318 16362
+f 16317 16362 16361
+f 16318 16302 16346
+f 16318 16346 16362
+f 16302 16274 16326
+f 16302 16326 16346
+f 16274 16242 16290
+f 16274 16290 16326
+f 16242 16190 16234
+f 16242 16234 16290
+f 16190 16130 16166
+f 16190 16166 16234
+f 16130 16046 16090
+f 16130 16090 16166
+f 16046 15966 16006
+f 16046 16006 16090
+f 15966 15866 15898
+f 15966 15898 16006
+f 15866 15742 15790
+f 15866 15790 15898
+f 15742 15610 15658
+f 15742 15658 15790
+f 15610 15478 15518
+f 15610 15518 15658
+f 15478 15314 15378
+f 15478 15378 15518
+f 15314 15150 15198
+f 15314 15198 15378
+f 15150 14978 15018
+f 15150 15018 15198
+f 14978 14774 14814
+f 14978 14814 15018
+f 14774 14570 14618
+f 14774 14618 14814
+f 14570 14334 14390
+f 14570 14390 14618
+f 14334 14114 14146
+f 14334 14146 14390
+f 14114 13854 13910
+f 14114 13910 14146
+f 13854 13594 13642
+f 13854 13642 13910
+f 13594 13310 13350
+f 13594 13350 13642
+f 13310 13026 13066
+f 13310 13066 13350
+f 13026 12702 12742
+f 13026 12742 13066
+f 12702 12402 12426
+f 12702 12426 12742
+f 12402 12046 12086
+f 12402 12086 12426
+f 12046 11690 11706
+f 12046 11706 12086
+f 11690 11326 11358
+f 11690 11358 11706
+f 11326 10914 10954
+f 11326 10954 11358
+f 10914 10494 10542
+f 10914 10542 10954
+f 10494 10098 10114
+f 10494 10114 10542
+f 10098 9630 9654
+f 10098 9654 10114
+f 9630 9146 9178
+f 9630 9178 9654
+f 9146 8662 8694
+f 9146 8694 9178
+f 8662 8146 8162
+f 8662 8162 8694
+f 8146 7598 7606
+f 8146 7606 8162
+f 7598 7034 7042
+f 7598 7042 7606
+f 7034 6430 6446
+f 7034 6446 7042
+f 6430 5794 5818
+f 6430 5818 6446
+f 5794 5102 5126
+f 5794 5126 5818
+f 5102 4386 4394
+f 5102 4394 5126
+f 4386 3606 3630
+f 4386 3630 4394
+f 3606 2738 2746
+f 3606 2746 3630
+f 2738 1790 1798
+f 2738 1798 2746
+f 1797 2745 2769
+f 1797 2769 1805
+f 2745 3629 3637
+f 2745 3637 2769
+f 3629 4393 4401
+f 3629 4401 3637
+f 4393 5125 5141
+f 4393 5141 4401
+f 5125 5817 5825
+f 5125 5825 5141
+f 5817 6445 6461
+f 5817 6461 5825
+f 6445 7041 7049
+f 6445 7049 6461
+f 7041 7605 7637
+f 7041 7637 7049
+f 7605 8161 8185
+f 7605 8185 7637
+f 8161 8693 8709
+f 8161 8709 8185
+f 8693 9177 9209
+f 8693 9209 8709
+f 9177 9653 9669
+f 9177 9669 9209
+f 9653 10113 10137
+f 9653 10137 9669
+f 10113 10541 10573
+f 10113 10573 10137
+f 10541 10953 10969
+f 10541 10969 10573
+f 10953 11357 11373
+f 10953 11373 10969
+f 11357 11705 11753
+f 11357 11753 11373
+f 11705 12085 12101
+f 11705 12101 11753
+f 12085 12425 12441
+f 12085 12441 12101
+f 12425 12741 12789
+f 12425 12789 12441
+f 12741 13065 13081
+f 12741 13081 12789
+f 13065 13349 13389
+f 13065 13389 13081
+f 13349 13641 13665
+f 13349 13665 13389
+f 13641 13909 13933
+f 13641 13933 13665
+f 13909 14145 14185
+f 13909 14185 13933
+f 14145 14389 14429
+f 14145 14429 14185
+f 14389 14617 14633
+f 14389 14633 14429
+f 14617 14813 14853
+f 14617 14853 14633
+f 14813 15017 15049
+f 14813 15049 14853
+f 15017 15197 15221
+f 15017 15221 15049
+f 15197 15377 15385
+f 15197 15385 15221
+f 15377 15517 15549
+f 15377 15549 15385
+f 15517 15657 15689
+f 15517 15689 15549
+f 15657 15789 15813
+f 15657 15813 15689
+f 15789 15897 15937
+f 15789 15937 15813
+f 15897 16005 16029
+f 15897 16029 15937
+f 16005 16089 16121
+f 16005 16121 16029
+f 16089 16165 16205
+f 16089 16205 16121
+f 16165 16233 16265
+f 16165 16265 16205
+f 16233 16289 16309
+f 16233 16309 16265
+f 16289 16325 16353
+f 16289 16353 16309
+f 16325 16345 16381
+f 16325 16381 16353
+f 16345 16361 16389
+f 16345 16389 16381
+f 16361 16362 16390
+f 16361 16390 16389
+f 16362 16346 16382
+f 16362 16382 16390
+f 16346 16326 16354
+f 16346 16354 16382
+f 16326 16290 16310
+f 16326 16310 16354
+f 16290 16234 16266
+f 16290 16266 16310
+f 16234 16166 16206
+f 16234 16206 16266
+f 16166 16090 16122
+f 16166 16122 16206
+f 16090 16006 16030
+f 16090 16030 16122
+f 16006 15898 15938
+f 16006 15938 16030
+f 15898 15790 15814
+f 15898 15814 15938
+f 15790 15658 15690
+f 15790 15690 15814
+f 15658 15518 15550
+f 15658 15550 15690
+f 15518 15378 15386
+f 15518 15386 15550
+f 15378 15198 15222
+f 15378 15222 15386
+f 15198 15018 15050
+f 15198 15050 15222
+f 15018 14814 14854
+f 15018 14854 15050
+f 14814 14618 14634
+f 14814 14634 14854
+f 14618 14390 14430
+f 14618 14430 14634
+f 14390 14146 14186
+f 14390 14186 14430
+f 14146 13910 13934
+f 14146 13934 14186
+f 13910 13642 13666
+f 13910 13666 13934
+f 13642 13350 13390
+f 13642 13390 13666
+f 13350 13066 13082
+f 13350 13082 13390
+f 13066 12742 12790
+f 13066 12790 13082
+f 12742 12426 12442
+f 12742 12442 12790
+f 12426 12086 12102
+f 12426 12102 12442
+f 12086 11706 11754
+f 12086 11754 12102
+f 11706 11358 11374
+f 11706 11374 11754
+f 11358 10954 10970
+f 11358 10970 11374
+f 10954 10542 10574
+f 10954 10574 10970
+f 10542 10114 10138
+f 10542 10138 10574
+f 10114 9654 9670
+f 10114 9670 10138
+f 9654 9178 9210
+f 9654 9210 9670
+f 9178 8694 8710
+f 9178 8710 9210
+f 8694 8162 8186
+f 8694 8186 8710
+f 8162 7606 7638
+f 8162 7638 8186
+f 7606 7042 7050
+f 7606 7050 7638
+f 7042 6446 6462
+f 7042 6462 7050
+f 6446 5818 5826
+f 6446 5826 6462
+f 5818 5126 5142
+f 5818 5142 5826
+f 5126 4394 4402
+f 5126 4402 5142
+f 4394 3630 3638
+f 4394 3638 4402
+f 3630 2746 2770
+f 3630 2770 3638
+f 2746 1798 1806
+f 2746 1806 2770
+f 1805 2769 2777
+f 1805 2777 1829
+f 2769 3637 3645
+f 2769 3645 2777
+f 3637 4401 4433
+f 3637 4433 3645
+f 4401 5141 5149
+f 4401 5149 4433
+f 5141 5825 5833
+f 5141 5833 5149
+f 5825 6461 6469
+f 5825 6469 5833
+f 6461 7049 7057
+f 6461 7057 6469
+f 7049 7637 7645
+f 7049 7645 7057
+f 7637 8185 8193
+f 7637 8193 7645
+f 8185 8709 8725
+f 8185 8725 8193
+f 8709 9209 9233
+f 8709 9233 8725
+f 9209 9669 9685
+f 9209 9685 9233
+f 9669 10137 10145
+f 9669 10145 9685
+f 10137 10573 10597
+f 10137 10597 10145
+f 10573 10969 10985
+f 10573 10985 10597
+f 10969 11373 11381
+f 10969 11381 10985
+f 11373 11753 11769
+f 11373 11769 11381
+f 11753 12101 12125
+f 11753 12125 11769
+f 12101 12441 12465
+f 12101 12465 12125
+f 12441 12789 12805
+f 12441 12805 12465
+f 12789 13081 13097
+f 12789 13097 12805
+f 13081 13389 13413
+f 13081 13413 13097
+f 13389 13665 13673
+f 13389 13673 13413
+f 13665 13933 13949
+f 13665 13949 13673
+f 13933 14185 14193
+f 13933 14193 13949
+f 14185 14429 14445
+f 14185 14445 14193
+f 14429 14633 14649
+f 14429 14649 14445
+f 14633 14853 14877
+f 14633 14877 14649
+f 14853 15049 15057
+f 14853 15057 14877
+f 15049 15221 15253
+f 15049 15253 15057
+f 15221 15385 15409
+f 15221 15409 15253
+f 15385 15549 15573
+f 15385 15573 15409
+f 15549 15689 15705
+f 15549 15705 15573
+f 15689 15813 15829
+f 15689 15829 15705
+f 15813 15937 15953
+f 15813 15953 15829
+f 15937 16029 16053
+f 15937 16053 15953
+f 16029 16121 16145
+f 16029 16145 16053
+f 16121 16205 16213
+f 16121 16213 16145
+f 16205 16265 16281
+f 16205 16281 16213
+f 16265 16309 16333
+f 16265 16333 16281
+f 16309 16353 16369
+f 16309 16369 16333
+f 16353 16381 16397
+f 16353 16397 16369
+f 16381 16389 16409
+f 16381 16409 16397
+f 16389 16390 16410
+f 16389 16410 16409
+f 16390 16382 16398
+f 16390 16398 16410
+f 16382 16354 16370
+f 16382 16370 16398
+f 16354 16310 16334
+f 16354 16334 16370
+f 16310 16266 16282
+f 16310 16282 16334
+f 16266 16206 16214
+f 16266 16214 16282
+f 16206 16122 16146
+f 16206 16146 16214
+f 16122 16030 16054
+f 16122 16054 16146
+f 16030 15938 15954
+f 16030 15954 16054
+f 15938 15814 15830
+f 15938 15830 15954
+f 15814 15690 15706
+f 15814 15706 15830
+f 15690 15550 15574
+f 15690 15574 15706
+f 15550 15386 15410
+f 15550 15410 15574
+f 15386 15222 15254
+f 15386 15254 15410
+f 15222 15050 15058
+f 15222 15058 15254
+f 15050 14854 14878
+f 15050 14878 15058
+f 14854 14634 14650
+f 14854 14650 14878
+f 14634 14430 14446
+f 14634 14446 14650
+f 14430 14186 14194
+f 14430 14194 14446
+f 14186 13934 13950
+f 14186 13950 14194
+f 13934 13666 13674
+f 13934 13674 13950
+f 13666 13390 13414
+f 13666 13414 13674
+f 13390 13082 13098
+f 13390 13098 13414
+f 13082 12790 12806
+f 13082 12806 13098
+f 12790 12442 12466
+f 12790 12466 12806
+f 12442 12102 12126
+f 12442 12126 12466
+f 12102 11754 11770
+f 12102 11770 12126
+f 11754 11374 11382
+f 11754 11382 11770
+f 11374 10970 10986
+f 11374 10986 11382
+f 10970 10574 10598
+f 10970 10598 10986
+f 10574 10138 10146
+f 10574 10146 10598
+f 10138 9670 9686
+f 10138 9686 10146
+f 9670 9210 9234
+f 9670 9234 9686
+f 9210 8710 8726
+f 9210 8726 9234
+f 8710 8186 8194
+f 8710 8194 8726
+f 8186 7638 7646
+f 8186 7646 8194
+f 7638 7050 7058
+f 7638 7058 7646
+f 7050 6462 6470
+f 7050 6470 7058
+f 6462 5826 5834
+f 6462 5834 6470
+f 5826 5142 5150
+f 5826 5150 5834
+f 5142 4402 4434
+f 5142 4434 5150
+f 4402 3638 3646
+f 4402 3646 4434
+f 3638 2770 2778
+f 3638 2778 3646
+f 2770 1806 1830
+f 2770 1830 2778
+f 1829 2777 2783
+f 1829 2783 1835
+f 2777 3645 3651
+f 2777 3651 2783
+f 3645 4433 4447
+f 3645 4447 3651
+f 4433 5149 5163
+f 4433 5163 4447
+f 5149 5833 5839
+f 5149 5839 5163
+f 5833 6469 6475
+f 5833 6475 5839
+f 6469 7057 7071
+f 6469 7071 6475
+f 7057 7645 7651
+f 7057 7651 7071
+f 7645 8193 8199
+f 7645 8199 7651
+f 8193 8725 8731
+f 8193 8731 8199
+f 8725 9233 9239
+f 8725 9239 8731
+f 9233 9685 9691
+f 9233 9691 9239
+f 9685 10145 10151
+f 9685 10151 9691
+f 10145 10597 10603
+f 10145 10603 10151
+f 10597 10985 10991
+f 10597 10991 10603
+f 10985 11381 11395
+f 10985 11395 10991
+f 11381 11769 11783
+f 11381 11783 11395
+f 11769 12125 12139
+f 11769 12139 11783
+f 12125 12465 12471
+f 12125 12471 12139
+f 12465 12805 12811
+f 12465 12811 12471
+f 12805 13097 13111
+f 12805 13111 12811
+f 13097 13413 13419
+f 13097 13419 13111
+f 13413 13673 13687
+f 13413 13687 13419
+f 13673 13949 13955
+f 13673 13955 13687
+f 13949 14193 14215
+f 13949 14215 13955
+f 14193 14445 14451
+f 14193 14451 14215
+f 14445 14649 14663
+f 14445 14663 14451
+f 14649 14877 14883
+f 14649 14883 14663
+f 14877 15057 15071
+f 14877 15071 14883
+f 15057 15253 15259
+f 15057 15259 15071
+f 15253 15409 15415
+f 15253 15415 15259
+f 15409 15573 15587
+f 15409 15587 15415
+f 15573 15705 15711
+f 15573 15711 15587
+f 15705 15829 15851
+f 15705 15851 15711
+f 15829 15953 15959
+f 15829 15959 15851
+f 15953 16053 16059
+f 15953 16059 15959
+f 16053 16145 16151
+f 16053 16151 16059
+f 16145 16213 16227
+f 16145 16227 16151
+f 16213 16281 16295
+f 16213 16295 16227
+f 16281 16333 16339
+f 16281 16339 16295
+f 16333 16369 16375
+f 16333 16375 16339
+f 16369 16397 16403
+f 16369 16403 16375
+f 16397 16409 16415
+f 16397 16415 16403
+f 16409 16410 16416
+f 16409 16416 16415
+f 16410 16398 16404
+f 16410 16404 16416
+f 16398 16370 16376
+f 16398 16376 16404
+f 16370 16334 16340
+f 16370 16340 16376
+f 16334 16282 16296
+f 16334 16296 16340
+f 16282 16214 16228
+f 16282 16228 16296
+f 16214 16146 16152
+f 16214 16152 16228
+f 16146 16054 16060
+f 16146 16060 16152
+f 16054 15954 15960
+f 16054 15960 16060
+f 15954 15830 15852
+f 15954 15852 15960
+f 15830 15706 15712
+f 15830 15712 15852
+f 15706 15574 15588
+f 15706 15588 15712
+f 15574 15410 15416
+f 15574 15416 15588
+f 15410 15254 15260
+f 15410 15260 15416
+f 15254 15058 15072
+f 15254 15072 15260
+f 15058 14878 14884
+f 15058 14884 15072
+f 14878 14650 14664
+f 14878 14664 14884
+f 14650 14446 14452
+f 14650 14452 14664
+f 14446 14194 14216
+f 14446 14216 14452
+f 14194 13950 13956
+f 14194 13956 14216
+f 13950 13674 13688
+f 13950 13688 13956
+f 13674 13414 13420
+f 13674 13420 13688
+f 13414 13098 13112
+f 13414 13112 13420
+f 13098 12806 12812
+f 13098 12812 13112
+f 12806 12466 12472
+f 12806 12472 12812
+f 12466 12126 12140
+f 12466 12140 12472
+f 12126 11770 11784
+f 12126 11784 12140
+f 11770 11382 11396
+f 11770 11396 11784
+f 11382 10986 10992
+f 11382 10992 11396
+f 10986 10598 10604
+f 10986 10604 10992
+f 10598 10146 10152
+f 10598 10152 10604
+f 10146 9686 9692
+f 10146 9692 10152
+f 9686 9234 9240
+f 9686 9240 9692
+f 9234 8726 8732
+f 9234 8732 9240
+f 8726 8194 8200
+f 8726 8200 8732
+f 8194 7646 7652
+f 8194 7652 8200
+f 7646 7058 7072
+f 7646 7072 7652
+f 7058 6470 6476
+f 7058 6476 7072
+f 6470 5834 5840
+f 6470 5840 6476
+f 5834 5150 5164
+f 5834 5164 5840
+f 5150 4434 4448
+f 5150 4448 5164
+f 4434 3646 3652
+f 4434 3652 4448
+f 3646 2778 2784
+f 3646 2784 3652
+f 2778 1830 1836
+f 2778 1836 2784
+f 1835 2783 2779
+f 1835 2779 1831
+f 2783 3651 3647
+f 2783 3647 2779
+f 3651 4447 4435
+f 3651 4435 3647
+f 4447 5163 5151
+f 4447 5151 4435
+f 5163 5839 5835
+f 5163 5835 5151
+f 5839 6475 6471
+f 5839 6471 5835
+f 6475 7071 7059
+f 6475 7059 6471
+f 7071 7651 7647
+f 7071 7647 7059
+f 7651 8199 8195
+f 7651 8195 7647
+f 8199 8731 8727
+f 8199 8727 8195
+f 8731 9239 9235
+f 8731 9235 8727
+f 9239 9691 9687
+f 9239 9687 9235
+f 9691 10151 10147
+f 9691 10147 9687
+f 10151 10603 10599
+f 10151 10599 10147
+f 10603 10991 10987
+f 10603 10987 10599
+f 10991 11395 11383
+f 10991 11383 10987
+f 11395 11783 11771
+f 11395 11771 11383
+f 11783 12139 12127
+f 11783 12127 11771
+f 12139 12471 12467
+f 12139 12467 12127
+f 12471 12811 12807
+f 12471 12807 12467
+f 12811 13111 13099
+f 12811 13099 12807
+f 13111 13419 13415
+f 13111 13415 13099
+f 13419 13687 13675
+f 13419 13675 13415
+f 13687 13955 13951
+f 13687 13951 13675
+f 13955 14215 14195
+f 13955 14195 13951
+f 14215 14451 14447
+f 14215 14447 14195
+f 14451 14663 14651
+f 14451 14651 14447
+f 14663 14883 14879
+f 14663 14879 14651
+f 14883 15071 15059
+f 14883 15059 14879
+f 15071 15259 15255
+f 15071 15255 15059
+f 15259 15415 15411
+f 15259 15411 15255
+f 15415 15587 15575
+f 15415 15575 15411
+f 15587 15711 15707
+f 15587 15707 15575
+f 15711 15851 15831
+f 15711 15831 15707
+f 15851 15959 15955
+f 15851 15955 15831
+f 15959 16059 16055
+f 15959 16055 15955
+f 16059 16151 16147
+f 16059 16147 16055
+f 16151 16227 16215
+f 16151 16215 16147
+f 16227 16295 16283
+f 16227 16283 16215
+f 16295 16339 16335
+f 16295 16335 16283
+f 16339 16375 16371
+f 16339 16371 16335
+f 16375 16403 16399
+f 16375 16399 16371
+f 16403 16415 16411
+f 16403 16411 16399
+f 16415 16416 16412
+f 16415 16412 16411
+f 16416 16404 16400
+f 16416 16400 16412
+f 16404 16376 16372
+f 16404 16372 16400
+f 16376 16340 16336
+f 16376 16336 16372
+f 16340 16296 16284
+f 16340 16284 16336
+f 16296 16228 16216
+f 16296 16216 16284
+f 16228 16152 16148
+f 16228 16148 16216
+f 16152 16060 16056
+f 16152 16056 16148
+f 16060 15960 15956
+f 16060 15956 16056
+f 15960 15852 15832
+f 15960 15832 15956
+f 15852 15712 15708
+f 15852 15708 15832
+f 15712 15588 15576
+f 15712 15576 15708
+f 15588 15416 15412
+f 15588 15412 15576
+f 15416 15260 15256
+f 15416 15256 15412
+f 15260 15072 15060
+f 15260 15060 15256
+f 15072 14884 14880
+f 15072 14880 15060
+f 14884 14664 14652
+f 14884 14652 14880
+f 14664 14452 14448
+f 14664 14448 14652
+f 14452 14216 14196
+f 14452 14196 14448
+f 14216 13956 13952
+f 14216 13952 14196
+f 13956 13688 13676
+f 13956 13676 13952
+f 13688 13420 13416
+f 13688 13416 13676
+f 13420 13112 13100
+f 13420 13100 13416
+f 13112 12812 12808
+f 13112 12808 13100
+f 12812 12472 12468
+f 12812 12468 12808
+f 12472 12140 12128
+f 12472 12128 12468
+f 12140 11784 11772
+f 12140 11772 12128
+f 11784 11396 11384
+f 11784 11384 11772
+f 11396 10992 10988
+f 11396 10988 11384
+f 10992 10604 10600
+f 10992 10600 10988
+f 10604 10152 10148
+f 10604 10148 10600
+f 10152 9692 9688
+f 10152 9688 10148
+f 9692 9240 9236
+f 9692 9236 9688
+f 9240 8732 8728
+f 9240 8728 9236
+f 8732 8200 8196
+f 8732 8196 8728
+f 8200 7652 7648
+f 8200 7648 8196
+f 7652 7072 7060
+f 7652 7060 7648
+f 7072 6476 6472
+f 7072 6472 7060
+f 6476 5840 5836
+f 6476 5836 6472
+f 5840 5164 5152
+f 5840 5152 5836
+f 5164 4448 4436
+f 5164 4436 5152
+f 4448 3652 3648
+f 4448 3648 4436
+f 3652 2784 2780
+f 3652 2780 3648
+f 2784 1836 1832
+f 2784 1832 2780
+f 1831 2779 2771
+f 1831 2771 1807
+f 2779 3647 3639
+f 2779 3639 2771
+f 3647 4435 4403
+f 3647 4403 3639
+f 4435 5151 5143
+f 4435 5143 4403
+f 5151 5835 5827
+f 5151 5827 5143
+f 5835 6471 6463
+f 5835 6463 5827
+f 6471 7059 7051
+f 6471 7051 6463
+f 7059 7647 7639
+f 7059 7639 7051
+f 7647 8195 8187
+f 7647 8187 7639
+f 8195 8727 8711
+f 8195 8711 8187
+f 8727 9235 9211
+f 8727 9211 8711
+f 9235 9687 9671
+f 9235 9671 9211
+f 9687 10147 10139
+f 9687 10139 9671
+f 10147 10599 10575
+f 10147 10575 10139
+f 10599 10987 10971
+f 10599 10971 10575
+f 10987 11383 11375
+f 10987 11375 10971
+f 11383 11771 11755
+f 11383 11755 11375
+f 11771 12127 12103
+f 11771 12103 11755
+f 12127 12467 12443
+f 12127 12443 12103
+f 12467 12807 12791
+f 12467 12791 12443
+f 12807 13099 13083
+f 12807 13083 12791
+f 13099 13415 13391
+f 13099 13391 13083
+f 13415 13675 13667
+f 13415 13667 13391
+f 13675 13951 13935
+f 13675 13935 13667
+f 13951 14195 14187
+f 13951 14187 13935
+f 14195 14447 14431
+f 14195 14431 14187
+f 14447 14651 14635
+f 14447 14635 14431
+f 14651 14879 14855
+f 14651 14855 14635
+f 14879 15059 15051
+f 14879 15051 14855
+f 15059 15255 15223
+f 15059 15223 15051
+f 15255 15411 15387
+f 15255 15387 15223
+f 15411 15575 15551
+f 15411 15551 15387
+f 15575 15707 15691
+f 15575 15691 15551
+f 15707 15831 15815
+f 15707 15815 15691
+f 15831 15955 15939
+f 15831 15939 15815
+f 15955 16055 16031
+f 15955 16031 15939
+f 16055 16147 16123
+f 16055 16123 16031
+f 16147 16215 16207
+f 16147 16207 16123
+f 16215 16283 16267
+f 16215 16267 16207
+f 16283 16335 16311
+f 16283 16311 16267
+f 16335 16371 16355
+f 16335 16355 16311
+f 16371 16399 16383
+f 16371 16383 16355
+f 16399 16411 16391
+f 16399 16391 16383
+f 16411 16412 16392
+f 16411 16392 16391
+f 16412 16400 16384
+f 16412 16384 16392
+f 16400 16372 16356
+f 16400 16356 16384
+f 16372 16336 16312
+f 16372 16312 16356
+f 16336 16284 16268
+f 16336 16268 16312
+f 16284 16216 16208
+f 16284 16208 16268
+f 16216 16148 16124
+f 16216 16124 16208
+f 16148 16056 16032
+f 16148 16032 16124
+f 16056 15956 15940
+f 16056 15940 16032
+f 15956 15832 15816
+f 15956 15816 15940
+f 15832 15708 15692
+f 15832 15692 15816
+f 15708 15576 15552
+f 15708 15552 15692
+f 15576 15412 15388
+f 15576 15388 15552
+f 15412 15256 15224
+f 15412 15224 15388
+f 15256 15060 15052
+f 15256 15052 15224
+f 15060 14880 14856
+f 15060 14856 15052
+f 14880 14652 14636
+f 14880 14636 14856
+f 14652 14448 14432
+f 14652 14432 14636
+f 14448 14196 14188
+f 14448 14188 14432
+f 14196 13952 13936
+f 14196 13936 14188
+f 13952 13676 13668
+f 13952 13668 13936
+f 13676 13416 13392
+f 13676 13392 13668
+f 13416 13100 13084
+f 13416 13084 13392
+f 13100 12808 12792
+f 13100 12792 13084
+f 12808 12468 12444
+f 12808 12444 12792
+f 12468 12128 12104
+f 12468 12104 12444
+f 12128 11772 11756
+f 12128 11756 12104
+f 11772 11384 11376
+f 11772 11376 11756
+f 11384 10988 10972
+f 11384 10972 11376
+f 10988 10600 10576
+f 10988 10576 10972
+f 10600 10148 10140
+f 10600 10140 10576
+f 10148 9688 9672
+f 10148 9672 10140
+f 9688 9236 9212
+f 9688 9212 9672
+f 9236 8728 8712
+f 9236 8712 9212
+f 8728 8196 8188
+f 8728 8188 8712
+f 8196 7648 7640
+f 8196 7640 8188
+f 7648 7060 7052
+f 7648 7052 7640
+f 7060 6472 6464
+f 7060 6464 7052
+f 6472 5836 5828
+f 6472 5828 6464
+f 5836 5152 5144
+f 5836 5144 5828
+f 5152 4436 4404
+f 5152 4404 5144
+f 4436 3648 3640
+f 4436 3640 4404
+f 3648 2780 2772
+f 3648 2772 3640
+f 2780 1832 1808
+f 2780 1808 2772
+f 1807 2771 2747
+f 1807 2747 1799
+f 2771 3639 3631
+f 2771 3631 2747
+f 3639 4403 4395
+f 3639 4395 3631
+f 4403 5143 5127
+f 4403 5127 4395
+f 5143 5827 5819
+f 5143 5819 5127
+f 5827 6463 6447
+f 5827 6447 5819
+f 6463 7051 7043
+f 6463 7043 6447
+f 7051 7639 7607
+f 7051 7607 7043
+f 7639 8187 8163
+f 7639 8163 7607
+f 8187 8711 8695
+f 8187 8695 8163
+f 8711 9211 9179
+f 8711 9179 8695
+f 9211 9671 9655
+f 9211 9655 9179
+f 9671 10139 10115
+f 9671 10115 9655
+f 10139 10575 10543
+f 10139 10543 10115
+f 10575 10971 10955
+f 10575 10955 10543
+f 10971 11375 11359
+f 10971 11359 10955
+f 11375 11755 11707
+f 11375 11707 11359
+f 11755 12103 12087
+f 11755 12087 11707
+f 12103 12443 12427
+f 12103 12427 12087
+f 12443 12791 12743
+f 12443 12743 12427
+f 12791 13083 13067
+f 12791 13067 12743
+f 13083 13391 13351
+f 13083 13351 13067
+f 13391 13667 13643
+f 13391 13643 13351
+f 13667 13935 13911
+f 13667 13911 13643
+f 13935 14187 14147
+f 13935 14147 13911
+f 14187 14431 14391
+f 14187 14391 14147
+f 14431 14635 14619
+f 14431 14619 14391
+f 14635 14855 14815
+f 14635 14815 14619
+f 14855 15051 15019
+f 14855 15019 14815
+f 15051 15223 15199
+f 15051 15199 15019
+f 15223 15387 15379
+f 15223 15379 15199
+f 15387 15551 15519
+f 15387 15519 15379
+f 15551 15691 15659
+f 15551 15659 15519
+f 15691 15815 15791
+f 15691 15791 15659
+f 15815 15939 15899
+f 15815 15899 15791
+f 15939 16031 16007
+f 15939 16007 15899
+f 16031 16123 16091
+f 16031 16091 16007
+f 16123 16207 16167
+f 16123 16167 16091
+f 16207 16267 16235
+f 16207 16235 16167
+f 16267 16311 16291
+f 16267 16291 16235
+f 16311 16355 16327
+f 16311 16327 16291
+f 16355 16383 16347
+f 16355 16347 16327
+f 16383 16391 16363
+f 16383 16363 16347
+f 16391 16392 16364
+f 16391 16364 16363
+f 16392 16384 16348
+f 16392 16348 16364
+f 16384 16356 16328
+f 16384 16328 16348
+f 16356 16312 16292
+f 16356 16292 16328
+f 16312 16268 16236
+f 16312 16236 16292
+f 16268 16208 16168
+f 16268 16168 16236
+f 16208 16124 16092
+f 16208 16092 16168
+f 16124 16032 16008
+f 16124 16008 16092
+f 16032 15940 15900
+f 16032 15900 16008
+f 15940 15816 15792
+f 15940 15792 15900
+f 15816 15692 15660
+f 15816 15660 15792
+f 15692 15552 15520
+f 15692 15520 15660
+f 15552 15388 15380
+f 15552 15380 15520
+f 15388 15224 15200
+f 15388 15200 15380
+f 15224 15052 15020
+f 15224 15020 15200
+f 15052 14856 14816
+f 15052 14816 15020
+f 14856 14636 14620
+f 14856 14620 14816
+f 14636 14432 14392
+f 14636 14392 14620
+f 14432 14188 14148
+f 14432 14148 14392
+f 14188 13936 13912
+f 14188 13912 14148
+f 13936 13668 13644
+f 13936 13644 13912
+f 13668 13392 13352
+f 13668 13352 13644
+f 13392 13084 13068
+f 13392 13068 13352
+f 13084 12792 12744
+f 13084 12744 13068
+f 12792 12444 12428
+f 12792 12428 12744
+f 12444 12104 12088
+f 12444 12088 12428
+f 12104 11756 11708
+f 12104 11708 12088
+f 11756 11376 11360
+f 11756 11360 11708
+f 11376 10972 10956
+f 11376 10956 11360
+f 10972 10576 10544
+f 10972 10544 10956
+f 10576 10140 10116
+f 10576 10116 10544
+f 10140 9672 9656
+f 10140 9656 10116
+f 9672 9212 9180
+f 9672 9180 9656
+f 9212 8712 8696
+f 9212 8696 9180
+f 8712 8188 8164
+f 8712 8164 8696
+f 8188 7640 7608
+f 8188 7608 8164
+f 7640 7052 7044
+f 7640 7044 7608
+f 7052 6464 6448
+f 7052 6448 7044
+f 6464 5828 5820
+f 6464 5820 6448
+f 5828 5144 5128
+f 5828 5128 5820
+f 5144 4404 4396
+f 5144 4396 5128
+f 4404 3640 3632
+f 4404 3632 4396
+f 3640 2772 2748
+f 3640 2748 3632
+f 2772 1808 1800
+f 2772 1800 2748
+f 1799 2747 2739
+f 1799 2739 1791
+f 2747 3631 3607
+f 2747 3607 2739
+f 3631 4395 4387
+f 3631 4387 3607
+f 4395 5127 5103
+f 4395 5103 4387
+f 5127 5819 5795
+f 5127 5795 5103
+f 5819 6447 6431
+f 5819 6431 5795
+f 6447 7043 7035
+f 6447 7035 6431
+f 7043 7607 7599
+f 7043 7599 7035
+f 7607 8163 8147
+f 7607 8147 7599
+f 8163 8695 8663
+f 8163 8663 8147
+f 8695 9179 9147
+f 8695 9147 8663
+f 9179 9655 9631
+f 9179 9631 9147
+f 9655 10115 10099
+f 9655 10099 9631
+f 10115 10543 10495
+f 10115 10495 10099
+f 10543 10955 10915
+f 10543 10915 10495
+f 10955 11359 11327
+f 10955 11327 10915
+f 11359 11707 11691
+f 11359 11691 11327
+f 11707 12087 12047
+f 11707 12047 11691
+f 12087 12427 12403
+f 12087 12403 12047
+f 12427 12743 12703
+f 12427 12703 12403
+f 12743 13067 13027
+f 12743 13027 12703
+f 13067 13351 13311
+f 13067 13311 13027
+f 13351 13643 13595
+f 13351 13595 13311
+f 13643 13911 13855
+f 13643 13855 13595
+f 13911 14147 14115
+f 13911 14115 13855
+f 14147 14391 14335
+f 14147 14335 14115
+f 14391 14619 14571
+f 14391 14571 14335
+f 14619 14815 14775
+f 14619 14775 14571
+f 14815 15019 14979
+f 14815 14979 14775
+f 15019 15199 15151
+f 15019 15151 14979
+f 15199 15379 15315
+f 15199 15315 15151
+f 15379 15519 15479
+f 15379 15479 15315
+f 15519 15659 15611
+f 15519 15611 15479
+f 15659 15791 15743
+f 15659 15743 15611
+f 15791 15899 15867
+f 15791 15867 15743
+f 15899 16007 15967
+f 15899 15967 15867
+f 16007 16091 16047
+f 16007 16047 15967
+f 16091 16167 16131
+f 16091 16131 16047
+f 16167 16235 16191
+f 16167 16191 16131
+f 16235 16291 16243
+f 16235 16243 16191
+f 16291 16327 16275
+f 16291 16275 16243
+f 16327 16347 16303
+f 16327 16303 16275
+f 16347 16363 16319
+f 16347 16319 16303
+f 16363 16364 16320
+f 16363 16320 16319
+f 16364 16348 16304
+f 16364 16304 16320
+f 16348 16328 16276
+f 16348 16276 16304
+f 16328 16292 16244
+f 16328 16244 16276
+f 16292 16236 16192
+f 16292 16192 16244
+f 16236 16168 16132
+f 16236 16132 16192
+f 16168 16092 16048
+f 16168 16048 16132
+f 16092 16008 15968
+f 16092 15968 16048
+f 16008 15900 15868
+f 16008 15868 15968
+f 15900 15792 15744
+f 15900 15744 15868
+f 15792 15660 15612
+f 15792 15612 15744
+f 15660 15520 15480
+f 15660 15480 15612
+f 15520 15380 15316
+f 15520 15316 15480
+f 15380 15200 15152
+f 15380 15152 15316
+f 15200 15020 14980
+f 15200 14980 15152
+f 15020 14816 14776
+f 15020 14776 14980
+f 14816 14620 14572
+f 14816 14572 14776
+f 14620 14392 14336
+f 14620 14336 14572
+f 14392 14148 14116
+f 14392 14116 14336
+f 14148 13912 13856
+f 14148 13856 14116
+f 13912 13644 13596
+f 13912 13596 13856
+f 13644 13352 13312
+f 13644 13312 13596
+f 13352 13068 13028
+f 13352 13028 13312
+f 13068 12744 12704
+f 13068 12704 13028
+f 12744 12428 12404
+f 12744 12404 12704
+f 12428 12088 12048
+f 12428 12048 12404
+f 12088 11708 11692
+f 12088 11692 12048
+f 11708 11360 11328
+f 11708 11328 11692
+f 11360 10956 10916
+f 11360 10916 11328
+f 10956 10544 10496
+f 10956 10496 10916
+f 10544 10116 10100
+f 10544 10100 10496
+f 10116 9656 9632
+f 10116 9632 10100
+f 9656 9180 9148
+f 9656 9148 9632
+f 9180 8696 8664
+f 9180 8664 9148
+f 8696 8164 8148
+f 8696 8148 8664
+f 8164 7608 7600
+f 8164 7600 8148
+f 7608 7044 7036
+f 7608 7036 7600
+f 7044 6448 6432
+f 7044 6432 7036
+f 6448 5820 5796
+f 6448 5796 6432
+f 5820 5128 5104
+f 5820 5104 5796
+f 5128 4396 4388
+f 5128 4388 5104
+f 4396 3632 3608
+f 4396 3608 4388
+f 3632 2748 2740
+f 3632 2740 3608
+f 2748 1800 1792
+f 2748 1792 2740
+f 1791 2739 2707
+f 1791 2707 1759
+f 2739 3607 3543
+f 2739 3543 2707
+f 3607 4387 4339
+f 3607 4339 3543
+f 4387 5103 5063
+f 4387 5063 4339
+f 5103 5795 5731
+f 5103 5731 5063
+f 5795 6431 6375
+f 5795 6375 5731
+f 6431 7035 6971
+f 6431 6971 6375
+f 7035 7599 7551
+f 7035 7551 6971
+f 7599 8147 8091
+f 7599 8091 7551
+f 8147 8663 8591
+f 8147 8591 8091
+f 8663 9147 9099
+f 8663 9099 8591
+f 9147 9631 9583
+f 9147 9583 9099
+f 9631 10099 10027
+f 9631 10027 9583
+f 10099 10495 10455
+f 10099 10455 10027
+f 10495 10915 10875
+f 10495 10875 10455
+f 10915 11327 11255
+f 10915 11255 10875
+f 11327 11691 11635
+f 11327 11635 11255
+f 11691 12047 11991
+f 11691 11991 11635
+f 12047 12403 12315
+f 12047 12315 11991
+f 12403 12703 12663
+f 12403 12663 12315
+f 12703 13027 12963
+f 12703 12963 12663
+f 13027 13311 13271
+f 13027 13271 12963
+f 13311 13595 13547
+f 13311 13547 13271
+f 13595 13855 13807
+f 13595 13807 13547
+f 13855 14115 14051
+f 13855 14051 13807
+f 14115 14335 14303
+f 14115 14303 14051
+f 14335 14571 14507
+f 14335 14507 14303
+f 14571 14775 14727
+f 14571 14727 14507
+f 14775 14979 14907
+f 14775 14907 14727
+f 14979 15151 15095
+f 14979 15095 14907
+f 15151 15315 15275
+f 15151 15275 15095
+f 15315 15479 15431
+f 15315 15431 15275
+f 15479 15611 15567
+f 15479 15567 15431
+f 15611 15743 15699
+f 15611 15699 15567
+f 15743 15867 15807
+f 15743 15807 15699
+f 15867 15967 15907
+f 15867 15907 15807
+f 15967 16047 15991
+f 15967 15991 15907
+f 16047 16131 16075
+f 16047 16075 15991
+f 16131 16191 16139
+f 16131 16139 16075
+f 16191 16243 16183
+f 16191 16183 16139
+f 16243 16275 16223
+f 16243 16223 16183
+f 16275 16303 16251
+f 16275 16251 16223
+f 16303 16319 16259
+f 16303 16259 16251
+f 16319 16320 16260
+f 16319 16260 16259
+f 16320 16304 16252
+f 16320 16252 16260
+f 16304 16276 16224
+f 16304 16224 16252
+f 16276 16244 16184
+f 16276 16184 16224
+f 16244 16192 16140
+f 16244 16140 16184
+f 16192 16132 16076
+f 16192 16076 16140
+f 16132 16048 15992
+f 16132 15992 16076
+f 16048 15968 15908
+f 16048 15908 15992
+f 15968 15868 15808
+f 15968 15808 15908
+f 15868 15744 15700
+f 15868 15700 15808
+f 15744 15612 15568
+f 15744 15568 15700
+f 15612 15480 15432
+f 15612 15432 15568
+f 15480 15316 15276
+f 15480 15276 15432
+f 15316 15152 15096
+f 15316 15096 15276
+f 15152 14980 14908
+f 15152 14908 15096
+f 14980 14776 14728
+f 14980 14728 14908
+f 14776 14572 14508
+f 14776 14508 14728
+f 14572 14336 14304
+f 14572 14304 14508
+f 14336 14116 14052
+f 14336 14052 14304
+f 14116 13856 13808
+f 14116 13808 14052
+f 13856 13596 13548
+f 13856 13548 13808
+f 13596 13312 13272
+f 13596 13272 13548
+f 13312 13028 12964
+f 13312 12964 13272
+f 13028 12704 12664
+f 13028 12664 12964
+f 12704 12404 12316
+f 12704 12316 12664
+f 12404 12048 11992
+f 12404 11992 12316
+f 12048 11692 11636
+f 12048 11636 11992
+f 11692 11328 11256
+f 11692 11256 11636
+f 11328 10916 10876
+f 11328 10876 11256
+f 10916 10496 10456
+f 10916 10456 10876
+f 10496 10100 10028
+f 10496 10028 10456
+f 10100 9632 9584
+f 10100 9584 10028
+f 9632 9148 9100
+f 9632 9100 9584
+f 9148 8664 8592
+f 9148 8592 9100
+f 8664 8148 8092
+f 8664 8092 8592
+f 8148 7600 7552
+f 8148 7552 8092
+f 7600 7036 6972
+f 7600 6972 7552
+f 7036 6432 6376
+f 7036 6376 6972
+f 6432 5796 5732
+f 6432 5732 6376
+f 5796 5104 5064
+f 5796 5064 5732
+f 5104 4388 4340
+f 5104 4340 5064
+f 4388 3608 3544
+f 4388 3544 4340
+f 3608 2740 2708
+f 3608 2708 3544
+f 2740 1792 1760
+f 2740 1760 2708
+f 1759 2707 2691
+f 1759 2691 1743
+f 2707 3543 3527
+f 2707 3527 2691
+f 3543 4339 4307
+f 3543 4307 3527
+f 4339 5063 5031
+f 4339 5031 4307
+f 5063 5731 5699
+f 5063 5699 5031
+f 5731 6375 6327
+f 5731 6327 5699
+f 6375 6971 6947
+f 6375 6947 6327
+f 6971 7551 7519
+f 6971 7519 6947
+f 7551 8091 8035
+f 7551 8035 7519
+f 8091 8591 8559
+f 8091 8559 8035
+f 8591 9099 9059
+f 8591 9059 8559
+f 9099 9583 9535
+f 9099 9535 9059
+f 9583 10027 9971
+f 9583 9971 9535
+f 10027 10455 10407
+f 10027 10407 9971
+f 10455 10875 10811
+f 10455 10811 10407
+f 10875 11255 11215
+f 10875 11215 10811
+f 11255 11635 11571
+f 11255 11571 11215
+f 11635 11991 11951
+f 11635 11951 11571
+f 11991 12315 12267
+f 11991 12267 11951
+f 12315 12663 12607
+f 12315 12607 12267
+f 12663 12963 12907
+f 12663 12907 12607
+f 12963 13271 13207
+f 12963 13207 12907
+f 13271 13547 13483
+f 13271 13483 13207
+f 13547 13807 13767
+f 13547 13767 13483
+f 13807 14051 14003
+f 13807 14003 13767
+f 14051 14303 14239
+f 14051 14239 14003
+f 14303 14507 14459
+f 14303 14459 14239
+f 14507 14727 14671
+f 14507 14671 14459
+f 14727 14907 14871
+f 14727 14871 14671
+f 14907 15095 15035
+f 14907 15035 14871
+f 15095 15275 15207
+f 15095 15207 15035
+f 15275 15431 15371
+f 15275 15371 15207
+f 15431 15567 15495
+f 15431 15495 15371
+f 15567 15699 15627
+f 15567 15627 15495
+f 15699 15807 15735
+f 15699 15735 15627
+f 15807 15907 15847
+f 15807 15847 15735
+f 15907 15991 15931
+f 15907 15931 15847
+f 15991 16075 15999
+f 15991 15999 15931
+f 16075 16139 16067
+f 16075 16067 15999
+f 16139 16183 16115
+f 16139 16115 16067
+f 16183 16223 16159
+f 16183 16159 16115
+f 16223 16251 16175
+f 16223 16175 16159
+f 16251 16259 16199
+f 16251 16199 16175
+f 16259 16260 16200
+f 16259 16200 16199
+f 16260 16252 16176
+f 16260 16176 16200
+f 16252 16224 16160
+f 16252 16160 16176
+f 16224 16184 16116
+f 16224 16116 16160
+f 16184 16140 16068
+f 16184 16068 16116
+f 16140 16076 16000
+f 16140 16000 16068
+f 16076 15992 15932
+f 16076 15932 16000
+f 15992 15908 15848
+f 15992 15848 15932
+f 15908 15808 15736
+f 15908 15736 15848
+f 15808 15700 15628
+f 15808 15628 15736
+f 15700 15568 15496
+f 15700 15496 15628
+f 15568 15432 15372
+f 15568 15372 15496
+f 15432 15276 15208
+f 15432 15208 15372
+f 15276 15096 15036
+f 15276 15036 15208
+f 15096 14908 14872
+f 15096 14872 15036
+f 14908 14728 14672
+f 14908 14672 14872
+f 14728 14508 14460
+f 14728 14460 14672
+f 14508 14304 14240
+f 14508 14240 14460
+f 14304 14052 14004
+f 14304 14004 14240
+f 14052 13808 13768
+f 14052 13768 14004
+f 13808 13548 13484
+f 13808 13484 13768
+f 13548 13272 13208
+f 13548 13208 13484
+f 13272 12964 12908
+f 13272 12908 13208
+f 12964 12664 12608
+f 12964 12608 12908
+f 12664 12316 12268
+f 12664 12268 12608
+f 12316 11992 11952
+f 12316 11952 12268
+f 11992 11636 11572
+f 11992 11572 11952
+f 11636 11256 11216
+f 11636 11216 11572
+f 11256 10876 10812
+f 11256 10812 11216
+f 10876 10456 10408
+f 10876 10408 10812
+f 10456 10028 9972
+f 10456 9972 10408
+f 10028 9584 9536
+f 10028 9536 9972
+f 9584 9100 9060
+f 9584 9060 9536
+f 9100 8592 8560
+f 9100 8560 9060
+f 8592 8092 8036
+f 8592 8036 8560
+f 8092 7552 7520
+f 8092 7520 8036
+f 7552 6972 6948
+f 7552 6948 7520
+f 6972 6376 6328
+f 6972 6328 6948
+f 6376 5732 5700
+f 6376 5700 6328
+f 5732 5064 5032
+f 5732 5032 5700
+f 5064 4340 4308
+f 5064 4308 5032
+f 4340 3544 3528
+f 4340 3528 4308
+f 3544 2708 2692
+f 3544 2692 3528
+f 2708 1760 1744
+f 2708 1744 2692
+f 1743 2691 2667
+f 1743 2667 1727
+f 2691 3527 3487
+f 2691 3487 2667
+f 3527 4307 4251
+f 3527 4251 3487
+f 4307 5031 4991
+f 4307 4991 4251
+f 5031 5699 5659
+f 5031 5659 4991
+f 5699 6327 6295
+f 5699 6295 5659
+f 6327 6947 6875
+f 6327 6875 6295
+f 6947 7519 7439
+f 6947 7439 6875
+f 7519 8035 7995
+f 7519 7995 7439
+f 8035 8559 8519
+f 8035 8519 7995
+f 8559 9059 9011
+f 8559 9011 8519
+f 9059 9535 9455
+f 9059 9455 9011
+f 9535 9971 9907
+f 9535 9907 9455
+f 9971 10407 10359
+f 9971 10359 9907
+f 10407 10811 10747
+f 10407 10747 10359
+f 10811 11215 11143
+f 10811 11143 10747
+f 11215 11571 11531
+f 11215 11531 11143
+f 11571 11951 11871
+f 11571 11871 11531
+f 11951 12267 12227
+f 11951 12227 11871
+f 12267 12607 12543
+f 12267 12543 12227
+f 12607 12907 12851
+f 12607 12851 12543
+f 12907 13207 13143
+f 12907 13143 12851
+f 13207 13483 13443
+f 13207 13443 13143
+f 13483 13767 13683
+f 13483 13683 13443
+f 13767 14003 13943
+f 13767 13943 13683
+f 14003 14239 14163
+f 14003 14163 13943
+f 14239 14459 14383
+f 14239 14383 14163
+f 14459 14671 14595
+f 14459 14595 14383
+f 14671 14871 14783
+f 14671 14783 14595
+f 14871 15035 14947
+f 14871 14947 14783
+f 15035 15207 15135
+f 15035 15135 14947
+f 15207 15371 15283
+f 15207 15283 15135
+f 15371 15495 15423
+f 15371 15423 15283
+f 15495 15627 15543
+f 15495 15543 15423
+f 15627 15735 15651
+f 15627 15651 15543
+f 15735 15847 15767
+f 15735 15767 15651
+f 15847 15931 15859
+f 15847 15859 15767
+f 15931 15999 15923
+f 15931 15923 15859
+f 15999 16067 15983
+f 15999 15983 15923
+f 16067 16115 16039
+f 16067 16039 15983
+f 16115 16159 16083
+f 16115 16083 16039
+f 16159 16175 16099
+f 16159 16099 16083
+f 16175 16199 16107
+f 16175 16107 16099
+f 16199 16200 16108
+f 16199 16108 16107
+f 16200 16176 16100
+f 16200 16100 16108
+f 16176 16160 16084
+f 16176 16084 16100
+f 16160 16116 16040
+f 16160 16040 16084
+f 16116 16068 15984
+f 16116 15984 16040
+f 16068 16000 15924
+f 16068 15924 15984
+f 16000 15932 15860
+f 16000 15860 15924
+f 15932 15848 15768
+f 15932 15768 15860
+f 15848 15736 15652
+f 15848 15652 15768
+f 15736 15628 15544
+f 15736 15544 15652
+f 15628 15496 15424
+f 15628 15424 15544
+f 15496 15372 15284
+f 15496 15284 15424
+f 15372 15208 15136
+f 15372 15136 15284
+f 15208 15036 14948
+f 15208 14948 15136
+f 15036 14872 14784
+f 15036 14784 14948
+f 14872 14672 14596
+f 14872 14596 14784
+f 14672 14460 14384
+f 14672 14384 14596
+f 14460 14240 14164
+f 14460 14164 14384
+f 14240 14004 13944
+f 14240 13944 14164
+f 14004 13768 13684
+f 14004 13684 13944
+f 13768 13484 13444
+f 13768 13444 13684
+f 13484 13208 13144
+f 13484 13144 13444
+f 13208 12908 12852
+f 13208 12852 13144
+f 12908 12608 12544
+f 12908 12544 12852
+f 12608 12268 12228
+f 12608 12228 12544
+f 12268 11952 11872
+f 12268 11872 12228
+f 11952 11572 11532
+f 11952 11532 11872
+f 11572 11216 11144
+f 11572 11144 11532
+f 11216 10812 10748
+f 11216 10748 11144
+f 10812 10408 10360
+f 10812 10360 10748
+f 10408 9972 9908
+f 10408 9908 10360
+f 9972 9536 9456
+f 9972 9456 9908
+f 9536 9060 9012
+f 9536 9012 9456
+f 9060 8560 8520
+f 9060 8520 9012
+f 8560 8036 7996
+f 8560 7996 8520
+f 8036 7520 7440
+f 8036 7440 7996
+f 7520 6948 6876
+f 7520 6876 7440
+f 6948 6328 6296
+f 6948 6296 6876
+f 6328 5700 5660
+f 6328 5660 6296
+f 5700 5032 4992
+f 5700 4992 5660
+f 5032 4308 4252
+f 5032 4252 4992
+f 4308 3528 3488
+f 4308 3488 4252
+f 3528 2692 2668
+f 3528 2668 3488
+f 2692 1744 1728
+f 2692 1728 2668
+f 1727 2667 2635
+f 1727 2635 1687
+f 2667 3487 3471
+f 2667 3471 2635
+f 3487 4251 4235
+f 3487 4235 3471
+f 4251 4991 4943
+f 4251 4943 4235
+f 4991 5659 5619
+f 4991 5619 4943
+f 5659 6295 6247
+f 5659 6247 5619
+f 6295 6875 6851
+f 6295 6851 6247
+f 6875 7439 7423
+f 6875 7423 6851
+f 7439 7995 7955
+f 7439 7955 7423
+f 7995 8519 8471
+f 7995 8471 7955
+f 8519 9011 8931
+f 8519 8931 8471
+f 9011 9455 9399
+f 9011 9399 8931
+f 9455 9907 9875
+f 9455 9875 9399
+f 9907 10359 10279
+f 9907 10279 9875
+f 10359 10747 10699
+f 10359 10699 10279
+f 10747 11143 11095
+f 10747 11095 10699
+f 11143 11531 11443
+f 11143 11443 11095
+f 11531 11871 11823
+f 11531 11823 11443
+f 11871 12227 12147
+f 11871 12147 11823
+f 12227 12543 12487
+f 12227 12487 12147
+f 12543 12851 12799
+f 12543 12799 12487
+f 12851 13143 13075
+f 12851 13075 12799
+f 13143 13443 13343
+f 13143 13343 13075
+f 13443 13683 13603
+f 13443 13603 13343
+f 13683 13943 13839
+f 13683 13839 13603
+f 13943 14163 14075
+f 13943 14075 13839
+f 14163 14383 14295
+f 14163 14295 14075
+f 14383 14595 14499
+f 14383 14499 14295
+f 14595 14783 14703
+f 14595 14703 14499
+f 14783 14947 14891
+f 14783 14891 14703
+f 14947 15135 15043
+f 14947 15043 14891
+f 15135 15283 15191
+f 15135 15191 15043
+f 15283 15423 15323
+f 15283 15323 15191
+f 15423 15543 15455
+f 15423 15455 15323
+f 15543 15651 15583
+f 15543 15583 15455
+f 15651 15767 15675
+f 15651 15675 15583
+f 15767 15859 15759
+f 15767 15759 15675
+f 15859 15923 15823
+f 15859 15823 15759
+f 15923 15983 15883
+f 15923 15883 15823
+f 15983 16039 15947
+f 15983 15947 15883
+f 16039 16083 15975
+f 16039 15975 15947
+f 16083 16099 16015
+f 16083 16015 15975
+f 16099 16107 16023
+f 16099 16023 16015
+f 16107 16108 16024
+f 16107 16024 16023
+f 16108 16100 16016
+f 16108 16016 16024
+f 16100 16084 15976
+f 16100 15976 16016
+f 16084 16040 15948
+f 16084 15948 15976
+f 16040 15984 15884
+f 16040 15884 15948
+f 15984 15924 15824
+f 15984 15824 15884
+f 15924 15860 15760
+f 15924 15760 15824
+f 15860 15768 15676
+f 15860 15676 15760
+f 15768 15652 15584
+f 15768 15584 15676
+f 15652 15544 15456
+f 15652 15456 15584
+f 15544 15424 15324
+f 15544 15324 15456
+f 15424 15284 15192
+f 15424 15192 15324
+f 15284 15136 15044
+f 15284 15044 15192
+f 15136 14948 14892
+f 15136 14892 15044
+f 14948 14784 14704
+f 14948 14704 14892
+f 14784 14596 14500
+f 14784 14500 14704
+f 14596 14384 14296
+f 14596 14296 14500
+f 14384 14164 14076
+f 14384 14076 14296
+f 14164 13944 13840
+f 14164 13840 14076
+f 13944 13684 13604
+f 13944 13604 13840
+f 13684 13444 13344
+f 13684 13344 13604
+f 13444 13144 13076
+f 13444 13076 13344
+f 13144 12852 12800
+f 13144 12800 13076
+f 12852 12544 12488
+f 12852 12488 12800
+f 12544 12228 12148
+f 12544 12148 12488
+f 12228 11872 11824
+f 12228 11824 12148
+f 11872 11532 11444
+f 11872 11444 11824
+f 11532 11144 11096
+f 11532 11096 11444
+f 11144 10748 10700
+f 11144 10700 11096
+f 10748 10360 10280
+f 10748 10280 10700
+f 10360 9908 9876
+f 10360 9876 10280
+f 9908 9456 9400
+f 9908 9400 9876
+f 9456 9012 8932
+f 9456 8932 9400
+f 9012 8520 8472
+f 9012 8472 8932
+f 8520 7996 7956
+f 8520 7956 8472
+f 7996 7440 7424
+f 7996 7424 7956
+f 7440 6876 6852
+f 7440 6852 7424
+f 6876 6296 6248
+f 6876 6248 6852
+f 6296 5660 5620
+f 6296 5620 6248
+f 5660 4992 4944
+f 5660 4944 5620
+f 4992 4252 4236
+f 4992 4236 4944
+f 4252 3488 3472
+f 4252 3472 4236
+f 3488 2668 2636
+f 3488 2636 3472
+f 2668 1728 1688
+f 2668 1688 2636
+f 1687 2635 2603
+f 1687 2603 1671
+f 2635 3471 3439
+f 2635 3439 2603
+f 3471 4235 4187
+f 3471 4187 3439
+f 4235 4943 4919
+f 4235 4919 4187
+f 4943 5619 5547
+f 4943 5547 4919
+f 5619 6247 6199
+f 5619 6199 5547
+f 6247 6851 6803
+f 6247 6803 6199
+f 6851 7423 7359
+f 6851 7359 6803
+f 7423 7955 7875
+f 7423 7875 7359
+f 7955 8471 8391
+f 7955 8391 7875
+f 8471 8931 8875
+f 8471 8875 8391
+f 8931 9399 9367
+f 8931 9367 8875
+f 9399 9875 9795
+f 9399 9795 9367
+f 9875 10279 10231
+f 9875 10231 9795
+f 10279 10699 10635
+f 10279 10635 10231
+f 10699 11095 11031
+f 10699 11031 10635
+f 11095 11443 11391
+f 11095 11391 11031
+f 11443 11823 11739
+f 11443 11739 11391
+f 11823 12147 12071
+f 11823 12071 11739
+f 12147 12487 12387
+f 12147 12387 12071
+f 12487 12799 12679
+f 12487 12679 12387
+f 12799 13075 12955
+f 12799 12955 12679
+f 13075 13343 13239
+f 13075 13239 12955
+f 13343 13603 13507
+f 13343 13507 13239
+f 13603 13839 13759
+f 13603 13759 13507
+f 13839 14075 13995
+f 13839 13995 13759
+f 14075 14295 14211
+f 14075 14211 13995
+f 14295 14499 14415
+f 14295 14415 14211
+f 14499 14703 14611
+f 14499 14611 14415
+f 14703 14891 14767
+f 14703 14767 14611
+f 14891 15043 14939
+f 14891 14939 14767
+f 15043 15191 15087
+f 15043 15087 14939
+f 15191 15323 15231
+f 15191 15231 15087
+f 15323 15455 15355
+f 15323 15355 15231
+f 15455 15583 15463
+f 15455 15463 15355
+f 15583 15675 15559
+f 15583 15559 15463
+f 15675 15759 15643
+f 15675 15643 15559
+f 15759 15823 15727
+f 15759 15727 15643
+f 15823 15883 15783
+f 15823 15783 15727
+f 15883 15947 15839
+f 15883 15839 15783
+f 15947 15975 15875
+f 15947 15875 15839
+f 15975 16015 15891
+f 15975 15891 15875
+f 16015 16023 15915
+f 16015 15915 15891
+f 16023 16024 15916
+f 16023 15916 15915
+f 16024 16016 15892
+f 16024 15892 15916
+f 16016 15976 15876
+f 16016 15876 15892
+f 15976 15948 15840
+f 15976 15840 15876
+f 15948 15884 15784
+f 15948 15784 15840
+f 15884 15824 15728
+f 15884 15728 15784
+f 15824 15760 15644
+f 15824 15644 15728
+f 15760 15676 15560
+f 15760 15560 15644
+f 15676 15584 15464
+f 15676 15464 15560
+f 15584 15456 15356
+f 15584 15356 15464
+f 15456 15324 15232
+f 15456 15232 15356
+f 15324 15192 15088
+f 15324 15088 15232
+f 15192 15044 14940
+f 15192 14940 15088
+f 15044 14892 14768
+f 15044 14768 14940
+f 14892 14704 14612
+f 14892 14612 14768
+f 14704 14500 14416
+f 14704 14416 14612
+f 14500 14296 14212
+f 14500 14212 14416
+f 14296 14076 13996
+f 14296 13996 14212
+f 14076 13840 13760
+f 14076 13760 13996
+f 13840 13604 13508
+f 13840 13508 13760
+f 13604 13344 13240
+f 13604 13240 13508
+f 13344 13076 12956
+f 13344 12956 13240
+f 13076 12800 12680
+f 13076 12680 12956
+f 12800 12488 12388
+f 12800 12388 12680
+f 12488 12148 12072
+f 12488 12072 12388
+f 12148 11824 11740
+f 12148 11740 12072
+f 11824 11444 11392
+f 11824 11392 11740
+f 11444 11096 11032
+f 11444 11032 11392
+f 11096 10700 10636
+f 11096 10636 11032
+f 10700 10280 10232
+f 10700 10232 10636
+f 10280 9876 9796
+f 10280 9796 10232
+f 9876 9400 9368
+f 9876 9368 9796
+f 9400 8932 8876
+f 9400 8876 9368
+f 8932 8472 8392
+f 8932 8392 8876
+f 8472 7956 7876
+f 8472 7876 8392
+f 7956 7424 7360
+f 7956 7360 7876
+f 7424 6852 6804
+f 7424 6804 7360
+f 6852 6248 6200
+f 6852 6200 6804
+f 6248 5620 5548
+f 6248 5548 6200
+f 5620 4944 4920
+f 5620 4920 5548
+f 4944 4236 4188
+f 4944 4188 4920
+f 4236 3472 3440
+f 4236 3440 4188
+f 3472 2636 2604
+f 3472 2604 3440
+f 2636 1688 1672
+f 2636 1672 2604
+f 1671 2603 2587
+f 1671 2587 1655
+f 2603 3439 3407
+f 2603 3407 2587
+f 3439 4187 4171
+f 3439 4171 3407
+f 4187 4919 4855
+f 4187 4855 4171
+f 4919 5547 5523
+f 4919 5523 4855
+f 5547 6199 6127
+f 5547 6127 5523
+f 6199 6803 6723
+f 6199 6723 6127
+f 6803 7359 7295
+f 6803 7295 6723
+f 7359 7875 7835
+f 7359 7835 7295
+f 7875 8391 8335
+f 7875 8335 7835
+f 8391 8875 8843
+f 8391 8843 8335
+f 8875 9367 9287
+f 8875 9287 8843
+f 9367 9795 9739
+f 9367 9739 9287
+f 9795 10231 10159
+f 9795 10159 9739
+f 10231 10635 10559
+f 10231 10559 10159
+f 10635 11031 10923
+f 10635 10923 10559
+f 11031 11391 11287
+f 11031 11287 10923
+f 11391 11739 11627
+f 11391 11627 11287
+f 11739 12071 11975
+f 11739 11975 11627
+f 12071 12387 12259
+f 12071 12259 11975
+f 12387 12679 12583
+f 12387 12583 12259
+f 12679 12955 12875
+f 12679 12875 12583
+f 12955 13239 13151
+f 12955 13151 12875
+f 13239 13507 13435
+f 13239 13435 13151
+f 13507 13759 13659
+f 13507 13659 13435
+f 13759 13995 13879
+f 13759 13879 13659
+f 13995 14211 14099
+f 13995 14099 13879
+f 14211 14415 14287
+f 14211 14287 14099
+f 14415 14611 14491
+f 14415 14491 14287
+f 14611 14767 14659
+f 14611 14659 14491
+f 14767 14939 14823
+f 14767 14823 14659
+f 14939 15087 14971
+f 14939 14971 14823
+f 15087 15231 15119
+f 15087 15119 14971
+f 15231 15355 15239
+f 15231 15239 15119
+f 15355 15463 15347
+f 15355 15347 15239
+f 15463 15559 15447
+f 15463 15447 15347
+f 15559 15643 15527
+f 15559 15527 15447
+f 15643 15727 15603
+f 15643 15603 15527
+f 15727 15783 15683
+f 15727 15683 15603
+f 15783 15839 15719
+f 15783 15719 15683
+f 15839 15875 15751
+f 15839 15751 15719
+f 15875 15891 15775
+f 15875 15775 15751
+f 15891 15915 15799
+f 15891 15799 15775
+f 15915 15916 15800
+f 15915 15800 15799
+f 15916 15892 15776
+f 15916 15776 15800
+f 15892 15876 15752
+f 15892 15752 15776
+f 15876 15840 15720
+f 15876 15720 15752
+f 15840 15784 15684
+f 15840 15684 15720
+f 15784 15728 15604
+f 15784 15604 15684
+f 15728 15644 15528
+f 15728 15528 15604
+f 15644 15560 15448
+f 15644 15448 15528
+f 15560 15464 15348
+f 15560 15348 15448
+f 15464 15356 15240
+f 15464 15240 15348
+f 15356 15232 15120
+f 15356 15120 15240
+f 15232 15088 14972
+f 15232 14972 15120
+f 15088 14940 14824
+f 15088 14824 14972
+f 14940 14768 14660
+f 14940 14660 14824
+f 14768 14612 14492
+f 14768 14492 14660
+f 14612 14416 14288
+f 14612 14288 14492
+f 14416 14212 14100
+f 14416 14100 14288
+f 14212 13996 13880
+f 14212 13880 14100
+f 13996 13760 13660
+f 13996 13660 13880
+f 13760 13508 13436
+f 13760 13436 13660
+f 13508 13240 13152
+f 13508 13152 13436
+f 13240 12956 12876
+f 13240 12876 13152
+f 12956 12680 12584
+f 12956 12584 12876
+f 12680 12388 12260
+f 12680 12260 12584
+f 12388 12072 11976
+f 12388 11976 12260
+f 12072 11740 11628
+f 12072 11628 11976
+f 11740 11392 11288
+f 11740 11288 11628
+f 11392 11032 10924
+f 11392 10924 11288
+f 11032 10636 10560
+f 11032 10560 10924
+f 10636 10232 10160
+f 10636 10160 10560
+f 10232 9796 9740
+f 10232 9740 10160
+f 9796 9368 9288
+f 9796 9288 9740
+f 9368 8876 8844
+f 9368 8844 9288
+f 8876 8392 8336
+f 8876 8336 8844
+f 8392 7876 7836
+f 8392 7836 8336
+f 7876 7360 7296
+f 7876 7296 7836
+f 7360 6804 6724
+f 7360 6724 7296
+f 6804 6200 6128
+f 6804 6128 6724
+f 6200 5548 5524
+f 6200 5524 6128
+f 5548 4920 4856
+f 5548 4856 5524
+f 4920 4188 4172
+f 4920 4172 4856
+f 4188 3440 3408
+f 4188 3408 4172
+f 3440 2604 2588
+f 3440 2588 3408
+f 2604 1672 1656
+f 2604 1656 2588
+f 1655 2587 2539
+f 1655 2539 1623
+f 2587 3407 3359
+f 2587 3359 2539
+f 3407 4171 4131
+f 3407 4131 3359
+f 4171 4855 4807
+f 4171 4807 4131
+f 4855 5523 5499
+f 4855 5499 4807
+f 5523 6127 6103
+f 5523 6103 5499
+f 6127 6723 6683
+f 6127 6683 6103
+f 6723 7295 7239
+f 6723 7239 6683
+f 7295 7835 7779
+f 7295 7779 7239
+f 7835 8335 8295
+f 7835 8295 7779
+f 8335 8843 8747
+f 8335 8747 8295
+f 8843 9287 9219
+f 8843 9219 8747
+f 9287 9739 9639
+f 9287 9639 9219
+f 9739 10159 10059
+f 9739 10059 9639
+f 10159 10559 10423
+f 10159 10423 10059
+f 10559 10923 10819
+f 10559 10819 10423
+f 10923 11287 11183
+f 10923 11183 10819
+f 11287 11627 11539
+f 11287 11539 11183
+f 11627 11975 11863
+f 11627 11863 11539
+f 11975 12259 12195
+f 11975 12195 11863
+f 12259 12583 12495
+f 12259 12495 12195
+f 12583 12875 12759
+f 12583 12759 12495
+f 12875 13151 13059
+f 12875 13059 12759
+f 13151 13435 13279
+f 13151 13279 13059
+f 13435 13659 13515
+f 13435 13515 13279
+f 13659 13879 13775
+f 13659 13775 13515
+f 13879 14099 13987
+f 13879 13987 13775
+f 14099 14287 14171
+f 14099 14171 13987
+f 14287 14491 14359
+f 14287 14359 14171
+f 14491 14659 14531
+f 14491 14531 14359
+f 14659 14823 14711
+f 14659 14711 14531
+f 14823 14971 14847
+f 14823 14847 14711
+f 14971 15119 14987
+f 14971 14987 14847
+f 15119 15239 15111
+f 15119 15111 14987
+f 15239 15347 15215
+f 15239 15215 15111
+f 15347 15447 15299
+f 15347 15299 15215
+f 15447 15527 15403
+f 15447 15403 15299
+f 15527 15603 15471
+f 15527 15471 15403
+f 15603 15683 15535
+f 15603 15535 15471
+f 15683 15719 15595
+f 15683 15595 15535
+f 15719 15751 15619
+f 15719 15619 15595
+f 15751 15775 15635
+f 15751 15635 15619
+f 15775 15799 15667
+f 15775 15667 15635
+f 15799 15800 15668
+f 15799 15668 15667
+f 15800 15776 15636
+f 15800 15636 15668
+f 15776 15752 15620
+f 15776 15620 15636
+f 15752 15720 15596
+f 15752 15596 15620
+f 15720 15684 15536
+f 15720 15536 15596
+f 15684 15604 15472
+f 15684 15472 15536
+f 15604 15528 15404
+f 15604 15404 15472
+f 15528 15448 15300
+f 15528 15300 15404
+f 15448 15348 15216
+f 15448 15216 15300
+f 15348 15240 15112
+f 15348 15112 15216
+f 15240 15120 14988
+f 15240 14988 15112
+f 15120 14972 14848
+f 15120 14848 14988
+f 14972 14824 14712
+f 14972 14712 14848
+f 14824 14660 14532
+f 14824 14532 14712
+f 14660 14492 14360
+f 14660 14360 14532
+f 14492 14288 14172
+f 14492 14172 14360
+f 14288 14100 13988
+f 14288 13988 14172
+f 14100 13880 13776
+f 14100 13776 13988
+f 13880 13660 13516
+f 13880 13516 13776
+f 13660 13436 13280
+f 13660 13280 13516
+f 13436 13152 13060
+f 13436 13060 13280
+f 13152 12876 12760
+f 13152 12760 13060
+f 12876 12584 12496
+f 12876 12496 12760
+f 12584 12260 12196
+f 12584 12196 12496
+f 12260 11976 11864
+f 12260 11864 12196
+f 11976 11628 11540
+f 11976 11540 11864
+f 11628 11288 11184
+f 11628 11184 11540
+f 11288 10924 10820
+f 11288 10820 11184
+f 10924 10560 10424
+f 10924 10424 10820
+f 10560 10160 10060
+f 10560 10060 10424
+f 10160 9740 9640
+f 10160 9640 10060
+f 9740 9288 9220
+f 9740 9220 9640
+f 9288 8844 8748
+f 9288 8748 9220
+f 8844 8336 8296
+f 8844 8296 8748
+f 8336 7836 7780
+f 8336 7780 8296
+f 7836 7296 7240
+f 7836 7240 7780
+f 7296 6724 6684
+f 7296 6684 7240
+f 6724 6128 6104
+f 6724 6104 6684
+f 6128 5524 5500
+f 6128 5500 6104
+f 5524 4856 4808
+f 5524 4808 5500
+f 4856 4172 4132
+f 4856 4132 4808
+f 4172 3408 3360
+f 4172 3360 4132
+f 3408 2588 2540
+f 3408 2540 3360
+f 2588 1656 1624
+f 2588 1624 2540
+f 1623 2539 2491
+f 1623 2491 1591
+f 2539 3359 3327
+f 2539 3327 2491
+f 3359 4131 4059
+f 3359 4059 3327
+f 4131 4807 4759
+f 4131 4759 4059
+f 4807 5499 5395
+f 4807 5395 4759
+f 5499 6103 6055
+f 5499 6055 5395
+f 6103 6683 6643
+f 6103 6643 6055
+f 6683 7239 7191
+f 6683 7191 6643
+f 7239 7779 7723
+f 7239 7723 7191
+f 7779 8295 8207
+f 7779 8207 7723
+f 8295 8747 8679
+f 8295 8679 8207
+f 8747 9219 9091
+f 8747 9091 8679
+f 9219 9639 9543
+f 9219 9543 9091
+f 9639 10059 9931
+f 9639 9931 9543
+f 10059 10423 10327
+f 10059 10327 9931
+f 10423 10819 10715
+f 10423 10715 10327
+f 10819 11183 11087
+f 10819 11087 10715
+f 11183 11539 11435
+f 11183 11435 11087
+f 11539 11863 11763
+f 11539 11763 11435
+f 11863 12195 12063
+f 11863 12063 11763
+f 12195 12495 12347
+f 12195 12347 12063
+f 12495 12759 12639
+f 12495 12639 12347
+f 12759 13059 12899
+f 12759 12899 12639
+f 13059 13279 13167
+f 13059 13167 12899
+f 13279 13515 13427
+f 13279 13427 13167
+f 13515 13775 13635
+f 13515 13635 13427
+f 13775 13987 13823
+f 13775 13823 13635
+f 13987 14171 14027
+f 13987 14027 13823
+f 14171 14359 14231
+f 14171 14231 14027
+f 14359 14531 14407
+f 14359 14407 14231
+f 14531 14711 14563
+f 14531 14563 14407
+f 14711 14847 14719
+f 14711 14719 14563
+f 14847 14987 14839
+f 14847 14839 14719
+f 14987 15111 14963
+f 14987 14963 14839
+f 15111 15215 15079
+f 15111 15079 14963
+f 15215 15299 15159
+f 15215 15159 15079
+f 15299 15403 15267
+f 15299 15267 15159
+f 15403 15471 15331
+f 15403 15331 15267
+f 15471 15535 15395
+f 15471 15395 15331
+f 15535 15595 15439
+f 15535 15439 15395
+f 15595 15619 15487
+f 15595 15487 15439
+f 15619 15635 15503
+f 15619 15503 15487
+f 15635 15667 15511
+f 15635 15511 15503
+f 15667 15668 15512
+f 15667 15512 15511
+f 15668 15636 15504
+f 15668 15504 15512
+f 15636 15620 15488
+f 15636 15488 15504
+f 15620 15596 15440
+f 15620 15440 15488
+f 15596 15536 15396
+f 15596 15396 15440
+f 15536 15472 15332
+f 15536 15332 15396
+f 15472 15404 15268
+f 15472 15268 15332
+f 15404 15300 15160
+f 15404 15160 15268
+f 15300 15216 15080
+f 15300 15080 15160
+f 15216 15112 14964
+f 15216 14964 15080
+f 15112 14988 14840
+f 15112 14840 14964
+f 14988 14848 14720
+f 14988 14720 14840
+f 14848 14712 14564
+f 14848 14564 14720
+f 14712 14532 14408
+f 14712 14408 14564
+f 14532 14360 14232
+f 14532 14232 14408
+f 14360 14172 14028
+f 14360 14028 14232
+f 14172 13988 13824
+f 14172 13824 14028
+f 13988 13776 13636
+f 13988 13636 13824
+f 13776 13516 13428
+f 13776 13428 13636
+f 13516 13280 13168
+f 13516 13168 13428
+f 13280 13060 12900
+f 13280 12900 13168
+f 13060 12760 12640
+f 13060 12640 12900
+f 12760 12496 12348
+f 12760 12348 12640
+f 12496 12196 12064
+f 12496 12064 12348
+f 12196 11864 11764
+f 12196 11764 12064
+f 11864 11540 11436
+f 11864 11436 11764
+f 11540 11184 11088
+f 11540 11088 11436
+f 11184 10820 10716
+f 11184 10716 11088
+f 10820 10424 10328
+f 10820 10328 10716
+f 10424 10060 9932
+f 10424 9932 10328
+f 10060 9640 9544
+f 10060 9544 9932
+f 9640 9220 9092
+f 9640 9092 9544
+f 9220 8748 8680
+f 9220 8680 9092
+f 8748 8296 8208
+f 8748 8208 8680
+f 8296 7780 7724
+f 8296 7724 8208
+f 7780 7240 7192
+f 7780 7192 7724
+f 7240 6684 6644
+f 7240 6644 7192
+f 6684 6104 6056
+f 6684 6056 6644
+f 6104 5500 5396
+f 6104 5396 6056
+f 5500 4808 4760
+f 5500 4760 5396
+f 4808 4132 4060
+f 4808 4060 4760
+f 4132 3360 3328
+f 4132 3328 4060
+f 3360 2540 2492
+f 3360 2492 3328
+f 2540 1624 1592
+f 2540 1592 2492
+f 1591 2491 2475
+f 1591 2475 1575
+f 2491 3327 3287
+f 2491 3287 2475
+f 3327 4059 4027
+f 3327 4027 3287
+f 4059 4759 4743
+f 4059 4743 4027
+f 4759 5395 5363
+f 4759 5363 4743
+f 5395 6055 5983
+f 5395 5983 5363
+f 6055 6643 6555
+f 6055 6555 5983
+f 6643 7191 7119
+f 6643 7119 6555
+f 7191 7723 7615
+f 7191 7615 7119
+f 7723 8207 8083
+f 7723 8083 7615
+f 8207 8679 8543
+f 8207 8543 8083
+f 8679 9091 9003
+f 8679 9003 8543
+f 9091 9543 9407
+f 9091 9407 9003
+f 9543 9931 9851
+f 9543 9851 9407
+f 9931 10327 10239
+f 9931 10239 9851
+f 10327 10715 10627
+f 10327 10627 10239
+f 10715 11087 10963
+f 10715 10963 10627
+f 11087 11435 11303
+f 11087 11303 10963
+f 11435 11763 11603
+f 11435 11603 11303
+f 11763 12063 11919
+f 11763 11919 11603
+f 12063 12347 12235
+f 12063 12235 11919
+f 12347 12639 12519
+f 12347 12519 12235
+f 12639 12899 12775
+f 12639 12775 12519
+f 12899 13167 13035
+f 12899 13035 12775
+f 13167 13427 13247
+f 13167 13247 13035
+f 13427 13635 13475
+f 13427 13475 13247
+f 13635 13823 13703
+f 13635 13703 13475
+f 13823 14027 13903
+f 13823 13903 13703
+f 14027 14231 14083
+f 14027 14083 13903
+f 14231 14407 14255
+f 14231 14255 14083
+f 14407 14563 14423
+f 14407 14423 14255
+f 14563 14719 14539
+f 14563 14539 14423
+f 14719 14839 14695
+f 14719 14695 14539
+f 14839 14963 14807
+f 14839 14807 14695
+f 14963 15079 14915
+f 14963 14915 14807
+f 15079 15159 15027
+f 15079 15027 14915
+f 15159 15267 15103
+f 15159 15103 15027
+f 15267 15331 15175
+f 15267 15175 15103
+f 15331 15395 15247
+f 15331 15247 15175
+f 15395 15439 15291
+f 15395 15291 15247
+f 15439 15487 15307
+f 15439 15307 15291
+f 15487 15503 15339
+f 15487 15339 15307
+f 15503 15511 15363
+f 15503 15363 15339
+f 15511 15512 15364
+f 15511 15364 15363
+f 15512 15504 15340
+f 15512 15340 15364
+f 15504 15488 15308
+f 15504 15308 15340
+f 15488 15440 15292
+f 15488 15292 15308
+f 15440 15396 15248
+f 15440 15248 15292
+f 15396 15332 15176
+f 15396 15176 15248
+f 15332 15268 15104
+f 15332 15104 15176
+f 15268 15160 15028
+f 15268 15028 15104
+f 15160 15080 14916
+f 15160 14916 15028
+f 15080 14964 14808
+f 15080 14808 14916
+f 14964 14840 14696
+f 14964 14696 14808
+f 14840 14720 14540
+f 14840 14540 14696
+f 14720 14564 14424
+f 14720 14424 14540
+f 14564 14408 14256
+f 14564 14256 14424
+f 14408 14232 14084
+f 14408 14084 14256
+f 14232 14028 13904
+f 14232 13904 14084
+f 14028 13824 13704
+f 14028 13704 13904
+f 13824 13636 13476
+f 13824 13476 13704
+f 13636 13428 13248
+f 13636 13248 13476
+f 13428 13168 13036
+f 13428 13036 13248
+f 13168 12900 12776
+f 13168 12776 13036
+f 12900 12640 12520
+f 12900 12520 12776
+f 12640 12348 12236
+f 12640 12236 12520
+f 12348 12064 11920
+f 12348 11920 12236
+f 12064 11764 11604
+f 12064 11604 11920
+f 11764 11436 11304
+f 11764 11304 11604
+f 11436 11088 10964
+f 11436 10964 11304
+f 11088 10716 10628
+f 11088 10628 10964
+f 10716 10328 10240
+f 10716 10240 10628
+f 10328 9932 9852
+f 10328 9852 10240
+f 9932 9544 9408
+f 9932 9408 9852
+f 9544 9092 9004
+f 9544 9004 9408
+f 9092 8680 8544
+f 9092 8544 9004
+f 8680 8208 8084
+f 8680 8084 8544
+f 8208 7724 7616
+f 8208 7616 8084
+f 7724 7192 7120
+f 7724 7120 7616
+f 7192 6644 6556
+f 7192 6556 7120
+f 6644 6056 5984
+f 6644 5984 6556
+f 6056 5396 5364
+f 6056 5364 5984
+f 5396 4760 4744
+f 5396 4744 5364
+f 4760 4060 4028
+f 4760 4028 4744
+f 4060 3328 3288
+f 4060 3288 4028
+f 3328 2492 2476
+f 3328 2476 3288
+f 2492 1592 1576
+f 2492 1576 2476
+f 1575 2475 2459
+f 1575 2459 1559
+f 2475 3287 3255
+f 2475 3255 2459
+f 3287 4027 3995
+f 3287 3995 3255
+f 4027 4743 4663
+f 4027 4663 3995
+f 4743 5363 5315
+f 4743 5315 4663
+f 5363 5983 5919
+f 5363 5919 5315
+f 5983 6555 6499
+f 5983 6499 5919
+f 6555 7119 7027
+f 6555 7027 6499
+f 7119 7615 7495
+f 7119 7495 7027
+f 7615 8083 7987
+f 7615 7987 7495
+f 8083 8543 8439
+f 8083 8439 7987
+f 8543 9003 8883
+f 8543 8883 8439
+f 9003 9407 9327
+f 9003 9327 8883
+f 9407 9851 9747
+f 9407 9747 9327
+f 9851 10239 10131
+f 9851 10131 9747
+f 10239 10627 10471
+f 10239 10471 10131
+f 10627 10963 10835
+f 10627 10835 10471
+f 10963 11303 11159
+f 10963 11159 10835
+f 11303 11603 11499
+f 11303 11499 11159
+f 11603 11919 11815
+f 11603 11815 11499
+f 11919 12235 12095
+f 11919 12095 11815
+f 12235 12519 12371
+f 12235 12371 12095
+f 12519 12775 12631
+f 12519 12631 12371
+f 12775 13035 12883
+f 12775 12883 12631
+f 13035 13247 13119
+f 13035 13119 12883
+f 13247 13475 13335
+f 13247 13335 13119
+f 13475 13703 13531
+f 13475 13531 13335
+f 13703 13903 13735
+f 13703 13735 13531
+f 13903 14083 13927
+f 13903 13927 13735
+f 14083 14255 14091
+f 14083 14091 13927
+f 14255 14423 14247
+f 14255 14247 14091
+f 14423 14539 14399
+f 14423 14399 14247
+f 14539 14695 14523
+f 14539 14523 14399
+f 14695 14807 14643
+f 14695 14643 14523
+f 14807 14915 14751
+f 14807 14751 14643
+f 14915 15027 14863
+f 14915 14863 14751
+f 15027 15103 14931
+f 15027 14931 14863
+f 15103 15175 15011
+f 15103 15011 14931
+f 15175 15247 15067
+f 15175 15067 15011
+f 15247 15291 15127
+f 15247 15127 15067
+f 15291 15307 15143
+f 15291 15143 15127
+f 15307 15339 15167
+f 15307 15167 15143
+f 15339 15363 15183
+f 15339 15183 15167
+f 15363 15364 15184
+f 15363 15184 15183
+f 15364 15340 15168
+f 15364 15168 15184
+f 15340 15308 15144
+f 15340 15144 15168
+f 15308 15292 15128
+f 15308 15128 15144
+f 15292 15248 15068
+f 15292 15068 15128
+f 15248 15176 15012
+f 15248 15012 15068
+f 15176 15104 14932
+f 15176 14932 15012
+f 15104 15028 14864
+f 15104 14864 14932
+f 15028 14916 14752
+f 15028 14752 14864
+f 14916 14808 14644
+f 14916 14644 14752
+f 14808 14696 14524
+f 14808 14524 14644
+f 14696 14540 14400
+f 14696 14400 14524
+f 14540 14424 14248
+f 14540 14248 14400
+f 14424 14256 14092
+f 14424 14092 14248
+f 14256 14084 13928
+f 14256 13928 14092
+f 14084 13904 13736
+f 14084 13736 13928
+f 13904 13704 13532
+f 13904 13532 13736
+f 13704 13476 13336
+f 13704 13336 13532
+f 13476 13248 13120
+f 13476 13120 13336
+f 13248 13036 12884
+f 13248 12884 13120
+f 13036 12776 12632
+f 13036 12632 12884
+f 12776 12520 12372
+f 12776 12372 12632
+f 12520 12236 12096
+f 12520 12096 12372
+f 12236 11920 11816
+f 12236 11816 12096
+f 11920 11604 11500
+f 11920 11500 11816
+f 11604 11304 11160
+f 11604 11160 11500
+f 11304 10964 10836
+f 11304 10836 11160
+f 10964 10628 10472
+f 10964 10472 10836
+f 10628 10240 10132
+f 10628 10132 10472
+f 10240 9852 9748
+f 10240 9748 10132
+f 9852 9408 9328
+f 9852 9328 9748
+f 9408 9004 8884
+f 9408 8884 9328
+f 9004 8544 8440
+f 9004 8440 8884
+f 8544 8084 7988
+f 8544 7988 8440
+f 8084 7616 7496
+f 8084 7496 7988
+f 7616 7120 7028
+f 7616 7028 7496
+f 7120 6556 6500
+f 7120 6500 7028
+f 6556 5984 5920
+f 6556 5920 6500
+f 5984 5364 5316
+f 5984 5316 5920
+f 5364 4744 4664
+f 5364 4664 5316
+f 4744 4028 3996
+f 4744 3996 4664
+f 4028 3288 3256
+f 4028 3256 3996
+f 3288 2476 2460
+f 3288 2460 3256
+f 2476 1576 1560
+f 2476 1560 2460
+f 1559 2459 2411
+f 1559 2411 1527
+f 2459 3255 3191
+f 2459 3191 2411
+f 3255 3995 3923
+f 3255 3923 3191
+f 3995 4663 4631
+f 3995 4631 3923
+f 4663 5315 5267
+f 4663 5267 4631
+f 5315 5919 5871
+f 5315 5871 5267
+f 5919 6499 6391
+f 5919 6391 5871
+f 6499 7027 6891
+f 6499 6891 6391
+f 7027 7495 7415
+f 7027 7415 6891
+f 7495 7987 7859
+f 7495 7859 7415
+f 7987 8439 8343
+f 7987 8343 7859
+f 8439 8883 8795
+f 8439 8795 8343
+f 8883 9327 9227
+f 8883 9227 8795
+f 9327 9747 9599
+f 9327 9599 9227
+f 9747 10131 9955
+f 9747 9955 9599
+f 10131 10471 10343
+f 10131 10343 9955
+f 10471 10835 10683
+f 10471 10683 10343
+f 10835 11159 11047
+f 10835 11047 10683
+f 11159 11499 11367
+f 11159 11367 11047
+f 11499 11815 11643
+f 11499 11643 11367
+f 11815 12095 11927
+f 11815 11927 11643
+f 12095 12371 12219
+f 12095 12219 11927
+f 12371 12631 12479
+f 12371 12479 12219
+f 12631 12883 12711
+f 12631 12711 12479
+f 12883 13119 12939
+f 12883 12939 12711
+f 13119 13335 13183
+f 13119 13183 12939
+f 13335 13531 13367
+f 13335 13367 13183
+f 13531 13735 13571
+f 13531 13571 13367
+f 13735 13927 13751
+f 13735 13751 13571
+f 13927 14091 13919
+f 13927 13919 13751
+f 14091 14247 14067
+f 14091 14067 13919
+f 14247 14399 14223
+f 14247 14223 14067
+f 14399 14523 14327
+f 14399 14327 14223
+f 14523 14643 14467
+f 14523 14467 14327
+f 14643 14751 14579
+f 14643 14579 14467
+f 14751 14863 14679
+f 14751 14679 14579
+f 14863 14931 14743
+f 14863 14743 14679
+f 14931 15011 14831
+f 14931 14831 14743
+f 15011 15067 14899
+f 15011 14899 14831
+f 15067 15127 14923
+f 15067 14923 14899
+f 15127 15143 14955
+f 15127 14955 14923
+f 15143 15167 14995
+f 15143 14995 14955
+f 15167 15183 15003
+f 15167 15003 14995
+f 15183 15184 15004
+f 15183 15004 15003
+f 15184 15168 14996
+f 15184 14996 15004
+f 15168 15144 14956
+f 15168 14956 14996
+f 15144 15128 14924
+f 15144 14924 14956
+f 15128 15068 14900
+f 15128 14900 14924
+f 15068 15012 14832
+f 15068 14832 14900
+f 15012 14932 14744
+f 15012 14744 14832
+f 14932 14864 14680
+f 14932 14680 14744
+f 14864 14752 14580
+f 14864 14580 14680
+f 14752 14644 14468
+f 14752 14468 14580
+f 14644 14524 14328
+f 14644 14328 14468
+f 14524 14400 14224
+f 14524 14224 14328
+f 14400 14248 14068
+f 14400 14068 14224
+f 14248 14092 13920
+f 14248 13920 14068
+f 14092 13928 13752
+f 14092 13752 13920
+f 13928 13736 13572
+f 13928 13572 13752
+f 13736 13532 13368
+f 13736 13368 13572
+f 13532 13336 13184
+f 13532 13184 13368
+f 13336 13120 12940
+f 13336 12940 13184
+f 13120 12884 12712
+f 13120 12712 12940
+f 12884 12632 12480
+f 12884 12480 12712
+f 12632 12372 12220
+f 12632 12220 12480
+f 12372 12096 11928
+f 12372 11928 12220
+f 12096 11816 11644
+f 12096 11644 11928
+f 11816 11500 11368
+f 11816 11368 11644
+f 11500 11160 11048
+f 11500 11048 11368
+f 11160 10836 10684
+f 11160 10684 11048
+f 10836 10472 10344
+f 10836 10344 10684
+f 10472 10132 9956
+f 10472 9956 10344
+f 10132 9748 9600
+f 10132 9600 9956
+f 9748 9328 9228
+f 9748 9228 9600
+f 9328 8884 8796
+f 9328 8796 9228
+f 8884 8440 8344
+f 8884 8344 8796
+f 8440 7988 7860
+f 8440 7860 8344
+f 7988 7496 7416
+f 7988 7416 7860
+f 7496 7028 6892
+f 7496 6892 7416
+f 7028 6500 6392
+f 7028 6392 6892
+f 6500 5920 5872
+f 6500 5872 6392
+f 5920 5316 5268
+f 5920 5268 5872
+f 5316 4664 4632
+f 5316 4632 5268
+f 4664 3996 3924
+f 4664 3924 4632
+f 3996 3256 3192
+f 3996 3192 3924
+f 3256 2460 2412
+f 3256 2412 3192
+f 2460 1560 1528
+f 2460 1528 2412
+f 1527 2411 2379
+f 1527 2379 1503
+f 2411 3191 3159
+f 2411 3159 2379
+f 3191 3923 3899
+f 3191 3899 3159
+f 3923 4631 4567
+f 3923 4567 3899
+f 4631 5267 5203
+f 4631 5203 4567
+f 5267 5871 5755
+f 5267 5755 5203
+f 5871 6391 6271
+f 5871 6271 5755
+f 6391 6891 6795
+f 6391 6795 6271
+f 6891 7415 7287
+f 6891 7287 6795
+f 7415 7859 7787
+f 7415 7787 7287
+f 7859 8343 8247
+f 7859 8247 7787
+f 8343 8795 8687
+f 8343 8687 8247
+f 8795 9227 9067
+f 8795 9067 8687
+f 9227 9599 9447
+f 9227 9447 9067
+f 9599 9955 9835
+f 9599 9835 9447
+f 9955 10343 10199
+f 9955 10199 9835
+f 10343 10683 10567
+f 10343 10567 10199
+f 10683 11047 10867
+f 10683 10867 10567
+f 11047 11367 11175
+f 11047 11175 10867
+f 11367 11643 11491
+f 11367 11491 11175
+f 11643 11927 11799
+f 11643 11799 11491
+f 11927 12219 12039
+f 11927 12039 11799
+f 12219 12479 12291
+f 12219 12291 12039
+f 12479 12711 12535
+f 12479 12535 12291
+f 12711 12939 12783
+f 12711 12783 12535
+f 12939 13183 12979
+f 12939 12979 12783
+f 13183 13367 13199
+f 13183 13199 12979
+f 13367 13571 13407
+f 13367 13407 13199
+f 13571 13751 13563
+f 13571 13563 13407
+f 13751 13919 13727
+f 13751 13727 13563
+f 13919 14067 13887
+f 13919 13887 13727
+f 14067 14223 14019
+f 14067 14019 13887
+f 14223 14327 14155
+f 14223 14155 14019
+f 14327 14467 14279
+f 14327 14279 14155
+f 14467 14579 14375
+f 14467 14375 14279
+f 14579 14679 14475
+f 14579 14475 14375
+f 14679 14743 14555
+f 14679 14555 14475
+f 14743 14831 14627
+f 14743 14627 14555
+f 14831 14899 14687
+f 14831 14687 14627
+f 14899 14923 14735
+f 14899 14735 14687
+f 14923 14955 14759
+f 14923 14759 14735
+f 14955 14995 14791
+f 14955 14791 14759
+f 14995 15003 14799
+f 14995 14799 14791
+f 15003 15004 14800
+f 15003 14800 14799
+f 15004 14996 14792
+f 15004 14792 14800
+f 14996 14956 14760
+f 14996 14760 14792
+f 14956 14924 14736
+f 14956 14736 14760
+f 14924 14900 14688
+f 14924 14688 14736
+f 14900 14832 14628
+f 14900 14628 14688
+f 14832 14744 14556
+f 14832 14556 14628
+f 14744 14680 14476
+f 14744 14476 14556
+f 14680 14580 14376
+f 14680 14376 14476
+f 14580 14468 14280
+f 14580 14280 14376
+f 14468 14328 14156
+f 14468 14156 14280
+f 14328 14224 14020
+f 14328 14020 14156
+f 14224 14068 13888
+f 14224 13888 14020
+f 14068 13920 13728
+f 14068 13728 13888
+f 13920 13752 13564
+f 13920 13564 13728
+f 13752 13572 13408
+f 13752 13408 13564
+f 13572 13368 13200
+f 13572 13200 13408
+f 13368 13184 12980
+f 13368 12980 13200
+f 13184 12940 12784
+f 13184 12784 12980
+f 12940 12712 12536
+f 12940 12536 12784
+f 12712 12480 12292
+f 12712 12292 12536
+f 12480 12220 12040
+f 12480 12040 12292
+f 12220 11928 11800
+f 12220 11800 12040
+f 11928 11644 11492
+f 11928 11492 11800
+f 11644 11368 11176
+f 11644 11176 11492
+f 11368 11048 10868
+f 11368 10868 11176
+f 11048 10684 10568
+f 11048 10568 10868
+f 10684 10344 10200
+f 10684 10200 10568
+f 10344 9956 9836
+f 10344 9836 10200
+f 9956 9600 9448
+f 9956 9448 9836
+f 9600 9228 9068
+f 9600 9068 9448
+f 9228 8796 8688
+f 9228 8688 9068
+f 8796 8344 8248
+f 8796 8248 8688
+f 8344 7860 7788
+f 8344 7788 8248
+f 7860 7416 7288
+f 7860 7288 7788
+f 7416 6892 6796
+f 7416 6796 7288
+f 6892 6392 6272
+f 6892 6272 6796
+f 6392 5872 5756
+f 6392 5756 6272
+f 5872 5268 5204
+f 5872 5204 5756
+f 5268 4632 4568
+f 5268 4568 5204
+f 4632 3924 3900
+f 4632 3900 4568
+f 3924 3192 3160
+f 3924 3160 3900
+f 3192 2412 2380
+f 3192 2380 3160
+f 2412 1528 1504
+f 2412 1504 2380
+f 1503 2379 2339
+f 1503 2339 1479
+f 2379 3159 3127
+f 2379 3127 2339
+f 3159 3899 3827
+f 3159 3827 3127
+f 3899 4567 4503
+f 3899 4503 3827
+f 4567 5203 5111
+f 4567 5111 4503
+f 5203 5755 5635
+f 5203 5635 5111
+f 5755 6271 6159
+f 5755 6159 5635
+f 6271 6795 6691
+f 6271 6691 6159
+f 6795 7287 7215
+f 6795 7215 6691
+f 7287 7787 7667
+f 7287 7667 7215
+f 7787 8247 8115
+f 7787 8115 7667
+f 8247 8687 8511
+f 8247 8511 8115
+f 8687 9067 8923
+f 8687 8923 8511
+f 9067 9447 9319
+f 9067 9319 8923
+f 9447 9835 9707
+f 9447 9707 9319
+f 9835 10199 10051
+f 9835 10051 9707
+f 10199 10567 10383
+f 10199 10383 10051
+f 10567 10867 10707
+f 10567 10707 10383
+f 10867 11175 11039
+f 10867 11039 10707
+f 11175 11491 11335
+f 11175 11335 11039
+f 11491 11799 11579
+f 11491 11579 11335
+f 11799 12039 11855
+f 11799 11855 11579
+f 12039 12291 12135
+f 12039 12135 11855
+f 12291 12535 12355
+f 12291 12355 12135
+f 12535 12783 12575
+f 12535 12575 12355
+f 12783 12979 12827
+f 12783 12827 12575
+f 12979 13199 12995
+f 12979 12995 12827
+f 13199 13407 13191
+f 13199 13191 12995
+f 13407 13563 13359
+f 13407 13359 13191
+f 13563 13727 13523
+f 13563 13523 13359
+f 13727 13887 13695
+f 13727 13695 13523
+f 13887 14019 13815
+f 13887 13815 13695
+f 14019 14155 13963
+f 14019 13963 13815
+f 14155 14279 14059
+f 14155 14059 13963
+f 14279 14375 14179
+f 14279 14179 14059
+f 14375 14475 14271
+f 14375 14271 14179
+f 14475 14555 14343
+f 14475 14343 14271
+f 14555 14627 14439
+f 14555 14439 14343
+f 14627 14687 14483
+f 14627 14483 14439
+f 14687 14735 14515
+f 14687 14515 14483
+f 14735 14759 14547
+f 14735 14547 14515
+f 14759 14791 14587
+f 14759 14587 14547
+f 14791 14799 14603
+f 14791 14603 14587
+f 14799 14800 14604
+f 14799 14604 14603
+f 14800 14792 14588
+f 14800 14588 14604
+f 14792 14760 14548
+f 14792 14548 14588
+f 14760 14736 14516
+f 14760 14516 14548
+f 14736 14688 14484
+f 14736 14484 14516
+f 14688 14628 14440
+f 14688 14440 14484
+f 14628 14556 14344
+f 14628 14344 14440
+f 14556 14476 14272
+f 14556 14272 14344
+f 14476 14376 14180
+f 14476 14180 14272
+f 14376 14280 14060
+f 14376 14060 14180
+f 14280 14156 13964
+f 14280 13964 14060
+f 14156 14020 13816
+f 14156 13816 13964
+f 14020 13888 13696
+f 14020 13696 13816
+f 13888 13728 13524
+f 13888 13524 13696
+f 13728 13564 13360
+f 13728 13360 13524
+f 13564 13408 13192
+f 13564 13192 13360
+f 13408 13200 12996
+f 13408 12996 13192
+f 13200 12980 12828
+f 13200 12828 12996
+f 12980 12784 12576
+f 12980 12576 12828
+f 12784 12536 12356
+f 12784 12356 12576
+f 12536 12292 12136
+f 12536 12136 12356
+f 12292 12040 11856
+f 12292 11856 12136
+f 12040 11800 11580
+f 12040 11580 11856
+f 11800 11492 11336
+f 11800 11336 11580
+f 11492 11176 11040
+f 11492 11040 11336
+f 11176 10868 10708
+f 11176 10708 11040
+f 10868 10568 10384
+f 10868 10384 10708
+f 10568 10200 10052
+f 10568 10052 10384
+f 10200 9836 9708
+f 10200 9708 10052
+f 9836 9448 9320
+f 9836 9320 9708
+f 9448 9068 8924
+f 9448 8924 9320
+f 9068 8688 8512
+f 9068 8512 8924
+f 8688 8248 8116
+f 8688 8116 8512
+f 8248 7788 7668
+f 8248 7668 8116
+f 7788 7288 7216
+f 7788 7216 7668
+f 7288 6796 6692
+f 7288 6692 7216
+f 6796 6272 6160
+f 6796 6160 6692
+f 6272 5756 5636
+f 6272 5636 6160
+f 5756 5204 5112
+f 5756 5112 5636
+f 5204 4568 4504
+f 5204 4504 5112
+f 4568 3900 3828
+f 4568 3828 4504
+f 3900 3160 3128
+f 3900 3128 3828
+f 3160 2380 2340
+f 3160 2340 3128
+f 2380 1504 1480
+f 2380 1480 2340
+f 1479 2339 2291
+f 1479 2291 1423
+f 2339 3127 3079
+f 2339 3079 2291
+f 3127 3827 3795
+f 3127 3795 3079
+f 3827 4503 4471
+f 3827 4471 3795
+f 4503 5111 4983
+f 4503 4983 4471
+f 5111 5635 5531
+f 5111 5531 4983
+f 5635 6159 6087
+f 5635 6087 5531
+f 6159 6691 6595
+f 6159 6595 6087
+f 6691 7215 7103
+f 6691 7103 6595
+f 7215 7667 7527
+f 7215 7527 7103
+f 7667 8115 7963
+f 7667 7963 7527
+f 8115 8511 8383
+f 8115 8383 7963
+f 8511 8923 8803
+f 8511 8803 8383
+f 8923 9319 9171
+f 8923 9171 8803
+f 9319 9707 9527
+f 9319 9527 9171
+f 9707 10051 9883
+f 9707 9883 9527
+f 10051 10383 10223
+f 10051 10223 9883
+f 10383 10707 10551
+f 10383 10551 10223
+f 10707 11039 10843
+f 10707 10843 10551
+f 11039 11335 11119
+f 11039 11119 10843
+f 11335 11579 11419
+f 11335 11419 11119
+f 11579 11855 11675
+f 11579 11675 11419
+f 11855 12135 11911
+f 11855 11911 11675
+f 12135 12355 12171
+f 12135 12171 11911
+f 12355 12575 12411
+f 12355 12411 12171
+f 12575 12827 12591
+f 12575 12591 12411
+f 12827 12995 12819
+f 12827 12819 12591
+f 12995 13191 12971
+f 12995 12971 12819
+f 13191 13359 13159
+f 13191 13159 12971
+f 13359 13523 13319
+f 13359 13319 13159
+f 13523 13695 13459
+f 13523 13459 13319
+f 13695 13815 13619
+f 13695 13619 13459
+f 13815 13963 13743
+f 13815 13743 13619
+f 13963 14059 13847
+f 13963 13847 13743
+f 14059 14179 13971
+f 14059 13971 13847
+f 14179 14271 14035
+f 14179 14035 13971
+f 14271 14343 14131
+f 14271 14131 14035
+f 14343 14439 14203
+f 14343 14203 14131
+f 14439 14483 14263
+f 14439 14263 14203
+f 14483 14515 14311
+f 14483 14311 14263
+f 14515 14547 14319
+f 14515 14319 14311
+f 14547 14587 14351
+f 14547 14351 14319
+f 14587 14603 14367
+f 14587 14367 14351
+f 14603 14604 14368
+f 14603 14368 14367
+f 14604 14588 14352
+f 14604 14352 14368
+f 14588 14548 14320
+f 14588 14320 14352
+f 14548 14516 14312
+f 14548 14312 14320
+f 14516 14484 14264
+f 14516 14264 14312
+f 14484 14440 14204
+f 14484 14204 14264
+f 14440 14344 14132
+f 14440 14132 14204
+f 14344 14272 14036
+f 14344 14036 14132
+f 14272 14180 13972
+f 14272 13972 14036
+f 14180 14060 13848
+f 14180 13848 13972
+f 14060 13964 13744
+f 14060 13744 13848
+f 13964 13816 13620
+f 13964 13620 13744
+f 13816 13696 13460
+f 13816 13460 13620
+f 13696 13524 13320
+f 13696 13320 13460
+f 13524 13360 13160
+f 13524 13160 13320
+f 13360 13192 12972
+f 13360 12972 13160
+f 13192 12996 12820
+f 13192 12820 12972
+f 12996 12828 12592
+f 12996 12592 12820
+f 12828 12576 12412
+f 12828 12412 12592
+f 12576 12356 12172
+f 12576 12172 12412
+f 12356 12136 11912
+f 12356 11912 12172
+f 12136 11856 11676
+f 12136 11676 11912
+f 11856 11580 11420
+f 11856 11420 11676
+f 11580 11336 11120
+f 11580 11120 11420
+f 11336 11040 10844
+f 11336 10844 11120
+f 11040 10708 10552
+f 11040 10552 10844
+f 10708 10384 10224
+f 10708 10224 10552
+f 10384 10052 9884
+f 10384 9884 10224
+f 10052 9708 9528
+f 10052 9528 9884
+f 9708 9320 9172
+f 9708 9172 9528
+f 9320 8924 8804
+f 9320 8804 9172
+f 8924 8512 8384
+f 8924 8384 8804
+f 8512 8116 7964
+f 8512 7964 8384
+f 8116 7668 7528
+f 8116 7528 7964
+f 7668 7216 7104
+f 7668 7104 7528
+f 7216 6692 6596
+f 7216 6596 7104
+f 6692 6160 6088
+f 6692 6088 6596
+f 6160 5636 5532
+f 6160 5532 6088
+f 5636 5112 4984
+f 5636 4984 5532
+f 5112 4504 4472
+f 5112 4472 4984
+f 4504 3828 3796
+f 4504 3796 4472
+f 3828 3128 3080
+f 3828 3080 3796
+f 3128 2340 2292
+f 3128 2292 3080
+f 2340 1480 1424
+f 2340 1424 2292
+f 1423 2291 2259
+f 1423 2259 1407
+f 2291 3079 3031
+f 2291 3031 2259
+f 3079 3795 3731
+f 3079 3731 3031
+f 3795 4471 4331
+f 3795 4331 3731
+f 4471 4983 4887
+f 4471 4887 4331
+f 4983 5531 5427
+f 4983 5427 4887
+f 5531 6087 5975
+f 5531 5975 5427
+f 6087 6595 6507
+f 6087 6507 5975
+f 6595 7103 6931
+f 6595 6931 6507
+f 7103 7527 7391
+f 7103 7391 6931
+f 7527 7963 7811
+f 7527 7811 7391
+f 7963 8383 8263
+f 7963 8263 7811
+f 8383 8803 8623
+f 8383 8623 8263
+f 8803 9171 8995
+f 8803 8995 8623
+f 9171 9527 9375
+f 9171 9375 8995
+f 9527 9883 9731
+f 9527 9731 9375
+f 9883 10223 10043
+f 9883 10043 9731
+f 10223 10551 10351
+f 10223 10351 10043
+f 10551 10843 10651
+f 10551 10651 10351
+f 10843 11119 10947
+f 10843 10947 10651
+f 11119 11419 11207
+f 11119 11207 10947
+f 11419 11675 11475
+f 11419 11475 11207
+f 11675 11911 11723
+f 11675 11723 11475
+f 11911 12171 11967
+f 11911 11967 11723
+f 12171 12411 12179
+f 12171 12179 11967
+f 12411 12591 12395
+f 12411 12395 12179
+f 12591 12819 12567
+f 12591 12567 12395
+f 12819 12971 12767
+f 12819 12767 12567
+f 12971 13159 12923
+f 12971 12923 12767
+f 13159 13319 13091
+f 13159 13091 12923
+f 13319 13459 13231
+f 13319 13231 13091
+f 13459 13619 13399
+f 13459 13399 13231
+f 13619 13743 13499
+f 13619 13499 13399
+f 13743 13847 13627
+f 13743 13627 13499
+f 13847 13971 13719
+f 13847 13719 13627
+f 13971 14035 13799
+f 13971 13799 13719
+f 14035 14131 13895
+f 14035 13895 13799
+f 14131 14203 13979
+f 14131 13979 13895
+f 14203 14263 14011
+f 14203 14011 13979
+f 14263 14311 14043
+f 14263 14043 14011
+f 14311 14319 14107
+f 14311 14107 14043
+f 14319 14351 14123
+f 14319 14123 14107
+f 14351 14367 14139
+f 14351 14139 14123
+f 14367 14368 14140
+f 14367 14140 14139
+f 14368 14352 14124
+f 14368 14124 14140
+f 14352 14320 14108
+f 14352 14108 14124
+f 14320 14312 14044
+f 14320 14044 14108
+f 14312 14264 14012
+f 14312 14012 14044
+f 14264 14204 13980
+f 14264 13980 14012
+f 14204 14132 13896
+f 14204 13896 13980
+f 14132 14036 13800
+f 14132 13800 13896
+f 14036 13972 13720
+f 14036 13720 13800
+f 13972 13848 13628
+f 13972 13628 13720
+f 13848 13744 13500
+f 13848 13500 13628
+f 13744 13620 13400
+f 13744 13400 13500
+f 13620 13460 13232
+f 13620 13232 13400
+f 13460 13320 13092
+f 13460 13092 13232
+f 13320 13160 12924
+f 13320 12924 13092
+f 13160 12972 12768
+f 13160 12768 12924
+f 12972 12820 12568
+f 12972 12568 12768
+f 12820 12592 12396
+f 12820 12396 12568
+f 12592 12412 12180
+f 12592 12180 12396
+f 12412 12172 11968
+f 12412 11968 12180
+f 12172 11912 11724
+f 12172 11724 11968
+f 11912 11676 11476
+f 11912 11476 11724
+f 11676 11420 11208
+f 11676 11208 11476
+f 11420 11120 10948
+f 11420 10948 11208
+f 11120 10844 10652
+f 11120 10652 10948
+f 10844 10552 10352
+f 10844 10352 10652
+f 10552 10224 10044
+f 10552 10044 10352
+f 10224 9884 9732
+f 10224 9732 10044
+f 9884 9528 9376
+f 9884 9376 9732
+f 9528 9172 8996
+f 9528 8996 9376
+f 9172 8804 8624
+f 9172 8624 8996
+f 8804 8384 8264
+f 8804 8264 8624
+f 8384 7964 7812
+f 8384 7812 8264
+f 7964 7528 7392
+f 7964 7392 7812
+f 7528 7104 6932
+f 7528 6932 7392
+f 7104 6596 6508
+f 7104 6508 6932
+f 6596 6088 5976
+f 6596 5976 6508
+f 6088 5532 5428
+f 6088 5428 5976
+f 5532 4984 4888
+f 5532 4888 5428
+f 4984 4472 4332
+f 4984 4332 4888
+f 4472 3796 3732
+f 4472 3732 4332
+f 3796 3080 3032
+f 3796 3032 3732
+f 3080 2292 2260
+f 3080 2260 3032
+f 2292 1424 1408
+f 2292 1408 2260
+f 1407 2259 2227
+f 1407 2227 1391
+f 2259 3031 2983
+f 2259 2983 2227
+f 3031 3731 3699
+f 3031 3699 2983
+f 3731 4331 4211
+f 3731 4211 3699
+f 4331 4887 4775
+f 4331 4775 4211
+f 4887 5427 5347
+f 4887 5347 4775
+f 5427 5975 5903
+f 5427 5903 5347
+f 5975 6507 6335
+f 5975 6335 5903
+f 6507 6931 6787
+f 6507 6787 6335
+f 6931 7391 7247
+f 6931 7247 6787
+f 7391 7811 7707
+f 7391 7707 7247
+f 7811 8263 8059
+f 7811 8059 7707
+f 8263 8623 8463
+f 8263 8463 8059
+f 8623 8995 8851
+f 8623 8851 8463
+f 8995 9375 9203
+f 8995 9203 8851
+f 9375 9731 9511
+f 9375 9511 9203
+f 9731 10043 9859
+f 9731 9859 9511
+f 10043 10351 10175
+f 10043 10175 9859
+f 10351 10651 10447
+f 10351 10447 10175
+f 10651 10947 10739
+f 10651 10739 10447
+f 10947 11207 11023
+f 10947 11023 10739
+f 11207 11475 11247
+f 11207 11247 11023
+f 11475 11723 11523
+f 11475 11523 11247
+f 11723 11967 11747
+f 11723 11747 11523
+f 11967 12179 11959
+f 11967 11959 11747
+f 12179 12395 12163
+f 12179 12163 11959
+f 12395 12567 12339
+f 12395 12339 12163
+f 12567 12767 12527
+f 12567 12527 12339
+f 12767 12923 12687
+f 12767 12687 12527
+f 12923 13091 12859
+f 12923 12859 12687
+f 13091 13231 13003
+f 13091 13003 12859
+f 13231 13399 13135
+f 13231 13135 13003
+f 13399 13499 13263
+f 13399 13263 13135
+f 13499 13627 13375
+f 13499 13375 13263
+f 13627 13719 13467
+f 13627 13467 13375
+f 13719 13799 13555
+f 13719 13555 13467
+f 13799 13895 13651
+f 13799 13651 13555
+f 13895 13979 13711
+f 13895 13711 13651
+f 13979 14011 13783
+f 13979 13783 13711
+f 14011 14043 13791
+f 14011 13791 13783
+f 14043 14107 13831
+f 14043 13831 13791
+f 14107 14123 13863
+f 14107 13863 13831
+f 14123 14139 13871
+f 14123 13871 13863
+f 14139 14140 13872
+f 14139 13872 13871
+f 14140 14124 13864
+f 14140 13864 13872
+f 14124 14108 13832
+f 14124 13832 13864
+f 14108 14044 13792
+f 14108 13792 13832
+f 14044 14012 13784
+f 14044 13784 13792
+f 14012 13980 13712
+f 14012 13712 13784
+f 13980 13896 13652
+f 13980 13652 13712
+f 13896 13800 13556
+f 13896 13556 13652
+f 13800 13720 13468
+f 13800 13468 13556
+f 13720 13628 13376
+f 13720 13376 13468
+f 13628 13500 13264
+f 13628 13264 13376
+f 13500 13400 13136
+f 13500 13136 13264
+f 13400 13232 13004
+f 13400 13004 13136
+f 13232 13092 12860
+f 13232 12860 13004
+f 13092 12924 12688
+f 13092 12688 12860
+f 12924 12768 12528
+f 12924 12528 12688
+f 12768 12568 12340
+f 12768 12340 12528
+f 12568 12396 12164
+f 12568 12164 12340
+f 12396 12180 11960
+f 12396 11960 12164
+f 12180 11968 11748
+f 12180 11748 11960
+f 11968 11724 11524
+f 11968 11524 11748
+f 11724 11476 11248
+f 11724 11248 11524
+f 11476 11208 11024
+f 11476 11024 11248
+f 11208 10948 10740
+f 11208 10740 11024
+f 10948 10652 10448
+f 10948 10448 10740
+f 10652 10352 10176
+f 10652 10176 10448
+f 10352 10044 9860
+f 10352 9860 10176
+f 10044 9732 9512
+f 10044 9512 9860
+f 9732 9376 9204
+f 9732 9204 9512
+f 9376 8996 8852
+f 9376 8852 9204
+f 8996 8624 8464
+f 8996 8464 8852
+f 8624 8264 8060
+f 8624 8060 8464
+f 8264 7812 7708
+f 8264 7708 8060
+f 7812 7392 7248
+f 7812 7248 7708
+f 7392 6932 6788
+f 7392 6788 7248
+f 6932 6508 6336
+f 6932 6336 6788
+f 6508 5976 5904
+f 6508 5904 6336
+f 5976 5428 5348
+f 5976 5348 5904
+f 5428 4888 4776
+f 5428 4776 5348
+f 4888 4332 4212
+f 4888 4212 4776
+f 4332 3732 3700
+f 4332 3700 4212
+f 3732 3032 2984
+f 3732 2984 3700
+f 3032 2260 2228
+f 3032 2228 2984
+f 2260 1408 1392
+f 2260 1392 2228
+f 1391 2227 2179
+f 1391 2179 1359
+f 2227 2983 2935
+f 2227 2935 2179
+f 2983 3699 3599
+f 2983 3599 2935
+f 3699 4211 4139
+f 3699 4139 3599
+f 4211 4775 4711
+f 4211 4711 4139
+f 4775 5347 5259
+f 4775 5259 4711
+f 5347 5903 5739
+f 5347 5739 5259
+f 5903 6335 6191
+f 5903 6191 5739
+f 6335 6787 6659
+f 6335 6659 6191
+f 6787 7247 7127
+f 6787 7127 6659
+f 7247 7707 7511
+f 7247 7511 7127
+f 7707 8059 7891
+f 7707 7891 7511
+f 8059 8463 8311
+f 8059 8311 7891
+f 8463 8851 8671
+f 8463 8671 8311
+f 8851 9203 8987
+f 8851 8987 8671
+f 9203 9511 9351
+f 9203 9351 8987
+f 9511 9859 9663
+f 9511 9663 9351
+f 9859 10175 9939
+f 9859 9939 9663
+f 10175 10447 10255
+f 10175 10255 9939
+f 10447 10739 10519
+f 10447 10519 10255
+f 10739 11023 10771
+f 10739 10771 10519
+f 11023 11247 11063
+f 11023 11063 10771
+f 11247 11523 11271
+f 11247 11271 11063
+f 11523 11747 11515
+f 11523 11515 11271
+f 11747 11959 11715
+f 11747 11715 11515
+f 11959 12163 11903
+f 11959 11903 11715
+f 12163 12339 12119
+f 12163 12119 11903
+f 12339 12527 12275
+f 12339 12275 12119
+f 12527 12687 12459
+f 12527 12459 12275
+f 12687 12859 12599
+f 12687 12599 12459
+f 12859 13003 12751
+f 12859 12751 12599
+f 13003 13135 12891
+f 13003 12891 12751
+f 13135 13263 13011
+f 13135 13011 12891
+f 13263 13375 13127
+f 13263 13127 13011
+f 13375 13467 13215
+f 13375 13215 13127
+f 13467 13555 13295
+f 13467 13295 13215
+f 13555 13651 13383
+f 13555 13383 13295
+f 13651 13711 13451
+f 13651 13451 13383
+f 13711 13783 13491
+f 13711 13491 13451
+f 13783 13791 13539
+f 13783 13539 13491
+f 13791 13831 13579
+f 13791 13579 13539
+f 13831 13863 13587
+f 13831 13587 13579
+f 13863 13871 13611
+f 13863 13611 13587
+f 13871 13872 13612
+f 13871 13612 13611
+f 13872 13864 13588
+f 13872 13588 13612
+f 13864 13832 13580
+f 13864 13580 13588
+f 13832 13792 13540
+f 13832 13540 13580
+f 13792 13784 13492
+f 13792 13492 13540
+f 13784 13712 13452
+f 13784 13452 13492
+f 13712 13652 13384
+f 13712 13384 13452
+f 13652 13556 13296
+f 13652 13296 13384
+f 13556 13468 13216
+f 13556 13216 13296
+f 13468 13376 13128
+f 13468 13128 13216
+f 13376 13264 13012
+f 13376 13012 13128
+f 13264 13136 12892
+f 13264 12892 13012
+f 13136 13004 12752
+f 13136 12752 12892
+f 13004 12860 12600
+f 13004 12600 12752
+f 12860 12688 12460
+f 12860 12460 12600
+f 12688 12528 12276
+f 12688 12276 12460
+f 12528 12340 12120
+f 12528 12120 12276
+f 12340 12164 11904
+f 12340 11904 12120
+f 12164 11960 11716
+f 12164 11716 11904
+f 11960 11748 11516
+f 11960 11516 11716
+f 11748 11524 11272
+f 11748 11272 11516
+f 11524 11248 11064
+f 11524 11064 11272
+f 11248 11024 10772
+f 11248 10772 11064
+f 11024 10740 10520
+f 11024 10520 10772
+f 10740 10448 10256
+f 10740 10256 10520
+f 10448 10176 9940
+f 10448 9940 10256
+f 10176 9860 9664
+f 10176 9664 9940
+f 9860 9512 9352
+f 9860 9352 9664
+f 9512 9204 8988
+f 9512 8988 9352
+f 9204 8852 8672
+f 9204 8672 8988
+f 8852 8464 8312
+f 8852 8312 8672
+f 8464 8060 7892
+f 8464 7892 8312
+f 8060 7708 7512
+f 8060 7512 7892
+f 7708 7248 7128
+f 7708 7128 7512
+f 7248 6788 6660
+f 7248 6660 7128
+f 6788 6336 6192
+f 6788 6192 6660
+f 6336 5904 5740
+f 6336 5740 6192
+f 5904 5348 5260
+f 5904 5260 5740
+f 5348 4776 4712
+f 5348 4712 5260
+f 4776 4212 4140
+f 4776 4140 4712
+f 4212 3700 3600
+f 4212 3600 4140
+f 3700 2984 2936
+f 3700 2936 3600
+f 2984 2228 2180
+f 2984 2180 2936
+f 2228 1392 1360
+f 2228 1360 2180
+f 1359 2179 2147
+f 1359 2147 1327
+f 2179 2935 2895
+f 2179 2895 2147
+f 2935 3599 3463
+f 2935 3463 2895
+f 3599 4139 4019
+f 3599 4019 3463
+f 4139 4711 4599
+f 4139 4599 4019
+f 4711 5259 5171
+f 4711 5171 4599
+f 5259 5739 5563
+f 5259 5563 5171
+f 5739 6191 6079
+f 5739 6079 5563
+f 6191 6659 6539
+f 6191 6539 6079
+f 6659 7127 6923
+f 6659 6923 6539
+f 7127 7511 7319
+f 7127 7319 6923
+f 7511 7891 7755
+f 7511 7755 7319
+f 7891 8311 8123
+f 7891 8123 7755
+f 8311 8671 8455
+f 8311 8455 8123
+f 8671 8987 8827
+f 8671 8827 8455
+f 8987 9351 9131
+f 8987 9131 8827
+f 9351 9663 9431
+f 9351 9431 9131
+f 9663 9939 9763
+f 9663 9763 9431
+f 9939 10255 10003
+f 9939 10003 9763
+f 10255 10519 10287
+f 10255 10287 10003
+f 10519 10771 10591
+f 10519 10591 10287
+f 10771 11063 10787
+f 10771 10787 10591
+f 11063 11271 11055
+f 11063 11055 10787
+f 11271 11515 11239
+f 11271 11239 11055
+f 11515 11715 11459
+f 11515 11459 11239
+f 11715 11903 11659
+f 11715 11659 11459
+f 11903 12119 11847
+f 11903 11847 11659
+f 12119 12275 12015
+f 12119 12015 11847
+f 12275 12459 12203
+f 12275 12203 12015
+f 12459 12599 12323
+f 12459 12323 12203
+f 12599 12751 12503
+f 12599 12503 12323
+f 12751 12891 12623
+f 12751 12623 12503
+f 12891 13011 12735
+f 12891 12735 12623
+f 13011 13127 12843
+f 13011 12843 12735
+f 13127 13215 12931
+f 13127 12931 12843
+f 13215 13295 13043
+f 13215 13043 12931
+f 13295 13383 13107
+f 13295 13107 13043
+f 13383 13451 13175
+f 13383 13175 13107
+f 13451 13491 13223
+f 13451 13223 13175
+f 13491 13539 13255
+f 13491 13255 13223
+f 13539 13579 13287
+f 13539 13287 13255
+f 13579 13587 13303
+f 13579 13303 13287
+f 13587 13611 13327
+f 13587 13327 13303
+f 13611 13612 13328
+f 13611 13328 13327
+f 13612 13588 13304
+f 13612 13304 13328
+f 13588 13580 13288
+f 13588 13288 13304
+f 13580 13540 13256
+f 13580 13256 13288
+f 13540 13492 13224
+f 13540 13224 13256
+f 13492 13452 13176
+f 13492 13176 13224
+f 13452 13384 13108
+f 13452 13108 13176
+f 13384 13296 13044
+f 13384 13044 13108
+f 13296 13216 12932
+f 13296 12932 13044
+f 13216 13128 12844
+f 13216 12844 12932
+f 13128 13012 12736
+f 13128 12736 12844
+f 13012 12892 12624
+f 13012 12624 12736
+f 12892 12752 12504
+f 12892 12504 12624
+f 12752 12600 12324
+f 12752 12324 12504
+f 12600 12460 12204
+f 12600 12204 12324
+f 12460 12276 12016
+f 12460 12016 12204
+f 12276 12120 11848
+f 12276 11848 12016
+f 12120 11904 11660
+f 12120 11660 11848
+f 11904 11716 11460
+f 11904 11460 11660
+f 11716 11516 11240
+f 11716 11240 11460
+f 11516 11272 11056
+f 11516 11056 11240
+f 11272 11064 10788
+f 11272 10788 11056
+f 11064 10772 10592
+f 11064 10592 10788
+f 10772 10520 10288
+f 10772 10288 10592
+f 10520 10256 10004
+f 10520 10004 10288
+f 10256 9940 9764
+f 10256 9764 10004
+f 9940 9664 9432
+f 9940 9432 9764
+f 9664 9352 9132
+f 9664 9132 9432
+f 9352 8988 8828
+f 9352 8828 9132
+f 8988 8672 8456
+f 8988 8456 8828
+f 8672 8312 8124
+f 8672 8124 8456
+f 8312 7892 7756
+f 8312 7756 8124
+f 7892 7512 7320
+f 7892 7320 7756
+f 7512 7128 6924
+f 7512 6924 7320
+f 7128 6660 6540
+f 7128 6540 6924
+f 6660 6192 6080
+f 6660 6080 6540
+f 6192 5740 5564
+f 6192 5564 6080
+f 5740 5260 5172
+f 5740 5172 5564
+f 5260 4712 4600
+f 5260 4600 5172
+f 4712 4140 4020
+f 4712 4020 4600
+f 4140 3600 3464
+f 4140 3464 4020
+f 3600 2936 2896
+f 3600 2896 3464
+f 2936 2180 2148
+f 2936 2148 2896
+f 2180 1360 1328
+f 2180 1328 2148
+f 1327 2147 2115
+f 1327 2115 1311
+f 2147 2895 2847
+f 2147 2847 2115
+f 2895 3463 3351
+f 2895 3351 2847
+f 3463 4019 3931
+f 3463 3931 3351
+f 4019 4599 4519
+f 4019 4519 3931
+f 4599 5171 4975
+f 4599 4975 4519
+f 5171 5563 5475
+f 5171 5475 4975
+f 5563 6079 5935
+f 5563 5935 5475
+f 6079 6539 6359
+f 6079 6359 5935
+f 6539 6923 6739
+f 6539 6739 6359
+f 6923 7319 7199
+f 6923 7199 6739
+f 7319 7755 7559
+f 7319 7559 7199
+f 7755 8123 7907
+f 7755 7907 7559
+f 8123 8455 8287
+f 8123 8287 7907
+f 8455 8827 8583
+f 8455 8583 8287
+f 8827 9131 8907
+f 8827 8907 8583
+f 9131 9431 9255
+f 9131 9255 8907
+f 9431 9763 9487
+f 9431 9487 9255
+f 9763 10003 9787
+f 9763 9787 9487
+f 10003 10287 10083
+f 10003 10083 9787
+f 10287 10591 10303
+f 10287 10303 10083
+f 10591 10787 10583
+f 10591 10583 10303
+f 10787 11055 10763
+f 10787 10763 10583
+f 11055 11239 10999
+f 11055 10999 10763
+f 11239 11459 11191
+f 11239 11191 10999
+f 11459 11659 11411
+f 11459 11411 11191
+f 11659 11847 11555
+f 11659 11555 11411
+f 11847 12015 11779
+f 11847 11779 11555
+f 12015 12203 11895
+f 12015 11895 11779
+f 12203 12323 12079
+f 12203 12079 11895
+f 12323 12503 12211
+f 12323 12211 12079
+f 12503 12623 12307
+f 12503 12307 12211
+f 12623 12735 12451
+f 12623 12451 12307
+f 12735 12843 12551
+f 12735 12551 12451
+f 12843 12931 12647
+f 12843 12647 12551
+f 12931 13043 12727
+f 12931 12727 12647
+f 13043 13107 12835
+f 13043 12835 12727
+f 13107 13175 12867
+f 13107 12867 12835
+f 13175 13223 12915
+f 13175 12915 12867
+f 13223 13255 12947
+f 13223 12947 12915
+f 13255 13287 12987
+f 13255 12987 12947
+f 13287 13303 13019
+f 13287 13019 12987
+f 13303 13327 13051
+f 13303 13051 13019
+f 13327 13328 13052
+f 13327 13052 13051
+f 13328 13304 13020
+f 13328 13020 13052
+f 13304 13288 12988
+f 13304 12988 13020
+f 13288 13256 12948
+f 13288 12948 12988
+f 13256 13224 12916
+f 13256 12916 12948
+f 13224 13176 12868
+f 13224 12868 12916
+f 13176 13108 12836
+f 13176 12836 12868
+f 13108 13044 12728
+f 13108 12728 12836
+f 13044 12932 12648
+f 13044 12648 12728
+f 12932 12844 12552
+f 12932 12552 12648
+f 12844 12736 12452
+f 12844 12452 12552
+f 12736 12624 12308
+f 12736 12308 12452
+f 12624 12504 12212
+f 12624 12212 12308
+f 12504 12324 12080
+f 12504 12080 12212
+f 12324 12204 11896
+f 12324 11896 12080
+f 12204 12016 11780
+f 12204 11780 11896
+f 12016 11848 11556
+f 12016 11556 11780
+f 11848 11660 11412
+f 11848 11412 11556
+f 11660 11460 11192
+f 11660 11192 11412
+f 11460 11240 11000
+f 11460 11000 11192
+f 11240 11056 10764
+f 11240 10764 11000
+f 11056 10788 10584
+f 11056 10584 10764
+f 10788 10592 10304
+f 10788 10304 10584
+f 10592 10288 10084
+f 10592 10084 10304
+f 10288 10004 9788
+f 10288 9788 10084
+f 10004 9764 9488
+f 10004 9488 9788
+f 9764 9432 9256
+f 9764 9256 9488
+f 9432 9132 8908
+f 9432 8908 9256
+f 9132 8828 8584
+f 9132 8584 8908
+f 8828 8456 8288
+f 8828 8288 8584
+f 8456 8124 7908
+f 8456 7908 8288
+f 8124 7756 7560
+f 8124 7560 7908
+f 7756 7320 7200
+f 7756 7200 7560
+f 7320 6924 6740
+f 7320 6740 7200
+f 6924 6540 6360
+f 6924 6360 6740
+f 6540 6080 5936
+f 6540 5936 6360
+f 6080 5564 5476
+f 6080 5476 5936
+f 5564 5172 4976
+f 5564 4976 5476
+f 5172 4600 4520
+f 5172 4520 4976
+f 4600 4020 3932
+f 4600 3932 4520
+f 4020 3464 3352
+f 4020 3352 3932
+f 3464 2896 2848
+f 3464 2848 3352
+f 2896 2148 2116
+f 2896 2116 2848
+f 2148 1328 1312
+f 2148 1312 2116
+f 1311 2115 2067
+f 1311 2067 1263
+f 2115 2847 2799
+f 2115 2799 2067
+f 2847 3351 3271
+f 2847 3271 2799
+f 3351 3931 3867
+f 3351 3867 3271
+f 3931 4519 4443
+f 3931 4443 3867
+f 4519 4975 4831
+f 4519 4831 4443
+f 4975 5475 5331
+f 4975 5331 4831
+f 5475 5935 5811
+f 5475 5811 5331
+f 5935 6359 6175
+f 5935 6175 5811
+f 6359 6739 6635
+f 6359 6635 6175
+f 6739 7199 7003
+f 6739 7003 6635
+f 7199 7559 7335
+f 7199 7335 7003
+f 7559 7907 7739
+f 7559 7739 7335
+f 7907 8287 8027
+f 7907 8027 7739
+f 8287 8583 8375
+f 8287 8375 8027
+f 8583 8907 8719
+f 8583 8719 8375
+f 8907 9255 8963
+f 8907 8963 8719
+f 9255 9487 9279
+f 9255 9279 8963
+f 9487 9787 9559
+f 9487 9559 9279
+f 9787 10083 9803
+f 9787 9803 9559
+f 10083 10303 10075
+f 10083 10075 9803
+f 10303 10583 10271
+f 10303 10271 10075
+f 10583 10763 10511
+f 10583 10511 10271
+f 10763 10999 10731
+f 10763 10731 10511
+f 10999 11191 10931
+f 10999 10931 10731
+f 11191 11411 11111
+f 11191 11111 10931
+f 11411 11555 11311
+f 11411 11311 11111
+f 11555 11779 11467
+f 11555 11467 11311
+f 11779 11895 11619
+f 11779 11619 11467
+f 11895 12079 11807
+f 11895 11807 11619
+f 12079 12211 11887
+f 12079 11887 11807
+f 12211 12307 12023
+f 12211 12023 11887
+f 12307 12451 12155
+f 12307 12155 12023
+f 12451 12551 12251
+f 12451 12251 12155
+f 12551 12647 12331
+f 12551 12331 12251
+f 12647 12727 12435
+f 12647 12435 12331
+f 12727 12835 12511
+f 12727 12511 12435
+f 12835 12867 12559
+f 12835 12559 12511
+f 12867 12915 12615
+f 12867 12615 12559
+f 12915 12947 12655
+f 12915 12655 12615
+f 12947 12987 12671
+f 12947 12671 12655
+f 12987 13019 12695
+f 12987 12695 12671
+f 13019 13051 12719
+f 13019 12719 12695
+f 13051 13052 12720
+f 13051 12720 12719
+f 13052 13020 12696
+f 13052 12696 12720
+f 13020 12988 12672
+f 13020 12672 12696
+f 12988 12948 12656
+f 12988 12656 12672
+f 12948 12916 12616
+f 12948 12616 12656
+f 12916 12868 12560
+f 12916 12560 12616
+f 12868 12836 12512
+f 12868 12512 12560
+f 12836 12728 12436
+f 12836 12436 12512
+f 12728 12648 12332
+f 12728 12332 12436
+f 12648 12552 12252
+f 12648 12252 12332
+f 12552 12452 12156
+f 12552 12156 12252
+f 12452 12308 12024
+f 12452 12024 12156
+f 12308 12212 11888
+f 12308 11888 12024
+f 12212 12080 11808
+f 12212 11808 11888
+f 12080 11896 11620
+f 12080 11620 11808
+f 11896 11780 11468
+f 11896 11468 11620
+f 11780 11556 11312
+f 11780 11312 11468
+f 11556 11412 11112
+f 11556 11112 11312
+f 11412 11192 10932
+f 11412 10932 11112
+f 11192 11000 10732
+f 11192 10732 10932
+f 11000 10764 10512
+f 11000 10512 10732
+f 10764 10584 10272
+f 10764 10272 10512
+f 10584 10304 10076
+f 10584 10076 10272
+f 10304 10084 9804
+f 10304 9804 10076
+f 10084 9788 9560
+f 10084 9560 9804
+f 9788 9488 9280
+f 9788 9280 9560
+f 9488 9256 8964
+f 9488 8964 9280
+f 9256 8908 8720
+f 9256 8720 8964
+f 8908 8584 8376
+f 8908 8376 8720
+f 8584 8288 8028
+f 8584 8028 8376
+f 8288 7908 7740
+f 8288 7740 8028
+f 7908 7560 7336
+f 7908 7336 7740
+f 7560 7200 7004
+f 7560 7004 7336
+f 7200 6740 6636
+f 7200 6636 7004
+f 6740 6360 6176
+f 6740 6176 6636
+f 6360 5936 5812
+f 6360 5812 6176
+f 5936 5476 5332
+f 5936 5332 5812
+f 5476 4976 4832
+f 5476 4832 5332
+f 4976 4520 4444
+f 4976 4444 4832
+f 4520 3932 3868
+f 4520 3868 4444
+f 3932 3352 3272
+f 3932 3272 3868
+f 3352 2848 2800
+f 3352 2800 3272
+f 2848 2116 2068
+f 2848 2068 2800
+f 2116 1312 1264
+f 2116 1264 2068
+f 1263 2067 2035
+f 1263 2035 1247
+f 2067 2799 2659
+f 2067 2659 2035
+f 2799 3271 3175
+f 2799 3175 2659
+f 3271 3867 3763
+f 3271 3763 3175
+f 3867 4443 4227
+f 3867 4227 3763
+f 4443 4831 4735
+f 4443 4735 4227
+f 4831 5331 5219
+f 4831 5219 4735
+f 5331 5811 5603
+f 5331 5603 5219
+f 5811 6175 6015
+f 5811 6015 5603
+f 6175 6635 6455
+f 6175 6455 6015
+f 6635 7003 6779
+f 6635 6779 6455
+f 7003 7335 7175
+f 7003 7175 6779
+f 7335 7739 7479
+f 7335 7479 7175
+f 7739 8027 7827
+f 7739 7827 7479
+f 8027 8375 8171
+f 8027 8171 7827
+f 8375 8719 8447
+f 8375 8447 8171
+f 8719 8963 8763
+f 8719 8763 8447
+f 8963 9279 9035
+f 8963 9035 8763
+f 9279 9559 9295
+f 9279 9295 9035
+f 9559 9803 9551
+f 9559 9551 9295
+f 9803 10075 9779
+f 9803 9779 9551
+f 10075 10271 9995
+f 10075 9995 9779
+f 10271 10511 10247
+f 10271 10247 9995
+f 10511 10731 10431
+f 10511 10431 10247
+f 10731 10931 10643
+f 10731 10643 10431
+f 10931 11111 10827
+f 10931 10827 10643
+f 11111 11311 11015
+f 11111 11015 10827
+f 11311 11467 11167
+f 11311 11167 11015
+f 11467 11619 11343
+f 11467 11343 11167
+f 11619 11807 11451
+f 11619 11451 11343
+f 11807 11887 11587
+f 11807 11587 11451
+f 11887 12023 11731
+f 11887 11731 11587
+f 12023 12155 11831
+f 12023 11831 11731
+f 12155 12251 11935
+f 12155 11935 11831
+f 12251 12331 12007
+f 12251 12007 11935
+f 12331 12435 12111
+f 12331 12111 12007
+f 12435 12511 12187
+f 12435 12187 12111
+f 12511 12559 12243
+f 12511 12243 12187
+f 12559 12615 12283
+f 12559 12283 12243
+f 12615 12655 12299
+f 12615 12299 12283
+f 12655 12671 12363
+f 12655 12363 12299
+f 12671 12695 12379
+f 12671 12379 12363
+f 12695 12719 12419
+f 12695 12419 12379
+f 12719 12720 12420
+f 12719 12420 12419
+f 12720 12696 12380
+f 12720 12380 12420
+f 12696 12672 12364
+f 12696 12364 12380
+f 12672 12656 12300
+f 12672 12300 12364
+f 12656 12616 12284
+f 12656 12284 12300
+f 12616 12560 12244
+f 12616 12244 12284
+f 12560 12512 12188
+f 12560 12188 12244
+f 12512 12436 12112
+f 12512 12112 12188
+f 12436 12332 12008
+f 12436 12008 12112
+f 12332 12252 11936
+f 12332 11936 12008
+f 12252 12156 11832
+f 12252 11832 11936
+f 12156 12024 11732
+f 12156 11732 11832
+f 12024 11888 11588
+f 12024 11588 11732
+f 11888 11808 11452
+f 11888 11452 11588
+f 11808 11620 11344
+f 11808 11344 11452
+f 11620 11468 11168
+f 11620 11168 11344
+f 11468 11312 11016
+f 11468 11016 11168
+f 11312 11112 10828
+f 11312 10828 11016
+f 11112 10932 10644
+f 11112 10644 10828
+f 10932 10732 10432
+f 10932 10432 10644
+f 10732 10512 10248
+f 10732 10248 10432
+f 10512 10272 9996
+f 10512 9996 10248
+f 10272 10076 9780
+f 10272 9780 9996
+f 10076 9804 9552
+f 10076 9552 9780
+f 9804 9560 9296
+f 9804 9296 9552
+f 9560 9280 9036
+f 9560 9036 9296
+f 9280 8964 8764
+f 9280 8764 9036
+f 8964 8720 8448
+f 8964 8448 8764
+f 8720 8376 8172
+f 8720 8172 8448
+f 8376 8028 7828
+f 8376 7828 8172
+f 8028 7740 7480
+f 8028 7480 7828
+f 7740 7336 7176
+f 7740 7176 7480
+f 7336 7004 6780
+f 7336 6780 7176
+f 7004 6636 6456
+f 7004 6456 6780
+f 6636 6176 6016
+f 6636 6016 6456
+f 6176 5812 5604
+f 6176 5604 6016
+f 5812 5332 5220
+f 5812 5220 5604
+f 5332 4832 4736
+f 5332 4736 5220
+f 4832 4444 4228
+f 4832 4228 4736
+f 4444 3868 3764
+f 4444 3764 4228
+f 3868 3272 3176
+f 3868 3176 3764
+f 3272 2800 2660
+f 3272 2660 3176
+f 2800 2068 2036
+f 2800 2036 2660
+f 2068 1264 1248
+f 2068 1248 2036
+f 1247 2035 1995
+f 1247 1995 1199
+f 2035 2659 2531
+f 2035 2531 1995
+f 2659 3175 3111
+f 2659 3111 2531
+f 3175 3763 3715
+f 3175 3715 3111
+f 3763 4227 4075
+f 3763 4075 3715
+f 4227 4735 4583
+f 4227 4583 4075
+f 4735 5219 5023
+f 4735 5023 4583
+f 5219 5603 5419
+f 5219 5419 5023
+f 5603 6015 5887
+f 5603 5887 5419
+f 6015 6455 6215
+f 6015 6215 5887
+f 6455 6779 6619
+f 6455 6619 6215
+f 6779 7175 6955
+f 6779 6955 6619
+f 7175 7479 7271
+f 7175 7271 6955
+f 7479 7827 7631
+f 7479 7631 7271
+f 7827 8171 7915
+f 7827 7915 7631
+f 8171 8447 8231
+f 8171 8231 7915
+f 8447 8763 8495
+f 8447 8495 8231
+f 8763 9035 8779
+f 8763 8779 8495
+f 9035 9295 9027
+f 9035 9027 8779
+f 9295 9551 9271
+f 9295 9271 9027
+f 9551 9779 9479
+f 9551 9479 9271
+f 9779 9995 9755
+f 9779 9755 9479
+f 9995 10247 9923
+f 9995 9923 9755
+f 10247 10431 10167
+f 10247 10167 9923
+f 10431 10643 10335
+f 10431 10335 10167
+f 10643 10827 10527
+f 10643 10527 10335
+f 10827 11015 10691
+f 10827 10691 10527
+f 11015 11167 10851
+f 11015 10851 10691
+f 11167 11343 11007
+f 11167 11007 10851
+f 11343 11451 11127
+f 11343 11127 11007
+f 11451 11587 11263
+f 11451 11263 11127
+f 11587 11731 11403
+f 11587 11403 11263
+f 11731 11831 11507
+f 11731 11507 11403
+f 11831 11935 11595
+f 11831 11595 11507
+f 11935 12007 11699
+f 11935 11699 11595
+f 12007 12111 11791
+f 12007 11791 11699
+f 12111 12187 11839
+f 12111 11839 11791
+f 12187 12243 11879
+f 12187 11879 11839
+f 12243 12283 11943
+f 12243 11943 11879
+f 12283 12299 11983
+f 12283 11983 11943
+f 12299 12363 11999
+f 12299 11999 11983
+f 12363 12379 12031
+f 12363 12031 11999
+f 12379 12419 12055
+f 12379 12055 12031
+f 12419 12420 12056
+f 12419 12056 12055
+f 12420 12380 12032
+f 12420 12032 12056
+f 12380 12364 12000
+f 12380 12000 12032
+f 12364 12300 11984
+f 12364 11984 12000
+f 12300 12284 11944
+f 12300 11944 11984
+f 12284 12244 11880
+f 12284 11880 11944
+f 12244 12188 11840
+f 12244 11840 11880
+f 12188 12112 11792
+f 12188 11792 11840
+f 12112 12008 11700
+f 12112 11700 11792
+f 12008 11936 11596
+f 12008 11596 11700
+f 11936 11832 11508
+f 11936 11508 11596
+f 11832 11732 11404
+f 11832 11404 11508
+f 11732 11588 11264
+f 11732 11264 11404
+f 11588 11452 11128
+f 11588 11128 11264
+f 11452 11344 11008
+f 11452 11008 11128
+f 11344 11168 10852
+f 11344 10852 11008
+f 11168 11016 10692
+f 11168 10692 10852
+f 11016 10828 10528
+f 11016 10528 10692
+f 10828 10644 10336
+f 10828 10336 10528
+f 10644 10432 10168
+f 10644 10168 10336
+f 10432 10248 9924
+f 10432 9924 10168
+f 10248 9996 9756
+f 10248 9756 9924
+f 9996 9780 9480
+f 9996 9480 9756
+f 9780 9552 9272
+f 9780 9272 9480
+f 9552 9296 9028
+f 9552 9028 9272
+f 9296 9036 8780
+f 9296 8780 9028
+f 9036 8764 8496
+f 9036 8496 8780
+f 8764 8448 8232
+f 8764 8232 8496
+f 8448 8172 7916
+f 8448 7916 8232
+f 8172 7828 7632
+f 8172 7632 7916
+f 7828 7480 7272
+f 7828 7272 7632
+f 7480 7176 6956
+f 7480 6956 7272
+f 7176 6780 6620
+f 7176 6620 6956
+f 6780 6456 6216
+f 6780 6216 6620
+f 6456 6016 5888
+f 6456 5888 6216
+f 6016 5604 5420
+f 6016 5420 5888
+f 5604 5220 5024
+f 5604 5024 5420
+f 5220 4736 4584
+f 5220 4584 5024
+f 4736 4228 4076
+f 4736 4076 4584
+f 4228 3764 3716
+f 4228 3716 4076
+f 3764 3176 3112
+f 3764 3112 3716
+f 3176 2660 2532
+f 3176 2532 3112
+f 2660 2036 1996
+f 2660 1996 2532
+f 2036 1248 1200
+f 2036 1200 1996
+f 1199 1995 1947
+f 1199 1947 1183
+f 1995 2531 2451
+f 1995 2451 1947
+f 2531 3111 3015
+f 2531 3015 2451
+f 3111 3715 3511
+f 3111 3511 3015
+f 3715 4075 3979
+f 3715 3979 3511
+f 4075 4583 4487
+f 4075 4487 3979
+f 4583 5023 4839
+f 4583 4839 4487
+f 5023 5419 5299
+f 5023 5299 4839
+f 5419 5887 5651
+f 5419 5651 5299
+f 5887 6215 6039
+f 5887 6039 5651
+f 6215 6619 6415
+f 6215 6415 6039
+f 6619 6955 6715
+f 6619 6715 6415
+f 6955 7271 7079
+f 6955 7079 6715
+f 7271 7631 7351
+f 7271 7351 7079
+f 7631 7915 7699
+f 7631 7699 7351
+f 7915 8231 7947
+f 7915 7947 7699
+f 8231 8495 8255
+f 8231 8255 7947
+f 8495 8779 8487
+f 8495 8487 8255
+f 8779 9027 8755
+f 8779 8755 8487
+f 9027 9271 8955
+f 9027 8955 8755
+f 9271 9479 9247
+f 9271 9247 8955
+f 9479 9755 9415
+f 9479 9415 9247
+f 9755 9923 9647
+f 9755 9647 9415
+f 9923 10167 9843
+f 9923 9843 9647
+f 10167 10335 10011
+f 10167 10011 9843
+f 10335 10527 10215
+f 10335 10215 10011
+f 10527 10691 10375
+f 10527 10375 10215
+f 10691 10851 10535
+f 10691 10535 10375
+f 10851 11007 10667
+f 10851 10667 10535
+f 11007 11127 10795
+f 11007 10795 10667
+f 11127 11263 10939
+f 11127 10939 10795
+f 11263 11403 11079
+f 11263 11079 10939
+f 11403 11507 11135
+f 11403 11135 11079
+f 11507 11595 11231
+f 11507 11231 11135
+f 11595 11699 11351
+f 11595 11351 11231
+f 11699 11791 11427
+f 11699 11427 11351
+f 11791 11839 11483
+f 11791 11483 11427
+f 11839 11879 11547
+f 11839 11547 11483
+f 11879 11943 11563
+f 11879 11563 11547
+f 11943 11983 11611
+f 11943 11611 11563
+f 11983 11999 11651
+f 11983 11651 11611
+f 11999 12031 11667
+f 11999 11667 11651
+f 12031 12055 11683
+f 12031 11683 11667
+f 12055 12056 11684
+f 12055 11684 11683
+f 12056 12032 11668
+f 12056 11668 11684
+f 12032 12000 11652
+f 12032 11652 11668
+f 12000 11984 11612
+f 12000 11612 11652
+f 11984 11944 11564
+f 11984 11564 11612
+f 11944 11880 11548
+f 11944 11548 11564
+f 11880 11840 11484
+f 11880 11484 11548
+f 11840 11792 11428
+f 11840 11428 11484
+f 11792 11700 11352
+f 11792 11352 11428
+f 11700 11596 11232
+f 11700 11232 11352
+f 11596 11508 11136
+f 11596 11136 11232
+f 11508 11404 11080
+f 11508 11080 11136
+f 11404 11264 10940
+f 11404 10940 11080
+f 11264 11128 10796
+f 11264 10796 10940
+f 11128 11008 10668
+f 11128 10668 10796
+f 11008 10852 10536
+f 11008 10536 10668
+f 10852 10692 10376
+f 10852 10376 10536
+f 10692 10528 10216
+f 10692 10216 10376
+f 10528 10336 10012
+f 10528 10012 10216
+f 10336 10168 9844
+f 10336 9844 10012
+f 10168 9924 9648
+f 10168 9648 9844
+f 9924 9756 9416
+f 9924 9416 9648
+f 9756 9480 9248
+f 9756 9248 9416
+f 9480 9272 8956
+f 9480 8956 9248
+f 9272 9028 8756
+f 9272 8756 8956
+f 9028 8780 8488
+f 9028 8488 8756
+f 8780 8496 8256
+f 8780 8256 8488
+f 8496 8232 7948
+f 8496 7948 8256
+f 8232 7916 7700
+f 8232 7700 7948
+f 7916 7632 7352
+f 7916 7352 7700
+f 7632 7272 7080
+f 7632 7080 7352
+f 7272 6956 6716
+f 7272 6716 7080
+f 6956 6620 6416
+f 6956 6416 6716
+f 6620 6216 6040
+f 6620 6040 6416
+f 6216 5888 5652
+f 6216 5652 6040
+f 5888 5420 5300
+f 5888 5300 5652
+f 5420 5024 4840
+f 5420 4840 5300
+f 5024 4584 4488
+f 5024 4488 4840
+f 4584 4076 3980
+f 4584 3980 4488
+f 4076 3716 3512
+f 4076 3512 3980
+f 3716 3112 3016
+f 3716 3016 3512
+f 3112 2532 2452
+f 3112 2452 3016
+f 2532 1996 1948
+f 2532 1948 2452
+f 1996 1200 1184
+f 1996 1184 1948
+f 1183 1947 1915
+f 1183 1915 1167
+f 1947 2451 2355
+f 1947 2355 1915
+f 2451 3015 2951
+f 2451 2951 2355
+f 3015 3511 3375
+f 3015 3375 2951
+f 3511 3979 3875
+f 3511 3875 3375
+f 3979 4487 4275
+f 3979 4275 3875
+f 4487 4839 4687
+f 4487 4687 4275
+f 4839 5299 5135
+f 4839 5135 4687
+f 5299 5651 5467
+f 5299 5467 5135
+f 5651 6039 5863
+f 5651 5863 5467
+f 6039 6415 6135
+f 6039 6135 5863
+f 6415 6715 6523
+f 6415 6523 6135
+f 6715 7079 6819
+f 6715 6819 6523
+f 7079 7351 7143
+f 7079 7143 6819
+f 7351 7699 7407
+f 7351 7407 7143
+f 7699 7947 7715
+f 7699 7715 7407
+f 7947 8255 7939
+f 7947 7939 7715
+f 8255 8487 8223
+f 8255 8223 7939
+f 8487 8755 8431
+f 8487 8431 8223
+f 8755 8955 8703
+f 8755 8703 8431
+f 8955 9247 8891
+f 8955 8891 8703
+f 9247 9415 9115
+f 9247 9115 8891
+f 9415 9647 9343
+f 9415 9343 9115
+f 9647 9843 9495
+f 9647 9495 9343
+f 9843 10011 9715
+f 9843 9715 9495
+f 10011 10215 9867
+f 10011 9867 9715
+f 10215 10375 10019
+f 10215 10019 9867
+f 10375 10535 10183
+f 10375 10183 10019
+f 10535 10667 10319
+f 10535 10319 10183
+f 10667 10795 10439
+f 10667 10439 10319
+f 10795 10939 10611
+f 10795 10611 10439
+f 10939 11079 10675
+f 10939 10675 10611
+f 11079 11135 10779
+f 11079 10779 10675
+f 11135 11231 10891
+f 11135 10891 10779
+f 11231 11351 10979
+f 11231 10979 10891
+f 11351 11427 11071
+f 11351 11071 10979
+f 11427 11483 11103
+f 11427 11103 11071
+f 11483 11547 11151
+f 11483 11151 11103
+f 11547 11563 11199
+f 11547 11199 11151
+f 11563 11611 11223
+f 11563 11223 11199
+f 11611 11651 11279
+f 11611 11279 11223
+f 11651 11667 11295
+f 11651 11295 11279
+f 11667 11683 11319
+f 11667 11319 11295
+f 11683 11684 11320
+f 11683 11320 11319
+f 11684 11668 11296
+f 11684 11296 11320
+f 11668 11652 11280
+f 11668 11280 11296
+f 11652 11612 11224
+f 11652 11224 11280
+f 11612 11564 11200
+f 11612 11200 11224
+f 11564 11548 11152
+f 11564 11152 11200
+f 11548 11484 11104
+f 11548 11104 11152
+f 11484 11428 11072
+f 11484 11072 11104
+f 11428 11352 10980
+f 11428 10980 11072
+f 11352 11232 10892
+f 11352 10892 10980
+f 11232 11136 10780
+f 11232 10780 10892
+f 11136 11080 10676
+f 11136 10676 10780
+f 11080 10940 10612
+f 11080 10612 10676
+f 10940 10796 10440
+f 10940 10440 10612
+f 10796 10668 10320
+f 10796 10320 10440
+f 10668 10536 10184
+f 10668 10184 10320
+f 10536 10376 10020
+f 10536 10020 10184
+f 10376 10216 9868
+f 10376 9868 10020
+f 10216 10012 9716
+f 10216 9716 9868
+f 10012 9844 9496
+f 10012 9496 9716
+f 9844 9648 9344
+f 9844 9344 9496
+f 9648 9416 9116
+f 9648 9116 9344
+f 9416 9248 8892
+f 9416 8892 9116
+f 9248 8956 8704
+f 9248 8704 8892
+f 8956 8756 8432
+f 8956 8432 8704
+f 8756 8488 8224
+f 8756 8224 8432
+f 8488 8256 7940
+f 8488 7940 8224
+f 8256 7948 7716
+f 8256 7716 7940
+f 7948 7700 7408
+f 7948 7408 7716
+f 7700 7352 7144
+f 7700 7144 7408
+f 7352 7080 6820
+f 7352 6820 7144
+f 7080 6716 6524
+f 7080 6524 6820
+f 6716 6416 6136
+f 6716 6136 6524
+f 6416 6040 5864
+f 6416 5864 6136
+f 6040 5652 5468
+f 6040 5468 5864
+f 5652 5300 5136
+f 5652 5136 5468
+f 5300 4840 4688
+f 5300 4688 5136
+f 4840 4488 4276
+f 4840 4276 4688
+f 4488 3980 3876
+f 4488 3876 4276
+f 3980 3512 3376
+f 3980 3376 3876
+f 3512 3016 2952
+f 3512 2952 3376
+f 3016 2452 2356
+f 3016 2356 2952
+f 2452 1948 1916
+f 2452 1916 2356
+f 1948 1184 1168
+f 1948 1168 1916
+f 1167 1915 1883
+f 1167 1883 1127
+f 1915 2355 2275
+f 1915 2275 1883
+f 2355 2951 2863
+f 2355 2863 2275
+f 2951 3375 3247
+f 2951 3247 2863
+f 3375 3875 3747
+f 3375 3747 3247
+f 3875 4275 4107
+f 3875 4107 3747
+f 4275 4687 4551
+f 4275 4551 4107
+f 4687 5135 4879
+f 4687 4879 4551
+f 5135 5467 5283
+f 5135 5283 4879
+f 5467 5863 5587
+f 5467 5587 5283
+f 5863 6135 5951
+f 5863 5951 5587
+f 6135 6523 6239
+f 6135 6239 5951
+f 6523 6819 6571
+f 6523 6571 6239
+f 6819 7143 6843
+f 6819 6843 6571
+f 7143 7407 7151
+f 7143 7151 6843
+f 7407 7715 7399
+f 7407 7399 7151
+f 7715 7939 7691
+f 7715 7691 7399
+f 7939 8223 7899
+f 7939 7899 7691
+f 8223 8431 8155
+f 8223 8155 7899
+f 8431 8703 8359
+f 8431 8359 8155
+f 8703 8891 8567
+f 8703 8567 8359
+f 8891 9115 8819
+f 8891 8819 8567
+f 9115 9343 8971
+f 9115 8971 8819
+f 9343 9495 9187
+f 9343 9187 8971
+f 9495 9715 9359
+f 9495 9359 9187
+f 9715 9867 9503
+f 9715 9503 9359
+f 9867 10019 9679
+f 9867 9679 9503
+f 10019 10183 9819
+f 10019 9819 9679
+f 10183 10319 9947
+f 10183 9947 9819
+f 10319 10439 10107
+f 10319 10107 9947
+f 10439 10611 10207
+f 10439 10207 10107
+f 10611 10675 10295
+f 10611 10295 10207
+f 10675 10779 10399
+f 10675 10399 10295
+f 10779 10891 10503
+f 10779 10503 10399
+f 10891 10979 10619
+f 10891 10619 10503
+f 10979 11071 10659
+f 10979 10659 10619
+f 11071 11103 10723
+f 11071 10723 10659
+f 11103 11151 10755
+f 11103 10755 10723
+f 11151 11199 10803
+f 11151 10803 10755
+f 11199 11223 10859
+f 11199 10859 10803
+f 11223 11279 10883
+f 11223 10883 10859
+f 11279 11295 10899
+f 11279 10899 10883
+f 11295 11319 10907
+f 11295 10907 10899
+f 11319 11320 10908
+f 11319 10908 10907
+f 11320 11296 10900
+f 11320 10900 10908
+f 11296 11280 10884
+f 11296 10884 10900
+f 11280 11224 10860
+f 11280 10860 10884
+f 11224 11200 10804
+f 11224 10804 10860
+f 11200 11152 10756
+f 11200 10756 10804
+f 11152 11104 10724
+f 11152 10724 10756
+f 11104 11072 10660
+f 11104 10660 10724
+f 11072 10980 10620
+f 11072 10620 10660
+f 10980 10892 10504
+f 10980 10504 10620
+f 10892 10780 10400
+f 10892 10400 10504
+f 10780 10676 10296
+f 10780 10296 10400
+f 10676 10612 10208
+f 10676 10208 10296
+f 10612 10440 10108
+f 10612 10108 10208
+f 10440 10320 9948
+f 10440 9948 10108
+f 10320 10184 9820
+f 10320 9820 9948
+f 10184 10020 9680
+f 10184 9680 9820
+f 10020 9868 9504
+f 10020 9504 9680
+f 9868 9716 9360
+f 9868 9360 9504
+f 9716 9496 9188
+f 9716 9188 9360
+f 9496 9344 8972
+f 9496 8972 9188
+f 9344 9116 8820
+f 9344 8820 8972
+f 9116 8892 8568
+f 9116 8568 8820
+f 8892 8704 8360
+f 8892 8360 8568
+f 8704 8432 8156
+f 8704 8156 8360
+f 8432 8224 7900
+f 8432 7900 8156
+f 8224 7940 7692
+f 8224 7692 7900
+f 7940 7716 7400
+f 7940 7400 7692
+f 7716 7408 7152
+f 7716 7152 7400
+f 7408 7144 6844
+f 7408 6844 7152
+f 7144 6820 6572
+f 7144 6572 6844
+f 6820 6524 6240
+f 6820 6240 6572
+f 6524 6136 5952
+f 6524 5952 6240
+f 6136 5864 5588
+f 6136 5588 5952
+f 5864 5468 5284
+f 5864 5284 5588
+f 5468 5136 4880
+f 5468 4880 5284
+f 5136 4688 4552
+f 5136 4552 4880
+f 4688 4276 4108
+f 4688 4108 4552
+f 4276 3876 3748
+f 4276 3748 4108
+f 3876 3376 3248
+f 3876 3248 3748
+f 3376 2952 2864
+f 3376 2864 3248
+f 2952 2356 2276
+f 2952 2276 2864
+f 2356 1916 1884
+f 2356 1884 2276
+f 1916 1168 1128
+f 1916 1128 1884
+f 1127 1883 1823
+f 1127 1823 1095
+f 1883 2275 2211
+f 1883 2211 1823
+f 2275 2863 2763
+f 2275 2763 2211
+f 2863 3247 3143
+f 2863 3143 2763
+f 3247 3747 3623
+f 3247 3623 3143
+f 3747 4107 3963
+f 3747 3963 3623
+f 4107 4551 4379
+f 4107 4379 3963
+f 4551 4879 4703
+f 4551 4703 4379
+f 4879 5283 5055
+f 4879 5055 4703
+f 5283 5587 5379
+f 5283 5379 5055
+f 5587 5951 5691
+f 5587 5691 5379
+f 5951 6239 5999
+f 5951 5999 5691
+f 6239 6571 6287
+f 6239 6287 5999
+f 6571 6843 6587
+f 6571 6587 6287
+f 6843 7151 6835
+f 6843 6835 6587
+f 7151 7399 7135
+f 7151 7135 6835
+f 7399 7691 7343
+f 7399 7343 7135
+f 7691 7899 7623
+f 7691 7623 7343
+f 7899 8155 7819
+f 7899 7819 7623
+f 8155 8359 8011
+f 8155 8011 7819
+f 8359 8567 8279
+f 8359 8279 8011
+f 8567 8819 8423
+f 8567 8423 8279
+f 8819 8971 8655
+f 8819 8655 8423
+f 8971 9187 8835
+f 8971 8835 8655
+f 9187 9359 8979
+f 9187 8979 8835
+f 9359 9503 9155
+f 9359 9155 8979
+f 9503 9679 9311
+f 9503 9311 9155
+f 9679 9819 9439
+f 9679 9439 9311
+f 9819 9947 9575
+f 9819 9575 9439
+f 9947 10107 9723
+f 9947 9723 9575
+f 10107 10207 9811
+f 10107 9811 9723
+f 10207 10295 9899
+f 10207 9899 9811
+f 10295 10399 9987
+f 10295 9987 9899
+f 10399 10503 10123
+f 10399 10123 9987
+f 10503 10619 10191
+f 10503 10191 10123
+f 10619 10659 10263
+f 10619 10263 10191
+f 10659 10723 10311
+f 10659 10311 10263
+f 10723 10755 10367
+f 10723 10367 10311
+f 10755 10803 10391
+f 10755 10391 10367
+f 10803 10859 10415
+f 10803 10415 10391
+f 10859 10883 10463
+f 10859 10463 10415
+f 10883 10899 10479
+f 10883 10479 10463
+f 10899 10907 10487
+f 10899 10487 10479
+f 10907 10908 10488
+f 10907 10488 10487
+f 10908 10900 10480
+f 10908 10480 10488
+f 10900 10884 10464
+f 10900 10464 10480
+f 10884 10860 10416
+f 10884 10416 10464
+f 10860 10804 10392
+f 10860 10392 10416
+f 10804 10756 10368
+f 10804 10368 10392
+f 10756 10724 10312
+f 10756 10312 10368
+f 10724 10660 10264
+f 10724 10264 10312
+f 10660 10620 10192
+f 10660 10192 10264
+f 10620 10504 10124
+f 10620 10124 10192
+f 10504 10400 9988
+f 10504 9988 10124
+f 10400 10296 9900
+f 10400 9900 9988
+f 10296 10208 9812
+f 10296 9812 9900
+f 10208 10108 9724
+f 10208 9724 9812
+f 10108 9948 9576
+f 10108 9576 9724
+f 9948 9820 9440
+f 9948 9440 9576
+f 9820 9680 9312
+f 9820 9312 9440
+f 9680 9504 9156
+f 9680 9156 9312
+f 9504 9360 8980
+f 9504 8980 9156
+f 9360 9188 8836
+f 9360 8836 8980
+f 9188 8972 8656
+f 9188 8656 8836
+f 8972 8820 8424
+f 8972 8424 8656
+f 8820 8568 8280
+f 8820 8280 8424
+f 8568 8360 8012
+f 8568 8012 8280
+f 8360 8156 7820
+f 8360 7820 8012
+f 8156 7900 7624
+f 8156 7624 7820
+f 7900 7692 7344
+f 7900 7344 7624
+f 7692 7400 7136
+f 7692 7136 7344
+f 7400 7152 6836
+f 7400 6836 7136
+f 7152 6844 6588
+f 7152 6588 6836
+f 6844 6572 6288
+f 6844 6288 6588
+f 6572 6240 6000
+f 6572 6000 6288
+f 6240 5952 5692
+f 6240 5692 6000
+f 5952 5588 5380
+f 5952 5380 5692
+f 5588 5284 5056
+f 5588 5056 5380
+f 5284 4880 4704
+f 5284 4704 5056
+f 4880 4552 4380
+f 4880 4380 4704
+f 4552 4108 3964
+f 4552 3964 4380
+f 4108 3748 3624
+f 4108 3624 3964
+f 3748 3248 3144
+f 3748 3144 3624
+f 3248 2864 2764
+f 3248 2764 3144
+f 2864 2276 2212
+f 2864 2212 2764
+f 2276 1884 1824
+f 2276 1824 2212
+f 1884 1128 1096
+f 1884 1096 1824
+f 1095 1823 1647
+f 1095 1647 1063
+f 1823 2211 2131
+f 1823 2131 1647
+f 2211 2763 2579
+f 2211 2579 2131
+f 2763 3143 2999
+f 2763 2999 2579
+f 3143 3623 3391
+f 3143 3391 2999
+f 3623 3963 3811
+f 3623 3811 3391
+f 3963 4379 4155
+f 3963 4155 3811
+f 4379 4703 4535
+f 4379 4535 4155
+f 4703 5055 4799
+f 4703 4799 4535
+f 5055 5379 5195
+f 5055 5195 4799
+f 5379 5691 5443
+f 5379 5443 5195
+f 5691 5999 5787
+f 5691 5787 5443
+f 5999 6287 6047
+f 5999 6047 5787
+f 6287 6587 6279
+f 6287 6279 6047
+f 6587 6835 6563
+f 6587 6563 6279
+f 6835 7135 6811
+f 6835 6811 6563
+f 7135 7343 7067
+f 7135 7067 6811
+f 7343 7623 7255
+f 7343 7255 7067
+f 7623 7819 7463
+f 7623 7463 7255
+f 7819 8011 7731
+f 7819 7731 7463
+f 8011 8279 7883
+f 8011 7883 7731
+f 8279 8423 8099
+f 8279 8099 7883
+f 8423 8655 8303
+f 8423 8303 8099
+f 8655 8835 8415
+f 8655 8415 8303
+f 8835 8979 8599
+f 8835 8599 8415
+f 8979 9155 8787
+f 8979 8787 8599
+f 9155 9311 8899
+f 9155 8899 8787
+f 9311 9439 9043
+f 9311 9043 8899
+f 9439 9575 9195
+f 9439 9195 9043
+f 9575 9723 9303
+f 9575 9303 9195
+f 9723 9811 9391
+f 9723 9391 9303
+f 9811 9899 9471
+f 9811 9471 9391
+f 9899 9987 9607
+f 9899 9607 9471
+f 9987 10123 9699
+f 9987 9699 9607
+f 10123 10191 9771
+f 10123 9771 9699
+f 10191 10263 9827
+f 10191 9827 9771
+f 10263 10311 9891
+f 10263 9891 9827
+f 10311 10367 9915
+f 10311 9915 9891
+f 10367 10391 9963
+f 10367 9963 9915
+f 10391 10415 9979
+f 10391 9979 9963
+f 10415 10463 10035
+f 10415 10035 9979
+f 10463 10479 10067
+f 10463 10067 10035
+f 10479 10487 10091
+f 10479 10091 10067
+f 10487 10488 10092
+f 10487 10092 10091
+f 10488 10480 10068
+f 10488 10068 10092
+f 10480 10464 10036
+f 10480 10036 10068
+f 10464 10416 9980
+f 10464 9980 10036
+f 10416 10392 9964
+f 10416 9964 9980
+f 10392 10368 9916
+f 10392 9916 9964
+f 10368 10312 9892
+f 10368 9892 9916
+f 10312 10264 9828
+f 10312 9828 9892
+f 10264 10192 9772
+f 10264 9772 9828
+f 10192 10124 9700
+f 10192 9700 9772
+f 10124 9988 9608
+f 10124 9608 9700
+f 9988 9900 9472
+f 9988 9472 9608
+f 9900 9812 9392
+f 9900 9392 9472
+f 9812 9724 9304
+f 9812 9304 9392
+f 9724 9576 9196
+f 9724 9196 9304
+f 9576 9440 9044
+f 9576 9044 9196
+f 9440 9312 8900
+f 9440 8900 9044
+f 9312 9156 8788
+f 9312 8788 8900
+f 9156 8980 8600
+f 9156 8600 8788
+f 8980 8836 8416
+f 8980 8416 8600
+f 8836 8656 8304
+f 8836 8304 8416
+f 8656 8424 8100
+f 8656 8100 8304
+f 8424 8280 7884
+f 8424 7884 8100
+f 8280 8012 7732
+f 8280 7732 7884
+f 8012 7820 7464
+f 8012 7464 7732
+f 7820 7624 7256
+f 7820 7256 7464
+f 7624 7344 7068
+f 7624 7068 7256
+f 7344 7136 6812
+f 7344 6812 7068
+f 7136 6836 6564
+f 7136 6564 6812
+f 6836 6588 6280
+f 6836 6280 6564
+f 6588 6288 6048
+f 6588 6048 6280
+f 6288 6000 5788
+f 6288 5788 6048
+f 6000 5692 5444
+f 6000 5444 5788
+f 5692 5380 5196
+f 5692 5196 5444
+f 5380 5056 4800
+f 5380 4800 5196
+f 5056 4704 4536
+f 5056 4536 4800
+f 4704 4380 4156
+f 4704 4156 4536
+f 4380 3964 3812
+f 4380 3812 4156
+f 3964 3624 3392
+f 3964 3392 3812
+f 3624 3144 3000
+f 3624 3000 3392
+f 3144 2764 2580
+f 3144 2580 3000
+f 2764 2212 2132
+f 2764 2132 2580
+f 2212 1824 1648
+f 2212 1648 2132
+f 1824 1096 1064
+f 1824 1064 1648
+f 1063 1647 1543
+f 1063 1543 1047
+f 1647 2131 2051
+f 1647 2051 1543
+f 2131 2579 2427
+f 2131 2427 2051
+f 2579 2999 2919
+f 2579 2919 2427
+f 2999 3391 3223
+f 2999 3223 2919
+f 3391 3811 3683
+f 3391 3683 3223
+f 3811 4155 3947
+f 3811 3947 3683
+f 4155 4535 4291
+f 4155 4291 3947
+f 4535 4799 4623
+f 4535 4623 4291
+f 4799 5195 4911
+f 4799 4911 4623
+f 5195 5443 5235
+f 5195 5235 4911
+f 5443 5787 5491
+f 5443 5491 5235
+f 5787 6047 5779
+f 5787 5779 5491
+f 6047 6279 5991
+f 6047 5991 5779
+f 6279 6563 6231
+f 6279 6231 5991
+f 6563 6811 6515
+f 6563 6515 6231
+f 6811 7067 6699
+f 6811 6699 6515
+f 7067 7255 6939
+f 7067 6939 6699
+f 7255 7463 7167
+f 7255 7167 6939
+f 7463 7731 7327
+f 7463 7327 7167
+f 7731 7883 7543
+f 7731 7543 7327
+f 7883 8099 7747
+f 7883 7747 7543
+f 8099 8303 7867
+f 8099 7867 7747
+f 8303 8415 8043
+f 8303 8043 7867
+f 8415 8599 8239
+f 8415 8239 8043
+f 8599 8787 8351
+f 8599 8351 8239
+f 8787 8899 8503
+f 8787 8503 8351
+f 8899 9043 8639
+f 8899 8639 8503
+f 9043 9195 8771
+f 9043 8771 8639
+f 9195 9303 8867
+f 9195 8867 8771
+f 9303 9391 8947
+f 9303 8947 8867
+f 9391 9471 9075
+f 9391 9075 8947
+f 9471 9607 9163
+f 9471 9163 9075
+f 9607 9699 9263
+f 9607 9263 9163
+f 9699 9771 9335
+f 9699 9335 9263
+f 9771 9827 9383
+f 9771 9383 9335
+f 9827 9891 9423
+f 9827 9423 9383
+f 9891 9915 9463
+f 9891 9463 9423
+f 9915 9963 9519
+f 9915 9519 9463
+f 9963 9979 9567
+f 9963 9567 9519
+f 9979 10035 9591
+f 9979 9591 9567
+f 10035 10067 9615
+f 10035 9615 9591
+f 10067 10091 9623
+f 10067 9623 9615
+f 10091 10092 9624
+f 10091 9624 9623
+f 10092 10068 9616
+f 10092 9616 9624
+f 10068 10036 9592
+f 10068 9592 9616
+f 10036 9980 9568
+f 10036 9568 9592
+f 9980 9964 9520
+f 9980 9520 9568
+f 9964 9916 9464
+f 9964 9464 9520
+f 9916 9892 9424
+f 9916 9424 9464
+f 9892 9828 9384
+f 9892 9384 9424
+f 9828 9772 9336
+f 9828 9336 9384
+f 9772 9700 9264
+f 9772 9264 9336
+f 9700 9608 9164
+f 9700 9164 9264
+f 9608 9472 9076
+f 9608 9076 9164
+f 9472 9392 8948
+f 9472 8948 9076
+f 9392 9304 8868
+f 9392 8868 8948
+f 9304 9196 8772
+f 9304 8772 8868
+f 9196 9044 8640
+f 9196 8640 8772
+f 9044 8900 8504
+f 9044 8504 8640
+f 8900 8788 8352
+f 8900 8352 8504
+f 8788 8600 8240
+f 8788 8240 8352
+f 8600 8416 8044
+f 8600 8044 8240
+f 8416 8304 7868
+f 8416 7868 8044
+f 8304 8100 7748
+f 8304 7748 7868
+f 8100 7884 7544
+f 8100 7544 7748
+f 7884 7732 7328
+f 7884 7328 7544
+f 7732 7464 7168
+f 7732 7168 7328
+f 7464 7256 6940
+f 7464 6940 7168
+f 7256 7068 6700
+f 7256 6700 6940
+f 7068 6812 6516
+f 7068 6516 6700
+f 6812 6564 6232
+f 6812 6232 6516
+f 6564 6280 5992
+f 6564 5992 6232
+f 6280 6048 5780
+f 6280 5780 5992
+f 6048 5788 5492
+f 6048 5492 5780
+f 5788 5444 5236
+f 5788 5236 5492
+f 5444 5196 4912
+f 5444 4912 5236
+f 5196 4800 4624
+f 5196 4624 4912
+f 4800 4536 4292
+f 4800 4292 4624
+f 4536 4156 3948
+f 4536 3948 4292
+f 4156 3812 3684
+f 4156 3684 3948
+f 3812 3392 3224
+f 3812 3224 3684
+f 3392 3000 2920
+f 3392 2920 3224
+f 3000 2580 2428
+f 3000 2428 2920
+f 2580 2132 2052
+f 2580 2052 2428
+f 2132 1648 1544
+f 2132 1544 2052
+f 1648 1064 1048
+f 1648 1048 1544
+f 1047 1543 1439
+f 1047 1439 999
+f 1543 2051 1979
+f 1543 1979 1439
+f 2051 2427 2307
+f 2051 2307 1979
+f 2427 2919 2815
+f 2427 2815 2307
+f 2919 3223 3071
+f 2919 3071 2815
+f 3223 3683 3423
+f 3223 3423 3071
+f 3683 3947 3779
+f 3683 3779 3423
+f 3947 4291 4043
+f 3947 4043 3779
+f 4291 4623 4427
+f 4291 4427 4043
+f 4623 4911 4647
+f 4623 4647 4427
+f 4911 5235 4927
+f 4911 4927 4647
+f 5235 5491 5227
+f 5235 5227 4927
+f 5491 5779 5435
+f 5491 5435 5227
+f 5779 5991 5683
+f 5779 5683 5435
+f 5991 6231 5943
+f 5991 5943 5683
+f 6231 6515 6119
+f 6231 6119 5943
+f 6515 6699 6399
+f 6515 6399 6119
+f 6699 6939 6603
+f 6699 6603 6399
+f 6939 7167 6755
+f 6939 6755 6603
+f 7167 7327 6995
+f 7167 6995 6755
+f 7327 7543 7183
+f 7327 7183 6995
+f 7543 7747 7303
+f 7543 7303 7183
+f 7747 7867 7471
+f 7747 7471 7303
+f 7867 8043 7675
+f 7867 7675 7471
+f 8043 8239 7803
+f 8043 7803 7675
+f 8239 8351 7931
+f 8239 7931 7803
+f 8351 8503 8075
+f 8351 8075 7931
+f 8503 8639 8215
+f 8503 8215 8075
+f 8639 8771 8327
+f 8639 8327 8215
+f 8771 8867 8399
+f 8771 8399 8327
+f 8867 8947 8535
+f 8867 8535 8399
+f 8947 9075 8615
+f 8947 8615 8535
+f 9075 9163 8739
+f 9075 8739 8615
+f 9163 9263 8811
+f 9163 8811 8739
+f 9263 9335 8859
+f 9263 8859 8811
+f 9335 9383 8915
+f 9335 8915 8859
+f 9383 9423 8939
+f 9383 8939 8915
+f 9423 9463 9019
+f 9423 9019 8939
+f 9463 9519 9051
+f 9463 9051 9019
+f 9519 9567 9083
+f 9519 9083 9051
+f 9567 9591 9107
+f 9567 9107 9083
+f 9591 9615 9123
+f 9591 9123 9107
+f 9615 9623 9139
+f 9615 9139 9123
+f 9623 9624 9140
+f 9623 9140 9139
+f 9624 9616 9124
+f 9624 9124 9140
+f 9616 9592 9108
+f 9616 9108 9124
+f 9592 9568 9084
+f 9592 9084 9108
+f 9568 9520 9052
+f 9568 9052 9084
+f 9520 9464 9020
+f 9520 9020 9052
+f 9464 9424 8940
+f 9464 8940 9020
+f 9424 9384 8916
+f 9424 8916 8940
+f 9384 9336 8860
+f 9384 8860 8916
+f 9336 9264 8812
+f 9336 8812 8860
+f 9264 9164 8740
+f 9264 8740 8812
+f 9164 9076 8616
+f 9164 8616 8740
+f 9076 8948 8536
+f 9076 8536 8616
+f 8948 8868 8400
+f 8948 8400 8536
+f 8868 8772 8328
+f 8868 8328 8400
+f 8772 8640 8216
+f 8772 8216 8328
+f 8640 8504 8076
+f 8640 8076 8216
+f 8504 8352 7932
+f 8504 7932 8076
+f 8352 8240 7804
+f 8352 7804 7932
+f 8240 8044 7676
+f 8240 7676 7804
+f 8044 7868 7472
+f 8044 7472 7676
+f 7868 7748 7304
+f 7868 7304 7472
+f 7748 7544 7184
+f 7748 7184 7304
+f 7544 7328 6996
+f 7544 6996 7184
+f 7328 7168 6756
+f 7328 6756 6996
+f 7168 6940 6604
+f 7168 6604 6756
+f 6940 6700 6400
+f 6940 6400 6604
+f 6700 6516 6120
+f 6700 6120 6400
+f 6516 6232 5944
+f 6516 5944 6120
+f 6232 5992 5684
+f 6232 5684 5944
+f 5992 5780 5436
+f 5992 5436 5684
+f 5780 5492 5228
+f 5780 5228 5436
+f 5492 5236 4928
+f 5492 4928 5228
+f 5236 4912 4648
+f 5236 4648 4928
+f 4912 4624 4428
+f 4912 4428 4648
+f 4624 4292 4044
+f 4624 4044 4428
+f 4292 3948 3780
+f 4292 3780 4044
+f 3948 3684 3424
+f 3948 3424 3780
+f 3684 3224 3072
+f 3684 3072 3424
+f 3224 2920 2816
+f 3224 2816 3072
+f 2920 2428 2308
+f 2920 2308 2816
+f 2428 2052 1980
+f 2428 1980 2308
+f 2052 1544 1440
+f 2052 1440 1980
+f 1544 1048 1000
+f 1544 1000 1440
+f 999 1439 1375
+f 999 1375 983
+f 1439 1979 1931
+f 1439 1931 1375
+f 1979 2307 2195
+f 1979 2195 1931
+f 2307 2815 2555
+f 2307 2555 2195
+f 2815 3071 2967
+f 2815 2967 2555
+f 3071 3423 3207
+f 3071 3207 2967
+f 3423 3779 3583
+f 3423 3583 3207
+f 3779 4043 3843
+f 3779 3843 3583
+f 4043 4427 4099
+f 4043 4099 3843
+f 4427 4647 4463
+f 4427 4463 4099
+f 4647 4927 4639
+f 4647 4639 4463
+f 4927 5227 4903
+f 4927 4903 4639
+f 5227 5435 5187
+f 5227 5187 4903
+f 5435 5683 5371
+f 5435 5371 5187
+f 5683 5943 5579
+f 5683 5579 5371
+f 5943 6119 5855
+f 5943 5855 5579
+f 6119 6399 6031
+f 6119 6031 5855
+f 6399 6603 6207
+f 6399 6207 6031
+f 6603 6755 6439
+f 6603 6439 6207
+f 6755 6995 6611
+f 6755 6611 6439
+f 6995 7183 6731
+f 6995 6731 6611
+f 7183 7303 6907
+f 7183 6907 6731
+f 7303 7471 7111
+f 7303 7111 6907
+f 7471 7675 7231
+f 7471 7231 7111
+f 7675 7803 7367
+f 7675 7367 7231
+f 7803 7931 7503
+f 7803 7503 7367
+f 7931 8075 7659
+f 7931 7659 7503
+f 8075 8215 7771
+f 8075 7771 7659
+f 8215 8327 7843
+f 8215 7843 7771
+f 8327 8399 7971
+f 8327 7971 7843
+f 8399 8535 8051
+f 8399 8051 7971
+f 8535 8615 8179
+f 8535 8179 8051
+f 8615 8739 8271
+f 8615 8271 8179
+f 8739 8811 8319
+f 8739 8319 8271
+f 8811 8859 8367
+f 8811 8367 8319
+f 8859 8915 8407
+f 8859 8407 8367
+f 8915 8939 8479
+f 8915 8479 8407
+f 8939 9019 8527
+f 8939 8527 8479
+f 9019 9051 8551
+f 9019 8551 8527
+f 9051 9083 8575
+f 9051 8575 8551
+f 9083 9107 8607
+f 9083 8607 8575
+f 9107 9123 8631
+f 9107 8631 8607
+f 9123 9139 8647
+f 9123 8647 8631
+f 9139 9140 8648
+f 9139 8648 8647
+f 9140 9124 8632
+f 9140 8632 8648
+f 9124 9108 8608
+f 9124 8608 8632
+f 9108 9084 8576
+f 9108 8576 8608
+f 9084 9052 8552
+f 9084 8552 8576
+f 9052 9020 8528
+f 9052 8528 8552
+f 9020 8940 8480
+f 9020 8480 8528
+f 8940 8916 8408
+f 8940 8408 8480
+f 8916 8860 8368
+f 8916 8368 8408
+f 8860 8812 8320
+f 8860 8320 8368
+f 8812 8740 8272
+f 8812 8272 8320
+f 8740 8616 8180
+f 8740 8180 8272
+f 8616 8536 8052
+f 8616 8052 8180
+f 8536 8400 7972
+f 8536 7972 8052
+f 8400 8328 7844
+f 8400 7844 7972
+f 8328 8216 7772
+f 8328 7772 7844
+f 8216 8076 7660
+f 8216 7660 7772
+f 8076 7932 7504
+f 8076 7504 7660
+f 7932 7804 7368
+f 7932 7368 7504
+f 7804 7676 7232
+f 7804 7232 7368
+f 7676 7472 7112
+f 7676 7112 7232
+f 7472 7304 6908
+f 7472 6908 7112
+f 7304 7184 6732
+f 7304 6732 6908
+f 7184 6996 6612
+f 7184 6612 6732
+f 6996 6756 6440
+f 6996 6440 6612
+f 6756 6604 6208
+f 6756 6208 6440
+f 6604 6400 6032
+f 6604 6032 6208
+f 6400 6120 5856
+f 6400 5856 6032
+f 6120 5944 5580
+f 6120 5580 5856
+f 5944 5684 5372
+f 5944 5372 5580
+f 5684 5436 5188
+f 5684 5188 5372
+f 5436 5228 4904
+f 5436 4904 5188
+f 5228 4928 4640
+f 5228 4640 4904
+f 4928 4648 4464
+f 4928 4464 4640
+f 4648 4428 4100
+f 4648 4100 4464
+f 4428 4044 3844
+f 4428 3844 4100
+f 4044 3780 3584
+f 4044 3584 3844
+f 3780 3424 3208
+f 3780 3208 3584
+f 3424 3072 2968
+f 3424 2968 3208
+f 3072 2816 2556
+f 3072 2556 2968
+f 2816 2308 2196
+f 2816 2196 2556
+f 2308 1980 1932
+f 2308 1932 2196
+f 1980 1440 1376
+f 1980 1376 1932
+f 1440 1000 984
+f 1440 984 1376
+f 983 1375 1279
+f 983 1279 951
+f 1375 1931 1851
+f 1375 1851 1279
+f 1931 2195 2083
+f 1931 2083 1851
+f 2195 2555 2395
+f 2195 2395 2083
+f 2555 2967 2831
+f 2555 2831 2395
+f 2967 3207 3047
+f 2967 3047 2831
+f 3207 3583 3303
+f 3207 3303 3047
+f 3583 3843 3667
+f 3583 3667 3303
+f 3843 4099 3883
+f 3843 3883 3667
+f 4099 4463 4091
+f 4099 4091 3883
+f 4463 4639 4419
+f 4463 4419 4091
+f 4639 4903 4615
+f 4639 4615 4419
+f 4903 5187 4791
+f 4903 4791 4615
+f 5187 5371 5047
+f 5187 5047 4791
+f 5371 5579 5275
+f 5371 5275 5047
+f 5579 5855 5451
+f 5579 5451 5275
+f 5855 6031 5643
+f 5855 5643 5451
+f 6031 6207 5879
+f 6031 5879 5643
+f 6207 6439 6007
+f 6207 6007 5879
+f 6439 6611 6151
+f 6439 6151 6007
+f 6611 6731 6343
+f 6611 6343 6151
+f 6731 6907 6531
+f 6731 6531 6343
+f 6907 7111 6651
+f 6907 6651 6531
+f 7111 7231 6771
+f 7111 6771 6651
+f 7231 7367 6899
+f 7231 6899 6771
+f 7367 7503 7087
+f 7367 7087 6899
+f 7503 7659 7207
+f 7503 7207 7087
+f 7659 7771 7279
+f 7659 7279 7207
+f 7771 7843 7375
+f 7771 7375 7279
+f 7843 7971 7455
+f 7843 7455 7375
+f 7971 8051 7591
+f 7971 7591 7455
+f 8051 8179 7683
+f 8051 7683 7591
+f 8179 8271 7763
+f 8179 7763 7683
+f 8271 8319 7795
+f 8271 7795 7763
+f 8319 8367 7851
+f 8319 7851 7795
+f 8367 8407 7923
+f 8367 7923 7851
+f 8407 8479 7979
+f 8407 7979 7923
+f 8479 8527 8003
+f 8479 8003 7979
+f 8527 8551 8019
+f 8527 8019 8003
+f 8551 8575 8067
+f 8551 8067 8019
+f 8575 8607 8107
+f 8575 8107 8067
+f 8607 8631 8131
+f 8607 8131 8107
+f 8631 8647 8139
+f 8631 8139 8131
+f 8647 8648 8140
+f 8647 8140 8139
+f 8648 8632 8132
+f 8648 8132 8140
+f 8632 8608 8108
+f 8632 8108 8132
+f 8608 8576 8068
+f 8608 8068 8108
+f 8576 8552 8020
+f 8576 8020 8068
+f 8552 8528 8004
+f 8552 8004 8020
+f 8528 8480 7980
+f 8528 7980 8004
+f 8480 8408 7924
+f 8480 7924 7980
+f 8408 8368 7852
+f 8408 7852 7924
+f 8368 8320 7796
+f 8368 7796 7852
+f 8320 8272 7764
+f 8320 7764 7796
+f 8272 8180 7684
+f 8272 7684 7764
+f 8180 8052 7592
+f 8180 7592 7684
+f 8052 7972 7456
+f 8052 7456 7592
+f 7972 7844 7376
+f 7972 7376 7456
+f 7844 7772 7280
+f 7844 7280 7376
+f 7772 7660 7208
+f 7772 7208 7280
+f 7660 7504 7088
+f 7660 7088 7208
+f 7504 7368 6900
+f 7504 6900 7088
+f 7368 7232 6772
+f 7368 6772 6900
+f 7232 7112 6652
+f 7232 6652 6772
+f 7112 6908 6532
+f 7112 6532 6652
+f 6908 6732 6344
+f 6908 6344 6532
+f 6732 6612 6152
+f 6732 6152 6344
+f 6612 6440 6008
+f 6612 6008 6152
+f 6440 6208 5880
+f 6440 5880 6008
+f 6208 6032 5644
+f 6208 5644 5880
+f 6032 5856 5452
+f 6032 5452 5644
+f 5856 5580 5276
+f 5856 5276 5452
+f 5580 5372 5048
+f 5580 5048 5276
+f 5372 5188 4792
+f 5372 4792 5048
+f 5188 4904 4616
+f 5188 4616 4792
+f 4904 4640 4420
+f 4904 4420 4616
+f 4640 4464 4092
+f 4640 4092 4420
+f 4464 4100 3884
+f 4464 3884 4092
+f 4100 3844 3668
+f 4100 3668 3884
+f 3844 3584 3304
+f 3844 3304 3668
+f 3584 3208 3048
+f 3584 3048 3304
+f 3208 2968 2832
+f 3208 2832 3048
+f 2968 2556 2396
+f 2968 2396 2832
+f 2556 2196 2084
+f 2556 2084 2396
+f 2196 1932 1852
+f 2196 1852 2084
+f 1932 1376 1280
+f 1932 1280 1852
+f 1376 984 952
+f 1376 952 1280
+f 951 1279 1215
+f 951 1215 927
+f 1279 1851 1615
+f 1279 1615 1215
+f 1851 2083 2011
+f 1851 2011 1615
+f 2083 2395 2243
+f 2083 2243 2011
+f 2395 2831 2507
+f 2395 2507 2243
+f 2831 3047 2879
+f 2831 2879 2507
+f 3047 3303 3095
+f 3047 3095 2879
+f 3303 3667 3319
+f 3303 3319 3095
+f 3667 3883 3659
+f 3667 3659 3319
+f 3883 4091 3835
+f 3883 3835 3659
+f 4091 4419 4035
+f 4091 4035 3835
+f 4419 4615 4283
+f 4419 4283 4035
+f 4615 4791 4527
+f 4615 4527 4283
+f 4791 5047 4695
+f 4791 4695 4527
+f 5047 5275 4871
+f 5047 4871 4695
+f 5275 5451 5119
+f 5275 5119 4871
+f 5451 5643 5291
+f 5451 5291 5119
+f 5643 5879 5403
+f 5643 5403 5291
+f 5879 6007 5571
+f 5879 5571 5403
+f 6007 6151 5803
+f 6007 5803 5571
+f 6151 6343 5927
+f 6151 5927 5803
+f 6343 6531 6063
+f 6343 6063 5927
+f 6531 6651 6183
+f 6531 6183 6063
+f 6651 6771 6311
+f 6651 6311 6183
+f 6771 6899 6491
+f 6771 6491 6311
+f 6899 7087 6579
+f 6899 6579 6491
+f 7087 7207 6675
+f 7087 6675 6579
+f 7207 7279 6763
+f 7207 6763 6675
+f 7279 7375 6867
+f 7279 6867 6763
+f 7375 7455 6987
+f 7375 6987 6867
+f 7455 7591 7095
+f 7455 7095 6987
+f 7591 7683 7159
+f 7591 7159 7095
+f 7683 7763 7223
+f 7683 7223 7159
+f 7763 7795 7263
+f 7763 7263 7223
+f 7795 7851 7311
+f 7795 7311 7263
+f 7851 7923 7383
+f 7851 7383 7311
+f 7923 7979 7431
+f 7923 7431 7383
+f 7979 8003 7447
+f 7979 7447 7431
+f 8003 8019 7487
+f 8003 7487 7447
+f 8019 8067 7535
+f 8019 7535 7487
+f 8067 8107 7567
+f 8067 7567 7535
+f 8107 8131 7575
+f 8107 7575 7567
+f 8131 8139 7583
+f 8131 7583 7575
+f 8139 8140 7584
+f 8139 7584 7583
+f 8140 8132 7576
+f 8140 7576 7584
+f 8132 8108 7568
+f 8132 7568 7576
+f 8108 8068 7536
+f 8108 7536 7568
+f 8068 8020 7488
+f 8068 7488 7536
+f 8020 8004 7448
+f 8020 7448 7488
+f 8004 7980 7432
+f 8004 7432 7448
+f 7980 7924 7384
+f 7980 7384 7432
+f 7924 7852 7312
+f 7924 7312 7384
+f 7852 7796 7264
+f 7852 7264 7312
+f 7796 7764 7224
+f 7796 7224 7264
+f 7764 7684 7160
+f 7764 7160 7224
+f 7684 7592 7096
+f 7684 7096 7160
+f 7592 7456 6988
+f 7592 6988 7096
+f 7456 7376 6868
+f 7456 6868 6988
+f 7376 7280 6764
+f 7376 6764 6868
+f 7280 7208 6676
+f 7280 6676 6764
+f 7208 7088 6580
+f 7208 6580 6676
+f 7088 6900 6492
+f 7088 6492 6580
+f 6900 6772 6312
+f 6900 6312 6492
+f 6772 6652 6184
+f 6772 6184 6312
+f 6652 6532 6064
+f 6652 6064 6184
+f 6532 6344 5928
+f 6532 5928 6064
+f 6344 6152 5804
+f 6344 5804 5928
+f 6152 6008 5572
+f 6152 5572 5804
+f 6008 5880 5404
+f 6008 5404 5572
+f 5880 5644 5292
+f 5880 5292 5404
+f 5644 5452 5120
+f 5644 5120 5292
+f 5452 5276 4872
+f 5452 4872 5120
+f 5276 5048 4696
+f 5276 4696 4872
+f 5048 4792 4528
+f 5048 4528 4696
+f 4792 4616 4284
+f 4792 4284 4528
+f 4616 4420 4036
+f 4616 4036 4284
+f 4420 4092 3836
+f 4420 3836 4036
+f 4092 3884 3660
+f 4092 3660 3836
+f 3884 3668 3320
+f 3884 3320 3660
+f 3668 3304 3096
+f 3668 3096 3320
+f 3304 3048 2880
+f 3304 2880 3096
+f 3048 2832 2508
+f 3048 2508 2880
+f 2832 2396 2244
+f 2832 2244 2508
+f 2396 2084 2012
+f 2396 2012 2244
+f 2084 1852 1616
+f 2084 1616 2012
+f 1852 1280 1216
+f 1852 1216 1616
+f 1280 952 928
+f 1280 928 1216
+f 927 1215 1143
+f 927 1143 895
+f 1215 1615 1455
+f 1215 1455 1143
+f 1615 2011 1899
+f 1615 1899 1455
+f 2011 2243 2099
+f 2011 2099 1899
+f 2243 2507 2323
+f 2243 2323 2099
+f 2507 2879 2627
+f 2507 2627 2323
+f 2879 3095 2903
+f 2879 2903 2627
+f 3095 3319 3087
+f 3095 3087 2903
+f 3319 3659 3295
+f 3319 3295 3087
+f 3659 3835 3567
+f 3659 3567 3295
+f 3835 4035 3771
+f 3835 3771 3567
+f 4035 4283 3939
+f 4035 3939 3771
+f 4283 4527 4147
+f 4283 4147 3939
+f 4527 4695 4371
+f 4527 4371 4147
+f 4695 4871 4543
+f 4695 4543 4371
+f 4871 5119 4671
+f 4871 4671 4543
+f 5119 5291 4823
+f 5119 4823 4671
+f 5291 5403 5007
+f 5291 5007 4823
+f 5403 5571 5211
+f 5403 5211 5007
+f 5571 5803 5323
+f 5571 5323 5211
+f 5803 5927 5459
+f 5803 5459 5323
+f 5927 6063 5555
+f 5927 5555 5459
+f 6063 6183 5715
+f 6063 5715 5555
+f 6183 6311 5895
+f 6183 5895 5715
+f 6311 6491 5967
+f 6311 5967 5895
+f 6491 6579 6071
+f 6491 6071 5967
+f 6579 6675 6143
+f 6579 6143 6071
+f 6675 6763 6255
+f 6675 6255 6143
+f 6763 6867 6367
+f 6763 6367 6255
+f 6867 6987 6483
+f 6867 6483 6367
+f 6987 7095 6547
+f 6987 6547 6483
+f 7095 7159 6627
+f 7095 6627 6547
+f 7159 7223 6667
+f 7159 6667 6627
+f 7223 7263 6707
+f 7223 6707 6667
+f 7263 7311 6747
+f 7263 6747 6707
+f 7311 7383 6827
+f 7311 6827 6747
+f 7383 7431 6859
+f 7383 6859 6827
+f 7431 7447 6883
+f 7431 6883 6859
+f 7447 7487 6915
+f 7447 6915 6883
+f 7487 7535 6963
+f 7487 6963 6915
+f 7535 7567 6979
+f 7535 6979 6963
+f 7567 7575 7011
+f 7567 7011 6979
+f 7575 7583 7019
+f 7575 7019 7011
+f 7583 7584 7020
+f 7583 7020 7019
+f 7584 7576 7012
+f 7584 7012 7020
+f 7576 7568 6980
+f 7576 6980 7012
+f 7568 7536 6964
+f 7568 6964 6980
+f 7536 7488 6916
+f 7536 6916 6964
+f 7488 7448 6884
+f 7488 6884 6916
+f 7448 7432 6860
+f 7448 6860 6884
+f 7432 7384 6828
+f 7432 6828 6860
+f 7384 7312 6748
+f 7384 6748 6828
+f 7312 7264 6708
+f 7312 6708 6748
+f 7264 7224 6668
+f 7264 6668 6708
+f 7224 7160 6628
+f 7224 6628 6668
+f 7160 7096 6548
+f 7160 6548 6628
+f 7096 6988 6484
+f 7096 6484 6548
+f 6988 6868 6368
+f 6988 6368 6484
+f 6868 6764 6256
+f 6868 6256 6368
+f 6764 6676 6144
+f 6764 6144 6256
+f 6676 6580 6072
+f 6676 6072 6144
+f 6580 6492 5968
+f 6580 5968 6072
+f 6492 6312 5896
+f 6492 5896 5968
+f 6312 6184 5716
+f 6312 5716 5896
+f 6184 6064 5556
+f 6184 5556 5716
+f 6064 5928 5460
+f 6064 5460 5556
+f 5928 5804 5324
+f 5928 5324 5460
+f 5804 5572 5212
+f 5804 5212 5324
+f 5572 5404 5008
+f 5572 5008 5212
+f 5404 5292 4824
+f 5404 4824 5008
+f 5292 5120 4672
+f 5292 4672 4824
+f 5120 4872 4544
+f 5120 4544 4672
+f 4872 4696 4372
+f 4872 4372 4544
+f 4696 4528 4148
+f 4696 4148 4372
+f 4528 4284 3940
+f 4528 3940 4148
+f 4284 4036 3772
+f 4284 3772 3940
+f 4036 3836 3568
+f 4036 3568 3772
+f 3836 3660 3296
+f 3836 3296 3568
+f 3660 3320 3088
+f 3660 3088 3296
+f 3320 3096 2904
+f 3320 2904 3088
+f 3096 2880 2628
+f 3096 2628 2904
+f 2880 2508 2324
+f 2880 2324 2628
+f 2508 2244 2100
+f 2508 2100 2324
+f 2244 2012 1900
+f 2244 1900 2100
+f 2012 1616 1456
+f 2012 1456 1900
+f 1616 1216 1144
+f 1616 1144 1456
+f 1216 928 896
+f 1216 896 1144
+f 895 1143 1079
+f 895 1079 879
+f 1143 1455 1343
+f 1143 1343 1079
+f 1455 1899 1711
+f 1455 1711 1343
+f 1899 2099 1963
+f 1899 1963 1711
+f 2099 2323 2163
+f 2099 2163 1963
+f 2323 2627 2363
+f 2323 2363 2163
+f 2627 2903 2619
+f 2627 2619 2363
+f 2903 3087 2871
+f 2903 2871 2619
+f 3087 3295 3039
+f 3087 3039 2871
+f 3295 3567 3199
+f 3295 3199 3039
+f 3567 3771 3415
+f 3567 3415 3199
+f 3771 3939 3675
+f 3771 3675 3415
+f 3939 4147 3803
+f 3939 3803 3675
+f 4147 4371 3955
+f 4147 3955 3803
+f 4371 4543 4083
+f 4371 4083 3955
+f 4543 4671 4267
+f 4543 4267 4083
+f 4671 4823 4479
+f 4671 4479 4267
+f 4823 5007 4575
+f 4823 4575 4479
+f 5007 5211 4719
+f 5007 4719 4575
+f 5211 5323 4815
+f 5211 4815 4719
+f 5323 5459 4967
+f 5323 4967 4815
+f 5459 5555 5159
+f 5459 5159 4967
+f 5555 5715 5251
+f 5555 5251 5159
+f 5715 5895 5339
+f 5715 5339 5251
+f 5895 5967 5411
+f 5895 5411 5339
+f 5967 6071 5515
+f 5967 5515 5411
+f 6071 6143 5611
+f 6071 5611 5515
+f 6143 6255 5723
+f 6143 5723 5611
+f 6255 6367 5847
+f 6255 5847 5723
+f 6367 6483 5911
+f 6367 5911 5847
+f 6483 6547 5959
+f 6483 5959 5911
+f 6547 6627 6023
+f 6547 6023 5959
+f 6627 6667 6095
+f 6627 6095 6023
+f 6667 6707 6111
+f 6667 6111 6095
+f 6707 6747 6167
+f 6707 6167 6111
+f 6747 6827 6223
+f 6747 6223 6167
+f 6827 6859 6263
+f 6827 6263 6223
+f 6859 6883 6303
+f 6859 6303 6263
+f 6883 6915 6319
+f 6883 6319 6303
+f 6915 6963 6351
+f 6915 6351 6319
+f 6963 6979 6383
+f 6963 6383 6351
+f 6979 7011 6407
+f 6979 6407 6383
+f 7011 7019 6423
+f 7011 6423 6407
+f 7019 7020 6424
+f 7019 6424 6423
+f 7020 7012 6408
+f 7020 6408 6424
+f 7012 6980 6384
+f 7012 6384 6408
+f 6980 6964 6352
+f 6980 6352 6384
+f 6964 6916 6320
+f 6964 6320 6352
+f 6916 6884 6304
+f 6916 6304 6320
+f 6884 6860 6264
+f 6884 6264 6304
+f 6860 6828 6224
+f 6860 6224 6264
+f 6828 6748 6168
+f 6828 6168 6224
+f 6748 6708 6112
+f 6748 6112 6168
+f 6708 6668 6096
+f 6708 6096 6112
+f 6668 6628 6024
+f 6668 6024 6096
+f 6628 6548 5960
+f 6628 5960 6024
+f 6548 6484 5912
+f 6548 5912 5960
+f 6484 6368 5848
+f 6484 5848 5912
+f 6368 6256 5724
+f 6368 5724 5848
+f 6256 6144 5612
+f 6256 5612 5724
+f 6144 6072 5516
+f 6144 5516 5612
+f 6072 5968 5412
+f 6072 5412 5516
+f 5968 5896 5340
+f 5968 5340 5412
+f 5896 5716 5252
+f 5896 5252 5340
+f 5716 5556 5160
+f 5716 5160 5252
+f 5556 5460 4968
+f 5556 4968 5160
+f 5460 5324 4816
+f 5460 4816 4968
+f 5324 5212 4720
+f 5324 4720 4816
+f 5212 5008 4576
+f 5212 4576 4720
+f 5008 4824 4480
+f 5008 4480 4576
+f 4824 4672 4268
+f 4824 4268 4480
+f 4672 4544 4084
+f 4672 4084 4268
+f 4544 4372 3956
+f 4544 3956 4084
+f 4372 4148 3804
+f 4372 3804 3956
+f 4148 3940 3676
+f 4148 3676 3804
+f 3940 3772 3416
+f 3940 3416 3676
+f 3772 3568 3200
+f 3772 3200 3416
+f 3568 3296 3040
+f 3568 3040 3200
+f 3296 3088 2872
+f 3296 2872 3040
+f 3088 2904 2620
+f 3088 2620 2872
+f 2904 2628 2364
+f 2904 2364 2620
+f 2628 2324 2164
+f 2628 2164 2364
+f 2324 2100 1964
+f 2324 1964 2164
+f 2100 1900 1712
+f 2100 1712 1964
+f 1900 1456 1344
+f 1900 1344 1712
+f 1456 1144 1080
+f 1456 1080 1344
+f 1144 896 880
+f 1144 880 1080
+f 879 1079 1015
+f 879 1015 847
+f 1079 1343 1231
+f 1079 1231 1015
+f 1343 1711 1487
+f 1343 1487 1231
+f 1711 1963 1867
+f 1711 1867 1487
+f 1963 2163 2019
+f 1963 2019 1867
+f 2163 2363 2155
+f 2163 2155 2019
+f 2363 2619 2315
+f 2363 2315 2155
+f 2619 2871 2499
+f 2619 2499 2315
+f 2871 3039 2823
+f 2871 2823 2499
+f 3039 3199 2959
+f 3039 2959 2823
+f 3199 3415 3063
+f 3199 3063 2959
+f 3415 3675 3215
+f 3415 3215 3063
+f 3675 3803 3383
+f 3675 3383 3215
+f 3803 3955 3615
+f 3803 3615 3383
+f 3955 4083 3739
+f 3955 3739 3615
+f 4083 4267 3859
+f 4083 3859 3739
+f 4267 4479 3971
+f 4267 3971 3859
+f 4479 4575 4067
+f 4479 4067 3971
+f 4575 4719 4219
+f 4575 4219 4067
+f 4719 4815 4411
+f 4719 4411 4219
+f 4815 4967 4511
+f 4815 4511 4411
+f 4967 5159 4591
+f 4967 4591 4511
+f 5159 5251 4679
+f 5159 4679 4591
+f 5251 5339 4767
+f 5251 4767 4679
+f 5339 5411 4863
+f 5339 4863 4767
+f 5411 5515 4959
+f 5411 4959 4863
+f 5515 5611 5095
+f 5515 5095 4959
+f 5611 5723 5179
+f 5611 5179 5095
+f 5723 5847 5243
+f 5723 5243 5179
+f 5847 5911 5307
+f 5847 5307 5243
+f 5911 5959 5355
+f 5911 5355 5307
+f 5959 6023 5387
+f 5959 5387 5355
+f 6023 6095 5483
+f 6023 5483 5387
+f 6095 6111 5507
+f 6095 5507 5483
+f 6111 6167 5539
+f 6111 5539 5507
+f 6167 6223 5595
+f 6167 5595 5539
+f 6223 6263 5627
+f 6223 5627 5595
+f 6263 6303 5667
+f 6263 5667 5627
+f 6303 6319 5675
+f 6303 5675 5667
+f 6319 6351 5707
+f 6319 5707 5675
+f 6351 6383 5747
+f 6351 5747 5707
+f 6383 6407 5763
+f 6383 5763 5747
+f 6407 6423 5771
+f 6407 5771 5763
+f 6423 6424 5772
+f 6423 5772 5771
+f 6424 6408 5764
+f 6424 5764 5772
+f 6408 6384 5748
+f 6408 5748 5764
+f 6384 6352 5708
+f 6384 5708 5748
+f 6352 6320 5676
+f 6352 5676 5708
+f 6320 6304 5668
+f 6320 5668 5676
+f 6304 6264 5628
+f 6304 5628 5668
+f 6264 6224 5596
+f 6264 5596 5628
+f 6224 6168 5540
+f 6224 5540 5596
+f 6168 6112 5508
+f 6168 5508 5540
+f 6112 6096 5484
+f 6112 5484 5508
+f 6096 6024 5388
+f 6096 5388 5484
+f 6024 5960 5356
+f 6024 5356 5388
+f 5960 5912 5308
+f 5960 5308 5356
+f 5912 5848 5244
+f 5912 5244 5308
+f 5848 5724 5180
+f 5848 5180 5244
+f 5724 5612 5096
+f 5724 5096 5180
+f 5612 5516 4960
+f 5612 4960 5096
+f 5516 5412 4864
+f 5516 4864 4960
+f 5412 5340 4768
+f 5412 4768 4864
+f 5340 5252 4680
+f 5340 4680 4768
+f 5252 5160 4592
+f 5252 4592 4680
+f 5160 4968 4512
+f 5160 4512 4592
+f 4968 4816 4412
+f 4968 4412 4512
+f 4816 4720 4220
+f 4816 4220 4412
+f 4720 4576 4068
+f 4720 4068 4220
+f 4576 4480 3972
+f 4576 3972 4068
+f 4480 4268 3860
+f 4480 3860 3972
+f 4268 4084 3740
+f 4268 3740 3860
+f 4084 3956 3616
+f 4084 3616 3740
+f 3956 3804 3384
+f 3956 3384 3616
+f 3804 3676 3216
+f 3804 3216 3384
+f 3676 3416 3064
+f 3676 3064 3216
+f 3416 3200 2960
+f 3416 2960 3064
+f 3200 3040 2824
+f 3200 2824 2960
+f 3040 2872 2500
+f 3040 2500 2824
+f 2872 2620 2316
+f 2872 2316 2500
+f 2620 2364 2156
+f 2620 2156 2316
+f 2364 2164 2020
+f 2364 2020 2156
+f 2164 1964 1868
+f 2164 1868 2020
+f 1964 1712 1488
+f 1964 1488 1868
+f 1712 1344 1232
+f 1712 1232 1488
+f 1344 1080 1016
+f 1344 1016 1232
+f 1080 880 848
+f 1080 848 1016
+f 847 1015 967
+f 847 967 831
+f 1015 1231 1111
+f 1015 1111 967
+f 1231 1487 1295
+f 1231 1295 1111
+f 1487 1867 1519
+f 1487 1519 1295
+f 1867 2019 1859
+f 1867 1859 1519
+f 2019 2155 1955
+f 2019 1955 1859
+f 2155 2315 2091
+f 2155 2091 1955
+f 2315 2499 2235
+f 2315 2235 2091
+f 2499 2823 2387
+f 2499 2387 2235
+f 2823 2959 2547
+f 2823 2547 2387
+f 2959 3063 2807
+f 2959 2807 2547
+f 3063 3215 2911
+f 3063 2911 2807
+f 3215 3383 2991
+f 3215 2991 2911
+f 3383 3615 3135
+f 3383 3135 2991
+f 3615 3739 3239
+f 3615 3239 3135
+f 3739 3859 3367
+f 3739 3367 3239
+f 3859 3971 3503
+f 3859 3503 3367
+f 3971 4067 3707
+f 3971 3707 3503
+f 4067 4219 3755
+f 4067 3755 3707
+f 4219 4411 3851
+f 4219 3851 3755
+f 4411 4511 3915
+f 4411 3915 3851
+f 4511 4591 4011
+f 4511 4011 3915
+f 4591 4679 4123
+f 4591 4123 4011
+f 4679 4767 4195
+f 4679 4195 4123
+f 4767 4863 4315
+f 4767 4315 4195
+f 4863 4959 4455
+f 4863 4455 4315
+f 4959 5095 4495
+f 4959 4495 4455
+f 5095 5179 4559
+f 5095 4559 4495
+f 5179 5243 4607
+f 5179 4607 4559
+f 5243 5307 4655
+f 5243 4655 4607
+f 5307 5355 4727
+f 5307 4727 4655
+f 5355 5387 4751
+f 5355 4751 4727
+f 5387 5483 4783
+f 5387 4783 4751
+f 5483 5507 4847
+f 5483 4847 4783
+f 5507 5539 4895
+f 5507 4895 4847
+f 5539 5595 4935
+f 5539 4935 4895
+f 5595 5627 4951
+f 5595 4951 4935
+f 5627 5667 4999
+f 5627 4999 4951
+f 5667 5675 5015
+f 5667 5015 4999
+f 5675 5707 5039
+f 5675 5039 5015
+f 5707 5747 5071
+f 5707 5071 5039
+f 5747 5763 5079
+f 5747 5079 5071
+f 5763 5771 5087
+f 5763 5087 5079
+f 5771 5772 5088
+f 5771 5088 5087
+f 5772 5764 5080
+f 5772 5080 5088
+f 5764 5748 5072
+f 5764 5072 5080
+f 5748 5708 5040
+f 5748 5040 5072
+f 5708 5676 5016
+f 5708 5016 5040
+f 5676 5668 5000
+f 5676 5000 5016
+f 5668 5628 4952
+f 5668 4952 5000
+f 5628 5596 4936
+f 5628 4936 4952
+f 5596 5540 4896
+f 5596 4896 4936
+f 5540 5508 4848
+f 5540 4848 4896
+f 5508 5484 4784
+f 5508 4784 4848
+f 5484 5388 4752
+f 5484 4752 4784
+f 5388 5356 4728
+f 5388 4728 4752
+f 5356 5308 4656
+f 5356 4656 4728
+f 5308 5244 4608
+f 5308 4608 4656
+f 5244 5180 4560
+f 5244 4560 4608
+f 5180 5096 4496
+f 5180 4496 4560
+f 5096 4960 4456
+f 5096 4456 4496
+f 4960 4864 4316
+f 4960 4316 4456
+f 4864 4768 4196
+f 4864 4196 4316
+f 4768 4680 4124
+f 4768 4124 4196
+f 4680 4592 4012
+f 4680 4012 4124
+f 4592 4512 3916
+f 4592 3916 4012
+f 4512 4412 3852
+f 4512 3852 3916
+f 4412 4220 3756
+f 4412 3756 3852
+f 4220 4068 3708
+f 4220 3708 3756
+f 4068 3972 3504
+f 4068 3504 3708
+f 3972 3860 3368
+f 3972 3368 3504
+f 3860 3740 3240
+f 3860 3240 3368
+f 3740 3616 3136
+f 3740 3136 3240
+f 3616 3384 2992
+f 3616 2992 3136
+f 3384 3216 2912
+f 3384 2912 2992
+f 3216 3064 2808
+f 3216 2808 2912
+f 3064 2960 2548
+f 3064 2548 2808
+f 2960 2824 2388
+f 2960 2388 2548
+f 2824 2500 2236
+f 2824 2236 2388
+f 2500 2316 2092
+f 2500 2092 2236
+f 2316 2156 1956
+f 2316 1956 2092
+f 2156 2020 1860
+f 2156 1860 1956
+f 2020 1868 1520
+f 2020 1520 1860
+f 1868 1488 1296
+f 1868 1296 1520
+f 1488 1232 1112
+f 1488 1112 1296
+f 1232 1016 968
+f 1232 968 1112
+f 1016 848 832
+f 1016 832 968
+f 831 967 911
+f 831 911 807
+f 967 1111 1031
+f 967 1031 911
+f 1111 1295 1151
+f 1111 1151 1031
+f 1295 1519 1287
+f 1295 1287 1151
+f 1519 1859 1471
+f 1519 1471 1287
+f 1859 1955 1703
+f 1859 1703 1471
+f 1955 2091 1891
+f 1955 1891 1703
+f 2091 2235 2003
+f 2091 2003 1891
+f 2235 2387 2075
+f 2235 2075 2003
+f 2387 2547 2187
+f 2387 2187 2075
+f 2547 2807 2299
+f 2547 2299 2187
+f 2807 2911 2419
+f 2807 2419 2299
+f 2911 2991 2571
+f 2911 2571 2419
+f 2991 3135 2755
+f 2991 2755 2571
+f 3135 3239 2855
+f 3135 2855 2755
+f 3239 3367 2943
+f 3239 2943 2855
+f 3367 3503 3007
+f 3367 3007 2943
+f 3503 3707 3103
+f 3503 3103 3007
+f 3707 3755 3167
+f 3707 3167 3103
+f 3755 3851 3263
+f 3755 3263 3167
+f 3851 3915 3343
+f 3851 3343 3263
+f 3915 4011 3455
+f 3915 3455 3343
+f 4011 4123 3559
+f 4011 3559 3455
+f 4123 4195 3691
+f 4123 3691 3559
+f 4195 4315 3723
+f 4195 3723 3691
+f 4315 4455 3787
+f 4315 3787 3723
+f 4455 4495 3819
+f 4455 3819 3787
+f 4495 4559 3891
+f 4495 3891 3819
+f 4559 4607 3907
+f 4559 3907 3891
+f 4607 4655 3987
+f 4607 3987 3907
+f 4655 4727 4003
+f 4655 4003 3987
+f 4727 4751 4051
+f 4727 4051 4003
+f 4751 4783 4115
+f 4751 4115 4051
+f 4783 4847 4163
+f 4783 4163 4115
+f 4847 4895 4179
+f 4847 4179 4163
+f 4895 4935 4203
+f 4895 4203 4179
+f 4935 4951 4243
+f 4935 4243 4203
+f 4951 4999 4259
+f 4951 4259 4243
+f 4999 5015 4299
+f 4999 4299 4259
+f 5015 5039 4323
+f 5015 4323 4299
+f 5039 5071 4347
+f 5039 4347 4323
+f 5071 5079 4355
+f 5071 4355 4347
+f 5079 5087 4363
+f 5079 4363 4355
+f 5087 5088 4364
+f 5087 4364 4363
+f 5088 5080 4356
+f 5088 4356 4364
+f 5080 5072 4348
+f 5080 4348 4356
+f 5072 5040 4324
+f 5072 4324 4348
+f 5040 5016 4300
+f 5040 4300 4324
+f 5016 5000 4260
+f 5016 4260 4300
+f 5000 4952 4244
+f 5000 4244 4260
+f 4952 4936 4204
+f 4952 4204 4244
+f 4936 4896 4180
+f 4936 4180 4204
+f 4896 4848 4164
+f 4896 4164 4180
+f 4848 4784 4116
+f 4848 4116 4164
+f 4784 4752 4052
+f 4784 4052 4116
+f 4752 4728 4004
+f 4752 4004 4052
+f 4728 4656 3988
+f 4728 3988 4004
+f 4656 4608 3908
+f 4656 3908 3988
+f 4608 4560 3892
+f 4608 3892 3908
+f 4560 4496 3820
+f 4560 3820 3892
+f 4496 4456 3788
+f 4496 3788 3820
+f 4456 4316 3724
+f 4456 3724 3788
+f 4316 4196 3692
+f 4316 3692 3724
+f 4196 4124 3560
+f 4196 3560 3692
+f 4124 4012 3456
+f 4124 3456 3560
+f 4012 3916 3344
+f 4012 3344 3456
+f 3916 3852 3264
+f 3916 3264 3344
+f 3852 3756 3168
+f 3852 3168 3264
+f 3756 3708 3104
+f 3756 3104 3168
+f 3708 3504 3008
+f 3708 3008 3104
+f 3504 3368 2944
+f 3504 2944 3008
+f 3368 3240 2856
+f 3368 2856 2944
+f 3240 3136 2756
+f 3240 2756 2856
+f 3136 2992 2572
+f 3136 2572 2756
+f 2992 2912 2420
+f 2992 2420 2572
+f 2912 2808 2300
+f 2912 2300 2420
+f 2808 2548 2188
+f 2808 2188 2300
+f 2548 2388 2076
+f 2548 2076 2188
+f 2388 2236 2004
+f 2388 2004 2076
+f 2236 2092 1892
+f 2236 1892 2004
+f 2092 1956 1704
+f 2092 1704 1892
+f 1956 1860 1472
+f 1956 1472 1704
+f 1860 1520 1288
+f 1860 1288 1472
+f 1520 1296 1152
+f 1520 1152 1288
+f 1296 1112 1032
+f 1296 1032 1152
+f 1112 968 912
+f 1112 912 1032
+f 968 832 808
+f 968 808 912
+f 807 911 855
+f 807 855 783
+f 911 1031 935
+f 911 935 855
+f 1031 1151 1023
+f 1031 1023 935
+f 1151 1287 1103
+f 1151 1103 1023
+f 1287 1471 1223
+f 1287 1223 1103
+f 1471 1703 1335
+f 1471 1335 1223
+f 1703 1891 1447
+f 1703 1447 1335
+f 1891 2003 1607
+f 1891 1607 1447
+f 2003 2075 1843
+f 2003 1843 1607
+f 2075 2187 1923
+f 2075 1923 1843
+f 2187 2299 1971
+f 2187 1971 1923
+f 2299 2419 2043
+f 2299 2043 1971
+f 2419 2571 2123
+f 2419 2123 2043
+f 2571 2755 2203
+f 2571 2203 2123
+f 2755 2855 2267
+f 2755 2267 2203
+f 2855 2943 2347
+f 2855 2347 2267
+f 2943 3007 2443
+f 2943 2443 2347
+f 3007 3103 2515
+f 3007 2515 2443
+f 3103 3167 2643
+f 3103 2643 2515
+f 3167 3263 2791
+f 3167 2791 2643
+f 3263 3343 2839
+f 3263 2839 2791
+f 3343 3455 2887
+f 3343 2887 2839
+f 3455 3559 2927
+f 3455 2927 2887
+f 3559 3691 2975
+f 3559 2975 2927
+f 3691 3723 3023
+f 3691 3023 2975
+f 3723 3787 3055
+f 3723 3055 3023
+f 3787 3819 3119
+f 3787 3119 3055
+f 3819 3891 3151
+f 3819 3151 3119
+f 3891 3907 3183
+f 3891 3183 3151
+f 3907 3987 3231
+f 3907 3231 3183
+f 3987 4003 3279
+f 3987 3279 3231
+f 4003 4051 3311
+f 4003 3311 3279
+f 4051 4115 3335
+f 4051 3335 3311
+f 4115 4163 3399
+f 4115 3399 3335
+f 4163 4179 3431
+f 4163 3431 3399
+f 4179 4203 3447
+f 4179 3447 3431
+f 4203 4243 3479
+f 4203 3479 3447
+f 4243 4259 3495
+f 4243 3495 3479
+f 4259 4299 3519
+f 4259 3519 3495
+f 4299 4323 3535
+f 4299 3535 3519
+f 4323 4347 3551
+f 4323 3551 3535
+f 4347 4355 3575
+f 4347 3575 3551
+f 4355 4363 3591
+f 4355 3591 3575
+f 4363 4364 3592
+f 4363 3592 3591
+f 4364 4356 3576
+f 4364 3576 3592
+f 4356 4348 3552
+f 4356 3552 3576
+f 4348 4324 3536
+f 4348 3536 3552
+f 4324 4300 3520
+f 4324 3520 3536
+f 4300 4260 3496
+f 4300 3496 3520
+f 4260 4244 3480
+f 4260 3480 3496
+f 4244 4204 3448
+f 4244 3448 3480
+f 4204 4180 3432
+f 4204 3432 3448
+f 4180 4164 3400
+f 4180 3400 3432
+f 4164 4116 3336
+f 4164 3336 3400
+f 4116 4052 3312
+f 4116 3312 3336
+f 4052 4004 3280
+f 4052 3280 3312
+f 4004 3988 3232
+f 4004 3232 3280
+f 3988 3908 3184
+f 3988 3184 3232
+f 3908 3892 3152
+f 3908 3152 3184
+f 3892 3820 3120
+f 3892 3120 3152
+f 3820 3788 3056
+f 3820 3056 3120
+f 3788 3724 3024
+f 3788 3024 3056
+f 3724 3692 2976
+f 3724 2976 3024
+f 3692 3560 2928
+f 3692 2928 2976
+f 3560 3456 2888
+f 3560 2888 2928
+f 3456 3344 2840
+f 3456 2840 2888
+f 3344 3264 2792
+f 3344 2792 2840
+f 3264 3168 2644
+f 3264 2644 2792
+f 3168 3104 2516
+f 3168 2516 2644
+f 3104 3008 2444
+f 3104 2444 2516
+f 3008 2944 2348
+f 3008 2348 2444
+f 2944 2856 2268
+f 2944 2268 2348
+f 2856 2756 2204
+f 2856 2204 2268
+f 2756 2572 2124
+f 2756 2124 2204
+f 2572 2420 2044
+f 2572 2044 2124
+f 2420 2300 1972
+f 2420 1972 2044
+f 2300 2188 1924
+f 2300 1924 1972
+f 2188 2076 1844
+f 2188 1844 1924
+f 2076 2004 1608
+f 2076 1608 1844
+f 2004 1892 1448
+f 2004 1448 1608
+f 1892 1704 1336
+f 1892 1336 1448
+f 1704 1472 1224
+f 1704 1224 1336
+f 1472 1288 1104
+f 1472 1104 1224
+f 1288 1152 1024
+f 1288 1024 1104
+f 1152 1032 936
+f 1152 936 1024
+f 1032 912 856
+f 1032 856 936
+f 912 808 784
+f 912 784 856
+f 783 855 815
+f 783 815 775
+f 855 935 863
+f 855 863 815
+f 935 1023 903
+f 935 903 863
+f 1023 1103 959
+f 1023 959 903
+f 1103 1223 1007
+f 1103 1007 959
+f 1223 1335 1071
+f 1223 1071 1007
+f 1335 1447 1135
+f 1335 1135 1071
+f 1447 1607 1207
+f 1447 1207 1135
+f 1607 1843 1271
+f 1607 1271 1207
+f 1843 1923 1367
+f 1843 1367 1271
+f 1923 1971 1431
+f 1923 1431 1367
+f 1971 2043 1535
+f 1971 1535 1431
+f 2043 2123 1639
+f 2043 1639 1535
+f 2123 2203 1815
+f 2123 1815 1639
+f 2203 2267 1875
+f 2203 1875 1815
+f 2267 2347 1907
+f 2267 1907 1875
+f 2347 2443 1939
+f 2347 1939 1907
+f 2443 2515 1987
+f 2443 1987 1939
+f 2515 2643 2027
+f 2515 2027 1987
+f 2643 2791 2059
+f 2643 2059 2027
+f 2791 2839 2107
+f 2791 2107 2059
+f 2839 2887 2139
+f 2839 2139 2107
+f 2887 2927 2171
+f 2887 2171 2139
+f 2927 2975 2219
+f 2927 2219 2171
+f 2975 3023 2251
+f 2975 2251 2219
+f 3023 3055 2283
+f 3023 2283 2251
+f 3055 3119 2331
+f 3055 2331 2283
+f 3119 3151 2371
+f 3119 2371 2331
+f 3151 3183 2403
+f 3151 2403 2371
+f 3183 3231 2435
+f 3183 2435 2403
+f 3231 3279 2467
+f 3231 2467 2435
+f 3279 3311 2483
+f 3279 2483 2467
+f 3311 3335 2523
+f 3311 2523 2483
+f 3335 3399 2563
+f 3335 2563 2523
+f 3399 3431 2595
+f 3399 2595 2563
+f 3431 3447 2611
+f 3431 2611 2595
+f 3447 3479 2651
+f 3447 2651 2611
+f 3479 3495 2675
+f 3479 2675 2651
+f 3495 3519 2683
+f 3495 2683 2675
+f 3519 3535 2699
+f 3519 2699 2683
+f 3535 3551 2715
+f 3535 2715 2699
+f 3551 3575 2723
+f 3551 2723 2715
+f 3575 3591 2731
+f 3575 2731 2723
+f 3591 3592 2732
+f 3591 2732 2731
+f 3592 3576 2724
+f 3592 2724 2732
+f 3576 3552 2716
+f 3576 2716 2724
+f 3552 3536 2700
+f 3552 2700 2716
+f 3536 3520 2684
+f 3536 2684 2700
+f 3520 3496 2676
+f 3520 2676 2684
+f 3496 3480 2652
+f 3496 2652 2676
+f 3480 3448 2612
+f 3480 2612 2652
+f 3448 3432 2596
+f 3448 2596 2612
+f 3432 3400 2564
+f 3432 2564 2596
+f 3400 3336 2524
+f 3400 2524 2564
+f 3336 3312 2484
+f 3336 2484 2524
+f 3312 3280 2468
+f 3312 2468 2484
+f 3280 3232 2436
+f 3280 2436 2468
+f 3232 3184 2404
+f 3232 2404 2436
+f 3184 3152 2372
+f 3184 2372 2404
+f 3152 3120 2332
+f 3152 2332 2372
+f 3120 3056 2284
+f 3120 2284 2332
+f 3056 3024 2252
+f 3056 2252 2284
+f 3024 2976 2220
+f 3024 2220 2252
+f 2976 2928 2172
+f 2976 2172 2220
+f 2928 2888 2140
+f 2928 2140 2172
+f 2888 2840 2108
+f 2888 2108 2140
+f 2840 2792 2060
+f 2840 2060 2108
+f 2792 2644 2028
+f 2792 2028 2060
+f 2644 2516 1988
+f 2644 1988 2028
+f 2516 2444 1940
+f 2516 1940 1988
+f 2444 2348 1908
+f 2444 1908 1940
+f 2348 2268 1876
+f 2348 1876 1908
+f 2268 2204 1816
+f 2268 1816 1876
+f 2204 2124 1640
+f 2204 1640 1816
+f 2124 2044 1536
+f 2124 1536 1640
+f 2044 1972 1432
+f 2044 1432 1536
+f 1972 1924 1368
+f 1972 1368 1432
+f 1924 1844 1272
+f 1924 1272 1368
+f 1844 1608 1208
+f 1844 1208 1272
+f 1608 1448 1136
+f 1608 1136 1208
+f 1448 1336 1072
+f 1448 1072 1136
+f 1336 1224 1008
+f 1336 1008 1072
+f 1224 1104 960
+f 1224 960 1008
+f 1104 1024 904
+f 1104 904 960
+f 1024 936 864
+f 1024 864 904
+f 936 856 816
+f 936 816 864
+f 856 784 776
+f 856 776 816
+f 775 815 767
+f 775 767 759
+f 815 863 791
+f 815 791 767
+f 863 903 799
+f 863 799 791
+f 903 959 823
+f 903 823 799
+f 959 1007 839
+f 959 839 823
+f 1007 1071 871
+f 1007 871 839
+f 1071 1135 887
+f 1071 887 871
+f 1135 1207 919
+f 1135 919 887
+f 1207 1271 943
+f 1207 943 919
+f 1271 1367 975
+f 1271 975 943
+f 1367 1431 991
+f 1367 991 975
+f 1431 1535 1039
+f 1431 1039 991
+f 1535 1639 1055
+f 1535 1055 1039
+f 1639 1815 1087
+f 1639 1087 1055
+f 1815 1875 1119
+f 1815 1119 1087
+f 1875 1907 1159
+f 1875 1159 1119
+f 1907 1939 1175
+f 1907 1175 1159
+f 1939 1987 1191
+f 1939 1191 1175
+f 1987 2027 1239
+f 1987 1239 1191
+f 2027 2059 1255
+f 2027 1255 1239
+f 2059 2107 1303
+f 2059 1303 1255
+f 2107 2139 1319
+f 2107 1319 1303
+f 2139 2171 1351
+f 2139 1351 1319
+f 2171 2219 1383
+f 2171 1383 1351
+f 2219 2251 1399
+f 2219 1399 1383
+f 2251 2283 1415
+f 2251 1415 1399
+f 2283 2331 1463
+f 2283 1463 1415
+f 2331 2371 1495
+f 2331 1495 1463
+f 2371 2403 1511
+f 2371 1511 1495
+f 2403 2435 1551
+f 2403 1551 1511
+f 2435 2467 1567
+f 2435 1567 1551
+f 2467 2483 1583
+f 2467 1583 1567
+f 2483 2523 1599
+f 2483 1599 1583
+f 2523 2563 1631
+f 2523 1631 1599
+f 2563 2595 1663
+f 2563 1663 1631
+f 2595 2611 1679
+f 2595 1679 1663
+f 2611 2651 1695
+f 2611 1695 1679
+f 2651 2675 1719
+f 2651 1719 1695
+f 2675 2683 1735
+f 2675 1735 1719
+f 2683 2699 1751
+f 2683 1751 1735
+f 2699 2715 1767
+f 2699 1767 1751
+f 2715 2723 1775
+f 2715 1775 1767
+f 2723 2731 1783
+f 2723 1783 1775
+f 2731 2732 1784
+f 2731 1784 1783
+f 2732 2724 1776
+f 2732 1776 1784
+f 2724 2716 1768
+f 2724 1768 1776
+f 2716 2700 1752
+f 2716 1752 1768
+f 2700 2684 1736
+f 2700 1736 1752
+f 2684 2676 1720
+f 2684 1720 1736
+f 2676 2652 1696
+f 2676 1696 1720
+f 2652 2612 1680
+f 2652 1680 1696
+f 2612 2596 1664
+f 2612 1664 1680
+f 2596 2564 1632
+f 2596 1632 1664
+f 2564 2524 1600
+f 2564 1600 1632
+f 2524 2484 1584
+f 2524 1584 1600
+f 2484 2468 1568
+f 2484 1568 1584
+f 2468 2436 1552
+f 2468 1552 1568
+f 2436 2404 1512
+f 2436 1512 1552
+f 2404 2372 1496
+f 2404 1496 1512
+f 2372 2332 1464
+f 2372 1464 1496
+f 2332 2284 1416
+f 2332 1416 1464
+f 2284 2252 1400
+f 2284 1400 1416
+f 2252 2220 1384
+f 2252 1384 1400
+f 2220 2172 1352
+f 2220 1352 1384
+f 2172 2140 1320
+f 2172 1320 1352
+f 2140 2108 1304
+f 2140 1304 1320
+f 2108 2060 1256
+f 2108 1256 1304
+f 2060 2028 1240
+f 2060 1240 1256
+f 2028 1988 1192
+f 2028 1192 1240
+f 1988 1940 1176
+f 1988 1176 1192
+f 1940 1908 1160
+f 1940 1160 1176
+f 1908 1876 1120
+f 1908 1120 1160
+f 1876 1816 1088
+f 1876 1088 1120
+f 1816 1640 1056
+f 1816 1056 1088
+f 1640 1536 1040
+f 1640 1040 1056
+f 1536 1432 992
+f 1536 992 1040
+f 1432 1368 976
+f 1432 976 992
+f 1368 1272 944
+f 1368 944 976
+f 1272 1208 920
+f 1272 920 944
+f 1208 1136 888
+f 1208 888 920
+f 1136 1072 872
+f 1136 872 888
+f 1072 1008 840
+f 1072 840 872
+f 1008 960 824
+f 1008 824 840
+f 960 904 800
+f 960 800 824
+f 904 864 792
+f 904 792 800
+f 864 816 768
+f 864 768 792
+f 816 776 760
+f 816 760 768
+f 759 767 231
+f 759 231 639
+f 767 791 711
+f 767 711 231
+f 791 799 471
+f 791 471 711
+f 799 823 143
+f 799 143 471
+f 823 839 23
+f 823 23 143
+f 839 871 175
+f 839 175 23
+f 871 887 663
+f 871 663 175
+f 887 919 559
+f 887 559 663
+f 919 943 119
+f 919 119 559
+f 943 975 287
+f 943 287 119
+f 975 991 367
+f 975 367 287
+f 991 1039 695
+f 991 695 367
+f 1039 1055 255
+f 1039 255 695
+f 1055 1087 279
+f 1055 279 255
+f 1087 1119 295
+f 1087 295 279
+f 1119 1159 415
+f 1119 415 295
+f 1159 1175 671
+f 1159 671 415
+f 1175 1191 351
+f 1175 351 671
+f 1191 1239 167
+f 1191 167 351
+f 1239 1255 551
+f 1239 551 167
+f 1255 1303 15
+f 1255 15 551
+f 1303 1319 159
+f 1303 159 15
+f 1319 1351 383
+f 1319 383 159
+f 1351 1383 47
+f 1351 47 383
+f 1383 1399 151
+f 1383 151 47
+f 1399 1415 391
+f 1399 391 151
+f 1415 1463 543
+f 1415 543 391
+f 1463 1495 319
+f 1463 319 543
+f 1495 1511 703
+f 1495 703 319
+f 1511 1551 63
+f 1511 63 703
+f 1551 1567 343
+f 1551 343 63
+f 1567 1583 647
+f 1567 647 343
+f 1583 1599 263
+f 1583 263 647
+f 1599 1631 271
+f 1599 271 263
+f 1631 1663 631
+f 1631 631 271
+f 1663 1679 103
+f 1663 103 631
+f 1679 1695 463
+f 1679 463 103
+f 1695 1719 655
+f 1695 655 463
+f 1719 1735 735
+f 1719 735 655
+f 1735 1751 111
+f 1735 111 735
+f 1751 1767 359
+f 1751 359 111
+f 1767 1775 439
+f 1767 439 359
+f 1775 1783 55
+f 1775 55 439
+f 1783 1784 56
+f 1783 56 55
+f 1784 1776 440
+f 1784 440 56
+f 1776 1768 360
+f 1776 360 440
+f 1768 1752 112
+f 1768 112 360
+f 1752 1736 736
+f 1752 736 112
+f 1736 1720 656
+f 1736 656 736
+f 1720 1696 464
+f 1720 464 656
+f 1696 1680 104
+f 1696 104 464
+f 1680 1664 632
+f 1680 632 104
+f 1664 1632 272
+f 1664 272 632
+f 1632 1600 264
+f 1632 264 272
+f 1600 1584 648
+f 1600 648 264
+f 1584 1568 344
+f 1584 344 648
+f 1568 1552 64
+f 1568 64 344
+f 1552 1512 704
+f 1552 704 64
+f 1512 1496 320
+f 1512 320 704
+f 1496 1464 544
+f 1496 544 320
+f 1464 1416 392
+f 1464 392 544
+f 1416 1400 152
+f 1416 152 392
+f 1400 1384 48
+f 1400 48 152
+f 1384 1352 384
+f 1384 384 48
+f 1352 1320 160
+f 1352 160 384
+f 1320 1304 16
+f 1320 16 160
+f 1304 1256 552
+f 1304 552 16
+f 1256 1240 168
+f 1256 168 552
+f 1240 1192 352
+f 1240 352 168
+f 1192 1176 672
+f 1192 672 352
+f 1176 1160 416
+f 1176 416 672
+f 1160 1120 296
+f 1160 296 416
+f 1120 1088 280
+f 1120 280 296
+f 1088 1056 256
+f 1088 256 280
+f 1056 1040 696
+f 1056 696 256
+f 1040 992 368
+f 1040 368 696
+f 992 976 288
+f 992 288 368
+f 976 944 120
+f 976 120 288
+f 944 920 560
+f 944 560 120
+f 920 888 664
+f 920 664 560
+f 888 872 176
+f 888 176 664
+f 872 840 24
+f 872 24 176
+f 840 824 144
+f 840 144 24
+f 824 800 472
+f 824 472 144
+f 800 792 712
+f 800 712 472
+f 792 768 232
+f 792 232 712
+f 768 760 640
+f 768 640 232
+f 373 374 194
+f 373 194 193
+f 193 194 74
+f 193 74 73
+f 73 74 714
+f 73 714 713
+f 713 714 610
+f 713 610 609
+f 609 610 674
+f 609 674 673
+f 673 674 482
+f 673 482 481
+f 481 482 122
+f 481 122 121
+f 121 122 738
+f 121 738 737
+f 737 738 394
+f 737 394 393
+f 393 394 306
+f 393 306 305
+f 305 306 570
+f 305 570 569
+f 569 570 322
+f 569 322 321
+f 321 322 442
+f 321 442 441
+f 441 442 426
+f 441 426 425
+f 425 426 82
+f 425 82 81
+f 81 82 178
+f 81 178 177
+f 177 178 578
+f 177 578 577
+f 577 578 26
+f 577 26 25
+f 25 26 234
+f 25 234 233
+f 233 234 506
+f 233 506 505
+f 505 506 522
+f 505 522 521
+f 521 522 490
+f 521 490 489
+f 489 490 210
+f 489 210 209
+f 209 210 594
+f 209 594 593
+f 593 594 2
+f 593 2 1
+f 1 2 602
+f 1 602 601
+f 601 602 212
+f 601 212 211
+f 211 212 492
+f 211 492 491
+f 491 492 524
+f 491 524 523
+f 523 524 508
+f 523 508 507
+f 507 508 236
+f 507 236 235
+f 235 236 28
+f 235 28 27
+f 27 28 580
+f 27 580 579
+f 579 580 186
+f 579 186 185
+f 185 186 84
+f 185 84 83
+f 83 84 418
+f 83 418 417
+f 417 418 444
+f 417 444 443
+f 443 444 324
+f 443 324 323
+f 323 324 562
+f 323 562 561
+f 561 562 298
+f 561 298 297
+f 297 298 396
+f 297 396 395
+f 395 396 746
+f 395 746 745
+f 745 746 130
+f 745 130 129
+f 129 130 474
+f 129 474 473
+f 473 474 676
+f 473 676 675
+f 675 676 612
+f 675 612 611
+f 611 612 716
+f 611 716 715
+f 715 716 66
+f 715 66 65
+f 65 66 196
+f 65 196 195
+f 195 196 370
+f 195 370 372
+f 372 370 198
+f 372 198 197
+f 197 198 68
+f 197 68 67
+f 67 68 718
+f 67 718 717
+f 717 718 614
+f 717 614 613
+f 613 614 678
+f 613 678 677
+f 677 678 476
+f 677 476 475
+f 475 476 132
+f 475 132 131
+f 131 132 748
+f 131 748 747
+f 747 748 398
+f 747 398 397
+f 397 398 300
+f 397 300 299
+f 299 300 564
+f 299 564 563
+f 563 564 326
+f 563 326 325
+f 325 326 446
+f 325 446 445
+f 445 446 420
+f 445 420 419
+f 419 420 86
+f 419 86 85
+f 85 86 188
+f 85 188 187
+f 187 188 582
+f 187 582 581
+f 581 582 30
+f 581 30 29
+f 29 30 238
+f 29 238 237
+f 237 238 510
+f 237 510 509
+f 509 510 526
+f 509 526 525
+f 525 526 494
+f 525 494 493
+f 493 494 214
+f 493 214 213
+f 213 214 604
+f 213 604 603
+f 603 604 4
+f 603 4 3
+f 3 4 596
+f 3 596 595
+f 595 596 216
+f 595 216 215
+f 215 216 496
+f 215 496 495
+f 495 496 528
+f 495 528 527
+f 527 528 512
+f 527 512 511
+f 511 512 240
+f 511 240 239
+f 239 240 32
+f 239 32 31
+f 31 32 584
+f 31 584 583
+f 583 584 180
+f 583 180 179
+f 179 180 88
+f 179 88 87
+f 87 88 428
+f 87 428 427
+f 427 428 448
+f 427 448 447
+f 447 448 328
+f 447 328 327
+f 327 328 572
+f 327 572 571
+f 571 572 308
+f 571 308 307
+f 307 308 400
+f 307 400 399
+f 399 400 740
+f 399 740 739
+f 739 740 124
+f 739 124 123
+f 123 124 484
+f 123 484 483
+f 483 484 680
+f 483 680 679
+f 679 680 616
+f 679 616 615
+f 615 616 720
+f 615 720 719
+f 719 720 76
+f 719 76 75
+f 75 76 200
+f 75 200 199
+f 199 200 376
+f 199 376 375
+f 375 376 202
+f 375 202 201
+f 201 202 78
+f 201 78 77
+f 77 78 722
+f 77 722 721
+f 721 722 618
+f 721 618 617
+f 617 618 682
+f 617 682 681
+f 681 682 486
+f 681 486 485
+f 485 486 126
+f 485 126 125
+f 125 126 742
+f 125 742 741
+f 741 742 402
+f 741 402 401
+f 401 402 310
+f 401 310 309
+f 309 310 574
+f 309 574 573
+f 573 574 330
+f 573 330 329
+f 329 330 450
+f 329 450 449
+f 449 450 430
+f 449 430 429
+f 429 430 90
+f 429 90 89
+f 89 90 182
+f 89 182 181
+f 181 182 586
+f 181 586 585
+f 585 586 34
+f 585 34 33
+f 33 34 242
+f 33 242 241
+f 241 242 514
+f 241 514 513
+f 513 514 530
+f 513 530 529
+f 529 530 498
+f 529 498 497
+f 497 498 218
+f 497 218 217
+f 217 218 598
+f 217 598 597
+f 597 598 6
+f 597 6 5
+f 5 6 606
+f 5 606 605
+f 605 606 220
+f 605 220 219
+f 219 220 500
+f 219 500 499
+f 499 500 532
+f 499 532 531
+f 531 532 516
+f 531 516 515
+f 515 516 244
+f 515 244 243
+f 243 244 36
+f 243 36 35
+f 35 36 588
+f 35 588 587
+f 587 588 190
+f 587 190 189
+f 189 190 92
+f 189 92 91
+f 91 92 422
+f 91 422 421
+f 421 422 452
+f 421 452 451
+f 451 452 332
+f 451 332 331
+f 331 332 566
+f 331 566 565
+f 565 566 302
+f 565 302 301
+f 301 302 404
+f 301 404 403
+f 403 404 750
+f 403 750 749
+f 749 750 134
+f 749 134 133
+f 133 134 478
+f 133 478 477
+f 477 478 684
+f 477 684 683
+f 683 684 620
+f 683 620 619
+f 619 620 724
+f 619 724 723
+f 723 724 70
+f 723 70 69
+f 69 70 204
+f 69 204 203
+f 203 204 369
+f 203 369 371
+f 371 369 206
+f 371 206 205
+f 205 206 72
+f 205 72 71
+f 71 72 726
+f 71 726 725
+f 725 726 622
+f 725 622 621
+f 621 622 686
+f 621 686 685
+f 685 686 480
+f 685 480 479
+f 479 480 136
+f 479 136 135
+f 135 136 752
+f 135 752 751
+f 751 752 406
+f 751 406 405
+f 405 406 304
+f 405 304 303
+f 303 304 568
+f 303 568 567
+f 567 568 334
+f 567 334 333
+f 333 334 454
+f 333 454 453
+f 453 454 424
+f 453 424 423
+f 423 424 94
+f 423 94 93
+f 93 94 192
+f 93 192 191
+f 191 192 590
+f 191 590 589
+f 589 590 38
+f 589 38 37
+f 37 38 246
+f 37 246 245
+f 245 246 518
+f 245 518 517
+f 517 518 534
+f 517 534 533
+f 533 534 502
+f 533 502 501
+f 501 502 222
+f 501 222 221
+f 221 222 608
+f 221 608 607
+f 607 608 8
+f 607 8 7
+f 7 8 600
+f 7 600 599
+f 599 600 224
+f 599 224 223
+f 223 224 504
+f 223 504 503
+f 503 504 536
+f 503 536 535
+f 535 536 520
+f 535 520 519
+f 519 520 248
+f 519 248 247
+f 247 248 40
+f 247 40 39
+f 39 40 592
+f 39 592 591
+f 591 592 184
+f 591 184 183
+f 183 184 96
+f 183 96 95
+f 95 96 432
+f 95 432 431
+f 431 432 456
+f 431 456 455
+f 455 456 336
+f 455 336 335
+f 335 336 576
+f 335 576 575
+f 575 576 312
+f 575 312 311
+f 311 312 408
+f 311 408 407
+f 407 408 744
+f 407 744 743
+f 743 744 128
+f 743 128 127
+f 127 128 488
+f 127 488 487
+f 487 488 688
+f 487 688 687
+f 687 688 624
+f 687 624 623
+f 623 624 728
+f 623 728 727
+f 727 728 80
+f 727 80 79
+f 79 80 208
+f 79 208 207
+f 207 208 374
+f 207 374 373
+# </faces>
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties
new file mode 100644
index 00000000000..c2c3b28a1b4
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict
new file mode 100644
index 00000000000..147724902a0
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict
@@ -0,0 +1,95 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+radius      0.081;
+radiusNeg  -0.081;
+box         0.025;
+boxNeg     -0.025;
+zMax        0.150;
+zMin       -0.150;
+
+nR          7;
+nZ          20;
+
+verbose no;
+
+geometry
+{
+    cylinder
+    {
+        type      searchableCylinder;
+        point1    (0 0 -1);
+        point2    (0 0  1);
+        radius    $radius;
+    }
+}
+
+scale 1;
+
+
+vertices
+(
+    // Inner
+    ($boxNeg $boxNeg $zMin)
+    ($box    $boxNeg $zMin)
+    ($boxNeg $box    $zMin)
+    ($box    $box    $zMin)
+
+    // Outer block points
+    project ($radiusNeg $radiusNeg $zMin) (cylinder)
+    project ($radius    $radiusNeg $zMin) (cylinder)
+    project ($radiusNeg $radius    $zMin) (cylinder)
+    project ($radius    $radius    $zMin) (cylinder)
+
+    // Inner
+    ($boxNeg $boxNeg $zMax)
+    ($box    $boxNeg $zMax)
+    ($boxNeg $box    $zMax)
+    ($box    $box    $zMax)
+
+    // Outer block points
+    project ($radiusNeg $radiusNeg $zMax) (cylinder)
+    project ($radius    $radiusNeg $zMax) (cylinder)
+    project ($radiusNeg $radius    $zMax) (cylinder)
+    project ($radius    $radius    $zMax) (cylinder)
+);
+
+blocks
+(
+    hex ( 4  5  1  0 12 13  9  8) ($nR $nR $nZ) simpleGrading (1 1 1)
+    hex ( 4  0  2  6 12  8 10 14) ($nR $nR $nZ) simpleGrading (1 1 1)
+    hex ( 1  5  7  3  9 13 15 11) ($nR $nR $nZ) simpleGrading (1 1 1)
+    hex ( 2  3  7  6 10 11 15 14) ($nR $nR $nZ) simpleGrading (1 1 1)
+    hex ( 0  1  3  2  8  9 11 10) ($nR $nR $nZ) simpleGrading (1 1 1)
+);
+
+edges
+(
+    project  4  5 (cylinder)
+    project  7  5 (cylinder)
+    project  6  7 (cylinder)
+    project  4  6 (cylinder)
+    project 12 13 (cylinder)
+    project 13 15 (cylinder)
+    project 12 14 (cylinder)
+    project 14 15 (cylinder)
+);
+
+boundary
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict
new file mode 100644
index 00000000000..2f49aae85e7
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict
@@ -0,0 +1,60 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     interDyMFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.5;
+
+deltaT          0.001;
+
+writeControl    adjustableRunTime;
+
+writeInterval   0.02;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression yes;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+adjustTimeStep  yes;
+
+maxCo           2;
+maxAlphaCo      2;
+
+maxDeltaT       1;
+
+functions
+{
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes
new file mode 100644
index 00000000000..2d0ecbd0e1b
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    div(rhoPhi,U)  Gauss vanLeerV;
+    div(phi,alpha)  Gauss vanLeer;
+    div(phirb,alpha) Gauss vanLeer;
+    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution
new file mode 100644
index 00000000000..a6cac11063e
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution
@@ -0,0 +1,89 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    "alpha.water.*"
+    {
+        nAlphaCorr      2;
+        nAlphaSubCycles 1;
+        cAlpha          1;
+
+        MULESCorr       yes;
+        nLimiterIter    8;
+
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-8;
+        relTol          0;
+    }
+
+    "pcorr.*"
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-10;
+        relTol          0;
+        maxIter         100;
+    }
+
+    p_rgh
+    {
+        solver          GAMG;
+        smoother        DIC;
+        tolerance       1e-05;
+        relTol          0.01;
+    }
+
+    p_rghFinal
+    {
+        $p_rgh;
+        relTol          0;
+        maxIter         20;
+    }
+
+    U
+    {
+        solver          smoothSolver;
+        smoother        GaussSeidel;
+        tolerance       1e-06;
+        relTol          0;
+        nSweeps         1;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor no;
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 1;
+    correctPhi      no;
+
+    pRefPoint       (0 0 0);
+    pRefValue       1e5;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        "U.*"           1;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict
new file mode 100644
index 00000000000..b33a98deb0d
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict
@@ -0,0 +1,19 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      meshQualityDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#includeEtc "caseDicts/mesh/generation/meshQualityDict.cfg"
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict
new file mode 100644
index 00000000000..447b451d9bc
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+    volScalarFieldValue alpha.water 0
+);
+
+regions
+(
+    boxToCell
+    {
+        box (-1 -1 -1) (1 1 -0.06);
+        fieldValues
+        (
+            volScalarFieldValue alpha.water 1
+        );
+    }
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict
new file mode 100644
index 00000000000..767ac928558
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict
@@ -0,0 +1,83 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      snappyHexMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#includeEtc "caseDicts/mesh/generation/snappyHexMeshDict.cfg"
+
+castellatedMesh on;
+snap            on;
+addLayers       off;
+
+geometry
+{
+    sloshingCylinder.obj
+    {
+        type closedTriSurfaceMesh;
+        name sloshingCylinder;
+    }
+};
+
+castellatedMeshControls
+{
+    features
+    (
+    );
+
+    refinementSurfaces
+    {
+        sloshingCylinder
+        {
+            level (1 1);
+            patchInfo { type wall; }
+        }
+    }
+
+    refinementRegions
+    {
+        sloshingCylinder
+        {
+            mode inside;
+            levels ((1E15 1));
+        }
+    }
+
+    locationInMesh (1e-5 1e-5 1e-5);
+}
+
+snapControls
+{
+    explicitFeatureSnap    false;
+    implicitFeatureSnap    false;
+}
+
+addLayersControls
+{
+    layers
+    {
+    }
+
+    relativeSizes       true;
+    expansionRatio      1.2;
+    finalLayerThickness 0.5;
+    minThickness        1e-3;
+}
+
+writeFlags
+(
+);
+
+mergeTolerance 1e-6;
+
+// ************************************************************************* //
-- 
GitLab


From e14769f224f9a1e0100b8a2155c79ffee54279b8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 24 Mar 2017 14:56:47 +0000
Subject: [PATCH 157/277] lagrangian::ThermoSurfaceFilm: Updated
 adhesion->splash transition Weber number

according to

        Bai et al, `Modelling of gasoline spray impingement', Atom. Sprays,
        vol 12, pp 1-27, 2002

Resolves bug-report https://bugs.openfoam.org/view.php?id=2478
---
 .../ThermoSurfaceFilm/ThermoSurfaceFilm.C     | 68 +++++++++----------
 .../ThermoSurfaceFilm/ThermoSurfaceFilm.H     |  4 +-
 2 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
index 094e4716112..c7a2577d115 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -111,13 +111,13 @@ Foam::vector Foam::ThermoSurfaceFilm<CloudType>::splashDirection
     const vector& nf
 ) const
 {
-    // azimuthal angle [rad]
+    // Azimuthal angle [rad]
     const scalar phiSi = twoPi*rndGen_.sample01<scalar>();
 
-    // ejection angle [rad]
+    // Ejection angle [rad]
     const scalar thetaSi = pi/180.0*(rndGen_.sample01<scalar>()*(50 - 5) + 5);
 
-    // direction vector of new parcel
+    // Direction vector of new parcel
     const scalar alpha = sin(thetaSi);
     const scalar dcorr = cos(thetaSi);
     const vector normal = alpha*(tanVec1*cos(phiSi) + tanVec2*sin(phiSi));
@@ -226,7 +226,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
     const vector& Up = this->owner().U().boundaryField()[pp.index()][facei];
     const vector& nf = pp.faceNormals()[facei];
 
-    // local pressure
+    // Local pressure
     const scalar pc = thermo_.thermo().p()[p.cell()];
 
     // Retrieve parcel properties
@@ -247,13 +247,13 @@ void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
     // Critical Weber number
     const scalar Wec = Adry_*pow(La, -0.183);
 
-    if (We < Wec) // adhesion - assume absorb
+    if (We < Wec) // Adhesion - assume absorb
     {
         absorbInteraction(filmModel, p, pp, facei, m, keepParticle);
     }
-    else // splash
+    else // Splash
     {
-        // ratio of incident mass to splashing mass
+        // Ratio of incident mass to splashing mass
         const scalar mRatio = 0.2 + 0.6*rndGen_.sample01<scalar>();
         splashInteraction
             (filmModel, p, pp, facei, mRatio, We, Wec, sigma, keepParticle);
@@ -282,7 +282,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
     const vector& Up = this->owner().U().boundaryField()[pp.index()][facei];
     const vector& nf = pp.faceNormals()[facei];
 
-    // local pressure
+    // Local pressure
     const scalar pc = thermo_.thermo().p()[p.cell()];
 
     // Retrieve parcel properties
@@ -305,31 +305,31 @@ void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
     // Critical Weber number
     const scalar Wec = Awet_*pow(La, -0.183);
 
-    if (We < 1) // adhesion - assume absorb
+    if (We < 2) // Adhesion - assume absorb
     {
         absorbInteraction(filmModel, p, pp, facei, m, keepParticle);
     }
-    else if ((We >= 1) && (We < 20)) // bounce
+    else if ((We >= 2) && (We < 20)) // Bounce
     {
-        // incident angle of impingement
+        // Incident angle of impingement
         const scalar theta = pi/2 - acos(U/mag(U) & nf);
 
-        // restitution coefficient
+        // Restitution coefficient
         const scalar epsilon = 0.993 - theta*(1.76 - theta*(1.56 - theta*0.49));
 
-        // update parcel velocity
+        // Update parcel velocity
         U = -epsilon*(Un) + 5/7*(Ut);
 
         keepParticle = true;
         return;
     }
-    else if ((We >= 20) && (We < Wec)) // spread - assume absorb
+    else if ((We >= 20) && (We < Wec)) // Spread - assume absorb
     {
         absorbInteraction(filmModel, p, pp, facei, m, keepParticle);
     }
-    else    // splash
+    else    // Splash
     {
-        // ratio of incident mass to splashing mass
+        // Ratio of incident mass to splashing mass
         // splash mass can be > incident mass due to film entrainment
         const scalar mRatio = 0.2 + 0.9*rndGen_.sample01<scalar>();
         splashInteraction
@@ -371,24 +371,24 @@ void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
     const vector& posC = mesh.C()[p.cell()];
     const vector& posCf = mesh.Cf().boundaryField()[pp.index()][facei];
 
-    // total mass of (all) splashed parcels
+    // Total mass of (all) splashed parcels
     const scalar mSplash = m*mRatio;
 
-    // number of splashed particles per incoming particle
+    // Number of splashed particles per incoming particle
     const scalar Ns = 5.0*(We/Wec - 1.0);
 
-    // average diameter of splashed particles
+    // Average diameter of splashed particles
     const scalar dBarSplash = 1/cbrt(6.0)*cbrt(mRatio/Ns)*d + ROOTVSMALL;
 
-    // cumulative diameter splash distribution
+    // Cumulative diameter splash distribution
     const scalar dMax = 0.9*cbrt(mRatio)*d;
     const scalar dMin = 0.1*dMax;
     const scalar K = exp(-dMin/dBarSplash) - exp(-dMax/dBarSplash);
 
-    // surface energy of secondary parcels [J]
+    // Surface energy of secondary parcels [J]
     scalar ESigmaSec = 0;
 
-    // sample splash distribution to determine secondary parcel diameters
+    // Sample splash distribution to determine secondary parcel diameters
     scalarList dNew(parcelsPerSplash_);
     scalarList npNew(parcelsPerSplash_);
     forAll(dNew, i)
@@ -399,26 +399,26 @@ void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
         ESigmaSec += npNew[i]*sigma*p.areaS(dNew[i]);
     }
 
-    // incident kinetic energy [J]
+    // Incident kinetic energy [J]
     const scalar EKIn = 0.5*m*magSqr(Urel);
 
-    // incident surface energy [J]
+    // Incident surface energy [J]
     const scalar ESigmaIn = np*sigma*p.areaS(d);
 
-    // dissipative energy
+    // Dissipative energy
     const scalar Ed = max(0.8*EKIn, np*Wec/12*pi*sigma*sqr(d));
 
-    // total energy [J]
+    // Total energy [J]
     const scalar EKs = EKIn + ESigmaIn - ESigmaSec - Ed;
 
-    // switch to absorb if insufficient energy for splash
+    // Switch to absorb if insufficient energy for splash
     if (EKs <= 0)
     {
         absorbInteraction(filmModel, p, pp, facei, m, keepParticle);
         return;
     }
 
-    // helper variables to calculate magUns0
+    // Helper variables to calculate magUns0
     const scalar logD = log(d);
     const scalar coeff2 = log(dNew[0]) - logD + ROOTVSMALL;
     scalar coeff1 = 0.0;
@@ -427,7 +427,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
         coeff1 += sqr(log(dNew[i]) - logD);
     }
 
-    // magnitude of the normal velocity of the first splashed parcel
+    // Magnitude of the normal velocity of the first splashed parcel
     const scalar magUns0 =
         sqrt(2.0*parcelsPerSplash_*EKs/mSplash/(1.0 + coeff1/sqr(coeff2)));
 
@@ -448,7 +448,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
             pPtr->typeId() = splashParcelType_;
         }
 
-        // perturb new parcels towards the owner cell centre
+        // Perturb new parcels towards the owner cell centre
         pPtr->position() += 0.5*rndGen_.sample01<scalar>()*(posC - posCf);
 
         pPtr->nParticle() = npNew[i];
@@ -466,7 +466,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
         nParcelsSplashed_++;
     }
 
-    // transfer remaining part of parcel to film 0 - splashMass can be -ve
+    // Transfer remaining part of parcel to film 0 - splashMass can be -ve
     // if entraining from the film
     const scalar mDash = m - mSplash;
     absorbInteraction(filmModel, p, pp, facei, mDash, keepParticle);
@@ -613,11 +613,11 @@ bool Foam::ThermoSurfaceFilm<CloudType>::transferParcel
             }
         }
 
-        // transfer parcel/parcel interactions complete
+        // Transfer parcel/parcel interactions complete
         return true;
     }
 
-    // parcel not interacting with film
+    // Parcel not interacting with film
     return false;
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
index afbc7978fb0..e0e754596e9 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,7 +36,7 @@ Description
         Bai and Gosman, `Mathematical modelling of wall films formed by
         impinging sprays', SAE 960626, 1996
 
-        Bai et al, `Modelling off gasoline spray impingement', Atom. Sprays,
+        Bai et al, `Modelling of gasoline spray impingement', Atom. Sprays,
         vol 12, pp 1-27, 2002
 
 
-- 
GitLab


From 5efae4cadfcb2aa63a6408d881074be0b7a6febb Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 24 Mar 2017 17:27:43 +0000
Subject: [PATCH 158/277] reactingTwoPhaseEulerFoam: Small change to avoid
 warning from wmkdep

---
 .../reactingTwoPhaseEulerFoam/pUf/createDDtU.H                  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H
index b4c6de5f1a5..e461616b290 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/createDDtU.H
@@ -3,5 +3,5 @@ tmp<surfaceScalarField> tddtPhi2;
 
 if (faceMomentum)
 {
-    #include "DDtU.H"
+    #include "pUf/DDtU.H"
 }
-- 
GitLab


From b708c23cfc5be03cd2654808cd12d9ef10d2b2b0 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 27 Mar 2017 14:34:01 +0100
Subject: [PATCH 159/277] ENH: Clean-up after latest Foundation integrations

---
 .../rhoPorousSimpleFoam/createFields.H        |  59 ---
 src/Allwmake                                  |   3 +-
 src/combustionModels/FSD/FSD.C                |  12 +-
 src/combustionModels/Make/files               |   5 +-
 .../diffusionMulticomponent.C                 |  54 +-
 .../diffusionMulticomponent.H                 |   5 +-
 .../field/fieldMinMax/fieldMinMaxTemplates.C  |   2 +
 .../surfaceFieldValue/surfaceFieldValue.C     |  22 +-
 .../surfaceFieldValueTemplates.C              |  33 +-
 .../ParticleCollector/ParticleCollector.C     |   1 +
 .../searchableSurface/triSurfaceMesh.C        | 117 ++++-
 .../searchableSurface/triSurfaceMesh.H        |  45 +-
 .../distributedTriSurfaceMesh.C               | 464 +++++++++---------
 .../liquidProperties}/Make/files              |   0
 .../liquidProperties}/Make/options            |   4 +-
 ...emperatureCoupledMixedFvPatchScalarField.C |   0
 ...emperatureCoupledMixedFvPatchScalarField.H |   0
 17 files changed, 433 insertions(+), 393 deletions(-)
 delete mode 100644 applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
 rename src/thermophysicalModels/{properties/liquidPropertiesFvPatchFields => thermophysicalPropertiesFvPatchFields/liquidProperties}/Make/files (100%)
 rename src/thermophysicalModels/{properties/liquidPropertiesFvPatchFields => thermophysicalPropertiesFvPatchFields/liquidProperties}/Make/options (74%)
 rename src/thermophysicalModels/{properties/liquidPropertiesFvPatchFields => thermophysicalPropertiesFvPatchFields/liquidProperties}/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C (100%)
 rename src/thermophysicalModels/{properties/liquidPropertiesFvPatchFields => thermophysicalPropertiesFvPatchFields/liquidProperties}/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H (100%)

diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
deleted file mode 100644
index 4671347b66a..00000000000
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
+++ /dev/null
@@ -1,59 +0,0 @@
-Info<< "Reading thermophysical properties\n" << endl;
-
-autoPtr<fluidThermo> pThermo
-(
-    fluidThermo::New(mesh)
-);
-fluidThermo& thermo = pThermo();
-thermo.validate(args.executable(), "h", "e");
-
-volScalarField rho
-(
-    IOobject
-    (
-        "rho",
-        runTime.timeName(),
-        mesh,
-        IOobject::READ_IF_PRESENT,
-        IOobject::AUTO_WRITE
-    ),
-    thermo.rho()
-);
-
-volScalarField& p = thermo.p();
-
-Info<< "Reading field U\n" << endl;
-volVectorField U
-(
-    IOobject
-    (
-        "U",
-        runTime.timeName(),
-        mesh,
-        IOobject::MUST_READ,
-        IOobject::AUTO_WRITE
-    ),
-    mesh
-);
-
-#include "compressibleCreatePhi.H"
-
-pressureControl pressureControl(p, rho, simple.dict());
-
-mesh.setFluxRequired(p.name());
-
-Info<< "Creating turbulence model\n" << endl;
-autoPtr<compressible::turbulenceModel> turbulence
-(
-    compressible::turbulenceModel::New
-    (
-        rho,
-        U,
-        phi,
-        thermo
-    )
-);
-
-dimensionedScalar initialMass = fvc::domainIntegrate(rho);
-
-#include "createMRF.H"
diff --git a/src/Allwmake b/src/Allwmake
index 624257ff37a..501f2863054 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -81,6 +81,7 @@ wmake $targetType rigidBodyDynamics
 wmake $targetType rigidBodyMeshMotion
 
 # Needs access to Turbulence
-wmake $targetType thermophysicalModels/properties/liquidPropertiesFvPatchFields
+
+wmake $targetType thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties
 
 #------------------------------------------------------------------------------
diff --git a/src/combustionModels/FSD/FSD.C b/src/combustionModels/FSD/FSD.C
index 25ed498fce6..1bc995bef7c 100644
--- a/src/combustionModels/FSD/FSD.C
+++ b/src/combustionModels/FSD/FSD.C
@@ -58,7 +58,7 @@ FSD<CombThermoType, ThermoType>::FSD
         (
             this->coeffs(),
             this->mesh(),
-           *this
+            *this
         )
     ),
     ft_
@@ -190,14 +190,18 @@ void FSD<CombThermoType, ThermoType>::calculateSourceNorm()
     volScalarField& omegaFuelBar = tomegaFuel.ref();
 
     // Calculation of the mixture fraction variance (ftVar)
-    // TODO: generalize delta for RAS and LES.
-    const volScalarField& delta =
-        refCast<const compressible::LESModel>(this->turbulence()).delta();
+    const compressible::LESModel& lesModel =
+        YO2.db().lookupObject<compressible::LESModel>
+        (
+            turbulenceModel::propertiesName
+        );
 
+    const volScalarField& delta = lesModel.delta();
     const volScalarField ftVar(Cv_*sqr(delta)*sqr(mgft));
 
     // Thickened flame (average flame thickness for counterflow configuration
     // is 1.5 mm)
+
     volScalarField  deltaF
     (
         delta/dimensionedScalar("flame", dimLength, 1.5e-3)
diff --git a/src/combustionModels/Make/files b/src/combustionModels/Make/files
index 09844f061e9..760bb324a48 100644
--- a/src/combustionModels/Make/files
+++ b/src/combustionModels/Make/files
@@ -19,16 +19,17 @@ eddyDissipationDiffusionModel/eddyDissipationDiffusionModels.C
 
 laminar/laminars.C
 
-/*
+
 FSD/reactionRateFlameAreaModels/consumptionSpeed/consumptionSpeed.C
 FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
 FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameAreaNew.C
 FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
 FSD/FSDs.C
-*/
+
 
 diffusionMulticomponent/diffusionMulticomponents.C
 
+
 zoneCombustion/zoneCombustions.C
 
 noCombustion/noCombustions.C
diff --git a/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.C b/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.C
index aa2bfdb754a..aa4893c0787 100644
--- a/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.C
+++ b/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.C
@@ -369,8 +369,10 @@ diffusionMulticomponent<CombThermoType, ThermoType>::correct()
 
 template<class CombThermoType, class ThermoType>
 Foam::tmp<Foam::fvScalarMatrix>
-Foam::combustionModels::diffusionMulticomponent<CombThermoType, ThermoType>::
-R(volScalarField& Y) const
+Foam::combustionModels::diffusionMulticomponent<CombThermoType, ThermoType>::R
+(
+    volScalarField& Y
+) const
 {
     tmp<fvScalarMatrix> tSu(new fvScalarMatrix(Y, dimMass/dimTime));
 
@@ -378,7 +380,7 @@ R(volScalarField& Y) const
 
     if (this->active())
     {
-        const label specieI = this->thermo().composition().species()[Y.name()];
+        const label specieI = this->thermo().composition().species()[Y.member()];
         Su += this->chemistryPtr_->RR(specieI);
     }
 
@@ -389,15 +391,15 @@ R(volScalarField& Y) const
 template<class CombThermoType, class ThermoType>
 Foam::tmp<Foam::volScalarField>
 Foam::combustionModels::diffusionMulticomponent<CombThermoType, ThermoType>::
-dQ() const
+Qdot() const
 {
-    tmp<volScalarField> tdQ
+    tmp<volScalarField> tQdot
     (
         new volScalarField
         (
             IOobject
             (
-                "dQ",
+                "Qdot",
                 this->mesh().time().timeName(),
                 this->mesh(),
                 IOobject::NO_READ,
@@ -412,45 +414,11 @@ dQ() const
 
     if (this->active())
     {
-        volScalarField& dQ = tdQ.ref();
-        dQ = this->chemistryPtr_->dQ();
-    }
-
-    return tdQ;
-}
-
-
-template<class CombThermoType, class ThermoType>
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::diffusionMulticomponent<CombThermoType, ThermoType>::
-Sh() const
-{
-    tmp<volScalarField> tSh
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                "Sh",
-                this->mesh().time().timeName(),
-                this->mesh(),
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            this->mesh(),
-            dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0),
-            zeroGradientFvPatchScalarField::typeName
-        )
-    );
-
-    if (this->active())
-    {
-        scalarField& Sh = tSh.ref();
-        Sh = this->chemistryPtr_->Sh();
+        volScalarField& Qdot = tQdot.ref();
+        Qdot = this->chemistryPtr_->Qdot();
     }
 
-    return tSh;
+    return tQdot;
 }
 
 
diff --git a/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.H b/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.H
index 48af00efd9f..b1f7f40ba02 100644
--- a/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.H
+++ b/src/combustionModels/diffusionMulticomponent/diffusionMulticomponent.H
@@ -191,10 +191,7 @@ public:
             virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
 
             //- Heat release rate calculated from fuel consumption rate matrix
-            virtual tmp<volScalarField> dQ() const;
-
-            //-  Return source for enthalpy equation [kg/m/s3]
-            virtual tmp<volScalarField> Sh() const;
+            virtual tmp<volScalarField> Qdot() const;
 
 
     // IO
diff --git a/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C b/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
index b9dc72d92bf..95389d0151a 100644
--- a/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
+++ b/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
@@ -196,10 +196,12 @@ void Foam::functionObjects::fieldMinMax::calcMinMaxFields
 
                 label mini = findMin(minVs);
                 scalar minValue = minVs[mini];
+                const label minCell = minCells[mini];
                 const vector& minC = minCs[mini];
 
                 label maxi = findMax(maxVs);
                 scalar maxValue = maxVs[maxi];
+                const label maxCell = minCells[maxi];
                 const vector& maxC = maxCs[maxi];
 
                 output
diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
index f8abf91d1a5..5d5bb380d70 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
@@ -986,11 +986,14 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::write()
     {
         if (validField<scalar>(weightFieldName_))
         {
-            scalarField weightField = getFieldValues<scalar>
+            scalarField weightField
             (
-                weightFieldName_,
-                true,
-                orientWeightField_
+                getFieldValues<scalar>
+                (
+                    weightFieldName_,
+                    true,
+                    orientWeightField_
+                )
             );
 
             // Process the fields
@@ -998,11 +1001,14 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::write()
         }
         else if (validField<vector>(weightFieldName_))
         {
-            vectorField weightField = getFieldValues<vector>
+            vectorField weightField
             (
-                weightFieldName_,
-                true,
-                orientWeightField_
+                getFieldValues<vector>
+                (
+                    weightFieldName_,
+                    true,
+                    orientWeightField_
+                )
             );
 
             // Process the fields
diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
index 4d8611e77c1..6f434ed82c9 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
@@ -147,17 +147,6 @@ processSameTypeValues
             break;
         }
         case opWeightedSum:
-        {
-            if (weightField.size())
-            {
-                result = sum(weightField*values);
-            }
-            else
-            {
-                result = sum(values);
-            }
-            break;
-        }
         {
             if (returnReduce(weightField.empty(), andOp<bool>()))
             {
@@ -165,7 +154,7 @@ processSameTypeValues
             }
             else
             {
-                tmp<scalarField> weight = weightingFactor(weightField);
+                tmp<scalarField> weight(weightingFactor(weightField));
 
                 result = gSum(weight*values);
             }
@@ -202,7 +191,7 @@ processSameTypeValues
             }
             else
             {
-                const scalarField factor = weightingFactor(weightField);
+                const scalarField factor(weightingFactor(weightField));
 
                 result = gSum(factor*values)/(gSum(factor) + ROOTVSMALL);
             }
@@ -217,7 +206,7 @@ processSameTypeValues
         }
         case opWeightedAreaAverage:
         {
-            const scalarField factor = weightingFactor(weightField, Sf);
+            const scalarField factor(weightingFactor(weightField, Sf));
 
             result = gSum(factor*values)/gSum(factor + ROOTVSMALL);
             break;
@@ -231,25 +220,11 @@ processSameTypeValues
         }
         case opWeightedAreaIntegrate:
         {
-            const scalarField factor = weightingFactor(weightField, Sf);
+            const scalarField factor(weightingFactor(weightField, Sf));
 
             result = gSum(factor*values);
             break;
         }
-        case opWeightedAreaIntegrate:
-        {
-            const scalarField magSf(mag(Sf));
-
-            if (weightField.size())
-            {
-                result = sum(weightField*magSf*values);
-            }
-            else
-            {
-                result = sum(magSf*values);
-            }
-            break;
-        }
         case opMin:
         {
             result = gMin(values);
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
index c3bbff871b0..3cba483747b 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
@@ -379,6 +379,7 @@ void Foam::ParticleCollector<CloudType>::collectParcelConcentricCircles
                     scalar(nSector_)*theta/constant::mathematical::twoPi
                 );
         }
+    }
 
     if (secI != -1)
     {
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.C b/src/meshTools/searchableSurface/triSurfaceMesh.C
index a2adcd29fa8..617243c1382 100644
--- a/src/meshTools/searchableSurface/triSurfaceMesh.C
+++ b/src/meshTools/searchableSurface/triSurfaceMesh.C
@@ -42,9 +42,18 @@ namespace Foam
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-Foam::fileName Foam::triSurfaceMesh::checkFile(const IOobject& io)
+Foam::fileName Foam::triSurfaceMesh::checkFile
+(
+    const IOobject& io,
+    const bool isGlobal
+)
 {
-    const fileName fName(io.filePath());
+    const fileName fName
+    (
+        isGlobal
+      ? io.globalFilePath()
+      : io.localFilePath()
+    );
     if (fName.empty())
     {
         FatalErrorInFunction
@@ -59,7 +68,8 @@ Foam::fileName Foam::triSurfaceMesh::checkFile(const IOobject& io)
 Foam::fileName Foam::triSurfaceMesh::checkFile
 (
     const IOobject& io,
-    const dictionary& dict
+    const dictionary& dict,
+    const bool isGlobal
 )
 {
     fileName fName;
@@ -79,7 +89,8 @@ Foam::fileName Foam::triSurfaceMesh::checkFile
     }
     else
     {
-        fName = io.filePath();
+        fName = (isGlobal ? io.globalFilePath() : io.localFilePath());
+
         if (!exists(fName))
         {
             FatalErrorInFunction
@@ -240,7 +251,7 @@ Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io)
             false       // searchableSurface already registered under name
         )
     ),
-    triSurface(checkFile(static_cast<const searchableSurface&>(*this))),
+    triSurface(checkFile(static_cast<const searchableSurface&>(*this), true)),
     triSurfaceRegionSearch(static_cast<const triSurface&>(*this)),
     minQuality_(-1),
     surfaceClosed_(-1),
@@ -273,7 +284,10 @@ Foam::triSurfaceMesh::triSurfaceMesh
             false       // searchableSurface already registered under name
         )
     ),
-    triSurface(checkFile(static_cast<const searchableSurface&>(*this), dict)),
+    triSurface
+    (
+        checkFile(static_cast<const searchableSurface&>(*this), dict, true)
+    ),
     triSurfaceRegionSearch(static_cast<const triSurface&>(*this), dict),
     minQuality_(-1),
     surfaceClosed_(-1),
@@ -307,6 +321,97 @@ Foam::triSurfaceMesh::triSurfaceMesh
 }
 
 
+Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io, const bool isGlobal)
+:
+    // Find instance for triSurfaceMesh
+    searchableSurface(io),
+    // Reused found instance in objectRegistry
+    objectRegistry
+    (
+        IOobject
+        (
+            io.name(),
+            searchableSurface::instance(),
+            io.local(),
+            io.db(),
+            io.readOpt(),
+            io.writeOpt(),
+            false       // searchableSurface already registered under name
+        )
+    ),
+    triSurface
+    (
+        checkFile(static_cast<const searchableSurface&>(*this), isGlobal)
+    ),
+    triSurfaceRegionSearch(static_cast<const triSurface&>(*this)),
+    minQuality_(-1),
+    surfaceClosed_(-1),
+    outsideVolType_(volumeType::UNKNOWN)
+{
+    const pointField& pts = triSurface::points();
+
+    bounds() = boundBox(pts, isGlobal);
+}
+
+
+Foam::triSurfaceMesh::triSurfaceMesh
+(
+    const IOobject& io,
+    const dictionary& dict,
+    const bool isGlobal
+)
+:
+    searchableSurface(io),
+    // Reused found instance in objectRegistry
+    objectRegistry
+    (
+        IOobject
+        (
+            io.name(),
+            searchableSurface::instance(),
+            io.local(),
+            io.db(),
+            io.readOpt(),
+            io.writeOpt(),
+            false       // searchableSurface already registered under name
+        )
+    ),
+    triSurface
+    (
+        checkFile(static_cast<const searchableSurface&>(*this), dict, isGlobal)
+    ),
+    triSurfaceRegionSearch(static_cast<const triSurface&>(*this), dict),
+    minQuality_(-1),
+    surfaceClosed_(-1),
+    outsideVolType_(volumeType::UNKNOWN)
+{
+    // Reading from supplied file name instead of objectPath/filePath
+    dict.readIfPresent("file", fName_, false, false);
+
+    scalar scaleFactor = 0;
+
+    // Allow rescaling of the surface points
+    // eg, CAD geometries are often done in millimeters
+    if (dict.readIfPresent("scale", scaleFactor) && scaleFactor > 0)
+    {
+        Info<< searchableSurface::name() << " : using scale " << scaleFactor
+            << endl;
+        triSurface::scalePoints(scaleFactor);
+    }
+
+    const pointField& pts = triSurface::points();
+
+    bounds() = boundBox(pts, isGlobal);
+
+    // Have optional minimum quality for normal calculation
+    if (dict.readIfPresent("minQuality", minQuality_) && minQuality_ > 0)
+    {
+        Info<< searchableSurface::name()
+            << " : ignoring triangles with quality < "
+            << minQuality_ << " for normals calculation." << endl;
+    }
+}
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::triSurfaceMesh::~triSurfaceMesh()
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.H b/src/meshTools/searchableSurface/triSurfaceMesh.H
index 5b5b347e45e..d1691dba186 100644
--- a/src/meshTools/searchableSurface/triSurfaceMesh.H
+++ b/src/meshTools/searchableSurface/triSurfaceMesh.H
@@ -93,10 +93,15 @@ class triSurfaceMesh
     // Private Member Functions
 
         //- Return fileName to load IOobject from
-        static fileName checkFile(const IOobject& io);
+        static fileName checkFile(const IOobject& io, const bool isGlobal);
 
         //- Return fileName to load IOobject from. Optional override of fileName
-        static fileName checkFile(const IOobject&, const dictionary&);
+        static fileName checkFile
+        (
+            const IOobject&,
+            const dictionary&,
+            const bool isGlobal
+        );
 
         //- Helper function for isSurfaceClosed
         static bool addFaceToEdge
@@ -141,7 +146,7 @@ public:
         //- Construct from triSurface
         triSurfaceMesh(const IOobject&, const triSurface&);
 
-        //- Construct read.
+        //- Construct read
         triSurfaceMesh(const IOobject& io);
 
         //- Construct from IO and dictionary (used by searchableSurface).
@@ -153,6 +158,19 @@ public:
         );
 
 
+        // Special constructors for use by distributedTriSurface. File search
+        // status (local/global) supplied.
+
+            triSurfaceMesh(const IOobject& io, const bool isGlobal);
+
+            triSurfaceMesh
+            (
+                const IOobject& io,
+                const dictionary& dict,
+                const bool isGlobal
+            );
+
+
     //- Destructor
     virtual ~triSurfaceMesh();
 
@@ -285,9 +303,30 @@ public:
                 IOstream::versionNumber ver,
                 IOstream::compressionType cmp
             ) const;
+
+            //- Is object global
+            virtual bool global() const
+            {
+                return true;
+            }
+
+            //- Return complete path + object name if the file exists
+            //  either in the case/processor or case otherwise null
+            virtual fileName filePath() const
+            {
+                return searchableSurface::globalFilePath();
+            }
 };
 
 
+//- Template function for obtaining global status
+template<>
+inline bool typeGlobal<triSurfaceMesh>()
+{
+    return true;
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
index 0f18e2a0b0f..ae6f0b8c7ab 100644
--- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
+++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
@@ -100,9 +100,9 @@ bool Foam::distributedTriSurfaceMesh::isLocal
     const point& end
 )
 {
-    forAll(myBbs, bbI)
+    forAll(myBbs, bbi)
     {
-        if (myBbs[bbI].contains(start) && myBbs[bbI].contains(end))
+        if (myBbs[bbi].contains(start) && myBbs[bbi].contains(end))
         {
             return true;
         }
@@ -113,7 +113,7 @@ bool Foam::distributedTriSurfaceMesh::isLocal
 
 //void Foam::distributedTriSurfaceMesh::splitSegment
 //(
-//    const label segmentI,
+//    const label segmenti,
 //    const point& start,
 //    const point& end,
 //    const treeBoundBox& bb,
@@ -135,8 +135,8 @@ bool Foam::distributedTriSurfaceMesh::isLocal
 //        {
 //            // segment from start to clippedStart passes
 //            // through proc.
-//            sendMap[procI].append(allSegments.size());
-//            allSegmentMap.append(segmentI);
+//            sendMap[proci].append(allSegments.size());
+//            allSegmentMap.append(segmenti);
 //            allSegments.append(segment(start, clipPt0));
 //        }
 //    }
@@ -147,8 +147,8 @@ bool Foam::distributedTriSurfaceMesh::isLocal
 //
 //        if (clipped)
 //        {
-//            sendMap[procI].append(allSegments.size());
-//            allSegmentMap.append(segmentI);
+//            sendMap[proci].append(allSegments.size());
+//            allSegmentMap.append(segmenti);
 //            allSegments.append(segment(clipPt0, end));
 //        }
 //    }
@@ -164,8 +164,8 @@ bool Foam::distributedTriSurfaceMesh::isLocal
 //            if (clippedEnd)
 //            {
 //                // middle part of segment passes through proc.
-//                sendMap[procI].append(allSegments.size());
-//                allSegmentMap.append(segmentI);
+//                sendMap[proci].append(allSegments.size());
+//                allSegmentMap.append(segmenti);
 //                allSegments.append(segment(clipPt0, clipPt1));
 //            }
 //        }
@@ -175,7 +175,7 @@ bool Foam::distributedTriSurfaceMesh::isLocal
 
 void Foam::distributedTriSurfaceMesh::distributeSegment
 (
-    const label segmentI,
+    const label segmenti,
     const point& start,
     const point& end,
 
@@ -194,16 +194,16 @@ void Foam::distributedTriSurfaceMesh::distributeSegment
     // 2. If fully inside one other processor, then only need to send
     // to that one processor even if it intersects another. Rare occurrence
     // but cheap to test.
-    forAll(procBb_, procI)
+    forAll(procBb_, proci)
     {
-        if (procI != Pstream::myProcNo())
+        if (proci != Pstream::myProcNo())
         {
-            const List<treeBoundBox>& bbs = procBb_[procI];
+            const List<treeBoundBox>& bbs = procBb_[proci];
 
             if (isLocal(bbs, start, end))
             {
-                sendMap[procI].append(allSegments.size());
-                allSegmentMap.append(segmentI);
+                sendMap[proci].append(allSegments.size());
+                allSegmentMap.append(segmenti);
                 allSegments.append(segment(start, end));
                 return;
             }
@@ -213,13 +213,13 @@ void Foam::distributedTriSurfaceMesh::distributeSegment
 
     // 3. If not contained in single processor send to all intersecting
     // processors.
-    forAll(procBb_, procI)
+    forAll(procBb_, proci)
     {
-        const List<treeBoundBox>& bbs = procBb_[procI];
+        const List<treeBoundBox>& bbs = procBb_[proci];
 
-        forAll(bbs, bbI)
+        forAll(bbs, bbi)
         {
-            const treeBoundBox& bb = bbs[bbI];
+            const treeBoundBox& bb = bbs[bbi];
 
             // Scheme a: any processor that intersects the segment gets
             // the segment.
@@ -229,8 +229,8 @@ void Foam::distributedTriSurfaceMesh::distributeSegment
 
             if (bb.intersects(start, end, clipPt))
             {
-                sendMap[procI].append(allSegments.size());
-                allSegmentMap.append(segmentI);
+                sendMap[proci].append(allSegments.size());
+                allSegmentMap.append(segmenti);
                 allSegments.append(segment(start, end));
             }
 
@@ -239,14 +239,14 @@ void Foam::distributedTriSurfaceMesh::distributeSegment
             // truncation errors.
             //splitSegment
             //(
-            //    segmentI,
+            //    segmenti,
             //    start,
             //    end,
             //    bb,
             //
             //    allSegments,
             //    allSegmentMap,
-            //   sendMap[procI]
+            //   sendMap[proci]
             //);
         }
     }
@@ -280,13 +280,13 @@ Foam::distributedTriSurfaceMesh::distributeSegments
         // Per processor indices into allSegments to send
         List<DynamicList<label>> dynSendMap(Pstream::nProcs());
 
-        forAll(start, segmentI)
+        forAll(start, segmenti)
         {
             distributeSegment
             (
-                segmentI,
-                start[segmentI],
-                end[segmentI],
+                segmenti,
+                start[segmenti],
+                end[segmenti],
 
                 dynAllSegments,
                 dynAllSegmentMap,
@@ -296,10 +296,10 @@ Foam::distributedTriSurfaceMesh::distributeSegments
 
         // Convert dynamicList to labelList
         sendMap.setSize(Pstream::nProcs());
-        forAll(sendMap, procI)
+        forAll(sendMap, proci)
         {
-            dynSendMap[procI].shrink();
-            sendMap[procI].transfer(dynSendMap[procI]);
+            dynSendMap[proci].shrink();
+            sendMap[proci].transfer(dynSendMap[proci]);
         }
 
         allSegments.transfer(dynAllSegments.shrink());
@@ -307,12 +307,12 @@ Foam::distributedTriSurfaceMesh::distributeSegments
     }
 
 
-    // Send over how many I need to receive.
+    // Send over how many i need to receive.
     labelListList sendSizes(Pstream::nProcs());
     sendSizes[Pstream::myProcNo()].setSize(Pstream::nProcs());
-    forAll(sendMap, procI)
+    forAll(sendMap, proci)
     {
-        sendSizes[Pstream::myProcNo()][procI] = sendMap[procI].size();
+        sendSizes[Pstream::myProcNo()][proci] = sendMap[proci].size();
     }
     Pstream::gatherList(sendSizes);
     Pstream::scatterList(sendSizes);
@@ -327,18 +327,18 @@ Foam::distributedTriSurfaceMesh::distributeSegments
         sendMap[Pstream::myProcNo()].size()
     );
 
-    label segmentI = constructMap[Pstream::myProcNo()].size();
-    forAll(constructMap, procI)
+    label segmenti = constructMap[Pstream::myProcNo()].size();
+    forAll(constructMap, proci)
     {
-        if (procI != Pstream::myProcNo())
+        if (proci != Pstream::myProcNo())
         {
-            // What I need to receive is what other processor is sending to me.
-            label nRecv = sendSizes[procI][Pstream::myProcNo()];
-            constructMap[procI].setSize(nRecv);
+            // What i need to receive is what other processor is sending to me.
+            label nRecv = sendSizes[proci][Pstream::myProcNo()];
+            constructMap[proci].setSize(nRecv);
 
             for (label i = 0; i < nRecv; i++)
             {
-                constructMap[procI][i] = segmentI++;
+                constructMap[proci][i] = segmenti++;
             }
         }
     }
@@ -347,7 +347,7 @@ Foam::distributedTriSurfaceMesh::distributeSegments
     (
         new mapDistribute
         (
-            segmentI,       // size after construction
+            segmenti,       // size after construction
             sendMap.xfer(),
             constructMap.xfer()
         )
@@ -458,7 +458,7 @@ void Foam::distributedTriSurfaceMesh::findLine
             map.distribute(allSegments);
 
 
-            // Do tests I need to do
+            // Do tests i need to do
             // ~~~~~~~~~~~~~~~~~~~~~
 
             // Intersections
@@ -506,8 +506,8 @@ void Foam::distributedTriSurfaceMesh::findLine
             forAll(intersections, i)
             {
                 const pointIndexHit& allInfo = intersections[i];
-                label segmentI = allSegmentMap[i];
-                pointIndexHit& hitInfo = info[segmentI];
+                label segmenti = allSegmentMap[i];
+                pointIndexHit& hitInfo = info[segmenti];
 
                 if (allInfo.hit())
                 {
@@ -521,8 +521,8 @@ void Foam::distributedTriSurfaceMesh::findLine
                         // Nearest intersection
                         if
                         (
-                            magSqr(allInfo.hitPoint()-start[segmentI])
-                          < magSqr(hitInfo.hitPoint()-start[segmentI])
+                            magSqr(allInfo.hitPoint()-start[segmenti])
+                          < magSqr(hitInfo.hitPoint()-start[segmenti])
                         )
                         {
                             hitInfo = allInfo;
@@ -563,17 +563,17 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
     {
         if (info[i].hit())
         {
-            label procI = triIndexer.whichProcID(info[i].index());
-            nSend[procI]++;
+            label proci = triIndexer.whichProcID(info[i].index());
+            nSend[proci]++;
         }
     }
 
     // 2. Size sendMap
     labelListList sendMap(Pstream::nProcs());
-    forAll(nSend, procI)
+    forAll(nSend, proci)
     {
-        sendMap[procI].setSize(nSend[procI]);
-        nSend[procI] = 0;
+        sendMap[proci].setSize(nSend[proci]);
+        nSend[proci] = 0;
     }
 
     // 3. Fill sendMap
@@ -581,9 +581,9 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
     {
         if (info[i].hit())
         {
-            label procI = triIndexer.whichProcID(info[i].index());
-            triangleIndex[i] = triIndexer.toLocal(procI, info[i].index());
-            sendMap[procI][nSend[procI]++] = i;
+            label proci = triIndexer.whichProcID(info[i].index());
+            triangleIndex[i] = triIndexer.toLocal(proci, info[i].index());
+            sendMap[proci][nSend[proci]++] = i;
         }
         else
         {
@@ -592,14 +592,14 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
     }
 
 
-    // Send over how many I need to receive
+    // Send over how many i need to receive
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     labelListList sendSizes(Pstream::nProcs());
     sendSizes[Pstream::myProcNo()].setSize(Pstream::nProcs());
-    forAll(sendMap, procI)
+    forAll(sendMap, proci)
     {
-        sendSizes[Pstream::myProcNo()][procI] = sendMap[procI].size();
+        sendSizes[Pstream::myProcNo()][proci] = sendMap[proci].size();
     }
     Pstream::gatherList(sendSizes);
     Pstream::scatterList(sendSizes);
@@ -616,18 +616,18 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
         sendMap[Pstream::myProcNo()].size()
     );
 
-    label segmentI = constructMap[Pstream::myProcNo()].size();
-    forAll(constructMap, procI)
+    label segmenti = constructMap[Pstream::myProcNo()].size();
+    forAll(constructMap, proci)
     {
-        if (procI != Pstream::myProcNo())
+        if (proci != Pstream::myProcNo())
         {
-            // What I need to receive is what other processor is sending to me.
-            label nRecv = sendSizes[procI][Pstream::myProcNo()];
-            constructMap[procI].setSize(nRecv);
+            // What i need to receive is what other processor is sending to me.
+            label nRecv = sendSizes[proci][Pstream::myProcNo()];
+            constructMap[proci].setSize(nRecv);
 
             for (label i = 0; i < nRecv; i++)
             {
-                constructMap[procI][i] = segmentI++;
+                constructMap[proci][i] = segmenti++;
             }
         }
     }
@@ -640,7 +640,7 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
     (
         new mapDistribute
         (
-            segmentI,       // size after construction
+            segmenti,       // size after construction
             sendMap.xfer(),
             constructMap.xfer()
         )
@@ -668,15 +668,15 @@ Foam::label Foam::distributedTriSurfaceMesh::calcOverlappingProcs
     overlaps = false;
     label nOverlaps = 0;
 
-    forAll(procBb_, procI)
+    forAll(procBb_, proci)
     {
-        const List<treeBoundBox>& bbs = procBb_[procI];
+        const List<treeBoundBox>& bbs = procBb_[proci];
 
-        forAll(bbs, bbI)
+        forAll(bbs, bbi)
         {
-            if (bbs[bbI].overlaps(centre, radiusSqr))
+            if (bbs[bbi].overlaps(centre, radiusSqr))
             {
-                overlaps[procI] = true;
+                overlaps[proci] = true;
                 nOverlaps++;
                 break;
             }
@@ -717,34 +717,34 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
         // Work array - whether processor bb overlaps the bounding sphere.
         boolList procBbOverlaps(Pstream::nProcs());
 
-        forAll(centres, centreI)
+        forAll(centres, centrei)
         {
             // Find the processor this sample+radius overlaps.
             calcOverlappingProcs
             (
-                centres[centreI],
-                radiusSqr[centreI],
+                centres[centrei],
+                radiusSqr[centrei],
                 procBbOverlaps
             );
 
-            forAll(procBbOverlaps, procI)
+            forAll(procBbOverlaps, proci)
             {
-                if (procI != Pstream::myProcNo() && procBbOverlaps[procI])
+                if (proci != Pstream::myProcNo() && procBbOverlaps[proci])
                 {
-                    dynSendMap[procI].append(dynAllCentres.size());
-                    dynAllSegmentMap.append(centreI);
-                    dynAllCentres.append(centres[centreI]);
-                    dynAllRadiusSqr.append(radiusSqr[centreI]);
+                    dynSendMap[proci].append(dynAllCentres.size());
+                    dynAllSegmentMap.append(centrei);
+                    dynAllCentres.append(centres[centrei]);
+                    dynAllRadiusSqr.append(radiusSqr[centrei]);
                 }
             }
         }
 
         // Convert dynamicList to labelList
         sendMap.setSize(Pstream::nProcs());
-        forAll(sendMap, procI)
+        forAll(sendMap, proci)
         {
-            dynSendMap[procI].shrink();
-            sendMap[procI].transfer(dynSendMap[procI]);
+            dynSendMap[proci].shrink();
+            sendMap[proci].transfer(dynSendMap[proci]);
         }
 
         allCentres.transfer(dynAllCentres.shrink());
@@ -753,12 +753,12 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
     }
 
 
-    // Send over how many I need to receive.
+    // Send over how many i need to receive.
     labelListList sendSizes(Pstream::nProcs());
     sendSizes[Pstream::myProcNo()].setSize(Pstream::nProcs());
-    forAll(sendMap, procI)
+    forAll(sendMap, proci)
     {
-        sendSizes[Pstream::myProcNo()][procI] = sendMap[procI].size();
+        sendSizes[Pstream::myProcNo()][proci] = sendMap[proci].size();
     }
     Pstream::gatherList(sendSizes);
     Pstream::scatterList(sendSizes);
@@ -773,18 +773,18 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
         sendMap[Pstream::myProcNo()].size()
     );
 
-    label segmentI = constructMap[Pstream::myProcNo()].size();
-    forAll(constructMap, procI)
+    label segmenti = constructMap[Pstream::myProcNo()].size();
+    forAll(constructMap, proci)
     {
-        if (procI != Pstream::myProcNo())
+        if (proci != Pstream::myProcNo())
         {
-            // What I need to receive is what other processor is sending to me.
-            label nRecv = sendSizes[procI][Pstream::myProcNo()];
-            constructMap[procI].setSize(nRecv);
+            // What i need to receive is what other processor is sending to me.
+            label nRecv = sendSizes[proci][Pstream::myProcNo()];
+            constructMap[proci].setSize(nRecv);
 
             for (label i = 0; i < nRecv; i++)
             {
-                constructMap[procI][i] = segmentI++;
+                constructMap[proci][i] = segmenti++;
             }
         }
     }
@@ -793,7 +793,7 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries
     (
         new mapDistribute
         (
-            segmentI,       // size after construction
+            segmenti,       // size after construction
             sendMap.xfer(),
             constructMap.xfer()
         )
@@ -878,9 +878,9 @@ Foam::distributedTriSurfaceMesh::independentlyDistributedBbs
 
     // Do decomposition according to triangle centre
     pointField triCentres(s.size());
-    forAll(s, triI)
+    forAll(s, trii)
     {
-        triCentres[triI] = s[triI].centre(s.points());
+        triCentres[trii] = s[trii].centre(s.points());
     }
 
 
@@ -893,24 +893,24 @@ Foam::distributedTriSurfaceMesh::independentlyDistributedBbs
 
     // Initialise to inverted box
     List<List<treeBoundBox>> bbs(Pstream::nProcs());
-    forAll(bbs, procI)
+    forAll(bbs, proci)
     {
-        bbs[procI].setSize(1, treeBoundBox(boundBox::invertedBox));
+        bbs[proci].setSize(1, treeBoundBox(boundBox::invertedBox));
     }
 
-    forAll(s, triI)
+    forAll(s, trii)
     {
-        const triSurface::FaceType& f = s[triI];
+        const triSurface::FaceType& f = s[trii];
 
-        treeBoundBox& bb = bbs[distribution[triI]][0];
+        treeBoundBox& bb = bbs[distribution[trii]][0];
         bb.add(s.points(), f);
     }
 
     // Now combine for all processors and convert to correct format.
-    forAll(bbs, procI)
+    forAll(bbs, proci)
     {
-        Pstream::listCombineGather(bbs[procI], plusEqOp<boundBox>());
-        Pstream::listCombineScatter(bbs[procI]);
+        Pstream::listCombineGather(bbs[proci], plusEqOp<boundBox>());
+        Pstream::listCombineScatter(bbs[proci]);
     }
 
     return bbs;
@@ -930,9 +930,9 @@ bool Foam::distributedTriSurfaceMesh::overlaps
     triBb.add(p1);
     triBb.add(p2);
 
-    forAll(bbs, bbI)
+    forAll(bbs, bbi)
     {
-        const treeBoundBox& bb = bbs[bbI];
+        const treeBoundBox& bb = bbs[bbi];
 
         // Exact test of triangle intersecting bb
 
@@ -977,32 +977,32 @@ void Foam::distributedTriSurfaceMesh::subsetMeshMap
     oldToNewPoints.setSize(s.points().size());
     oldToNewPoints = -1;
     {
-        label faceI = 0;
-        label pointI = 0;
+        label facei = 0;
+        label pointi = 0;
 
         forAll(include, oldFacei)
         {
             if (include[oldFacei])
             {
                 // Store new faces compact
-                newToOldFaces[faceI++] = oldFacei;
+                newToOldFaces[facei++] = oldFacei;
 
                 // Renumber labels for face
                 const triSurface::FaceType& f = s[oldFacei];
 
                 forAll(f, fp)
                 {
-                    label oldPointI = f[fp];
+                    label oldPointi = f[fp];
 
-                    if (oldToNewPoints[oldPointI] == -1)
+                    if (oldToNewPoints[oldPointi] == -1)
                     {
-                        oldToNewPoints[oldPointI] = pointI;
-                        newToOldPoints[pointI++] = oldPointI;
+                        oldToNewPoints[oldPointi] = pointi;
+                        newToOldPoints[pointi++] = oldPointi;
                     }
                 }
             }
         }
-        newToOldPoints.setSize(pointI);
+        newToOldPoints.setSize(pointi);
     }
 }
 
@@ -1100,7 +1100,7 @@ Foam::triSurface Foam::distributedTriSurfaceMesh::subsetMesh
     newToOldPoints.setSize(s.points().size());
     labelList oldToNewPoints(s.points().size(), -1);
     {
-        label pointI = 0;
+        label pointi = 0;
 
         forAll(include, oldFacei)
         {
@@ -1111,17 +1111,17 @@ Foam::triSurface Foam::distributedTriSurfaceMesh::subsetMesh
 
                 forAll(f, fp)
                 {
-                    label oldPointI = f[fp];
+                    label oldPointi = f[fp];
 
-                    if (oldToNewPoints[oldPointI] == -1)
+                    if (oldToNewPoints[oldPointi] == -1)
                     {
-                        oldToNewPoints[oldPointI] = pointI;
-                        newToOldPoints[pointI++] = oldPointI;
+                        oldToNewPoints[oldPointi] = pointi;
+                        newToOldPoints[pointi++] = oldPointi;
                     }
                 }
             }
         }
-        newToOldPoints.setSize(pointI);
+        newToOldPoints.setSize(pointi);
     }
 
     return subsetMesh
@@ -1196,24 +1196,24 @@ void Foam::distributedTriSurfaceMesh::merge
     // Add all unmatched points
     // ~~~~~~~~~~~~~~~~~~~~~~~~
 
-    label allPointI = nOldAllPoints;
-    forAll(pointConstructMap, pointI)
+    label allPointi = nOldAllPoints;
+    forAll(pointConstructMap, pointi)
     {
-        if (pointConstructMap[pointI] == -1)
+        if (pointConstructMap[pointi] == -1)
         {
-            pointConstructMap[pointI] = allPointI++;
+            pointConstructMap[pointi] = allPointi++;
         }
     }
 
-    if (allPointI > nOldAllPoints)
+    if (allPointi > nOldAllPoints)
     {
-        allPoints.setSize(allPointI);
+        allPoints.setSize(allPointi);
 
-        forAll(pointConstructMap, pointI)
+        forAll(pointConstructMap, pointi)
         {
-            if (pointConstructMap[pointI] >= nOldAllPoints)
+            if (pointConstructMap[pointi] >= nOldAllPoints)
             {
-                allPoints[pointConstructMap[pointI]] = subPoints[pointI];
+                allPoints[pointConstructMap[pointi]] = subPoints[pointi];
             }
         }
     }
@@ -1227,14 +1227,14 @@ void Foam::distributedTriSurfaceMesh::merge
     // Add all unmatched triangles
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    label allTriI = allTris.size();
-    allTris.setSize(allTriI + subTris.size());
+    label allTrii = allTris.size();
+    allTris.setSize(allTrii + subTris.size());
 
     faceConstructMap.setSize(subTris.size());
 
-    forAll(subTris, triI)
+    forAll(subTris, trii)
     {
-        const labelledTri& subTri = subTris[triI];
+        const labelledTri& subTri = subTris[trii];
 
         // Get triangle in new numbering
         labelledTri mappedTri
@@ -1272,24 +1272,24 @@ void Foam::distributedTriSurfaceMesh::merge
             if (i == -1)
             {
                 // Add
-                faceConstructMap[triI] = allTriI;
-                allTris[allTriI] = mappedTri;
-                allTriI++;
+                faceConstructMap[trii] = allTrii;
+                allTris[allTrii] = mappedTri;
+                allTrii++;
             }
             else
             {
-                faceConstructMap[triI] = i;
+                faceConstructMap[trii] = i;
             }
         }
         else
         {
             // Add
-            faceConstructMap[triI] = allTriI;
-            allTris[allTriI] = mappedTri;
-            allTriI++;
+            faceConstructMap[trii] = allTrii;
+            allTris[allTrii] = mappedTri;
+            allTrii++;
         }
     }
-    allTris.setSize(allTriI);
+    allTris.setSize(allTrii);
 }
 
 
@@ -1333,10 +1333,10 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh
         Pstream::scatterList(nTris);
 
         Info<< endl<< "\tproc\ttris\tbb" << endl;
-        forAll(nTris, procI)
+        forAll(nTris, proci)
         {
-            Info<< '\t' << procI << '\t' << nTris[procI]
-                 << '\t' << procBb_[procI] << endl;
+            Info<< '\t' << proci << '\t' << nTris[proci]
+                 << '\t' << procBb_[proci] << endl;
         }
         Info<< endl;
     }
@@ -1345,7 +1345,6 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh
 
 Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh(const IOobject& io)
 :
-    //triSurfaceMesh(io),
     triSurfaceMesh
     (
         IOobject
@@ -1357,7 +1356,8 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh(const IOobject& io)
             io.readOpt(),
             io.writeOpt(),
             io.registerObject()
-        )
+        ),
+        false
     ),
     dict_
     (
@@ -1389,10 +1389,10 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh(const IOobject& io)
         Pstream::scatterList(nTris);
 
         Info<< endl<< "\tproc\ttris\tbb" << endl;
-        forAll(nTris, procI)
+        forAll(nTris, proci)
         {
-            Info<< '\t' << procI << '\t' << nTris[procI]
-                 << '\t' << procBb_[procI] << endl;
+            Info<< '\t' << proci << '\t' << nTris[proci]
+                 << '\t' << procBb_[proci] << endl;
         }
         Info<< endl;
     }
@@ -1405,7 +1405,6 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh
     const dictionary& dict
 )
 :
-    //triSurfaceMesh(io, dict),
     triSurfaceMesh
     (
         IOobject
@@ -1418,7 +1417,8 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh
             io.writeOpt(),
             io.registerObject()
         ),
-        dict
+        dict,
+        false
     ),
     dict_
     (
@@ -1450,10 +1450,10 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh
         Pstream::scatterList(nTris);
 
         Info<< endl<< "\tproc\ttris\tbb" << endl;
-        forAll(nTris, procI)
+        forAll(nTris, proci)
         {
-            Info<< '\t' << procI << '\t' << nTris[procI]
-                 << '\t' << procBb_[procI] << endl;
+            Info<< '\t' << proci << '\t' << nTris[proci]
+                 << '\t' << procBb_[proci] << endl;
         }
         Info<< endl;
     }
@@ -1619,23 +1619,23 @@ void Foam::distributedTriSurfaceMesh::findNearest
         {
             if (allInfo[i].hit())
             {
-                label pointI = allSegmentMap[i];
+                label pointi = allSegmentMap[i];
 
-                if (!info[pointI].hit())
+                if (!info[pointi].hit())
                 {
                     // No intersection yet so take this one
-                    info[pointI] = allInfo[i];
+                    info[pointi] = allInfo[i];
                 }
                 else
                 {
                     // Nearest intersection
                     if
                     (
-                        magSqr(allInfo[i].hitPoint()-samples[pointI])
-                      < magSqr(info[pointI].hitPoint()-samples[pointI])
+                        magSqr(allInfo[i].hitPoint()-samples[pointi])
+                      < magSqr(info[pointi].hitPoint()-samples[pointi])
                     )
                     {
-                        info[pointI] = allInfo[i];
+                        info[pointi] = allInfo[i];
                     }
                 }
             }
@@ -1719,35 +1719,35 @@ void Foam::distributedTriSurfaceMesh::findLineAll
     labelList pointMap(start.size());
     pointField e0(start.size());
     pointField e1(start.size());
-    label compactI = 0;
+    label compacti = 0;
 
     info.setSize(hitInfo.size());
-    forAll(hitInfo, pointI)
+    forAll(hitInfo, pointi)
     {
-        if (hitInfo[pointI].hit())
+        if (hitInfo[pointi].hit())
         {
-            info[pointI].setSize(1);
-            info[pointI][0] = hitInfo[pointI];
+            info[pointi].setSize(1);
+            info[pointi][0] = hitInfo[pointi];
 
-            point pt = hitInfo[pointI].hitPoint() + smallVec[pointI];
+            point pt = hitInfo[pointi].hitPoint() + smallVec[pointi];
 
-            if (((pt-start[pointI])&dirVec[pointI]) <= magSqrDirVec[pointI])
+            if (((pt-start[pointi])&dirVec[pointi]) <= magSqrDirVec[pointi])
             {
-                e0[compactI] = pt;
-                e1[compactI] = end[pointI];
-                pointMap[compactI] = pointI;
-                compactI++;
+                e0[compacti] = pt;
+                e1[compacti] = end[pointi];
+                pointMap[compacti] = pointi;
+                compacti++;
             }
         }
         else
         {
-            info[pointI].clear();
+            info[pointi].clear();
         }
     }
 
-    e0.setSize(compactI);
-    e1.setSize(compactI);
-    pointMap.setSize(compactI);
+    e0.setSize(compacti);
+    e1.setSize(compacti);
+    pointMap.setSize(compacti);
 
 
     label iter = 0;
@@ -1763,38 +1763,38 @@ void Foam::distributedTriSurfaceMesh::findLineAll
 
 
         // Extract
-        label compactI = 0;
+        label compacti = 0;
         forAll(hitInfo, i)
         {
             if (hitInfo[i].hit())
             {
-                label pointI = pointMap[i];
+                label pointi = pointMap[i];
 
-                label sz = info[pointI].size();
-                info[pointI].setSize(sz+1);
-                info[pointI][sz] = hitInfo[i];
+                label sz = info[pointi].size();
+                info[pointi].setSize(sz+1);
+                info[pointi][sz] = hitInfo[i];
 
-                point pt = hitInfo[i].hitPoint() + smallVec[pointI];
+                point pt = hitInfo[i].hitPoint() + smallVec[pointi];
 
                 // Check current coordinate along ray
-                scalar d = ((pt-start[pointI])&dirVec[pointI]);
+                scalar d = ((pt-start[pointi])&dirVec[pointi]);
 
                 // Note check for d>0. Very occasionally the octree will find
                 // an intersection to the left of the ray due to tolerances.
-                if (d > 0 && d <= magSqrDirVec[pointI])
+                if (d > 0 && d <= magSqrDirVec[pointi])
                 {
-                    e0[compactI] = pt;
-                    e1[compactI] = end[pointI];
-                    pointMap[compactI] = pointI;
-                    compactI++;
+                    e0[compacti] = pt;
+                    e1[compacti] = end[pointi];
+                    pointMap[compacti] = pointi;
+                    compacti++;
                 }
             }
         }
 
         // Trim
-        e0.setSize(compactI);
-        e1.setSize(compactI);
-        pointMap.setSize(compactI);
+        e0.setSize(compacti);
+        e1.setSize(compacti);
+        pointMap.setSize(compacti);
 
         iter++;
 
@@ -1862,8 +1862,8 @@ void Foam::distributedTriSurfaceMesh::getRegion
 
     forAll(triangleIndex, i)
     {
-        label triI = triangleIndex[i];
-        region[i] = s[triI].region();
+        label trii = triangleIndex[i];
+        region[i] = s[trii].region();
     }
 
 
@@ -1911,8 +1911,8 @@ void Foam::distributedTriSurfaceMesh::getNormal
 
     forAll(triangleIndex, i)
     {
-        label triI = triangleIndex[i];
-        normal[i] = s[triI].normal(s.points());
+        label trii = triangleIndex[i];
+        normal[i] = s[trii].normal(s.points());
         normal[i] /= mag(normal[i]) + VSMALL;
     }
 
@@ -1966,8 +1966,8 @@ void Foam::distributedTriSurfaceMesh::getField
 
         forAll(triangleIndex, i)
         {
-            label triI = triangleIndex[i];
-            values[i] = fld[triI];
+            label trii = triangleIndex[i];
+            values[i] = fld[trii];
         }
 
 
@@ -2016,16 +2016,16 @@ Foam::triSurface Foam::distributedTriSurfaceMesh::overlappingSurface
         bbsX[i].max() = mid + halfSpan;
     }
 
-    forAll(s, triI)
+    forAll(s, trii)
     {
-        const labelledTri& f = s[triI];
+        const labelledTri& f = s[trii];
         const point& p0 = s.points()[f[0]];
         const point& p1 = s.points()[f[1]];
         const point& p2 = s.points()[f[2]];
 
         if (overlaps(bbsX, p0, p1, p2))
         {
-            includedFace[triI] = true;
+            includedFace[trii] = true;
         }
     }
 
@@ -2096,9 +2096,9 @@ void Foam::distributedTriSurfaceMesh::distribute
         InfoInFunction
             << "before distribution:" << endl << "\tproc\ttris" << endl;
 
-        forAll(nTris, procI)
+        forAll(nTris, proci)
         {
-            Info<< '\t' << procI << '\t' << nTris[procI] << endl;
+            Info<< '\t' << proci << '\t' << nTris[proci] << endl;
         }
         Info<< endl;
     }
@@ -2110,21 +2110,21 @@ void Foam::distributedTriSurfaceMesh::distribute
     labelListList faceSendMap(Pstream::nProcs());
     labelListList pointSendMap(Pstream::nProcs());
 
-    forAll(procBb_, procI)
+    forAll(procBb_, proci)
     {
         overlappingSurface
         (
             *this,
-            procBb_[procI],
-            pointSendMap[procI],
-            faceSendMap[procI]
+            procBb_[proci],
+            pointSendMap[proci],
+            faceSendMap[proci]
         );
 
         if (debug)
         {
-            //Pout<< "Overlapping with proc " << procI
-            //    << " faces:" << faceSendMap[procI].size()
-            //    << " points:" << pointSendMap[procI].size() << endl << endl;
+            //Pout<< "Overlapping with proc " << proci
+            //    << " faces:" << faceSendMap[proci].size()
+            //    << " points:" << pointSendMap[proci].size() << endl << endl;
         }
     }
 
@@ -2137,13 +2137,13 @@ void Foam::distributedTriSurfaceMesh::distribute
 
         boolList includedFace(s.size(), true);
 
-        forAll(faceSendMap, procI)
+        forAll(faceSendMap, proci)
         {
-            if (procI != Pstream::myProcNo())
+            if (proci != Pstream::myProcNo())
             {
-                forAll(faceSendMap[procI], i)
+                forAll(faceSendMap[proci], i)
                 {
-                    includedFace[faceSendMap[procI][i]] = false;
+                    includedFace[faceSendMap[proci][i]] = false;
                 }
             }
         }
@@ -2166,14 +2166,14 @@ void Foam::distributedTriSurfaceMesh::distribute
     }
 
 
-    // Send over how many faces/points I need to receive
+    // Send over how many faces/points i need to receive
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     labelListList faceSendSizes(Pstream::nProcs());
     faceSendSizes[Pstream::myProcNo()].setSize(Pstream::nProcs());
-    forAll(faceSendMap, procI)
+    forAll(faceSendMap, proci)
     {
-        faceSendSizes[Pstream::myProcNo()][procI] = faceSendMap[procI].size();
+        faceSendSizes[Pstream::myProcNo()][proci] = faceSendMap[proci].size();
     }
     Pstream::gatherList(faceSendSizes);
     Pstream::scatterList(faceSendSizes);
@@ -2226,13 +2226,13 @@ void Foam::distributedTriSurfaceMesh::distribute
 
     PstreamBuffers pBufs(Pstream::defaultCommsType);
 
-    forAll(faceSendSizes, procI)
+    forAll(faceSendSizes, proci)
     {
-        if (procI != Pstream::myProcNo())
+        if (proci != Pstream::myProcNo())
         {
-            if (faceSendSizes[Pstream::myProcNo()][procI] > 0)
+            if (faceSendSizes[Pstream::myProcNo()][proci] > 0)
             {
-                UOPstream str(procI, pBufs);
+                UOPstream str(proci, pBufs);
 
                 labelList pointMap;
                 triSurface subSurface
@@ -2240,15 +2240,15 @@ void Foam::distributedTriSurfaceMesh::distribute
                     subsetMesh
                     (
                         *this,
-                        faceSendMap[procI],
+                        faceSendMap[proci],
                         pointMap
                     )
                 );
 
                 //if (debug)
                 //{
-                //    Pout<< "Sending to " << procI
-                //        << " faces:" << faceSendMap[procI].size()
+                //    Pout<< "Sending to " << proci
+                //        << " faces:" << faceSendMap[proci].size()
                 //        << " points:" << subSurface.points().size() << endl
                 //        << endl;
                 //}
@@ -2264,20 +2264,20 @@ void Foam::distributedTriSurfaceMesh::distribute
     // Receive and merge all
     // ~~~~~~~~~~~~~~~~~~~~~
 
-    forAll(faceSendSizes, procI)
+    forAll(faceSendSizes, proci)
     {
-        if (procI != Pstream::myProcNo())
+        if (proci != Pstream::myProcNo())
         {
-            if (faceSendSizes[procI][Pstream::myProcNo()] > 0)
+            if (faceSendSizes[proci][Pstream::myProcNo()] > 0)
             {
-                UIPstream str(procI, pBufs);
+                UIPstream str(proci, pBufs);
 
                 // Receive
                 triSurface subSurface(str);
 
                 //if (debug)
                 //{
-                //    Pout<< "Received from " << procI
+                //    Pout<< "Received from " << proci
                 //        << " faces:" << subSurface.size()
                 //        << " points:" << subSurface.points().size() << endl
                 //        << endl;
@@ -2292,8 +2292,8 @@ void Foam::distributedTriSurfaceMesh::distribute
 
                     allTris,
                     allPoints,
-                    faceConstructMap[procI],
-                    pointConstructMap[procI]
+                    faceConstructMap[proci],
+                    pointConstructMap[proci]
                 );
 
                 //if (debug)
@@ -2354,9 +2354,9 @@ void Foam::distributedTriSurfaceMesh::distribute
         InfoInFunction
             << "after distribution:" << endl << "\tproc\ttris" << endl;
 
-        forAll(nTris, procI)
+        forAll(nTris, proci)
         {
-            Info<< '\t' << procI << '\t' << nTris[procI] << endl;
+            Info<< '\t' << proci << '\t' << nTris[proci] << endl;
         }
         Info<< endl;
 
@@ -2367,9 +2367,9 @@ void Foam::distributedTriSurfaceMesh::distribute
         {
             pointField pts(myBbs[i].points());
             const edgeList& es = treeBoundBox::edges;
-            forAll(es, eI)
+            forAll(es, ei)
             {
-                const edge& e = es[eI];
+                const edge& e = es[ei];
                 str.write(linePointRef(pts[e[0]], pts[e[1]]));
             }
         }
diff --git a/src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/Make/files b/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/files
similarity index 100%
rename from src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/Make/files
rename to src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/files
diff --git a/src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/Make/options b/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/options
similarity index 74%
rename from src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/Make/options
rename to src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/options
index 3718ff0ca0c..f4e9dc8257a 100644
--- a/src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/Make/options
+++ b/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/options
@@ -3,9 +3,9 @@ EXE_INC = \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude
 
 LIB_LIBS = \
     -lfiniteVolume \
     -lcompressibleTurbulenceModels \
-    -lliquidProperties
+    -lthermophysicalProperties
diff --git a/src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C b/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
similarity index 100%
rename from src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
rename to src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
diff --git a/src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H b/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H
similarity index 100%
rename from src/thermophysicalModels/properties/liquidPropertiesFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H
rename to src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H
-- 
GitLab


From 054eec50ea70736a7c046d259f59cdb90c59c5b7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 27 Mar 2017 20:03:28 +0100
Subject: [PATCH 160/277] surfaceFilmModels::contactAngleForce: Added
 temperatureDependentContactAngleForce

Created a base-class from contactAngleForce from which the
distributionContactAngleForce (for backward compatibility) and the new
temperatureDependentContactAngleForce are derived:

Description
    Temperature dependent contact angle force

    The contact angle in degrees is specified as a \c Function1 type, to
    enable the use of, e.g.  contant, polynomial, table values.

See also
    Foam::regionModels::surfaceFilmModels::contactAngleForce
    Foam::Function1Types

SourceFiles
    temperatureDependentContactAngleForce.C
---
 ...allBoilingWallFunctionFvPatchScalarField.H |   2 +-
 .../regionModel/regionModel/regionModel.C     |  27 +---
 .../regionModel/regionModel/regionModel.H     |   5 +-
 src/regionModels/surfaceFilmModels/Make/files |   4 +-
 .../contactAngleForce/contactAngleForce.C     |  28 ++--
 .../contactAngleForce/contactAngleForce.H     |  27 ++--
 .../distributionContactAngleForce.C           | 120 ++++++++++++++++++
 .../distributionContactAngleForce.H           | 118 +++++++++++++++++
 .../temperatureDependentContactAngleForce.C   | 111 ++++++++++++++++
 .../temperatureDependentContactAngleForce.H   | 120 ++++++++++++++++++
 ...ndentAlphaContactAngleFvPatchScalarField.H |   4 +-
 11 files changed, 499 insertions(+), 67 deletions(-)
 rename src/regionModels/surfaceFilmModels/submodels/kinematic/force/{ => contactAngleForces}/contactAngleForce/contactAngleForce.C (90%)
 rename src/regionModels/surfaceFilmModels/submodels/kinematic/force/{ => contactAngleForces}/contactAngleForce/contactAngleForce.H (86%)
 create mode 100644 src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
 create mode 100644 src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
 create mode 100644 src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
 create mode 100644 src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
index 2e5303b8ebb..701a3f911f5 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
@@ -115,7 +115,7 @@ Usage
         value           uniform 0.01;
     \endverbatim
 
-SeeAlso
+See also
     Foam::alphatPhaseChangeJayatillekeWallFunctionFvPatchField
 
 SourceFiles
diff --git a/src/regionModels/regionModel/regionModel/regionModel.C b/src/regionModels/regionModel/regionModel/regionModel.C
index 76b37cca811..90397edfafe 100644
--- a/src/regionModels/regionModel/regionModel/regionModel.C
+++ b/src/regionModels/regionModel/regionModel/regionModel.C
@@ -63,31 +63,6 @@ void Foam::regionModels::regionModel::constructMeshObjects()
 }
 
 
-void Foam::regionModels::regionModel::constructMeshObjects
-(
-    const dictionary& dict
-)
-{
-    // construct region mesh
-    if (!time_.foundObject<fvMesh>(regionName_))
-    {
-        regionMeshPtr_.reset
-        (
-            new fvMesh
-            (
-                IOobject
-                (
-                    regionName_,
-                    time_.timeName(),
-                    time_,
-                    IOobject::MUST_READ
-                )
-            )
-        );
-    }
-}
-
-
 void Foam::regionModels::regionModel::initialise()
 {
     if (debug)
@@ -485,7 +460,7 @@ Foam::regionModels::regionModel::regionModel
 {
     if (active_)
     {
-        constructMeshObjects(dict);
+        constructMeshObjects();
         initialise();
 
         if (readFields)
diff --git a/src/regionModels/regionModel/regionModel/regionModel.H b/src/regionModels/regionModel/regionModel/regionModel.H
index d0cfcc65d3c..9fc179d082c 100644
--- a/src/regionModels/regionModel/regionModel/regionModel.H
+++ b/src/regionModels/regionModel/regionModel/regionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,9 +73,6 @@ private:
         //- Construct region mesh and fields
         void constructMeshObjects();
 
-        //- Construct region mesh and dictionary
-        void constructMeshObjects(const dictionary& dict);
-
         //- Initialise the region
         void initialise();
 
diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files
index e17e76bbf7e..236a1c2d958 100644
--- a/src/regionModels/surfaceFilmModels/Make/files
+++ b/src/regionModels/surfaceFilmModels/Make/files
@@ -13,7 +13,9 @@ KINEMATICMODELS=submodels/kinematic
 $(KINEMATICMODELS)/force/force/force.C
 $(KINEMATICMODELS)/force/force/forceNew.C
 $(KINEMATICMODELS)/force/forceList/forceList.C
-$(KINEMATICMODELS)/force/contactAngleForce/contactAngleForce.C
+$(KINEMATICMODELS)/force/contactAngleForces/contactAngleForce/contactAngleForce.C
+$(KINEMATICMODELS)/force/contactAngleForces/distribution/distributionContactAngleForce.C
+$(KINEMATICMODELS)/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
 $(KINEMATICMODELS)/force/thermocapillaryForce/thermocapillaryForce.C
 
 $(KINEMATICMODELS)/injectionModel/injectionModel/injectionModel.C
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
similarity index 90%
rename from src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.C
rename to src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
index 9e6c790540e..2271fde826a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,7 +42,6 @@ namespace surfaceFilmModels
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 defineTypeNameAndDebug(contactAngleForce, 0);
-addToRunTimeSelectionTable(force, contactAngleForce, dictionary);
 
 // * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * * //
 
@@ -93,21 +92,13 @@ void contactAngleForce::initialise()
 
 contactAngleForce::contactAngleForce
 (
+    const word& typeName,
     surfaceFilmModel& owner,
     const dictionary& dict
 )
 :
     force(typeName, owner, dict),
     Ccf_(readScalar(coeffDict_.lookup("Ccf"))),
-    rndGen_(label(0), -1),
-    distribution_
-    (
-        distributionModels::distributionModel::New
-        (
-            coeffDict_.subDict("contactAngleDistribution"),
-            rndGen_
-        )
-    ),
     mask_
     (
         IOobject
@@ -163,7 +154,10 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
     const volScalarField& alpha = owner_.alpha();
     const volScalarField& sigma = owner_.sigma();
 
-    volVectorField gradAlpha(fvc::grad(alpha));
+    const tmp<volScalarField> ttheta = theta();
+    const volScalarField& theta = ttheta();
+
+    const volVectorField gradAlpha(fvc::grad(alpha));
 
     forAll(nbr, facei)
     {
@@ -185,14 +179,14 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
             const scalar invDx = owner_.regionMesh().deltaCoeffs()[facei];
             const vector n =
                 gradAlpha[celli]/(mag(gradAlpha[celli]) + ROOTVSMALL);
-            scalar theta = cos(degToRad(distribution_->sample()));
-            force[celli] += Ccf_*n*sigma[celli]*(1.0 - theta)/invDx;
+            const scalar cosTheta = cos(degToRad(theta[celli]));
+            force[celli] += Ccf_*n*sigma[celli]*(1 - cosTheta)/invDx;
         }
     }
 
     forAll(alpha.boundaryField(), patchi)
     {
-        if (!owner().isCoupledPatch(patchi))
+        if (!owner_.isCoupledPatch(patchi))
         {
             const fvPatchField<scalar>& alphaf = alpha.boundaryField()[patchi];
             const fvPatchField<scalar>& maskf = mask_.boundaryField()[patchi];
@@ -210,9 +204,9 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
                         const vector n =
                             gradAlpha[cellO]
                            /(mag(gradAlpha[cellO]) + ROOTVSMALL);
-                        scalar theta = cos(degToRad(distribution_->sample()));
+                        const scalar cosTheta = cos(degToRad(theta[cellO]));
                         force[cellO] +=
-                            Ccf_*n*sigma[cellO]*(1.0 - theta)/invDx[facei];
+                            Ccf_*n*sigma[cellO]*(1 - cosTheta)/invDx[facei];
                     }
                 }
             }
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
similarity index 86%
rename from src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.H
rename to src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
index 577c861bbf3..4d1801dc002 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,7 +25,7 @@ Class
     Foam::contactAngleForce
 
 Description
-    Film contact angle force
+    Base-class for film contact angle force models.
 
     The effect of the contact angle force can be ignored over a specified
     distance from patches.
@@ -39,8 +39,6 @@ SourceFiles
 #define contactAngleForce_H
 
 #include "force.H"
-#include "distributionModel.H"
-#include "cachedRandom.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -59,19 +57,11 @@ class contactAngleForce
 :
     public force
 {
-private:
-
     // Private Data
 
         //- Coefficient applied to the contact angle force
         scalar Ccf_;
 
-        //- Random number generator
-        cachedRandom rndGen_;
-
-        //- Parcel size PDF model
-        const autoPtr<distributionModels::distributionModel> distribution_;
-
         //- Mask over which force is applied
         volScalarField mask_;
 
@@ -88,6 +78,12 @@ private:
         void operator=(const contactAngleForce&);
 
 
+protected:
+
+        //- Return the contact angle field
+        virtual tmp<volScalarField> theta() const = 0;
+
+
 public:
 
     //- Runtime type information
@@ -99,6 +95,7 @@ public:
         //- Construct from surface film model
         contactAngleForce
         (
+            const word& typeName,
             surfaceFilmModel& owner,
             const dictionary& dict
         );
@@ -110,10 +107,8 @@ public:
 
     // Member Functions
 
-        // Evolution
-
-            //- Correct
-            virtual tmp<fvVectorMatrix> correct(volVectorField& U);
+        //- Correct
+        virtual tmp<fvVectorMatrix> correct(volVectorField& U);
 };
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
new file mode 100644
index 00000000000..c245bb23842
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
@@ -0,0 +1,120 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "distributionContactAngleForce.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(distributionContactAngleForce, 0);
+addToRunTimeSelectionTable(force, distributionContactAngleForce, dictionary);
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+distributionContactAngleForce::distributionContactAngleForce
+(
+    surfaceFilmModel& owner,
+    const dictionary& dict
+)
+:
+    contactAngleForce(typeName, owner, dict),
+    rndGen_(label(0), -1),
+    distribution_
+    (
+        distributionModels::distributionModel::New
+        (
+            coeffDict_.subDict("distribution"),
+            rndGen_
+        )
+    )
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+distributionContactAngleForce::~distributionContactAngleForce()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+tmp<volScalarField> distributionContactAngleForce::theta() const
+{
+    tmp<volScalarField> ttheta
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                typeName + ":theta",
+                owner_.time().timeName(),
+                owner_.regionMesh()
+            ),
+            owner_.regionMesh(),
+            dimensionedScalar("0", dimless, 0)
+        )
+    );
+
+    volScalarField& theta = ttheta.ref();
+    volScalarField::Internal& thetai = theta.ref();
+
+    forAll(thetai, celli)
+    {
+        thetai[celli] = distribution_->sample();
+    }
+
+    forAll(theta.boundaryField(), patchi)
+    {
+        if (!owner_.isCoupledPatch(patchi))
+        {
+            fvPatchField<scalar>& thetaf = theta.boundaryFieldRef()[patchi];
+
+            forAll(thetaf, facei)
+            {
+                thetaf[facei] = distribution_->sample();
+            }
+        }
+    }
+
+    return ttheta;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
new file mode 100644
index 00000000000..9156395ada4
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
@@ -0,0 +1,118 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::distributionContactAngleForce
+
+Description
+    PDF distribution based film contact angle force
+
+See also
+    Foam::regionModels::surfaceFilmModels::contactAngleForce
+    Foam::distributionModels::distributionModel
+
+SourceFiles
+    distributionContactAngleForce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef distributionContactAngleForce_H
+#define distributionContactAngleForce_H
+
+#include "contactAngleForce.H"
+#include "distributionModel.H"
+#include "cachedRandom.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class distributionContactAngleForce Declaration
+\*---------------------------------------------------------------------------*/
+
+class distributionContactAngleForce
+:
+    public contactAngleForce
+{
+    // Private Data
+
+        //- Random number generator
+        cachedRandom rndGen_;
+
+        //- Parcel size PDF model
+        const autoPtr<distributionModels::distributionModel> distribution_;
+
+
+    // Private member functions
+
+        //- Disallow default bitwise copy construct
+        distributionContactAngleForce(const distributionContactAngleForce&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const distributionContactAngleForce&);
+
+
+protected:
+
+        //- Return the contact angle field
+        virtual tmp<volScalarField> theta() const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("distributionContactAngle");
+
+
+    // Constructors
+
+        //- Construct from surface film model
+        distributionContactAngleForce
+        (
+            surfaceFilmModel& owner,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~distributionContactAngleForce();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
new file mode 100644
index 00000000000..9164fd64d5a
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
@@ -0,0 +1,111 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "temperatureDependentContactAngleForce.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(temperatureDependentContactAngleForce, 0);
+addToRunTimeSelectionTable
+(
+    force,
+    temperatureDependentContactAngleForce,
+    dictionary
+);
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+temperatureDependentContactAngleForce::temperatureDependentContactAngleForce
+(
+    surfaceFilmModel& owner,
+    const dictionary& dict
+)
+:
+    contactAngleForce(typeName, owner, dict),
+    thetaPtr_(Function1<scalar>::New("theta", coeffDict_))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+temperatureDependentContactAngleForce::~temperatureDependentContactAngleForce()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+tmp<volScalarField> temperatureDependentContactAngleForce::theta() const
+{
+    tmp<volScalarField> ttheta
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                typeName + ":theta",
+                owner_.time().timeName(),
+                owner_.regionMesh()
+            ),
+            owner_.regionMesh(),
+            dimensionedScalar("0", dimless, 0)
+        )
+    );
+
+    volScalarField& theta = ttheta.ref();
+
+    const volScalarField& T = owner_.T();
+
+    theta.ref().field() = thetaPtr_->value(T());
+
+    forAll(theta.boundaryField(), patchi)
+    {
+        if (!owner_.isCoupledPatch(patchi))
+        {
+            theta.boundaryFieldRef()[patchi] =
+                thetaPtr_->value(T.boundaryField()[patchi]);
+        }
+    }
+
+    return ttheta;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
new file mode 100644
index 00000000000..581584bc368
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
@@ -0,0 +1,120 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::temperatureDependentContactAngleForce
+
+Description
+    Temperature dependent contact angle force
+
+    The contact angle in degrees is specified as a \c Function1 type, to
+    enable the use of, e.g.  contant, polynomial, table values.
+
+See also
+    Foam::regionModels::surfaceFilmModels::contactAngleForce
+    Foam::Function1Types
+
+SourceFiles
+    temperatureDependentContactAngleForce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef temperatureDependentContactAngleForce_H
+#define temperatureDependentContactAngleForce_H
+
+#include "contactAngleForce.H"
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class temperatureDependentContactAngleForce Declaration
+\*---------------------------------------------------------------------------*/
+
+class temperatureDependentContactAngleForce
+:
+    public contactAngleForce
+{
+    // Private Data
+
+        //- Contact angle function
+        autoPtr<Function1<scalar>> thetaPtr_;
+
+
+    // Private member functions
+
+        //- Disallow default bitwise copy construct
+        temperatureDependentContactAngleForce
+        (
+            const temperatureDependentContactAngleForce&
+        );
+
+        //- Disallow default bitwise assignment
+        void operator=(const temperatureDependentContactAngleForce&);
+
+
+protected:
+
+        //- Return the contact angle field
+        virtual tmp<volScalarField> theta() const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("temperatureDependentContactAngle");
+
+
+    // Constructors
+
+        //- Construct from surface film model
+        temperatureDependentContactAngleForce
+        (
+            surfaceFilmModel& owner,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~temperatureDependentContactAngleForce();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H b/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
index df08b538191..a3068b76e4b 100644
--- a/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
+++ b/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,7 +76,7 @@ class temperatureDependentAlphaContactAngleFvPatchScalarField
         //- Name of temperature field, default = "T"
         word TName_;
 
-        //- Equilibrium contact angle table
+        //- Equilibrium contact angle function
         autoPtr<Function1<scalar>> theta0_;
 
 
-- 
GitLab


From cbed107ce15672f3d41d604fbc604e7593f3ac98 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 27 Mar 2017 20:07:47 +0100
Subject: [PATCH 161/277] surfaceFilmModels::contactAngleForces: Corrected
 headers

---
 .../contactAngleForces/contactAngleForce/contactAngleForce.H  | 2 +-
 .../distribution/distributionContactAngleForce.H              | 4 ++--
 .../temperatureDependentContactAngleForce.H                   | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
index 4d1801dc002..4d46cb6b013 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::contactAngleForce
+    Foam::regionModels::surfaceFilmModels::contactAngleForce
 
 Description
     Base-class for film contact angle force models.
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
index 9156395ada4..7ad68e5b387 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
@@ -1,4 +1,4 @@
-/*---------------------------------------------------------------------------*\
+/*---------------------------------------------------------------------------* \
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::distributionContactAngleForce
+    Foam::regionModels::surfaceFilmModels::distributionContactAngleForce
 
 Description
     PDF distribution based film contact angle force
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
index 581584bc368..2c79e1b79b6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::temperatureDependentContactAngleForce
+    Foam::regionModels::surfaceFilmModels::temperatureDependentContactAngleForce
 
 Description
     Temperature dependent contact angle force
-- 
GitLab


From ddc694e63208cbd3198d278df72a4aac5441d4cd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 28 Mar 2017 08:27:48 +0100
Subject: [PATCH 162/277] reactingParcelFilmFoam tutorials: Updated
 contact-angle specification

---
 .../hotBoxes/constant/surfaceFilmProperties       | 15 +++++++--------
 .../rivuletPanel/constant/surfaceFilmProperties   | 12 ++++++++----
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/surfaceFilmProperties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/surfaceFilmProperties
index 74365c10129..1059378263a 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/surfaceFilmProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/surfaceFilmProperties
@@ -21,7 +21,6 @@ regionName      wallFilmRegion;
 
 active          true;
 
-
 thermoSingleLayerCoeffs
 {
     filmThermoModel liquid;
@@ -48,13 +47,13 @@ thermoSingleLayerCoeffs
 
     upperSurfaceModels
     {
-/*
+        /*
         heatTransferModel constant;
         constantCoeffs
         {
            c0              1e-8;
         }
-*/
+        */
         heatTransferModel mappedConvectiveHeatTransfer;
     }
 
@@ -70,13 +69,14 @@ thermoSingleLayerCoeffs
     forces
     (
         thermocapillary
-        contactAngle
+        distributionContactAngle
     );
 
-    contactAngleCoeffs
+    distributionContactAngleCoeffs
     {
         Ccf             0.085;
-        contactAngleDistribution
+
+        distribution
         {
             type            normal;
             normalDistribution
@@ -88,8 +88,7 @@ thermoSingleLayerCoeffs
             }
         }
 
-        zeroForcePatches
-        ();
+        zeroForcePatches ();
     }
 
     injectionModels
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/surfaceFilmProperties b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/surfaceFilmProperties
index 1bb7d7eec9f..631f0f75c18 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/surfaceFilmProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/surfaceFilmProperties
@@ -42,14 +42,15 @@ kinematicSingleLayerCoeffs
 
     forces
     (
-        contactAngle
         thermocapillary
+        distributionContactAngle
     );
 
-    contactAngleCoeffs
+    distributionContactAngleCoeffs
     {
         Ccf             1;
-        contactAngleDistribution
+
+        distribution
         {
             type            normal;
             normalDistribution
@@ -61,6 +62,9 @@ kinematicSingleLayerCoeffs
             }
         }
 
-        zeroForcePatches    ();
+        zeroForcePatches ();
     }
 }
+
+
+// ************************************************************************* //
-- 
GitLab


From 9f37c3c5370f2282053505a85890a99920252f0b Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 28 Mar 2017 08:29:28 +0100
Subject: [PATCH 163/277] transportModels::interfaceProperties: simplified
 interface

---
 .../interfaceProperties/interfaceProperties.C   |  6 ++++++
 .../interfaceProperties/interfaceProperties.H   | 17 ++---------------
 2 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C
index 95ddb6aac44..15321f40423 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.C
+++ b/src/transportModels/interfaceProperties/interfaceProperties.C
@@ -222,6 +222,12 @@ Foam::interfaceProperties::nearInterface() const
 }
 
 
+void Foam::interfaceProperties::correct()
+{
+    calculateK();
+}
+
+
 bool Foam::interfaceProperties::read()
 {
     alpha1_.mesh().solverDict(alpha1_.name()).lookup("cAlpha") >> cAlpha_;
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.H b/src/transportModels/interfaceProperties/interfaceProperties.H
index c0d411d05da..7956746c2ba 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.H
+++ b/src/transportModels/interfaceProperties/interfaceProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -127,16 +127,6 @@ public:
             return nHatf_;
         }
 
-        const volScalarField& K() const
-        {
-            return K_;
-        }
-
-        const dimensionedScalar& sigma() const
-        {
-            return sigma_;
-        }
-
         tmp<volScalarField> sigmaK() const
         {
             return sigma_*K_;
@@ -148,10 +138,7 @@ public:
         //  Field values are 1 near and 0 away for the interface.
         tmp<volScalarField> nearInterface() const;
 
-        void correct()
-        {
-            calculateK();
-        }
+        void correct();
 
         //- Read transportProperties dictionary
         bool read();
-- 
GitLab


From 1dd74551da63991aa945bb678bc8aff60a9b57e9 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 28 Mar 2017 08:30:06 +0100
Subject: [PATCH 164/277] Updated header

---
 src/transportModels/interfaceProperties/interfaceProperties.C | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C
index 15321f40423..98e2c37087c 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.C
+++ b/src/transportModels/interfaceProperties/interfaceProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
-- 
GitLab


From 09620ce0edfa29c4311cd132d83a4981ca5afa8a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 28 Mar 2017 08:30:46 +0100
Subject: [PATCH 165/277] regionModels: Renamed owner->region in regionModel
 and owner->film in surfaceFilmModel

This update does not change the operation or controls of the regionModels, it is
to aid understanding of the code.
---
 .../regionModelFunctionObject.C               | 12 ++---
 .../regionModelFunctionObject.H               | 16 +++----
 .../regionModelFunctionObjectList.C           | 14 +++---
 .../regionModelFunctionObjectList.H           | 18 ++++----
 .../regionModelFunctionObjectListI.H          | 10 ++---
 .../regionModelFunctionObjectNew.C            |  6 +--
 .../submodels/filmSubModelBase.C              | 22 +++++-----
 .../submodels/filmSubModelBase.H              | 24 +++++-----
 .../submodels/filmSubModelBaseI.H             | 10 ++---
 .../submodels/filmSubModelBaseTemplates.C     |  8 ++--
 .../constantFilmThermo/constantFilmThermo.C   | 36 +++++++--------
 .../constantFilmThermo/constantFilmThermo.H   |  4 +-
 .../filmThermoModel/filmThermoModel.C         | 10 ++---
 .../filmThermoModel/filmThermoModel.H         | 12 ++---
 .../liquidFilmThermo/liquidFilmThermo.C       | 44 +++++++++----------
 .../liquidFilmThermo/liquidFilmThermo.H       |  4 +-
 .../filmTurbulenceModel/filmTurbulenceModel.C | 10 ++---
 .../filmTurbulenceModel/filmTurbulenceModel.H | 12 ++---
 .../filmTurbulenceModel/laminar/laminar.C     | 20 ++++-----
 .../filmTurbulenceModel/laminar/laminar.H     |  4 +-
 .../contactAngleForce/contactAngleForce.C     | 42 +++++++++---------
 .../contactAngleForce/contactAngleForce.H     |  2 +-
 .../distributionContactAngleForce.C           | 12 ++---
 .../distributionContactAngleForce.H           |  2 +-
 .../temperatureDependentContactAngleForce.C   | 14 +++---
 .../temperatureDependentContactAngleForce.H   |  2 +-
 .../submodels/kinematic/force/force/force.C   | 10 ++---
 .../submodels/kinematic/force/force/force.H   | 12 ++---
 .../kinematic/force/forceList/forceList.C     |  8 ++--
 .../kinematic/force/forceList/forceList.H     |  6 +--
 .../thermocapillaryForce.C                    |  8 ++--
 .../thermocapillaryForce.H                    |  4 +-
 .../BrunDrippingInjection.C                   | 10 ++---
 .../BrunDrippingInjection.H                   |  4 +-
 .../curvatureSeparation/curvatureSeparation.C | 22 +++++-----
 .../curvatureSeparation/curvatureSeparation.H |  4 +-
 .../drippingInjection/drippingInjection.C     | 10 ++---
 .../drippingInjection/drippingInjection.H     |  4 +-
 .../injectionModel/injectionModel.C           | 10 ++---
 .../injectionModel/injectionModel.H           | 12 ++---
 .../injectionModelList/injectionModelList.C   | 22 +++++-----
 .../injectionModelList/injectionModelList.H   |  6 +--
 .../patchInjection/patchInjection.C           | 16 +++----
 .../patchInjection/patchInjection.H           |  4 +-
 .../constantRadiation/constantRadiation.C     | 28 ++++++------
 .../constantRadiation/constantRadiation.H     |  4 +-
 .../filmRadiationModel/filmRadiationModel.C   | 10 ++---
 .../filmRadiationModel/filmRadiationModel.H   | 12 ++---
 .../noRadiation/noRadiation.C                 | 10 ++---
 .../noRadiation/noRadiation.H                 |  4 +-
 .../primaryRadiation/primaryRadiation.C       | 22 +++++-----
 .../primaryRadiation/primaryRadiation.H       |  4 +-
 .../standardRadiation/standardRadiation.C     | 30 ++++++-------
 .../standardRadiation/standardRadiation.H     |  4 +-
 .../ArrheniusViscosity/ArrheniusViscosity.C   |  8 ++--
 .../ArrheniusViscosity/ArrheniusViscosity.H   |  4 +-
 .../constantViscosity/constantViscosity.C     |  6 +--
 .../constantViscosity/constantViscosity.H     |  4 +-
 .../filmViscosityModel/filmViscosityModel.C   |  6 +--
 .../filmViscosityModel/filmViscosityModel.H   | 10 ++---
 .../liquidViscosity/liquidViscosity.C         |  6 +--
 .../liquidViscosity/liquidViscosity.H         |  4 +-
 .../thixotropicViscosity.C                    | 14 +++---
 .../thixotropicViscosity.H                    |  4 +-
 .../constantHeatTransfer.C                    | 10 ++---
 .../constantHeatTransfer.H                    |  4 +-
 .../heatTransferModel/heatTransferModel.C     | 10 ++---
 .../heatTransferModel/heatTransferModel.H     | 12 ++---
 .../mappedConvectiveHeatTransfer.C            | 20 ++++-----
 .../mappedConvectiveHeatTransfer.H            |  4 +-
 .../noPhaseChange/noPhaseChange.C             |  4 +-
 .../noPhaseChange/noPhaseChange.H             |  4 +-
 .../phaseChangeModel/phaseChangeModel.C       | 12 ++---
 .../phaseChangeModel/phaseChangeModel.H       | 12 ++---
 .../solidification/solidification.C           | 20 ++++-----
 .../solidification/solidification.H           |  4 +-
 .../standardPhaseChange/standardPhaseChange.C |  6 +--
 .../standardPhaseChange/standardPhaseChange.H |  4 +-
 78 files changed, 431 insertions(+), 431 deletions(-)

diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
index 9aa69fc37bf..474ef1f9eab 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
@@ -41,11 +41,11 @@ namespace regionModels
 
 Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 (
-    regionModel& owner
+    regionModel& region
 )
 :
     dict_(dictionary::null),
-    owner_(owner),
+    regionModel_(region),
     modelType_("modelType")
 {}
 
@@ -53,12 +53,12 @@ Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 (
     const dictionary& dict,
-    regionModel& owner,
+    regionModel& region,
     const word& type
 )
 :
     dict_(dict),
-    owner_(owner),
+    regionModel_(region),
     modelType_(type)
 {}
 
@@ -69,7 +69,7 @@ Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 )
 :
     dict_(rmfo.dict_),
-    owner_(rmfo.owner_),
+    regionModel_(rmfo.regionModel_),
     modelType_(rmfo.modelType_)
 {}
 
@@ -88,7 +88,7 @@ void Foam::regionModels::regionModelFunctionObject::preEvolveRegion()
 
 void Foam::regionModels::regionModelFunctionObject::postEvolveRegion()
 {
-    if (owner_.regionMesh().time().writeTime())
+    if (regionModel_.regionMesh().time().writeTime())
     {
         write();
     }
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
index 77e56b14d19..2f96d310ca2 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ protected:
         dictionary dict_;
 
         //- Reference to the region model
-        regionModel& owner_;
+        regionModel& regionModel_;
 
         //- Model type name
         word modelType_;
@@ -83,22 +83,22 @@ public:
         dictionary,
         (
             const dictionary& dict,
-            regionModel& owner
+            regionModel& region
         ),
-        (dict, owner)
+        (dict, region)
     );
 
 
     // Constructors
 
-        //- Construct null from owner
-        regionModelFunctionObject(regionModel& owner);
+        //- Construct null from region
+        regionModelFunctionObject(regionModel& region);
 
         //- Construct from dictionary
         regionModelFunctionObject
         (
             const dictionary& dict,
-            regionModel& owner,
+            regionModel& region,
             const word& modelType
         );
 
@@ -123,7 +123,7 @@ public:
     static autoPtr<regionModelFunctionObject> New
     (
         const dictionary& dict,
-        regionModel& owner,
+        regionModel& region,
         const word& modelType
     );
 
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.C b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.C
index 366ec496bad..d3b6bf0c4cd 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.C
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,24 +29,24 @@ License
 
 Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
 (
-    regionModel& owner
+    regionModel& region
 )
 :
     PtrList<regionModelFunctionObject>(),
-    owner_(owner),
+    regionModel_(region),
     dict_(dictionary::null)
 {}
 
 
 Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
 (
-    regionModel& owner,
+    regionModel& region,
     const dictionary& dict,
     const bool readFields
 )
 :
     PtrList<regionModelFunctionObject>(),
-    owner_(owner),
+    regionModel_(region),
     dict_(dict)
 {
     if (readFields)
@@ -69,7 +69,7 @@ Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
                     regionModelFunctionObject::New
                     (
                         dict,
-                        owner,
+                        region,
                         modelName
                     )
                 );
@@ -89,7 +89,7 @@ Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
 )
 :
     PtrList<regionModelFunctionObject>(cfol),
-    owner_(cfol.owner_),
+    regionModel_(cfol.regionModel_),
     dict_(cfol.dict_)
 {}
 
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
index 22488f18c8f..159ee4714d9 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,8 +60,8 @@ protected:
 
     // Protected Data
 
-        //- Reference to the owner region model
-        regionModel& owner_;
+        //- Reference to the region region model
+        regionModel& regionModel_;
 
         //- Dictionary
         const dictionary dict_;
@@ -72,12 +72,12 @@ public:
     // Constructors
 
         //- Null constructor
-        regionModelFunctionObjectList(regionModel& owner);
+        regionModelFunctionObjectList(regionModel& region);
 
         //- Construct from mesh
         regionModelFunctionObjectList
         (
-            regionModel& owner,
+            regionModel& region,
             const dictionary& dict,
             const bool readFields = true
         );
@@ -97,11 +97,11 @@ public:
 
         // Access
 
-            //- Return const access to the cloud owner
-            inline const regionModel& owner() const;
+            //- Return const access to the cloud region
+            inline const regionModel& region() const;
 
-            //- Return refernce to the cloud owner
-            inline regionModel& owner();
+            //- Return refernce to the cloud region
+            inline regionModel& region();
 
             //- Return the forces dictionary
             inline const dictionary& dict() const;
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.H
index a0a90d0f675..d65d19cc255 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,16 +24,16 @@ License
 \*---------------------------------------------------------------------------*/
 
 inline const Foam::regionModels::regionModel&
-Foam::regionModels::regionModelFunctionObjectList::owner() const
+Foam::regionModels::regionModelFunctionObjectList::region() const
 {
-    return owner_;
+    return regionModel_;
 }
 
 
 inline Foam::regionModels::regionModel&
-Foam::regionModels::regionModelFunctionObjectList::owner()
+Foam::regionModels::regionModelFunctionObjectList::region()
 {
-    return owner_;
+    return regionModel_;
 }
 
 
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C
index 3b41bc8d3bc..a1122125c30 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,7 @@ Foam::autoPtr<Foam::regionModels::regionModelFunctionObject>
 Foam::regionModels::regionModelFunctionObject::New
 (
     const dictionary& dict,
-    regionModel& owner,
+    regionModel& region,
     const word& modelName
 )
 {
@@ -58,7 +58,7 @@ Foam::regionModels::regionModelFunctionObject::New
             cstrIter()
             (
                 dict.subDict(modelName),
-                owner
+                region
             )
         );
 }
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
index 88bef475a6d..479836a93a6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,16 +36,16 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmSubModelBase::filmSubModelBase(surfaceFilmModel& owner)
+filmSubModelBase::filmSubModelBase(surfaceFilmModel& film)
 :
-    subModelBase(owner.outputProperties()),
-    owner_(owner)
+    subModelBase(film.outputProperties()),
+    filmModel_(film)
 {}
 
 
 filmSubModelBase::filmSubModelBase
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     const word& baseName,
     const word& modelType,
@@ -54,20 +54,20 @@ filmSubModelBase::filmSubModelBase
 :
     subModelBase
     (
-        owner.outputProperties(),
+        film.outputProperties(),
         dict,
         baseName,
         modelType,
         dictExt
     ),
-    owner_(owner)
+    filmModel_(film)
 {}
 
 
 filmSubModelBase::filmSubModelBase
 (
     const word& modelName,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     const word& baseName,
     const word& modelType
@@ -76,12 +76,12 @@ filmSubModelBase::filmSubModelBase
     subModelBase
     (
         modelName,
-        owner.outputProperties(),
+        film.outputProperties(),
         dict,
         baseName,
         modelType
     ),
-    owner_(owner)
+    filmModel_(film)
 {}
 
 
@@ -95,7 +95,7 @@ filmSubModelBase::~filmSubModelBase()
 
 bool filmSubModelBase::writeTime() const
 {
-    return active() && owner_.time().writeTime();
+    return active() && filmModel_.time().writeTime();
 }
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
index cc4e3c090bc..9160fa24696 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,8 +60,8 @@ protected:
 
     // Protected data
 
-        //- Reference to the owner surface film model
-        surfaceFilmModel& owner_;
+        //- Reference to the film surface film model
+        surfaceFilmModel& filmModel_;
 
 
 public:
@@ -69,23 +69,23 @@ public:
     // Constructors
 
         //- Construct null
-        filmSubModelBase(surfaceFilmModel& owner);
+        filmSubModelBase(surfaceFilmModel& film);
 
-        //- Construct from owner film wihout name
+        //- Construct from film film wihout name
         filmSubModelBase
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& baseName,
             const word& modelType,
             const word& dictExt = "Coeffs"
         );
 
-        //- Construct from owner film with name
+        //- Construct from film film with name
         filmSubModelBase
         (
             const word& modelName,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& baseName,
             const word& modelType
@@ -103,11 +103,11 @@ public:
             //- Flag to indicate when to write a property
             virtual bool writeTime() const;
 
-            //- Return const access to the owner surface film model
-            inline const surfaceFilmModel& owner() const;
+            //- Return const access to the film surface film model
+            inline const surfaceFilmModel& film() const;
 
-            //- Return the reference to the owner surface film model
-            inline surfaceFilmModel& owner();
+            //- Return the reference to the film surface film model
+            inline surfaceFilmModel& film();
 
             template<class FilmType>
             inline const FilmType& filmType() const;
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
index c9149735cd8..2dced7e4f50 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,15 +34,15 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-inline const surfaceFilmModel& filmSubModelBase::owner() const
+inline const surfaceFilmModel& filmSubModelBase::film() const
 {
-    return owner_;
+    return filmModel_;
 }
 
 
-inline surfaceFilmModel& filmSubModelBase::owner()
+inline surfaceFilmModel& filmSubModelBase::film()
 {
-    return owner_;
+    return filmModel_;
 }
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
index c9e8aa719bd..28011a63e3f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,15 +35,15 @@ namespace surfaceFilmModels
 template<class FilmType>
 const FilmType& filmSubModelBase::filmType() const
 {
-    if (!isA<FilmType>(owner_))
+    if (!isA<FilmType>(filmModel_))
     {
         FatalErrorInFunction
             << "Model " << this->modelType() << " requested film type "
-            << FilmType::typeName << " but film is type " << owner_.type()
+            << FilmType::typeName << " but film is type " << filmModel_.type()
             << abort(FatalError);
     }
 
-    return refCast<const FilmType>(owner_);
+    return refCast<const FilmType>(filmModel_);
 }
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
index 9c3845102ff..bae1439ce33 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,11 +61,11 @@ void constantFilmThermo::init(thermoData& td)
 
 constantFilmThermo::constantFilmThermo
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmThermoModel(typeName, owner, dict),
+    filmThermoModel(typeName, film, dict),
     name_(coeffDict_.lookup("specie")),
     rho0_("rho0"),
     mu0_("mu0"),
@@ -264,12 +264,12 @@ tmp<volScalarField> constantFilmThermo::rho() const
             IOobject
             (
                 type() + ':' + rho0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimDensity, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -291,12 +291,12 @@ tmp<volScalarField> constantFilmThermo::mu() const
             IOobject
             (
                 type() + ':' + mu0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPressure*dimTime, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -318,12 +318,12 @@ tmp<volScalarField> constantFilmThermo::sigma() const
             IOobject
             (
                 type() + ':' + sigma0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimMass/sqr(dimTime), 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -345,12 +345,12 @@ tmp<volScalarField> constantFilmThermo::Cp() const
             IOobject
             (
                 type() + ':' + Cp0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimEnergy/dimMass/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -372,12 +372,12 @@ tmp<volScalarField> constantFilmThermo::kappa() const
             IOobject
             (
                 type() + ':' + kappa0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPower/dimLength/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
index 10822db6e99..e5ef5baf90b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -140,7 +140,7 @@ public:
         //- Construct from surface film model and dictionary
         constantFilmThermo
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C
index 173e512bfa2..f11b3399aa8 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,21 +43,21 @@ defineRunTimeSelectionTable(filmThermoModel, dictionary);
 
 filmThermoModel::filmThermoModel
 (
-    surfaceFilmModel& owner
+    surfaceFilmModel& film
 )
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 filmThermoModel::filmThermoModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
index 86ce265ee33..d6a4c296a18 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,22 +81,22 @@ public:
              filmThermoModel,
              dictionary,
              (
-                 surfaceFilmModel& owner,
+                 surfaceFilmModel& film,
                  const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        filmThermoModel(surfaceFilmModel& owner);
+        filmThermoModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmThermoModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmThermoModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
index d70b14bbf5a..702a9336e03 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
@@ -55,17 +55,17 @@ addToRunTimeSelectionTable
 
 const thermoSingleLayer& liquidFilmThermo::thermoFilm() const
 {
-    if (!isA<thermoSingleLayer>(owner_))
+    if (!isA<thermoSingleLayer>(filmModel_))
     {
         FatalErrorInFunction
             << "Thermo model requires a " << thermoSingleLayer::typeName
             << " film to supply the pressure and temperature, but "
-            << owner_.type() << " film model selected.  "
+            << filmModel_.type() << " film model selected.  "
             << "Use the 'useReferenceValues' flag to employ reference "
             << "pressure and temperature" << exit(FatalError);
     }
 
-    return refCast<const thermoSingleLayer>(owner_);
+    return refCast<const thermoSingleLayer>(filmModel_);
 }
 
 
@@ -78,13 +78,13 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
 
     dict.lookup("liquid") >> name_;
 
-    if (owner_.primaryMesh().foundObject<SLGThermo>("SLGThermo"))
+    if (filmModel_.primaryMesh().foundObject<SLGThermo>("SLGThermo"))
     {
         // retrieve from film thermo
         ownLiquid_ = false;
 
         const SLGThermo& thermo =
-            owner_.primaryMesh().lookupObject<SLGThermo>("SLGThermo");
+            filmModel_.primaryMesh().lookupObject<SLGThermo>("SLGThermo");
         label id = thermo.liquidId(name_);
         liquidPtr_ = &thermo.liquids().properties()[id];
     }
@@ -103,11 +103,11 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
 
 liquidFilmThermo::liquidFilmThermo
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmThermoModel(typeName, owner, dict),
+    filmThermoModel(typeName, film, dict),
     name_("unknown_liquid"),
     liquidPtr_(nullptr),
     ownLiquid_(false),
@@ -245,12 +245,12 @@ tmp<volScalarField> liquidFilmThermo::rho() const
             IOobject
             (
                 type() + ":rho",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimDensity, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -293,12 +293,12 @@ tmp<volScalarField> liquidFilmThermo::mu() const
             IOobject
             (
                 type() + ":mu",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPressure*dimTime, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -341,12 +341,12 @@ tmp<volScalarField> liquidFilmThermo::sigma() const
             IOobject
             (
                 type() + ":sigma",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimMass/sqr(dimTime), 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -389,12 +389,12 @@ tmp<volScalarField> liquidFilmThermo::Cp() const
             IOobject
             (
                 type() + ":Cp",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimEnergy/dimMass/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -437,12 +437,12 @@ tmp<volScalarField> liquidFilmThermo::kappa() const
             IOobject
             (
                 type() + ":kappa",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPower/dimLength/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
index 6c952e43595..20863e6fdaa 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,7 @@ public:
         //- Construct from surface film model and dictionary
         liquidFilmThermo
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C
index 1d17112954e..90e1df57803 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,20 +41,20 @@ defineRunTimeSelectionTable(filmTurbulenceModel, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& owner)
+filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 filmTurbulenceModel::filmTurbulenceModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
index 31928cd85f9..cb35b71f90d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,22 +83,22 @@ public:
              filmTurbulenceModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        filmTurbulenceModel(surfaceFilmModel& owner);
+        filmTurbulenceModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmTurbulenceModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -108,7 +108,7 @@ public:
         //- Return a reference to the selected injection model
         static autoPtr<filmTurbulenceModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
index 188c12d06b9..44046a183a6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable(filmTurbulenceModel, laminar, dictionary);
 
 laminar::laminar
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmTurbulenceModel(type(), owner, dict),
+    filmTurbulenceModel(type(), film, dict),
     Cf_(readScalar(coeffDict_.lookup("Cf")))
 {}
 
@@ -77,19 +77,19 @@ tmp<volVectorField> laminar::Us() const
             IOobject
             (
                 typeName + ":Us",
-                owner_.regionMesh().time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.regionMesh().time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedVector("zero", dimVelocity, Zero),
             extrapolatedCalculatedFvPatchVectorField::typeName
         )
     );
 
     // apply quadratic profile
-    tUs.ref() = Foam::sqrt(2.0)*owner_.U();
+    tUs.ref() = Foam::sqrt(2.0)*filmModel_.U();
     tUs.ref().correctBoundaryConditions();
 
     return tUs;
@@ -105,12 +105,12 @@ tmp<volScalarField> laminar::mut() const
             IOobject
             (
                 typeName + ":mut",
-                owner_.regionMesh().time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.regionMesh().time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("zero", dimMass/dimLength/dimTime, 0.0)
         )
     );
@@ -125,7 +125,7 @@ tmp<fvVectorMatrix> laminar::Su(volVectorField& U) const
 {
     // local reference to film model
     const kinematicSingleLayer& film =
-        static_cast<const kinematicSingleLayer&>(owner_);
+        static_cast<const kinematicSingleLayer&>(filmModel_);
 
     // local references to film fields
     const volScalarField& mu = film.mu();
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
index ceaecabb25c..183e5fd2cb4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        laminar(surfaceFilmModel& owner, const dictionary& dict);
+        laminar(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
index 2271fde826a..c91d299eb47 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
@@ -51,7 +51,7 @@ void contactAngleForce::initialise()
 
     if (zeroForcePatches.size())
     {
-        const polyBoundaryMesh& pbm = owner_.regionMesh().boundaryMesh();
+        const polyBoundaryMesh& pbm = filmModel_.regionMesh().boundaryMesh();
         scalar dLim = readScalar(coeffDict_.lookup("zeroForceDistance"));
 
         Info<< "        Assigning zero contact force within " << dLim
@@ -66,19 +66,19 @@ void contactAngleForce::initialise()
         }
 
         // Temporary implementation until run-time selection covers this case
-        patchDistMethods::meshWave dist(owner_.regionMesh(), patchIDs);
+        patchDistMethods::meshWave dist(filmModel_.regionMesh(), patchIDs);
         volScalarField y
         (
             IOobject
             (
                 "y",
-                owner_.regionMesh().time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.regionMesh().time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("y", dimLength, GREAT)
         );
         dist.correct(y);
@@ -93,23 +93,23 @@ void contactAngleForce::initialise()
 contactAngleForce::contactAngleForce
 (
     const word& typeName,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    force(typeName, owner, dict),
+    force(typeName, film, dict),
     Ccf_(readScalar(coeffDict_.lookup("Ccf"))),
     mask_
     (
         IOobject
         (
             typeName + ":contactForceMask",
-            owner_.time().timeName(),
-            owner_.regionMesh(),
+            filmModel_.time().timeName(),
+            filmModel_.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner_.regionMesh(),
+        filmModel_.regionMesh(),
         dimensionedScalar("mask", dimless, 1.0)
     )
 {
@@ -134,25 +134,25 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
             IOobject
             (
                 typeName + ":contactForce",
-                owner_.time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedVector("zero", dimForce/dimArea, Zero)
         )
     );
 
     vectorField& force = tForce.ref().primitiveFieldRef();
 
-    const labelUList& own = owner_.regionMesh().owner();
-    const labelUList& nbr = owner_.regionMesh().neighbour();
+    const labelUList& own = filmModel_.regionMesh().owner();
+    const labelUList& nbr = filmModel_.regionMesh().neighbour();
 
-    const scalarField& magSf = owner_.magSf();
+    const scalarField& magSf = filmModel_.magSf();
 
-    const volScalarField& alpha = owner_.alpha();
-    const volScalarField& sigma = owner_.sigma();
+    const volScalarField& alpha = filmModel_.alpha();
+    const volScalarField& sigma = filmModel_.sigma();
 
     const tmp<volScalarField> ttheta = theta();
     const volScalarField& theta = ttheta();
@@ -176,7 +176,7 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
 
         if (celli != -1 && mask_[celli] > 0.5)
         {
-            const scalar invDx = owner_.regionMesh().deltaCoeffs()[facei];
+            const scalar invDx = filmModel_.regionMesh().deltaCoeffs()[facei];
             const vector n =
                 gradAlpha[celli]/(mag(gradAlpha[celli]) + ROOTVSMALL);
             const scalar cosTheta = cos(degToRad(theta[celli]));
@@ -186,7 +186,7 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
 
     forAll(alpha.boundaryField(), patchi)
     {
-        if (!owner_.isCoupledPatch(patchi))
+        if (!filmModel_.isCoupledPatch(patchi))
         {
             const fvPatchField<scalar>& alphaf = alpha.boundaryField()[patchi];
             const fvPatchField<scalar>& maskf = mask_.boundaryField()[patchi];
@@ -215,7 +215,7 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
 
     force /= magSf;
 
-    if (owner_.regionMesh().time().writeTime())
+    if (filmModel_.regionMesh().time().writeTime())
     {
         tForce().write();
     }
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
index 4d46cb6b013..4d2e86e174f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
@@ -96,7 +96,7 @@ public:
         contactAngleForce
         (
             const word& typeName,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
index c245bb23842..c4195ad2b52 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
@@ -45,11 +45,11 @@ addToRunTimeSelectionTable(force, distributionContactAngleForce, dictionary);
 
 distributionContactAngleForce::distributionContactAngleForce
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    contactAngleForce(typeName, owner, dict),
+    contactAngleForce(typeName, film, dict),
     rndGen_(label(0), -1),
     distribution_
     (
@@ -79,10 +79,10 @@ tmp<volScalarField> distributionContactAngleForce::theta() const
             IOobject
             (
                 typeName + ":theta",
-                owner_.time().timeName(),
-                owner_.regionMesh()
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh()
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("0", dimless, 0)
         )
     );
@@ -97,7 +97,7 @@ tmp<volScalarField> distributionContactAngleForce::theta() const
 
     forAll(theta.boundaryField(), patchi)
     {
-        if (!owner_.isCoupledPatch(patchi))
+        if (!filmModel_.isCoupledPatch(patchi))
         {
             fvPatchField<scalar>& thetaf = theta.boundaryFieldRef()[patchi];
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
index 7ad68e5b387..508b66ad6c4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
@@ -95,7 +95,7 @@ public:
         //- Construct from surface film model
         distributionContactAngleForce
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
index 9164fd64d5a..1c7a51ad08a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
@@ -50,11 +50,11 @@ addToRunTimeSelectionTable
 
 temperatureDependentContactAngleForce::temperatureDependentContactAngleForce
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    contactAngleForce(typeName, owner, dict),
+    contactAngleForce(typeName, film, dict),
     thetaPtr_(Function1<scalar>::New("theta", coeffDict_))
 {}
 
@@ -76,23 +76,23 @@ tmp<volScalarField> temperatureDependentContactAngleForce::theta() const
             IOobject
             (
                 typeName + ":theta",
-                owner_.time().timeName(),
-                owner_.regionMesh()
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh()
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("0", dimless, 0)
         )
     );
 
     volScalarField& theta = ttheta.ref();
 
-    const volScalarField& T = owner_.T();
+    const volScalarField& T = filmModel_.T();
 
     theta.ref().field() = thetaPtr_->value(T());
 
     forAll(theta.boundaryField(), patchi)
     {
-        if (!owner_.isCoupledPatch(patchi))
+        if (!filmModel_.isCoupledPatch(patchi))
         {
             theta.boundaryFieldRef()[patchi] =
                 thetaPtr_->value(T.boundaryField()[patchi]);
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
index 2c79e1b79b6..780b2b32884 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
@@ -97,7 +97,7 @@ public:
         //- Construct from surface film model
         temperatureDependentContactAngleForce
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C
index 976a04913a3..472c8b21c05 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,20 +41,20 @@ defineRunTimeSelectionTable(force, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-force::force(surfaceFilmModel& owner)
+force::force(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 force::force
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
index 9ca13614ace..000b7d9c41f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,22 +82,22 @@ public:
              force,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        force(surfaceFilmModel& owner);
+        force(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         force
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -107,7 +107,7 @@ public:
         //- Return a reference to the selected force model
         static autoPtr<force> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& modelType
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
index 56a1454c46b..ea63cc2334c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,7 +36,7 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-forceList::forceList(surfaceFilmModel& owner)
+forceList::forceList(surfaceFilmModel& film)
 :
     PtrList<force>()
 {}
@@ -44,7 +44,7 @@ forceList::forceList(surfaceFilmModel& owner)
 
 forceList::forceList
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
@@ -59,7 +59,7 @@ forceList::forceList
 
         forAll(models, i)
         {
-            set(i, force::New(owner, dict, models[i]));
+            set(i, force::New(film, dict, models[i]));
         }
     }
     else
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
index e09dc14d710..bc6c28c1e2f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,12 +60,12 @@ public:
     // Constructors
 
         //- Construct null
-        forceList(surfaceFilmModel& owner);
+        forceList(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         forceList
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
index 19614cbcf91..799e68536b6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,11 +45,11 @@ addToRunTimeSelectionTable(force, thermocapillaryForce, dictionary);
 
 thermocapillaryForce::thermocapillaryForce
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    force(owner)
+    force(film)
 {}
 
 
@@ -63,7 +63,7 @@ thermocapillaryForce::~thermocapillaryForce()
 
 tmp<fvVectorMatrix> thermocapillaryForce::correct(volVectorField& U)
 {
-    const volScalarField& sigma = owner_.sigma();
+    const volScalarField& sigma = filmModel_.sigma();
 
     tmp<fvVectorMatrix>
         tfvm(new fvVectorMatrix(U, dimForce/dimArea*dimVolume));
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
index 85e404f4b2f..ee2f1a0b548 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,7 +76,7 @@ public:
         //- Construct from surface film model
         thermocapillaryForce
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
index 611849316e4..fd7fd0cc81b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,15 +45,15 @@ addToRunTimeSelectionTable(injectionModel, BrunDrippingInjection, dictionary);
 
 BrunDrippingInjection::BrunDrippingInjection
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
+    injectionModel(type(), film, dict),
     ubarStar_(coeffDict_.lookupOrDefault("ubarStar", 1.62208)),
     dCoeff_(coeffDict_.lookupOrDefault("dCoeff", 3.3)),
     deltaStable_(coeffDict_.lookupOrDefault("deltaStable", scalar(0))),
-    diameter_(owner.regionMesh().nCells(), -1.0)
+    diameter_(film.regionMesh().nCells(), -1.0)
 {}
 
 
@@ -73,7 +73,7 @@ void BrunDrippingInjection::correct
 )
 {
     const kinematicSingleLayer& film =
-        refCast<const kinematicSingleLayer>(this->owner());
+        refCast<const kinematicSingleLayer>(this->film());
 
     // Calculate available dripping mass
     tmp<volScalarField> tsinAlpha(film.gNorm()/mag(film.g()));
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
index 00f23444123..91ba6a84ec5 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,7 +118,7 @@ public:
         //- Construct from surface film model
         BrunDrippingInjection
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
index 72d49c774c1..fb7ced6e9cc 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ tmp<volScalarField> curvatureSeparation::calcInvR1
 /*
     tmp<volScalarField> tinvR1
     (
-        new volScalarField("invR1", fvc::div(owner().nHat()))
+        new volScalarField("invR1", fvc::div(film().nHat()))
     );
 */
 
@@ -82,7 +82,7 @@ tmp<volScalarField> curvatureSeparation::calcInvR1
 
     // apply defined patch radii
     const scalar rMin = 1e-6;
-    const fvMesh& mesh = owner().regionMesh();
+    const fvMesh& mesh = film().regionMesh();
     const polyBoundaryMesh& pbm = mesh.boundaryMesh();
     forAll(definedPatchRadii_, i)
     {
@@ -115,7 +115,7 @@ tmp<scalarField> curvatureSeparation::calcCosAngle
     const surfaceScalarField& phi
 ) const
 {
-    const fvMesh& mesh = owner().regionMesh();
+    const fvMesh& mesh = film().regionMesh();
     const vectorField nf(mesh.Sf()/mesh.magSf());
     const unallocLabelList& own = mesh.owner();
     const unallocLabelList& nbr = mesh.neighbour();
@@ -220,15 +220,15 @@ tmp<scalarField> curvatureSeparation::calcCosAngle
 
 curvatureSeparation::curvatureSeparation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
-    gradNHat_(fvc::grad(owner.nHat())),
+    injectionModel(type(), film, dict),
+    gradNHat_(fvc::grad(film.nHat())),
     deltaByR1Min_(coeffDict_.lookupOrDefault<scalar>("deltaByR1Min", 0.0)),
     definedPatchRadii_(),
-    magG_(mag(owner.g().value())),
+    magG_(mag(film.g().value())),
     gHat_(Zero)
 {
     if (magG_ < ROOTVSMALL)
@@ -238,10 +238,10 @@ curvatureSeparation::curvatureSeparation
             << exit(FatalError);
     }
 
-    gHat_ = owner.g().value()/magG_;
+    gHat_ = film.g().value()/magG_;
 
     List<Tuple2<word, scalar>> prIn(coeffDict_.lookup("definedPatchRadii"));
-    const wordList& allPatchNames = owner.regionMesh().boundaryMesh().names();
+    const wordList& allPatchNames = film.regionMesh().boundaryMesh().names();
 
     DynamicList<Tuple2<label, scalar>> prData(allPatchNames.size());
 
@@ -284,7 +284,7 @@ void curvatureSeparation::correct
 )
 {
     const kinematicSingleLayer& film =
-        refCast<const kinematicSingleLayer>(this->owner());
+        refCast<const kinematicSingleLayer>(this->film());
     const fvMesh& mesh = film.regionMesh();
 
     const volScalarField& delta = film.delta();
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
index 26d8fa57a0e..8d788ede24c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -121,7 +121,7 @@ public:
         //- Construct from surface film model
         curvatureSeparation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
index a429af6bec6..47559956da8 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,11 +50,11 @@ addToRunTimeSelectionTable(injectionModel, drippingInjection, dictionary);
 
 drippingInjection::drippingInjection
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
+    injectionModel(type(), film, dict),
     deltaStable_(readScalar(coeffDict_.lookup("deltaStable"))),
     particlesPerParcel_(readScalar(coeffDict_.lookup("particlesPerParcel"))),
     rndGen_(label(0), -1),
@@ -66,7 +66,7 @@ drippingInjection::drippingInjection
             rndGen_
         )
     ),
-    diameter_(owner.regionMesh().nCells(), -1.0)
+    diameter_(film.regionMesh().nCells(), -1.0)
 {}
 
 
@@ -86,7 +86,7 @@ void drippingInjection::correct
 )
 {
     const kinematicSingleLayer& film =
-        refCast<const kinematicSingleLayer>(this->owner());
+        refCast<const kinematicSingleLayer>(this->film());
 
     const scalar pi = constant::mathematical::pi;
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
index e2e2d607e75..c6bc895c3a5 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -105,7 +105,7 @@ public:
         //- Construct from surface film model
         drippingInjection
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
index 12656a7300d..585ed54ddc4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,9 +49,9 @@ void injectionModel::addToInjectedMass(const scalar dMass)
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-injectionModel::injectionModel(surfaceFilmModel& owner)
+injectionModel::injectionModel(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner),
+    filmSubModelBase(film),
     injectedMass_(0.0)
 {}
 
@@ -59,11 +59,11 @@ injectionModel::injectionModel(surfaceFilmModel& owner)
 injectionModel::injectionModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType),
+    filmSubModelBase(film, dict, typeName, modelType),
     injectedMass_(0.0)
 {}
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
index b365ff737c3..36d7a8bfd3b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -98,23 +98,23 @@ public:
              injectionModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
 
     // Constructors
 
         //- Construct null
-        injectionModel(surfaceFilmModel& owner);
+        injectionModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         injectionModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -124,7 +124,7 @@ public:
         //- Return a reference to the selected injection model
         static autoPtr<injectionModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& mdoelType
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
index f860276b7af..e33a5262a69 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,16 +36,16 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-injectionModelList::injectionModelList(surfaceFilmModel& owner)
+injectionModelList::injectionModelList(surfaceFilmModel& film)
 :
     PtrList<injectionModel>(),
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 injectionModelList::injectionModelList
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
@@ -53,12 +53,12 @@ injectionModelList::injectionModelList
     filmSubModelBase
     (
         "injectionModelList",
-        owner,
+        film,
         dict,
         "injectionModelList",
         "injectionModelList"
     ),
-    massInjected_(owner.intCoupledPatchIDs().size(), 0.0)
+    massInjected_(film.intCoupledPatchIDs().size(), 0.0)
 {
     const wordList activeModels(dict.lookup("injectionModels"));
 
@@ -77,7 +77,7 @@ injectionModelList::injectionModelList
         forAllConstIter(wordHashSet, models, iter)
         {
             const word& model = iter.key();
-            set(i, injectionModel::New(owner, dict, model));
+            set(i, injectionModel::New(film, dict, model));
             i++;
         }
     }
@@ -114,7 +114,7 @@ void injectionModelList::correct
     massToInject.correctBoundaryConditions();
     diameterToInject.correctBoundaryConditions();
 
-    const labelList& patchIDs = owner().intCoupledPatchIDs();
+    const labelList& patchIDs = film().intCoupledPatchIDs();
 
     forAll(patchIDs, i)
     {
@@ -127,7 +127,7 @@ void injectionModelList::correct
 
 void injectionModelList::info(Ostream& os)
 {
-    const polyBoundaryMesh& pbm = owner().regionMesh().boundaryMesh();
+    const polyBoundaryMesh& pbm = film().regionMesh().boundaryMesh();
 
     scalar injectedMass = 0;
     scalarField patchInjectedMasses(pbm.size(), 0);
@@ -157,7 +157,7 @@ void injectionModelList::info(Ostream& os)
     Pstream::listCombineGather(mass, plusEqOp<scalar>());
     mass += mass0;
 
-    const labelList& patchIDs = owner().intCoupledPatchIDs();
+    const labelList& patchIDs = film().intCoupledPatchIDs();
 
     forAll(patchIDs, i)
     {
@@ -166,7 +166,7 @@ void injectionModelList::info(Ostream& os)
             << mass[i] << endl;
     }
 
-    if (owner().time().writeTime())
+    if (film().time().writeTime())
     {
         setBaseProperty("massInjected", mass);
         massInjected_ = 0.0;
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
index 0feb88aeefd..ce98fac5c2e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,12 +79,12 @@ public:
     // Constructors
 
         //- Construct null
-        injectionModelList(surfaceFilmModel& owner);
+        injectionModelList(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         injectionModelList
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
index cd0e6a2fb85..edd58b40045 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,14 +44,14 @@ addToRunTimeSelectionTable(injectionModel, patchInjection, dictionary);
 
 patchInjection::patchInjection
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
+    injectionModel(type(), film, dict),
     deltaStable_(coeffDict_.lookupOrDefault<scalar>("deltaStable", 0.0))
 {
-    const polyBoundaryMesh& pbm = owner.regionMesh().boundaryMesh();
+    const polyBoundaryMesh& pbm = film.regionMesh().boundaryMesh();
     patchIDs_.setSize(pbm.size());
 
     if (coeffDict_.found("patches"))
@@ -110,11 +110,11 @@ void patchInjection::correct
     // Do not correct if no patches selected
     if (!patchIDs_.size()) return;
 
-    const scalarField& delta = owner().delta();
-    const scalarField& rho = owner().rho();
-    const scalarField& magSf = owner().magSf();
+    const scalarField& delta = film().delta();
+    const scalarField& rho = film().rho();
+    const scalarField& magSf = film().magSf();
 
-    const polyBoundaryMesh& pbm = owner().regionMesh().boundaryMesh();
+    const polyBoundaryMesh& pbm = film().regionMesh().boundaryMesh();
 
     forAll(patchIDs_, pidi)
     {
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
index 1e1bc813f8e..d0880c07119 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,7 +86,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        patchInjection(surfaceFilmModel& owner, const dictionary& dict);
+        patchInjection(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
index 807ca3ad911..0dcb6ebe9ca 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,34 +51,34 @@ addToRunTimeSelectionTable
 
 constantRadiation::constantRadiation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(typeName, owner, dict),
+    filmRadiationModel(typeName, film, dict),
     QrConst_
     (
         IOobject
         (
             typeName + ":QrConst",
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh()
+        film.regionMesh()
     ),
     mask_
     (
         IOobject
         (
             typeName + ":mask",
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("one", dimless, 1.0)
     ),
     absorptivity_(readScalar(coeffDict_.lookup("absorptivity"))),
@@ -110,23 +110,23 @@ tmp<volScalarField> constantRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
 
-    const scalar time = owner().time().value();
+    const scalar time = film().time().value();
 
     if ((time >= timeStart_) && (time <= timeStart_ + duration_))
     {
         scalarField& Shs = tShs.ref();
         const scalarField& Qr = QrConst_;
-        const scalarField& alpha = owner_.alpha();
+        const scalarField& alpha = filmModel_.alpha();
 
         Shs = mask_*Qr*alpha*absorptivity_;
     }
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
index b1e3b536ebf..76a2d9a7719 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -98,7 +98,7 @@ public:
         //- Construct from surface film model and dictionary
         constantRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
index 34c8ffff1d0..3b0dabe7d1c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,20 +41,20 @@ defineRunTimeSelectionTable(filmRadiationModel, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmRadiationModel::filmRadiationModel(surfaceFilmModel& owner)
+filmRadiationModel::filmRadiationModel(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 filmRadiationModel::filmRadiationModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
index b53dc659214..b73e91cf23d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,22 +81,22 @@ public:
              filmRadiationModel,
              dictionary,
              (
-                 surfaceFilmModel& owner,
+                 surfaceFilmModel& film,
                  const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        filmRadiationModel(surfaceFilmModel& owner);
+        filmRadiationModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmRadiationModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmRadiationModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
index 1adcf93ae0e..5dd84d7f6ec 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable
 
 noRadiation::noRadiation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(owner)
+    filmRadiationModel(film)
 {}
 
 
@@ -80,12 +80,12 @@ tmp<volScalarField> noRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
index 5e6b373f0f6..fa24e18c251 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,7 +77,7 @@ public:
         //- Construct from surface film model and dictionary
         noRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
index 55ea60d3224..ec9236d802e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,24 +51,24 @@ addToRunTimeSelectionTable
 
 primaryRadiation::primaryRadiation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(typeName, owner, dict),
+    filmRadiationModel(typeName, film, dict),
     QinPrimary_
     (
         IOobject
         (
             "Qin", // same name as Qin on primary region to enable mapping
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
-        owner.mappedPushedFieldPatchTypes<scalar>()
+        film.mappedPushedFieldPatchTypes<scalar>()
     )
 {}
 
@@ -97,19 +97,19 @@ tmp<volScalarField> primaryRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
 
     scalarField& Shs = tShs.ref();
     const scalarField& QinP = QinPrimary_;
-    const scalarField& alpha = owner_.alpha();
+    const scalarField& alpha = filmModel_.alpha();
 
     Shs = QinP*alpha;
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
index b6568c5c218..55f9d1a8287 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,7 +84,7 @@ public:
         //- Construct from surface film model and dictionary
         primaryRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
index d8525ce4a03..0c82cf5e33b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,36 +52,36 @@ addToRunTimeSelectionTable
 
 standardRadiation::standardRadiation
 (
-     surfaceFilmModel& owner,
+     surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(typeName, owner, dict),
+    filmRadiationModel(typeName, film, dict),
     QinPrimary_
     (
         IOobject
         (
             "Qin", // same name as Qin on primary region to enable mapping
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
-        owner.mappedPushedFieldPatchTypes<scalar>()
+        film.mappedPushedFieldPatchTypes<scalar>()
     ),
     QrNet_
     (
         IOobject
         (
             "QrNet",
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
         zeroGradientFvPatchScalarField::typeName
     ),
@@ -114,20 +114,20 @@ tmp<volScalarField> standardRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
 
     scalarField& Shs = tShs.ref();
     const scalarField& QinP = QinPrimary_;
-    const scalarField& delta = owner_.delta();
-    const scalarField& alpha = owner_.alpha();
+    const scalarField& delta = filmModel_.delta();
+    const scalarField& alpha = filmModel_.alpha();
 
     Shs = beta_*QinP*alpha*(1.0 - exp(-kappaBar_*delta));
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
index b5b60facc93..8a4912bd523 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -95,7 +95,7 @@ public:
         //- Construct from surface film model and dictionary
         standardRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
index 22598e0140c..76abe99b239 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,13 +51,13 @@ addToRunTimeSelectionTable
 
 ArrheniusViscosity::ArrheniusViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu),
-    viscosity_(filmViscosityModel::New(owner, coeffDict_, mu)),
+    filmViscosityModel(typeName, film, dict, mu),
+    viscosity_(filmViscosityModel::New(film, coeffDict_, mu)),
     k1_("k1", dimTemperature, coeffDict_),
     k2_("k2", dimTemperature, coeffDict_),
     Tref_("Tref", dimTemperature, coeffDict_)
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
index ddeed31c451..94d726c314e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -100,7 +100,7 @@ public:
         //- Construct from surface film model
         ArrheniusViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
index d1f47f17c53..b3b489c42ae 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,12 +50,12 @@ addToRunTimeSelectionTable
 
 constantViscosity::constantViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu),
+    filmViscosityModel(typeName, film, dict, mu),
     mu0_("mu0", dimDynamicViscosity, coeffDict_)
 {
     mu_ == mu0_;
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
index bca2c195d6d..4b9f1aad40b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,7 +83,7 @@ public:
         //- Construct from surface film model
         constantViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C
index d2f861ab96c..61676558098 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,12 +44,12 @@ defineRunTimeSelectionTable(filmViscosityModel, dictionary);
 filmViscosityModel::filmViscosityModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType),
+    filmSubModelBase(film, dict, typeName, modelType),
     mu_(mu)
 {}
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
index 38a7272e074..e7bf66ea0a4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -90,11 +90,11 @@ public:
              filmViscosityModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict,
                 volScalarField& mu
              ),
-             (owner, dict, mu)
+             (film, dict, mu)
          );
 
     // Constructors
@@ -103,7 +103,7 @@ public:
         filmViscosityModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
@@ -114,7 +114,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmViscosityModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C
index 2aaad94c488..de00fbee458 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,12 +51,12 @@ addToRunTimeSelectionTable
 
 liquidViscosity::liquidViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu)
+    filmViscosityModel(typeName, film, dict, mu)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
index 8004c541fb5..5b9e5d3ab0e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,7 +82,7 @@ public:
         //- Construct from surface film model
         liquidViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
index 33a124b0f1f..7a09b686ab4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,12 +57,12 @@ addToRunTimeSelectionTable
 
 thixotropicViscosity::thixotropicViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu),
+    filmViscosityModel(typeName, film, dict, mu),
     a_("a", dimless/dimTime, coeffDict_),
     b_("b", dimless, coeffDict_),
     d_("d", dimless, coeffDict_),
@@ -75,12 +75,12 @@ thixotropicViscosity::thixotropicViscosity
         IOobject
         (
             typeName + ":lambda",
-            owner.regionMesh().time().timeName(),
-            owner.regionMesh(),
+            film.regionMesh().time().timeName(),
+            film.regionMesh(),
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh()
+        film.regionMesh()
     )
 {
     lambda_.min(1.0);
@@ -115,7 +115,7 @@ void thixotropicViscosity::correct
     const volScalarField& deltaRho = film.deltaRho();
     const surfaceScalarField& phi = film.phi();
     const volScalarField& alpha = film.alpha();
-    const Time& runTime = this->owner().regionMesh().time();
+    const Time& runTime = this->film().regionMesh().time();
 
     // Shear rate
     volScalarField gDot("gDot", alpha*mag(U - Uw)/(delta + film.deltaSmall()));
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
index 78661661a6a..a25f75f8b58 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -140,7 +140,7 @@ public:
         //- Construct from surface film model
         thixotropicViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
index fb569694d85..605d126b002 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable
 
 constantHeatTransfer::constantHeatTransfer
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    heatTransferModel(typeName, owner, dict),
+    heatTransferModel(typeName, film, dict),
     c0_(readScalar(coeffDict_.lookup("c0")))
 {}
 
@@ -81,13 +81,13 @@ tmp<volScalarField> constantHeatTransfer::h() const
             IOobject
             (
                 "htc",
-                owner_.time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar
             (
                 "c0",
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
index f8b1c60a263..b36eeb9a670 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,7 +83,7 @@ public:
         //- Construct from surface film model and dictionary
         constantHeatTransfer
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C
index 6ec53f76cde..8fcff6baee2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,21 +43,21 @@ defineRunTimeSelectionTable(heatTransferModel, dictionary);
 
 heatTransferModel::heatTransferModel
 (
-    surfaceFilmModel& owner
+    surfaceFilmModel& film
 )
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 heatTransferModel::heatTransferModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
index 646c2d734fd..31bf1207dbf 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,22 +81,22 @@ public:
              heatTransferModel,
              dictionary,
              (
-                 surfaceFilmModel& owner,
+                 surfaceFilmModel& film,
                  const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        heatTransferModel(surfaceFilmModel& owner);
+        heatTransferModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         heatTransferModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<heatTransferModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C
index 3a9da6d01cf..47795db101a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,36 +52,36 @@ addToRunTimeSelectionTable
 
 mappedConvectiveHeatTransfer::mappedConvectiveHeatTransfer
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    heatTransferModel(owner),
+    heatTransferModel(film),
     htcConvPrimary_
     (
         IOobject
         (
             "htcConv",
-            owner.time().timeName(),
-            owner.primaryMesh(),
+            film.time().timeName(),
+            film.primaryMesh(),
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.primaryMesh()
+        film.primaryMesh()
     ),
     htcConvFilm_
     (
         IOobject
         (
             htcConvPrimary_.name(), // must have same name as above for mapping
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime)/dimTemperature, 0.0),
-        owner.mappedPushedFieldPatchTypes<scalar>()
+        film.mappedPushedFieldPatchTypes<scalar>()
     )
 {
     // Update the primary-side convective heat transfer coefficient
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
index 6de4b004efe..caf980bdf22 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,7 +89,7 @@ public:
         //- Construct from surface film model and dictionary
         mappedConvectiveHeatTransfer
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
index 28122810d47..e21ce35c31b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
@@ -44,11 +44,11 @@ addToRunTimeSelectionTable(phaseChangeModel, noPhaseChange, dictionary);
 
 noPhaseChange::noPhaseChange
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary&
 )
 :
-    phaseChangeModel(owner)
+    phaseChangeModel(film)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
index 65a3a566369..cbcd3d65e12 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -74,7 +74,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        noPhaseChange(surfaceFilmModel& owner, const dictionary& dict);
+        noPhaseChange(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
index 44325cc0b2a..f7ddc884dfd 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,10 +43,10 @@ defineRunTimeSelectionTable(phaseChangeModel, dictionary);
 
 phaseChangeModel::phaseChangeModel
 (
-    surfaceFilmModel& owner
+    surfaceFilmModel& film
 )
 :
-    filmSubModelBase(owner),
+    filmSubModelBase(film),
     latestMassPC_(0.0),
     totalMassPC_(0.0)
 {}
@@ -55,11 +55,11 @@ phaseChangeModel::phaseChangeModel
 phaseChangeModel::phaseChangeModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType),
+    filmSubModelBase(film, dict, typeName, modelType),
     latestMassPC_(0.0),
     totalMassPC_(0.0)
 {}
@@ -114,7 +114,7 @@ void phaseChangeModel::info(Ostream& os) const
 {
     const scalar massPCRate =
         returnReduce(latestMassPC_, sumOp<scalar>())
-       /owner_.time().deltaTValue();
+       /filmModel_.time().deltaTValue();
 
     scalar phaseChangeMass = getModelProperty<scalar>("phaseChangeMass");
     phaseChangeMass += returnReduce(totalMassPC_, sumOp<scalar>());
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
index 5ab77edcf53..bf87c332811 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,22 +93,22 @@ public:
              phaseChangeModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        phaseChangeModel(surfaceFilmModel& owner);
+        phaseChangeModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         phaseChangeModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -118,7 +118,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<phaseChangeModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
index f5b5b36f599..93239be248e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable
 
 solidification::solidification
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    phaseChangeModel(typeName, owner, dict),
+    phaseChangeModel(typeName, film, dict),
     T0_(readScalar(coeffDict_.lookup("T0"))),
     maxSolidificationFrac_
     (
@@ -76,12 +76,12 @@ solidification::solidification
         IOobject
         (
             typeName + ":mass",
-            owner.regionMesh().time().timeName(),
-            owner.regionMesh(),
+            film.regionMesh().time().timeName(),
+            film.regionMesh(),
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass, 0.0),
         zeroGradientFvPatchScalarField::typeName
     ),
@@ -90,12 +90,12 @@ solidification::solidification
         IOobject
         (
             typeName + ":thickness",
-            owner.regionMesh().time().timeName(),
-            owner.regionMesh(),
+            film.regionMesh().time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimLength, 0.0),
         zeroGradientFvPatchScalarField::typeName
     )
@@ -128,7 +128,7 @@ void solidification::correctModel
         maxSolidificationFrac_,
         (
             maxSolidificationRate_
-           *owner_.regionMesh().time().deltaTValue()
+           *filmModel_.regionMesh().time().deltaTValue()
         ).value()
     );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
index 1854feac28c..6ceeba82f4f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -96,7 +96,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        solidification(surfaceFilmModel& owner, const dictionary& dict);
+        solidification(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
index 125cf104b26..110333fd564 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,11 +70,11 @@ scalar standardPhaseChange::Sh
 
 standardPhaseChange::standardPhaseChange
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    phaseChangeModel(typeName, owner, dict),
+    phaseChangeModel(typeName, film, dict),
     deltaMin_(readScalar(coeffDict_.lookup("deltaMin"))),
     L_(readScalar(coeffDict_.lookup("L"))),
     TbFactor_(coeffDict_.lookupOrDefault<scalar>("TbFactor", 1.1))
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
index 82a8120bdef..ae28ae4b50b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,7 +97,7 @@ public:
         //- Construct from surface film model
         standardPhaseChange
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
-- 
GitLab


From e6b67f6790f8425e7826e2d2a2935a09cf3e1e74 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Tue, 28 Mar 2017 14:21:07 +0100
Subject: [PATCH 166/277] ENH: Clean-up after latest Foundation integrations

---
 .../solvers/compressible/rhoSimpleFoam/pEqn.H |   5 -
 .../compressible/rhoSimpleFoam/pcEqn.H        |   2 -
 .../rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H  |   4 -
 .../lagrangian/simpleCoalParcelFoam/EEqn.H    |   3 +-
 .../simpleCoalParcelFoam/Make/options         |  10 +-
 .../lagrangian/simpleCoalParcelFoam/YEqn.H    |   2 +-
 .../simpleCoalParcelFoam/createFields.H       |   6 +-
 .../MPPICInterFoam/MPPICInterFoam.C           |  33 +-
 .../multiphase/MPPICInterFoam/Make/options    |   3 +-
 .../multiphase/MPPICInterFoam/alphaEqn.H      | 164 --------
 .../MPPICInterFoam/alphaEqnSubCycle.H         |  34 --
 .../multiphase/MPPICInterFoam/createFields.H  | 369 +++++++++---------
 .../multiphase/VoF/createAlphaFluxes.H        |   2 +-
 .../compressibleInterDyMFoam.C                |   2 +-
 .../decomposePar/decomposePar.C               |  10 +-
 .../parLagrangianRedistributor.C              |   4 +-
 .../foamToEnsight/ensightOutputCloud.C        |  13 +-
 .../ensightOutputCloudTemplates.C             |  11 +-
 src/conversion/ensight/mesh/ensightMeshIO.C   |  68 +++-
 .../ensight/output/ensightOutputTemplates.C   |  11 +-
 src/dynamicMesh/fvMeshTools/fvMeshTools.C     |   4 +-
 .../turbulentDFSEMInletFvPatchVectorField.C   |   2 +-
 .../field/externalCoupled/externalCoupled.C   |   6 +-
 .../externalCoupledTemplates.C                |  16 +-
 .../field/mapFields/mapFieldsTemplates.C      |  14 +-
 .../field/streamLine/streamLineBase.C         |   6 +-
 .../noiseModels/surfaceNoise/surfaceNoise.C   |   6 +-
 src/thermophysicalModels/specie/Make/options  |   4 +-
 .../logPolynomial/logPolynomialTransport.H    |   3 +
 .../annularCombustorTurbine/system/fvSolution |   2 +-
 .../oscillatingCylinder/system/fvSolution     |   2 +-
 .../twoPhasePachuka/system/fvSolution         |   2 +-
 .../condensatingVessel/system/fvSolution      |   2 +-
 .../sloshingTank3D6DoF/system/fvSolution      |   2 +-
 .../eulerianInjection/system/fvSolution       |   2 +-
 .../waveExampleCnoidal/system/fvSolution      |   2 +-
 .../waveExampleSolitary/system/fvSolution     |   2 +-
 .../waveExampleStokesI/system/fvSolution      |   2 +-
 .../waveExampleStokesII/system/fvSolution     |   2 +-
 .../waveExampleStokesV/system/fvSolution      |   2 +-
 40 files changed, 343 insertions(+), 496 deletions(-)
 delete mode 100644 applications/solvers/multiphase/MPPICInterFoam/alphaEqn.H
 delete mode 100644 applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H

diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
index 95b38069020..c7edbb9e877 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
@@ -1,6 +1,4 @@
 {
-    //const volScalarField& psi = thermo.psi();
-
     volScalarField rAU(1.0/UEqn.A());
     surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
     volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
@@ -104,9 +102,6 @@
 
     rho = thermo.rho();
 
-    thermo.rho() = max(thermo.rho(), rhoMin);
-    thermo.rho() = min(thermo.rho(), rhoMax);
-
     if (!simple.transonic())
     {
         rho.relax();
diff --git a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
index 8084b305aac..c7dc0f864d2 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pcEqn.H
@@ -112,8 +112,6 @@ p.correctBoundaryConditions();
 
 // Recalculate density from the relaxed pressure
 rho = thermo.rho();
-thermo.rho() = max(thermo.rho(), rhoMin);
-thermo.rho() = min(thermo.rho(), rhoMax);
 
 if (!simple.transonic())
 {
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
index f0ccccb18a4..4167f80e599 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
@@ -90,9 +90,5 @@
     }
 
     rho = thermo.rho();
-
-    thermo.rho() = max(thermo.rho(), rhoMin);
-    thermo.rho() = min(thermo.rho(), rhoMax);
-
     rho.relax();
 }
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H b/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H
index 8239d446216..b9765ce586f 100644
--- a/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H
@@ -12,9 +12,9 @@
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         rho*(U&g)
+      + Qdot
       + parcels.Sh(he)
       + radiation->Sh(thermo)
-      + combustion->Sh()
       + fvOptions(rho, he)
     );
 
@@ -25,6 +25,7 @@
     EEqn.solve();
 
     fvOptions.correct(he);
+
     thermo.correct();
     radiation->correct();
 
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
index d88ca09eae1..433d27ec071 100644
--- a/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
@@ -10,10 +10,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
@@ -37,11 +34,6 @@ EXE_LIBS = \
     -llagrangianTurbulence \
     -lspecie \
     -lfluidThermophysicalModels \
-    -lliquidProperties \
-    -lliquidMixtureProperties \
-    -lsolidProperties \
-    -lsolidMixtureProperties \
-    -lthermophysicalFunctions \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/YEqn.H b/applications/solvers/lagrangian/simpleCoalParcelFoam/YEqn.H
index 7c7cf9a4c0b..1510f8e391e 100644
--- a/applications/solvers/lagrangian/simpleCoalParcelFoam/YEqn.H
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/YEqn.H
@@ -11,7 +11,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
 
 {
     combustion->correct();
-    dQ = combustion->dQ();
+    Qdot = combustion->Qdot();
     volScalarField Yt(0.0*Y[0]);
 
     forAll(Y, i)
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/createFields.H b/applications/solvers/lagrangian/simpleCoalParcelFoam/createFields.H
index 16f297c9956..ae5129fbc2d 100644
--- a/applications/solvers/lagrangian/simpleCoalParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/createFields.H
@@ -103,18 +103,18 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-volScalarField dQ
+volScalarField Qdot
 (
     IOobject
     (
-        "dQ",
+        "Qdot",
         runTime.timeName(),
         mesh,
         IOobject::NO_READ,
         IOobject::AUTO_WRITE
     ),
     mesh,
-    dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
+    dimensionedScalar("Qdot", dimEnergy/dimTime, 0.0)
 );
 
 #include "createMRF.H"
diff --git a/applications/solvers/multiphase/MPPICInterFoam/MPPICInterFoam.C b/applications/solvers/multiphase/MPPICInterFoam/MPPICInterFoam.C
index d2cab50beea..62b6b0e1865 100644
--- a/applications/solvers/multiphase/MPPICInterFoam/MPPICInterFoam.C
+++ b/applications/solvers/multiphase/MPPICInterFoam/MPPICInterFoam.C
@@ -38,6 +38,9 @@ Description
 
 #include "fvCFD.H"
 #include "CMULES.H"
+#include "EulerDdtScheme.H"
+#include "localEulerDdtScheme.H"
+#include "CrankNicolsonDdtScheme.H"
 #include "subCycle.H"
 
 #include "immiscibleIncompressibleTwoPhaseMixture.H"
@@ -45,7 +48,7 @@ Description
 #include "pimpleControl.H"
 #include "fvOptions.H"
 #include "CorrectPhi.H"
-#include "fixedFluxPressureFvPatchScalarField.H"
+#include "fvcSmooth.H"
 
 #include "basicKinematicMPPICCloud.H"
 
@@ -59,16 +62,22 @@ int main(int argc, char *argv[])
     #include "createTime.H"
     #include "createMesh.H"
     #include "createControl.H"
+    #include "createTimeControls.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
+    #include "createAlphaFluxes.H"
     #include "createFvOptions.H"
-    #include "createTimeControls.H"
     #include "correctPhi.H"
-    #include "CourantNo.H"
-    #include "setInitialDeltaT.H"
 
     turbulence->validate();
 
+    if (!LTS)
+    {
+        #include "readTimeControls.H"
+        #include "CourantNo.H"
+        #include "setInitialDeltaT.H"
+    }
+
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nStarting time loop\n" << endl;
@@ -76,9 +85,17 @@ int main(int argc, char *argv[])
     while (runTime.run())
     {
         #include "readTimeControls.H"
-        #include "CourantNo.H"
-        #include "alphaCourantNo.H"
-        #include "setDeltaT.H"
+
+        if (LTS)
+        {
+            #include "setRDeltaT.H"
+        }
+        else
+        {
+            #include "CourantNo.H"
+            #include "alphaCourantNo.H"
+            #include "setDeltaT.H"
+        }
 
         runTime++;
 
@@ -133,6 +150,8 @@ int main(int argc, char *argv[])
             #include "alphaControls.H"
             #include "alphaEqnSubCycle.H"
 
+            mixture.correct();
+
             #include "UEqn.H"
 
             // --- Pressure corrector loop
diff --git a/applications/solvers/multiphase/MPPICInterFoam/Make/options b/applications/solvers/multiphase/MPPICInterFoam/Make/options
index e298ad1f599..abc0537451c 100644
--- a/applications/solvers/multiphase/MPPICInterFoam/Make/options
+++ b/applications/solvers/multiphase/MPPICInterFoam/Make/options
@@ -4,6 +4,7 @@ EXE_INC =  \
     -I. \
     -I./IncompressibleTwoPhaseMixtureTurbulenceModels/lnInclude \
     -I$(interFoamPath) \
+    -I../VoF \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/fvOptions/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
@@ -31,7 +32,7 @@ EXE_LIBS = \
     -lmeshTools \
     -llagrangian \
     -llagrangianIntermediate \
-    -lthermophysicalFunctions \
+    -lthermophysicalProperties \
     -lspecie \
     -lincompressibleTransportModels \
     -limmiscibleIncompressibleTwoPhaseMixture \
diff --git a/applications/solvers/multiphase/MPPICInterFoam/alphaEqn.H b/applications/solvers/multiphase/MPPICInterFoam/alphaEqn.H
deleted file mode 100644
index 97d1428638b..00000000000
--- a/applications/solvers/multiphase/MPPICInterFoam/alphaEqn.H
+++ /dev/null
@@ -1,164 +0,0 @@
-{
-    word alphaScheme("div(phi,alpha)");
-    word alpharScheme("div(phirb,alpha)");
-
-    // Standard face-flux compression coefficient
-    surfaceScalarField phic
-    (
-        mixture.cAlpha()*mag(alphaPhic/mesh.magSf())
-    );
-
-    // Add the optional isotropic compression contribution
-    if (icAlpha > 0)
-    {
-        phic *= (1.0 - icAlpha);
-        phic += (mixture.cAlpha()*icAlpha)*fvc::interpolate(mag(U));
-    }
-
-    // Do not compress interface at non-coupled boundary faces
-    // (inlets, outlets etc.)
-    surfaceScalarField::Boundary& phicBf = phic.boundaryFieldRef();
-    forAll(phic.boundaryField(), patchi)
-    {
-        fvsPatchScalarField& phicp = phicBf[patchi];
-
-        if (!phicp.coupled())
-        {
-            phicp == 0;
-        }
-    }
-
-    tmp<surfaceScalarField> tphiAlpha;
-
-    if (MULESCorr)
-    {
-        fvScalarMatrix alpha1Eqn
-        (
-            fv::EulerDdtScheme<scalar>(mesh).fvmDdt(alphac, alpha1)
-          + fv::gaussConvectionScheme<scalar>
-            (
-                mesh,
-                alphaPhic,
-                upwind<scalar>(mesh, alphaPhic)
-            ).fvmDiv(alphaPhic, alpha1)
-          - fvm::Sp(fvc::ddt(alphac) + fvc::div(alphaPhic), alpha1)
-        );
-
-        alpha1Eqn.solve();
-
-        Info<< "Phase-1 volume fraction = "
-            << alpha1.weightedAverage(mesh.Vsc()).value()
-            << "  Min(alpha1) = " << min(alpha1).value()
-            << "  Max(alpha1) = " << max(alpha1).value()
-            << endl;
-
-        tmp<surfaceScalarField> tphiAlphaUD(alpha1Eqn.flux());
-        alphaPhi = tphiAlphaUD();
-
-        if (alphaApplyPrevCorr && tphiAlphaCorr0.valid())
-        {
-            Info<< "Applying the previous iteration compression flux" << endl;
-
-            MULES::correct
-            (
-                alphac,
-                alpha1,
-                alphaPhi,
-                tphiAlphaCorr0.ref(),
-                zeroField(), zeroField(),
-                1, 0
-            );
-
-            alphaPhi += tphiAlphaCorr0();
-        }
-
-        // Cache the upwind-flux
-        tphiAlphaCorr0 = tphiAlphaUD;
-
-        alpha2 = 1.0 - alpha1;
-
-        mixture.correct();
-    }
-
-    for (int aCorr=0; aCorr<nAlphaCorr; aCorr++)
-    {
-        surfaceScalarField phir(phic*mixture.nHatf());
-
-        tmp<surfaceScalarField> tphiAlphaUn
-        (
-            fvc::flux
-            (
-                alphaPhic,
-                alpha1,
-                alphaScheme
-            )
-          + fvc::flux
-            (
-               -fvc::flux(-phir, alpha2, alpharScheme),
-                alpha1,
-                alpharScheme
-            )
-        );
-
-        if (MULESCorr)
-        {
-            tmp<surfaceScalarField> tphiAlphaCorr(tphiAlphaUn() - alphaPhi);
-            volScalarField alpha10("alpha10", alpha1);
-
-            //MULES::correct(alpha1, tphiAlphaUn(), tphiAlphaCorr(), 1, 0);
-
-            MULES::correct
-            (
-                alphac,
-                alpha1,
-                tphiAlphaUn(),
-                tphiAlphaCorr.ref(),
-                zeroField(), zeroField(),
-                1, 0
-            );
-
-            // Under-relax the correction for all but the 1st corrector
-            if (aCorr == 0)
-            {
-                alphaPhi += tphiAlphaCorr();
-            }
-            else
-            {
-                alpha1 = 0.5*alpha1 + 0.5*alpha10;
-                alphaPhi += 0.5*tphiAlphaCorr();
-            }
-        }
-        else
-        {
-            alphaPhi = tphiAlphaUn;
-
-            MULES::explicitSolve
-            (
-                alphac,
-                alpha1,
-                alphaPhic,
-                alphaPhi,
-                zeroField(), zeroField(),
-                1, 0
-            );
-
-        }
-
-        alpha2 = 1.0 - alpha1;
-
-        mixture.correct();
-    }
-
-    rhoPhi = alphaPhi*(rho1 - rho2) + alphaPhic*rho2;
-
-    if (alphaApplyPrevCorr && MULESCorr)
-    {
-        tphiAlphaCorr0 = alphaPhi - tphiAlphaCorr0;
-    }
-
-    Info<< "Phase-1 volume fraction = "
-        << alpha1.weightedAverage(mesh.Vsc()).value()
-        << "  Min(alpha1) = " << min(alpha1).value()
-        << "  Max(alpha1) = " << max(alpha1).value()
-        << endl;
-}
diff --git a/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
deleted file mode 100644
index c0d3c8e43a9..00000000000
--- a/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
+++ /dev/null
@@ -1,34 +0,0 @@
-if (nAlphaSubCycles > 1)
-{
-    dimensionedScalar totalDeltaT = runTime.deltaT();
-    surfaceScalarField rhoPhiSum
-    (
-        IOobject
-        (
-            "rhoPhiSum",
-            runTime.timeName(),
-            mesh
-        ),
-        mesh,
-        dimensionedScalar("0", rhoPhi.dimensions(), 0)
-    );
-
-    for
-    (
-        subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
-        !(++alphaSubCycle).end();
-    )
-    {
-        #include "alphaEqn.H"
-        rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi;
-    }
-
-    rhoPhi = rhoPhiSum;
-}
-else
-{
-    #include "alphaEqn.H"
-}
-
-rho == alpha1*rho1 + alpha2*rho2;
-mu = mixture.mu();
diff --git a/applications/solvers/multiphase/MPPICInterFoam/createFields.H b/applications/solvers/multiphase/MPPICInterFoam/createFields.H
index de8ae559cc9..bcf4252b5b0 100644
--- a/applications/solvers/multiphase/MPPICInterFoam/createFields.H
+++ b/applications/solvers/multiphase/MPPICInterFoam/createFields.H
@@ -1,221 +1,204 @@
-    Info<< "Reading field p_rgh\n" << endl;
-    volScalarField p_rgh
-    (
-        IOobject
-        (
-            "p_rgh",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
+#include "createRDeltaT.H"
 
-    Info<< "Reading field U\n" << endl;
-    volVectorField U
+Info<< "Reading field p_rgh\n" << endl;
+volScalarField p_rgh
+(
+    IOobject
     (
-        IOobject
-        (
-            "U",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-    #include "createPhi.H"
+        "p_rgh",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
+
+Info<< "Reading field U\n" << endl;
+volVectorField U
+(
+    IOobject
+    (
+        "U",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
 
-    Info<< "Reading transportProperties\n" << endl;
-    immiscibleIncompressibleTwoPhaseMixture mixture(U, phi);
+#include "createPhi.H"
 
-    volScalarField& alpha1(mixture.alpha1());
-    volScalarField& alpha2(mixture.alpha2());
+Info<< "Reading transportProperties\n" << endl;
+immiscibleIncompressibleTwoPhaseMixture mixture(U, phi);
 
-    const dimensionedScalar& rho1 = mixture.rho1();
-    const dimensionedScalar& rho2 = mixture.rho2();
+volScalarField& alpha1(mixture.alpha1());
+volScalarField& alpha2(mixture.alpha2());
 
-    // Need to store rho for ddt(rho, U)
-    volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            runTime.timeName(),
-            mesh,
-            IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
-        ),
-        alpha1*rho1 + alpha2*rho2
-    );
-    rho.oldTime();
+const dimensionedScalar& rho1 = mixture.rho1();
+const dimensionedScalar& rho2 = mixture.rho2();
 
-    // Need to store mu as incompressibleTwoPhaseMixture does not store it
-    volScalarField mu
+// Need to store rho for ddt(rho, U)
+volScalarField rho
+(
+    IOobject
     (
-        IOobject
-        (
-            "mu",
-            runTime.timeName(),
-            mesh,
-            IOobject::READ_IF_PRESENT
-        ),
-        mixture.mu(),
-        calculatedFvPatchScalarField::typeName
-    );
-
-
-    // Mass flux
-    surfaceScalarField rhoPhi
+        "rho",
+        runTime.timeName(),
+        mesh,
+        IOobject::READ_IF_PRESENT,
+        IOobject::AUTO_WRITE
+    ),
+    alpha1*rho1 + alpha2*rho2
+);
+rho.oldTime();
+
+// Need to store mu as incompressibleTwoPhaseMixture does not store it
+volScalarField mu
+(
+    IOobject
     (
-        IOobject
-        (
-            "rhoPhi",
-            runTime.timeName(),
-            mesh,
-            IOobject::NO_READ,
-            IOobject::NO_WRITE
-        ),
-        fvc::interpolate(rho)*phi
-    );
-
-
-    #include "readGravitationalAcceleration.H"
+        "mu",
+        runTime.timeName(),
+        mesh,
+        IOobject::READ_IF_PRESENT
+    ),
+    mixture.mu(),
+    calculatedFvPatchScalarField::typeName
+);
 
-    #include "readhRef.H"
-    #include "gh.H"
 
-    volScalarField p
+// Mass flux
+surfaceScalarField rhoPhi
+(
+    IOobject
     (
-        IOobject
-        (
-            "p",
-            runTime.timeName(),
-            mesh,
-            IOobject::NO_READ,
-            IOobject::AUTO_WRITE
-        ),
-        p_rgh + rho*gh
-    );
-
-    label pRefCell = 0;
-    scalar pRefValue = 0.0;
-    setRefCell
+        "rhoPhi",
+        runTime.timeName(),
+        mesh,
+        IOobject::NO_READ,
+        IOobject::NO_WRITE
+    ),
+    fvc::interpolate(rho)*phi
+);
+
+#include "readGravitationalAcceleration.H"
+#include "readhRef.H"
+#include "gh.H"
+
+volScalarField p
+(
+    IOobject
     (
-        p,
-        p_rgh,
-        mesh.solutionDict().subDict("PIMPLE"),
-        pRefCell,
-        pRefValue
-    );
-
-    if (p_rgh.needReference())
-    {
-        p += dimensionedScalar
-        (
-            "p",
-            p.dimensions(),
-            pRefValue - getRefCellValue(p, pRefCell)
-        );
-        p_rgh = p - rho*gh;
-    }
-
-    mesh.setFluxRequired(p_rgh.name());
-    mesh.setFluxRequired(alpha1.name());
-
-    // MULES flux from previous time-step
-    surfaceScalarField alphaPhi
+        "p",
+        runTime.timeName(),
+        mesh,
+        IOobject::NO_READ,
+        IOobject::AUTO_WRITE
+    ),
+    p_rgh + rho*gh
+);
+
+label pRefCell = 0;
+scalar pRefValue = 0.0;
+setRefCell
+(
+    p,
+    p_rgh,
+    mesh.solutionDict().subDict("PIMPLE"),
+    pRefCell,
+    pRefValue
+);
+
+if (p_rgh.needReference())
+{
+    p += dimensionedScalar
     (
-        IOobject
-        (
-            "alphaPhi",
-            runTime.timeName(),
-            mesh,
-            IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
-        ),
-        phi*fvc::interpolate(alpha1)
+        "p",
+        p.dimensions(),
+        pRefValue - getRefCellValue(p, pRefCell)
     );
+    p_rgh = p - rho*gh;
+}
 
+mesh.setFluxRequired(p_rgh.name());
+mesh.setFluxRequired(alpha1.name());
 
-    tmp<surfaceScalarField> tphiAlphaCorr0;
-
-    // alphac must be constructed before the cloud
-    // so that the drag-models can find it
-    volScalarField alphac
+// alphac must be constructed before the cloud
+// so that the drag-models can find it
+volScalarField alphac
+(
+    IOobject
     (
-        IOobject
-        (
-            "alphac",
-            runTime.timeName(),
-            mesh,
-            IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
-        ),
+        "alphac",
+        runTime.timeName(),
         mesh,
-        dimensionedScalar("0", dimless, 0),
-        zeroGradientFvPatchScalarField::typeName
-    );
-    alphac.oldTime();
-
-    volScalarField alphacRho(alphac*rho);
-    alphacRho.oldTime();
-
-    Info<< "Constructing kinematicCloud " << endl;
-    basicKinematicMPPICCloud kinematicCloud
-    (
-        "kinematicCloud",
-        rho,
-        U,
-        mu,
-        g
-    );
-
-    // Particle fraction upper limit
-    scalar alphacMin
+        IOobject::READ_IF_PRESENT,
+        IOobject::AUTO_WRITE
+    ),
+    mesh,
+    dimensionedScalar("0", dimless, 0),
+    zeroGradientFvPatchScalarField::typeName
+);
+alphac.oldTime();
+
+volScalarField alphacRho(alphac*rho);
+alphacRho.oldTime();
+
+Info<< "Constructing kinematicCloud " << endl;
+basicKinematicMPPICCloud kinematicCloud
+(
+    "kinematicCloud",
+    rho,
+    U,
+    mu,
+    g
+);
+
+// Particle fraction upper limit
+scalar alphacMin
+(
+    1.0
+  - readScalar
     (
-        1.0
-      - readScalar
-        (
-            kinematicCloud.particleProperties().subDict("constantProperties")
-           .lookup("alphaMax")
-        )
-    );
+        kinematicCloud.particleProperties().subDict("constantProperties")
+       .lookup("alphaMax")
+    )
+);
 
-    // Update alphac from the particle locations
-    alphac = max(1.0 - kinematicCloud.theta(), alphacMin);
-    alphac.correctBoundaryConditions();
+// Update alphac from the particle locations
+alphac = max(1.0 - kinematicCloud.theta(), alphacMin);
+alphac.correctBoundaryConditions();
 
-    surfaceScalarField alphacf("alphacf", fvc::interpolate(alphac));
+surfaceScalarField alphacf("alphacf", fvc::interpolate(alphac));
 
-    // Phase mass flux
-    surfaceScalarField alphaRhoPhic("alphaRhoPhic", alphacf*rhoPhi);
+// Phase mass flux
+surfaceScalarField alphaRhoPhic("alphaRhoPhic", alphacf*rhoPhi);
 
-    // Volumetric phase flux
-    surfaceScalarField alphaPhic("alphaPhic", alphacf*phi);
+// Volumetric phase flux
+surfaceScalarField alphaPhic("alphaPhic", alphacf*phi);
 
-    autoPtr
+autoPtr
+<
+    PhaseCompressibleTurbulenceModel
     <
-        PhaseCompressibleTurbulenceModel
-        <
-            immiscibleIncompressibleTwoPhaseMixture
-        >
-    >turbulence
+        immiscibleIncompressibleTwoPhaseMixture
+    >
+>turbulence
+(
+    PhaseCompressibleTurbulenceModel
+    <
+        immiscibleIncompressibleTwoPhaseMixture
+    >::New
     (
-        PhaseCompressibleTurbulenceModel
-        <
-            immiscibleIncompressibleTwoPhaseMixture
-        >::New
-        (
-            alphac,
-            rho,
-            U,
-            alphaRhoPhic,
-            rhoPhi,
-            mixture
-        )
-    );
+        alphac,
+        rho,
+        U,
+        alphaRhoPhic,
+        rhoPhi,
+        mixture
+    )
+);
 
-    #include "createMRF.H"
+#include "createMRF.H"
diff --git a/applications/solvers/multiphase/VoF/createAlphaFluxes.H b/applications/solvers/multiphase/VoF/createAlphaFluxes.H
index e75c2fe0b0d..3a697e38d42 100644
--- a/applications/solvers/multiphase/VoF/createAlphaFluxes.H
+++ b/applications/solvers/multiphase/VoF/createAlphaFluxes.H
@@ -7,7 +7,7 @@ IOobject alphaPhiHeader
     IOobject::AUTO_WRITE
 );
 
-const bool alphaRestart = alphaPhiHeader.headerOk();
+const bool alphaRestart = alphaPhiHeader.typeHeaderOk<surfaceScalarField>(true);
 
 // MULES flux from previous time-step
 surfaceScalarField alphaPhi
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index 300b7579bbc..34e8762709a 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
@@ -124,7 +124,7 @@ int main(int argc, char *argv[])
                     ghf = (g & mesh.Cf()) - ghRef;
                 }
 
-                if ((mesh.changing() && correctPhi)) || mesh.topoChanging())
+                if ((mesh.changing() && correctPhi) || mesh.topoChanging())
                 {
                     // Calculate absolute flux from the mapped surface velocity
                     // Note: temporary fix until mapped Uf is assessed
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index 5a8a64d0374..e2456987526 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -580,17 +580,17 @@ int main(int argc, char *argv[])
                 // Construct the dimensioned fields
                 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 PtrList<DimensionedField<scalar, volMesh>> dimScalarFields;
-                readFields(mesh, objects, dimScalarFields, false);
+                readFields(mesh, objects, dimScalarFields);
                 PtrList<DimensionedField<vector, volMesh>> dimVectorFields;
-                readFields(mesh, objects, dimVectorFields, false);
+                readFields(mesh, objects, dimVectorFields);
                 PtrList<DimensionedField<sphericalTensor, volMesh>>
                     dimSphericalTensorFields;
-                readFields(mesh, objects, dimSphericalTensorFields, false);
+                readFields(mesh, objects, dimSphericalTensorFields);
                 PtrList<DimensionedField<symmTensor, volMesh>>
                     dimSymmTensorFields;
-                readFields(mesh, objects, dimSymmTensorFields, false);
+                readFields(mesh, objects, dimSymmTensorFields);
                 PtrList<DimensionedField<tensor, volMesh>> dimTensorFields;
-                readFields(mesh, objects, dimTensorFields, false);
+                readFields(mesh, objects, dimTensorFields);
 
 
                 // Construct the surface fields
diff --git a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C
index 0443a8e72dc..73b7f412369 100644
--- a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C
+++ b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -137,7 +137,7 @@ Foam::parLagrangianRedistributor::redistributeLagrangianPositions
 
 
     // Allocate transfer buffers
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     {
         // List of lists of particles to be transfered for all of the
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C
index a3ca62ee222..bb190f9eef2 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloud.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -84,7 +84,7 @@ void Foam::ensightCloud::writePositions
             // Slaves
             for (int slave=1; slave<Pstream::nProcs(); ++slave)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 pointList points(fromSlave);
 
                 forAll(points, pti)
@@ -116,7 +116,7 @@ void Foam::ensightCloud::writePositions
             // Slaves
             for (int slave=1; slave<Pstream::nProcs(); ++slave)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 pointList points(fromSlave);
 
                 forAll(points, pti)
@@ -145,7 +145,12 @@ void Foam::ensightCloud::writePositions
         }
 
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
+
             toMaster
                 << points;
         }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloudTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloudTemplates.C
index 1b2c006c623..fcf68edc190 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloudTemplates.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightOutputCloudTemplates.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -74,7 +74,7 @@ bool Foam::ensightCloud::writeCloudField
             // Slaves
             for (int slave=1; slave<Pstream::nProcs(); ++slave)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 Field<Type> slaveData(fromSlave);
 
                 forAll(slaveData, i)
@@ -107,7 +107,12 @@ bool Foam::ensightCloud::writeCloudField
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
+
             toMaster
                 << field;
         }
diff --git a/src/conversion/ensight/mesh/ensightMeshIO.C b/src/conversion/ensight/mesh/ensightMeshIO.C
index 4337a95c159..213fd57eb5a 100644
--- a/src/conversion/ensight/mesh/ensightMeshIO.C
+++ b/src/conversion/ensight/mesh/ensightMeshIO.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -274,7 +274,7 @@ void Foam::ensightMesh::writePolysConnectivity
         // Slaves
         for (int slave=1; slave<Pstream::nProcs(); ++slave)
         {
-            IPstream fromSlave(Pstream::scheduled, slave);
+            IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
             labelList addr(fromSlave);
             cellList  cellFaces(fromSlave);
 
@@ -283,7 +283,7 @@ void Foam::ensightMesh::writePolysConnectivity
     }
     else
     {
-        OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+        OPstream toMaster(Pstream::commsTypes::scheduled, Pstream::masterNo());
         toMaster
             << addr
             << cellFaces;
@@ -303,7 +303,7 @@ void Foam::ensightMesh::writePolysConnectivity
         // Slaves
         for (int slave=1; slave<Pstream::nProcs(); ++slave)
         {
-            IPstream fromSlave(Pstream::scheduled, slave);
+            IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
             labelList addr(fromSlave);
             cellList  cellFaces(fromSlave);
             faceList  meshFaces(fromSlave);
@@ -319,7 +319,7 @@ void Foam::ensightMesh::writePolysConnectivity
     }
     else
     {
-        OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+        OPstream toMaster(Pstream::commsTypes::scheduled, Pstream::masterNo());
         toMaster
             << addr
             << cellFaces
@@ -349,7 +349,7 @@ void Foam::ensightMesh::writePolysConnectivity
         // Slaves
         for (int slave=1; slave<Pstream::nProcs(); ++slave)
         {
-            IPstream fromSlave(Pstream::scheduled, slave);
+            IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
             labelList addr(fromSlave);
             cellList  cellFaces(fromSlave);
             faceList  faces(fromSlave);
@@ -367,7 +367,7 @@ void Foam::ensightMesh::writePolysConnectivity
     }
     else
     {
-        OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+        OPstream toMaster(Pstream::commsTypes::scheduled, Pstream::masterNo());
         toMaster
             << addr
             << cellFaces
@@ -423,7 +423,7 @@ void Foam::ensightMesh::writeCellConnectivity
 
                 for (int slave=1; slave<Pstream::nProcs(); ++slave)
                 {
-                    IPstream fromSlave(Pstream::scheduled, slave);
+                    IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                     cellShapeList received(fromSlave);
 
                     writeCellShapes(received, os);
@@ -431,7 +431,12 @@ void Foam::ensightMesh::writeCellConnectivity
             }
             else
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
+
                 toMaster
                     << shapes;
             }
@@ -505,7 +510,7 @@ void Foam::ensightMesh::writeFaceConnectivity
 
                 for (int slave=1; slave<Pstream::nProcs(); ++slave)
                 {
-                    IPstream fromSlave(Pstream::scheduled, slave);
+                    IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                     faceList received(fromSlave);
 
                     writeFaceSizes(received, os);
@@ -513,7 +518,12 @@ void Foam::ensightMesh::writeFaceConnectivity
             }
             else
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
+
                 toMaster
                     << faces;
             }
@@ -527,7 +537,7 @@ void Foam::ensightMesh::writeFaceConnectivity
 
             for (int slave=1; slave<Pstream::nProcs(); ++slave)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 faceList received(fromSlave);
 
                 writeFaceList(received, os);
@@ -535,7 +545,12 @@ void Foam::ensightMesh::writeFaceConnectivity
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
+
             toMaster
                 << faces;
         }
@@ -573,7 +588,7 @@ void Foam::ensightMesh::writeFaceConnectivity
 
                 for (int slave=1; slave<Pstream::nProcs(); ++slave)
                 {
-                    IPstream fromSlave(Pstream::scheduled, slave);
+                    IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                     faceList received(fromSlave);
 
                     writeFaceSizes(received, os);
@@ -581,7 +596,12 @@ void Foam::ensightMesh::writeFaceConnectivity
             }
             else
             {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
+
                 toMaster
                     << faces;
             }
@@ -594,7 +614,7 @@ void Foam::ensightMesh::writeFaceConnectivity
 
             for (int slave=1; slave<Pstream::nProcs(); ++slave)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 faceList received(fromSlave);
 
                 writeFaceList(received, os);
@@ -602,7 +622,12 @@ void Foam::ensightMesh::writeFaceConnectivity
         }
         else
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
+
             toMaster
                 << faces;
         }
@@ -679,7 +704,7 @@ void Foam::ensightMesh::writeAllPoints
 
             for (int slave=1; slave<Pstream::nProcs(); ++slave)
             {
-                IPstream fromSlave(Pstream::scheduled, slave);
+                IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                 scalarField received(fromSlave);
                 os.writeList(received);
             }
@@ -689,7 +714,12 @@ void Foam::ensightMesh::writeAllPoints
     {
         for (direction cmpt=0; cmpt < point::nComponents; ++cmpt)
         {
-            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            OPstream toMaster
+            (
+                Pstream::commsTypes::scheduled,
+                Pstream::masterNo()
+            );
+
             toMaster
                 << uniquePoints.component(cmpt);
         }
diff --git a/src/conversion/ensight/output/ensightOutputTemplates.C b/src/conversion/ensight/output/ensightOutputTemplates.C
index 2689c126640..2ce1af6cd79 100644
--- a/src/conversion/ensight/output/ensightOutputTemplates.C
+++ b/src/conversion/ensight/output/ensightOutputTemplates.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -63,7 +63,7 @@ void Foam::ensightOutput::writeFieldContent
 
                 for (int slave=1; slave<Pstream::nProcs(); ++slave)
                 {
-                    IPstream fromSlave(Pstream::scheduled, slave);
+                    IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
                     scalarField received(fromSlave);
                     os.writeList(received);
                 }
@@ -75,7 +75,12 @@ void Foam::ensightOutput::writeFieldContent
             {
                 const label cmpt = ensightPTraits<Type>::componentOrder[d];
 
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                OPstream toMaster
+                (
+                    Pstream::commsTypes::scheduled,
+                    Pstream::masterNo()
+                );
+
                 toMaster
                     << fld.component(cmpt);
             }
diff --git a/src/dynamicMesh/fvMeshTools/fvMeshTools.C b/src/dynamicMesh/fvMeshTools/fvMeshTools.C
index fd51c2af888..ad06dcafca2 100644
--- a/src/dynamicMesh/fvMeshTools/fvMeshTools.C
+++ b/src/dynamicMesh/fvMeshTools/fvMeshTools.C
@@ -477,14 +477,14 @@ Foam::autoPtr<Foam::fvMesh> Foam::fvMeshTools::newMesh
             slave++
         )
         {
-            OPstream toSlave(Pstream::scheduled, slave);
+            OPstream toSlave(Pstream::commsTypes::scheduled, slave);
             toSlave << patchEntries;
         }
     }
     else
     {
         // Receive patches
-        IPstream fromMaster(Pstream::scheduled, Pstream::masterNo());
+        IPstream fromMaster(Pstream::commsTypes::scheduled, Pstream::masterNo());
         fromMaster >> patchEntries;
     }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
index c68231649ab..280817df456 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
@@ -673,7 +673,7 @@ void Foam::turbulentDFSEMInletFvPatchVectorField::calcOverlappingProcEddies
 
     mapDistribute map(segmentI, sendMap.xfer(), constructMap.xfer());
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     for (label domain = 0; domain < Pstream::nProcs(); domain++)
     {
diff --git a/src/functionObjects/field/externalCoupled/externalCoupled.C b/src/functionObjects/field/externalCoupled/externalCoupled.C
index d56174a81e4..ae04ca981fc 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupled.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupled.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -322,7 +322,7 @@ void Foam::functionObjects::externalCoupled::readColumns
     // Get sizes for all processors
     const globalIndex globalFaces(nRows);
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
     if (Pstream::master())
     {
         string line;
@@ -391,7 +391,7 @@ void Foam::functionObjects::externalCoupled::readLines
     // Get sizes for all processors
     const globalIndex globalFaces(nRows);
 
-    PstreamBuffers pBufs(Pstream::nonBlocking);
+    PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
     if (Pstream::master())
     {
diff --git a/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C b/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
index 90d6fc3b06b..84f092836d3 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -438,14 +438,24 @@ bool Foam::functionObjects::externalCoupled::writeData
 
                     for (label proci = 1; proci < Pstream::nProcs(); proci++)
                     {
-                        IPstream fromSlave(Pstream::scheduled, proci);
+                        IPstream fromSlave
+                        (
+                            Pstream::commsTypes::scheduled,
+                            proci
+                        );
+
                         string str(fromSlave);
                         masterFilePtr() << str.c_str();
                     }
                 }
                 else
                 {
-                    OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+                    OPstream toMaster
+                    (
+                        Pstream::commsTypes::scheduled,
+                        Pstream::masterNo()
+                    );
+
                     toMaster << os.str();
                 }
             }
diff --git a/src/functionObjects/field/mapFields/mapFieldsTemplates.C b/src/functionObjects/field/mapFields/mapFieldsTemplates.C
index 2b473ac3289..792dff4e59c 100644
--- a/src/functionObjects/field/mapFields/mapFieldsTemplates.C
+++ b/src/functionObjects/field/mapFields/mapFieldsTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,8 +40,8 @@ void Foam::functionObjects::mapFields::evaluateConstraintTypes
 
     if
     (
-        Pstream::defaultCommsType == Pstream::blocking
-     || Pstream::defaultCommsType == Pstream::nonBlocking
+        Pstream::defaultCommsType == Pstream::commsTypes::blocking
+     || Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
     )
     {
         label nReq = Pstream::nRequests();
@@ -64,7 +64,7 @@ void Foam::functionObjects::mapFields::evaluateConstraintTypes
         if
         (
             Pstream::parRun()
-         && Pstream::defaultCommsType == Pstream::nonBlocking
+         && Pstream::defaultCommsType == Pstream::commsTypes::nonBlocking
         )
         {
             Pstream::waitRequests(nReq);
@@ -84,7 +84,7 @@ void Foam::functionObjects::mapFields::evaluateConstraintTypes
             }
         }
     }
-    else if (Pstream::defaultCommsType == Pstream::scheduled)
+    else if (Pstream::defaultCommsType == Pstream::commsTypes::scheduled)
     {
         const lduSchedule& patchSchedule =
             fld.mesh().globalData().patchSchedule();
@@ -102,11 +102,11 @@ void Foam::functionObjects::mapFields::evaluateConstraintTypes
             {
                 if (patchSchedule[patchEvali].init)
                 {
-                    tgtField.initEvaluate(Pstream::scheduled);
+                    tgtField.initEvaluate(Pstream::commsTypes::scheduled);
                 }
                 else
                 {
-                    tgtField.evaluate(Pstream::scheduled);
+                    tgtField.evaluate(Pstream::commsTypes::scheduled);
                 }
             }
         }
diff --git a/src/functionObjects/field/streamLine/streamLineBase.C b/src/functionObjects/field/streamLine/streamLineBase.C
index d5741a6c2bf..89605eeb55b 100644
--- a/src/functionObjects/field/streamLine/streamLineBase.C
+++ b/src/functionObjects/field/streamLine/streamLineBase.C
@@ -644,7 +644,7 @@ bool Foam::functionObjects::streamLineBase::write()
         allTracks_.shrink();
         mapDistributeBase::distribute
         (
-            Pstream::scheduled,
+            Pstream::commsTypes::scheduled,
             distMap.schedule(),
             distMap.constructSize(),
             distMap.subMap(),
@@ -662,7 +662,7 @@ bool Foam::functionObjects::streamLineBase::write()
             allScalars_[scalari].shrink();
             mapDistributeBase::distribute
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 distMap.schedule(),
                 distMap.constructSize(),
                 distMap.subMap(),
@@ -680,7 +680,7 @@ bool Foam::functionObjects::streamLineBase::write()
             allVectors_[vectori].shrink();
             mapDistributeBase::distribute
             (
-                Pstream::scheduled,
+                Pstream::commsTypes::scheduled,
                 distMap.schedule(),
                 distMap.constructSize(),
                 distMap.subMap(),
diff --git a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
index 7b9e6180b95..b18c7989854 100644
--- a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
+++ b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
@@ -126,7 +126,7 @@ void surfaceNoise::readSurfaceData
 
     if (Pstream::parRun())
     {
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         // Procedure:
         // 1. Master processor reads pressure data for all faces for all times
@@ -243,7 +243,7 @@ Foam::scalar surfaceNoise::writeSurfaceData
     {
         // Collect the surface data so that we can output the surfaces
 
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         if (!Pstream::master())
         {
@@ -342,7 +342,7 @@ Foam::scalar surfaceNoise::surfaceAverage
     {
         // Collect the surface data so that we can output the surfaces
 
-        PstreamBuffers pBufs(Pstream::nonBlocking);
+        PstreamBuffers pBufs(Pstream::commsTypes::nonBlocking);
 
         if (!Pstream::master())
         {
diff --git a/src/thermophysicalModels/specie/Make/options b/src/thermophysicalModels/specie/Make/options
index 34572985089..79be6f3a7dd 100644
--- a/src/thermophysicalModels/specie/Make/options
+++ b/src/thermophysicalModels/specie/Make/options
@@ -1 +1,3 @@
-LIB_LIBS = -lOpenFOAM
+EXE_INC =
+
+LIB_LIBS =
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
index 712ae331153..2eb3b4bc413 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransport.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::logPolynomialTransport
 
+Group
+    grpSpecieTransport
+
 Description
     Transport package using polynomial functions of \c ln(T) for \c mu and
     \c kappa:
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution
index a0e75dab131..4935d97bf9f 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution
@@ -34,7 +34,7 @@ solvers
         minIter         1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p;
         tolerance       1e-02;
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution
index 61f0eaa59c5..c84f5e1dc02 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution
@@ -34,7 +34,7 @@ solvers
         minIter         1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         $p;
         tolerance       1e-2;
diff --git a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/fvSolution b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/fvSolution
index a0d23071560..965308f8aa7 100644
--- a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/fvSolution
+++ b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/fvSolution
@@ -33,7 +33,7 @@ solvers
         maxIter         100;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution
index 8a34cb8f480..6af6e27afd9 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution
@@ -90,7 +90,7 @@ solvers
         maxIter         300;
     };
 
-    pcorr
+    "pcorr.*"
     {
         $p_rgh;
         relTol          0;
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
index 24676d65528..ffe2a08bf1a 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          1.5;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/fvSolution b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/fvSolution
index d2eb88fed75..5afe33ef1e2 100644
--- a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/fvSolution
@@ -24,7 +24,7 @@ solvers
         cAlpha          2;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          GAMG;
         smoother        GaussSeidel;
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/fvSolution b/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/fvSolution
index 859308b6fab..dee334f852d 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/fvSolution
@@ -25,7 +25,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/fvSolution b/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/fvSolution
index 859308b6fab..dee334f852d 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/fvSolution
@@ -25,7 +25,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/fvSolution b/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/fvSolution
index 859308b6fab..dee334f852d 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/fvSolution
@@ -25,7 +25,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/fvSolution b/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/fvSolution
index 859308b6fab..dee334f852d 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/fvSolution
@@ -25,7 +25,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/fvSolution b/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/fvSolution
index 859308b6fab..dee334f852d 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/fvSolution
@@ -25,7 +25,7 @@ solvers
         cAlpha          1;
     }
 
-    pcorr
+    "pcorr.*"
     {
         solver          PCG;
         preconditioner  DIC;
-- 
GitLab


From 982300f0d849f70ba899aaad0fa9ba4d489b4d58 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 29 Mar 2017 23:15:32 +0100
Subject: [PATCH 167/277] faceOnlySet, uniformSet: Reset mesh.moving before
 returning

Resolves bug-report https://bugs.openfoam.org/view.php?id=2514
---
 src/sampling/sampledSet/face/faceOnlySet.C   | 3 ++-
 src/sampling/sampledSet/uniform/uniformSet.C | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/sampling/sampledSet/face/faceOnlySet.C b/src/sampling/sampledSet/face/faceOnlySet.C
index 9dbeee3dbb1..86b40e61c20 100644
--- a/src/sampling/sampledSet/face/faceOnlySet.C
+++ b/src/sampling/sampledSet/face/faceOnlySet.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -166,6 +166,7 @@ void Foam::faceOnlySet::calcSamples
         // Pout<< "calcSamples : Both start_ and end_ outside domain"
         //     << endl;
 
+        const_cast<polyMesh&>(mesh()).moving(oldMoving);
         return;
     }
 
diff --git a/src/sampling/sampledSet/uniform/uniformSet.C b/src/sampling/sampledSet/uniform/uniformSet.C
index f56b92d6dfb..89e368a3cc6 100644
--- a/src/sampling/sampledSet/uniform/uniformSet.C
+++ b/src/sampling/sampledSet/uniform/uniformSet.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -278,6 +278,7 @@ void Foam::uniformSet::calcSamples
         // (or is along edge)
         // Set points and cell/face labels to empty lists
 
+        const_cast<polyMesh&>(mesh()).moving(oldMoving);
         return;
     }
 
-- 
GitLab


From dfd611aeac7cf079cc46bc9e1c1656221dd4d425 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 31 Mar 2017 14:32:38 +0100
Subject: [PATCH 168/277] surfaceTensionModels: New class hierarchy for
 run-time selectable surface tension models

These models have been particularly designed for use in the VoF solvers, both
incompressible and compressible.  Currently constant and temperature dependent
surface tension models are provided but it easy to write models in which the
surface tension is evaluated from any fields held by the mesh database.
---
 .../twoPhaseMixtureThermo.C                   |  13 ++
 .../twoPhaseMixtureThermo.H                   |   6 +
 .../functions/Function1/Function1/Function1.H |   2 +-
 .../immiscibleIncompressibleTwoPhaseMixture.C |  12 +-
 .../immiscibleIncompressibleTwoPhaseMixture.H |   9 +-
 .../interfaceProperties/Make/files            |   5 +
 .../interfaceProperties/interfaceProperties.C |  12 +-
 .../interfaceProperties/interfaceProperties.H |   8 +-
 .../constant/constantSurfaceTension.C         | 116 +++++++++++++
 .../constant/constantSurfaceTension.H         | 117 +++++++++++++
 .../newSurfaceTensionModel.C                  |  71 ++++++++
 .../surfaceTensionModel/surfaceTensionModel.C |  73 ++++++++
 .../surfaceTensionModel/surfaceTensionModel.H | 161 ++++++++++++++++++
 .../temperatureDependentSurfaceTension.C      | 138 +++++++++++++++
 .../temperatureDependentSurfaceTension.H      | 132 ++++++++++++++
 ...ndentAlphaContactAngleFvPatchScalarField.H |   9 +-
 .../constant/thermophysicalProperties         |   4 +-
 .../constant/thermophysicalProperties         |   4 +-
 .../damBreak/constant/transportProperties     |  11 +-
 19 files changed, 875 insertions(+), 28 deletions(-)
 create mode 100644 src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
 create mode 100644 src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
 create mode 100644 src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
 create mode 100644 src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
 create mode 100644 src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
 create mode 100644 src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
 create mode 100644 src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H

diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
index cfad5174828..6274ad1c31a 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
@@ -360,4 +360,17 @@ Foam::tmp<Foam::scalarField> Foam::twoPhaseMixtureThermo::alphaEff
 }
 
 
+bool Foam::twoPhaseMixtureThermo::read()
+{
+    if (psiThermo::read())
+    {
+        return interfaceProperties::read();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
index 82b0ac90a2d..aefdbdee4fb 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
@@ -285,6 +285,12 @@ public:
                 const scalarField& alphat,
                 const label patchi
             ) const;
+
+
+    // IO
+
+        //- Read base transportProperties dictionary
+        virtual bool read();
 };
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
index c75f128cec6..a0492f66ee1 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
@@ -162,7 +162,7 @@ public:
             friend Ostream& operator<< <Type>
             (
                 Ostream& os,
-                const Function1<Type>& de
+                const Function1<Type>& func
             );
 
             //- Write in dictionary format
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
index 532a9af34fb..22e835d8b8c 100644
--- a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,4 +40,14 @@ immiscibleIncompressibleTwoPhaseMixture
 {}
 
 
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+bool Foam::immiscibleIncompressibleTwoPhaseMixture::read()
+{
+    return
+        incompressibleTwoPhaseMixture::read()
+     && interfaceProperties::read();
+}
+
+
 // ************************************************************************* //
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
index ded416b068f..8129ea543e2 100644
--- a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,12 +80,7 @@ public:
         }
 
         //- Read base transportProperties dictionary
-        virtual bool read()
-        {
-            return
-                incompressibleTwoPhaseMixture::read()
-             && interfaceProperties::read();
-        }
+        virtual bool read();
 };
 
 
diff --git a/src/transportModels/interfaceProperties/Make/files b/src/transportModels/interfaceProperties/Make/files
index 35c9a52b3d3..ad518b1abac 100644
--- a/src/transportModels/interfaceProperties/Make/files
+++ b/src/transportModels/interfaceProperties/Make/files
@@ -1,4 +1,9 @@
 interfaceProperties.C
 interfaceCompression/interfaceCompression.C
 
+surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
+surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
+surfaceTensionModels/constant/constantSurfaceTension.C
+surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
+
 LIB = $(FOAM_LIBBIN)/libinterfaceProperties
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C
index 98e2c37087c..5d2008130b2 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.C
+++ b/src/transportModels/interfaceProperties/interfaceProperties.C
@@ -167,7 +167,8 @@ Foam::interfaceProperties::interfaceProperties
             alpha1.mesh().solverDict(alpha1.name()).lookup("cAlpha")
         )
     ),
-    sigma_("sigma", dimensionSet(1, 0, -2, 0, 0), dict),
+
+    sigmaPtr_(surfaceTensionModel::New(dict, alpha1.mesh())),
 
     deltaN_
     (
@@ -208,6 +209,13 @@ Foam::interfaceProperties::interfaceProperties
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
+Foam::tmp<Foam::volScalarField>
+Foam::interfaceProperties::sigmaK() const
+{
+    return sigmaPtr_->sigma()*K_;
+}
+
+
 Foam::tmp<Foam::surfaceScalarField>
 Foam::interfaceProperties::surfaceTensionForce() const
 {
@@ -231,7 +239,7 @@ void Foam::interfaceProperties::correct()
 bool Foam::interfaceProperties::read()
 {
     alpha1_.mesh().solverDict(alpha1_.name()).lookup("cAlpha") >> cAlpha_;
-    transportPropertiesDict_.lookup("sigma") >> sigma_;
+    sigmaPtr_->read(transportPropertiesDict_);
 
     return true;
 }
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.H b/src/transportModels/interfaceProperties/interfaceProperties.H
index 7956746c2ba..81c08948cad 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.H
+++ b/src/transportModels/interfaceProperties/interfaceProperties.H
@@ -40,6 +40,7 @@ SourceFiles
 #define interfaceProperties_H
 
 #include "IOdictionary.H"
+#include "surfaceTensionModel.H"
 #include "volFields.H"
 #include "surfaceFields.H"
 
@@ -63,7 +64,7 @@ class interfaceProperties
         scalar cAlpha_;
 
         //- Surface tension
-        dimensionedScalar sigma_;
+        autoPtr<surfaceTensionModel> sigmaPtr_;
 
         //- Stabilisation for normalisation of the interface normal
         const dimensionedScalar deltaN_;
@@ -127,10 +128,7 @@ public:
             return nHatf_;
         }
 
-        tmp<volScalarField> sigmaK() const
-        {
-            return sigma_*K_;
-        }
+        tmp<volScalarField> sigmaK() const;
 
         tmp<surfaceScalarField> surfaceTensionForce() const;
 
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
new file mode 100644
index 00000000000..bbe92e5196e
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
@@ -0,0 +1,116 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "constantSurfaceTension.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceTensionModels
+{
+    defineTypeNameAndDebug(constant, 0);
+    addToRunTimeSelectionTable(surfaceTensionModel, constant, dictionary);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::constant::constant
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    surfaceTensionModel(mesh),
+    sigma_("sigma", dimensionSet(1, 0, -2, 0, 0), dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::constant::~constant()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::surfaceTensionModels::constant::sigma() const
+{
+    return tmp<volScalarField>
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "sigma",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            mesh_,
+            sigma_
+        )
+    );
+}
+
+
+bool Foam::surfaceTensionModels::constant::read(const dictionary& dict)
+{
+    // Handle sub-dictionary format as a special case
+    if (dict.isDict("sigma"))
+    {
+        dict.subDict("sigma").lookup("sigma") >> sigma_;
+    }
+    else
+    {
+        dict.lookup("sigma") >> sigma_;
+    }
+
+    return true;
+}
+
+
+bool Foam::surfaceTensionModels::constant::writeData(Ostream& os) const
+{
+    if (surfaceTensionModel::writeData(os))
+    {
+        os  << sigma_ << token::END_STATEMENT << nl;
+        return os.good();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
new file mode 100644
index 00000000000..feef36300c2
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
@@ -0,0 +1,117 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModels::constant
+
+Description
+    Uniform constant surface tension model.
+
+Usage
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type                constant;
+            sigma               0.07;
+        }
+    \endverbatim
+
+See also
+    Foam::surfaceTensionModel
+
+SourceFiles
+    constantSurfaceTension.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef constantSurfaceTension_H
+#define constantSurfaceTension_H
+
+#include "surfaceTensionModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+namespace surfaceTensionModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class constant Declaration
+\*---------------------------------------------------------------------------*/
+
+class constant
+:
+    public surfaceTensionModel
+{
+    // Private data
+
+        //- Surface tension coefficient
+        dimensionedScalar sigma_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("constant");
+
+
+    // Constructors
+
+        //- Construct from dictionary and mesh
+        constant
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    //- Destructor
+    virtual ~constant();
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict);
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceTensionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
new file mode 100644
index 00000000000..a1f6e9f86dd
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
@@ -0,0 +1,71 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "surfaceTensionModel.H"
+#include "constantSurfaceTension.H"
+
+// * * * * * * * * * * * * * * * * Selector  * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::surfaceTensionModel> Foam::surfaceTensionModel::New
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+{
+    if (dict.isDict("sigma"))
+    {
+        const dictionary& sigmaDict = surfaceTensionModel::sigmaDict(dict);
+
+        word surfaceTensionModelType(sigmaDict.lookup("type"));
+
+        Info<< "Selecting surfaceTensionModel "
+            << surfaceTensionModelType << endl;
+
+        dictionaryConstructorTable::iterator cstrIter =
+            dictionaryConstructorTablePtr_->find(surfaceTensionModelType);
+
+        if (cstrIter == dictionaryConstructorTablePtr_->end())
+        {
+            FatalErrorInFunction
+                << "Unknown surfaceTensionModelType type "
+                << surfaceTensionModelType << endl << endl
+                << "Valid surfaceTensionModel types are : " << endl
+                << dictionaryConstructorTablePtr_->sortedToc()
+                << exit(FatalError);
+        }
+
+        return cstrIter()(sigmaDict, mesh);
+    }
+    else
+    {
+        return autoPtr<surfaceTensionModel>
+        (
+            new surfaceTensionModels::constant(dict, mesh)
+        );
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
new file mode 100644
index 00000000000..b0d1cbf2d92
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
@@ -0,0 +1,73 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "surfaceTensionModel.H"
+#include "fvMesh.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(surfaceTensionModel, 0);
+    defineRunTimeSelectionTable(surfaceTensionModel, dictionary);
+}
+
+const Foam::dimensionSet Foam::surfaceTensionModel::dimSigma(1, 0, -2, 0, 0);
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModel::surfaceTensionModel(const fvMesh& mesh)
+:
+    regIOobject
+    (
+        IOobject
+        (
+            typeName, mesh.name(),
+            mesh.time().timeName(),
+            mesh,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        )
+    ),
+    mesh_(mesh)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModel::~surfaceTensionModel()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::surfaceTensionModel::writeData(Ostream& os) const
+{
+    return os.good();
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
new file mode 100644
index 00000000000..930a8444f1d
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
@@ -0,0 +1,161 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModel
+
+Description
+    Abstract base-class for surface tension models which return the surface
+    tension coefficient field.
+
+Usage
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type                <surface tension model type>;
+            <coefficient name>  <coefficient value>;
+            .
+            .
+            .
+        }
+    \endverbatim
+    For simplicity and backward-compatibility the constant value format is
+    also supported, e.g.
+    \verbatim
+        sigma           0.07;
+    \endverbatim
+
+SourceFiles
+    surfaceTensionModel.C
+    newSurfaceTensionModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef surfaceTensionModel_H
+#define surfaceTensionModel_H
+
+#include "regIOobject.H"
+#include "dimensionedTypes.H"
+#include "volFieldsFwd.H"
+#include "runTimeSelectionTables.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class fvMesh;
+
+/*---------------------------------------------------------------------------*\
+                           Class surfaceTensionModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class surfaceTensionModel
+:
+    public regIOobject
+{
+protected:
+
+    // Protected member data
+
+        //- Reference to mesh
+        const fvMesh& mesh_;
+
+
+    // Protected member functions
+
+        static const dictionary& sigmaDict(const dictionary& dict)
+        {
+            return dict.subDict("sigma");
+        }
+
+
+public:
+
+    //- Runtime type information
+    TypeName("surfaceTensionModel");
+
+
+    // Declare runtime construction
+
+        declareRunTimeSelectionTable
+        (
+            autoPtr,
+            surfaceTensionModel,
+            dictionary,
+            (
+                const dictionary& dict,
+                const fvMesh& mesh
+            ),
+            (dict, mesh)
+        );
+
+
+    // Static data members
+
+        //- Surface tension coefficient dimensions
+        static const dimensionSet dimSigma;
+
+
+    // Constructors
+
+        // Construct from mesh
+        surfaceTensionModel(const fvMesh& mesh);
+
+
+    //- Destructor
+    virtual ~surfaceTensionModel();
+
+
+    // Selectors
+
+        static autoPtr<surfaceTensionModel> New
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const = 0;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict) = 0;
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
new file mode 100644
index 00000000000..c56ac7f4a8b
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
@@ -0,0 +1,138 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "temperatureDependentSurfaceTension.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceTensionModels
+{
+    defineTypeNameAndDebug(temperatureDependent, 0);
+    addToRunTimeSelectionTable
+    (
+        surfaceTensionModel,
+        temperatureDependent,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::temperatureDependent::temperatureDependent
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    surfaceTensionModel(mesh),
+    TName_(dict.lookupOrDefault<word>("T", "T")),
+    sigma_(Function1<scalar>::New("sigma", dict))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::temperatureDependent::~temperatureDependent()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::surfaceTensionModels::temperatureDependent::sigma() const
+{
+    tmp<volScalarField> tsigma
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "sigma",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            mesh_,
+            dimSigma
+        )
+    );
+    volScalarField& sigma = tsigma.ref();
+
+    const volScalarField& T = mesh_.lookupObject<volScalarField>(TName_);
+
+    sigma.field() = sigma_->value(T.field());
+
+    volScalarField::Boundary& sigmaBf = sigma.boundaryFieldRef();
+    const volScalarField::Boundary& TBf = T.boundaryField();
+
+    forAll(sigmaBf, patchi)
+    {
+        sigmaBf[patchi] = sigma_->value(TBf[patchi]);
+    }
+
+    return tsigma;
+}
+
+
+bool Foam::surfaceTensionModels::temperatureDependent::read
+(
+    const dictionary& dict
+)
+{
+    const dictionary& sigmaDict = surfaceTensionModel::sigmaDict(dict);
+
+    TName_ = sigmaDict.lookupOrDefault<word>("T", "T");
+    sigma_ = Function1<scalar>::New("sigma", sigmaDict);
+
+    return true;
+}
+
+
+bool Foam::surfaceTensionModels::temperatureDependent::writeData
+(
+    Ostream& os
+) const
+{
+    if (surfaceTensionModel::writeData(os))
+    {
+        os  << sigma_() << token::END_STATEMENT << nl;
+        return os.good();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H
new file mode 100644
index 00000000000..c0bded7c311
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H
@@ -0,0 +1,132 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModels::temperatureDependent
+
+Description
+    Temperature-dependent surface tension model.
+
+    The surface tension is evaluated from the specified Foam::Function1 for the
+    temperature field looked-up from the mesh database the name of which
+    may optionally be provided.
+
+Usage
+    \table
+        Property     | Description               | Required    | Default value
+        T            | Temperature field name    | no          | T
+        sigma        | Surface tension function  | yes         |
+    \endtable
+
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type                temperatureDependent;
+            sigma               constant 0.07;
+        }
+    \endverbatim
+
+See also
+    Foam::surfaceTensionModel
+    Foam::Function1
+
+SourceFiles
+    temperatureDependentSurfaceTension.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef temperatureDependentSurfaceTension_H
+#define temperatureDependentSurfaceTension_H
+
+#include "surfaceTensionModel.H"
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+namespace surfaceTensionModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class temperatureDependent Declaration
+\*---------------------------------------------------------------------------*/
+
+class temperatureDependent
+:
+    public surfaceTensionModel
+{
+    // Private data
+
+        //- Name of temperature field, default = "T"
+        word TName_;
+
+        //- Surface-tension function
+        autoPtr<Function1<scalar>> sigma_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("temperatureDependent");
+
+
+    // Constructors
+
+        //- Construct from dictionary and mesh
+        temperatureDependent
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    //- Destructor
+    virtual ~temperatureDependent();
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict);
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceTensionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H b/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
index a3068b76e4b..ac5ede77274 100644
--- a/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
+++ b/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
@@ -25,13 +25,17 @@ Class
     Foam::temperatureDependentAlphaContactAngleFvPatchScalarField
 
 Description
-    Temperature-dependent constant alphaContactAngle scalar boundary condition.
+    Temperature-dependent alphaContactAngle scalar boundary condition.
+
+    The contact angle is evaluated from the specified Foam::Function1 for the
+    temperature field looked-up from the mesh database the name of which
+    may optionally be provided.
 
 Usage
     \table
         Property     | Description             | Required    | Default value
         T            | Temperature field name  | no          | T
-        theta0       | Contact angle data      | yes         |
+        theta0       | Contact angle function  | yes         |
     \endtable
 
     Example of the boundary condition specification:
@@ -46,6 +50,7 @@ Usage
 See also
     Foam::alphaContactAngleFvPatchScalarField
     Foam::constantAlphaContactAngleFvPatchScalarField
+    Foam::Function1
 
 SourceFiles
     temperatureDependentAlphaContactAngleFvPatchScalarField.C
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
index 8506bd51f34..39d2517cd86 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
@@ -17,8 +17,8 @@ FoamFile
 
 phases (water air);
 
-pMin            [1 -1 -2 0 0 0 0] 10000;
+pMin        10000;
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma       0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties
index 8506bd51f34..39d2517cd86 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties
@@ -17,8 +17,8 @@ FoamFile
 
 phases (water air);
 
-pMin            [1 -1 -2 0 0 0 0] 10000;
+pMin        10000;
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma       0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties
index 577be61a90e..d5c08cdf562 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties
@@ -20,18 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
-
+sigma            0.07;
 
 // ************************************************************************* //
-- 
GitLab


From 332c8acdcd46afb3fe6fc0cd44d028fde1717b97 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Fri, 31 Mar 2017 15:36:28 +0100
Subject: [PATCH 169/277] ENH: Clean-up after latest Foundation integrations

---
 .../postProcessing/lagrangian/dsmcFields         |  2 +-
 .../noise/noiseModels/pointNoise/pointNoise.C    | 11 +++++------
 .../noise/noiseModels/pointNoise/pointNoise.H    | 16 +++++++---------
 .../noiseModels/surfaceNoise/surfaceNoise.C      |  6 +++---
 .../noiseModels/surfaceNoise/surfaceNoise.H      |  3 ++-
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4  |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/G    |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/H2   |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O  |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/N2   |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/O2   |  4 ++--
 .../reactingFoam/RAS/DLR_A_LTS/0/T.orig          |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/U    |  4 ++--
 .../reactingFoam/RAS/DLR_A_LTS/0/Ydefault        |  4 ++--
 .../reactingFoam/RAS/DLR_A_LTS/0/alphat          |  4 ++--
 .../reactingFoam/RAS/DLR_A_LTS/0/epsilon         |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/k    |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/nut  |  4 ++--
 .../combustion/reactingFoam/RAS/DLR_A_LTS/0/p    |  4 ++--
 .../RAS/DLR_A_LTS/chemkin/transportProperties    |  4 ++--
 .../RAS/DLR_A_LTS/constant/chemistryProperties   |  4 ++--
 .../DLR_A_LTS/constant/chemistryProperties.test  |  4 ++--
 .../RAS/DLR_A_LTS/constant/combustionProperties  |  4 ++--
 .../reactingFoam/RAS/DLR_A_LTS/constant/g        |  4 ++--
 .../DLR_A_LTS/constant/thermophysicalProperties  |  4 ++--
 .../RAS/DLR_A_LTS/constant/turbulenceProperties  |  4 ++--
 .../RAS/DLR_A_LTS/system/blockMeshDict           |  4 ++--
 .../RAS/DLR_A_LTS/system/controlDict             |  4 ++--
 .../RAS/DLR_A_LTS/system/decomposeParDict        |  4 ++--
 .../reactingFoam/RAS/DLR_A_LTS/system/fvSchemes  |  4 ++--
 .../reactingFoam/RAS/DLR_A_LTS/system/fvSolution |  4 ++--
 .../RAS/DLR_A_LTS/system/setFieldsDict           |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/CH4      |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/CO       |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/CO2      |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/H        |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/H2       |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/H2O      |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/N2       |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/O        |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/O2       |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/OH       |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/T        |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/U        |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/alphat   |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon  |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/k        |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/nut      |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/p        |  4 ++--
 .../RAS/SandiaD_LTS/chemkin/transportProperties  |  4 ++--
 .../RAS/SandiaD_LTS/constant/chemistryProperties |  4 ++--
 .../SandiaD_LTS/constant/combustionProperties    |  4 ++--
 .../reactingFoam/RAS/SandiaD_LTS/constant/g      |  4 ++--
 .../RAS/SandiaD_LTS/constant/radiationProperties |  4 ++--
 .../constant/thermophysicalProperties            |  4 ++--
 .../SandiaD_LTS/constant/turbulenceProperties    |  4 ++--
 .../RAS/SandiaD_LTS/system/blockMeshDict         |  4 ++--
 .../RAS/SandiaD_LTS/system/controlDict           |  4 ++--
 .../RAS/SandiaD_LTS/system/decomposeParDict      |  4 ++--
 .../RAS/SandiaD_LTS/system/fvSchemes             |  4 ++--
 .../RAS/SandiaD_LTS/system/fvSolution            |  4 ++--
 .../RAS/SandiaD_LTS/system/sampleDict            |  2 +-
 .../RAS/SandiaD_LTS/system/setFieldsDict         |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4 |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2 |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2  |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2  |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T   |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U   |  4 ++--
 .../counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault    |  4 ++--
 .../counterFlowFlame2DLTS_GRI_TDAC/0/alphat      |  4 ++--
 .../laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p   |  4 ++--
 .../constant/chemistryProperties                 |  4 ++--
 .../constant/combustionProperties                |  4 ++--
 .../constant/thermo.compressibleGas              |  2 +-
 .../constant/thermophysicalProperties            |  4 ++--
 .../constant/turbulenceProperties                |  4 ++--
 .../system/blockMeshDict                         |  4 ++--
 .../system/controlDict                           |  4 ++--
 .../system/decomposeParDict                      |  4 ++--
 .../system/fvSchemes                             |  4 ++--
 .../system/fvSolution                            |  4 ++--
 .../system/surfaceFeatureExtractDict             |  4 ++--
 .../compressible/rhoSimpleFoam/squareBendLiq/0/T |  4 ++--
 .../compressible/rhoSimpleFoam/squareBendLiq/0/U |  4 ++--
 .../rhoSimpleFoam/squareBendLiq/0/alphat         |  4 ++--
 .../rhoSimpleFoam/squareBendLiq/0/epsilon        |  4 ++--
 .../compressible/rhoSimpleFoam/squareBendLiq/0/k |  4 ++--
 .../rhoSimpleFoam/squareBendLiq/0/nut            |  4 ++--
 .../compressible/rhoSimpleFoam/squareBendLiq/0/p |  4 ++--
 .../constant/thermophysicalProperties            |  4 ++--
 .../squareBendLiq/constant/turbulenceProperties  |  4 ++--
 .../squareBendLiq/system/blockMeshDict           |  4 ++--
 .../squareBendLiq/system/controlDict             |  4 ++--
 .../squareBendLiq/system/decomposeParDict        |  4 ++--
 .../rhoSimpleFoam/squareBendLiq/system/fvSchemes |  4 ++--
 .../squareBendLiq/system/fvSolution              |  4 ++--
 .../buoyantBoussinesqPimpleFoam/BernardCells/0/T |  4 ++--
 .../buoyantBoussinesqPimpleFoam/BernardCells/0/U |  4 ++--
 .../BernardCells/0/alphat                        |  4 ++--
 .../BernardCells/0/epsilon                       |  4 ++--
 .../buoyantBoussinesqPimpleFoam/BernardCells/0/k |  4 ++--
 .../BernardCells/0/nut                           |  4 ++--
 .../buoyantBoussinesqPimpleFoam/BernardCells/0/p |  4 ++--
 .../BernardCells/0/p_rgh                         |  4 ++--
 .../BernardCells/constant/g                      |  4 ++--
 .../BernardCells/constant/transportProperties    |  4 ++--
 .../BernardCells/constant/turbulenceProperties   |  4 ++--
 .../BernardCells/system/blockMeshDict            |  4 ++--
 .../BernardCells/system/controlDict              |  4 ++--
 .../BernardCells/system/fvSchemes                |  4 ++--
 .../BernardCells/system/fvSolution               |  4 ++--
 .../BernardCells/system/residuals                |  2 +-
 .../BernardCells/system/streamlines              |  2 +-
 .../interDyMFoam/laminar/sloshingCylinder/0/U    |  4 ++--
 .../laminar/sloshingCylinder/0/alpha.water.orig  |  4 ++--
 .../laminar/sloshingCylinder/0/p_rgh             |  4 ++--
 .../sloshingCylinder/constant/dynamicMeshDict    |  4 ++--
 .../laminar/sloshingCylinder/constant/g          |  4 ++--
 .../constant/transportProperties                 |  4 ++--
 .../constant/turbulenceProperties                |  4 ++--
 .../sloshingCylinder/system/blockMeshDict        |  4 ++--
 .../laminar/sloshingCylinder/system/controlDict  |  4 ++--
 .../laminar/sloshingCylinder/system/fvSchemes    |  4 ++--
 .../laminar/sloshingCylinder/system/fvSolution   |  4 ++--
 .../sloshingCylinder/system/meshQualityDict      |  4 ++--
 .../sloshingCylinder/system/setFieldsDict        |  4 ++--
 .../sloshingCylinder/system/snappyHexMeshDict    |  4 ++--
 .../constant/turbulenceProperties                |  4 ++--
 .../laminar/sloshingTank3D6DoF/constant/g        |  4 ++--
 .../constant/turbulenceProperties                |  4 ++--
 .../sloshingTank3D6DoF/system/decomposeParDict   |  4 ++--
 .../laminar/sloshingTank3D6DoF/system/fvSchemes  |  4 ++--
 .../laminar/sloshingTank3D6DoF/system/fvSolution |  4 ++--
 .../laminar/testTubeMixer/constant/g             |  4 ++--
 .../testTubeMixer/system/decomposeParDict        |  4 ++--
 138 files changed, 280 insertions(+), 282 deletions(-)

diff --git a/etc/caseDicts/postProcessing/lagrangian/dsmcFields b/etc/caseDicts/postProcessing/lagrangian/dsmcFields
index 258e543f470..9bf6e369d85 100644
--- a/etc/caseDicts/postProcessing/lagrangian/dsmcFields
+++ b/etc/caseDicts/postProcessing/lagrangian/dsmcFields
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.C b/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.C
index 083bcdf31bf..befb1660613 100644
--- a/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.C
+++ b/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.C
@@ -241,9 +241,9 @@ void pointNoise::calculate()
         if (!fName.isAbsolute())
         {
             fName = "$FOAM_CASE"/fName;
+            fName.expand();
         }
-        fName.expand();
-        Function1Types::CSV<scalar> data("pressure", dict_, "Data", fName);
+        Function1Types::CSV<scalar> data("pressure", dict_, fName);
         processData(filei, data);
     }
 }
@@ -253,13 +253,12 @@ bool pointNoise::read(const dictionary& dict)
 {
     if (noiseModel::read(dict))
     {
-        if (!dict.readIfPresent("inputFiles", inputFileNames_))
+        if (!dict.readIfPresent("files", inputFileNames_))
         {
             inputFileNames_.setSize(1);
 
-            // Note: unsafe lookup of file name from pressureData sub-dict!
-            dict.subDict("pressureData").lookup("fileName")
-                >> inputFileNames_[0];
+            // Note: lookup uses same keyword as used by the CSV constructor
+            dict.lookup("file") >> inputFileNames_[0];
         }
 
         return true;
diff --git a/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.H b/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.H
index 693418939a8..3e05e14cb7d 100644
--- a/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.H
+++ b/src/randomProcesses/noise/noiseModels/pointNoise/pointNoise.H
@@ -53,15 +53,13 @@ Description
     }
 
     // Pressure data supplied in CSV file format
-    csvFileData
-    {
-        fileName        "pressureData";
-        nHeaderLine     1;
-        refColumn       0;
-        componentColumns (1);
-        separator       " ";
-        mergeSeparators yes;
-    }
+    file            "pressureData";
+    //files           ("pressureData1" "pressureData2");
+    nHeaderLine     1;
+    refColumn       0;
+    componentColumns (1);
+    separator       " ";
+    mergeSeparators yes;
 
     graphFormat     raw;
 
diff --git a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
index b18c7989854..bc8f2a9c452 100644
--- a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
+++ b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
@@ -431,14 +431,14 @@ bool surfaceNoise::read(const dictionary& dict)
 {
     if (noiseModel::read(dict))
     {
-        if (dict.found("inputFile"))
+        if (dict.found("file"))
         {
             inputFileNames_.setSize(1);
-            dict.lookup("inputFile") >> inputFileNames_[0];
+            dict.lookup("file") >> inputFileNames_[0];
         }
         else
         {
-            dict.lookup("inputFiles") >> inputFileNames_;
+            dict.lookup("files") >> inputFileNames_;
         }
 
         dict.readIfPresent("fftWriteInterval", fftWriteInterval_);
diff --git a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.H b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.H
index 6450881d76f..ad7cedebcc0 100644
--- a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.H
+++ b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.H
@@ -53,7 +53,8 @@ Description
     }
 
     // Input file
-    inputFiles  ("postProcessing/faceSource1/surface/patch/patch.case");
+    file            "postProcessing/faceSource1/surface/patch/patch.case";
+    //files           ("postProcessing/faceSource1/surface/patch/patch.case");
 
     // Write interval for FFT data, default = 1
     fftWriteInterval 100;
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4
index ee337c9d88d..656665c4be2 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/CH4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G
index f54721ebf50..ffa38934bca 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/G
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------* \
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2
index 8e6b4ef3eed..3dccc1e4b60 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O
index 2c942fc2bb3..e56f20fb80d 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/H2O
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2
index 80bf599c3a4..d029c250490 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/N2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2 b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2
index c4352714e5d..fb2f7f355e4 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/O2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig
index d9b0ad75dc0..f3cce854953 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/T.orig
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U
index 4252d320cd6..0b16d54effa 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault
index e01bc03ae8a..35b53b5d947 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/Ydefault
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat
index 7650e961ced..2cf1c6fc759 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/alphat
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon
index a0517c2b7bf..17e7f4630bf 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/epsilon
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k
index a22014ff6d4..8c065269a69 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/k
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut
index 07ee7a1334d..1cd5c32cdf2 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/nut
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p
index cc091b2b5b4..22a110564e8 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/0/p
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties
index 72efcb29c16..e229436fc04 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/chemkin/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties
index 4ba701b3175..ebd66c068f9 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test
index 7a9f48c52fb..7a006f61221 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/chemistryProperties.test
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties
index 10c2685eae1..22c8982b779 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/combustionProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g
index a0d7102656f..3402aabaa7f 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties
index 5f586655ac6..92d89e9c296 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/thermophysicalProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties
index 918a286700e..09fccfaecfb 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict
index dad229860f1..cfb49f89b10 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/blockMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
index c9d5097f2c4..f10cc8d6f23 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict
index d53fb5c47b7..5126da72cdc 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes
index 6919893ebbb..2cb5c52feff 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution
index 3bfa1ed389e..d937a09c657 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict
index 3aadbc9a282..a808fcb2809 100644
--- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict
+++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4
index 266a6fb66b0..26427e0dcfb 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CH4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO
index d8dc5e27020..f32cb7939dd 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2
index ffb827a6002..66ee70e11fe 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/CO2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H
index 5628da4739a..373d75dfbc8 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2
index 91ce9d6ce36..4585af1450e 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O
index f073fdf2251..a28807dacf9 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/H2O
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2
index e0cff0b716c..595f14ac02c 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/N2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O
index 0cd957a9844..3a95508a7c9 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2 b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2
index 945a07ed0c3..3ee0311fbf7 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/O2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH
index a679d630675..a0870dc29c4 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/OH
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T
index 535b4924d63..ffdb7c65165 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/T
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U
index 9c65306f61e..242c0f22aac 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault
index 56151abf82a..d479cac82cc 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/Ydefault
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat
index 7978195cbcd..7a1fede2521 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/alphat
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon
index 3fd83330798..284ef09801b 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/epsilon
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k
index 666f8d3ca05..4920ea53430 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/k
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut
index 9b0ff1ec4ca..0cffe17c0f6 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/nut
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p
index 40693ddb5f7..5a6f87e5f61 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/p
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties
index 72efcb29c16..e229436fc04 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/chemkin/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties
index 85b1026eb5d..300acf6da4e 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/chemistryProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties
index 10c2685eae1..22c8982b779 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/combustionProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g
index a0d7102656f..3402aabaa7f 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
index c1ca1d2d7bf..eb695eb6f1b 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties
index 01e2675ba52..ef9ddce1dfa 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/thermophysicalProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties
index 7478c13d60f..1d750d99dd6 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict
index decc462c91d..92054dd8933 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/blockMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
index eb014fbe9c9..2f9597f3bb5 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict
index d53fb5c47b7..5126da72cdc 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes
index 6919893ebbb..2cb5c52feff 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
index 6e2e7422f83..3faa9e2079d 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict
index 1e46d4ea609..b5fb7d735ab 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/sampleDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict
index 9cd02d03626..7c9789f826e 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4
index 15dd5eddf16..ed66886d085 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CH4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2
index 2fef379ec76..ec3c1a2701d 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/CO2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O
index ca227356306..a3f7279667a 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/H2O
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2
index c0af2935811..f8a1a950134 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/N2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2
index 95649fdac4d..745e52c4ea0 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/O2
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T
index 8825b9971cb..bdb6922939f 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/T
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U
index c235ba3d659..27abc498228 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault
index 96004af717f..0f10bbc69e7 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/Ydefault
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat
index c74018bbdb3..925eb73d09b 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/alphat
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p
index d3bca9b21e5..82fd55d35b3 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/0/p
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
index 8cf1ba974aa..66ae29cb45d 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/chemistryProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties
index d5c12209c1d..1182a1bf06d 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/combustionProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
index 8e3adfc37f6..f64aa415695 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermo.compressibleGas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  3.0.x                                 |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties
index 98c192c7cf0..764f5e5626e 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/thermophysicalProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties
index c2c3b28a1b4..5eec0426726 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict
index 3683ab33882..f0f06a591bc 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/blockMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict
index 792dbf2499c..0c956ae21ae 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict
index 43667b412c4..ede2181dfee 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes
index 4eac5336f59..4e9e2d24352 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution
index 46519a5a6c7..d9761be1947 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/surfaceFeatureExtractDict b/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/surfaceFeatureExtractDict
index acb42f991f0..e3aa1a2c222 100644
--- a/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/surfaceFeatureExtractDict
+++ b/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/surfaceFeatureExtractDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T
index 2df93ba37ed..a8beffa394b 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/T
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U
index 99e3c1d6354..c799a42a704 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat
index 3a6625042cc..ef74c232ded 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/alphat
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon
index 71b9c782d16..5b3d2ed84c0 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/epsilon
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k
index 7ee52f8dbfb..8650f473e47 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/k
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut
index ac8d562f40e..10aa185190d 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/nut
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p
index 5e0d23f65fd..6aa8ef0e423 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/0/p
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties
index 426ab721160..7457b64691a 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/thermophysicalProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties
index cd2daf8229b..8fe9b5ed38d 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict
index 9bec6a9547f..adb98d2811f 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/blockMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict
index edddd719e6e..6a458462f03 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict
index 9e844a62ba7..0ab23bff191 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes
index c68f548c95f..111b7b18f79 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution
index 3b30d4ebe5b..b4708c2a17d 100644
--- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution
+++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T
index c244999b75f..e885e3dfe6b 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/T
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U
index f177adb0457..b63f8ae2357 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat
index 7a7fc6662b0..f44e48f31e9 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/alphat
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon
index 481c77b05d6..d7df5d55581 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/epsilon
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k
index 467458896ce..4c4b046e8c4 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/k
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut
index 61af514807d..87448054d79 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/nut
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p
index 17c75e0686b..9b252acbb4d 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh
index e32c495ce7a..821979ea970 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/0/p_rgh
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g
index 0cc222ca345..4702e33f63d 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
index 952c9ece6ea..418b7b75f99 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties
index e5f0e48b92d..73d46b77b79 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict
index e318281fa8e..7c0a440b518 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/blockMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict
index 319b6f02329..2be809aa013 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes
index 3cdd7f274c9..5fc1ef35bdb 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution
index c717012f7af..beb4b89778f 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals
index 9c70f3ea5de..f7dc177e3db 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines
index 60ee32e788e..c165f1efc49 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/streamlines
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U
index 42e8f649aa2..4387ac0d184 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig
index d3dbf1efc60..e40a889cb42 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/alpha.water.orig
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh
index 66d6e43ed1f..c499b0b2c24 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/0/p_rgh
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
index 4d43baaaea0..2a70c8a470c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g
index 508d6584943..c387916ece4 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
index 6c7844de681..a017af1338d 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties
index c2c3b28a1b4..5eec0426726 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict
index 147724902a0..7a84c4d9149 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/blockMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict
index 2f49aae85e7..a2a64dbe15c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes
index 2d0ecbd0e1b..33f70de79d6 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution
index a6cac11063e..decf81d75c6 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict
index b33a98deb0d..86709855c1e 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/meshQualityDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict
index 447b451d9bc..ac65b488cf0 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict
index 767ac928558..4745bb2401d 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/system/snappyHexMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/turbulenceProperties
index c2c3b28a1b4..5eec0426726 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/turbulenceProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/g b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/g
index 9a3b78db7e1..abc20880716 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/g
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/turbulenceProperties
index c2c3b28a1b4..5eec0426726 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/turbulenceProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/turbulenceProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict
index 62f61b73506..4b8c326537f 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSchemes
index 2d0ecbd0e1b..33f70de79d6 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
index 75d6201a3d6..ffe2a08bf1a 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/g b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/g
index 9a3b78db7e1..abc20880716 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/g
+++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict
index 62f61b73506..4b8c326537f 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
-- 
GitLab


From 1f5b9dbbcf03f84c5c87da6dc89909712d7f1e11 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 31 Mar 2017 17:11:30 +0100
Subject: [PATCH 170/277] tutorials/multiphase: Removed unnecessary
 specification of name and dimensions for transport properties

---
 .../interFoam/interMixingFoam/createFields.H  |  2 +-
 .../threePhaseInterfaceProperties.C           |  6 +--
 .../phaseChangeTwoPhaseMixtures/Kunz/Kunz.C   | 10 ++---
 .../Merkle/Merkle.C                           | 10 ++---
 .../SchnerrSauer/SchnerrSauer.C               | 10 ++---
 .../mixerVessel/constant/transportProperties  | 10 ++---
 .../constant/thermophysicalProperties         |  4 +-
 .../constant/transportProperties              | 10 ++---
 .../constant/thermophysicalProperties         | 12 +++---
 .../RAS/DTCHull/constant/transportProperties  | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../nozzleFlow2D/constant/transportProperties | 10 ++---
 .../RAS/DTCHull/constant/transportProperties  | 10 ++---
 .../angledDuct/constant/transportProperties   | 10 ++---
 .../damBreak/constant/transportProperties     | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../waterChannel/constant/transportProperties | 10 ++---
 .../weirOverflow/constant/transportProperties | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../damBreak/constant/transportProperties     | 18 ++++-----
 .../propeller/constant/transportProperties    | 36 ++++++++---------
 .../constant/transportProperties              | 40 +++++++++----------
 32 files changed, 184 insertions(+), 184 deletions(-)

diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
index 5b152b78a7a..5d8a42388a5 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
@@ -40,7 +40,7 @@ const dimensionedScalar& rho1 = mixture.rho1();
 const dimensionedScalar& rho2 = mixture.rho2();
 const dimensionedScalar& rho3 = mixture.rho3();
 
-dimensionedScalar D23(mixture.lookup("D23"));
+dimensionedScalar D23("D23", dimViscosity, mixture);
 
 // Need to store rho for ddt(rho, U)
 volScalarField rho
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
index 9a1c7bc2151..74f45196891 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -168,8 +168,8 @@ Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
             ).lookup("cAlpha")
         )
     ),
-    sigma12_(mixture.lookup("sigma12")),
-    sigma13_(mixture.lookup("sigma13")),
+    sigma12_("sigma12", dimensionSet(1, 0, -2, 0, 0), mixture),
+    sigma13_("sigma13", dimensionSet(1, 0, -2, 0, 0), mixture),
 
     deltaN_
     (
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
index a4663ba4887..74c0ec248b3 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,10 +47,10 @@ Foam::phaseChangeTwoPhaseMixtures::Kunz::Kunz
 :
     phaseChangeTwoPhaseMixture(typeName, U, phi),
 
-    UInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf")),
-    tInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf")),
-    Cc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cc")),
-    Cv_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cv")),
+    UInf_("UInf", dimVelocity, phaseChangeTwoPhaseMixtureCoeffs_),
+    tInf_("tInf", dimTime, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cc_("Cc", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cv_("Cv", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
 
     p0_("0", pSat().dimensions(), 0.0),
 
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
index cfe6b1b0083..853884b7943 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,10 +47,10 @@ Foam::phaseChangeTwoPhaseMixtures::Merkle::Merkle
 :
     phaseChangeTwoPhaseMixture(typeName, U, phi),
 
-    UInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf")),
-    tInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf")),
-    Cc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cc")),
-    Cv_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cv")),
+    UInf_("UInf", dimVelocity, phaseChangeTwoPhaseMixtureCoeffs_),
+    tInf_("tInf", dimTime, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cc_("Cc", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cv_("Cv", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
 
     p0_("0", pSat().dimensions(), 0.0),
 
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
index 3be86e0f518..7f7771cec48 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,10 +54,10 @@ Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::SchnerrSauer
 :
     phaseChangeTwoPhaseMixture(typeName, U, phi),
 
-    n_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("n")),
-    dNuc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("dNuc")),
-    Cc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cc")),
-    Cv_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cv")),
+    n_("n", dimless/dimVolume, phaseChangeTwoPhaseMixtureCoeffs_),
+    dNuc_("dNuc", dimLength, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cc_("Cc", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cv_("Cv", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
 
     p0_("0", pSat().dimensions(), 0.0)
 {
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties
index a1b5e037da4..2f23ef4fcd8 100644
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties
@@ -20,17 +20,17 @@ phases (phase1 phase2);
 phase1
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 300;
+    nu              1e-06;
+    rho             300;
 }
 
 phase2
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-6;
-    rho             [1 -3 0 0 0 0 0] 1027;
+    nu              1e-6;
+    rho             1027;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
index eb43806c074..d066fd0ac3a 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
@@ -17,8 +17,8 @@ FoamFile
 
 phases (water air);
 
-pMin            [1 -1 -2 0 0 0 0] 1000;
+pMin            1000;
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
index f746c067998..6db1662ce40 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties
index 69dc3521df6..9391dc3d779 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties
@@ -17,16 +17,16 @@ FoamFile
 
 phases (water oil mercury air);
 
-pMin            [1 -1 -2 0 0 0 0] 10000;
+pMin            10000;
 
 sigmas
 (
-    (air water) 0.07
-    (air oil) 0.07
-    (air mercury) 0.07
-    (water oil) 0.07
+    (air water)     0.07
+    (air oil)       0.07
+    (air mercury)   0.07
+    (water oil)     0.07
     (water mercury) 0.07
-    (oil mercury) 0.07
+    (oil mercury)   0.07
 );
 
 
diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
index 7e4c459f6a2..c6a95564973 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.09e-06;
-    rho             [1 -3 0 0 0 0 0] 998.8;
+    nu              1.09e-06;
+    rho             998.8;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
index f746c067998..6db1662ce40 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
index 35763b23e72..d01edc3f3e0 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 300;
+    nu              1e-06;
+    rho             300;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-6;
-    rho             [1 -3 0 0 0 0 0] 1027;
+    nu              1e-6;
+    rho             1027;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
index 577be61a90e..1926605ca93 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
index 6c7844de681..8fa813d379d 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
index e0fdefd56e4..daec936b732 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
index f746c067998..6db1662ce40 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
index e0fdefd56e4..daec936b732 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
index f746c067998..6db1662ce40 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
index e0fdefd56e4..daec936b732 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
index f746c067998..6db1662ce40 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
index d3ee304bc3d..82859f78f8e 100644
--- a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
@@ -20,17 +20,17 @@ phases (fuel air);
 fuel
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 5.952e-06;
-    rho             [1 -3 0 0 0 0 0] 840;
+    nu              5.952e-06;
+    rho             840;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 8.5e-07;
-    rho             [1 -3 0 0 0 0 0] 20;
+    nu              8.5e-07;
+    rho             20;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.0261;
+sigma           0.0261;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
index 7e4c459f6a2..c6a95564973 100644
--- a/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.09e-06;
-    rho             [1 -3 0 0 0 0 0] 998.8;
+    nu              1.09e-06;
+    rho             998.8;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
index 577be61a90e..1926605ca93 100644
--- a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
index 577be61a90e..1926605ca93 100644
--- a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
index 577be61a90e..1926605ca93 100644
--- a/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
index 4c569fe731c..1926605ca93 100644
--- a/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
index 577be61a90e..1926605ca93 100644
--- a/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties
index 5d558910509..19e03c6ee29 100644
--- a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.0707106;
+sigma           0.0707106;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
index 63f9f40e967..cedd954f73e 100644
--- a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water oir);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-4;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-4;
+    rho             1000;
 }
 
 oir
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-4;
-    rho             [1 -3 0 0 0 0 0] 500;
+    nu              1e-4;
+    rho             500;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.05;
+sigma           0.05;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
index 307bc1aba94..24172f6ba1d 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
@@ -20,29 +20,29 @@ phases (air other water);
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
 other
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1e-6;
-    rho             [1 -3 0 0 0 0 0] 1010;
+    nu              1e-6;
+    rho             1010;
 }
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1e-6;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-6;
+    rho             1000;
 }
 
 // Surface tension coefficients
-sigma12           sigma12 [1 0 -2 0 0 0 0] 0.05;
-sigma13           sigma13 [1 0 -2 0 0 0 0] 0.04;
+sigma12         0.05;
+sigma13         0.04;
 
 // Diffusivity between miscible phases
-D23               D23   [0 2 -1 0 0 0 0]  3e-09;
+D23             3e-09;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties
index d3523579d45..bcab66481c3 100644
--- a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties
+++ b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties
@@ -19,46 +19,46 @@ phases (water vapour);
 
 phaseChangeTwoPhaseMixture SchnerrSauer;
 
-pSat            [1 -1 -2 0 0 0 0] 2300;   // Saturation pressure
+pSat            2300;   // Saturation pressure
 
-sigma           [1 0 -2 0 0 0 0]  0.07;
+sigma           0.07;
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 9e-07;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              9e-07;
+    rho             1000;
 }
 
 vapour
 {
     transportModel Newtonian;
-    nu              [0 2 -1 0 0 0 0] 4.273e-04;
-    rho             [1 -3 0 0 0 0 0] 0.02308;
+    nu              4.273e-04;
+    rho             0.02308;
 }
 
 KunzCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005; // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      1000;
-    Cv              Cv     [0 0 0 0 0 0 0]      1000;
+    UInf            20.0;
+    tInf            0.005; // L = 0.1 m
+    Cc              1000;
+    Cv              1000;
 }
 
 MerkleCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005;  // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      80;
-    Cv              Cv     [0 0 0 0 0 0 0]      1e-03;
+    UInf            20.0;
+    tInf            0.005;  // L = 0.1 m
+    Cc              80;
+    Cv              1e-03;
 }
 
 SchnerrSauerCoeffs
 {
-    n               n      [0 -3 0 0 0 0 0]     1.6e+13;
-    dNuc            dNuc   [0 1 0 0 0 0 0]      2.0e-06;
-    Cc              Cc     [0 0 0 0 0 0 0]      1;
-    Cv              Cv     [0 0 0 0 0 0 0]      1;
+    n               1.6e+13;
+    dNuc            2.0e-06;
+    Cc              1;
+    Cv              1;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties
index e5342b55c66..ec41a9b5a93 100644
--- a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties
+++ b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties
@@ -18,46 +18,46 @@ phases (water vapour);
 
 phaseChangeTwoPhaseMixture SchnerrSauer;
 
-pSat            [1 -1 -2 0 0 0 0] 2300;   // Saturation pressure
+pSat            2300;   // Saturation pressure
 
-sigma           [1 0 -2 0 0 0 0]  0.07;
+sigma           0.07;
 
 water
 {
-    transportModel Newtonian;
-    nu              [0 2 -1 0 0 0 0] 9e-07;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    transportModel  Newtonian;
+    nu              9e-07;
+    rho             1000;
 }
 
 vapour
 {
-    transportModel Newtonian;
-    nu              [0 2 -1 0 0 0 0] 4.273e-04;
-    rho             [1 -3 0 0 0 0 0] 0.02308;
+    transportModel  Newtonian;
+    nu              4.273e-04;
+    rho             0.02308;
 }
 
 KunzCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005; // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      1000;
-    Cv              Cv     [0 0 0 0 0 0 0]      1000;
+    UInf            U20.0;
+    tInf            t0.005; // L = 0.1 m
+    Cc              C1000;
+    Cv              C1000;
 }
 
 MerkleCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005;  // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      80;
-    Cv              Cv     [0 0 0 0 0 0 0]      1e-03;
+    UInf            20.0;
+    tInf            0.005;  // L = 0.1 m
+    Cc              80;
+    Cv              1e-03;
 }
 
 SchnerrSauerCoeffs
 {
-    n               n      [0 -3 0 0 0 0 0]     1.6e+13;
-    dNuc            dNuc   [0 1 0 0 0 0 0]      2.0e-06;
-    Cc              Cc     [0 0 0 0 0 0 0]      1;
-    Cv              Cv     [0 0 0 0 0 0 0]      1;
+    n               1.6e+13;
+    dNuc            2.0e-06;
+    Cc              1;
+    Cv              1;
 }
 
 
-- 
GitLab


From 2b31d91a787d1529c0fb1604b00ef23b18950fda Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 31 Mar 2017 20:46:03 +0100
Subject: [PATCH 171/277] functionObjects:functionObjects:: Corrected
 documentation

---
 .../field/fieldAverage/fieldAverage.H         | 35 ++++++++-----------
 1 file changed, 14 insertions(+), 21 deletions(-)

diff --git a/src/functionObjects/field/fieldAverage/fieldAverage.H b/src/functionObjects/field/fieldAverage/fieldAverage.H
index 850f6f72a8c..7d874a62b35 100644
--- a/src/functionObjects/field/fieldAverage/fieldAverage.H
+++ b/src/functionObjects/field/fieldAverage/fieldAverage.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,27 +34,20 @@ Description
     Fields are entered as a list of sub-dictionaries, which indicate the type of
     averages to perform, and can be updated during the calculation.  The current
     options include:
-    - \c mean: arithmetic mean:
-        \f[
-            \overline{x} = \frac{1}{N}\displaystyle\sum\limits_{i=0}^N x_i
-        \f]
+    - \c mean: arithmetic mean
     - \c prime2Mean: prime-squared mean
-        \f[
-            \overline{x'}^2 = \frac{1}{N}\displaystyle\sum\limits_{i=0}^N
-            (x_i - \overline{x})^2
-        \f]
-    - base: average over 'time', or 'iteration' (\f$N\f$ in the above)
-    - window: optional averaging window, specified in 'base' units
+    - \c base: average over 'time', or 'iteration'
+    - \c window: optional averaging window, specified in 'base' units
 
     Average field names are constructed by concatenating the base field with
     the averaging type, e.g. when averaging field 'U', the resultant fields
     are:
-    - arithmetic mean field, UMean
-    - prime-squared field, UPrime2Mean
+    - arithmetic mean field, \c UMean
+    - prime-squared field, \c UPrime2Mean
 
     Information regarding the number of averaging steps, and total averaging
-    time are written on a per-field basis to the
-    \c "<functionObject name>Properties" dictionary, located in \<time\>/uniform
+    time are written on a per-field basis to the \c "<functionObject
+    name>Properties" dictionary, located in \<time\>/uniform
 
     When restarting form a previous calculation, the averaging is continuous or
     may be restarted using the \c restartOnRestart option.
@@ -100,12 +93,12 @@ Description
 
 Usage
     \table
-        Property          | Description           | Required    | Default value
-        type              | type name: fieldAverage | yes |
-        restartOnRestart  | Restart the averaging on restart | no | no
-        restartOnOutput   | Restart the averaging on output | no | no
-        periodicRestart   | Periodically restart the averaging | no | no
-        restartPeriod     | Periodic restart period | conditional |
+        Property          | Description               | Required | Default
+        type              | type name: fieldAverage              | yes |
+        restartOnRestart  | Restart the averaging on restart     | no  | no
+        restartOnOutput   | Restart the averaging on output      | no  | no
+        periodicRestart   | Periodically restart the averaging   | no  | no
+        restartPeriod     | Periodic restart period              | conditional |
         fields            | list of fields and averaging options | yes |
     \endtable
 
-- 
GitLab


From a067151810727d3a63aa535e9f9fd7347a90cd93 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 31 Mar 2017 20:46:52 +0100
Subject: [PATCH 172/277] surfaceFilmModels::contactAngleForce: Use of boundary
 values of surface tension and contact angle

---
 .../contactAngleForce/contactAngleForce.C     | 29 ++++++++++---------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
index c91d299eb47..abd10960629 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
@@ -27,7 +27,6 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "fvcGrad.H"
 #include "unitConversion.H"
-#include "fvPatchField.H"
 #include "meshWavePatchDistMethod.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -188,25 +187,27 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
     {
         if (!filmModel_.isCoupledPatch(patchi))
         {
-            const fvPatchField<scalar>& alphaf = alpha.boundaryField()[patchi];
-            const fvPatchField<scalar>& maskf = mask_.boundaryField()[patchi];
-            const scalarField& invDx = alphaf.patch().deltaCoeffs();
-            const labelUList& faceCells = alphaf.patch().faceCells();
-
-            forAll(alphaf, facei)
+            const fvPatchField<scalar>& alphaPf = alpha.boundaryField()[patchi];
+            const fvPatchField<scalar>& maskPf = mask_.boundaryField()[patchi];
+            const fvPatchField<scalar>& sigmaPf = sigma.boundaryField()[patchi];
+            const fvPatchField<scalar>& thetaPf = theta.boundaryField()[patchi];
+            const scalarField& invDx = alphaPf.patch().deltaCoeffs();
+            const labelUList& faceCells = alphaPf.patch().faceCells();
+
+            forAll(alphaPf, facei)
             {
-                if (maskf[facei] > 0.5)
+                if (maskPf[facei] > 0.5)
                 {
                     label cellO = faceCells[facei];
 
-                    if ((alpha[cellO] > 0.5) && (alphaf[facei] < 0.5))
+                    if ((alpha[cellO] > 0.5) && (alphaPf[facei] < 0.5))
                     {
                         const vector n =
                             gradAlpha[cellO]
                            /(mag(gradAlpha[cellO]) + ROOTVSMALL);
-                        const scalar cosTheta = cos(degToRad(theta[cellO]));
+                        const scalar cosTheta = cos(degToRad(thetaPf[facei]));
                         force[cellO] +=
-                            Ccf_*n*sigma[cellO]*(1 - cosTheta)/invDx[facei];
+                            Ccf_*n*sigmaPf[facei]*(1 - cosTheta)/invDx[facei];
                     }
                 }
             }
@@ -220,8 +221,10 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
         tForce().write();
     }
 
-    tmp<fvVectorMatrix>
-        tfvm(new fvVectorMatrix(U, dimForce/dimArea*dimVolume));
+    tmp<fvVectorMatrix> tfvm
+    (
+        new fvVectorMatrix(U, dimForce/dimArea*dimVolume)
+    );
 
     tfvm.ref() += tForce;
 
-- 
GitLab


From dd1ca3302e8de4edc8a5dbc45940e6a614f9dcf1 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 31 Mar 2017 22:33:41 +0100
Subject: [PATCH 173/277] surfaceFilmModels::contactAngleForces: Provide empty
 list default value for zeroForcePatches

---
 .../contactAngleForces/contactAngleForce/contactAngleForce.C | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
index abd10960629..957b571e495 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
@@ -46,7 +46,10 @@ defineTypeNameAndDebug(contactAngleForce, 0);
 
 void contactAngleForce::initialise()
 {
-    const wordReList zeroForcePatches(coeffDict_.lookup("zeroForcePatches"));
+    const wordReList zeroForcePatches
+    (
+        coeffDict_.lookupOrDefault<wordReList>("zeroForcePatches", wordReList())
+    );
 
     if (zeroForcePatches.size())
     {
-- 
GitLab


From 08f6f78471d22c2073755b2e54903a0b536ff1d0 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 31 Mar 2017 22:34:47 +0100
Subject: [PATCH 174/277] chemistrySolver::EulerImplicit: Corrected
 thermodynamics update to mass basis

Resolves bug-report https://bugs.openfoam.org/view.php?id=2513
---
 .../EulerImplicit/EulerImplicit.C             | 54 ++++++++-----------
 1 file changed, 22 insertions(+), 32 deletions(-)

diff --git a/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C b/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C
index 2b52c0a7cf1..70db6c7564e 100644
--- a/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C
+++ b/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -72,16 +72,16 @@ void Foam::EulerImplicit<ChemistryModel>::updateRRInReactionI
 
     forAll(R.lhs(), s)
     {
-        label si = R.lhs()[s].index;
-        scalar sl = R.lhs()[s].stoichCoeff;
+        const label si = R.lhs()[s].index;
+        const scalar sl = R.lhs()[s].stoichCoeff;
         RR[si][rRef] -= sl*pr*corr;
         RR[si][lRef] += sl*pf*corr;
     }
 
     forAll(R.rhs(), s)
     {
-        label si = R.rhs()[s].index;
-        scalar sr = R.rhs()[s].stoichCoeff;
+        const label si = R.rhs()[s].index;
+        const scalar sr = R.rhs()[s].stoichCoeff;
         RR[si][lRef] -= sr*pf*corr;
         RR[si][rRef] += sr*pr*corr;
     }
@@ -103,40 +103,40 @@ void Foam::EulerImplicit<ChemistryModel>::solve
 
     for (label i=0; i<nSpecie; i++)
     {
-        c[i] = max(0.0, c[i]);
+        c[i] = max(0, c[i]);
     }
 
     // Calculate the absolute enthalpy
-    scalar cTot = sum(c);
+    const scalar cTot = sum(c);
     typename ChemistryModel::thermoType mixture
     (
-        (c[0]/cTot)*this->specieThermo_[0]
+        (this->specieThermo_[0].W()*c[0])*this->specieThermo_[0]
     );
     for (label i=1; i<nSpecie; i++)
     {
-        mixture += (c[i]/cTot)*this->specieThermo_[i];
+        mixture += (this->specieThermo_[i].W()*c[i])*this->specieThermo_[i];
     }
-    scalar ha = mixture.Ha(p, T);
-
-    scalar deltaTEst = min(deltaT, subDeltaT);
+    const scalar ha = mixture.Ha(p, T);
+    const scalar deltaTEst = min(deltaT, subDeltaT);
 
     forAll(this->reactions(), i)
     {
         scalar pf, cf, pr, cr;
         label lRef, rRef;
 
-        scalar omegai = this->omegaI(i, c, T, p, pf, cf, lRef, pr, cr, rRef);
+        const scalar omegai =
+            this->omegaI(i, c, T, p, pf, cf, lRef, pr, cr, rRef);
 
-        scalar corr = 1.0;
+        scalar corr = 1;
         if (eqRateLimiter_)
         {
-            if (omegai < 0.0)
+            if (omegai < 0)
             {
-                corr = 1.0/(1.0 + pr*deltaTEst);
+                corr = 1/(1 + pr*deltaTEst);
             }
             else
             {
-                corr = 1.0/(1.0 + pf*deltaTEst);
+                corr = 1/(1 + pf*deltaTEst);
             }
         }
 
@@ -161,7 +161,7 @@ void Foam::EulerImplicit<ChemistryModel>::solve
         else
         {
             d = max(d, SMALL);
-            scalar cm = max(cTot - c[i], 1.0e-5);
+            const scalar cm = max(cTot - c[i], 1e-5);
             tMin = min(tMin, cm/d);
         }
     }
@@ -172,7 +172,7 @@ void Foam::EulerImplicit<ChemistryModel>::solve
     // Add the diagonal and source contributions from the time-derivative
     for (label i=0; i<nSpecie; i++)
     {
-        RR(i, i) += 1.0/deltaT;
+        RR(i, i) += 1/deltaT;
         RR.source()[i] = c[i]/deltaT;
     }
 
@@ -182,26 +182,16 @@ void Foam::EulerImplicit<ChemistryModel>::solve
     // Limit the composition
     for (label i=0; i<nSpecie; i++)
     {
-        c[i] = max(0.0, c[i]);
+        c[i] = max(0, c[i]);
     }
 
     // Update the temperature
-    cTot = sum(c);
-    mixture = (c[0]/cTot)*this->specieThermo_[0];
+    mixture = (this->specieThermo_[0].W()*c[0])*this->specieThermo_[0];
     for (label i=1; i<nSpecie; i++)
     {
-        mixture += (c[i]/cTot)*this->specieThermo_[i];
+        mixture += (this->specieThermo_[i].W()*c[i])*this->specieThermo_[i];
     }
     T = mixture.THa(ha, p, T);
-
-    /*
-    for (label i=0; i<nSpecie; i++)
-    {
-        cTp_[i] = c[i];
-    }
-    cTp_[nSpecie] = T;
-    cTp_[nSpecie+1] = p;
-    */
 }
 
 
-- 
GitLab


From c164e91b0acdb5b69ddd5e22ffbc40542d992c6a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 4 Apr 2017 00:09:38 +0100
Subject: [PATCH 175/277] 
 surfaceFilmModels::perturbedTemperatureDependentContactAngleForce: New
 contact angle model

Combining a Function1 temperature dependency with a distributionModel stochastic
perturbation.
---
 .../miscellaneous/pdfPlot/createFields.H      |   4 +-
 .../fvScalarMatrix/fvScalarMatrix.C           |   4 +-
 .../distributionModel/distributionModel.C     |  17 +--
 .../distributionModel/distributionModel.H     |   5 +-
 .../distributionModel/distributionModelNew.C  |   5 +-
 .../CellZoneInjection/CellZoneInjection.C     |   4 +-
 .../CellZoneInjection/CellZoneInjection.H     |   4 +-
 .../ConeInjection/ConeInjection.C             |   4 +-
 .../ConeInjection/ConeInjection.H             |   4 +-
 .../ConeNozzleInjection/ConeNozzleInjection.C |   2 +-
 .../ConeNozzleInjection/ConeNozzleInjection.H |   4 +-
 .../FieldActivatedInjection.C                 |   4 +-
 .../FieldActivatedInjection.H                 |   4 +-
 .../InflationInjection/InflationInjection.C   |   2 +-
 .../InflationInjection/InflationInjection.H   |   4 +-
 .../ManualInjection/ManualInjection.C         |   4 +-
 .../ManualInjection/ManualInjection.H         |   4 +-
 .../PatchFlowRateInjection.C                  |   4 +-
 .../PatchFlowRateInjection.H                  |   4 +-
 .../PatchInjection/PatchInjection.C           |   4 +-
 .../PatchInjection/PatchInjection.H           |   4 +-
 src/regionModels/surfaceFilmModels/Make/files |   1 +
 .../distributionContactAngleForce.C           |   2 +-
 .../distributionContactAngleForce.H           |   6 +-
 ...bedTemperatureDependentContactAngleForce.C | 139 ++++++++++++++++++
 ...bedTemperatureDependentContactAngleForce.H | 134 +++++++++++++++++
 .../temperatureDependentContactAngleForce.H   |   4 +-
 .../drippingInjection/drippingInjection.C     |   2 +-
 .../drippingInjection/drippingInjection.H     |   2 +-
 29 files changed, 326 insertions(+), 59 deletions(-)
 create mode 100644 src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
 create mode 100644 src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H

diff --git a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
index 767d626880e..4fc525a3a94 100644
--- a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
+++ b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
@@ -22,9 +22,9 @@
 
     cachedRandom rndGen(label(0), -1);
 
-    autoPtr<distributionModels::distributionModel> p
+    autoPtr<distributionModel> p
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             pdfDictionary,
             rndGen
diff --git a/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C b/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C
index b6dc0fe45a7..e8d1b6d68b1 100644
--- a/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -109,7 +109,7 @@ Foam::solverPerformance Foam::fvMatrix<Foam::scalar>::fvSolver::solve
     scalarField totalSource(fvMat_.source());
     fvMat_.addBoundarySource(totalSource, false);
 
-    // assign new solver controls
+    // Assign new solver controls
     solver_->read(solverControls);
 
     solverPerformance solverPerf = solver_->solve
diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModel.C b/src/lagrangian/distributionModels/distributionModel/distributionModel.C
index af5aa745cb8..a6786f743d5 100644
--- a/src/lagrangian/distributionModels/distributionModel/distributionModel.C
+++ b/src/lagrangian/distributionModels/distributionModel/distributionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,17 +29,14 @@ License
 
 namespace Foam
 {
-    namespace distributionModels
-    {
-        defineTypeNameAndDebug(distributionModel, 0);
-        defineRunTimeSelectionTable(distributionModel, dictionary);
-    }
+    defineTypeNameAndDebug(distributionModel, 0);
+    defineRunTimeSelectionTable(distributionModel, dictionary);
 }
 
 
 // * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
 
-void Foam::distributionModels::distributionModel::check() const
+void Foam::distributionModel::check() const
 {
     if (minValue() < 0)
     {
@@ -62,7 +59,7 @@ void Foam::distributionModels::distributionModel::check() const
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::distributionModels::distributionModel::distributionModel
+Foam::distributionModel::distributionModel
 (
     const word& name,
     const dictionary& dict,
@@ -74,7 +71,7 @@ Foam::distributionModels::distributionModel::distributionModel
 {}
 
 
-Foam::distributionModels::distributionModel::distributionModel
+Foam::distributionModel::distributionModel
 (
     const distributionModel& p
 )
@@ -86,7 +83,7 @@ Foam::distributionModels::distributionModel::distributionModel
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::distributionModels::distributionModel::~distributionModel()
+Foam::distributionModel::~distributionModel()
 {}
 
 
diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModel.H b/src/lagrangian/distributionModels/distributionModel/distributionModel.H
index 5e712e10eca..04ab6934821 100644
--- a/src/lagrangian/distributionModels/distributionModel/distributionModel.H
+++ b/src/lagrangian/distributionModels/distributionModel/distributionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,8 +61,6 @@ SourceFiles
 
 namespace Foam
 {
-namespace distributionModels
-{
 
 /*---------------------------------------------------------------------------*\
                      Class distributionModel Declaration
@@ -155,7 +153,6 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace distributionModels
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C b/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C
index fabb796e0b6..c06f65e01e0 100644
--- a/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C
+++ b/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -27,8 +27,7 @@ License
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::distributionModels::distributionModel>
-Foam::distributionModels::distributionModel::New
+Foam::autoPtr<Foam::distributionModel> Foam::distributionModel::New
 (
     const dictionary& dict,
     cachedRandom& rndGen
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C
index 07ec1e9b26d..90bb3c70314 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -179,7 +179,7 @@ Foam::CellZoneInjection<CloudType>::CellZoneInjection
     U0_(this->coeffDict().lookup("U0")),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
         )
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H
index be21d3f5ece..f5fd6665379 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,7 +89,7 @@ class CellZoneInjection
         const vector U0_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
     // Private Member Functions
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
index 88c30c6e0e2..6498de08f2d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -88,7 +88,7 @@ Foam::ConeInjection<CloudType>::ConeInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
         )
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
index 9cd2a829f55..60228dd1495 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,7 +97,7 @@ class ConeInjection
         const TimeFunction1<scalar> thetaOuter_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
         //- Number of parcels per injector already injected
         mutable label nInjected_;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
index 4649b7a7d69..06026be6e67 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
@@ -146,7 +146,7 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
index 1ccce9208e8..abcca10153f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -149,7 +149,7 @@ private:
         const TimeFunction1<scalar> thetaOuter_;
 
         //- Parcel size PDF model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
         // Tangential vectors to the direction vector
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
index 94c25b01c8e..7a0a2ff8429 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,7 +79,7 @@ Foam::FieldActivatedInjection<CloudType>::FieldActivatedInjection
     diameters_(positions_.size()),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
index 85974580629..8190da2fa88 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -111,7 +111,7 @@ class FieldActivatedInjection
             scalarList diameters_;
 
             //- Parcel size distribution model
-            const autoPtr<distributionModels::distributionModel>
+            const autoPtr<distributionModel>
                 sizeDistribution_;
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
index d0f697955bb..d104eb83883 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
@@ -72,7 +72,7 @@ Foam::InflationInjection<CloudType>::InflationInjection
     dSeed_(SMALL),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H
index e2248282d58..3cd11f6476b 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,7 +108,7 @@ class InflationInjection
         scalar dSeed_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
 public:
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
index 21fc2471f66..60895201d45 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,7 +59,7 @@ Foam::ManualInjection<CloudType>::ManualInjection
     U0_(this->coeffDict().lookup("U0")),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
index d8789a96463..193d01e471f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,7 +86,7 @@ class ManualInjection
         const vector U0_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
         //- Flag to suppress errors if particle injection site is out-of-bounds
         Switch ignoreOutOfBounds_;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C
index 01873a3091d..87842710bac 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -59,7 +59,7 @@ Foam::PatchFlowRateInjection<CloudType>::PatchFlowRateInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H
index 9df1aac0b99..98367b8581a 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,7 +86,7 @@ class PatchFlowRateInjection
         const scalar parcelConcentration_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
 public:
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C
index b73c4c0d749..6fe472c8ece 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::PatchInjection<CloudType>::PatchInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H
index 61ce2c971db..bbd9e773413 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,7 +84,7 @@ class PatchInjection
         const TimeFunction1<scalar> flowRateProfile_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
 public:
diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files
index 236a1c2d958..f53e0a03898 100644
--- a/src/regionModels/surfaceFilmModels/Make/files
+++ b/src/regionModels/surfaceFilmModels/Make/files
@@ -16,6 +16,7 @@ $(KINEMATICMODELS)/force/forceList/forceList.C
 $(KINEMATICMODELS)/force/contactAngleForces/contactAngleForce/contactAngleForce.C
 $(KINEMATICMODELS)/force/contactAngleForces/distribution/distributionContactAngleForce.C
 $(KINEMATICMODELS)/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
+$(KINEMATICMODELS)/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
 $(KINEMATICMODELS)/force/thermocapillaryForce/thermocapillaryForce.C
 
 $(KINEMATICMODELS)/injectionModel/injectionModel/injectionModel.C
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
index c4195ad2b52..85333cc828e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
@@ -53,7 +53,7 @@ distributionContactAngleForce::distributionContactAngleForce
     rndGen_(label(0), -1),
     distribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             coeffDict_.subDict("distribution"),
             rndGen_
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
index 508b66ad6c4..2a0ace4303e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
@@ -29,7 +29,7 @@ Description
 
 See also
     Foam::regionModels::surfaceFilmModels::contactAngleForce
-    Foam::distributionModels::distributionModel
+    Foam::distributionModel
 
 SourceFiles
     distributionContactAngleForce.C
@@ -53,7 +53,7 @@ namespace surfaceFilmModels
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class distributionContactAngleForce Declaration
+                Class distributionContactAngleForce Declaration
 \*---------------------------------------------------------------------------*/
 
 class distributionContactAngleForce
@@ -66,7 +66,7 @@ class distributionContactAngleForce
         cachedRandom rndGen_;
 
         //- Parcel size PDF model
-        const autoPtr<distributionModels::distributionModel> distribution_;
+        const autoPtr<distributionModel> distribution_;
 
 
     // Private member functions
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
new file mode 100644
index 00000000000..62ffeba4f93
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
@@ -0,0 +1,139 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "perturbedTemperatureDependentContactAngleForce.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(perturbedTemperatureDependentContactAngleForce, 0);
+addToRunTimeSelectionTable
+(
+    force,
+    perturbedTemperatureDependentContactAngleForce,
+    dictionary
+);
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+perturbedTemperatureDependentContactAngleForce::
+perturbedTemperatureDependentContactAngleForce
+(
+    surfaceFilmModel& film,
+    const dictionary& dict
+)
+:
+    contactAngleForce(typeName, film, dict),
+    thetaPtr_(Function1<scalar>::New("theta", coeffDict_)),
+    rndGen_(label(0), -1),
+    distribution_
+    (
+        distributionModel::New
+        (
+            coeffDict_.subDict("distribution"),
+            rndGen_
+        )
+    )
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+perturbedTemperatureDependentContactAngleForce::
+~perturbedTemperatureDependentContactAngleForce()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+tmp<volScalarField>
+perturbedTemperatureDependentContactAngleForce::theta() const
+{
+    tmp<volScalarField> ttheta
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                typeName + ":theta",
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh()
+            ),
+            filmModel_.regionMesh(),
+            dimensionedScalar("0", dimless, 0)
+        )
+    );
+
+    volScalarField& theta = ttheta.ref();
+    volScalarField::Internal& thetai = theta.ref();
+
+    const volScalarField& T = filmModel_.T();
+
+    // Initialize with the function of temperature
+    thetai.field() = thetaPtr_->value(T());
+
+    // Add the stochastic perturbation
+    forAll(thetai, celli)
+    {
+        thetai[celli] += distribution_->sample();
+    }
+
+    forAll(theta.boundaryField(), patchi)
+    {
+        if (!filmModel_.isCoupledPatch(patchi))
+        {
+            fvPatchField<scalar>& thetaf = theta.boundaryFieldRef()[patchi];
+
+            // Initialize with the function of temperature
+            thetaf = thetaPtr_->value(T.boundaryField()[patchi]);
+
+            // Add the stochastic perturbation
+            forAll(thetaf, facei)
+            {
+                thetaf[facei] += distribution_->sample();
+            }
+        }
+    }
+
+    return ttheta;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H
new file mode 100644
index 00000000000..00dddb25777
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H
@@ -0,0 +1,134 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::regionModels::surfaceFilmModels::
+        perturbedTemperatureDependentContactAngleForce
+
+Description
+    Temperature dependent contact angle force with a stochastic perturbation
+
+    The contact angle in degrees is specified as a Foam::Function1 type, to
+    enable the use of, e.g.  contant, polynomial, table values and the
+    stochastic perturbation obtained from a
+    Foam::distributionModels::distributionModel
+
+See also
+    Foam::regionModels::surfaceFilmModels::contactAngleForce
+    Foam::regionModels::surfaceFilmModels::temperatureDependentContactAngleForce
+    Foam::regionModels::surfaceFilmModels::distributionContactAngleForce
+    Foam::Function1Types
+    Foam::distributionModel
+
+SourceFiles
+    perturbedTemperatureDependentContactAngleForce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef perturbedTemperatureDependentContactAngleForce_H
+#define perturbedTemperatureDependentContactAngleForce_H
+
+#include "contactAngleForce.H"
+#include "Function1.H"
+#include "distributionModel.H"
+#include "cachedRandom.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+       Class perturbedTemperatureDependentContactAngleForce Declaration
+\*---------------------------------------------------------------------------*/
+
+class perturbedTemperatureDependentContactAngleForce
+:
+    public contactAngleForce
+{
+    // Private Data
+
+        //- Contact angle function
+        autoPtr<Function1<scalar>> thetaPtr_;
+
+        //- Random number generator
+        cachedRandom rndGen_;
+
+        //- Parcel size PDF model
+        const autoPtr<distributionModel> distribution_;
+
+
+    // Private member functions
+
+        //- Disallow default bitwise copy construct
+        perturbedTemperatureDependentContactAngleForce
+        (
+            const perturbedTemperatureDependentContactAngleForce&
+        );
+
+        //- Disallow default bitwise assignment
+        void operator=(const perturbedTemperatureDependentContactAngleForce&);
+
+
+protected:
+
+        //- Return the contact angle field
+        virtual tmp<volScalarField> theta() const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("perturbedTemperatureDependentContactAngle");
+
+
+    // Constructors
+
+        //- Construct from surface film model
+        perturbedTemperatureDependentContactAngleForce
+        (
+            surfaceFilmModel& film,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~perturbedTemperatureDependentContactAngleForce();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
index 780b2b32884..ca15ec0c6ab 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
@@ -27,7 +27,7 @@ Class
 Description
     Temperature dependent contact angle force
 
-    The contact angle in degrees is specified as a \c Function1 type, to
+    The contact angle in degrees is specified as a Foam::Function1 type, to
     enable the use of, e.g.  contant, polynomial, table values.
 
 See also
@@ -55,7 +55,7 @@ namespace surfaceFilmModels
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class temperatureDependentContactAngleForce Declaration
+            Class temperatureDependentContactAngleForce Declaration
 \*---------------------------------------------------------------------------*/
 
 class temperatureDependentContactAngleForce
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
index 47559956da8..cfd6d408f01 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
@@ -60,7 +60,7 @@ drippingInjection::drippingInjection
     rndGen_(label(0), -1),
     parcelDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             coeffDict_.subDict("parcelDistribution"),
             rndGen_
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
index c6bc895c3a5..af9583bf22a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
@@ -87,7 +87,7 @@ protected:
         cachedRandom rndGen_;
 
         //- Parcel size PDF model
-        const autoPtr<distributionModels::distributionModel>
+        const autoPtr<distributionModel>
             parcelDistribution_;
 
         //- Diameters of particles to inject into the dripping
-- 
GitLab


From ede46c3caebfe201bf8364aef7082e8e9d352f13 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Tue, 4 Apr 2017 10:47:04 +0100
Subject: [PATCH 176/277] template cases: added pre-commented external patches
 to blockMeshDict

Uncommenting the patches provides a convenient way to use the patches in the background mesh
to define the external boundary of the final mesh.  Replaces previous setup with a separate
blockMeshDict.extPatches file.
---
 .../compressibleInflowOutflow/README          |  14 +-
 .../system/blockMeshDict                      |  55 ++++++++
 .../system/blockMeshDict.extPatches           | 121 ------------------
 etc/templates/inflowOutflow/README            |  14 +-
 .../inflowOutflow/system/blockMeshDict        |  55 ++++++++
 .../system/blockMeshDict.extPatches           | 121 ------------------
 6 files changed, 118 insertions(+), 262 deletions(-)
 delete mode 100644 etc/templates/compressibleInflowOutflow/system/blockMeshDict.extPatches
 delete mode 100644 etc/templates/inflowOutflow/system/blockMeshDict.extPatches

diff --git a/etc/templates/compressibleInflowOutflow/README b/etc/templates/compressibleInflowOutflow/README
index 780ced00690..33306e9fc1b 100644
--- a/etc/templates/compressibleInflowOutflow/README
+++ b/etc/templates/compressibleInflowOutflow/README
@@ -12,19 +12,13 @@ Background Mesh
 ===============
 + The user should establish the bounds of their CAD.obj file
 + The blockMeshDict file contains a backgroundMesh subditionary
-+ Set xMin, xMax, etc to be beyond the CAD.obj bounds
++ For internal flows, where CAD.obj describes the external boundary, set xMin,
+  xMax, etc to be beyond the CAD.obj bounds
++ For external flows, the background mesh can define the external boundary by
+  uncommenting entries, e.g. inlet, in the boundary section of blockMeshDict
 + Set background mesh density with xCells, yCells, zCells
 + Run blockMesh
 
-Background Mesh (alternative)
-=============================
-+ The user can adopt the background mesh patches in the mesh
-+ For example, the background mesh can provide external patches of an external
-  flow
-+ An alternative blockMeshDict file is set up for this: blockMeshDict.extPatches
-+ Simply copy blockMeshDict.extPatches to blockMeshDict and edit inlet, outlet
-  patches accordingly
-
 Castellated Mesh
 ================
 + In the snappyHexMeshDict file, replace <inletPatch> with the name of the inlet
diff --git a/etc/templates/compressibleInflowOutflow/system/blockMeshDict b/etc/templates/compressibleInflowOutflow/system/blockMeshDict
index de6aabcfd15..f72145d4bb0 100644
--- a/etc/templates/compressibleInflowOutflow/system/blockMeshDict
+++ b/etc/templates/compressibleInflowOutflow/system/blockMeshDict
@@ -59,6 +59,61 @@ edges
 
 boundary
 (
+/*
+    left
+    {
+        type patch;
+        faces
+        (
+            (0 3 7 4)
+        );
+    }
+
+    right
+    {
+        type patch;
+        faces
+        (
+            (1 5 6 2)
+        );
+    }
+
+    bottom
+    {
+        type patch;
+        faces
+        (
+            (0 1 2 3)
+        );
+    }
+
+    top
+    {
+        type patch;
+        faces
+        (
+            (4 7 6 5)
+        );
+    }
+
+    back
+    {
+        type patch;
+        faces
+        (
+            (0 4 5 1)
+        );
+    }
+
+    front
+    {
+        type patch;
+        faces
+        (
+            (3 2 6 7)
+        );
+    }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/compressibleInflowOutflow/system/blockMeshDict.extPatches b/etc/templates/compressibleInflowOutflow/system/blockMeshDict.extPatches
deleted file mode 100644
index 3286dba7e12..00000000000
--- a/etc/templates/compressibleInflowOutflow/system/blockMeshDict.extPatches
+++ /dev/null
@@ -1,121 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    object      blockMeshDict;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-backgroundMesh
-{
-    xMin    -1;
-    xMax     1;
-    yMin    -1;
-    yMax     1;
-    zMin    -1;
-    zMax     1;
-    xCells  20;
-    yCells  20;
-    zCells  20;
-}
-
-convertToMeters 1;
-
-vertices
-(
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
-
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
-);
-
-blocks
-(
-    hex (0 1 2 3 4 5 6 7)
-    (
-        $:backgroundMesh.xCells
-        $:backgroundMesh.yCells
-        $:backgroundMesh.zCells
-    )
-    simpleGrading (1 1 1)
-);
-
-edges
-(
-);
-
-boundary
-(
-    left
-    {
-        type patch;
-        faces
-        (
-            (0 3 7 4)
-        );
-    }
-
-    right
-    {
-        type patch;
-        faces
-        (
-            (1 5 6 2)
-        );
-    }
-
-    bottom
-    {
-        type patch;
-        faces
-        (
-            (0 1 2 3)
-        );
-    }
-
-    top
-    {
-        type patch;
-        faces
-        (
-            (4 7 6 5)
-        );
-    }
-
-    back
-    {
-        type patch;
-        faces
-        (
-            (0 4 5 1)
-        );
-    }
-
-    front
-    {
-        type patch;
-        faces
-        (
-            (3 2 6 7)
-        );
-    }
-);
-
-mergePatchPairs
-(
-);
-
-// ************************************************************************* //
diff --git a/etc/templates/inflowOutflow/README b/etc/templates/inflowOutflow/README
index 3cac200bdc9..a3d48a0c949 100644
--- a/etc/templates/inflowOutflow/README
+++ b/etc/templates/inflowOutflow/README
@@ -12,19 +12,13 @@ Background Mesh
 ===============
 + The user should establish the bounds of their CAD.obj file
 + The blockMeshDict file contains a backgroundMesh subditionary
-+ Set xMin, xMax, etc to be beyond the CAD.obj bounds
++ For internal flows, where CAD.obj describes the external boundary, set xMin,
+  xMax, etc to be beyond the CAD.obj bounds
++ For external flows, the background mesh can define the external boundary by
+  uncommenting entries, e.g. inlet, in the boundary section of blockMeshDict
 + Set background mesh density with xCells, yCells, zCells
 + Run blockMesh
 
-Background Mesh (alternative)
-=============================
-+ The user can adopt the background mesh patches in the mesh
-+ For example, the background mesh can provide external patches of an external
-  flow
-+ An alternative blockMeshDict file is set up for this: blockMeshDict.extPatches
-+ Simply copy blockMeshDict.extPatches to blockMeshDict and edit inlet, outlet
-  patches accordingly
-
 Castellated Mesh
 ================
 + In the snappyHexMeshDict file, replace <inletPatch> with the name of the inlet
diff --git a/etc/templates/inflowOutflow/system/blockMeshDict b/etc/templates/inflowOutflow/system/blockMeshDict
index de6aabcfd15..f72145d4bb0 100644
--- a/etc/templates/inflowOutflow/system/blockMeshDict
+++ b/etc/templates/inflowOutflow/system/blockMeshDict
@@ -59,6 +59,61 @@ edges
 
 boundary
 (
+/*
+    left
+    {
+        type patch;
+        faces
+        (
+            (0 3 7 4)
+        );
+    }
+
+    right
+    {
+        type patch;
+        faces
+        (
+            (1 5 6 2)
+        );
+    }
+
+    bottom
+    {
+        type patch;
+        faces
+        (
+            (0 1 2 3)
+        );
+    }
+
+    top
+    {
+        type patch;
+        faces
+        (
+            (4 7 6 5)
+        );
+    }
+
+    back
+    {
+        type patch;
+        faces
+        (
+            (0 4 5 1)
+        );
+    }
+
+    front
+    {
+        type patch;
+        faces
+        (
+            (3 2 6 7)
+        );
+    }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/inflowOutflow/system/blockMeshDict.extPatches b/etc/templates/inflowOutflow/system/blockMeshDict.extPatches
deleted file mode 100644
index 3286dba7e12..00000000000
--- a/etc/templates/inflowOutflow/system/blockMeshDict.extPatches
+++ /dev/null
@@ -1,121 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    object      blockMeshDict;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-backgroundMesh
-{
-    xMin    -1;
-    xMax     1;
-    yMin    -1;
-    yMax     1;
-    zMin    -1;
-    zMax     1;
-    xCells  20;
-    yCells  20;
-    zCells  20;
-}
-
-convertToMeters 1;
-
-vertices
-(
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
-
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
-);
-
-blocks
-(
-    hex (0 1 2 3 4 5 6 7)
-    (
-        $:backgroundMesh.xCells
-        $:backgroundMesh.yCells
-        $:backgroundMesh.zCells
-    )
-    simpleGrading (1 1 1)
-);
-
-edges
-(
-);
-
-boundary
-(
-    left
-    {
-        type patch;
-        faces
-        (
-            (0 3 7 4)
-        );
-    }
-
-    right
-    {
-        type patch;
-        faces
-        (
-            (1 5 6 2)
-        );
-    }
-
-    bottom
-    {
-        type patch;
-        faces
-        (
-            (0 1 2 3)
-        );
-    }
-
-    top
-    {
-        type patch;
-        faces
-        (
-            (4 7 6 5)
-        );
-    }
-
-    back
-    {
-        type patch;
-        faces
-        (
-            (0 4 5 1)
-        );
-    }
-
-    front
-    {
-        type patch;
-        faces
-        (
-            (3 2 6 7)
-        );
-    }
-);
-
-mergePatchPairs
-(
-);
-
-// ************************************************************************* //
-- 
GitLab


From 561721918506661a5f01ee13cf710a8b9da51bda Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Tue, 4 Apr 2017 11:48:29 +0100
Subject: [PATCH 177/277] template cases: minor edit to README files

---
 etc/templates/compressibleInflowOutflow/README | 2 +-
 etc/templates/inflowOutflow/README             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/etc/templates/compressibleInflowOutflow/README b/etc/templates/compressibleInflowOutflow/README
index 33306e9fc1b..3500e5e16e2 100644
--- a/etc/templates/compressibleInflowOutflow/README
+++ b/etc/templates/compressibleInflowOutflow/README
@@ -15,7 +15,7 @@ Background Mesh
 + For internal flows, where CAD.obj describes the external boundary, set xMin,
   xMax, etc to be beyond the CAD.obj bounds
 + For external flows, the background mesh can define the external boundary by
-  uncommenting entries, e.g. inlet, in the boundary section of blockMeshDict
+  uncommenting entries, e.g. left, in the boundary section of blockMeshDict
 + Set background mesh density with xCells, yCells, zCells
 + Run blockMesh
 
diff --git a/etc/templates/inflowOutflow/README b/etc/templates/inflowOutflow/README
index a3d48a0c949..7c2252a7adf 100644
--- a/etc/templates/inflowOutflow/README
+++ b/etc/templates/inflowOutflow/README
@@ -15,7 +15,7 @@ Background Mesh
 + For internal flows, where CAD.obj describes the external boundary, set xMin,
   xMax, etc to be beyond the CAD.obj bounds
 + For external flows, the background mesh can define the external boundary by
-  uncommenting entries, e.g. inlet, in the boundary section of blockMeshDict
+  uncommenting entries, e.g. left, in the boundary section of blockMeshDict
 + Set background mesh density with xCells, yCells, zCells
 + Run blockMesh
 
-- 
GitLab


From 97e84f58803abeaff6ed20757adc1f000f31bd25 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Tue, 4 Apr 2017 12:24:01 +0100
Subject: [PATCH 178/277] template cases: added cylindrical background mesh in
 rotating geometry cases

snappyHexMesh produces a far better quality AMI interface using a cylindrical background mesh,
leading to much more robust performance, even on a relatively coarse mesh.  The min/max AMI
weights remain close to 1 as the mesh moves, giving better conservation.

The rotating geometry template cases are configured with a blockMeshDict file for a cylindrical
background mesh aligned along the z-axis.  The details of use are found in the README and
blockMeshDict files.
---
 etc/templates/closedVolumeRotating/README     |  61 ++++-
 .../closedVolumeRotating/system/blockMeshDict | 178 ++++++++++++--
 .../system/blockMeshDict-box                  |  68 ++++++
 .../system/snappyHexMeshDict                  |   1 +
 etc/templates/inflowOutflowRotating/0/U       |   2 +-
 etc/templates/inflowOutflowRotating/README    |  48 +++-
 .../system/blockMeshDict                      | 226 ++++++++++++++++--
 ...kMeshDict.extPatches => blockMeshDict-box} |   3 +
 .../system/snappyHexMeshDict                  |   1 +
 9 files changed, 528 insertions(+), 60 deletions(-)
 create mode 100644 etc/templates/closedVolumeRotating/system/blockMeshDict-box
 rename etc/templates/inflowOutflowRotating/system/{blockMeshDict.extPatches => blockMeshDict-box} (97%)

diff --git a/etc/templates/closedVolumeRotating/README b/etc/templates/closedVolumeRotating/README
index 693cee7bd9d..79c0fbf857e 100644
--- a/etc/templates/closedVolumeRotating/README
+++ b/etc/templates/closedVolumeRotating/README
@@ -2,6 +2,61 @@ Overview
 ========
 + Template case for rotating geometry flow for a closed geometry
 + Can be used for MRF or AMI simulations
-+ Setup to run the simpleFoam solver
-+ Set up is like inflowOutflowRotating but without inlet and outlet
-+ See $FOAM_ETC/templates/closedVolume/README for details of use
\ No newline at end of file
++ Setup to run the simpleFoam solver for MRF, pimpleDyMFoam for AMI
++ The case is designed to be meshed with snappyHexMesh
++ snappyHexMesh is setup to use 3 trisurface files
+  + fixed.obj: CAD of the stationary geometry
+  + rotating.obj: CAD of the rotating geometry
+  + rotatingZone.obj: CAD of surface bounding the rotating region
++ Copy the *.obj files to the constant/triSurface directory
++ The fixed.obj should contain an inlet and outlet region to create the relevant
+  patches in the mesh
+
+Background Mesh
+===============
++ The blockMeshDict file contains a configuration for a cylindrical background
+  mesh aligned along the z-axis
++ The mesh includes a core box-shaped block and inner and outer cylinders
++ The backgroundMesh subdictionary includes key geometric parameters of the mesh
++ The inner cylinder relates to the rotatingZone.obj
++ The outer cyliner relates to the external boundary, e.g. fixed.obj
++ Set the radii of inner and outer cylinders to ~2% larger than respective OBJ
+  files
++ Set background mesh density with boxCells, inCells, outCells and zCells
++ Run blockMesh
++ NOTE: An alternative blockMeshDict-box file exists if the user wants a regular
+  box-shaped background mesh, similar to set up in the inflowOutflow template
+
+Features
+========
++ Run surfaceFeatureExtract to extract features for explicit feature capturing
+
+Castellated Mesh
+================
++ run snappyHexMesh to obtain a castellatedMesh
++ Review the mesh; modify refinement levels and regenerate the mesh as required
+  (levels are set in refinementSurfaces and refinementRegions)
+
+Snapped Mesh
+============
++ In snappyHexMeshDict, set castellatedMesh off; snap on;
++ Run the snapping phase of snappyHexMesh
++ Review the mesh
+
+Layers
+======
++ To add layers to the mesh along wall boundary patches...
++ Switch on addLayers; switch snap off;
++ Run snappyHexMesh
++ The number of layers can be changed by modifying nSurfaceLayers
+
+Initialisation
+==============
++ Initialise the field files in the 0 directory
++ Set the viscosity in constant/transportProperties
++ Rotating properties are set in constant/rotatingZoneProperties
+  + For MRF, this file is included from system/fvOptions
+  + For AMI, this file is included from constant/dynamicMeshDict
++ Ensure settings are appropriate in controlDict, fvSchemes, fvSolution, for
+  relevant simulation; for AMI, in particular, ensure that deltaT, ddtSchemes
+  and relaxationFactors are set for transient simulation
diff --git a/etc/templates/closedVolumeRotating/system/blockMeshDict b/etc/templates/closedVolumeRotating/system/blockMeshDict
index de6aabcfd15..7fd269f2852 100644
--- a/etc/templates/closedVolumeRotating/system/blockMeshDict
+++ b/etc/templates/closedVolumeRotating/system/blockMeshDict
@@ -14,47 +14,175 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+// Example configuration:
+// - Cylindrical mesh along z-axis (0 < z < 10)
+// - External boundary (fixed.obj) radius = 3
+// - Rotating zone (rotatingZone.obj) radius = 1
+
 backgroundMesh
 {
-    xMin    -1;
-    xMax     1;
-    yMin    -1;
-    yMax     1;
-    zMin    -1;
-    zMax     1;
-    xCells  20;
-    yCells  20;
-    zCells  20;
+    radOut     3.06; // larger than fixed.obj by ~ 1/cos(45/boxCells)
+    radOutN   -3.06;
+    radIn      1.02; // larger than rotatingZone.obj (see above)
+    radInN    -1.02;
+    radBox     0.30; // ~30% of rotatingZone.obj
+    radBoxN   -0.30;
+
+    zMin       0;
+    zMax       10;   // External boundary axial length
+
+    boxCells   5;    // Cells across inner box-shaped block
+    inCells    5;    // Cells in radial direction, inner cylinder
+    outCells   8;    // Cells in radial direction, outer cylinder
+    zCells     50;   // Cells in axial direction
+
+    outGrading 2.0;  // Expansion ratio in outer region, radial direction
+}
+
+geometry
+{
+    rotatingZone
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radIn;
+    }
+
+    fixed
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radOut;
+    }
 }
 
 convertToMeters 1;
 
 vertices
 (
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
-
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
 );
 
+boxMesh
+($:backgroundMesh.boxCells $:backgroundMesh.boxCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+inMesh
+($:backgroundMesh.boxCells $:backgroundMesh.inCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+outMesh
+($:backgroundMesh.boxCells $:backgroundMesh.outCells $:backgroundMesh.zCells)
+simpleGrading (1 $:backgroundMesh.outGrading 1);
+
 blocks
 (
-    hex (0 1 2 3 4 5 6 7)
-    (
-        $:backgroundMesh.xCells
-        $:backgroundMesh.yCells
-        $:backgroundMesh.zCells
-    )
-    simpleGrading (1 1 1)
+    hex (0 1 2 3 12 13 14 15) $boxMesh
+
+    hex (1 0 4 5 13 12 16 17) $inMesh
+    hex (0 3 7 4 12 15 19 16) $inMesh
+    hex (2 1 5 6 14 13 17 18) $inMesh
+    hex (3 2 6 7 15 14 18 19) $inMesh
+
+    hex (5 4  8  9 17 16 20 21) $outMesh
+    hex (4 7 11  8 16 19 23 20) $outMesh
+    hex (6 5  9 10 18 17 21 22) $outMesh
+    hex (7 6 10 11 19 18 22 23) $outMesh
 );
 
 edges
 (
+    project  4  5  (rotatingZone)
+    project  5  6  (rotatingZone)
+    project  6  7  (rotatingZone)
+    project  7  4  (rotatingZone)
+    project 16 17  (rotatingZone)
+    project 17 18  (rotatingZone)
+    project 18 19  (rotatingZone)
+    project 19 16  (rotatingZone)
+
+    project  8  9  (fixed)
+    project  9 10  (fixed)
+    project 10 11  (fixed)
+    project 11  8  (fixed)
+    project 20 21  (fixed)
+    project 21 22  (fixed)
+    project 22 23  (fixed)
+    project 23 20  (fixed)
 );
 
 boundary
diff --git a/etc/templates/closedVolumeRotating/system/blockMeshDict-box b/etc/templates/closedVolumeRotating/system/blockMeshDict-box
new file mode 100644
index 00000000000..de6aabcfd15
--- /dev/null
+++ b/etc/templates/closedVolumeRotating/system/blockMeshDict-box
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+backgroundMesh
+{
+    xMin    -1;
+    xMax     1;
+    yMin    -1;
+    yMax     1;
+    zMin    -1;
+    zMax     1;
+    xCells  20;
+    yCells  20;
+    zCells  20;
+}
+
+convertToMeters 1;
+
+vertices
+(
+    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
+    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
+    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
+    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
+
+    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
+    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
+    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
+    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7)
+    (
+        $:backgroundMesh.xCells
+        $:backgroundMesh.yCells
+        $:backgroundMesh.zCells
+    )
+    simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/etc/templates/closedVolumeRotating/system/snappyHexMeshDict b/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
index 86797a98bfd..eafffecdb57 100644
--- a/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
+++ b/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
@@ -88,6 +88,7 @@ castellatedMeshControls
 snapControls
 {
     explicitFeatureSnap    true;
+    implicitFeatureSnap    false;
 }
 
 addLayersControls
diff --git a/etc/templates/inflowOutflowRotating/0/U b/etc/templates/inflowOutflowRotating/0/U
index 0b011d64a62..83a3df50c87 100644
--- a/etc/templates/inflowOutflowRotating/0/U
+++ b/etc/templates/inflowOutflowRotating/0/U
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Uinlet          (10 0 0);
+Uinlet          (0 0 10);
 
 dimensions      [0 1 -1 0 0 0 0];
 
diff --git a/etc/templates/inflowOutflowRotating/README b/etc/templates/inflowOutflowRotating/README
index b1b05eeb425..250b5a33122 100644
--- a/etc/templates/inflowOutflowRotating/README
+++ b/etc/templates/inflowOutflowRotating/README
@@ -12,12 +12,48 @@ Overview
 + The fixed.obj should contain an inlet and outlet region to create the relevant
   patches in the mesh
 
-Meshing
-=======
-+ Meshing is setup as in the inflowOutflow template
-+ See $FOAM_ETC/templates/inflowOutflow/README for details
-+ For AMI, the AMI interface can be set up by running createBaffles which uses
-  the createBafflesDict file
+Background Mesh
+===============
++ The blockMeshDict file contains a configuration for a cylindrical background
+  mesh aligned along the z-axis
++ The mesh includes a core box-shaped block and inner and outer cylinders
++ The backgroundMesh subdictionary includes key geometric parameters of the mesh
++ The inner cylinder relates to the rotatingZone.obj
++ The outer cyliner relates to the external boundary, e.g. fixed.obj
++ Set the radii of inner and outer cylinders to ~2% larger than respective OBJ
+  files
++ The background mesh can define the external boundary by uncommenting
+  entries, e.g. inlet, in the boundary section of blockMeshDict
++ Set background mesh density with boxCells, inCells, outCells and zCells
++ Run blockMesh
++ NOTE: An alternative blockMeshDict-box file exists if the user wants a regular
+  box-shaped background mesh, similar to set up in the inflowOutflow template
+
+Features
+========
++ Run surfaceFeatureExtract to extract features for explicit feature capturing
+
+Castellated Mesh
+================
++ In the snappyHexMeshDict file, replace <inletPatch> with the name of the inlet
+  region in the fixed.obj file, if it defines the external boundary
++ Replace <outletPatch> with the name of the outlet region
++ run snappyHexMesh to obtain a castellatedMesh
++ Review the mesh; modify refinement levels and regenerate the mesh as required
+  (levels are set in refinementSurfaces and refinementRegions)
+
+Snapped Mesh
+============
++ In snappyHexMeshDict, set castellatedMesh off; snap on;
++ Run the snapping phase of snappyHexMesh
++ Review the mesh
+
+Layers
+======
++ To add layers to the mesh along wall boundary patches...
++ Switch on addLayers; switch snap off;
++ Run snappyHexMesh
++ The number of layers can be changed by modifying nSurfaceLayers
 
 Initialisation
 ==============
diff --git a/etc/templates/inflowOutflowRotating/system/blockMeshDict b/etc/templates/inflowOutflowRotating/system/blockMeshDict
index de6aabcfd15..017a34d6f6c 100644
--- a/etc/templates/inflowOutflowRotating/system/blockMeshDict
+++ b/etc/templates/inflowOutflowRotating/system/blockMeshDict
@@ -14,51 +14,227 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+// Example configuration:
+// - Cylindrical mesh along z-axis (0 < z < 10)
+// - External boundary (fixed.obj) radius = 3
+// - Rotating zone (rotatingZone.obj) radius = 1
+
 backgroundMesh
 {
-    xMin    -1;
-    xMax     1;
-    yMin    -1;
-    yMax     1;
-    zMin    -1;
-    zMax     1;
-    xCells  20;
-    yCells  20;
-    zCells  20;
+    radOut     3.06; // larger than fixed.obj by ~ 1/cos(45/boxCells)
+    radOutN   -3.06;
+    radIn      1.02; // larger than rotatingZone.obj (see above)
+    radInN    -1.02;
+    radBox     0.30; // ~30% of rotatingZone.obj
+    radBoxN   -0.30;
+
+    zMin       0;
+    zMax       10;   // External boundary axial length
+
+    boxCells   5;    // Cells across inner box-shaped block
+    inCells    5;    // Cells in radial direction, inner cylinder
+    outCells   8;    // Cells in radial direction, outer cylinder
+    zCells     50;   // Cells in axial direction
+
+    outGrading 2.0;  // Expansion ratio in outer region, radial direction
+}
+
+geometry
+{
+    rotatingZone
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radIn;
+    }
+
+    fixed
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radOut;
+    }
 }
 
 convertToMeters 1;
 
 vertices
 (
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
-
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
 );
 
+boxMesh
+($:backgroundMesh.boxCells $:backgroundMesh.boxCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+inMesh
+($:backgroundMesh.boxCells $:backgroundMesh.inCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+outMesh
+($:backgroundMesh.boxCells $:backgroundMesh.outCells $:backgroundMesh.zCells)
+simpleGrading (1 $:backgroundMesh.outGrading 1);
+
 blocks
 (
-    hex (0 1 2 3 4 5 6 7)
-    (
-        $:backgroundMesh.xCells
-        $:backgroundMesh.yCells
-        $:backgroundMesh.zCells
-    )
-    simpleGrading (1 1 1)
+    hex (0 1 2 3 12 13 14 15) $boxMesh
+
+    hex (1 0 4 5 13 12 16 17) $inMesh
+    hex (0 3 7 4 12 15 19 16) $inMesh
+    hex (2 1 5 6 14 13 17 18) $inMesh
+    hex (3 2 6 7 15 14 18 19) $inMesh
+
+    hex (5 4  8  9 17 16 20 21) $outMesh
+    hex (4 7 11  8 16 19 23 20) $outMesh
+    hex (6 5  9 10 18 17 21 22) $outMesh
+    hex (7 6 10 11 19 18 22 23) $outMesh
 );
 
 edges
 (
+    project  4  5  (rotatingZone)
+    project  5  6  (rotatingZone)
+    project  6  7  (rotatingZone)
+    project  7  4  (rotatingZone)
+    project 16 17  (rotatingZone)
+    project 17 18  (rotatingZone)
+    project 18 19  (rotatingZone)
+    project 19 16  (rotatingZone)
+
+    project  8  9  (fixed)
+    project  9 10  (fixed)
+    project 10 11  (fixed)
+    project 11  8  (fixed)
+    project 20 21  (fixed)
+    project 21 22  (fixed)
+    project 22 23  (fixed)
+    project 23 20  (fixed)
 );
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
+/*
+    inlet
+    {
+        type patch;
+        faces
+        (
+            (0 1 2 3)
+            (0 4 5 1)
+            (1 5 6 2)
+            (2 6 7 3)
+            (3 7 4 0)
+            (4 8 9 5)
+            (5 9 10 6)
+            (6 10 11 7)
+            (7 11 8 4)
+        );
+    }
+
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (12 13 14 15)
+            (12 16 17 13)
+            (13 17 18 14)
+            (14 18 19 15)
+            (15 19 16 12)
+            (16 20 21 17)
+            (17 21 22 18)
+            (18 22 23 19)
+            (19 23 20 16)
+        );
+    }
+
+    walls
+    {
+        type wall;
+        faces
+        (
+            (8 9 21 20)
+            (9 10 22 21)
+            (10 11 23 22)
+            (11 8 20 23)
+        );
+    }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/inflowOutflowRotating/system/blockMeshDict.extPatches b/etc/templates/inflowOutflowRotating/system/blockMeshDict-box
similarity index 97%
rename from etc/templates/inflowOutflowRotating/system/blockMeshDict.extPatches
rename to etc/templates/inflowOutflowRotating/system/blockMeshDict-box
index 3286dba7e12..09757b92d3b 100644
--- a/etc/templates/inflowOutflowRotating/system/blockMeshDict.extPatches
+++ b/etc/templates/inflowOutflowRotating/system/blockMeshDict-box
@@ -59,6 +59,8 @@ edges
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
+/*
     left
     {
         type patch;
@@ -112,6 +114,7 @@ boundary
             (3 2 6 7)
         );
     }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict b/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
index a40addbc3b4..9960c3957df 100644
--- a/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
+++ b/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
@@ -117,6 +117,7 @@ castellatedMeshControls
 snapControls
 {
     explicitFeatureSnap    true;
+    implicitFeatureSnap    false;
 }
 
 addLayersControls
-- 
GitLab


From 8bfaa34e24a7b9eec8c9dd2322543a1d6b4e5a20 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Tue, 4 Apr 2017 12:33:17 +0100
Subject: [PATCH 179/277] template cases: added nCellsBetweenLevels to
 snappyHexMeshDict files

---
 etc/templates/closedVolume/system/snappyHexMeshDict              | 1 +
 etc/templates/closedVolumeRotating/system/snappyHexMeshDict      | 1 +
 etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict | 1 +
 etc/templates/inflowOutflow/system/snappyHexMeshDict             | 1 +
 etc/templates/inflowOutflowRotating/system/snappyHexMeshDict     | 1 +
 5 files changed, 5 insertions(+)

diff --git a/etc/templates/closedVolume/system/snappyHexMeshDict b/etc/templates/closedVolume/system/snappyHexMeshDict
index 25f1b3a79cf..99a28f4d3fb 100644
--- a/etc/templates/closedVolume/system/snappyHexMeshDict
+++ b/etc/templates/closedVolume/system/snappyHexMeshDict
@@ -60,6 +60,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
diff --git a/etc/templates/closedVolumeRotating/system/snappyHexMeshDict b/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
index eafffecdb57..4ef035765c4 100644
--- a/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
+++ b/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
@@ -83,6 +83,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
diff --git a/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict b/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict
index 97fc1333128..b71e8a33da6 100644
--- a/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict
+++ b/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict
@@ -84,6 +84,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
diff --git a/etc/templates/inflowOutflow/system/snappyHexMeshDict b/etc/templates/inflowOutflow/system/snappyHexMeshDict
index 97fc1333128..b71e8a33da6 100644
--- a/etc/templates/inflowOutflow/system/snappyHexMeshDict
+++ b/etc/templates/inflowOutflow/system/snappyHexMeshDict
@@ -84,6 +84,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
diff --git a/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict b/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
index 9960c3957df..2717c2afa9b 100644
--- a/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
+++ b/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
@@ -112,6 +112,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
-- 
GitLab


From 0a20a8177f99a9e381092eba9dfe7b0ea38632d3 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Tue, 4 Apr 2017 12:36:50 +0100
Subject: [PATCH 180/277] template cases: added minor comment to blockMeshDict
 files

---
 etc/templates/compressibleInflowOutflow/system/blockMeshDict | 1 +
 etc/templates/inflowOutflow/system/blockMeshDict             | 1 +
 2 files changed, 2 insertions(+)

diff --git a/etc/templates/compressibleInflowOutflow/system/blockMeshDict b/etc/templates/compressibleInflowOutflow/system/blockMeshDict
index f72145d4bb0..09757b92d3b 100644
--- a/etc/templates/compressibleInflowOutflow/system/blockMeshDict
+++ b/etc/templates/compressibleInflowOutflow/system/blockMeshDict
@@ -59,6 +59,7 @@ edges
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
 /*
     left
     {
diff --git a/etc/templates/inflowOutflow/system/blockMeshDict b/etc/templates/inflowOutflow/system/blockMeshDict
index f72145d4bb0..09757b92d3b 100644
--- a/etc/templates/inflowOutflow/system/blockMeshDict
+++ b/etc/templates/inflowOutflow/system/blockMeshDict
@@ -59,6 +59,7 @@ edges
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
 /*
     left
     {
-- 
GitLab


From 97d12d8b43e0fcc6533c4406e35019a1d852aaea Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 5 Apr 2017 14:36:11 +0100
Subject: [PATCH 181/277] surfaceTensionModels::liquidProperties: New
 temperature-dependent surface tension model

Description
    Temperature-dependent surface tension model in which the surface tension
    function provided by the phase Foam::liquidProperties class is used.

Usage
    \table
        Property     | Description               | Required    | Default value
        phase        | Phase name                | yes         |
    \endtable

    Example of the surface tension specification:
    \verbatim
        sigma
        {
            type    liquidProperties;
            phase   water;
        }
    \endverbatim

for use with e.g. compressibleInterFoam, see
tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D
---
 .../compressibleInterFoam/Allwclean           |   1 +
 .../multiphase/compressibleInterFoam/Allwmake |   1 +
 .../compressibleInterFoam/Make/options        |   1 +
 .../compressibleInterDyMFoam/Make/options     |   1 +
 .../surfaceTensionModels/Make/files           |   3 +
 .../surfaceTensionModels/Make/options         |  15 ++
 .../liquidPropertiesSurfaceTension.C          | 155 ++++++++++++++++++
 .../liquidPropertiesSurfaceTension.H          | 123 ++++++++++++++
 .../basic/mixtures/pureMixture/pureMixture.H  |   7 +-
 .../basic/rhoThermo/liquidThermo.C            |  24 +--
 .../basic/rhoThermo/liquidThermo.H            |  59 +++++++
 .../thermophysicalPropertiesSelector.H        |   4 +
 .../thermophysicalPropertiesSelectorI.H       |   8 +
 .../constant/thermophysicalProperties         |   6 +-
 14 files changed, 383 insertions(+), 25 deletions(-)
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/files
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/options
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
 create mode 100644 src/thermophysicalModels/basic/rhoThermo/liquidThermo.H

diff --git a/applications/solvers/multiphase/compressibleInterFoam/Allwclean b/applications/solvers/multiphase/compressibleInterFoam/Allwclean
index deb5e2378ba..71bff64a720 100755
--- a/applications/solvers/multiphase/compressibleInterFoam/Allwclean
+++ b/applications/solvers/multiphase/compressibleInterFoam/Allwclean
@@ -2,6 +2,7 @@
 cd ${0%/*} || exit 1    # Run from this directory
 
 wclean libso twoPhaseMixtureThermo
+wclean libso surfaceTensionModels
 wclean
 wclean compressibleInterDyMFoam
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Allwmake b/applications/solvers/multiphase/compressibleInterFoam/Allwmake
index 20da00c4729..29bafc3a616 100755
--- a/applications/solvers/multiphase/compressibleInterFoam/Allwmake
+++ b/applications/solvers/multiphase/compressibleInterFoam/Allwmake
@@ -5,6 +5,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
 
 wmake $targetType twoPhaseMixtureThermo
+wmake $targetType surfaceTensionModels
 
 wmake $targetType
 wmake $targetType compressibleInterDyMFoam
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index b947836f65e..29b12f31140 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -13,6 +13,7 @@ EXE_INC = \
 
 EXE_LIBS = \
     -ltwoPhaseMixtureThermo \
+    -ltwoPhaseSurfaceTension \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index b44af44a723..4de8fd2713c 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -16,6 +16,7 @@ EXE_INC = \
 
 EXE_LIBS = \
     -ltwoPhaseMixtureThermo \
+    -ltwoPhaseSurfaceTension \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/files b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/files
new file mode 100644
index 00000000000..fa34a838247
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/files
@@ -0,0 +1,3 @@
+liquidProperties/liquidPropertiesSurfaceTension.C
+
+LIB = $(FOAM_LIBBIN)/libtwoPhaseSurfaceTension
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/options b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/options
new file mode 100644
index 00000000000..0d8cc30e2d5
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/options
@@ -0,0 +1,15 @@
+EXE_INC = \
+    -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+LIB_LIBS = \
+    -linterfaceProperties \
+    -lcompressibleTransportModels \
+    -lfluidThermophysicalModels \
+    -lspecie \
+    -lthermophysicalProperties \
+    -lfiniteVolume
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
new file mode 100644
index 00000000000..71e10898023
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
@@ -0,0 +1,155 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "liquidPropertiesSurfaceTension.H"
+#include "liquidThermo.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceTensionModels
+{
+    defineTypeNameAndDebug(liquidProperties, 0);
+    addToRunTimeSelectionTable
+    (
+        surfaceTensionModel,
+        liquidProperties,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::liquidProperties::liquidProperties
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    surfaceTensionModel(mesh),
+    phaseName_(dict.lookup("phase"))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::liquidProperties::~liquidProperties()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::surfaceTensionModels::liquidProperties::sigma() const
+{
+    const heRhoThermopureMixtureliquidProperties& thermo =
+        mesh_.lookupObject<heRhoThermopureMixtureliquidProperties>
+        (
+             IOobject::groupName(basicThermo::dictName, phaseName_)
+        );
+
+    const Foam::liquidProperties& liquid = thermo.mixture().properties();
+
+    tmp<volScalarField> tsigma
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "sigma",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            mesh_,
+            dimSigma
+        )
+    );
+    volScalarField& sigma = tsigma.ref();
+
+    const volScalarField& T = thermo.T();
+    const volScalarField& p = thermo.p();
+
+    volScalarField::Internal& sigmai = sigma;
+    const volScalarField::Internal& pi = p;
+    const volScalarField::Internal& Ti = T;
+
+    forAll(sigmai, celli)
+    {
+        sigmai[celli] = liquid.sigma(pi[celli], Ti[celli]);
+    }
+
+    volScalarField::Boundary& sigmaBf = sigma.boundaryFieldRef();
+    const volScalarField::Boundary& pBf = p.boundaryField();
+    const volScalarField::Boundary& TBf = T.boundaryField();
+
+    forAll(sigmaBf, patchi)
+    {
+        scalarField& sigmaPf = sigmaBf[patchi];
+        const scalarField& pPf = pBf[patchi];
+        const scalarField& TPf = TBf[patchi];
+
+        forAll(sigmaPf, facei)
+        {
+            sigmaPf[facei] = liquid.sigma(pPf[facei], TPf[facei]);
+        }
+    }
+
+    return tsigma;
+}
+
+
+bool Foam::surfaceTensionModels::liquidProperties::read
+(
+    const dictionary& dict
+)
+{
+    return true;
+}
+
+
+bool Foam::surfaceTensionModels::liquidProperties::writeData
+(
+    Ostream& os
+) const
+{
+    if (surfaceTensionModel::writeData(os))
+    {
+        return os.good();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
new file mode 100644
index 00000000000..b209dfc9d6e
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
@@ -0,0 +1,123 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModels::liquidProperties
+
+Description
+    Temperature-dependent surface tension model in which the surface tension
+    function provided by the phase Foam::liquidProperties class is used.
+
+Usage
+    \table
+        Property     | Description               | Required    | Default value
+        phase        | Phase name                | yes         |
+    \endtable
+
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type    liquidProperties;
+            phase   water;
+        }
+    \endverbatim
+
+See also
+    Foam::surfaceTensionModel
+
+SourceFiles
+    liquidPropertiesSurfaceTension.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef liquidPropertiesSurfaceTension_H
+#define liquidPropertiesSurfaceTension_H
+
+#include "surfaceTensionModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+namespace surfaceTensionModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class liquidProperties Declaration
+\*---------------------------------------------------------------------------*/
+
+class liquidProperties
+:
+    public surfaceTensionModel
+{
+    // Private data
+
+        //- Name of the liquid phase
+        word phaseName_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("liquidProperties");
+
+
+    // Constructors
+
+        //- Construct from dictionary and mesh
+        liquidProperties
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    //- Destructor
+    virtual ~liquidProperties();
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict);
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceTensionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
index d49aa797ff7..f7f213f10a9 100644
--- a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
+++ b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,6 +73,11 @@ public:
 
     // Member functions
 
+        const ThermoType& mixture() const
+        {
+            return mixture_;
+        }
+
         const ThermoType& cellMixture(const label) const
         {
             return mixture_;
diff --git a/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
index c023c506838..de4a576b10c 100644
--- a/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
+++ b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
@@ -23,16 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "rhoThermo.H"
-#include "heRhoThermo.H"
-#include "pureMixture.H"
-#include "thermo.H"
-#include "sensibleEnthalpy.H"
-#include "sensibleInternalEnergy.H"
-
-#include "thermophysicalPropertiesSelector.H"
-#include "liquidProperties.H"
-
+#include "liquidThermo.H"
 #include "addToRunTimeSelectionTable.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -42,19 +33,6 @@ namespace Foam
 
 /* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
 
-typedef heRhoThermo
-<
-    rhoThermo,
-    pureMixture
-    <
-        species::thermo
-        <
-            thermophysicalPropertiesSelector<liquidProperties>,
-            sensibleInternalEnergy
-        >
-    >
-> heRhoThermopureMixtureliquidProperties;
-
 defineTemplateTypeNameAndDebugWithName
 (
     heRhoThermopureMixtureliquidProperties,
diff --git a/src/thermophysicalModels/basic/rhoThermo/liquidThermo.H b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.H
new file mode 100644
index 00000000000..de5aed51433
--- /dev/null
+++ b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.H
@@ -0,0 +1,59 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "rhoThermo.H"
+#include "heRhoThermo.H"
+#include "pureMixture.H"
+#include "thermo.H"
+#include "sensibleInternalEnergy.H"
+#include "thermophysicalPropertiesSelector.H"
+#include "liquidProperties.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
+
+typedef heRhoThermo
+<
+    rhoThermo,
+    pureMixture
+    <
+        species::thermo
+        <
+            thermophysicalPropertiesSelector<liquidProperties>,
+            sensibleInternalEnergy
+        >
+    >
+> heRhoThermopureMixtureliquidProperties;
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
index 690e4a95053..7edd6225af4 100644
--- a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
@@ -80,6 +80,10 @@ public:
 
     // Member Functions
 
+        //- Return reference to the selected physical properties class
+        inline const ThermophysicalProperties& properties() const;
+
+
         // Physical constants which define the specie
 
             //- Molecular weight [kg/kmol]
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
index 870aa1dbed3..a074d371469 100644
--- a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
@@ -25,6 +25,14 @@ License
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class ThermophysicalProperties>
+inline const ThermophysicalProperties&
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>
+::properties() const
+{
+    return propertiesPtr_();
+}
+
 template<class ThermophysicalProperties>
 inline Foam::scalar
 Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::W() const
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
index 39d2517cd86..be327980e06 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
@@ -19,6 +19,10 @@ phases (water air);
 
 pMin        10000;
 
-sigma       0.07;
+sigma
+{
+    type    liquidProperties;
+    phase   water;
+}
 
 // ************************************************************************* //
-- 
GitLab


From 861b273e566a3ce7c99e7a2cab67b32173fdc475 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 8 Apr 2017 22:06:41 +0100
Subject: [PATCH 182/277] externalWallHeatFluxTemperatureFvPatchScalarField:
 Added "power" heat source option

by combining with and rationalizing functionality from
turbulentHeatFluxTemperatureFvPatchScalarField.
externalWallHeatFluxTemperatureFvPatchScalarField now replaces
turbulentHeatFluxTemperatureFvPatchScalarField which is no longer needed and has
been removed.

Description
    This boundary condition applies a heat flux condition to temperature
    on an external wall in one of three modes:

      - fixed power: supply Q
      - fixed heat flux: supply q
      - fixed heat transfer coefficient: supply h and Ta

    where:
    \vartable
        Q  | Power [W]
        q  | Heat flux [W/m^2]
        h  | Heat transfer coefficient [W/m^2/K]
        Ta | Ambient temperature [K]
    \endvartable

    For heat transfer coefficient mode optional thin thermal layer resistances
    can be specified through thicknessLayers and kappaLayers entries.

    The thermal conductivity \c kappa can either be retrieved from various
    possible sources, as detailed in the class temperatureCoupledBase.

Usage
    \table
    Property     | Description                 | Required | Default value
    mode         | 'power', 'flux' or 'coefficient' | yes |
    Q            | Power [W]                   | for mode 'power'     |
    q            | Heat flux [W/m^2]           | for mode 'flux'     |
    h            | Heat transfer coefficient [W/m^2/K] | for mode 'coefficent' |
    Ta           | Ambient temperature [K]     | for mode 'coefficient' |
    thicknessLayers | Layer thicknesses [m] | no |
    kappaLayers  | Layer thermal conductivities [W/m/K] | no |
    qr           | Name of the radiative field | no | none
    qrRelaxation | Relaxation factor for radiative field | no | 1
    kappaMethod  | Inherited from temperatureCoupledBase | inherited |
    kappa        | Inherited from temperatureCoupledBase | inherited |
    \endtable

    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            externalWallHeatFluxTemperature;

        mode            coefficient;

        Ta              uniform 300.0;
        h               uniform 10.0;
        thicknessLayers (0.1 0.2 0.3 0.4);
        kappaLayers     (1 2 3 4);

        kappaMethod     fluidThermo;

        value           $internalField;
    }
    \endverbatim
---
 etc/controlDict                               |   1 -
 src/TurbulenceModels/compressible/Make/files  |   1 -
 ...allHeatFluxTemperatureFvPatchScalarField.C | 340 +++++++++++-------
 ...allHeatFluxTemperatureFvPatchScalarField.H |  88 ++---
 ...entHeatFluxTemperatureFvPatchScalarField.C | 262 --------------
 ...entHeatFluxTemperatureFvPatchScalarField.H | 231 ------------
 6 files changed, 263 insertions(+), 660 deletions(-)
 delete mode 100644 src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
 delete mode 100644 src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H

diff --git a/etc/controlDict b/etc/controlDict
index ed0606904d3..832e63b55b1 100644
--- a/etc/controlDict
+++ b/etc/controlDict
@@ -847,7 +847,6 @@ DebugSwitches
     triSurface          0;
     triSurfaceMesh      0;
     turbulenceModel     0;
-    turbulentHeatFluxTemperature 0;
     turbulentInlet      0;
     turbulentIntensityKineticEnergyInlet 0;
     turbulentMixingLengthDissipationRateInlet 0;
diff --git a/src/TurbulenceModels/compressible/Make/files b/src/TurbulenceModels/compressible/Make/files
index c4aab942510..56de74799cb 100644
--- a/src/TurbulenceModels/compressible/Make/files
+++ b/src/TurbulenceModels/compressible/Make/files
@@ -2,7 +2,6 @@ compressibleTurbulenceModel.C
 turbulentFluidThermoModels/turbulentFluidThermoModels.C
 
 BCs = turbulentFluidThermoModels/derivedFvPatchFields
-$(BCs)/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
 $(BCs)/temperatureCoupledBase/temperatureCoupledBase.C
 $(BCs)/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
 $(BCs)/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
index 4c74daaf89c..186722c21e4 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,12 +40,11 @@ namespace Foam
         3
     >::names[] =
     {
-        "fixed_heat_flux",
-        "fixed_heat_transfer_coefficient",
-        "unknown"
+        "power",
+        "flux",
+        "coefficient"
     };
-
-} // End namespace Foam
+}
 
 const Foam::NamedEnum
 <
@@ -65,45 +64,19 @@ externalWallHeatFluxTemperatureFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
-    mode_(unknown),
-    q_(p.size(), 0.0),
-    h_(p.size(), 0.0),
-    Ta_(p.size(), 0.0),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(1),
-    QrName_("undefined-Qr"),
+    mode_(fixedHeatFlux),
+    Q_(0),
+    qrRelaxation_(1),
+    qrName_("undefined-qr"),
     thicknessLayers_(),
     kappaLayers_()
 {
-    refValue() = 0.0;
-    refGrad() = 0.0;
-    valueFraction() = 1.0;
+    refValue() = 0;
+    refGrad() = 0;
+    valueFraction() = 1;
 }
 
 
-Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
-externalWallHeatFluxTemperatureFvPatchScalarField
-(
-    const externalWallHeatFluxTemperatureFvPatchScalarField& ptf,
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
-)
-:
-    mixedFvPatchScalarField(ptf, p, iF, mapper),
-    temperatureCoupledBase(patch(), ptf),
-    mode_(ptf.mode_),
-    q_(ptf.q_, mapper),
-    h_(ptf.h_, mapper),
-    Ta_(ptf.Ta_, mapper),
-    QrPrevious_(ptf.QrPrevious_, mapper),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_),
-    thicknessLayers_(ptf.thicknessLayers_),
-    kappaLayers_(ptf.kappaLayers_)
-{}
-
-
 Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
 externalWallHeatFluxTemperatureFvPatchScalarField
 (
@@ -114,48 +87,54 @@ externalWallHeatFluxTemperatureFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), dict),
-    mode_(unknown),
-    q_(p.size(), 0.0),
-    h_(p.size(), 0.0),
-    Ta_(p.size(), 0.0),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none")),
+    mode_(operationModeNames.read(dict.lookup("mode"))),
+    Q_(0),
+    qrRelaxation_(dict.lookupOrDefault<scalar>("qrRelaxation", 1)),
+    qrName_(dict.lookupOrDefault<word>("qr", "none")),
     thicknessLayers_(),
     kappaLayers_()
 {
-    if (dict.found("q") && !dict.found("h") && !dict.found("Ta"))
-    {
-        mode_ = fixedHeatFlux;
-        q_ = scalarField("q", dict, p.size());
-    }
-    else if (dict.found("h") && dict.found("Ta") && !dict.found("q"))
+    switch (mode_)
     {
-        mode_ = fixedHeatTransferCoeff;
-        h_ = scalarField("h", dict, p.size());
-        Ta_ = scalarField("Ta", dict, p.size());
-        if (dict.found("thicknessLayers"))
+        case fixedPower:
         {
-            dict.lookup("thicknessLayers") >> thicknessLayers_;
-            dict.lookup("kappaLayers") >> kappaLayers_;
+            dict.lookup("Q") >> Q_;
+
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_ = scalarField("q", dict, p.size());
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_ = scalarField("h", dict, p.size());
+            Ta_ = scalarField("Ta", dict, p.size());
+
+            if (dict.found("thicknessLayers"))
+            {
+                dict.lookup("thicknessLayers") >> thicknessLayers_;
+                dict.lookup("kappaLayers") >> kappaLayers_;
+            }
+
+            break;
         }
-    }
-    else
-    {
-        FatalErrorInFunction
-            << "\n patch type '" << p.type()
-            << "' either q or h and Ta were not found '"
-            << "\n for patch " << p.name()
-            << " of field " << internalField().name()
-            << " in file " << internalField().objectPath()
-            << exit(FatalError);
     }
 
     fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
 
-    if (dict.found("QrPrevious"))
+    if (qrName_ != "none")
     {
-        QrPrevious_ = scalarField("QrPrevious", dict, p.size());
+        if (dict.found("qrPrevious"))
+        {
+            qrPrevious_ = scalarField("qrPrevious", dict, p.size());
+        }
+        else
+        {
+            qrPrevious_.setSize(p.size(), 0);
+        }
     }
 
     if (dict.found("refValue"))
@@ -169,8 +148,54 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     {
         // Start from user entered data. Assume fixedValue.
         refValue() = *this;
-        refGrad() = 0.0;
-        valueFraction() = 1.0;
+        refGrad() = 0;
+        valueFraction() = 1;
+    }
+}
+
+
+Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
+externalWallHeatFluxTemperatureFvPatchScalarField
+(
+    const externalWallHeatFluxTemperatureFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    mixedFvPatchScalarField(ptf, p, iF, mapper),
+    temperatureCoupledBase(patch(), ptf),
+    mode_(ptf.mode_),
+    Q_(ptf.Q_),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_),
+    thicknessLayers_(ptf.thicknessLayers_),
+    kappaLayers_(ptf.kappaLayers_)
+{
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.autoMap(mapper);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.autoMap(mapper);
+            Ta_.autoMap(mapper);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.autoMap(mapper);
     }
 }
 
@@ -184,12 +209,13 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     mixedFvPatchScalarField(tppsf),
     temperatureCoupledBase(tppsf),
     mode_(tppsf.mode_),
+    Q_(tppsf.Q_),
     q_(tppsf.q_),
     h_(tppsf.h_),
     Ta_(tppsf.Ta_),
-    QrPrevious_(tppsf.QrPrevious_),
-    QrRelaxation_(tppsf.QrRelaxation_),
-    QrName_(tppsf.QrName_),
+    qrPrevious_(tppsf.qrPrevious_),
+    qrRelaxation_(tppsf.qrRelaxation_),
+    qrName_(tppsf.qrName_),
     thicknessLayers_(tppsf.thicknessLayers_),
     kappaLayers_(tppsf.kappaLayers_)
 {}
@@ -205,12 +231,13 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     mixedFvPatchScalarField(tppsf, iF),
     temperatureCoupledBase(patch(), tppsf),
     mode_(tppsf.mode_),
+    Q_(tppsf.Q_),
     q_(tppsf.q_),
     h_(tppsf.h_),
     Ta_(tppsf.Ta_),
-    QrPrevious_(tppsf.QrPrevious_),
-    QrRelaxation_(tppsf.QrRelaxation_),
-    QrName_(tppsf.QrName_),
+    qrPrevious_(tppsf.qrPrevious_),
+    qrRelaxation_(tppsf.qrRelaxation_),
+    qrName_(tppsf.qrName_),
     thicknessLayers_(tppsf.thicknessLayers_),
     kappaLayers_(tppsf.kappaLayers_)
 {}
@@ -224,10 +251,32 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::autoMap
 )
 {
     mixedFvPatchScalarField::autoMap(m);
-    q_.autoMap(m);
-    h_.autoMap(m);
-    Ta_.autoMap(m);
-    QrPrevious_.autoMap(m);
+
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.autoMap(m);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.autoMap(m);
+            Ta_.autoMap(m);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.autoMap(m);
+    }
 }
 
 
@@ -242,10 +291,31 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::rmap
     const externalWallHeatFluxTemperatureFvPatchScalarField& tiptf =
         refCast<const externalWallHeatFluxTemperatureFvPatchScalarField>(ptf);
 
-    q_.rmap(tiptf.q_, addr);
-    h_.rmap(tiptf.h_, addr);
-    Ta_.rmap(tiptf.Ta_, addr);
-    QrPrevious_.rmap(tiptf.QrPrevious_, addr);
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.rmap(tiptf.q_, addr);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.rmap(tiptf.h_, addr);
+            Ta_.rmap(tiptf.Ta_, addr);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.rmap(tiptf.qrPrevious_, addr);
+    }
 }
 
 
@@ -257,64 +327,68 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
     }
 
     const scalarField Tp(*this);
-    scalarField hp(patch().size(), 0.0);
+    scalarField hp(patch().size(), 0);
 
-    scalarField Qr(Tp.size(), 0.0);
-    if (QrName_ != "none")
+    scalarField qr(Tp.size(), 0);
+    if (qrName_ != "none")
     {
-        Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+        qr =
+            qrRelaxation_
+           *patch().lookupPatchField<volScalarField, scalar>(qrName_)
+          + (1 - qrRelaxation_)*qrPrevious_;
 
-        Qr = QrRelaxation_*Qr + (1.0 - QrRelaxation_)*QrPrevious_;
-        QrPrevious_ = Qr;
+        qrPrevious_ = qr;
     }
 
     switch (mode_)
     {
+        case fixedPower:
+        {
+            refGrad() = (Q_/gSum(patch().magSf()) + qr)/kappa(Tp);
+            refValue() = 0;
+            valueFraction() = 0;
+
+            break;
+        }
         case fixedHeatFlux:
         {
-            refGrad() = (q_ + Qr)/kappa(Tp);
-            refValue() = 0.0;
-            valueFraction() = 0.0;
+            refGrad() = (q_ + qr)/kappa(Tp);
+            refValue() = 0;
+            valueFraction() = 0;
 
             break;
         }
         case fixedHeatTransferCoeff:
         {
-            scalar totalSolidRes = 0.0;
-            if (thicknessLayers_.size() > 0)
+            scalar totalSolidRes = 0;
+            if (thicknessLayers_.size())
             {
                 forAll(thicknessLayers_, iLayer)
                 {
                     const scalar l = thicknessLayers_[iLayer];
-                    if (kappaLayers_[iLayer] > 0.0)
+                    if (kappaLayers_[iLayer] > 0)
                     {
                         totalSolidRes += l/kappaLayers_[iLayer];
                     }
                 }
             }
-            hp = 1.0/(1.0/h_ + totalSolidRes);
+            hp = 1/(1/h_ + totalSolidRes);
 
-            Qr /= Tp;
-            refGrad() = 0.0;
-            refValue() = hp*Ta_/(hp - Qr);
+            qr /= Tp;
+            refGrad() = 0;
+            refValue() = hp*Ta_/(hp - qr);
             valueFraction() =
-                (hp - Qr)/((hp - Qr) + kappa(Tp)*patch().deltaCoeffs());
+                (hp - qr)/((hp - qr) + kappa(Tp)*patch().deltaCoeffs());
 
             break;
         }
-        default:
-        {
-            FatalErrorInFunction
-                << "Illegal heat flux mode " << operationModeNames[mode_]
-                << exit(FatalError);
-        }
     }
 
     mixedFvPatchScalarField::updateCoeffs();
 
     if (debug)
     {
-        scalar Q = gSum(kappa(Tp)*patch().magSf()*snGrad());
+        const scalar Q = gSum(kappa(Tp)*patch().magSf()*snGrad());
 
         Info<< patch().boundaryMesh().mesh().name() << ':'
             << patch().name() << ':'
@@ -334,37 +408,55 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write
     Ostream& os
 ) const
 {
-    mixedFvPatchScalarField::write(os);
-    temperatureCoupledBase::write(os);
+    fvPatchScalarField::write(os);
 
-    QrPrevious_.writeEntry("QrPrevious", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("relaxation")<< QrRelaxation_
-        << token::END_STATEMENT << nl;
+    os.writeKeyword("mode")
+        << operationModeNames[mode_] << token::END_STATEMENT << nl;
+    temperatureCoupledBase::write(os);
 
     switch (mode_)
     {
+        case fixedPower:
+        {
+            os.writeKeyword("Q")
+                << Q_ << token::END_STATEMENT << nl;
 
+            break;
+        }
         case fixedHeatFlux:
         {
             q_.writeEntry("q", os);
+
             break;
         }
         case fixedHeatTransferCoeff:
         {
             h_.writeEntry("h", os);
             Ta_.writeEntry("Ta", os);
-            thicknessLayers_.writeEntry("thicknessLayers", os);
-            kappaLayers_.writeEntry("kappaLayers", os);
+
+            if (thicknessLayers_.size())
+            {
+                thicknessLayers_.writeEntry("thicknessLayers", os);
+                kappaLayers_.writeEntry("kappaLayers", os);
+            }
+
             break;
         }
-        default:
-        {
-            FatalErrorInFunction
-                << "Illegal heat flux mode " << operationModeNames[mode_]
-                << abort(FatalError);
-        }
     }
+
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.writeEntry("qrPrevious", os);
+        os.writeKeyword("qrRelaxation")
+            << qrRelaxation_ << token::END_STATEMENT << nl;
+    }
+
+    refValue().writeEntry("refValue", os);
+    refGrad().writeEntry("refGradient", os);
+    valueFraction().writeEntry("valueFraction", os);
+    writeEntry("value", os);
 }
 
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
index 9b15197851a..2389f60ec37 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,37 +28,41 @@ Group
     grpThermoBoundaryConditions grpWallBoundaryConditions
 
 Description
-    This boundary condition supplies a heat flux condition for temperature
-    on an external wall. Optional thin thermal layer resistances can be
-    specified through thicknessLayers and kappaLayers entries for the
-    fixed heat transfer coefficient mode.
+    This boundary condition applies a heat flux condition to temperature
+    on an external wall in one of three modes:
 
-    The condition can operate in two modes:
-      - fixed heat transfer coefficient: supply h and Ta
+      - fixed power: supply Q
       - fixed heat flux: supply q
+      - fixed heat transfer coefficient: supply h and Ta
 
     where:
     \vartable
-        h  | heat transfer coefficient [W/m^2/K]
-        Ta | ambient temperature [K]
-        q  | heat flux [W/m^2]
+        Q  | Power [W]
+        q  | Heat flux [W/m^2]
+        h  | Heat transfer coefficient [W/m^2/K]
+        Ta | Ambient temperature [K]
     \endvartable
 
+    For heat transfer coefficient mode optional thin thermal layer resistances
+    can be specified through thicknessLayers and kappaLayers entries.
+
     The thermal conductivity \c kappa can either be retrieved from various
     possible sources, as detailed in the class temperatureCoupledBase.
 
 Usage
     \table
-        Property     | Description                 | Required | Default value
-        q            | heat flux [W/m^2]           | yes*     |
-        Ta           | ambient temperature [K]     | yes*     |
-        h            | heat transfer coefficient [W/m^2/K] | yes*|
-        thicknessLayers | list of thicknesses per layer [m] | yes |
-        kappaLayers  | list of thermal conductivities per layer [W/m/K] | yes |
-        Qr           | name of the radiative field | no | no
-        relaxation   | relaxation factor for radiative field | no | 1
-        kappaMethod  | inherited from temperatureCoupledBase | inherited |
-        kappa        | inherited from temperatureCoupledBase | inherited |
+    Property     | Description                 | Required | Default value
+    mode         | 'power', 'flux' or 'coefficient' | yes |
+    Q            | Power [W]                   | for mode 'power'     |
+    q            | Heat flux [W/m^2]           | for mode 'flux'     |
+    h            | Heat transfer coefficient [W/m^2/K] | for mode 'coefficent' |
+    Ta           | Ambient temperature [K]     | for mode 'coefficient' |
+    thicknessLayers | Layer thicknesses [m] | no |
+    kappaLayers  | Layer thermal conductivities [W/m/K] | no |
+    qr           | Name of the radiative field | no | none
+    qrRelaxation | Relaxation factor for radiative field | no | 1
+    kappaMethod  | Inherited from temperatureCoupledBase | inherited |
+    kappa        | Inherited from temperatureCoupledBase | inherited |
     \endtable
 
     Example of the boundary condition specification:
@@ -66,24 +70,23 @@ Usage
     <patchName>
     {
         type            externalWallHeatFluxTemperature;
-        q               uniform 1000;
+
+        mode            coefficient;
+
         Ta              uniform 300.0;
         h               uniform 10.0;
         thicknessLayers (0.1 0.2 0.3 0.4);
         kappaLayers     (1 2 3 4);
-        value           uniform 300.0;
-        Qr              none;
-        relaxation      1;
-        kappaMethod           fluidThermo;
-        kappa       none;
+
+        kappaMethod     fluidThermo;
+
+        value           $internalField;
     }
     \endverbatim
 
-    Note:
-      - Only supply \c h and \c Ta, or \c q in the dictionary (see above)
-
 See also
     Foam::temperatureCoupledBase
+    Foam::mixedFvPatchScalarField
 
 SourceFiles
     externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -117,9 +120,9 @@ public:
         //- Operation mode enumeration
         enum operationMode
         {
+            fixedPower,
             fixedHeatFlux,
-            fixedHeatTransferCoeff,
-            unknown
+            fixedHeatTransferCoeff
         };
 
         static const NamedEnum<operationMode, 3> operationModeNames;
@@ -132,23 +135,26 @@ private:
         //- Operation mode
         operationMode mode_;
 
-        //- Heat flux / [W/m2]
+        //- Heat power [W]
+        scalar Q_;
+
+        //- Heat flux [W/m2]
         scalarField q_;
 
-        //- Heat transfer coefficient / [W/m2K]
+        //- Heat transfer coefficient [W/m2K]
         scalarField h_;
 
-        //- Ambient temperature / [K]
+        //- Ambient temperature [K]
         scalarField Ta_;
 
-        //- Chache Qr for relaxation
-        scalarField QrPrevious_;
+        //- Chache qr for relaxation
+        scalarField qrPrevious_;
 
-        //- Relaxation for Qr
-        scalar QrRelaxation_;
+        //- Relaxation for qr
+        scalar qrRelaxation_;
 
         //- Name of the radiative heat flux
-        const word QrName_;
+        const word qrName_;
 
         //- Thickness of layers
         scalarList thicknessLayers_;
@@ -181,8 +187,8 @@ public:
         );
 
         //- Construct by mapping given
-        // externalWallHeatFluxTemperatureFvPatchScalarField
-        // onto a new patch
+        //  externalWallHeatFluxTemperatureFvPatchScalarField
+        //  onto a new patch
         externalWallHeatFluxTemperatureFvPatchScalarField
         (
             const externalWallHeatFluxTemperatureFvPatchScalarField&,
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
deleted file mode 100644
index 786ceae3e9d..00000000000
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
+++ /dev/null
@@ -1,262 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 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 "turbulentHeatFluxTemperatureFvPatchScalarField.H"
-#include "addToRunTimeSelectionTable.H"
-#include "fvPatchFieldMapper.H"
-#include "volFields.H"
-
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    // declare specialization within 'Foam' namespace
-    template<>
-    const char* NamedEnum
-    <
-        Foam::compressible::
-        turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceType,
-        2
-    >::names[] =
-    {
-        "power",
-        "flux"
-    };
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-
-namespace Foam
-{
-
-namespace compressible
-{
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-const NamedEnum
-<
-    turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceType,
-    2
-> turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceTypeNames_;
-
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF
-)
-:
-    fixedGradientFvPatchScalarField(p, iF),
-    temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
-    heatSource_(hsPower),
-    q_(p.size(), 0.0),
-    QrName_("undefinedQr")
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& ptf,
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
-)
-:
-    fixedGradientFvPatchScalarField(ptf, p, iF, mapper),
-    temperatureCoupledBase(patch(), ptf),
-    heatSource_(ptf.heatSource_),
-    q_(ptf.q_, mapper),
-    QrName_(ptf.QrName_)
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const dictionary& dict
-)
-:
-    fixedGradientFvPatchScalarField(p, iF),
-    temperatureCoupledBase(patch(), dict),
-    heatSource_(heatSourceTypeNames_.read(dict.lookup("heatSource"))),
-    q_("q", dict, p.size()),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none"))
-{
-    if (dict.found("value") && dict.found("gradient"))
-    {
-        fvPatchField<scalar>::operator=(Field<scalar>("value", dict, p.size()));
-        gradient() = Field<scalar>("gradient", dict, p.size());
-    }
-    else
-    {
-        // Still reading so cannot yet evaluate. Make up a value.
-        fvPatchField<scalar>::operator=(patchInternalField());
-        gradient() = 0.0;
-    }
-}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf
-)
-:
-    fixedGradientFvPatchScalarField(thftpsf),
-    temperatureCoupledBase(patch(), thftpsf),
-    heatSource_(thftpsf.heatSource_),
-    q_(thftpsf.q_),
-    QrName_(thftpsf.QrName_)
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf,
-    const DimensionedField<scalar, volMesh>& iF
-)
-:
-    fixedGradientFvPatchScalarField(thftpsf, iF),
-    temperatureCoupledBase(patch(), thftpsf),
-    heatSource_(thftpsf.heatSource_),
-    q_(thftpsf.q_),
-    QrName_(thftpsf.QrName_)
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::autoMap
-(
-    const fvPatchFieldMapper& m
-)
-{
-    fixedGradientFvPatchScalarField::autoMap(m);
-    q_.autoMap(m);
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::rmap
-(
-    const fvPatchScalarField& ptf,
-    const labelList& addr
-)
-{
-    fixedGradientFvPatchScalarField::rmap(ptf, addr);
-
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftptf =
-        refCast<const turbulentHeatFluxTemperatureFvPatchScalarField>
-        (
-            ptf
-        );
-
-    q_.rmap(thftptf.q_, addr);
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
-{
-    if (updated())
-    {
-        return;
-    }
-
-    const scalarField& Tp = *this;
-
-    scalarField qr(this->size(), 0.0);
-
-    //- Qr is negative going into the domain
-    if (QrName_ != "none")
-    {
-        qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
-    }
-
-    switch (heatSource_)
-    {
-        case hsPower:
-        {
-            const scalar Ap = gSum(patch().magSf());
-            gradient() = (q_/Ap + qr)/kappa(Tp);
-            break;
-        }
-        case hsFlux:
-        {
-            gradient() = (q_ + qr)/kappa(Tp);
-            break;
-        }
-        default:
-        {
-            FatalErrorInFunction
-                << "Unknown heat source type. Valid types are: "
-                << heatSourceTypeNames_ << nl << exit(FatalError);
-        }
-    }
-
-    fixedGradientFvPatchScalarField::updateCoeffs();
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::write
-(
-    Ostream& os
-) const
-{
-    fixedGradientFvPatchScalarField::write(os);
-    os.writeKeyword("heatSource") << heatSourceTypeNames_[heatSource_]
-        << token::END_STATEMENT << nl;
-    temperatureCoupledBase::write(os);
-    q_.writeEntry("q", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    writeEntry("value", os);
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-makePatchTypeField
-(
-    fvPatchScalarField,
-    turbulentHeatFluxTemperatureFvPatchScalarField
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
-} // End namespace Foam
-
-
-// ************************************************************************* //
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
deleted file mode 100644
index a19de4fff8a..00000000000
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
+++ /dev/null
@@ -1,231 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 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::compressible::turbulentHeatFluxTemperatureFvPatchScalarField
-
-Description
-    Fixed heat boundary condition to specify temperature gradient. Input
-    heat source either specified in terms of an absolute power [W], or as a
-    flux [W/m^2].
-
-    The thermal conductivity \c kappa can either be retrieved from various
-    possible sources, as detailed in the class temperatureCoupledBase.
-
-Usage
-    \table
-        Property     | Description             | Required    | Default value
-        heatSource   | 'power' [W] or 'flux' [W/m^2] | yes |
-        q            | heat power or flux field      | yes |
-        Qr           | name of the radiative flux field | yes |
-        value        | initial temperature value | no | calculated
-        gradient     | initial gradient value | no | 0.0
-        kappaMethod  | inherited from temperatureCoupledBase | inherited |
-        kappa        | inherited from temperatureCoupledBase | inherited |
-    \endtable
-
-    Note: If needed, both 'value' and 'gradient' must be defined to be used.
-
-    Example usage:
-    \verbatim
-    hotWall
-    {
-        type            compressible::turbulentHeatFluxTemperature;
-        heatSource      flux;
-        q               uniform 10;
-        kappaMethod     fluidThermo;
-        kappa           none;
-        Qr              none;
-    }
-    \endverbatim
-
-See also
-    Foam::temperatureCoupledBase
-
-SourceFiles
-    turbulentHeatFluxTemperatureFvPatchScalarField.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef turbulentHeatFluxTemperatureFvPatchScalarFields_H
-#define turbulentHeatFluxTemperatureFvPatchScalarFields_H
-
-#include "fixedGradientFvPatchFields.H"
-#include "temperatureCoupledBase.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace compressible
-{
-
-/*---------------------------------------------------------------------------*\
-      Class turbulentHeatFluxTemperatureFvPatchScalarField Declaration
-\*---------------------------------------------------------------------------*/
-
-class turbulentHeatFluxTemperatureFvPatchScalarField
-:
-    public fixedGradientFvPatchScalarField,
-    public temperatureCoupledBase
-{
-public:
-
-    // Data types
-
-        //- Enumeration listing the possible hest source input modes
-        enum heatSourceType
-        {
-            hsPower,
-            hsFlux
-        };
-
-
-private:
-
-    // Private data
-
-        //- Heat source type names
-        static const NamedEnum<heatSourceType, 2> heatSourceTypeNames_;
-
-        //- Heat source type
-        heatSourceType heatSource_;
-
-        //- Heat power [W] or flux [W/m2]
-        scalarField q_;
-
-        //- Name of radiative in flux field
-        word QrName_;
-
-
-public:
-
-    //- Runtime type information
-    TypeName("compressible::turbulentHeatFluxTemperature");
-
-
-    // Constructors
-
-        //- Construct from patch and internal field
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const fvPatch&,
-            const DimensionedField<scalar, volMesh>&
-        );
-
-        //- Construct from patch, internal field and dictionary
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const fvPatch&,
-            const DimensionedField<scalar, volMesh>&,
-            const dictionary&
-        );
-
-        //- Construct by mapping given
-        //  turbulentHeatFluxTemperatureFvPatchScalarField onto
-        //  a new patch
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&,
-            const fvPatch&,
-            const DimensionedField<scalar, volMesh>&,
-            const fvPatchFieldMapper&
-        );
-
-        //- Construct as copy
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&
-        );
-
-        //- Construct and return a clone
-        virtual tmp<fvPatchScalarField> clone() const
-        {
-            return tmp<fvPatchScalarField>
-            (
-                new turbulentHeatFluxTemperatureFvPatchScalarField(*this)
-            );
-        }
-
-        //- Construct as copy setting internal field reference
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&,
-            const DimensionedField<scalar, volMesh>&
-        );
-
-        //- Construct and return a clone setting internal field reference
-        virtual tmp<fvPatchScalarField> clone
-        (
-            const DimensionedField<scalar, volMesh>& iF
-        ) const
-        {
-            return tmp<fvPatchScalarField>
-            (
-                new turbulentHeatFluxTemperatureFvPatchScalarField
-                (
-                    *this,
-                    iF
-                )
-            );
-        }
-
-
-    // Member functions
-
-        // Mapping functions
-
-            //- Map (and resize as needed) from self given a mapping object
-            virtual void autoMap(const fvPatchFieldMapper&);
-
-            //- Reverse map the given fvPatchField onto this fvPatchField
-            virtual void rmap
-            (
-                const fvPatchScalarField&,
-                const labelList&
-            );
-
-
-        // Evaluation functions
-
-            //- Update the coefficients associated with the patch field
-            virtual void updateCoeffs();
-
-
-        // I-O
-
-            //- Write
-            virtual void write(Ostream&) const;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
-- 
GitLab


From 5c62d8188056d77604ec732e7628254e7bcf3862 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sat, 8 Apr 2017 22:23:40 +0100
Subject: [PATCH 183/277] radiation: Corrected the name of the radiative heat
 flux from Qr to qr

The standard naming convention for heat flux is "q" and this is used for the
conductive and convective heat fluxes is OpenFOAM.  The use of "Qr" for
radiative heat flux is an anomaly which causes confusion, particularly for
boundary conditions in which "Q" is used to denote power in Watts.  The name of
the radiative heat flux has now been corrected to "qr" and all models, boundary
conditions and tutorials updated.
---
 .../viewFactorsGen/viewFactorsGen.C           | 18 +++---
 .../thermalBaffle1DFvPatchScalarField.C       | 56 ++++++++--------
 .../thermalBaffle1DFvPatchScalarField.H       | 18 +++---
 ...eratureRadCoupledMixedFvPatchScalarField.C | 38 +++++------
 ...eratureRadCoupledMixedFvPatchScalarField.H | 14 ++--
 .../field/wallHeatFlux/wallHeatFlux.C         |  8 +--
 .../reactingOneDim/reactingOneDim.C           | 48 +++++++-------
 .../reactingOneDim/reactingOneDim.H           | 10 +--
 ...sRadiativeCoupledMixedFvPatchScalarField.C | 32 +++++-----
 ...sRadiativeCoupledMixedFvPatchScalarField.H | 10 +--
 .../constantRadiation/constantRadiation.C     |  8 +--
 .../constantRadiation/constantRadiation.H     |  4 +-
 .../primaryRadiation/primaryRadiation.H       |  2 +-
 .../standardRadiation/standardRadiation.C     | 12 ++--
 .../standardRadiation/standardRadiation.H     |  4 +-
 .../thermalBaffleFvPatchScalarField.H         |  4 +-
 ...iffusiveRadiationMixedFvPatchScalarField.C |  4 +-
 ...veViewFactorFixedValueFvPatchScalarField.C | 14 ++--
 ...veViewFactorFixedValueFvPatchScalarField.H | 14 ++--
 ...iffusiveRadiationMixedFvPatchScalarField.C |  4 +-
 .../radiation/radiationModels/P1/P1.C         | 18 +++---
 .../radiation/radiationModels/P1/P1.H         |  4 +-
 .../radiationModels/fvDOM/fvDOM/fvDOM.C       | 18 +++---
 .../radiationModels/fvDOM/fvDOM/fvDOM.H       |  6 +-
 .../radiationModels/fvDOM/fvDOM/fvDOMI.H      |  6 +-
 .../radiativeIntensityRay.C                   | 10 +--
 .../radiativeIntensityRay.H                   |  8 +--
 .../radiativeIntensityRayI.H                  | 10 +--
 .../radiationModels/viewFactor/viewFactor.C   | 64 +++++++++----------
 .../radiationModels/viewFactor/viewFactor.H   |  6 +-
 .../radiationModels/viewFactor/viewFactorI.H  |  7 +-
 .../LES/flameSpreadWaterSuppressionPanel/0/T  |  4 +-
 .../0/pyrolysisRegion/T                       |  4 +-
 .../0/pyrolysisRegion/{Qr => qr}              |  4 +-
 .../constant/pyrolysisZones                   |  4 +-
 .../fireFoam/LES/oppositeBurningPanels/0/T    |  4 +-
 .../LES/oppositeBurningPanels/0/panelRegion/T |  4 +-
 .../0/panelRegion/{Qr => qr}                  |  6 +-
 .../constant/pyrolysisZones                   |  2 +-
 .../smallPoolFire2D/constant/pyrolysisZones   |  2 +-
 .../smallPoolFire3D/constant/pyrolysisZones   |  2 +-
 .../multiRegionHeaterRadiation/0/{Qr => qr}   |  2 +-
 .../multiRegionHeaterRadiation/Allrun.pre     |  2 +-
 .../system/bottomAir/changeDictionaryDict     | 10 +--
 .../system/bottomAir/fvSolution               |  2 +-
 .../system/heater/changeDictionaryDict        |  8 +--
 .../system/leftSolid/changeDictionaryDict     |  8 +--
 .../system/rightSolid/changeDictionaryDict    |  8 +--
 .../system/topAir/changeDictionaryDict        | 10 +--
 .../system/topAir/fvSolution                  |  2 +-
 50 files changed, 283 insertions(+), 284 deletions(-)
 rename tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/{Qr => qr} (94%)
 rename tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/{Qr => qr} (96%)
 rename tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/{Qr => qr} (98%)

diff --git a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
index e5a9f2094e9..d318bd73845 100644
--- a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
+++ b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,7 @@ Description
     Each view factor between the agglomerated faces i and j (Fij) is calculated
     using a double integral of the sub-areas composing the agglomaration.
 
-    The patches involved in the view factor calculation are taken from the Qr
+    The patches involved in the view factor calculation are taken from the qr
     volScalarField (radiative flux) when is greyDiffusiveRadiationViewFactor
     otherwise they are not included.
 
@@ -272,11 +272,11 @@ int main(int argc, char *argv[])
 
     const label debug = viewFactorDict.lookupOrDefault<label>("debug", 0);
 
-    volScalarField Qr
+    volScalarField qr
     (
         IOobject
         (
-            "Qr",
+            "qr",
             runTime.timeName(),
             mesh,
             IOobject::MUST_READ,
@@ -338,17 +338,17 @@ int main(int argc, char *argv[])
 
     labelList viewFactorsPatches(patches.size());
 
-    const volScalarField::Boundary& Qrb = Qr.boundaryField();
+    const volScalarField::Boundary& qrb = qr.boundaryField();
 
     label count = 0;
-    forAll(Qrb, patchi)
+    forAll(qrb, patchi)
     {
         const polyPatch& pp = patches[patchi];
-        const fvPatchScalarField& QrpI = Qrb[patchi];
+        const fvPatchScalarField& qrpI = qrb[patchi];
 
-        if ((isA<fixedValueFvPatchScalarField>(QrpI)) && (pp.size() > 0))
+        if ((isA<fixedValueFvPatchScalarField>(qrpI)) && (pp.size() > 0))
         {
-            viewFactorsPatches[count] = QrpI.patch().index();
+            viewFactorsPatches[count] = qrpI.patch().index();
             nCoarseFaces += coarsePatches[patchi].size();
             nFineFaces += patches[patchi].size();
             count ++;
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
index 71c695e80de..6ed6e4f72af 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,9 +53,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(p.size()),
     solidDict_(),
     solidPtr_(nullptr),
-    QrPrevious_(p.size()),
-    QrRelaxation_(1),
-    QrName_("undefined-Qr")
+    qrPrevious_(p.size()),
+    qrRelaxation_(1),
+    qrName_("undefined-qr")
 {}
 
 
@@ -77,9 +77,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(ptf.Qs_, mapper),
     solidDict_(ptf.solidDict_),
     solidPtr_(ptf.solidPtr_),
-    QrPrevious_(ptf.QrPrevious_, mapper),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_)
+    qrPrevious_(ptf.qrPrevious_, mapper),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_)
 {}
 
 
@@ -100,9 +100,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(p.size(), 0),
     solidDict_(dict),
     solidPtr_(),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none"))
+    qrPrevious_(p.size(), 0.0),
+    qrRelaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
+    qrName_(dict.lookupOrDefault<word>("qr", "none"))
 {
     fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
 
@@ -116,9 +116,9 @@ thermalBaffle1DFvPatchScalarField
         Qs_ = scalarField("Qs", dict, p.size());
     }
 
-    if (dict.found("QrPrevious"))
+    if (dict.found("qrPrevious"))
     {
-        QrPrevious_ = scalarField("QrPrevious", dict, p.size());
+        qrPrevious_ = scalarField("qrPrevious", dict, p.size());
     }
 
     if (dict.found("refValue") && baffleActivated_)
@@ -154,9 +154,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(ptf.Qs_),
     solidDict_(ptf.solidDict_),
     solidPtr_(ptf.solidPtr_),
-    QrPrevious_(ptf.QrPrevious_),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_)
+    qrPrevious_(ptf.qrPrevious_),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_)
 {}
 
 
@@ -176,9 +176,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(ptf.Qs_),
     solidDict_(ptf.solidDict_),
     solidPtr_(ptf.solidPtr_),
-    QrPrevious_(ptf.QrPrevious_),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_)
+    qrPrevious_(ptf.qrPrevious_),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_)
 {}
 
 
@@ -364,15 +364,15 @@ void thermalBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
             patch().template lookupPatchField<volScalarField, scalar>(TName_);
 
 
-        scalarField Qr(Tp.size(), 0.0);
+        scalarField qr(Tp.size(), 0.0);
 
-        if (QrName_ != "none")
+        if (qrName_ != "none")
         {
-            Qr = patch().template lookupPatchField<volScalarField, scalar>
-                (QrName_);
+            qr = patch().template lookupPatchField<volScalarField, scalar>
+                (qrName_);
 
-            Qr = QrRelaxation_*Qr + (1.0 - QrRelaxation_)*QrPrevious_;
-            QrPrevious_ = Qr;
+            qr = qrRelaxation_*qr + (1.0 - qrRelaxation_)*qrPrevious_;
+            qrPrevious_ = qr;
         }
 
         tmp<scalarField> Ti = patchInternalField();
@@ -393,7 +393,7 @@ void thermalBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
 
         scalarField KDeltaSolid(kappas/baffleThickness());
 
-        scalarField alpha(KDeltaSolid - Qr/Tp);
+        scalarField alpha(KDeltaSolid - qr/Tp);
 
         valueFraction() = alpha/(alpha + myKDelta);
 
@@ -435,9 +435,9 @@ void thermalBaffle1DFvPatchScalarField<solidType>::write(Ostream& os) const
         solid().write(os);
     }
 
-    QrPrevious_.writeEntry("QrPrevious", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("relaxation")<< QrRelaxation_
+    qrPrevious_.writeEntry("qrPrevious", os);
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("relaxation")<< qrRelaxation_
         << token::END_STATEMENT << nl;
 }
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
index af6c701bc76..f9491806fec 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
@@ -31,8 +31,8 @@ Description
     This BC solves a steady 1D thermal baffle.
 
     The solid properties are specify as dictionary. Optionaly radiative heat
-    flux (Qr) can be incorporated into the balance. Some under-relaxation might
-    be needed on Qr.  Baffle and solid properties need to be specified on the
+    flux (qr) can be incorporated into the balance. Some under-relaxation might
+    be needed on qr.  Baffle and solid properties need to be specified on the
     master side of the baffle.
 
 Usage
@@ -48,7 +48,7 @@ Usage
         thickness       uniform 0.005;  // thickness [m]
         Qs              uniform 100;    // heat flux [W/m2]
 
-        Qr              none;
+        qr              none;
         relaxation      1;
 
         // Solid thermo
@@ -78,7 +78,7 @@ Usage
         type   compressible::thermalBaffle1D<hConstSolidThermoPhysics>;
         samplePatch     <masterPatchName>;
 
-        Qr              none;
+        qr              none;
         relaxation      1;
     }
     \endverbatim
@@ -132,14 +132,14 @@ class thermalBaffle1DFvPatchScalarField
         //- Solid thermo
         mutable autoPtr<solidType> solidPtr_;
 
-        //- Cache Qr for relaxation
-        scalarField QrPrevious_;
+        //- Cache qr for relaxation
+        scalarField qrPrevious_;
 
-        //- Relaxation for Qr
-        scalar QrRelaxation_;
+        //- Relaxation for qr
+        scalar qrRelaxation_;
 
         //- Name of the radiative heat flux in local region
-        const word QrName_;
+        const word qrName_;
 
 
     // Private members
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
index d69c96ee2c8..d238c6fc903 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,8 +48,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
     TnbrName_("undefined-Tnbr"),
-    QrNbrName_("undefined-QrNbr"),
-    QrName_("undefined-Qr"),
+    qrNbrName_("undefined-qrNbr"),
+    qrName_("undefined-qr"),
     thicknessLayers_(0),
     kappaLayers_(0),
     contactRes_(0)
@@ -72,8 +72,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(psf, p, iF, mapper),
     temperatureCoupledBase(patch(), psf),
     TnbrName_(psf.TnbrName_),
-    QrNbrName_(psf.QrNbrName_),
-    QrName_(psf.QrName_),
+    qrNbrName_(psf.qrNbrName_),
+    qrName_(psf.qrName_),
     thicknessLayers_(psf.thicknessLayers_),
     kappaLayers_(psf.kappaLayers_),
     contactRes_(psf.contactRes_)
@@ -91,8 +91,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), dict),
     TnbrName_(dict.lookupOrDefault<word>("Tnbr", "T")),
-    QrNbrName_(dict.lookupOrDefault<word>("QrNbr", "none")),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none")),
+    qrNbrName_(dict.lookupOrDefault<word>("qrNbr", "none")),
+    qrName_(dict.lookupOrDefault<word>("qr", "none")),
     thicknessLayers_(0),
     kappaLayers_(0),
     contactRes_(0.0)
@@ -152,8 +152,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(psf, iF),
     temperatureCoupledBase(patch(), psf),
     TnbrName_(psf.TnbrName_),
-    QrNbrName_(psf.QrNbrName_),
-    QrName_(psf.QrName_),
+    qrNbrName_(psf.qrNbrName_),
+    qrName_(psf.qrName_),
     thicknessLayers_(psf.thicknessLayers_),
     kappaLayers_(psf.kappaLayers_),
     contactRes_(psf.contactRes_)
@@ -212,22 +212,22 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::updateCoeffs()
 
     scalarField KDelta(kappa(Tp)*patch().deltaCoeffs());
 
-    scalarField Qr(Tp.size(), 0.0);
-    if (QrName_ != "none")
+    scalarField qr(Tp.size(), 0.0);
+    if (qrName_ != "none")
     {
-        Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+        qr = patch().lookupPatchField<volScalarField, scalar>(qrName_);
     }
 
-    scalarField QrNbr(Tp.size(), 0.0);
-    if (QrNbrName_ != "none")
+    scalarField qrNbr(Tp.size(), 0.0);
+    if (qrNbrName_ != "none")
     {
-        QrNbr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrNbrName_);
-        mpp.distribute(QrNbr);
+        qrNbr = nbrPatch.lookupPatchField<volScalarField, scalar>(qrNbrName_);
+        mpp.distribute(qrNbr);
     }
 
     valueFraction() = KDeltaNbr/(KDeltaNbr + KDelta);
     refValue() = TcNbr;
-    refGrad() = (Qr + QrNbr)/kappa(Tp);
+    refGrad() = (qr + qrNbr)/kappa(Tp);
 
     mixedFvPatchScalarField::updateCoeffs();
 
@@ -261,8 +261,8 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::write
 {
     mixedFvPatchScalarField::write(os);
     os.writeKeyword("Tnbr")<< TnbrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("QrNbr")<< QrNbrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("qrNbr")<< qrNbrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
     thicknessLayers_.writeEntry("thicknessLayers", os);
     kappaLayers_.writeEntry("kappaLayers", os);
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
index 27536209654..37691d22d3e 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,8 +38,8 @@ Usage
     \table
         Property     | Description             | Required    | Default value
         Tnbr         | name of the field    | no | T
-        QrNbr      | name of the radiative flux in the nbr region | no | none
-        Qr         | name of the radiative flux in this region | no | none
+        qrNbr      | name of the radiative flux in the nbr region | no | none
+        qr         | name of the radiative flux in this region | no | none
         thicknessLayers | list of thicknesses per layer [m] | no |
         kappaLayers  | list of thermal conductivites per layer [W/m/K] | no |
         kappaMethod  | inherited from temperatureCoupledBase | inherited |
@@ -52,8 +52,8 @@ Usage
     {
         type            compressible::turbulentTemperatureRadCoupledMixed;
         Tnbr            T;
-        QrNbr           Qr; // or none. Name of Qr field on neighbour region
-        Qr              Qr; // or none. Name of Qr field on local region
+        qrNbr           qr; // or none. Name of qr field on neighbour region
+        qr              qr; // or none. Name of qr field on local region
         thicknessLayers (0.1 0.2 0.3 0.4);
         kappaLayers     (1 2 3 4);
         kappaMethod     lookup;
@@ -101,10 +101,10 @@ class turbulentTemperatureRadCoupledMixedFvPatchScalarField
         const word TnbrName_;
 
          //- Name of the radiative heat flux in the neighbout region
-        const word QrNbrName_;
+        const word qrNbrName_;
 
         //- Name of the radiative heat flux in local region
-        const word QrName_;
+        const word qrName_;
 
         //- Thickness of layers
         scalarList thicknessLayers_;
diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
index 67dfc57bff1..2c7531fc880 100644
--- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
+++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,12 +78,12 @@ void Foam::functionObjects::wallHeatFlux::calcHeatFlux
         wallHeatFluxBf[patchi] = heatFluxBf[patchi];
     }
 
-    if (foundObject<volScalarField>("Qr"))
+    if (foundObject<volScalarField>("qr"))
     {
-        const volScalarField& Qr = lookupObject<volScalarField>("Qr");
+        const volScalarField& qr = lookupObject<volScalarField>("qr");
 
         const volScalarField::Boundary& radHeatFluxBf =
-            Qr.boundaryField();
+            qr.boundaryField();
 
         forAll(wallHeatFluxBf, patchi)
         {
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
index 6d6b1aaf18a..81c22ddd5bf 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
@@ -58,7 +58,7 @@ void reactingOneDim::readReactingOneDimControls()
     coeffs().lookup("minimumDelta") >> minimumDelta_;
 
     coeffs().lookup("gasHSource") >> gasHSource_;
-    coeffs().lookup("QrHSource") >> QrHSource_;
+    coeffs().lookup("qrHSource") >> qrHSource_;
     useChemistrySolvers_ =
         coeffs().lookupOrDefault<bool>("useChemistrySolvers", true);
 }
@@ -92,41 +92,41 @@ bool reactingOneDim::read(const dictionary& dict)
 }
 
 
-void reactingOneDim::updateQr()
+void reactingOneDim::updateqr()
 {
-    // Update local Qr from coupled Qr field
-    Qr_ == dimensionedScalar("zero", Qr_.dimensions(), 0.0);
+    // Update local qr from coupled qr field
+    qr_ == dimensionedScalar("zero", qr_.dimensions(), 0.0);
 
     // Retrieve field from coupled region using mapped boundary conditions
-    Qr_.correctBoundaryConditions();
+    qr_.correctBoundaryConditions();
 
-    volScalarField::Boundary& QrBf = Qr_.boundaryFieldRef();
+    volScalarField::Boundary& qrBf = qr_.boundaryFieldRef();
 
     forAll(intCoupledPatchIDs_, i)
     {
         const label patchi = intCoupledPatchIDs_[i];
 
-        // Qr is positive going in the solid
+        // qr is positive going in the solid
         // If the surface is emitting the radiative flux is set to zero
-        QrBf[patchi] = max(QrBf[patchi], scalar(0.0));
+        qrBf[patchi] = max(qrBf[patchi], scalar(0.0));
     }
 
     const vectorField& cellC = regionMesh().cellCentres();
 
     tmp<volScalarField> kappa = kappaRad();
 
-    // Propagate Qr through 1-D regions
+    // Propagate qr through 1-D regions
     label localPyrolysisFacei = 0;
     forAll(intCoupledPatchIDs_, i)
     {
         const label patchi = intCoupledPatchIDs_[i];
 
-        const scalarField& Qrp = Qr_.boundaryField()[patchi];
+        const scalarField& qrp = qr_.boundaryField()[patchi];
         const vectorField& Cf = regionMesh().Cf().boundaryField()[patchi];
 
-        forAll(Qrp, facei)
+        forAll(qrp, facei)
         {
-            const scalar Qr0 = Qrp[facei];
+            const scalar qr0 = qrp[facei];
             point Cf0 = Cf[facei];
             const labelList& cells = boundaryFaceCells_[localPyrolysisFacei++];
             scalar kappaInt = 0.0;
@@ -136,7 +136,7 @@ void reactingOneDim::updateQr()
                 const point& Cf1 = cellC[celli];
                 const scalar delta = mag(Cf1 - Cf0);
                 kappaInt += kappa()[celli]*delta;
-                Qr_[celli] = Qr0*exp(-kappaInt);
+                qr_[celli] = qr0*exp(-kappaInt);
                 Cf0 = Cf1;
             }
         }
@@ -202,9 +202,9 @@ void reactingOneDim::updatePhiGas()
 
 void reactingOneDim::updateFields()
 {
-    if (QrHSource_)
+    if (qrHSource_)
     {
-        updateQr();
+        updateqr();
     }
 
     updatePhiGas();
@@ -332,10 +332,10 @@ void reactingOneDim::solveEnergy()
         hEqn += fvc::div(phiGas);
     }
 
-    if (QrHSource_)
+    if (qrHSource_)
     {
-        const surfaceScalarField phiQr(fvc::interpolate(Qr_)*nMagSf());
-        hEqn += fvc::div(phiQr);
+        const surfaceScalarField phiqr(fvc::interpolate(qr_)*nMagSf());
+        hEqn += fvc::div(phiqr);
     }
 
     if (regionMesh().moving())
@@ -447,11 +447,11 @@ reactingOneDim::reactingOneDim
         dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
     ),
 
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             time().timeName(),
             regionMesh(),
             IOobject::MUST_READ,
@@ -465,7 +465,7 @@ reactingOneDim::reactingOneDim
     totalGasMassFlux_(0.0),
     totalHeatRR_(dimensionedScalar("zero", dimEnergy/dimTime, 0.0)),
     gasHSource_(false),
-    QrHSource_(false),
+    qrHSource_(false),
     useChemistrySolvers_(true)
 {
     if (active_)
@@ -547,11 +547,11 @@ reactingOneDim::reactingOneDim
         dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
     ),
 
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             time().timeName(),
             regionMesh(),
             IOobject::MUST_READ,
@@ -565,7 +565,7 @@ reactingOneDim::reactingOneDim
     totalGasMassFlux_(0.0),
     totalHeatRR_(dimensionedScalar("zero", dimEnergy/dimTime, 0.0)),
     gasHSource_(false),
-    QrHSource_(false),
+    qrHSource_(false),
     useChemistrySolvers_(true)
 {
     if (active_)
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
index a5b6ecfbce5..60083838a7e 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -125,10 +125,10 @@ protected:
 
             //- Coupled region radiative heat flux [W/m2]
             //  Requires user to input mapping info for coupled patches
-            //volScalarField QrCoupled_;
+            //volScalarField qrCoupled_;
 
             //- In depth radiative heat flux [W/m2]
-            volScalarField Qr_;
+            volScalarField qr_;
 
 
         // Checks
@@ -152,7 +152,7 @@ protected:
             bool  gasHSource_;
 
             //- Add in depth radiation source term
-            bool  QrHSource_;
+            bool  qrHSource_;
 
             //- Use chemistry solvers (ode or sequential)
             bool useChemistrySolvers_;
@@ -173,7 +173,7 @@ protected:
         void updateMesh(const scalarField& mass0);
 
         //- Update radiative flux in pyrolysis region
-        void updateQr();
+        void updateqr();
 
         //- Update enthalpy flux for pyrolysis gases
         void updatePhiGas();
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
index e5152f43c4d..dac63860b81 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -110,7 +110,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_("surfaceFilmProperties"),
     pyrolysisRegionName_("pyrolysisProperties"),
     TnbrName_("undefined-Tnbr"),
-    QrName_("undefined-Qr"),
+    qrName_("undefined-qr"),
     convectiveScaling_(1.0),
     filmDeltaDry_(0.0),
     filmDeltaWet_(0.0)
@@ -135,7 +135,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_(psf.filmRegionName_),
     pyrolysisRegionName_(psf.pyrolysisRegionName_),
     TnbrName_(psf.TnbrName_),
-    QrName_(psf.QrName_),
+    qrName_(psf.qrName_),
     convectiveScaling_(psf.convectiveScaling_),
     filmDeltaDry_(psf.filmDeltaDry_),
     filmDeltaWet_(psf.filmDeltaWet_)
@@ -161,7 +161,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
         dict.lookupOrDefault<word>("pyrolysisRegion", "pyrolysisProperties")
     ),
     TnbrName_(dict.lookup("Tnbr")),
-    QrName_(dict.lookup("Qr")),
+    qrName_(dict.lookup("qr")),
     convectiveScaling_(dict.lookupOrDefault<scalar>("convectiveScaling", 1.0)),
     filmDeltaDry_(readScalar(dict.lookup("filmDeltaDry"))),
     filmDeltaWet_(readScalar(dict.lookup("filmDeltaWet")))
@@ -207,7 +207,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_(psf.filmRegionName_),
     pyrolysisRegionName_(psf.pyrolysisRegionName_),
     TnbrName_(psf.TnbrName_),
-    QrName_(psf.QrName_),
+    qrName_(psf.qrName_),
     convectiveScaling_(psf.convectiveScaling_),
     filmDeltaDry_(psf.filmDeltaDry_),
     filmDeltaWet_(psf.filmDeltaWet_)
@@ -268,25 +268,25 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
     const pyrolysisModelType& pyrolysis = pyrModel();
     const filmModelType& film = filmModel();
 
-    // Obtain Rad heat (Qr)
-    scalarField Qr(patch().size(), 0.0);
+    // Obtain Rad heat (qr)
+    scalarField qr(patch().size(), 0.0);
 
     label coupledPatchi = -1;
     if (pyrolysisRegionName_ == mesh.name())
     {
         coupledPatchi = patchi;
-        if (QrName_ != "none")
+        if (qrName_ != "none")
         {
-            Qr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrName_);
-            mpp.distribute(Qr);
+            qr = nbrPatch.lookupPatchField<volScalarField, scalar>(qrName_);
+            mpp.distribute(qr);
         }
     }
     else if (pyrolysis.primaryMesh().name() == mesh.name())
     {
         coupledPatchi = nbrPatch.index();
-        if (QrName_ != "none")
+        if (qrName_ != "none")
         {
-            Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+            qr = patch().lookupPatchField<volScalarField, scalar>(qrName_);
         }
     }
     else
@@ -344,7 +344,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
 
     scalarField qConv(ratio*htcwfilm*(Tfilm - Tp)*convectiveScaling_);
 
-    scalarField qRad((1.0 - ratio)*Qr);
+    scalarField qRad((1.0 - ratio)*qr);
 
     scalarField alpha(KDeltaNbr - (qRad + qConv)/Tp);
 
@@ -357,7 +357,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
     if (debug)
     {
         scalar Qc = gSum(qConv*patch().magSf());
-        scalar Qr = gSum(qRad*patch().magSf());
+        scalar qr = gSum(qRad*patch().magSf());
         scalar Qt = gSum((qConv + qRad)*patch().magSf());
 
         Info<< mesh.name() << ':'
@@ -367,7 +367,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
             << nbrPatch.name() << ':'
             << this->internalField().name() << " :" << nl
             << "     convective heat[W] : " << Qc << nl
-            << "     radiative heat [W] : " << Qr << nl
+            << "     radiative heat [W] : " << qr << nl
             << "     total heat     [W] : " << Qt << nl
             << "     wall temperature "
             << " min:" << gMin(*this)
@@ -399,7 +399,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::write
         pyrolysisRegionName_
     );
     os.writeKeyword("Tnbr")<< TnbrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
     os.writeKeyword("convectiveScaling") << convectiveScaling_
         << token::END_STATEMENT << nl;
     os.writeKeyword("filmDeltaDry") << filmDeltaDry_
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
index 6375c32c863..8f04799d59f 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,7 +35,7 @@ Description
         type            filmPyrolysisRadiativeCoupledMixed;
         Tnbr            T;
         kappa           fluidThermo;
-        Qr              Qr;
+        qr              qr;
         kappaName       none;
         filmDeltaDry    0.0;
         filmDeltaWet    3e-4;
@@ -58,7 +58,7 @@ Description
 
     \verbatim
         qConv = ratio*htcwfilm*(Tfilm - *this);
-        qRad = (1.0 - ratio)*Qr;
+        qRad = (1.0 - ratio)*qr;
     \endverbatim
 
     Then the solid can gain or loose energy through radiation or conduction
@@ -67,7 +67,7 @@ Description
     Notes:
 
     - kappa and \c kappaName are inherited from temperatureCoupledBase.
-    - Qr is the radiative flux defined in the radiation model.
+    - qr is the radiative flux defined in the radiation model.
 
 
 See also
@@ -124,7 +124,7 @@ private:
         const word TnbrName_;
 
         //- Name of the radiative heat flux
-        const word QrName_;
+        const word qrName_;
 
         //- Convective Scaling Factor (as determined by Prateep's tests)
         const scalar convectiveScaling_;
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
index 0dcb6ebe9ca..64c6be61185 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
@@ -56,11 +56,11 @@ constantRadiation::constantRadiation
 )
 :
     filmRadiationModel(typeName, film, dict),
-    QrConst_
+    qrConst_
     (
         IOobject
         (
-            typeName + ":QrConst",
+            typeName + ":qrConst",
             film.time().timeName(),
             film.regionMesh(),
             IOobject::MUST_READ,
@@ -125,10 +125,10 @@ tmp<volScalarField> constantRadiation::Shs()
     if ((time >= timeStart_) && (time <= timeStart_ + duration_))
     {
         scalarField& Shs = tShs.ref();
-        const scalarField& Qr = QrConst_;
+        const scalarField& qr = qrConst_;
         const scalarField& alpha = filmModel_.alpha();
 
-        Shs = mask_*Qr*alpha*absorptivity_;
+        Shs = mask_*qr*alpha*absorptivity_;
     }
 
     return tShs;
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
index 76a2d9a7719..f33dc1dbe8f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
@@ -63,7 +63,7 @@ private:
     // Private data
 
         //- Constant radiative flux [kg/s3]
-        volScalarField QrConst_;
+        volScalarField qrConst_;
 
         //- Radiation mask
         volScalarField mask_;
@@ -115,7 +115,7 @@ public:
             virtual void correct();
 
             //- Return the radiation sensible enthalpy source
-            //  Also updates QrNet
+            //  Also updates qrNet
             virtual tmp<volScalarField> Shs();
 };
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
index 55f9d1a8287..d2b9da585cf 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
@@ -101,7 +101,7 @@ public:
             virtual void correct();
 
             //- Return the radiation sensible enthalpy source
-            //  Also updates QrNet
+            //  Also updates qrNet
             virtual tmp<volScalarField> Shs();
 };
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
index 0c82cf5e33b..f333752847f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
@@ -71,11 +71,11 @@ standardRadiation::standardRadiation
         dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
         film.mappedPushedFieldPatchTypes<scalar>()
     ),
-    QrNet_
+    qrNet_
     (
         IOobject
         (
-            "QrNet",
+            "qrNet",
             film.time().timeName(),
             film.regionMesh(),
             IOobject::NO_READ,
@@ -100,7 +100,7 @@ standardRadiation::~standardRadiation()
 
 void standardRadiation::correct()
 {
-    // Transfer Qr from primary region
+    // Transfer qr from primary region
     QinPrimary_.correctBoundaryConditions();
 }
 
@@ -131,9 +131,9 @@ tmp<volScalarField> standardRadiation::Shs()
 
     Shs = beta_*QinP*alpha*(1.0 - exp(-kappaBar_*delta));
 
-    // Update net Qr on local region
-    QrNet_.primitiveFieldRef() = QinP - Shs;
-    QrNet_.correctBoundaryConditions();
+    // Update net qr on local region
+    qrNet_.primitiveFieldRef() = QinP - Shs;
+    qrNet_.correctBoundaryConditions();
 
     return tShs;
 }
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
index 8a4912bd523..191f1dab9d8 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
@@ -63,7 +63,7 @@ private:
         volScalarField QinPrimary_;
 
         //- Remaining radiative flux after removing local contribution
-        volScalarField QrNet_;
+        volScalarField qrNet_;
 
 
         // Model coefficients
@@ -112,7 +112,7 @@ public:
             virtual void correct();
 
             //- Return the radiation sensible enthalpy source
-            //  Also updates QrNet
+            //  Also updates qrNet
             virtual tmp<volScalarField> Shs();
 };
 
diff --git a/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H b/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
index b29bab13a4e..bc8bcf848de 100644
--- a/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
+++ b/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
@@ -54,8 +54,8 @@ Usage
         Tnbr               T;
         kappa              fluidThermo; // or solidThermo
         KappaName          none;
-        QrNbr              Qr;//or none.Name of Qr field on neighbourregion
-        Qr                 none;// or none.Name of Qr field on localregion
+        qrNbr              qr;//or none.Name of qr field on neighbourregion
+        qr                 none;// or none.Name of qr field on localregion
         value              uniform 300;
 
         // Baffle region name
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
index cd4d4827d2f..f5723b6e29e 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -185,7 +185,7 @@ updateCoeffs()
 
     const scalarField nAve(n & ray.dAve());
 
-    ray.Qr().boundaryFieldRef()[patchi] += Iw*nAve;
+    ray.qr().boundaryFieldRef()[patchi] += Iw*nAve;
 
     const scalarField temissivity = emissivity();
 
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
index 591d6d1964c..70110f20e32 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 :
     fixedValueFvPatchScalarField(p, iF),
     radiationCoupledBase(patch(), "undefined", scalarField::null()),
-    Qro_(p.size(), 0.0)
+    qro_(p.size(), 0.0)
 {}
 
 
@@ -60,7 +60,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
         ptf.emissivityMethod(),
         ptf.emissivity_
     ),
-    Qro_(ptf.Qro_)
+    qro_(ptf.qro_)
 {}
 
 
@@ -74,7 +74,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 :
     fixedValueFvPatchScalarField(p, iF, dict, false),
     radiationCoupledBase(p, dict),
-    Qro_("Qro", dict, p.size())
+    qro_("qro", dict, p.size())
 {
     if (dict.found("value"))
     {
@@ -104,7 +104,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
         ptf.emissivityMethod(),
         ptf.emissivity_
     ),
-    Qro_(ptf.Qro_)
+    qro_(ptf.qro_)
 {}
 
 
@@ -122,7 +122,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
         ptf.emissivityMethod(),
         ptf.emissivity_
     ),
-    Qro_(ptf.Qro_)
+    qro_(ptf.qro_)
 {}
 
 
@@ -163,7 +163,7 @@ write
 {
     fixedValueFvPatchScalarField::write(os);
     radiationCoupledBase::write(os);
-    Qro_.writeEntry("Qro", os);
+    qro_.writeEntry("qro", os);
 }
 
 
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
index 7a5085c9518..ea5cbac6225 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,12 +29,12 @@ Group
 
 Description
     This boundary condition provides a grey-diffuse condition for radiative
-    heat flux, \c Qr, for use with the view factor model
+    heat flux, \c qr, for use with the view factor model
 
 Usage
     \table
         Property     | Description             | Required    | Default value
-        Qro          | external radiative heat flux | yes    |
+        qro          | external radiative heat flux | yes    |
         emissivityMode | emissivity mode: solidRadiation or lookup | yes |
     \endtable
 
@@ -43,7 +43,7 @@ Usage
     <patchName>
     {
         type            greyDiffusiveRadiationViewFactor;
-        Qro             uniform 0;
+        qro             uniform 0;
         emissivityMode  solidRadiation;
         value           uniform 0;
     }
@@ -85,7 +85,7 @@ class greyDiffusiveViewFactorFixedValueFvPatchScalarField
     // Private data
 
         //- External radiative heat flux
-        scalarField Qro_;
+        scalarField qro_;
 
 
 public:
@@ -165,9 +165,9 @@ public:
         // Access
 
             //- Return external radiative heat flux
-            const scalarList& Qro()
+            const scalarList& qro()
             {
-                return Qro_;
+                return qro_;
             }
 
 
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
index d77a56a845c..21654e15429 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -186,7 +186,7 @@ updateCoeffs()
 
     const scalarField nAve(n & ray.dAve());
 
-    ray.Qr().boundaryFieldRef()[patchi] += Iw*nAve;
+    ray.qr().boundaryFieldRef()[patchi] += Iw*nAve;
 
     const scalarField Eb
     (
diff --git a/src/thermophysicalModels/radiation/radiationModels/P1/P1.C b/src/thermophysicalModels/radiation/radiationModels/P1/P1.C
index 3032cca499e..edb306e321a 100644
--- a/src/thermophysicalModels/radiation/radiationModels/P1/P1.C
+++ b/src/thermophysicalModels/radiation/radiationModels/P1/P1.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,18 +62,18 @@ Foam::radiation::P1::P1(const volScalarField& T)
         ),
         mesh_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     a_
     (
@@ -132,18 +132,18 @@ Foam::radiation::P1::P1(const dictionary& dict, const volScalarField& T)
         ),
         mesh_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     a_
     (
@@ -242,14 +242,14 @@ void Foam::radiation::P1::calculate()
       - 4.0*(e_*physicoChemical::sigma*pow4(T_) ) - E_
     );
 
-    volScalarField::Boundary& QrBf = Qr_.boundaryFieldRef();
+    volScalarField::Boundary& qrBf = qr_.boundaryFieldRef();
 
     // Calculate radiative heat flux on boundaries.
     forAll(mesh_.boundaryMesh(), patchi)
     {
         if (!G_.boundaryField()[patchi].coupled())
         {
-            QrBf[patchi] =
+            qrBf[patchi] =
                 -gamma.boundaryField()[patchi]
                 *G_.boundaryField()[patchi].snGrad();
         }
diff --git a/src/thermophysicalModels/radiation/radiationModels/P1/P1.H b/src/thermophysicalModels/radiation/radiationModels/P1/P1.H
index 38cdd4fcfa5..b4a5044a115 100644
--- a/src/thermophysicalModels/radiation/radiationModels/P1/P1.H
+++ b/src/thermophysicalModels/radiation/radiationModels/P1/P1.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ class P1
         volScalarField G_;
 
         //- Total radiative heat flux [W/m2]
-        volScalarField Qr_;
+        volScalarField qr_;
 
         //- Absorption coefficient
         volScalarField a_;
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
index 164534ff575..01db9565a36 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -222,18 +222,18 @@ Foam::radiation::fvDOM::fvDOM(const volScalarField& T)
         mesh_,
         dimensionedScalar("G", dimMass/pow3(dimTime), 0.0)
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     Qem_
     (
@@ -309,18 +309,18 @@ Foam::radiation::fvDOM::fvDOM
         mesh_,
         dimensionedScalar("G", dimMass/pow3(dimTime), 0.0)
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     Qem_
     (
@@ -490,7 +490,7 @@ void Foam::radiation::fvDOM::updateBlackBodyEmission()
 void Foam::radiation::fvDOM::updateG()
 {
     G_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
-    Qr_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
+    qr_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
     Qem_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
     Qin_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
 
@@ -498,7 +498,7 @@ void Foam::radiation::fvDOM::updateG()
     {
         IRay_[rayI].addIntensity();
         G_ += IRay_[rayI].I()*IRay_[rayI].omega();
-        Qr_.boundaryFieldRef() += IRay_[rayI].Qr().boundaryField();
+        qr_.boundaryFieldRef() += IRay_[rayI].qr().boundaryField();
         Qem_.boundaryFieldRef() += IRay_[rayI].Qem().boundaryField();
         Qin_.boundaryFieldRef() += IRay_[rayI].Qin().boundaryField();
     }
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H
index 1154b6cafcb..ed853850e76 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,7 +89,7 @@ class fvDOM
         volScalarField G_;
 
         //- Total radiative heat flux [W/m2]
-        volScalarField Qr_;
+        volScalarField qr_;
 
          //- Emmited radiative heat flux [W/m2]
         volScalarField Qem_;
@@ -228,7 +228,7 @@ public:
             inline const volScalarField& G() const;
 
             //- Const access to total radiative heat flux field
-            inline const volScalarField& Qr() const;
+            inline const volScalarField& qr() const;
 
             //- Const access to incident radiative heat flux field
             inline const volScalarField& Qin() const;
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H
index d2255b2de08..6197b88e135 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,9 +86,9 @@ inline const Foam::volScalarField& Foam::radiation::fvDOM::G() const
 }
 
 
-inline const Foam::volScalarField& Foam::radiation::fvDOM::Qr() const
+inline const Foam::volScalarField& Foam::radiation::fvDOM::qr() const
 {
-    return Qr_;
+    return qr_;
 }
 
 inline const Foam::volScalarField& Foam::radiation::fvDOM::Qin() const
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
index d7765413840..2efa48026d8 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -69,18 +69,18 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
         mesh_,
         dimensionedScalar("I", dimMass/pow3(dimTime), 0.0)
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr" + name(rayId),
+            "qr" + name(rayId),
             mesh_.time().timeName(),
             mesh_,
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     Qin_
     (
@@ -206,7 +206,7 @@ Foam::radiation::radiativeIntensityRay::~radiativeIntensityRay()
 Foam::scalar Foam::radiation::radiativeIntensityRay::correct()
 {
     // Reset boundary heat flux to zero
-    Qr_.boundaryFieldRef() = 0.0;
+    qr_.boundaryFieldRef() = 0.0;
 
     scalar maxResidual = -GREAT;
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H
index e98081378e6..2dc4eb41134 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,7 @@ private:
         volScalarField I_;
 
         //- Total radiative heat flux on boundary
-        volScalarField Qr_;
+        volScalarField qr_;
 
         //- Incident radiative heat flux on boundary
         volScalarField Qin_;
@@ -176,10 +176,10 @@ public:
             inline const volScalarField& I() const;
 
             //- Return const access to the boundary heat flux
-            inline const volScalarField& Qr() const;
+            inline const volScalarField& qr() const;
 
             //- Return non-const access to the boundary heat flux
-            inline volScalarField& Qr();
+            inline volScalarField& qr();
 
             //- Return non-const access to the boundary incident heat flux
             inline volScalarField& Qin();
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H
index 8761f900b4f..d307d890bc0 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,15 +31,15 @@ Foam::radiation::radiativeIntensityRay::I() const
 
 
 inline const Foam::volScalarField&
-Foam::radiation::radiativeIntensityRay::Qr() const
+Foam::radiation::radiativeIntensityRay::qr() const
 {
-    return Qr_;
+    return qr_;
 }
 
 
-inline Foam::volScalarField& Foam::radiation::radiativeIntensityRay::Qr()
+inline Foam::volScalarField& Foam::radiation::radiativeIntensityRay::qr()
 {
-    return Qr_;
+    return qr_;
 }
 
 inline const Foam::volScalarField& Foam::radiation::
diff --git a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C
index d768cd39426..47e7e2fadf5 100644
--- a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C
+++ b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,17 +49,17 @@ namespace Foam
 void Foam::radiation::viewFactor::initialise()
 {
     const polyBoundaryMesh& coarsePatches = coarseMesh_.boundaryMesh();
-    const volScalarField::Boundary& Qrp = Qr_.boundaryField();
+    const volScalarField::Boundary& qrp = qr_.boundaryField();
 
     label count = 0;
-    forAll(Qrp, patchi)
+    forAll(qrp, patchi)
     {
         //const polyPatch& pp = mesh_.boundaryMesh()[patchi];
-        const fvPatchScalarField& QrPatchi = Qrp[patchi];
+        const fvPatchScalarField& qrPatchi = qrp[patchi];
 
-        if ((isA<fixedValueFvPatchScalarField>(QrPatchi)))
+        if ((isA<fixedValueFvPatchScalarField>(qrPatchi)))
         {
-            selectedPatches_[count] = QrPatchi.patch().index();
+            selectedPatches_[count] = qrPatchi.patch().index();
             nLocalCoarseFaces_ += coarsePatches[patchi].size();
             count++;
         }
@@ -264,11 +264,11 @@ Foam::radiation::viewFactor::viewFactor(const volScalarField& T)
         mesh_,
         finalAgglom_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::MUST_READ,
@@ -322,11 +322,11 @@ Foam::radiation::viewFactor::viewFactor
         mesh_,
         finalAgglom_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::MUST_READ,
@@ -394,7 +394,7 @@ void Foam::radiation::viewFactor::insertMatrixElements
 void Foam::radiation::viewFactor::calculate()
 {
     // Store previous iteration
-    Qr_.storePrevIter();
+    qr_.storePrevIter();
 
     scalarField compactCoarseT(map_->constructSize(), 0.0);
     scalarField compactCoarseE(map_->constructSize(), 0.0);
@@ -407,7 +407,7 @@ void Foam::radiation::viewFactor::calculate()
     DynamicList<scalar> localCoarseEave(nLocalCoarseFaces_);
     DynamicList<scalar> localCoarseHoave(nLocalCoarseFaces_);
 
-    volScalarField::Boundary& QrBf = Qr_.boundaryFieldRef();
+    volScalarField::Boundary& qrBf = qr_.boundaryFieldRef();
 
     forAll(selectedPatches_, i)
     {
@@ -416,17 +416,17 @@ void Foam::radiation::viewFactor::calculate()
         const scalarField& Tp = T_.boundaryField()[patchID];
         const scalarField& sf = mesh_.magSf().boundaryField()[patchID];
 
-        fvPatchScalarField& QrPatch = QrBf[patchID];
+        fvPatchScalarField& qrPatch = qrBf[patchID];
 
-        greyDiffusiveViewFactorFixedValueFvPatchScalarField& Qrp =
+        greyDiffusiveViewFactorFixedValueFvPatchScalarField& qrp =
             refCast
             <
                 greyDiffusiveViewFactorFixedValueFvPatchScalarField
-            >(QrPatch);
+            >(qrPatch);
 
-        const scalarList eb = Qrp.emissivity();
+        const scalarList eb = qrp.emissivity();
 
-        const scalarList& Hoi = Qrp.Qro();
+        const scalarList& Hoi = qrp.qro();
 
         const polyPatch& pp = coarseMesh_.boundaryMesh()[patchID];
         const labelList& coarsePatchFace = coarseMesh_.patchFaceMap()[patchID];
@@ -499,23 +499,23 @@ void Foam::radiation::viewFactor::calculate()
     // Create global size vectors
     scalarField T(totalNCoarseFaces_, 0.0);
     scalarField E(totalNCoarseFaces_, 0.0);
-    scalarField QrExt(totalNCoarseFaces_, 0.0);
+    scalarField qrExt(totalNCoarseFaces_, 0.0);
 
     // Fill lists from compact to global indexes.
     forAll(compactCoarseT, i)
     {
         T[compactGlobalIds[i]] = compactCoarseT[i];
         E[compactGlobalIds[i]] = compactCoarseE[i];
-        QrExt[compactGlobalIds[i]] = compactCoarseHo[i];
+        qrExt[compactGlobalIds[i]] = compactCoarseHo[i];
     }
 
     Pstream::listCombineGather(T, maxEqOp<scalar>());
     Pstream::listCombineGather(E, maxEqOp<scalar>());
-    Pstream::listCombineGather(QrExt, maxEqOp<scalar>());
+    Pstream::listCombineGather(qrExt, maxEqOp<scalar>());
 
     Pstream::listCombineScatter(T);
     Pstream::listCombineScatter(E);
-    Pstream::listCombineScatter(QrExt);
+    Pstream::listCombineScatter(qrExt);
 
     // Net radiation
     scalarField q(totalNCoarseFaces_, 0.0);
@@ -538,7 +538,7 @@ void Foam::radiation::viewFactor::calculate()
                     if (i==j)
                     {
                         C(i, j) = invEj - (invEj - 1.0)*Fmatrix_()(i, j);
-                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4 - QrExt[j];
+                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4 - qrExt[j];
                     }
                     else
                     {
@@ -594,7 +594,7 @@ void Foam::radiation::viewFactor::calculate()
 
                     if (i==j)
                     {
-                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4  - QrExt[j];
+                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4  - qrExt[j];
                     }
                     else
                     {
@@ -614,7 +614,7 @@ void Foam::radiation::viewFactor::calculate()
         }
     }
 
-    // Scatter q and fill Qr
+    // Scatter q and fill qr
     Pstream::listCombineScatter(q);
     Pstream::listCombineGather(q, maxEqOp<scalar>());
 
@@ -625,7 +625,7 @@ void Foam::radiation::viewFactor::calculate()
         const polyPatch& pp = mesh_.boundaryMesh()[patchID];
         if (pp.size() > 0)
         {
-            scalarField& Qrp = QrBf[patchID];
+            scalarField& qrp = qrBf[patchID];
             const scalarField& sf = mesh_.magSf().boundaryField()[patchID];
             const labelList& agglom = finalAgglom_[patchID];
             label nAgglom = max(agglom)+1;
@@ -646,8 +646,8 @@ void Foam::radiation::viewFactor::calculate()
                 {
                     label facei = fineFaces[k];
 
-                    Qrp[facei] = q[globalCoarse];
-                    heatFlux += Qrp[facei]*sf[facei];
+                    qrp[facei] = q[globalCoarse];
+                    heatFlux += qrp[facei]*sf[facei];
                 }
                 globCoarseId ++;
             }
@@ -656,11 +656,11 @@ void Foam::radiation::viewFactor::calculate()
 
     if (debug)
     {
-        forAll(QrBf, patchID)
+        forAll(qrBf, patchID)
         {
-            const scalarField& Qrp = QrBf[patchID];
+            const scalarField& qrp = qrBf[patchID];
             const scalarField& magSf = mesh_.magSf().boundaryField()[patchID];
-            scalar heatFlux = gSum(Qrp*magSf);
+            scalar heatFlux = gSum(qrp*magSf);
 
             InfoInFunction
                 << "Total heat transfer rate at patch: "
@@ -669,8 +669,8 @@ void Foam::radiation::viewFactor::calculate()
         }
     }
 
-    // Relax Qr if necessary
-    Qr_.relax();
+    // Relax qr if necessary
+    qr_.relax();
 }
 
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H
index 86d244339cd..1b3c56e0abf 100644
--- a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H
+++ b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,7 @@ class viewFactor
         singleCellFvMesh coarseMesh_;
 
         //- Net radiative heat flux [W/m2]
-        volScalarField Qr_;
+        volScalarField qr_;
 
         //- View factor matrix
         autoPtr<scalarSquareMatrix> Fmatrix_;
@@ -168,7 +168,7 @@ public:
     // Access
 
         //- Const access to total radiative heat flux field
-        inline const volScalarField& Qr() const;
+        inline const volScalarField& qr() const;
 };
 
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H
index e45f9a8ba0b..b03f886ab21 100644
--- a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H
+++ b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,11 +23,10 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-inline const Foam::volScalarField& Foam::radiation::viewFactor::Qr() const
+inline const Foam::volScalarField& Foam::radiation::viewFactor::qr() const
 {
-    return Qr_;
+    return qr_;
 }
 
 
-
 // ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
index 6e4926f22c5..bce2317b717 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
@@ -53,8 +53,8 @@ boundaryField
         filmRegion      filmRegion;
         Tnbr            T;
         kappaMethod     fluidThermo;
-        QrNbr           none;
-        Qr              Qr;
+        qrNbr           none;
+        qr              qr;
         filmDeltaDry    0.0;
         filmDeltaWet    2e-4;
         value           $internalField;
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
index 6a25deb6ac8..e7825bfa052 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
@@ -38,8 +38,8 @@ boundaryField
         filmRegion      filmRegion;
         Tnbr            T;
         kappaMethod     solidThermo;
-        QrNbr           Qr;
-        Qr              none;
+        qrNbr           qr;
+        qr              none;
         filmDeltaDry    0.0;
         filmDeltaWet    2e-4;
         value           uniform 298;
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/qr
similarity index 94%
rename from tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/qr
index 688990cd480..b5677efa715 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/qr
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      Qr;
+    object      qr;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -38,7 +38,7 @@ boundaryField
         sampleMode      nearestPatchFace;
         samplePatch     region0_to_pyrolysisRegion_coupledWall;
         offset          (0 0 0);
-        field       Qr; // this is the name of Qr field in region0
+        field       qr; // this is the name of qr field in region0
         setAverage      no;
         average         0;
         value           uniform 0;
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
index d988145a1ce..b240d80b883 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
@@ -28,9 +28,9 @@ pyrolysis
         filmCoupled     true;
 
         gasHSource      true;
-        QrHSource       false;
+        qrHSource       false;
 
-        radFluxName     Qr;
+        radFluxName     qr;
 
         moveMesh        false; // true;
         minimumDelta    1e-6;
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
index da6eb73e6eb..8a8763bd359 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
@@ -51,8 +51,8 @@ boundaryField
         type            compressible::turbulentTemperatureRadCoupledMixed;
         Tnbr            T;
         kappaMethod     fluidThermo;
-        QrNbr           none;
-        Qr              Qr;
+        qrNbr           none;
+        qr              qr;
         value           $internalField;
     }
 }
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
index 386d3ff0bdf..2d309bd1aab 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
@@ -42,8 +42,8 @@ boundaryField
         type            compressible::turbulentTemperatureRadCoupledMixed;
         Tnbr            T;
         kappaMethod     solidThermo;
-        QrNbr           Qr;
-        Qr              none;
+        qrNbr           qr;
+        qr              none;
         value           uniform 298.15;
     }
 
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/qr
similarity index 96%
rename from tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/qr
index ad9baa15862..c1ca71db756 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/qr
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      Qr;
+    object      qr;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -43,7 +43,7 @@ boundaryField
         sampleMode      nearestPatchFace;
         samplePatch     region0_to_panelRegion_fLeft_zone;
         offset          (0 0 0);
-        field       Qr;
+        field       qr;
         setAverage      no;
         average         0;
         value           uniform 0;
@@ -56,7 +56,7 @@ boundaryField
         sampleMode      nearestPatchFace;
         samplePatch     region0_to_panelRegion_fRight_zone;
         offset          (0 0 0);
-        field       Qr;
+        field       qr;
         setAverage      no;
         average         0;
         value           uniform 0;
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
index 2c505a9ecb2..8ab8cca2907 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
@@ -26,7 +26,7 @@ pyrolysis
     reactingOneDimCoeffs
     {
         gasHSource      false; //Energy source term due to pyrolysis gas
-        QrHSource       false; //Energy source term due in depht radiation
+        qrHSource       false; //Energy source term due in depht radiation
         minimumDelta    1e-12;
 
         reactionDeltaMin 1e-12;
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
index d556e449ab3..4cc5fcb097b 100644
--- a/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
@@ -25,7 +25,7 @@ pyrolysis
 
     reactingOneDimCoeffs
     {
-        radFluxName     Qr;
+        radFluxName     qr;
 
         minimumDelta    1e-8;
 
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
index d556e449ab3..4cc5fcb097b 100644
--- a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
@@ -25,7 +25,7 @@ pyrolysis
 
     reactingOneDimCoeffs
     {
-        radFluxName     Qr;
+        radFluxName     qr;
 
         minimumDelta    1e-8;
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/Qr b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/qr
similarity index 98%
rename from tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/Qr
rename to tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/qr
index 12ee0f2fe9b..b7ec5160437 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/Qr
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/qr
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      Qr;
+    object      qr;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
index 22b2e59f126..e2f33a7785d 100755
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
@@ -12,7 +12,7 @@ runApplication splitMeshRegions -cellZones -overwrite
 # remove fluid fields from solid regions (important for post-processing)
 for i in heater leftSolid rightSolid
 do
-   rm -f 0*/$i/{rho,nut,alphat,epsilon,k,U,p_rgh,Qr,G,IDefault}
+   rm -f 0*/$i/{rho,nut,alphat,epsilon,k,U,p_rgh,qr,G,IDefault}
 done
 
 for i in bottomAir topAir heater leftSolid rightSolid
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict
index e49858a25bd..7be44a3a52f 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict
@@ -54,8 +54,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     fluidThermo;
-            QrNbr           none;
-            Qr              Qr;
+            qrNbr           none;
+            qr              qr;
             value           uniform 300;
         }
     }
@@ -113,7 +113,7 @@ p
     }
 }
 
-Qr
+qr
 {
     internalField   uniform 0;
     boundaryField
@@ -122,7 +122,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  lookup;
-            Qro             uniform 0;
+            qro             uniform 0;
             emissivity      uniform 1.0;
             value           uniform 0;
         }
@@ -131,7 +131,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  solidRadiation;
-            Qro             uniform 0;
+            qro             uniform 0;
             value           uniform 0;
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution
index 2f353374cdc..e4ba12e773c 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution
@@ -74,7 +74,7 @@ relaxationFactors
         "(k|epsilon|omega)" 0.7;
         G               0.7;
         "ILambda.*"     0.7;
-        Qr              0.7;
+        qr              0.7;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict
index d654d223718..d27d0cbf24b 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict
@@ -47,8 +47,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
@@ -57,8 +57,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict
index 8cda0f66e00..a22671d9cd0 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict
@@ -43,8 +43,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
@@ -53,8 +53,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict
index a6a455047ce..039be56e01d 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict
@@ -43,8 +43,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
@@ -53,8 +53,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict
index 81d906dbd9b..81ef8f2f7ea 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict
@@ -65,8 +65,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     fluidThermo;
-            QrNbr           none;
-            Qr              Qr;
+            qrNbr           none;
+            qr              qr;
             value           uniform 300;
         }
     }
@@ -160,7 +160,7 @@ p
     }
 }
 
-Qr
+qr
 {
     internalField   uniform 0;
     boundaryField
@@ -169,7 +169,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  lookup;
-            Qro             uniform 0;
+            qro             uniform 0;
             emissivity      uniform 1.0;
             value           uniform 0;
         }
@@ -178,7 +178,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  solidRadiation;
-            Qro             uniform 0;
+            qro             uniform 0;
             value           uniform 0;
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
index 2f353374cdc..e4ba12e773c 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
@@ -74,7 +74,7 @@ relaxationFactors
         "(k|epsilon|omega)" 0.7;
         G               0.7;
         "ILambda.*"     0.7;
-        Qr              0.7;
+        qr              0.7;
     }
 }
 
-- 
GitLab


From 837cbafcf387140a01610fec55ee9ddcb3a2065e Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Tue, 11 Apr 2017 10:31:23 +0200
Subject: [PATCH 184/277] ENH: improve handling of surface self-intersection
 (issue #450)

- provide a dedicated constructor to handle this special case.

  Tolerancing when cutting between two surfaces likely needs some
  more attention.
---
 .../surfaceIntersection/surfaceIntersection.C | 567 ++++++++----------
 .../surfaceIntersection/surfaceIntersection.H |  59 +-
 .../surfaceFeatures/surfaceFeatures.H         |   1 +
 3 files changed, 291 insertions(+), 336 deletions(-)

diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
index a98dd53e915..4eca27e13d4 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
@@ -40,6 +40,8 @@ namespace Foam
 defineTypeNameAndDebug(surfaceIntersection, 0);
 }
 
+const Foam::scalar Foam::surfaceIntersection::defaultTolerance = 1e-3;
+
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
@@ -60,7 +62,7 @@ bool Foam::surfaceIntersection::excludeEdgeHit
 
     forAll(f, fp)
     {
-        if (f[0] == e.start() || f[0] == e.end())
+        if (f[fp] == e.start() || f[fp] == e.end())
         {
             return true;
         }
@@ -194,29 +196,52 @@ bool Foam::surfaceIntersection::excludeEdgeHit
 
 void Foam::surfaceIntersection::storeIntersection
 (
-    const bool isFirstSurf,
+    const enum originatingType cutFrom,
     const labelList& facesA,
     const label faceB,
     DynamicList<edge>& allCutEdges,
     DynamicList<point>& allCutPoints
 )
 {
+    // Our lookup for two faces - populate with faceB (invariant)
+    // Normally always have face from the first surface as first element
+    labelPair twoFaces(faceB, faceB);
+
+    const label pointId = allCutPoints.size()-1;
+
     forAll(facesA, facesAI)
     {
-        label faceA = facesA[facesAI];
+        const label faceA = facesA[facesAI];
 
-        // Combine two faces. Always make sure the face from the first surface
-        // is element 0.
-        FixedList<label, 2> twoFaces;
-        if (isFirstSurf)
+        switch (cutFrom)
         {
-            twoFaces[0] = faceA;
-            twoFaces[1] = faceB;
-        }
-        else
-        {
-            twoFaces[0] = faceB;
-            twoFaces[1] = faceA;
+            case surfaceIntersection::FIRST:
+            {
+                // faceA from 1st, faceB from 2nd
+                twoFaces.first() = faceA;
+                break;
+            }
+            case surfaceIntersection::SECOND:
+            {
+                // faceA from 2nd, faceB from 1st
+                twoFaces.second() = faceA;
+                break;
+            }
+            case surfaceIntersection::SELF:
+            {
+                // Lookup should be commutativity - use sorted order
+                if (faceA < faceB)
+                {
+                    twoFaces.first()  = faceA;
+                    twoFaces.second() = faceB;
+                }
+                else
+                {
+                    twoFaces.first()  = faceB;
+                    twoFaces.second() = faceA;
+                }
+                break;
+            }
         }
 
         labelPairLookup::const_iterator iter = facePairToVertex_.find(twoFaces);
@@ -224,7 +249,7 @@ void Foam::surfaceIntersection::storeIntersection
         if (iter == facePairToVertex_.end())
         {
             // New intersection. Store face-face intersection.
-            facePairToVertex_.insert(twoFaces, allCutPoints.size()-1);
+            facePairToVertex_.insert(twoFaces, pointId);
         }
         else
         {
@@ -240,18 +265,17 @@ void Foam::surfaceIntersection::storeIntersection
             {
                 WarningInFunction
                     << "Encountered degenerate edge between face "
-                    << twoFaces[0] << " on first surface"
-                    << " and face " << twoFaces[1] << " on second surface"
-                    << endl
+                    << twoFaces[0] << " on first surface and face "
+                    << twoFaces[1] << " on second surface" << endl
                     << "Point on first surface:" << prevHit << endl
                     << "Point on second surface:" << thisHit << endl
                     << endl;
             }
             else
             {
-                allCutEdges.append(edge(*iter, allCutPoints.size()-1));
+                allCutEdges.append(edge(*iter, pointId));
 
-                // Remember face on surf
+                // Record intersection of faces on surf
                 facePairToEdge_.insert(twoFaces, allCutEdges.size()-1);
             }
         }
@@ -274,9 +298,8 @@ void Foam::surfaceIntersection::classifyHit
     const triSurface& surf1,
     const scalarField& surf1PointTol,
     const triSurface& surf2,
-    const bool isFirstSurf,
+    const enum originatingType cutFrom,
     const label edgeI,
-    const scalar tolDim,
     const pointIndexHit& pHit,
 
     DynamicList<edge>& allCutEdges,
@@ -301,7 +324,7 @@ void Foam::surfaceIntersection::classifyHit
     f2.nearestPointClassify(pHit.hitPoint(), surf2Pts, nearType, nearLabel);
 
     // Classify points on edge of surface1
-    label edgeEnd =
+    const label edgeEnd =
         classify
         (
             surf1PointTol[e.start()],
@@ -344,7 +367,7 @@ void Foam::surfaceIntersection::classifyHit
             {
                 storeIntersection
                 (
-                    isFirstSurf,
+                    cutFrom,
                     facesA,
                     facesB[faceBI],
                     allCutEdges,
@@ -362,7 +385,7 @@ void Foam::surfaceIntersection::classifyHit
             label edge2I = getEdge(surf2, surf2Facei, nearLabel);
             const edge& e2 = surf2.edges()[edge2I];
 
-            if (debug&2)
+            if (debug & 2)
             {
                 Pout<< pHit.hitPoint() << " is surf1:"
                     << " end point of edge " << e
@@ -382,7 +405,7 @@ void Foam::surfaceIntersection::classifyHit
             label edge2I = getEdge(surf2, surf2Facei, nearLabel);
             const edge& e2 = surf2.edges()[edge2I];
 
-            if (debug&2)
+            if (debug & 2)
             {
                 Pout<< pHit.hitPoint() << " is surf1:"
                     << " somewhere on edge " << e
@@ -396,7 +419,7 @@ void Foam::surfaceIntersection::classifyHit
 
             // edge hits all faces on surf2 connected to the edge
 
-            if (isFirstSurf)
+            if (cutFrom == surfaceIntersection::FIRST)
             {
                 // edge-edge intersection is symmetric, store only
                 // once.
@@ -409,7 +432,7 @@ void Foam::surfaceIntersection::classifyHit
                 {
                     storeIntersection
                     (
-                        isFirstSurf,
+                        cutFrom,
                         facesA,
                         facesB[faceBI],
                         allCutEdges,
@@ -425,7 +448,7 @@ void Foam::surfaceIntersection::classifyHit
         {
             // 5. Point hits face. Do what? Introduce
             // point & triangulation in face?
-            if (debug&2)
+            if (debug & 2)
             {
                 Pout<< pHit.hitPoint() << " is surf1:"
                     << " end point of edge " << e
@@ -438,36 +461,23 @@ void Foam::surfaceIntersection::classifyHit
             // inside of surf2 (i.e. on opposite side of normal)
             //
 
-            // Vertex on/near surf2
-            label nearVert = -1;
-
-            if (edgeEnd == 0)
-            {
-                nearVert = e.start();
-            }
-            else
-            {
-                nearVert = e.end();
-            }
-
-            const point& nearPt = surf1.localPoints()[nearVert];
-
-            // Vertex away from surf2
-            label otherVert = e.otherVertex(nearVert);
+            // Vertex on/near surf2; vertex away from surf2
+            const label nearVert  = (edgeEnd == 0 ?  e.start() : e.end());
+            const label otherVert = (edgeEnd == 0 ?  e.end() : e.start());
 
+            const point& nearPt  = surf1.localPoints()[nearVert];
             const point& otherPt = surf1.localPoints()[otherVert];
 
-
             if (debug)
             {
                 Pout
                     << pHit.hitPoint() << " is surf1:"
                     << " end point of edge " << e << " coord:"
-                    << surf1.localPoints()[nearVert]
+                    << nearPt
                     << " surf2: face " << surf2Facei << endl;
             }
 
-            vector eVec = otherPt - nearPt;
+            const vector eVec = otherPt - nearPt;
 
             if ((surf2.faceNormals()[surf2Facei] & eVec) > 0)
             {
@@ -477,7 +487,7 @@ void Foam::surfaceIntersection::classifyHit
                 //point hitPt = nearPt + 0.1*eVec;
                 point hitPt = nearPt;
 
-                if (debug&2)
+                if (debug & 2)
                 {
                     Pout<< "Shifted " << pHit.hitPoint()
                         << " to " << hitPt
@@ -494,7 +504,7 @@ void Foam::surfaceIntersection::classifyHit
                 // edge hits single face only
                 storeIntersection
                 (
-                    isFirstSurf,
+                    cutFrom,
                     facesA,
                     surf2Facei,
                     allCutEdges,
@@ -503,7 +513,7 @@ void Foam::surfaceIntersection::classifyHit
             }
             else
             {
-                if (debug&2)
+                if (debug & 2)
                 {
                     Pout<< "Discarding " << pHit.hitPoint()
                         << " since edge " << e << " on inside of surf2."
@@ -515,7 +525,7 @@ void Foam::surfaceIntersection::classifyHit
         else
         {
             // 6. Edge pierces face. 'Normal' situation.
-            if (debug&2)
+            if (debug & 2)
             {
                 Pout<< pHit.hitPoint() << " is surf1:"
                     << " somewhere on edge " << e
@@ -530,7 +540,7 @@ void Foam::surfaceIntersection::classifyHit
             // edge hits single face only
             storeIntersection
             (
-                isFirstSurf,
+                cutFrom,
                 facesA,
                 surf2Facei,
                 allCutEdges,
@@ -538,7 +548,7 @@ void Foam::surfaceIntersection::classifyHit
             );
         }
     }
-    if (debug&2)
+    if (debug & 2)
     {
         Pout<< endl;
     }
@@ -557,15 +567,14 @@ void Foam::surfaceIntersection::doCutEdges
 (
     const triSurface& surf1,
     const triSurfaceSearch& querySurf2,
-    const bool isFirstSurf,
-    const bool isSelfIntersection,
+    const enum originatingType cutFrom,
 
     DynamicList<edge>& allCutEdges,
     DynamicList<point>& allCutPoints,
     List<DynamicList<label>>& surfEdgeCuts
 )
 {
-    scalar oldTol = intersection::setPlanarTol(1e-3);
+    const scalar oldTol = intersection::setPlanarTol(planarTol_);
 
     const pointField& surf1Pts = surf1.localPoints();
 
@@ -579,113 +588,119 @@ void Foam::surfaceIntersection::doCutEdges
           * minEdgeLen(surf1, pointi);
     }
 
-    const triSurface& surf2 = querySurf2.surface();
+    const indexedOctree<treeDataPrimitivePatch<triSurface>>& searchTree
+        = querySurf2.tree();
 
-    forAll(surf1.edges(), edgeI)
+    if (cutFrom == surfaceIntersection::SELF)
     {
-        const edge& e = surf1.edges()[edgeI];
-
-        point pStart = surf1Pts[e.start()];
-        const point& pEnd = surf1Pts[e.end()];
+        // An edge may intersect multiple faces
+        // - mask out faces that have already been hit before trying again
+        // - never intersect with faces attached to the edge itself
+        DynamicList<label> maskFaces(8);
 
-        const point tolVec = intersection::planarTol()*(pEnd-pStart);
-        const scalar tolDim = mag(tolVec);
+        treeDataTriSurface::findAllIntersectOp
+            allIntersectOp(searchTree, maskFaces);
 
-        bool doTrack = false;
-        do
+        forAll(surf1.edges(), edgeI)
         {
-            pointIndexHit pHit = querySurf2.tree().findLine(pStart, pEnd);
-
-            if (pHit.hit())
+            const edge& e = surf1.edges()[edgeI];
+            const vector edgeVec = e.vec(surf1Pts);
+
+            // Extend start/end by tolerance - ensures cleaner cutting
+            const point ptStart =
+                surf1Pts[e.start()] - surf1PointTol[e.start()]*edgeVec;
+            const point ptEnd =
+                surf1Pts[e.end()]   + surf1PointTol[e.end()]*edgeVec;
+
+            // Never intersect with faces attached to the edge itself
+            maskFaces = surf1.edgeFaces()[edgeI];
+            while (true)
             {
-                if (isSelfIntersection)
+                pointIndexHit pHit = searchTree.findLine
+                (
+                    ptStart,
+                    ptEnd,
+                    allIntersectOp
+                );
+
+                if (!pHit.hit())
                 {
-                    // Skip all intersections which are hit at endpoints of
-                    // edge.
-                    // Problem is that if faces are almost coincident the
-                    // intersection point will be calculated quite incorrectly
-                    // The error might easily be larger than 1% of the edge
-                    // length.
-                    // So what we do here is to exclude hit faces if our edge
-                    // is in their plane and they share a point with the edge.
-
-                    // Label of face on surface2 edgeI intersected
-                    label hitFacei = pHit.index();
-
-                    if
-                    (
-                        !excludeEdgeHit
-                        (
-                            surf1,
-                            edgeI,
-                            hitFacei,
-                            0.1         // 1-cos of angle between normals
-                        )
-                    )
-                    {
-                        // Classify point on surface1
-                        label edgeEnd = classify
-                        (
-                            surf1PointTol[e.start()],
-                            surf1PointTol[e.end()],
-                            pHit.hitPoint(),
-                            e,
-                            surf1Pts
-                        );
-
-                        if (edgeEnd < 0)
-                        {
-                            if (debug)
-                            {
-                                Pout<< "edge:" << edgeI << " vertices:" << e
-                                    << "  start:" << surf1Pts[e.start()]
-                                    << "  end:" << surf1Pts[e.end()]
-                                    << "  hit:" << pHit.hitPoint()
-                                    << "  tolDim:" << tolDim
-                                    << "  planarTol:"
-                                    << intersection::planarTol()
-                                    << endl;
-                            }
-                            allCutPoints.append(pHit.hitPoint());
-                            surfEdgeCuts[edgeI].append(allCutPoints.size()-1);
-                        }
-                    }
+                    break;
                 }
-                else
-                {
-                    classifyHit
-                    (
-                        surf1,
-                        surf1PointTol,
-                        surf2,
-                        isFirstSurf,
-                        edgeI,
-                        tolDim,
-                        pHit,
 
-                        allCutEdges,
-                        allCutPoints,
-                        surfEdgeCuts
-                    );
-                }
+                maskFaces.append(pHit.index());
+
+                classifyHit
+                (
+                    surf1,
+                    surf1PointTol,
+                    surf1,
+                    cutFrom,
+                    edgeI,
+                    pHit,
 
-                if (mag(pHit.hitPoint() - pEnd) < tolDim)
+                    allCutEdges,
+                    allCutPoints,
+                    surfEdgeCuts
+                );
+            }
+        }
+    }
+    else
+    {
+        const triSurface& surf2 = querySurf2.surface();
+
+        forAll(surf1.edges(), edgeI)
+        {
+            const edge& e = surf1.edges()[edgeI];
+            const vector edgeVec = e.vec(surf1Pts);
+
+            const point tolVec = intersection::planarTol()*(edgeVec);
+            const scalar tolDim = mag(tolVec);
+
+            point ptStart = surf1Pts[e.start()];
+            const point ptEnd = surf1Pts[e.end()];
+
+            bool doTrack = false;
+            do
+            {
+                pointIndexHit pHit = searchTree.findLine(ptStart, ptEnd);
+
+                if (!pHit.hit())
                 {
-                    doTrack = false;
+                    break;
                 }
-                else
-                {
-                    pStart = pHit.hitPoint() + tolVec;
 
-                    doTrack = true;
+                classifyHit
+                (
+                    surf1,
+                    surf1PointTol,
+                    surf2,
+                    cutFrom,
+                    edgeI,
+                    pHit,
+
+                    allCutEdges,
+                    allCutPoints,
+                    surfEdgeCuts
+                );
+
+                if (tolDim > 0.0)
+                {
+                    if (mag(pHit.hitPoint() - ptEnd) < tolDim)
+                    {
+                        doTrack = false;
+                    }
+                    else
+                    {
+                        // continue tracking a bit further on
+                        ptStart = pHit.hitPoint() + tolVec;
+                        doTrack = true;
+                    }
                 }
             }
-            else
-            {
-                doTrack = false;
-            }
+            while (doTrack);  // execute at least once
         }
-        while (doTrack);
     }
 
     intersection::setPlanarTol(oldTol);
@@ -694,9 +709,9 @@ void Foam::surfaceIntersection::doCutEdges
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-// Null constructor
 Foam::surfaceIntersection::surfaceIntersection()
 :
+    planarTol_(defaultTolerance),
     cutPoints_(0),
     cutEdges_(0),
     facePairToVertex_(0),
@@ -706,13 +721,14 @@ Foam::surfaceIntersection::surfaceIntersection()
 {}
 
 
-// Construct from two surfaces
 Foam::surfaceIntersection::surfaceIntersection
 (
     const triSurfaceSearch& query1,
-    const triSurfaceSearch& query2
+    const triSurfaceSearch& query2,
+    const scalar planarTol
 )
 :
+    planarTol_(planarTol),
     cutPoints_(0),
     cutEdges_(0),
     facePairToVertex_(2*max(query1.surface().size(), query2.surface().size())),
@@ -739,14 +755,12 @@ Foam::surfaceIntersection::surfaceIntersection
     // From edge to cut index on surface1
     List<DynamicList<label>> edgeCuts1(query1.surface().nEdges());
 
+    // 1st surf (for labelPair order)
     doCutEdges
     (
         surf1,
         query2,
-        true,               // is first surface; construct labelPair in correct
-                            // order
-        false,              // not self intersection
-
+        surfaceIntersection::FIRST,
         allCutEdges,
         allCutPoints,
         edgeCuts1
@@ -766,13 +780,12 @@ Foam::surfaceIntersection::surfaceIntersection
     // From edge to cut index
     List<DynamicList<label>> edgeCuts2(query2.surface().nEdges());
 
+    // 2nd surf (for labelPair order)
     doCutEdges
     (
         surf2,
         query1,
-        false,              // is second surface
-        false,              // not self intersection
-
+        surfaceIntersection::SECOND,
         allCutEdges,
         allCutPoints,
         edgeCuts2
@@ -783,7 +796,6 @@ Foam::surfaceIntersection::surfaceIntersection
     cutEdges_.transfer(allCutEdges);
     cutPoints_.transfer(allCutPoints);
 
-
     if (debug)
     {
         Pout<< "surfaceIntersection : Intersection generated:"
@@ -809,7 +821,84 @@ Foam::surfaceIntersection::surfaceIntersection
 }
 
 
-// Construct from full intersection information
+Foam::surfaceIntersection::surfaceIntersection
+(
+    const triSurfaceSearch& query1,
+    const scalar planarTol
+)
+:
+    planarTol_(planarTol),
+    cutPoints_(0),
+    cutEdges_(0),
+    facePairToVertex_(2*query1.surface().size()),
+    facePairToEdge_(2*query1.surface().size()),
+    surf1EdgeCuts_(0),
+    surf2EdgeCuts_(0)
+{
+    const triSurface& surf1 = query1.surface();
+
+    //
+    // Cut all edges of surf1 with surf1 itself.
+    //
+    if (debug)
+    {
+        Pout<< "Cutting surf1 edges" << endl;
+    }
+
+    DynamicList<edge> allCutEdges;
+    DynamicList<point> allCutPoints;
+
+    // From edge to cut index on surface1
+    List<DynamicList<label>> edgeCuts1(query1.surface().nEdges());
+
+    // self-intersection
+    doCutEdges
+    (
+        surf1,
+        query1,
+        surfaceIntersection::SELF,
+        allCutEdges,
+        allCutPoints,
+        edgeCuts1
+    );
+
+    // Transfer to straight label(List)List
+    transfer(edgeCuts1, surf1EdgeCuts_);
+    cutEdges_.transfer(allCutEdges);
+    cutPoints_.transfer(allCutPoints);
+
+    // Shortcut.
+    if (cutPoints_.empty() && cutEdges_.empty())
+    {
+        if (debug)
+        {
+            Pout<< "Empty intersection" << endl;
+        }
+        return;
+    }
+
+    if (debug)
+    {
+        Pout<< "surfaceIntersection : Intersection generated and compressed:"
+            << endl
+            << "    points:" << cutPoints_.size() << endl
+            << "    edges :" << cutEdges_.size() << endl;
+
+
+        Pout<< "surfaceIntersection : Writing intersection to intEdges.obj"
+            << endl;
+
+        OFstream intStream("intEdges.obj");
+        writeOBJ(cutPoints_, cutEdges_, intStream);
+
+        // Dump all cut edges to files
+        Pout<< "Dumping cut edges of surface1 to surf1EdgeCuts.obj" << endl;
+        OFstream edge1Stream("surf1EdgeCuts.obj");
+        writeIntersectedEdges(surf1, surf1EdgeCuts_, edge1Stream);
+    }
+}
+
+
 Foam::surfaceIntersection::surfaceIntersection
 (
     const triSurface& surf1,
@@ -857,7 +946,7 @@ Foam::surfaceIntersection::surfaceIntersection
 
                 storeIntersection
                 (
-                    true,                       // is first surface
+                    surfaceIntersection::FIRST,
                     surf1.edgeFaces()[edgeI],
                     pHit.index(),               // surf2Facei
                     allCutEdges,
@@ -898,7 +987,7 @@ Foam::surfaceIntersection::surfaceIntersection
 
                 storeIntersection
                 (
-                    false,                      // is second surface
+                    surfaceIntersection::SECOND,
                     surf2.edgeFaces()[edgeI],
                     pHit.index(),               // surf2Facei
                     allCutEdges,
@@ -972,160 +1061,6 @@ Foam::surfaceIntersection::surfaceIntersection
 }
 
 
-// Construct from single surface. Used to test for self-intersection.
-Foam::surfaceIntersection::surfaceIntersection
-(
-    const triSurfaceSearch& query1
-)
-:
-    cutPoints_(0),
-    cutEdges_(0),
-    facePairToVertex_(2*query1.surface().size()),
-    facePairToEdge_(2*query1.surface().size()),
-    surf1EdgeCuts_(0),
-    surf2EdgeCuts_(0)
-{
-    const triSurface& surf1 = query1.surface();
-
-    //
-    // Cut all edges of surf1 with surf1 itself.
-    //
-    if (debug)
-    {
-        Pout<< "Cutting surf1 edges" << endl;
-    }
-
-    DynamicList<edge> allCutEdges;
-    DynamicList<point> allCutPoints;
-
-    // From edge to cut index on surface1
-    List<DynamicList<label>> edgeCuts1(query1.surface().nEdges());
-
-    doCutEdges
-    (
-        surf1,
-        query1,
-        true,               // is first surface; construct labelPair in correct
-                            // order
-        true,               // self intersection
-
-
-        allCutEdges,
-        allCutPoints,
-        edgeCuts1
-    );
-
-    // Transfer to straight label(List)List
-    transfer(edgeCuts1, surf1EdgeCuts_);
-    cutEdges_.transfer(allCutEdges);
-    cutPoints_.transfer(allCutPoints);
-
-    // Shortcut.
-    if (cutPoints_.empty() && cutEdges_.empty())
-    {
-        if (debug)
-        {
-            Pout<< "Empty intersection" << endl;
-        }
-        return;
-    }
-
-    //
-    // Remove duplicate points (from edge-point or edge-edge cutting)
-    //
-
-    // Get typical dimension.
-    scalar minEdgeLen = GREAT;
-    forAll(surf1.edges(), edgeI)
-    {
-        minEdgeLen = min
-        (
-            minEdgeLen,
-            surf1.edges()[edgeI].mag(surf1.localPoints())
-        );
-    }
-
-    // Merge points
-    labelList pointMap;
-    pointField newPoints;
-
-    bool hasMerged = mergePoints
-    (
-        cutPoints_,
-        minEdgeLen*intersection::planarTol(),
-        false,
-        pointMap,
-        newPoints
-    );
-
-    if (hasMerged)
-    {
-        if (debug)
-        {
-            Pout<< "Merged:" << hasMerged
-                << "  mergeDist:" << minEdgeLen*intersection::planarTol()
-                << "  cutPoints:" << cutPoints_.size()
-                << "  newPoints:" << newPoints.size()
-                << endl;
-        }
-
-        // Copy points
-        cutPoints_.transfer(newPoints);
-
-        // Renumber vertices referenced by edges
-        forAll(cutEdges_, edgeI)
-        {
-            edge& e = cutEdges_[edgeI];
-
-            e.start() = pointMap[e.start()];
-            e.end() = pointMap[e.end()];
-
-            if (e.mag(cutPoints_) < minEdgeLen*intersection::planarTol())
-            {
-                if (debug)
-                {
-                    Pout<< "Degenerate cut:" << edgeI << " vertices:" << e
-                        << " coords:" << cutPoints_[e.start()] << ' '
-                        << cutPoints_[e.end()] << endl;
-                }
-            }
-        }
-
-        // Renumber vertices referenced by edgeCut lists. Remove duplicates.
-        forAll(surf1EdgeCuts_, edgeI)
-        {
-            // Get indices of cutPoints this edge is cut by
-            labelList& cutVerts = surf1EdgeCuts_[edgeI];
-
-            removeDuplicates(pointMap, cutVerts);
-        }
-    }
-
-    if (debug)
-    {
-        Pout<< "surfaceIntersection : Intersection generated and compressed:"
-            << endl
-            << "    points:" << cutPoints_.size() << endl
-            << "    edges :" << cutEdges_.size() << endl;
-
-
-        Pout<< "surfaceIntersection : Writing intersection to intEdges.obj"
-            << endl;
-
-        OFstream intStream("intEdges.obj");
-        writeOBJ(cutPoints_, cutEdges_, intStream);
-    }
-
-    if (debug)
-    {
-        // Dump all cut edges to files
-        Pout<< "Dumping cut edges of surface1 to surf1EdgeCuts.obj" << endl;
-        OFstream edge1Stream("surf1EdgeCuts.obj");
-        writeIntersectedEdges(surf1, surf1EdgeCuts_, edge1Stream);
-    }
-}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 const Foam::pointField& Foam::surfaceIntersection::cutPoints() const
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
index 99265c9b353..ca8ba6ccc08 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -82,6 +82,17 @@ class surfaceIntersection
 {
     // Private data
 
+        //- Surface intersection types for classify, doCutEdges
+        enum originatingType
+        {
+            FIRST,      //!< First surface
+            SECOND,     //!< Second surface
+            SELF        //!< Self-intersection
+        };
+
+        //- Tolerance for intersections
+        scalar planarTol_;
+
         //- Newly introduced points.
         pointField cutPoints_;
 
@@ -90,7 +101,7 @@ class surfaceIntersection
         edgeList cutEdges_;
 
         //- From face on surf1 and face on surf2 to intersection point
-        // (label in cutPoints)
+        //  (label in cutPoints)
         labelPairLookup facePairToVertex_;
 
         //- From face on surf1 and face on surf2 to intersection edge
@@ -195,7 +206,7 @@ class surfaceIntersection
         //  (first occurrence of face pair) and facePairToEdge_ (second occ.)
         void storeIntersection
         (
-            const bool isFirstSurf,
+            const enum originatingType cutFrom,
             const labelList& facesA,
             const label faceB,
             DynamicList<edge>&,
@@ -209,9 +220,8 @@ class surfaceIntersection
             const triSurface& surf1,
             const scalarField& surf1PointTol,
             const triSurface& surf2,
-            const bool isFirstSurf,
+            const enum originatingType cutFrom,
             const label edgeI,
-            const scalar tolDim,
             const pointIndexHit& pHit,
 
             DynamicList<edge>& allCutEdges,
@@ -224,8 +234,7 @@ class surfaceIntersection
         (
             const triSurface& surf1,
             const triSurfaceSearch& querySurf2,
-            const bool isFirstSurf,
-            const bool isSelfIntersection,
+            const enum originatingType cutFrom,
 
             DynamicList<edge>& allCutEdges,
             DynamicList<point>& allCutPoints,
@@ -235,6 +244,11 @@ class surfaceIntersection
 
 public:
 
+    // Public Data, Declarations
+
+    //- The default planarTol for intersections.
+    static const scalar defaultTolerance;
+
     ClassName("surfaceIntersection");
 
 
@@ -243,6 +257,23 @@ public:
         //- Construct null
         surfaceIntersection();
 
+        //- Construct from two surfaces.
+        //  Does its own cutting. Has problems with degenerate cuts
+        surfaceIntersection
+        (
+            const triSurfaceSearch& querySurf1,
+            const triSurfaceSearch& querySurf2,
+            const scalar planarTol = surfaceIntersection::defaultTolerance
+        );
+
+        //- Construct from self-intersections.
+        //  Does its own cutting, but has problems with degenerate cuts
+        surfaceIntersection
+        (
+            const triSurfaceSearch& querySurf1,
+            const scalar planarTol = surfaceIntersection::defaultTolerance
+        );
+
         //- Construct from precalculated intersection information.
         //  Advantage: intersection information is guaranteed to have no
         //  degenerate cuts.
@@ -254,18 +285,6 @@ public:
             const edgeIntersections& intersections2
         );
 
-        //- Construct from two surfaces. Does all its own cutting.
-        //  Has problems with degenerate cuts
-        surfaceIntersection
-        (
-            const triSurfaceSearch& querySurf1,
-            const triSurfaceSearch& querySurf2
-        );
-
-        //- Special: intersect surface with itself. Used to check for
-        //  self-intersection.
-        surfaceIntersection(const triSurfaceSearch& querySurf1);
-
 
     // Member Functions
 
@@ -279,7 +298,7 @@ public:
 
         //- Access either surf1EdgeCuts (isFirstSurface = true) or
         //  surf2EdgeCuts
-        const labelListList& edgeCuts(const bool) const;
+        const labelListList& edgeCuts(const bool isFirstSurf) const;
 
         const labelListList& surf1EdgeCuts() const;
 
diff --git a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
index 3eb4e6f025f..40b15bedc16 100644
--- a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
+++ b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
@@ -70,6 +70,7 @@ class surfaceFeatures
 {
 public:
 
+        //- Edge status
         enum edgeStatus
         {
             NONE,
-- 
GitLab


From 707abb910eccdf44e5458ed0c0dbda914cb0affd Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 11 Apr 2017 10:33:34 +0100
Subject: [PATCH 185/277] DPMDyMFoam, MPPICDyMFoam: New dynamic mesh versions
 of DPMFoam and MPPICFoam

supporting both mesh morphing and topology change.
---
 .../solvers/compressible/rhoPimpleFoam/pEqn.H |   6 +-
 .../pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C  |   3 +-
 .../solvers/lagrangian/DPMFoam/Allwclean      |   8 +-
 .../solvers/lagrangian/DPMFoam/Allwmake       |   6 +-
 .../DPMFoam/DPMDyMFoam/DPMDyMFoam.C           | 163 ++++++++++++++++++
 .../DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C    |  41 +++++
 .../DPMDyMFoam/MPPICDyMFoam/Make/files        |   3 +
 .../DPMDyMFoam/MPPICDyMFoam/Make/options      |  42 +++++
 .../lagrangian/DPMFoam/DPMDyMFoam/Make/files  |   3 +
 .../DPMFoam/DPMDyMFoam/Make/options           |  41 +++++
 .../DPMFoam/DPMDyMFoam/correctPhic.H          |  11 ++
 .../DPMFoam/DPMDyMFoam/createControls.H       |  12 ++
 .../lagrangian/DPMFoam/DPMDyMFoam/createUcf.H |  49 ++++++
 .../lagrangian/DPMFoam/DPMDyMFoam/pEqn.H      |  62 +++++++
 .../DPMFoam/DPMDyMFoam/readControls.H         |   5 +
 15 files changed, 446 insertions(+), 9 deletions(-)
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/DPMDyMFoam.C
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/files
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/files
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/correctPhic.H
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createControls.H
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createUcf.H
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
 create mode 100644 applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/readControls.H

diff --git a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
index 73ecafd89f8..5aab5362390 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
@@ -10,10 +10,8 @@ if (pimple.nCorrPISO() <= 1)
 surfaceScalarField phiHbyA
 (
     "phiHbyA",
-    (
-        fvc::flux(rho*HbyA)
-      + rhorAUf*fvc::ddtCorr(rho, U, phi)
-    )
+    fvc::flux(rho*HbyA)
+  + rhorAUf*fvc::ddtCorr(rho, U, phi)
 );
 
 MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
index ddfb20f14bc..f5e6a0e0c4b 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,6 @@ int main(int argc, char *argv[])
     {
         #include "readControls.H"
         #include "CourantNo.H"
-
         #include "setDeltaT.H"
 
         runTime++;
diff --git a/applications/solvers/lagrangian/DPMFoam/Allwclean b/applications/solvers/lagrangian/DPMFoam/Allwclean
index 158a56c8f34..b78c67f6611 100755
--- a/applications/solvers/lagrangian/DPMFoam/Allwclean
+++ b/applications/solvers/lagrangian/DPMFoam/Allwclean
@@ -1,7 +1,11 @@
 #!/bin/sh
-
-cd ${0%/*} || exit 1
+cd ${0%/*} || exit 1    # Run from this directory
 
 wclean libso DPMTurbulenceModels
+
 wclean
 wclean MPPICFoam
+wclean DPMDyMFoam
+wclean DPMDyMFoam/MPPICDyMFoam
+
+#------------------------------------------------------------------------------
diff --git a/applications/solvers/lagrangian/DPMFoam/Allwmake b/applications/solvers/lagrangian/DPMFoam/Allwmake
index 1f021bfc2fd..e3c5370297a 100755
--- a/applications/solvers/lagrangian/DPMFoam/Allwmake
+++ b/applications/solvers/lagrangian/DPMFoam/Allwmake
@@ -1,5 +1,5 @@
 #!/bin/sh
-cd ${0%/*} || exit 1
+cd ${0%/*} || exit 1    # Run from this directory
 
 # Parse arguments for library compilation
 . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
@@ -8,3 +8,7 @@ wmake $targetType DPMTurbulenceModels
 
 wmake $targetType
 wmake $targetType MPPICFoam
+wmake $targetType DPMDyMFoam
+wmake $targetType DPMDyMFoam/MPPICDyMFoam
+
+#------------------------------------------------------------------------------
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/DPMDyMFoam.C b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/DPMDyMFoam.C
new file mode 100644
index 00000000000..aec4c643045
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/DPMDyMFoam.C
@@ -0,0 +1,163 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+Application
+    DPMDyMFoam
+
+Description
+    Transient solver for the coupled transport of a single kinematic particle
+    cloud including the effect of the volume fraction of particles on the
+    continuous phase, with optional mesh motion and mesh topology changes.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "dynamicFvMesh.H"
+#include "singlePhaseTransportModel.H"
+#include "PhaseIncompressibleTurbulenceModel.H"
+#include "pimpleControl.H"
+#include "CorrectPhi.H"
+
+#ifdef MPPIC
+    #include "basicKinematicMPPICCloud.H"
+    #define basicKinematicTypeCloud basicKinematicMPPICCloud
+#else
+    #include "basicKinematicCollidingCloud.H"
+    #define basicKinematicTypeCloud basicKinematicCollidingCloud
+#endif
+
+int main(int argc, char *argv[])
+{
+    argList::addOption
+    (
+        "cloudName",
+        "name",
+        "specify alternative cloud name. default is 'kinematicCloud'"
+    );
+
+    #include "postProcess.H"
+
+    #include "setRootCase.H"
+    #include "createTime.H"
+    #include "createDynamicFvMesh.H"
+    #include "createControls.H"
+    #include "createFields.H"
+    #include "createUcf.H"
+    #include "initContinuityErrs.H"
+
+    Info<< "\nStarting time loop\n" << endl;
+
+    while (runTime.run())
+    {
+        #include "readControls.H"
+        #include "CourantNo.H"
+        #include "setDeltaT.H"
+
+        runTime++;
+
+        Info<< "Time = " << runTime.timeName() << nl << endl;
+
+        mesh.update();
+
+        // Calculate absolute flux from the mapped surface velocity
+        phic = mesh.Sf() & Ucf;
+
+        if (mesh.changing() && correctPhi)
+        {
+            #include "correctPhic.H"
+        }
+
+        // Make the flux relative to the mesh motion
+        fvc::makeRelative(phic, Uc);
+
+        if (mesh.changing() && checkMeshCourantNo)
+        {
+            #include "meshCourantNo.H"
+        }
+
+        continuousPhaseTransport.correct();
+        muc = rhoc*continuousPhaseTransport.nu();
+
+        Info<< "Evolving " << kinematicCloud.name() << endl;
+        kinematicCloud.evolve();
+
+        // Update continuous phase volume fraction field
+        alphac = max(1.0 - kinematicCloud.theta(), alphacMin);
+        alphac.correctBoundaryConditions();
+        alphacf = fvc::interpolate(alphac);
+        alphaPhic = alphacf*phic;
+
+        fvVectorMatrix cloudSU(kinematicCloud.SU(Uc));
+        volVectorField cloudVolSUSu
+        (
+            IOobject
+            (
+                "cloudVolSUSu",
+                runTime.timeName(),
+                mesh
+            ),
+            mesh,
+            dimensionedVector
+            (
+                "0",
+                cloudSU.dimensions()/dimVolume,
+                Zero
+            ),
+            zeroGradientFvPatchVectorField::typeName
+        );
+
+        cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
+        cloudVolSUSu.correctBoundaryConditions();
+        cloudSU.source() = Zero;
+
+        // --- Pressure-velocity PIMPLE corrector loop
+        while (pimple.loop())
+        {
+            #include "UcEqn.H"
+
+            // --- PISO loop
+            while (pimple.correct())
+            {
+                #include "pEqn.H"
+            }
+
+            if (pimple.turbCorr())
+            {
+                continuousPhaseTurbulence->correct();
+            }
+        }
+
+        runTime.write();
+
+        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
+            << nl << endl;
+    }
+
+    Info<< "End\n" << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C
new file mode 100644
index 00000000000..ba5dc1bc852
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C
@@ -0,0 +1,41 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+Application
+    MPPICDyMFoam
+
+Description
+    Transient solver for the coupled transport of a single kinematic particle
+    cloud including the effect of the volume fraction of particles on the
+    continuous phase. Multi-Phase Particle In Cell (MPPIC) modeling is used to
+    represent collisions without resolving particle-particle interactions,
+    with optional mesh motion and mesh topology changes.
+
+\*---------------------------------------------------------------------------*/
+
+#define MPPIC
+
+#include "DPMDyMFoam.C"
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/files b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/files
new file mode 100644
index 00000000000..d25393d1ff0
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/files
@@ -0,0 +1,3 @@
+MPPICDyMFoam.C
+
+EXE = $(FOAM_APPBIN)/MPPICDyMFoam
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
new file mode 100644
index 00000000000..8b16d20d061
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
@@ -0,0 +1,42 @@
+EXE_INC = \
+    -I.. \
+    -I../.. \
+    -I../DPMTurbulenceModels/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
+    -I$(LIB_SRC)/transportModels \
+    -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
+    -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
+    -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
+    -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume \
+    -lfvOptions \
+    -lmeshTools \
+    -llagrangian \
+    -llagrangianIntermediate \
+    -llagrangianTurbulence \
+    -lspecie \
+    -lradiationModels \
+    -lincompressibleTransportModels \
+    -lturbulenceModels \
+    -lincompressibleTurbulenceModels \
+    -lDPMTurbulenceModels \
+    -lregionModels \
+    -lsurfaceFilmModels \
+    -lsampling \
+    -ldynamicFvMesh \
+    -ltopoChangerFvMesh \
+    -ldynamicMesh
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/files b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/files
new file mode 100644
index 00000000000..c3354998ef9
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/files
@@ -0,0 +1,3 @@
+DPMDyMFoam.C
+
+EXE = $(FOAM_APPBIN)/DPMDyMFoam
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
new file mode 100644
index 00000000000..a4c0fcc139c
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
@@ -0,0 +1,41 @@
+EXE_INC = \
+    -I.. \
+    -I../DPMTurbulenceModels/lnInclude \
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
+    -I$(LIB_SRC)/transportModels \
+    -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
+    -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
+    -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude
+
+EXE_LIBS = \
+    -llagrangian \
+    -llagrangianIntermediate \
+    -llagrangianTurbulence \
+    -lspecie \
+    -lradiationModels \
+    -lincompressibleTransportModels \
+    -lturbulenceModels \
+    -lincompressibleTurbulenceModels \
+    -lDPMTurbulenceModels \
+    -lregionModels \
+    -lsurfaceFilmModels \
+    -lsampling \
+    -lfiniteVolume \
+    -lfvOptions \
+    -lmeshTools \
+    -ldynamicFvMesh \
+    -ltopoChangerFvMesh \
+    -ldynamicMesh
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/correctPhic.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/correctPhic.H
new file mode 100644
index 00000000000..46ef721fa22
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/correctPhic.H
@@ -0,0 +1,11 @@
+CorrectPhi
+(
+    Uc,
+    phic,
+    p,
+    dimensionedScalar("rAUf", dimTime, 1),
+    geometricZeroField(),
+    pimple
+);
+
+#include "continuityErrs.H"
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createControls.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createControls.H
new file mode 100644
index 00000000000..bee8bd4f39e
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createControls.H
@@ -0,0 +1,12 @@
+#include "createControl.H"
+#include "createTimeControls.H"
+
+bool correctPhi
+(
+    pimple.dict().lookupOrDefault("correctPhi", false)
+);
+
+bool checkMeshCourantNo
+(
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
+);
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createUcf.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createUcf.H
new file mode 100644
index 00000000000..bdd9898b69a
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createUcf.H
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+Global
+    createUcf
+
+Description
+    Creates and initialises the velocity velocity field Ucf.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Info<< "Reading/calculating continuous phase face velocity Ucf\n" << endl;
+
+surfaceVectorField Ucf
+(
+    IOobject
+    (
+        "Ucf",
+        runTime.timeName(),
+        mesh,
+        IOobject::READ_IF_PRESENT,
+        IOobject::AUTO_WRITE
+    ),
+    fvc::interpolate(Uc)
+);
+
+// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
new file mode 100644
index 00000000000..2f7b843d254
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
@@ -0,0 +1,62 @@
+{
+    volVectorField HbyA("HbyA", Uc);
+    HbyA = rAUc*UcEqn.H();
+
+    surfaceScalarField phiHbyA
+    (
+        "phiHbyA",
+        (
+           fvc::flux(HbyA)
+         + alphacf*rAUcf*fvc::ddtCorr(Uc, Ucf)
+         + phicForces
+        )
+    );
+
+    if (p.needReference())
+    {
+        fvc::makeRelative(phiHbyA, Uc);
+        adjustPhi(phiHbyA, Uc, p);
+        fvc::makeAbsolute(phiHbyA, Uc);
+    }
+
+    // Update the pressure BCs to ensure flux consistency
+    constrainPressure(p, Uc, phiHbyA, rAUcf);
+
+    // Non-orthogonal pressure corrector loop
+    while (pimple.correctNonOrthogonal())
+    {
+        fvScalarMatrix pEqn
+        (
+            fvm::laplacian(alphacf*rAUcf, p)
+         ==
+            fvc::ddt(alphac) + fvc::div(alphacf*phiHbyA)
+        );
+
+        pEqn.setReference(pRefCell, pRefValue);
+
+        pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+        if (pimple.finalNonOrthogonalIter())
+        {
+            phic = phiHbyA - pEqn.flux()/alphacf;
+
+            p.relax();
+
+            Uc = HbyA
+               + rAUc
+                *fvc::reconstruct((phicForces - pEqn.flux()/alphacf)/rAUcf);
+            Uc.correctBoundaryConditions();
+
+            {
+                Ucf = fvc::interpolate(Uc);
+                surfaceVectorField n(mesh.Sf()/mesh.magSf());
+                Ucf += n*(phic/mesh.magSf() - (n & Ucf));
+            }
+
+            // Make the fluxes relative to the mesh motion
+            fvc::makeRelative(phic, Uc);
+        }
+    }
+}
+
+#include "continuityErrs.H"
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/readControls.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/readControls.H
new file mode 100644
index 00000000000..9f982e260b0
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/readControls.H
@@ -0,0 +1,5 @@
+#include "readTimeControls.H"
+
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
+
+checkMeshCourantNo = pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
-- 
GitLab


From cd5ca147a76dc2fd61ede9a028209f9965c0b006 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Tue, 11 Apr 2017 11:46:00 +0200
Subject: [PATCH 186/277] ENH: multiple surfaces, self-intersection in
 surfaceFeatureExtract (issue #450)

- If the dictionary is named 'surfaces', a 'surfaces' entry is mandatory.
  This is a list of wordRe, which is used to load multiple surfaces from
  constant/triSurface directory.

- Other dictionaries may contain a 'surfaces' entry.
  In which case the behaviour is as above (loading multiple surfaces).
  The dictionary name will *NOT* be taken as a surface name itself.

- Regardless of how the surfaces are loaded or features extracted,
  an additional selfIntersection test may be used.

  Eg,

    surfaces
    {
        extractionMethod    extractFromSurface;

        surfaces            (surface1.stl surface2.nas);

        // Generate features from self-intersect
        selfIntersection    true;

        // Base output name (optiona)
        output              surfaces;

        // Tolerance for self-intersect
        planarTolerance     1e-3;

        extractFromSurfaceCoeffs
        {
            includedAngle   120;

            // Do not mark region edges
            geometricTestOnly       yes;
        }
    }
---
 .../surfaceFeatureExtract/Make/options        |   2 +
 .../extractionMethod/Make/files               |   6 +
 .../extractionMethod/Make/options             |  11 +
 .../extractionMethod/extractFromFile.C        | 103 ++++++
 .../extractionMethod/extractFromFile.H        |  90 +++++
 .../extractionMethod/extractFromSurface.C     | 102 ++++++
 .../extractionMethod/extractFromSurface.H     |  94 +++++
 .../surfaceFeaturesExtraction.C               |  92 +++++
 .../surfaceFeaturesExtraction.H               | 136 +++++++
 .../surfaceFeatureExtract.C                   | 345 ++++++++++++------
 .../surfaceFeatureExtractDict                 |  37 ++
 .../surfaceFeatures/surfaceFeatures.C         |   9 +-
 .../surfaceFeatures/surfaceFeatures.H         |  18 +-
 13 files changed, 914 insertions(+), 131 deletions(-)
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H

diff --git a/applications/utilities/surface/surfaceFeatureExtract/Make/options b/applications/utilities/surface/surfaceFeatureExtract/Make/options
index e57de43f22b..b79e3e27c50 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/Make/options
+++ b/applications/utilities/surface/surfaceFeatureExtract/Make/options
@@ -1,9 +1,11 @@
 EXE_INC = \
+    -IextractionMethod/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
+    -lsurfaceFeatureExtract \
     -lmeshTools \
     -lsampling
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files
new file mode 100644
index 00000000000..29dd2b73eb3
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files
@@ -0,0 +1,6 @@
+method = .
+$(method)/surfaceFeaturesExtraction.C
+$(method)/extractFromSurface.C
+$(method)/extractFromFile.C
+
+LIB = $(FOAM_LIBBIN)/libsurfaceFeatureExtract
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options
new file mode 100644
index 00000000000..322709bfff9
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options
@@ -0,0 +1,11 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/edgeMesh/lnInclude \
+    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude
+
+LIB_LIBS = \
+    -lmeshTools \
+    -ledgeMesh \
+    -ltriSurface
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
new file mode 100644
index 00000000000..437024fbac5
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
@@ -0,0 +1,103 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           |  Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "extractFromFile.H"
+#include "ListOps.H"
+#include "edgeMesh.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+    addNamedToRunTimeSelectionTable
+    (
+        method,
+        extractFromFile,
+        dictionary,
+        extractFromFile
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::extractFromFile::extractFromFile
+(
+    const dictionary& dict
+)
+:
+    method()
+{
+    const dictionary& coeffDict = dict.subDict("extractFromFileCoeffs");
+
+    coeffDict.lookup("featureEdgeFile") >> featureEdgeFile_;
+    coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::extractFromFile::~extractFromFile()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+
+Foam::autoPtr<Foam::surfaceFeatures>
+Foam::surfaceFeaturesExtraction::extractFromFile::features
+(
+    const triSurface& surf
+) const
+{
+    edgeMesh eMesh(featureEdgeFile_);
+
+    // Sometimes duplicate edges are present. Remove them.
+    eMesh.mergeEdges();
+
+    Info<< nl << "Reading existing feature edges from file "
+        << featureEdgeFile_ << nl
+        << "Selecting edges based purely on geometric tests: "
+        << geometricTestOnly().asText() << endl;
+
+    return autoPtr<surfaceFeatures>
+    (
+        new surfaceFeatures
+        (
+            surf,
+            eMesh.points(),
+            eMesh.edges(),
+            1e-6,  // mergeTol
+            geometricTestOnly()
+        )
+    );
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
new file mode 100644
index 00000000000..bca148439ff
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
@@ -0,0 +1,90 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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::surfaceFeaturesExtraction::extractFromFile
+
+Description
+    Run-time selectable surface feature extraction.
+
+SourceFiles
+    extractionMethod.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef surfaceFeaturesExtraction_extractFromFile_H
+#define surfaceFeaturesExtraction_extractFromFile_H
+
+#include "surfaceFeaturesExtraction.H"
+#include "dictionary.H"
+#include "Switch.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+
+/*---------------------------------------------------------------------------*\
+         Class surfaceFeaturesExtraction::extractFromFile Declaration
+\*---------------------------------------------------------------------------*/
+
+class extractFromFile
+:
+    public method
+{
+    fileName featureEdgeFile_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct from dictionary
+        extractFromFile(const dictionary& dict);
+
+
+    //- Destructor
+    virtual ~extractFromFile();
+
+
+    //- Extracted features from surface
+    virtual autoPtr<surfaceFeatures> features
+    (
+        const triSurface& surf
+    ) const override;
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFeaturesExtraction
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
new file mode 100644
index 00000000000..f590bb707ac
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
@@ -0,0 +1,102 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           |  Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "extractFromSurface.H"
+#include "addToRunTimeSelectionTable.H"
+
+#include "triSurface.H"
+#include "triSurfaceSearch.H"
+#include "scalarField.H"
+#include "edgeIntersections.H"
+
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+    addNamedToRunTimeSelectionTable
+    (
+        method,
+        extractFromSurface,
+        dictionary,
+        extractFromSurface
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::extractFromSurface::extractFromSurface
+(
+    const dictionary& dict
+)
+:
+    method()
+{
+    const dictionary& coeffDict = dict.subDict("extractFromSurfaceCoeffs");
+
+    coeffDict.lookup("includedAngle") >> includedAngle_;
+    coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::extractFromSurface::~extractFromSurface()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+
+Foam::autoPtr<Foam::surfaceFeatures>
+Foam::surfaceFeaturesExtraction::extractFromSurface::features
+(
+    const triSurface& surf
+) const
+{
+    Info<< nl << "Constructing feature set from included angle "
+        << includedAngle() << nl
+        << "Selecting edges based purely on geometric tests: "
+        << geometricTestOnly().asText() << endl;
+
+    return autoPtr<surfaceFeatures>
+    (
+        new surfaceFeatures
+        (
+            surf,
+            includedAngle(),
+            0,  // minLen
+            0,  // minElems
+            geometricTestOnly()
+        )
+    );
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
new file mode 100644
index 00000000000..980db47b144
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
@@ -0,0 +1,94 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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::surfaceFeaturesExtraction::extractFromSurface
+
+Description
+    Run-time selectable surface feature extraction.
+
+SourceFiles
+    extractionMethod.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef surfaceFeaturesExtraction_extractFromSurface_H
+#define surfaceFeaturesExtraction_extractFromSurface_H
+
+#include "surfaceFeaturesExtraction.H"
+#include "dictionary.H"
+#include "Switch.H"
+#include "triSurface.H"
+#include "edgeIntersections.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+
+/*---------------------------------------------------------------------------*\
+         Class surfaceFeaturesExtraction::extractFromSurface Declaration
+\*---------------------------------------------------------------------------*/
+
+class extractFromSurface
+:
+    public method
+{
+
+    bool selfIntersection_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct from dictionary
+        extractFromSurface(const dictionary& dict);
+
+
+    //- Destructor
+    virtual ~extractFromSurface();
+
+
+    //- Extracted features from surface
+    virtual autoPtr<surfaceFeatures> features
+    (
+        const triSurface& surf
+    ) const override;
+
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFeaturesExtraction
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
new file mode 100644
index 00000000000..95a1c1b0280
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
@@ -0,0 +1,92 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           |  Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "surfaceFeaturesExtraction.H"
+#include "dictionary.H"
+#include "ListOps.H"
+#include "error.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+    defineTypeName(method);
+    defineRunTimeSelectionTable
+    (
+        method,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::method::method()
+:
+    includedAngle_(0),
+    geometricTestOnly_(Switch::NO)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::method::~method()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::surfaceFeaturesExtraction::method>
+Foam::surfaceFeaturesExtraction::method::New
+(
+    const dictionary& dict
+)
+{
+    const word methodName = dict.lookup("extractionMethod");
+
+    dictionaryConstructorTable::iterator cstrIter =
+        dictionaryConstructorTablePtr_->find(methodName);
+
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
+    {
+        FatalIOErrorInFunction
+        (
+            dict
+        )   << "Unknown extractionMethod "
+            << methodName << nl << nl
+            << "Valid extraction methods: :" << nl
+            << flatOutput(dictionaryConstructorTablePtr_->sortedToc())
+            << exit(FatalIOError);
+    }
+
+    return autoPtr<method>(cstrIter()(dict));
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H
new file mode 100644
index 00000000000..6f9482144fe
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H
@@ -0,0 +1,136 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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::surfaceFeaturesExtraction::method
+
+Description
+    Run-time selectable surface feature extraction methods.
+
+SourceFiles
+    surfaceFeaturesExtraction.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef surfaceFeaturesExtraction_method_H
+#define surfaceFeaturesExtraction_method_H
+
+#include "surfaceFeatures.H"
+#include "dictionary.H"
+#include "Switch.H"
+#include "runTimeSelectionTables.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+
+/*---------------------------------------------------------------------------*\
+              Class surfaceFeaturesExtraction::method Declaration
+\*---------------------------------------------------------------------------*/
+
+class method
+{
+protected:
+
+    scalar includedAngle_;
+    Switch geometricTestOnly_;
+
+    //- Construct null
+    method();
+
+
+public:
+
+    //- Runtime type information
+    ClassNameNoDebug("method");
+
+
+    // Constructors
+
+        //- Construct from dictionary
+        method(const dictionary& dict);
+
+
+    // Declare run-time constructor selection table
+    declareRunTimeSelectionTable
+    (
+        autoPtr,
+        method,
+        dictionary,
+        (
+            const dictionary& dict
+        ),
+        (dict)
+    );
+
+
+    // Selectors
+
+        //- Select constructed from dictionary
+        static autoPtr<method> New
+        (
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~method();
+
+
+    // Member Functions
+
+        //- The included angle, if set
+        inline scalar includedAngle() const
+        {
+            return includedAngle_;
+        }
+
+        //- Use geometric test only
+        inline Switch geometricTestOnly() const
+        {
+            return geometricTestOnly_;
+        }
+
+        //- Extracted features
+        virtual autoPtr<surfaceFeatures> features
+        (
+            const triSurface& surf
+        ) const = 0;
+
+};
+
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFeaturesExtraction
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index a91ed5140ad..9dcaae6b636 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -41,7 +41,8 @@ Description
 #include "argList.H"
 #include "Time.H"
 #include "triSurface.H"
-#include "surfaceFeatures.H"
+#include "surfaceFeaturesExtraction.H"
+#include "surfaceIntersection.H"
 #include "featureEdgeMesh.H"
 #include "extendedFeatureEdgeMesh.H"
 #include "treeBoundBox.H"
@@ -865,6 +866,61 @@ void writeStats(const extendedFeatureEdgeMesh& fem, Ostream& os)
 }
 
 
+// Read and combine all surfaces into a single one
+
+autoPtr<triSurface> loadSurfaces(Time& runTime, const wordList& surfNames)
+{
+    List<labelledTri> faces;
+    pointField points;
+    label regoff = 0; // region offset
+
+    forAll(surfNames, surfi)
+    {
+        const word& surfName = surfNames[surfi];
+
+        triSurface addsurf(runTime.constantPath()/"triSurface"/surfName);
+
+        List<labelledTri> addfaces(addsurf.xferFaces());
+        List<point> addpoints(addsurf.xferPoints());
+
+        if (surfi)
+        {
+            const label ptoff = points.size(); // point offset
+
+            forAll(addfaces, facei)
+            {
+                labelledTri& f = addfaces[facei];
+                forAll(f, fi)
+                {
+                    f[fi] += ptoff;
+                }
+                f.region() += regoff;
+            }
+
+            faces.append(addfaces);
+            points.append(addpoints);
+        }
+        else
+        {
+            faces.transfer(addfaces);
+            points.transfer(addpoints);
+        }
+
+        regoff += addsurf.patches().size();
+    }
+
+    return autoPtr<triSurface>
+    (
+        new triSurface
+        (
+            faces,
+            geometricSurfacePatchList(),
+            points,
+            true
+        )
+    );
+}
+
 
 int main(int argc, char *argv[])
 {
@@ -873,6 +929,7 @@ int main(int argc, char *argv[])
         "extract and write surface features to file"
     );
     argList::noParallel();
+    argList::noFunctionObjects();
 
     #include "addDictOption.H"
 
@@ -882,6 +939,21 @@ int main(int argc, char *argv[])
     const word dictName("surfaceFeatureExtractDict");
     #include "setSystemRunTimeDictionaryIO.H"
 
+    // Will be using triSurface, so filter according to what is supported
+    fileNameList validSurfaceFiles = readDir
+    (
+        runTime.path()/runTime.constant()/"triSurface",
+        fileName::FILE
+    );
+    inplaceSubsetList
+    (
+        validSurfaceFiles,
+        [](const fileName& f){ return triSurface::canRead(f); }
+    );
+
+    // sort and eliminate duplicates (eg, files with/without .gz)
+    inplaceUniqueSort(validSurfaceFiles);
+
     Info<< "Reading " << dictName << nl << endl;
 
     const IOdictionary dict(dictIO);
@@ -900,154 +972,160 @@ int main(int argc, char *argv[])
             continue;
         }
 
-        const word extractionMethod = surfaceDict.lookup("extractionMethod");
-
-        const fileName surfFileName = iter().keyword();
-        const fileName sFeatFileName = surfFileName.lessExt().name();
+        autoPtr<surfaceFeaturesExtraction::method> extractPtr =
+            surfaceFeaturesExtraction::method::New
+            (
+                surfaceDict
+            );
 
-        Info<< "Surface            : " << surfFileName << nl << endl;
+        const surfaceFeaturesExtraction::method& extract = extractPtr();
 
-        const Switch writeVTK =
-            surfaceDict.lookupOrDefault<Switch>("writeVTK", "off");
-        const Switch writeObj =
-            surfaceDict.lookupOrDefault<Switch>("writeObj", "off");
+        // Output name, cleansed of extensions
+        const word sFeatFileName =
+            fileName
+            (
+                surfaceDict.lookupOrDefault<word>("output", iter().keyword())
+            ).lessExt();
 
-        const Switch curvature =
-            surfaceDict.lookupOrDefault<Switch>("curvature", "off");
-        const Switch featureProximity =
-            surfaceDict.lookupOrDefault<Switch>("featureProximity", "off");
-        const Switch closeness =
-            surfaceDict.lookupOrDefault<Switch>("closeness", "off");
+        wordList surfFileNames;
 
+        if
+        (
+            iter().keyword() == "surfaces"   // mandatory
+         || surfaceDict.found("surfaces")    // or optional
+        )
+        {
+            wordReList regexs(surfaceDict.lookup("surfaces"));
 
-        Info<< nl << "Feature line extraction is only valid on closed manifold "
-            << "surfaces." << endl;
+            labelList selected = findStrings(regexs, validSurfaceFiles);
+            surfFileNames.setSize(selected.size());
+            forAll(selected, i)
+            {
+                surfFileNames[i] = validSurfaceFiles[selected[i]].name();
+            }
 
-        // Read
-        // ~~~~
+            if (surfFileNames.empty())
+            {
+                FatalErrorInFunction
+                    << "No surfaces specified/found for entry: "
+                    << iter().keyword()
+                    << exit(FatalError);
+            }
+        }
+        else
+        {
+            surfFileNames.setSize(1);
+            surfFileNames[0] = iter().keyword();
 
-        triSurface surf(runTime.constantPath()/"triSurface"/surfFileName);
+            const fileName file
+            (
+                runTime.constantPath()/"triSurface"/surfFileNames[0]
+            );
 
-        Info<< "Statistics:" << endl;
-        surf.writeStats(Info);
-        Info<< endl;
+            if (!isFile(file))
+            {
+                FatalErrorInFunction
+                    << "No surface: " << file.name()
+                    << exit(FatalError);
+            }
+        }
 
-        faceList faces(surf.size());
+        // DebugVar(surfFileNames);
+        // DebugVar(sFeatFileName);
 
-        forAll(surf, fI)
+        Info<< "Surfaces           : ";
+        if (surfFileNames.size() == 1)
         {
-            faces[fI] = surf[fI].triFaceFace();
+            Info<< surfFileNames[0] << nl;
         }
-
-
-        // Either construct features from surface & featureAngle or read set.
-        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-        autoPtr<surfaceFeatures> set;
-
-        scalar includedAngle = 0.0;
-
-        if (extractionMethod == "extractFromFile")
+        else
         {
-            const dictionary& extractFromFileDict =
-                surfaceDict.subDict("extractFromFileCoeffs");
+            Info<< flatOutput(surfFileNames) << nl;
+        }
 
-            const fileName featureEdgeFile =
-                extractFromFileDict.lookup("featureEdgeFile");
+        Info<< "Output             : " << sFeatFileName << nl;
 
-            const Switch geometricTestOnly =
-                extractFromFileDict.lookupOrDefault<Switch>
-                (
-                    "geometricTestOnly",
-                    "no"
-                );
+        const Switch writeVTK = surfaceDict.lookupOrDefault<Switch>
+        (
+            "writeVTK", Switch::OFF
+        );
+        const Switch writeObj = surfaceDict.lookupOrDefault<Switch>
+        (
+            "writeObj", Switch::OFF
+        );
 
-            edgeMesh eMesh(featureEdgeFile);
+        const Switch curvature = surfaceDict.lookupOrDefault<Switch>
+        (
+            "curvature", Switch::OFF
+        );
+        const Switch featureProximity = surfaceDict.lookupOrDefault<Switch>
+        (
+            "featureProximity", Switch::OFF
+        );
+        const Switch closeness = surfaceDict.lookupOrDefault<Switch>
+        (
+            "closeness", Switch::OFF
+        );
 
-            // Sometimes duplicate edges are present. Remove them.
-            eMesh.mergeEdges();
+        Info<< "write VTK: " <<  writeVTK << nl;
 
-            Info<< nl << "Reading existing feature edges from file "
-                << featureEdgeFile << nl
-                << "Selecting edges purely based on geometric tests: "
-                << geometricTestOnly.asText() << endl;
+        Info<< nl << "Feature line extraction is only valid on closed manifold "
+            << "surfaces." << endl;
 
-            set.set
-            (
-                new surfaceFeatures
-                (
-                    surf,
-                    eMesh.points(),
-                    eMesh.edges(),
-                    1e-6,
-                    geometricTestOnly
-                )
-            );
-        }
-        else if (extractionMethod == "extractFromSurface")
-        {
-            const dictionary& extractFromSurfaceDict =
-                surfaceDict.subDict("extractFromSurfaceCoeffs");
 
-            includedAngle =
-                readScalar(extractFromSurfaceDict.lookup("includedAngle"));
+        // Read and combine all surfaces into a single one
 
-            const Switch geometricTestOnly =
-                extractFromSurfaceDict.lookupOrDefault<Switch>
-                (
-                    "geometricTestOnly",
-                    "no"
-                );
+        autoPtr<triSurface> surfPtr = loadSurfaces(runTime, surfFileNames);
+        triSurface surf = surfPtr();
 
-            Info<< nl
-                << "Constructing feature set from included angle "
-                << includedAngle << nl
-                << "Selecting edges purely based on geometric tests: "
-                << geometricTestOnly.asText() << endl;
+        Info<< "Statistics:" << endl;
+        surf.writeStats(Info);
+        Info<< endl;
 
-            set.set
-            (
-                new surfaceFeatures
-                (
-                    surf,
-                    includedAngle,
-                    0,
-                    0,
-                    geometricTestOnly
-                )
-            );
-        }
-        else
+        // need plain faces if outputting VTK format
+        faceList faces;
+        if (writeVTK)
         {
-            FatalErrorInFunction
-                << "No initial feature set. Provide either one"
-                << " of extractFromFile (to read existing set)" << nl
-                << " or extractFromSurface (to construct new set from angle)"
-                << exit(FatalError);
+            faces.setSize(surf.size());
+            forAll(surf, fi)
+            {
+                faces[fi] = surf[fi].triFaceFace();
+            }
         }
 
 
+        // Either construct features from surface & featureAngle or read set.
+        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+        autoPtr<surfaceFeatures> set = extract.features(surf);
+
         // Trim set
         // ~~~~~~~~
 
         if (surfaceDict.isDict("trimFeatures"))
         {
             dictionary trimDict = surfaceDict.subDict("trimFeatures");
-
-            scalar minLen =
+            const scalar minLen =
                 trimDict.lookupOrAddDefault<scalar>("minLen", -GREAT);
 
-            label minElem = trimDict.lookupOrAddDefault<label>("minElem", 0);
+            const label minElem =
+                trimDict.lookupOrAddDefault<label>("minElem", 0);
 
             // Trim away small groups of features
-            if (minElem > 0 || minLen > 0)
+            if (minLen > 0 || minElem > 0)
             {
-                Info<< "Removing features of length < "
-                    << minLen << endl;
-                Info<< "Removing features with number of edges < "
-                    << minElem << endl;
+                if (minLen > 0)
+                {
+                    Info<< "Removing features of length < "
+                        << minLen << endl;
+                }
+                if (minElem > 0)
+                {
+                    Info<< "Removing features with number of edges < "
+                        << minElem << endl;
+                }
 
-                set().trimFeatures(minLen, minElem, includedAngle);
+                set().trimFeatures(minLen, minElem, extract.includedAngle());
             }
         }
 
@@ -1108,7 +1186,7 @@ int main(int argc, char *argv[])
                         (
                             surf,
                             1e-5,   //tol,
-                            includedAngle,
+                            extract.includedAngle(),
                             edgeI
                         );
                     }
@@ -1147,7 +1225,7 @@ int main(int argc, char *argv[])
 
 
         surfaceFeatures newSet(surf);
-        newSet.setFromStatus(edgeStat, includedAngle);
+        newSet.setFromStatus(edgeStat, extract.includedAngle());
 
         Info<< nl
             << "Initial feature set:" << nl
@@ -1215,6 +1293,39 @@ int main(int argc, char *argv[])
         }
 
 
+        if (surfaceDict.lookupOrDefault<bool>("selfIntersection", false))
+        {
+            // TODO: perturb tolerance
+
+            triSurfaceSearch query(surf);
+            surfaceIntersection intersect
+            (
+                query,
+                surfaceDict.lookupOrDefault<scalar>
+                (
+                    "planarTolerance",
+                    surfaceIntersection::defaultTolerance
+                )
+            );
+
+            // surf.write("selfIntersection-input.obj");
+
+            Info<<"self-intersection "
+                << intersect.cutEdges().size() << " edges "
+                << intersect.cutPoints().size() << " points" << nl;
+
+            if (intersect.cutEdges().size())
+            {
+                extendedEdgeMesh addMesh
+                (
+                    xferCopy<pointField>(intersect.cutPoints()),
+                    xferCopy<edgeList>(intersect.cutEdges())
+                );
+
+                feMesh.add(addMesh);
+            }
+        }
+
         Info<< nl
             << "Final feature set:" << nl;
         writeStats(feMesh, Info);
@@ -1226,7 +1337,7 @@ int main(int argc, char *argv[])
 
         if (writeObj)
         {
-            feMesh.writeObj(feMesh.path()/surfFileName.lessExt().name());
+            feMesh.writeObj(feMesh.path()/sFeatFileName);
         }
 
         feMesh.write();
@@ -1236,10 +1347,10 @@ int main(int argc, char *argv[])
         (
             IOobject
             (
-                surfFileName.lessExt().name() + ".eMesh",   // name
-                runTime.constant(),                         // instance
+                sFeatFileName + ".eMesh",   // name
+                runTime.constant(),         // instance
                 "triSurface",
-                runTime,                                    // registry
+                runTime,                    // registry
                 IOobject::NO_READ,
                 IOobject::AUTO_WRITE,
                 false
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
index d7565d5c327..f110e063182 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
@@ -114,4 +114,41 @@ surface2.nas
 }
 
 
+// Handle multiple surfaces
+//
+// - If the dictionary is named 'surfaces', it must also contain a 'surfaces'
+//   entry (wordRe list).
+//
+// - If other dictionaries may contain a 'surfaces' entry, it will be taken
+//   for the input.
+//
+surfaces
+{
+    extractionMethod    extractFromSurface;
+
+    surfaces            (surface1.stl surface2.nas);
+
+    // Base output name (optional)
+    // output              surfaces;
+
+    // Generate features from self-intersect
+    selfIntersection    true;
+
+    // Tolerance for self-intersect
+    planarTolerance     1e-3;
+
+    extractFromSurfaceCoeffs
+    {
+        includedAngle   120;
+
+        // Do not mark region edges
+        geometricTestOnly       yes;
+    }
+
+    // Write options
+
+        // Write features to obj format for postprocessing
+        writeObj                yes;
+}
+
 // ************************************************************************* //
diff --git a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
index 767b4bb7fa2..055bf8fd63e 100644
--- a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
+++ b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
@@ -829,7 +829,7 @@ Foam::labelList Foam::surfaceFeatures::trimFeatures
 }
 
 
-void Foam::surfaceFeatures::writeDict(Ostream& writeFile) const
+void Foam::surfaceFeatures::writeDict(Ostream& os) const
 {
 
     dictionary featInfoDict;
@@ -838,15 +838,14 @@ void Foam::surfaceFeatures::writeDict(Ostream& writeFile) const
     featInfoDict.add("featureEdges", featureEdges_);
     featInfoDict.add("featurePoints", featurePoints_);
 
-    featInfoDict.write(writeFile);
+    featInfoDict.write(os);
 }
 
 
 void Foam::surfaceFeatures::write(const fileName& fName) const
 {
-    OFstream str(fName);
-
-    writeDict(str);
+    OFstream os(fName);
+    writeDict(os);
 }
 
 
diff --git a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
index 40b15bedc16..a9e12e267fb 100644
--- a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
+++ b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
@@ -177,12 +177,12 @@ public:
     // Constructors
 
         //- Construct from surface
-        surfaceFeatures(const triSurface&);
+        surfaceFeatures(const triSurface& surf);
 
         //- Construct from components
         surfaceFeatures
         (
-            const triSurface&,
+            const triSurface& surf,
             const labelList& featurePoints,
             const labelList& featureEdges,
             const label externalStart,
@@ -195,7 +195,7 @@ public:
         //  geometric criteria
         surfaceFeatures
         (
-            const triSurface&,
+            const triSurface& surf,
             const scalar includedAngle,
             const scalar minLen = 0,
             const label minElems = 0,
@@ -203,15 +203,15 @@ public:
         );
 
         //- Construct from dictionary
-        surfaceFeatures(const triSurface&, const dictionary& dict);
+        surfaceFeatures(const triSurface& surf, const dictionary& dict);
 
         //- Construct from file
-        surfaceFeatures(const triSurface&, const fileName& fName);
+        surfaceFeatures(const triSurface& surf, const fileName& fName);
 
         //- Construct from pointField and edgeList (edgeMesh)
         surfaceFeatures
         (
-            const triSurface&,
+            const triSurface& surf,
             const pointField& points,
             const edgeList& edges,
             const scalar mergeTol = 1e-6,
@@ -219,7 +219,7 @@ public:
         );
 
         //- Construct as copy
-        surfaceFeatures(const surfaceFeatures&);
+        surfaceFeatures(const surfaceFeatures& sf);
 
 
     // Member Functions
@@ -405,7 +405,7 @@ public:
         // Write
 
             //- Write as dictionary
-            void writeDict(Ostream&) const;
+            void writeDict(Ostream& os) const;
 
             //- Write as dictionary to file
             void write(const fileName& fName) const;
@@ -418,7 +418,7 @@ public:
 
     // Member Operators
 
-        void operator=(const surfaceFeatures&);
+        void operator=(const surfaceFeatures& rhs);
 
 
 };
-- 
GitLab


From aef09b8dafa135bf35d3b5c77a5d42644ced436e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 11 Apr 2017 20:48:32 +0100
Subject: [PATCH 187/277] 
 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection:
 Improved stability

Main changes in the tutorial:
  - General cleanup of the phaseProperties of unnecessary entries
  - sensibleEnthalpy is used for both phases
  - setTimeStep functionObject is used to set a sharp reduction in time step near the start of the injection
  - Monitoring of pressure minimum and maximum

Patch contributed by Juho Peltola, VTT.
---
 .../reactionThermo/hRefConstThermos.C         | 10 ++-
 .../laminar/steamInjection/constant/fvOptions |  2 +-
 .../steamInjection/constant/phaseProperties   | 89 +++----------------
 .../constant/thermophysicalProperties.steam   |  6 +-
 .../constant/thermophysicalProperties.water   |  6 +-
 .../laminar/steamInjection/system/controlDict | 31 ++++++-
 .../steamInjection/system/deltaTvalues        |  9 ++
 .../laminar/steamInjection/system/fvSolution  | 10 +--
 8 files changed, 75 insertions(+), 88 deletions(-)
 create mode 100644 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/deltaTvalues
 mode change 100644 => 100755 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution

diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C
index f43303a2b7e..712a96e1ded 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -253,6 +253,14 @@ makeReactionMixtureThermo
     constRefRhoConstHThermoPhysics
 );
 
+makeReactionMixtureThermo
+(
+    rhoThermo,
+    rhoReactionThermo,
+    heRhoThermo,
+    multiComponentMixture,
+    constRefFluidHThermoPhysics
+);
 
 makeReactionMixtureThermo
 (
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
index 6a3a4da0be7..c59177ebfce 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
@@ -71,7 +71,7 @@ options
             volumeMode      absolute;
             injectionRateSuSp
             {
-                e.steam      (3700 0); // kg*m^2/s^3
+                h.steam      (3700 0); // kg*m^2/s^3
             }
         }
     }
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties
index fc976bc67cb..919159c256b 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-type    thermalPhaseChangeTwoPhaseSystem;
+type thermalPhaseChangeTwoPhaseSystem;
 
 phases (steam water);
 
@@ -34,7 +34,7 @@ steam
     }
     Sc              0.7;
 
-    residualAlpha   1e-6;
+    residualAlpha   1e-3;
 }
 
 water
@@ -47,7 +47,7 @@ water
     }
     Sc              0.7;
 
-    residualAlpha   1e-6;
+    residualAlpha   1e-3;
 }
 
 blending
@@ -56,30 +56,6 @@ blending
     {
         type            none;
         continuousPhase water;
-        minFullyContinuousAlpha.steam 0.7;
-        minPartlyContinuousAlpha.steam 0.5;
-        minFullyContinuousAlpha.water 0.7;
-        minPartlyContinuousAlpha.water 0.5;
-    }
-
-    heatTransfer
-    {
-        type            none;
-        continuousPhase water;
-        minFullyContinuousAlpha.steam 1;
-        minPartlyContinuousAlpha.steam 0;
-        minFullyContinuousAlpha.water 1;
-        minPartlyContinuousAlpha.water 0;
-    }
-
-    massTransfer
-    {
-        type            none;
-        continuousPhase water;
-        minFullyContinuousAlpha.steam 1;
-        minPartlyContinuousAlpha.steam 0;
-        minFullyContinuousAlpha.water 1;
-        minPartlyContinuousAlpha.water 0;
     }
 }
 
@@ -107,12 +83,6 @@ aspectRatio
         type            constant;
         E0              1.0;
     }
-
-    (water in steam)
-    {
-        type            constant;
-        E0              1.0;
-    }
 );
 
 drag
@@ -126,16 +96,6 @@ drag
             type        none;
         }
     }
-
-    (water in steam)
-    {
-        type            SchillerNaumann;
-        residualRe      1e-3;
-        swarmCorrection
-        {
-            type        none;
-        }
-    }
 );
 
 virtualMass
@@ -145,27 +105,18 @@ virtualMass
         type            constantCoefficient;
         Cvm             0.5;
     }
-
-    (water in steam)
-    {
-        type            constantCoefficient;
-        Cvm             0.5;
-    }
 );
 
 interfaceComposition
+();
+
+heatTransfer
 (
     (steam in water)
     {
-        type Saturated;
-        species ( H2O );
-        Le 1.0;
-        saturationPressure
-        {
-            type ArdenBuck;
-        }
+        type spherical;
+        residualAlpha 1e-4;
     }
-
 );
 
 heatTransfer.steam
@@ -187,33 +138,19 @@ heatTransfer.water
 );
 
 massTransfer.steam
-(
-
-);
+();
 
 massTransfer.water
-(
-
-);
+();
 
 lift
-(
-);
+();
 
 wallLubrication
-(
-);
+();
 
 turbulentDispersion
-(
-    (steam in water)
-    {
-        type                Burns;//
-        sigma               0.7;
-        Ctd                 1.0;
-        residualAlpha       1e-3;
-    }
-);
+();
 
 // Minimum allowable pressure
 pMin            10000;
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
index 73efe39b114..1afc14ece84 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
@@ -23,9 +23,13 @@ thermoType
     thermo          hRefConst;
     equationOfState perfectGas;
     specie          specie;
-    energy          sensibleInternalEnergy;
+    energy          sensibleEnthalpy;
 }
 
+dpdt yes;
+
+pressureWorkAlphaLimit 0;
+
 species
 (
     water
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
index 84cdbf19654..2691e905b95 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
@@ -23,9 +23,13 @@ thermoType
     thermo          hRefConst;
     equationOfState perfectFluid;
     specie          specie;
-    energy          sensibleInternalEnergy;
+    energy          sensibleEnthalpy;
 }
 
+dpdt yes;
+
+pressureWorkAlphaLimit 0;
+
 species
 (
     water
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict
index c39421ffae2..ad3f9a9e919 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict
@@ -25,11 +25,11 @@ stopAt          endTime;
 
 endTime         10;
 
-deltaT          1e-6;
+deltaT          1e-3;
 
 writeControl    adjustableRunTime;
 
-writeInterval   0.5;
+writeInterval   0.1;
 
 purgeWrite      0;
 
@@ -41,7 +41,7 @@ writeCompression compressed;
 
 timeFormat      general;
 
-timePrecision   6;
+timePrecision   9;
 
 runTimeModifiable yes;
 
@@ -51,5 +51,30 @@ maxCo           0.1;
 
 maxDeltaT       1e-2;
 
+functions
+{
+    timeStepping
+    {
+        type            setTimeStep;
+        functionObjectLibs ("libutilityFunctionObjects.so");
+        enabled         yes;
+        deltaT          tableFile;
+        file            "system/deltaTvalues";
+    }
+
+    minMaxp
+    {
+        type        fieldMinMax;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        fields
+        (
+             p
+        );
+        location        no;
+        writeControl    timeStep;
+        writeInterval   1;
+    }
+}
+
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/deltaTvalues b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/deltaTvalues
new file mode 100644
index 00000000000..03c2defea09
--- /dev/null
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/deltaTvalues
@@ -0,0 +1,9 @@
+(
+    (0 1e-3)
+    (0.99 1e-3)
+    (0.999 1e-4)
+    (0.9999 1e-5)
+    (1.001 1e-5)
+    (1.01 1e-4)
+    (1.1 1e-3)
+);
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution
old mode 100644
new mode 100755
index f1af1c49004..8cce0f90ce6
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution
@@ -27,8 +27,8 @@ solvers
     {
         solver          PCG;
         preconditioner  DIC;
-        tolerance       1e-8;
-        relTol          0;
+        tolerance       1e-10;
+        relTol          0.001;
     }
 
     p_rghFinal
@@ -78,10 +78,10 @@ solvers
 
 PIMPLE
 {
-    nOuterCorrectors 4;
+    nOuterCorrectors 3;
     nCorrectors      1;
     nNonOrthogonalCorrectors 0;
-    nEnergyCorrectors 1;
+    nEnergyCorrectors 2;
     faceMomentum    yes;
 }
 
@@ -89,7 +89,7 @@ relaxationFactors
 {
     fields
     {
-        iDmdt 1;
+        iDmdt           1;
     }
 
     equations
-- 
GitLab


From 5fd814896a0cd241961866074c4a63eafab8fa0b Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 12 Apr 2017 14:31:35 +0100
Subject: [PATCH 188/277] reactingtwoPhaseEulerFoam: Wall boiling model
 refinements

Patch contributed by Juho Peltola, VTT.

Resolves patch request https://bugs.openfoam.org/view.php?id=2521
---
 ...allBoilingWallFunctionFvPatchScalarField.C | 71 +++++++++++--------
 ...allBoilingWallFunctionFvPatchScalarField.H | 14 ++++
 .../KocamustafaogullariIshii.C                |  6 +-
 .../KocamustafaogullariIshii.H                |  6 +-
 .../TolubinskiKostanchuk.C                    | 23 ++++--
 .../TolubinskiKostanchuk.H                    | 19 ++++-
 .../departureDiameterModel.H                  |  6 +-
 .../LemmertChawla/LemmertChawla.C             | 11 +--
 .../LemmertChawla/LemmertChawla.H             | 11 ++-
 .../nucleationSiteModel/nucleationSiteModel.H |  6 +-
 10 files changed, 124 insertions(+), 49 deletions(-)
 mode change 100644 => 100755 applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
 mode change 100644 => 100755 applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
old mode 100644
new mode 100755
index 3dfc5e971b7..034da573494
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
@@ -86,7 +86,8 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     relax_(0.5),
     AbyV_(p.size(), 0),
     alphatConv_(p.size(), 0),
-    dDep_(p.size(), 0),
+    dDep_(p.size(), 1e-5),
+    qq_(p.size(), 0),
     partitioningModel_(nullptr),
     nucleationSiteModel_(nullptr),
     departureDiamModel_(nullptr),
@@ -114,7 +115,8 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     relax_(dict.lookupOrDefault<scalar>("relax", 0.5)),
     AbyV_(p.size(), 0),
     alphatConv_(p.size(), 0),
-    dDep_(p.size(), 0),
+    dDep_(p.size(), 1e-5),
+    qq_(p.size(), 0),
     partitioningModel_(nullptr),
     nucleationSiteModel_(nullptr),
     departureDiamModel_(nullptr),
@@ -165,6 +167,11 @@ alphatWallBoilingWallFunctionFvPatchScalarField
                 dDep_ = scalarField("dDep", dict, p.size());
             }
 
+            if (dict.found("qQuenching"))
+            {
+                qq_ = scalarField("qQuenching", dict, p.size());
+            }
+
             break;
         }
     }
@@ -203,6 +210,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     AbyV_(psf.AbyV_),
     alphatConv_(psf.alphatConv_, mapper),
     dDep_(psf.dDep_, mapper),
+    qq_(psf.qq_, mapper),
     partitioningModel_(psf.partitioningModel_),
     nucleationSiteModel_(psf.nucleationSiteModel_),
     departureDiamModel_(psf.departureDiamModel_),
@@ -221,6 +229,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     AbyV_(psf.AbyV_),
     alphatConv_(psf.alphatConv_),
     dDep_(psf.dDep_),
+    qq_(psf.qq_),
     partitioningModel_(psf.partitioningModel_),
     nucleationSiteModel_(psf.nucleationSiteModel_),
     departureDiamModel_(psf.departureDiamModel_),
@@ -240,6 +249,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     AbyV_(psf.AbyV_),
     alphatConv_(psf.alphatConv_),
     dDep_(psf.dDep_),
+    qq_(psf.qq_),
     partitioningModel_(psf.partitioningModel_),
     nucleationSiteModel_(psf.nucleationSiteModel_),
     departureDiamModel_(psf.departureDiamModel_),
@@ -436,14 +446,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
 
                 const scalarField Tplus(Prt_*(log(E_*yPlus)/kappa_ + P));
                 scalarField Tl(Tw - (Tplus_y250/Tplus)*(Tw - Tc));
-                Tl = max(Tc - 40, min(Tc, Tl));
-                const scalarField Tsub(max(Tsatw - Tl, scalar(0)));
-
-                // Wall heat flux partitioning
-                const scalarField fLiquid
-                (
-                    partitioningModel_->fLiquid(liquidw)
-                );
+                Tl = max(Tc - 40, Tl);
 
                 // Nucleation site density:
                 const scalarField N
@@ -453,7 +456,9 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                         liquid,
                         vapor,
                         patchi,
-                        Tsatw
+                        Tl,
+                        Tsatw,
+                        L
                     )
                 );
 
@@ -463,7 +468,9 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                     liquid,
                     vapor,
                     patchi,
-                    Tsub
+                    Tl,
+                    Tsatw,
+                    L
                 );
 
                 // Bubble departure frequency:
@@ -481,19 +488,24 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 // Area fractions:
 
                 // Del Valle & Kenning (1985)
-                const scalarField Ja(rhoLiquidw*Cpw*Tsub/(rhoVaporw*L));
-                const scalarField Al(fLiquid*4.8*exp(-Ja/80));
+                const scalarField Ja
+                (
+                    rhoLiquidw*Cpw*(Tsatw - Tl)/(rhoVaporw*L)
+                );
+                const scalarField Al
+                (
+                    fLiquid*4.8*exp( min(-Ja/80,log(VGREAT)))
+                );
 
                 const scalarField A2(min(pi*sqr(dDep_)*N*Al/4, scalar(1)));
                 const scalarField A1(max(1 - A2, scalar(1e-4)));
                 const scalarField A2E(min(pi*sqr(dDep_)*N*Al/4, scalar(5)));
 
-                // Wall evaporation heat flux [kg/s3 = J/m2s]
-                const scalarField Qe((1.0/6.0)*A2E*dDep_*rhoVaporw*fDep*L);
-
                 // Volumetric mass source in the near wall cell due to the
                 // wall boiling
-                dmdt_ = (1 - relax_)*dmdt_ + relax_*Qe*AbyV_/L;
+                dmdt_ =
+                    (1 - relax_)*dmdt_
+                  + relax_*(1.0/6.0)*A2E*dDep_*rhoVaporw*fDep*AbyV_;
 
                 // Volumetric source in the near wall cell due to the wall
                 // boiling
@@ -506,7 +518,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 );
 
                 // Quenching heat flux
-                const scalarField Qq(A2*hQ*max(Tw - Tl, scalar(0)));
+                qq_ = (A2*hQ*max(Tw - Tl, scalar(0)));
 
                 // Effective thermal diffusivity that corresponds to the
                 // calculated convective, quenching and evaporative heat fluxes
@@ -515,7 +527,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 (
                     (
                         A1*alphatConv_
-                      + (Qq + Qe)/max(hew.snGrad(), scalar(1e-16))
+                      + (qq_ + qe())/max(hew.snGrad(), scalar(1e-16))
                     )
                    /max(liquidw, scalar(1e-8))
                 );
@@ -538,12 +550,12 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
 
                 if (debug)
                 {
-                    const scalarField Qc
+                    const scalarField qc
                     (
                         fLiquid*A1*(alphatConv_ + alphaw)*hew.snGrad()
                     );
 
-                    const scalarField QEff
+                    const scalarField qEff
                     (
                         liquidw*(*this + alphaw)*hew.snGrad()
                     );
@@ -562,13 +574,13 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                         << gMax(A2E) << endl;
                     Info<< "  dmdtW: " << gMin(dmdt_) << " - "
                         << gMax(dmdt_) << endl;
-                    Info<< "  Qc: " << gMin(Qc) << " - " << gMax(Qc) << endl;
-                    Info<< "  Qq: " << gMin(fLiquid*Qq) << " - "
-                        << gMax(fLiquid*Qq) << endl;
-                    Info<< "  Qe: " << gMin(fLiquid*Qe) << " - "
-                        << gMax(fLiquid*Qe) << endl;
-                    Info<< "  QEff: " << gMin(QEff) << " - "
-                        << gMax(QEff) << endl;
+                    Info<< "  qc: " << gMin(qc) << " - " << gMax(qc) << endl;
+                    Info<< "  qq: " << gMin(fLiquid*qq()) << " - "
+                        << gMax(fLiquid*qq()) << endl;
+                    Info<< "  qe: " << gMin(fLiquid*qe()) << " - "
+                        << gMax(fLiquid*qe()) << endl;
+                    Info<< "  qEff: " << gMin(qEff) << " - "
+                        << gMax(qEff) << endl;
                     Info<< "  alphat: " << gMin(*this) << " - "
                         << gMax(*this) << endl;
                     Info<< "  alphatConv: " << gMin(alphatConv_)
@@ -636,6 +648,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::write(Ostream& os) const
 
     dmdt_.writeEntry("dmdt", os);
     dDep_.writeEntry("dDep", os);
+    qq_.writeEntry("qQuenching", os);
     alphatConv_.writeEntry("alphatConv", os);
     writeEntry("value", os);
 }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
old mode 100644
new mode 100755
index 701a3f911f5..665d41197eb
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
@@ -181,6 +181,9 @@ private:
         //- Departure diameter field
         scalarField dDep_;
 
+        //- Quenching surface heat flux
+        scalarField qq_;
+
         //- Run-time selected heat flux partitioning model
         autoPtr<wallBoilingModels::partitioningModel>
             partitioningModel_;
@@ -275,6 +278,17 @@ public:
             return dDep_;
         }
 
+        //- Return the quenching surface heat flux [W/m2]
+        const scalarField& qq() const
+        {
+            return qq_;
+        }
+
+        //- Return the evaporation surface heat flux [W/m2]
+        tmp<scalarField> qe() const
+        {
+            return mDotL_/AbyV_;
+        }
 
         // Evaluation functions
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C
index ae6ecf46206..53fe0e2f15b 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,9 @@ KocamustafaogullariIshii::dDeparture
     const phaseModel& liquid,
     const phaseModel& vapor,
     const label patchi,
-    const scalarField& Tsub
+    const scalarField& Tl,
+    const scalarField& Tsatw,
+    const scalarField& L
 ) const
 {
     // Gravitational acceleration
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H
index 5bbe8d54330..e7f0c675553 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,7 +92,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const scalarField& Tsub
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const;
 
         virtual void write(Ostream& os) const;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C
index 23229071c0b..71ef4f03c73 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,10 @@ TolubinskiKostanchuk::TolubinskiKostanchuk
     const dictionary& dict
 )
 :
-    departureDiameterModel()
+    departureDiameterModel(),
+    dRef_(dict.lookupOrDefault<scalar>("dRef", 6e-4)),
+    dMax_(dict.lookupOrDefault<scalar>("dMax", 0.0014)),
+    dMin_(dict.lookupOrDefault<scalar>("dMin", 1e-6))
 {}
 
 
@@ -74,10 +77,22 @@ TolubinskiKostanchuk::dDeparture
     const phaseModel& liquid,
     const phaseModel& vapor,
     const label patchi,
-    const scalarField& Tsub
+    const scalarField& Tl,
+    const scalarField& Tsatw,
+    const scalarField& L
 ) const
 {
-    return max(min(0.0006*exp(-Tsub/45), scalar(0.0014)), scalar(1e-6));
+    return max(min(dRef_*exp(-(Tsatw-Tl)/45), dMax_), dMin_);
+}
+
+
+void Foam::wallBoilingModels::departureDiameterModels::
+TolubinskiKostanchuk::write(Ostream& os) const
+{
+    departureDiameterModel::write(os);
+    os.writeKeyword("dRef") << dRef_ << token::END_STATEMENT << nl;
+    os.writeKeyword("dMax") << dMax_ << token::END_STATEMENT << nl;
+    os.writeKeyword("dMin") << dMin_ << token::END_STATEMENT << nl;
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H
index 9437f5185b4..79c5d61c6a4 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,6 +63,17 @@ class TolubinskiKostanchuk
     public departureDiameterModel
 {
 
+    // Private data:
+
+        //- Coefficient of the temperature term
+        scalar dRef_;
+
+        //- Maximum diameter
+        scalar dMax_;
+
+        //- Minimum diameter
+        scalar dMin_;
+
 public:
 
     //- Runtime type information
@@ -87,8 +98,12 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const scalarField& Tsub
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const;
+
+        virtual void write(Ostream& os) const;
 };
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H
index 47f431eb190..5a7375e0616 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const scalarField& Tsub
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const = 0;
 
         virtual void write(Ostream& os) const;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C
index 28920597d2b..69eddc91c8e 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,8 @@ Foam::wallBoilingModels::nucleationSiteModels::LemmertChawla::LemmertChawla
     const dictionary& dict
 )
 :
-    nucleationSiteModel()
+    nucleationSiteModel(),
+    Cn_(dict.lookupOrDefault<scalar>("Cn", 1))
 {}
 
 
@@ -71,13 +72,15 @@ Foam::wallBoilingModels::nucleationSiteModels::LemmertChawla::N
     const phaseModel& liquid,
     const phaseModel& vapor,
     const label patchi,
-    const fvPatchScalarField& Tsatw
+    const scalarField& Tl,
+    const scalarField& Tsatw,
+    const scalarField& L
 ) const
 {
     const fvPatchScalarField& Tw =
         liquid.thermo().T().boundaryField()[patchi];
 
-    return 0.8*9.922e5*pow(max((Tw - Tsatw)/10, scalar(0)), 1.805);
+    return Cn_*9.922e5*pow(max((Tw - Tsatw)/10, scalar(0)), 1.805);
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H
index a521eb78429..f3c560478fa 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,6 +68,11 @@ class LemmertChawla
     public nucleationSiteModel
 {
 
+    // Private data:
+
+        //- Coefficient for nucleation site density
+        scalar Cn_;
+
 public:
 
     //- Runtime type information
@@ -91,7 +96,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const fvPatchScalarField& Tsatw
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const;
 };
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H
index 6a26e4de708..fc26b7f9ecf 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const fvPatchScalarField& Tsatw
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const = 0;
 
         virtual void write(Ostream& os) const;
-- 
GitLab


From e9ba8242caea8d987508acff865e5f479627693d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 12 Apr 2017 14:33:45 +0100
Subject: [PATCH 189/277] FieldFieldFunctionsM: Corrected macro names and order
 for binary functions

---
 .../FieldField/FieldFieldFunctionsM.C         | 50 +++++++++----------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C
index a32972d21a1..4160f382ab8 100644
--- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C
+++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -206,44 +206,44 @@ TEMPLATE                                                                       \
 void Func                                                                      \
 (                                                                              \
     FieldField<Field, ReturnType>& f,                                          \
-    const FieldField<Field, Type1>& f1,                                        \
-    const Type2& s                                                             \
+    const Type1& s,                                                            \
+    const FieldField<Field, Type2>& f2                                         \
 )                                                                              \
 {                                                                              \
     forAll(f, i)                                                               \
     {                                                                          \
-        Func(f[i], f1[i], s);                                                  \
+        Func(f[i], s, f2[i]);                                                  \
     }                                                                          \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const FieldField<Field, Type1>& f1,                                        \
-    const Type2& s                                                             \
+    const Type1& s,                                                            \
+    const FieldField<Field, Type2>& f2                                         \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        FieldField<Field, Type1>::NewCalculatedType(f1)                        \
+        FieldField<Field, Type2>::NewCalculatedType(f2)                        \
     );                                                                         \
-    Func(tRes.ref(), f1, s);                                                   \
+    Func(tRes.ref(), s, f2);                                                   \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const tmp<FieldField<Field, Type1>>& tf1,                                  \
-    const Type2& s                                                             \
+    const Type1& s,                                                            \
+    const tmp<FieldField<Field, Type2>>& tf2                                   \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1)                 \
+        reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2)                 \
     );                                                                         \
-    Func(tRes.ref(), tf1(), s);                                                \
-    tf1.clear();                                                               \
+    Func(tRes.ref(), s, tf2());                                                \
+    tf2.clear();                                                               \
     return tRes;                                                               \
 }
 
@@ -254,44 +254,44 @@ TEMPLATE                                                                       \
 void Func                                                                      \
 (                                                                              \
     FieldField<Field, ReturnType>& f,                                          \
-    const Type1& s,                                                            \
-    const FieldField<Field, Type2>& f2                                         \
+    const FieldField<Field, Type1>& f1,                                        \
+    const Type2& s                                                             \
 )                                                                              \
 {                                                                              \
     forAll(f, i)                                                               \
     {                                                                          \
-        Func(f[i], s, f2[i]);                                                  \
+        Func(f[i], f1[i], s);                                                  \
     }                                                                          \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const Type1& s,                                                            \
-    const FieldField<Field, Type2>& f2                                         \
+    const FieldField<Field, Type1>& f1,                                        \
+    const Type2& s                                                             \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        FieldField<Field, Type2>::NewCalculatedType(f2)                        \
+        FieldField<Field, Type1>::NewCalculatedType(f1)                        \
     );                                                                         \
-    Func(tRes.ref(), s, f2);                                                   \
+    Func(tRes.ref(), f1, s);                                                   \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const Type1& s,                                                            \
-    const tmp<FieldField<Field, Type2>>& tf2                                   \
+    const tmp<FieldField<Field, Type1>>& tf1,                                  \
+    const Type2& s                                                             \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2)                 \
+        reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1)                 \
     );                                                                         \
-    Func(tRes.ref(), s, tf2());                                                \
-    tf2.clear();                                                               \
+    Func(tRes.ref(), tf1(), s);                                                \
+    tf1.clear();                                                               \
     return tRes;                                                               \
 }
 
-- 
GitLab


From 8b55ea4fb1ca12359c836e5cafd0a15a29f20273 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 13 Apr 2017 13:30:17 +0100
Subject: [PATCH 190/277] fvOptions: The "<type>Coeffs" sub-dictionary is now
 optional

For example the actuationDiskSource fvOption may now be specified

disk1
{
    type            actuationDiskSource;

    fields      (U);

    selectionMode   cellSet;
    cellSet         actuationDisk1;
    diskDir         (1 0 0);    // Orientation of the disk
    Cp              0.386;
    Ct              0.58;
    diskArea        40;
    upstreamPoint   (581849 4785810 1065);
}

rather than

disk1
{
    type            actuationDiskSource;
    active          on;

    actuationDiskSourceCoeffs
    {
        fields      (U);

        selectionMode   cellSet;
        cellSet         actuationDisk1;
        diskDir         (1 0 0);    // Orientation of the disk
        Cp              0.386;
        Ct              0.58;
        diskArea        40;
        upstreamPoint   (581849 4785810 1065);
    }
}

but this form is supported for backward compatibility.
---
 .../cfdTools/general/fvOptions/fvOption.C     |  16 ++-
 .../cfdTools/general/fvOptions/fvOption.H     |   2 +-
 .../cfdTools/general/fvOptions/fvOptionIO.C   |  12 +-
 src/fvOptions/cellSetOption/cellSetOption.H   |  17 +--
 .../fixedTemperatureConstraint.H              |  15 +-
 .../FixedValueConstraint.H                    |  15 +-
 .../limitTemperature/limitTemperature.H       |  11 +-
 .../corrections/limitVelocity/limitVelocity.H |   9 +-
 .../actuationDiskSource/actuationDiskSource.H |  17 +--
 .../derived/buoyancyEnergy/buoyancyEnergy.H   |   7 +-
 .../derived/buoyancyForce/buoyancyForce.H     |   7 +-
 .../effectivenessHeatExchangerSource.H        |  21 ++-
 .../meanVelocityForce/meanVelocityForce.H     |  13 +-
 .../patchMeanVelocityForce.H                  |  15 +-
 .../radialActuationDiskSource.H               |  19 ++-
 .../derived/rotorDiskSource/rotorDiskSource.H |   5 +-
 .../solidificationMeltingSource.C             |   4 +-
 .../solidificationMeltingSource.H             |  21 ++-
 .../tabulatedAccelerationSource.H             |   7 +-
 .../semiImplicitSource/SemiImplicitSource.H   |  13 +-
 .../RAS/angledDuct/constant/fvOptions         |  24 ++--
 .../RAS/angledDuctLTS/constant/fvOptions      |  24 ++--
 .../RAS/mixerVessel2D/constant/fvOptions      |  24 ++--
 .../angledDuctImplicit/constant/fvOptions     |  12 +-
 .../constant/fvOptions                        |  27 ++--
 .../heatExchanger/constant/air/fvOptions      |  40 +++---
 .../heatExchanger/constant/porous/fvOptions   |  16 +--
 .../LES/channel395/constant/fvOptions         |  10 +-
 .../planarPoiseuille/constant/fvOptions       |  18 +--
 .../validation/WatersKing/createFields.H      |   8 +-
 .../laminar/porousBlockage/constant/fvOptions |  24 ++--
 .../simpleFoam/rotorDisk/system/fvOptions     | 130 +++++++++---------
 .../turbineSiting/constant/fvOptions          |  48 +++----
 .../simplifiedSiwek/constant/fvOptions        |  16 +--
 .../filter/constant/fvOptions                 | 104 ++++++--------
 .../RAS/angledDuct/constant/fvOptions         |  24 ++--
 .../laminar/injection/constant/fvOptions      |  39 ++----
 .../laminar/steamInjection/constant/fvOptions |  39 ++----
 .../laminar/injection/constant/fvOptions      |  39 ++----
 39 files changed, 383 insertions(+), 529 deletions(-)

diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
index d6ccd5c66b4..be200396ea4 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,7 +52,12 @@ Foam::fv::option::option
     modelType_(modelType),
     mesh_(mesh),
     dict_(dict),
-    coeffs_(dict.subDict(modelType + "Coeffs")),
+    coeffs_
+    (
+        dict.found(modelType + "Coeffs")
+      ? dict.subDict(modelType + "Coeffs")
+      : dict
+    ),
     active_(dict_.lookupOrDefault<Switch>("active", true)),
     fieldNames_(),
     applied_()
@@ -75,6 +80,13 @@ Foam::autoPtr<Foam::fv::option> Foam::fv::option::New
     Info<< indent
         << "Selecting finite volume options model type " << modelType << endl;
 
+    const_cast<Time&>(mesh.time()).libs().open
+    (
+        coeffs,
+        "libs",
+        dictionaryConstructorTablePtr_
+    );
+
     dictionaryConstructorTable::iterator cstrIter =
         dictionaryConstructorTablePtr_->find(modelType);
 
diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H
index 506a868bc5b..cab11123685 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
index 0f6c4532263..5308fa623b1 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,15 @@ void Foam::fv::option::writeData(Ostream& os) const
 bool Foam::fv::option::read(const dictionary& dict)
 {
     dict.readIfPresent("active", active_);
-    coeffs_ = dict.subDict(modelType_ + "Coeffs");
+
+    if (dict.found(modelType_ + "Coeffs"))
+    {
+        coeffs_ = dict.subDict(modelType_ + "Coeffs");
+    }
+    else
+    {
+        coeffs_ = dict;
+    }
 
     return true;
 }
diff --git a/src/fvOptions/cellSetOption/cellSetOption.H b/src/fvOptions/cellSetOption/cellSetOption.H
index dd07b2e87f6..ba7a99c3249 100644
--- a/src/fvOptions/cellSetOption/cellSetOption.H
+++ b/src/fvOptions/cellSetOption/cellSetOption.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,15 +31,12 @@ Description
         type            scalarExplicitSource    // Source type
         active          on;                     // on/off switch
 
-        scalarExplicitSourceCoeffs
-        {
-            timeStart       0.0;        // Start time
-            duration        1000.0;     // Duration
-            selectionMode   cellSet;    // cellSet, points, cellZone
-            .
-            .
-            .
-        }
+        timeStart       0.0;        // Start time
+        duration        1000.0;     // Duration
+        selectionMode   cellSet;    // cellSet, points, cellZone
+        .
+        .
+        .
     \endverbatim
 
 Note
diff --git a/src/fvOptions/constraints/fixedTemperatureConstraint/fixedTemperatureConstraint.H b/src/fvOptions/constraints/fixedTemperatureConstraint/fixedTemperatureConstraint.H
index afab78ad527..404a035ceb7 100644
--- a/src/fvOptions/constraints/fixedTemperatureConstraint/fixedTemperatureConstraint.H
+++ b/src/fvOptions/constraints/fixedTemperatureConstraint/fixedTemperatureConstraint.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,16 +34,13 @@ Usage
         type            fixedTemperatureConstraint;
         active          yes;
 
-        fixedTemperatureConstraintCoeffs
-        {
-            mode            uniform;      // uniform or lookup
+        mode            uniform;      // uniform or lookup
 
-            // For uniform option
-            temperature     constant 500; // fixed temperature with time [K]
+        // For uniform option
+        temperature     constant 500; // fixed temperature with time [K]
 
-            // For lookup option
-            // T            <Tname>;      // optional temperature field name
-        }
+        // For lookup option
+        // T            <Tname>;      // optional temperature field name
     }
     \endverbatim
 
diff --git a/src/fvOptions/constraints/fixedValueConstraint/FixedValueConstraint.H b/src/fvOptions/constraints/fixedValueConstraint/FixedValueConstraint.H
index dcd557f6246..42d52160d43 100644
--- a/src/fvOptions/constraints/fixedValueConstraint/FixedValueConstraint.H
+++ b/src/fvOptions/constraints/fixedValueConstraint/FixedValueConstraint.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,15 +35,12 @@ Usage
         type            scalarFixedValueConstraint;
         active          yes;
 
-        scalarFixedValueConstraintCoeffs
+        selectionMode   cellZone;
+        cellZone        porosity;
+        fieldValues
         {
-            selectionMode   cellZone;
-            cellZone        porosity;
-            fieldValues
-            {
-                k           1;
-                epsilon     150;
-            }
+            k           1;
+            epsilon     150;
         }
     }
     \endverbatim
diff --git a/src/fvOptions/corrections/limitTemperature/limitTemperature.H b/src/fvOptions/corrections/limitTemperature/limitTemperature.H
index 609dac66868..956515eb602 100644
--- a/src/fvOptions/corrections/limitTemperature/limitTemperature.H
+++ b/src/fvOptions/corrections/limitTemperature/limitTemperature.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,12 +36,9 @@ Usage
         type            limitTemperature;
         active          yes;
 
-        limitTemperatureCoeffs
-        {
-            selectionMode   all;
-            min             200;
-            max             500;
-        }
+        selectionMode   all;
+        min             200;
+        max             500;
     }
     \endverbatim
 
diff --git a/src/fvOptions/corrections/limitVelocity/limitVelocity.H b/src/fvOptions/corrections/limitVelocity/limitVelocity.H
index b1c3f1b0482..15ff1a8b6a6 100644
--- a/src/fvOptions/corrections/limitVelocity/limitVelocity.H
+++ b/src/fvOptions/corrections/limitVelocity/limitVelocity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,11 +35,8 @@ Usage
         type            limitVelocity;
         active          yes;
 
-        limitVelocityCoeffs
-        {
-            selectionMode   all;
-            max             100;
-        }
+        selectionMode   all;
+        max             100;
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
index 66a673ed3e1..bec0446d96f 100644
--- a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
+++ b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,15 +47,12 @@ Description
 Usage
     Example usage:
     \verbatim
-    actuationDiskSourceCoeffs
-    {
-        fields          (U);        // names of fields to apply source
-        diskDir         (-1 0 0);   // disk direction
-        Cp              0.1;        // power coefficient
-        Ct              0.5;        // thrust coefficient
-        diskArea        5.0;        // disk area
-        upstreamPoint   (0 0 0);    // upstream point
-    }
+    fields          (U);        // names of fields to apply source
+    diskDir         (-1 0 0);   // disk direction
+    Cp              0.1;        // power coefficient
+    Ct              0.5;        // thrust coefficient
+    diskArea        5.0;        // disk area
+    upstreamPoint   (0 0 0);    // upstream point
     \endverbatim
 
 
diff --git a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
index 6f6a79584cd..a6bf15c1914 100644
--- a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
+++ b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,10 +31,7 @@ Description
 Usage
     Example usage:
     \verbatim
-    buoyancyEnergyCoeffs
-    {
-        fields          (h);                    // Name of energy field
-    }
+    fields          (h);                    // Name of energy field
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
index c6203e0557e..e50c5f3264f 100644
--- a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
+++ b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,10 +31,7 @@ Description
 Usage
     Example usage:
     \verbatim
-    buoyancyForceCoeffs
-    {
-        fields          (U);                    // Name of velocity field
-    }
+    fields          (U);                    // Name of velocity field
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
index e21ce5b52d2..75c7ad6295f 100644
--- a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
+++ b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
@@ -67,18 +67,15 @@ Usage
         type            effectivenessHeatExchangerSource;
         active          yes;
 
-        effectivenessHeatExchangerSourceCoeffs
-        {
-            selectionMode   cellZone;
-            cellZone        porosity;
-
-            secondaryMassFlowRate   1.0;
-            secondaryInletT         336;
-            primaryInletT           293;
-            faceZone                facesZoneInletOriented;
-            outOfBounds             clamp;
-            fileName                "effTable";
-        }
+        selectionMode   cellZone;
+        cellZone        porosity;
+
+        secondaryMassFlowRate   1.0;
+        secondaryInletT         336;
+        primaryInletT           293;
+        faceZone                facesZoneInletOriented;
+        outOfBounds             clamp;
+        fileName                "effTable";
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
index fc12440bce4..a115710fb26 100644
--- a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
+++ b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,13 +33,10 @@ Description
 Usage
     Example usage:
     \verbatim
-    meanVelocityForceCoeffs
-    {
-        selectionMode   all;                    // Apply force to all cells
-        fields          (U);                    // Name of velocity field
-        Ubar            (10.0 0 0);             // Desired mean velocity
-        relaxation      0.2;                    // Optional relaxation factor
-    }
+    selectionMode   all;                    // Apply force to all cells
+    fields          (U);                    // Name of velocity field
+    Ubar            (10.0 0 0);             // Desired mean velocity
+    relaxation      0.2;                    // Optional relaxation factor
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H b/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
index 7413cd497e1..75b175def6c 100644
--- a/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
+++ b/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,14 +33,11 @@ Description
 Usage
     Example usage:
     \verbatim
-    patchMeanVelocityForceCoeffs
-    {
-        selectionMode   all;                    // Apply force to all cells
-        fields          (U);                    // Name of velocity field
-        patch           inlet;                  // Name of the patch
-        Ubar            (10.0 0 0);             // Desired mean velocity
-        relaxation      0.2;                    // Optional relaxation factor
-    }
+    selectionMode   all;                    // Apply force to all cells
+    fields          (U);                    // Name of velocity field
+    patch           inlet;                  // Name of the patch
+    Ubar            (10.0 0 0);             // Desired mean velocity
+    relaxation      0.2;                    // Optional relaxation factor
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H b/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H
index 8fbcc2002a8..4603e292959 100644
--- a/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H
+++ b/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,16 +53,13 @@ Description
 Usage
     Example usage:
     \verbatim
-    actuationDiskSourceCoeffs
-    {
-        fieldName       U;          // name of field to apply source
-        diskDir         (-1 0 0);   // disk direction
-        Cp              0.1;        // power coefficient
-        Ct              0.5;        // thrust coefficient
-        diskArea        5.0;        // disk area
-        coeffs          (0.1 0.5 0.01); // radial distribution coefficients
-        upstreamPoint   (0 0 0);    // upstream point
-    }
+    fieldName       U;          // name of field to apply source
+    diskDir         (-1 0 0);   // disk direction
+    Cp              0.1;        // power coefficient
+    Ct              0.5;        // thrust coefficient
+    diskArea        5.0;        // disk area
+    coeffs          (0.1 0.5 0.01); // radial distribution coefficients
+    upstreamPoint   (0 0 0);    // upstream point
     \endverbatim
 
 
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
index d928e2f2ca1..889df73ba51 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
+++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,8 +33,6 @@ Description
 Usage
     Example usage:
     \verbatim
-    rotorDiskSourceCoeffs
-    {
         fields          (U);    // names of fields on which to apply source
         nBlades         3;      // number of blades
         tipEffect       0.96;   // normalised radius above which lift = 0
@@ -73,7 +71,6 @@ Usage
                 ...
             }
         }
-    }
     \endverbatim
 
     Where:
diff --git a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C
index 859ef24a2b1..7867633b8df 100644
--- a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C
+++ b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -243,7 +243,7 @@ Foam::fv::solidificationMeltingSource::solidificationMeltingSource
         }
     }
 
-    applied_.setSize(2, false);
+    applied_.setSize(fieldNames_.size(), false);
 }
 
 
diff --git a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H
index fe969d54ce4..b91c94a95d6 100644
--- a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H
+++ b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,17 +53,14 @@ Usage
         type            solidificationMeltingSource;
         active          yes;
 
-        solidificationMeltingSourceCoeffs
-        {
-            selectionMode   cellZone;
-            cellZone        iceZone;
-
-            Tmelt           273;
-            L               334000;
-            thermoMode      thermo;
-            beta            50e-6;
-            rhoRef          800;
-        }
+        selectionMode   cellZone;
+        cellZone        iceZone;
+
+        Tmelt           273;
+        L               334000;
+        thermoMode      thermo;
+        beta            50e-6;
+        rhoRef          800;
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H b/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H
index 6418ac71710..1ee054f63e3 100644
--- a/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H
+++ b/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,10 +35,7 @@ Usage
         type            tabulatedAccelerationSource;
         active          yes;
 
-        tabulatedAccelerationSourceCoeffs
-        {
-            timeDataFileName "constant/acceleration-terms.dat";
-        }
+        timeDataFileName "constant/acceleration-terms.dat";
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H b/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H
index c6bf7ff7778..bc06babeb1a 100644
--- a/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H
+++ b/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,14 +42,11 @@ Description
     Example of the source specification:
 
     \verbatim
-    <Type>SemiImplicitSourceCoeffs
+    volumeMode      absolute; // specific
+    injectionRateSuSp
     {
-        volumeMode      absolute; // specific
-        injectionRateSuSp
-        {
-            k           (30.7 0);
-            epsilon     (1.5  0);
-        }
+        k           (30.7 0);
+        epsilon     (1.5  0);
     }
     \endverbatim
 
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
index 8d380de4a6e..f5665a7a0d8 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (7e5 -1000 -1000);
-            f   (0 0 0);
+        d   (7e5 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1      (0.70710678 0.70710678 0);
-                    e3      (0 0 1);
-                }
+                type    axesRotation;
+                e1      (0.70710678 0.70710678 0);
+                e3      (0 0 1);
             }
         }
     }
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
index 045b7a73850..7b2d72be0a4 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (5e7 -1000 -1000);
-            f   (0 0 0);
+        d   (5e7 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (0.70710678 0.70710678 0);
-                    e2  (0 0 1);
-                }
+                type    axesRotation;
+                e1  (0.70710678 0.70710678 0);
+                e2  (0 0 1);
             }
         }
     }
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
index 446cbc45a9e..17db7e16ad5 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (1e5 -1000 -1000);
-            f   (0 0 0);
+        d   (1e5 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (1 0 0);
-                    e2  (0 1 0);
-                }
+                type    axesRotation;
+                e1  (1 0 0);
+                e2  (0 1 0);
             }
         }
     }
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/fvOptions b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/fvOptions
index d41d1e8b8d4..41c0ca275c6 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/fvOptions
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/fvOptions
@@ -18,16 +18,12 @@ FoamFile
 source1
 {
     type            fixedTemperatureConstraint;
-    active          yes;
 
-    fixedTemperatureConstraintCoeffs
-    {
-        selectionMode   cellZone;
-        cellZone        porosity;
+    selectionMode   cellZone;
+    cellZone        porosity;
 
-        mode            uniform;
-        temperature     350;
-    }
+    mode            uniform;
+    temperature     350;
 }
 
 
diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions
index bb431dc10a7..85390e4e589 100644
--- a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions
+++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -53,32 +52,24 @@ porosity
 fixedTemperature
 {
     type            fixedTemperatureConstraint;
-    active          yes;
 
-    fixedTemperatureConstraintCoeffs
-    {
-        selectionMode   cellZone;
-        cellZone        porosity;
-        mode            uniform;
-        temperature     350;
-    }
+    selectionMode   cellZone;
+    cellZone        porosity;
+    mode            uniform;
+    temperature     350;
 }
 
 
 porosityTurbulence
 {
     type            scalarFixedValueConstraint;
-    active          yes;
 
-    scalarFixedValueConstraintCoeffs
+    selectionMode   cellZone;
+    cellZone        porosity;
+    fieldValues
     {
-        selectionMode   cellZone;
-        cellZone        porosity;
-        fieldValues
-        {
-            k           1;
-            epsilon     150;
-        }
+        k           1;
+        epsilon     150;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions
index 34857576c18..fffcb80dc1e 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions
@@ -18,24 +18,19 @@ FoamFile
 airToporous
 {
     type            constantHeatTransfer;
-    active          yes;
 
-    constantHeatTransferCoeffs
-    {
-        interpolationMethod cellVolumeWeight;
-        nbrRegionName   porous;
-        master          false;
+    interpolationMethod cellVolumeWeight;
+    nbrRegionName   porous;
+    master          false;
 
-        nbrModel        porousToair;
-        fields          (h);
-        semiImplicit    no;
-    }
+    nbrModel        porousToair;
+    fields          (h);
+    semiImplicit    no;
 }
 
 porosityBlockage
 {
     type            interRegionExplicitPorositySource;
-    active          yes;
 
     interRegionExplicitPorositySourceCoeffs
     {
@@ -44,21 +39,18 @@ porosityBlockage
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (-1000 -1000 1e4);
-            f   (0 0 0);
+        d   (-1000 -1000 1e4);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1      (0 1 0);
-                    e2      (0 0 1);
-                }
+                type    axesRotation;
+                e1      (0 1 0);
+                e2      (0 0 1);
             }
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions
index 6ccc6a529b0..2c44772e9bf 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions
@@ -18,18 +18,14 @@ FoamFile
 porousToair
 {
     type            constantHeatTransfer;
-    active          yes;
 
-    constantHeatTransferCoeffs
-    {
-        interpolationMethod cellVolumeWeight;
-        nbrRegionName   air;
-        master          true;
+    interpolationMethod cellVolumeWeight;
+    nbrRegionName   air;
+    master          true;
 
-        nbrModel        airToporous;
-        fields          (h);
-        semiImplicit    no;
-    }
+    nbrModel        airToporous;
+    fields          (h);
+    semiImplicit    no;
 }
 
 
diff --git a/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
index b2b9fc33d44..a59794a17a6 100644
--- a/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
+++ b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
@@ -18,15 +18,11 @@ FoamFile
 momentumSource
 {
     type            meanVelocityForce;
-    active          yes;
 
-    meanVelocityForceCoeffs
-    {
-        selectionMode   all;
+    selectionMode   all;
 
-        fields      (U);
-        Ubar            (0.1335 0 0);
-    }
+    fields      (U);
+    Ubar            (0.1335 0 0);
 }
 
 
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
index 5a267f51d28..bf9fb340427 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
@@ -18,19 +18,15 @@ FoamFile
 momentumSource
 {
     type      vectorSemiImplicitSource;
-    active    yes;
 
-    vectorSemiImplicitSourceCoeffs
-    {
-        timeStart       0.0;
-        duration        1000;
-        selectionMode   all;
+    timeStart       0.0;
+    duration        1000;
+    selectionMode   all;
 
-        volumeMode      specific;
-        injectionRateSuSp
-        {
-            U    ((5 0 0) 0);
-        }
+    volumeMode      specific;
+    injectionRateSuSp
+    {
+        U    ((5 0 0) 0);
     }
 }
 
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
index 4ae80853b46..67d00031344 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
@@ -50,13 +50,7 @@ IOdictionary fvOptions
     )
 );
 const dictionary& gradPDict =
-    fvOptions.subDict("momentumSource").subDict
-    (
-        "vectorSemiImplicitSourceCoeffs"
-    ).subDict
-    (
-        "injectionRateSuSp"
-    );
+    fvOptions.subDict("momentumSource").subDict("injectionRateSuSp");
 const scalar K =
     Tuple2<vector, scalar>(gradPDict.lookup("U")).first().x();
 
diff --git a/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions b/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions
index fcba4b2188d..93ed91c9eed 100644
--- a/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions
+++ b/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -32,21 +31,18 @@ porosity1
         // D 500;  // Slight waviness in the far wake
         D 1000; // Fully shedding behavior
 
-        DarcyForchheimerCoeffs
-        {
-            d   ($D $D $D);
-            f   (0 0 0);
+        d   ($D $D $D);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (1 0 0);
-                    e2  (0 1 0);
-                }
+                type    axesRotation;
+                e1  (1 0 0);
+                e2  (0 1 0);
             }
         }
     }
diff --git a/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions b/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions
index 599f21065ba..7107305c20b 100644
--- a/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions
+++ b/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions
@@ -17,89 +17,85 @@ FoamFile
 disk
 {
     type            rotorDisk;
-    active          on;
 
-    rotorDiskCoeffs
-    {
-        selectionMode   cellZone;
-        cellZone        rotatingZone;
+    selectionMode   cellZone;
+    cellZone        rotatingZone;
 
-        fields      (U);    // Names of fields on which to apply source
-        nBlades         3;      // Number of blades
-        tipEffect       0.96;   // Normalised radius above which lift = 0
+    fields          (U);    // Names of fields on which to apply source
+    nBlades         3;      // Number of blades
+    tipEffect       0.96;   // Normalised radius above which lift = 0
 
-        inletFlowType   local;  // Inlet flow type specification
-        inletVelocity   (0 1 0);
+    inletFlowType   local;  // Inlet flow type specification
+    inletVelocity   (0 1 0);
 
-        geometryMode    specified;
+    geometryMode    specified;
 
-        origin          (0 0 0);
-        axis            (0 1 0);
+    origin          (0 0 0);
+    axis            (0 1 0);
 
-        refDirection    (0 0 1);  // Reference direction
-                                  // - used as reference for psi angle
-        rpm             1000;
-        //pointAbove    (0 0 0.25);
+    refDirection    (0 0 1);  // Reference direction
+                              // - used as reference for psi angle
+    rpm             1000;
+    //pointAbove    (0 0 0.25);
 
-        trimModel       fixedTrim;  // fixed || targetForce
+    trimModel       fixedTrim;  // fixed || targetForce
 
-        rhoRef          1000;
-        rhoInf          1;
+    rhoRef          1000;
+    rhoInf          1;
 
-        fixedTrimCoeffs
-        {
-             theta0         0;
-             theta1c        0;
-             theta1s        0;
-        }
+    fixedTrimCoeffs
+    {
+         theta0         0;
+         theta1c        0;
+         theta1s        0;
+    }
 
-        flapCoeffs
-        {
-            beta0           0;  // Coning angle [deg]
-            beta1c          0;  // Lateral flapping coeff (cos coeff)
-            beta2s          0;  // Longitudinal flapping coeff (sin coeff)
-        }
+    flapCoeffs
+    {
+        beta0           0;  // Coning angle [deg]
+        beta1c          0;  // Lateral flapping coeff (cos coeff)
+        beta2s          0;  // Longitudinal flapping coeff (sin coeff)
+    }
+
+    blade
+    {
+        data
+        (
+            (profile1 (0.1 -6 0.02))
+            (profile1 (0.25 -6 0.02))
+        );
+    }
 
-        blade
+    profiles
+    {
+        profile1
         {
+            type lookup;
             data
             (
-                (profile1 (0.1 -6 0.02))
-                (profile1 (0.25 -6 0.02))
+                (-90 0.21 1.45)
+                (-18 0.21 1.45)
+                (-16 0.165 1.3)
+                (-14 0.125 1.1)
+                (-12 0.092 0.95)
+                (-10 0.07 0.8)
+                (-8 0.05 0.64)
+                (-6 0.04 0.5)
+                (-4 0.028 0.32)
+                (-2 0.022 0.18)
+                (0 0.02 0)
+                (2 0.022 0.18)
+                (4 0.028 0.32)
+                (6 0.04 0.5)
+                (8 0.05 0.64)
+                (10 0.07 0.8)
+                (12 0.092 0.95)
+                (14 0.125 1.1)
+                (16 0.165 1.3)
+                (18 0.21 1.45)
+                (90 0.21 1.45)
             );
         }
-
-        profiles
-        {
-            profile1
-            {
-                type lookup;
-                data
-                (
-                    (-90 0.21 1.45)
-                    (-18 0.21 1.45)
-                    (-16 0.165 1.3)
-                    (-14 0.125 1.1)
-                    (-12 0.092 0.95)
-                    (-10 0.07 0.8)
-                    (-8 0.05 0.64)
-                    (-6 0.04 0.5)
-                    (-4 0.028 0.32)
-                    (-2 0.022 0.18)
-                    (0 0.02 0)
-                    (2 0.022 0.18)
-                    (4 0.028 0.32)
-                    (6 0.04 0.5)
-                    (8 0.05 0.64)
-                    (10 0.07 0.8)
-                    (12 0.092 0.95)
-                    (14 0.125 1.1)
-                    (16 0.165 1.3)
-                    (18 0.21 1.45)
-                    (90 0.21 1.45)
-                );
-            }
-        }
     }
 }
 
diff --git a/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions b/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions
index bf45c8c3326..051544965af 100644
--- a/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions
+++ b/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions
@@ -18,39 +18,31 @@ FoamFile
 disk1
 {
     type            actuationDiskSource;
-    active          on;
-
-    actuationDiskSourceCoeffs
-    {
-        fields      (U);
-
-        selectionMode   cellSet;
-        cellSet         actuationDisk1;
-        diskDir         (1 0 0);    // Orientation of the disk
-        Cp              0.386;
-        Ct              0.58;
-        diskArea        40;
-        upstreamPoint   (581849 4785810 1065);
-    }
+
+    fields      (U);
+
+    selectionMode   cellSet;
+    cellSet         actuationDisk1;
+    diskDir         (1 0 0);    // Orientation of the disk
+    Cp              0.386;
+    Ct              0.58;
+    diskArea        40;
+    upstreamPoint   (581849 4785810 1065);
 }
 
 disk2
 {
     type            actuationDiskSource;
-    active          on;
-
-    actuationDiskSourceCoeffs
-    {
-        fields      (U);
-
-        selectionMode   cellSet;
-        cellSet         actuationDisk2;
-        diskDir         (1 0 0);    // Orientation of the disk
-        Cp              0.53;
-        Ct              0.58;
-        diskArea        40;
-        upstreamPoint   (581753 4785663 1070);
-    }
+
+    fields      (U);
+
+    selectionMode   cellSet;
+    cellSet         actuationDisk2;
+    diskDir         (1 0 0);    // Orientation of the disk
+    Cp              0.53;
+    Ct              0.58;
+    diskArea        40;
+    upstreamPoint   (581753 4785663 1070);
 }
 
 
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions
index ee8ddad892c..a8d67957cb6 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions
@@ -18,18 +18,14 @@ FoamFile
 source1
 {
     type            fixedTemperatureConstraint;
-    active          yes;
 
-    fixedTemperatureConstraintCoeffs
-    {
-        timeStart       0.1;
-        duration        0.4;
-        selectionMode   cellSet;
-        cellSet         ignitionCells;
+    timeStart       0.1;
+    duration        0.4;
+    selectionMode   cellSet;
+    cellSet         ignitionCells;
 
-        mode            uniform;
-        temperature     2000;
-    }
+    mode            uniform;
+    temperature     2000;
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions b/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions
index 0b6c185a6eb..dd6336e10dd 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 filter1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ filter1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (500000 -1000 -1000);
-            f   (0 0 0);
+        d   (500000 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (1 0 0);
-                    e2  (0 1 0);
-                }
+                type    axesRotation;
+                e1  (1 0 0);
+                e2  (0 1 0);
             }
         }
     }
@@ -51,24 +47,20 @@ filter1
 massSource1
 {
     type            scalarSemiImplicitSource;
-    active          yes;
 
-    scalarSemiImplicitSourceCoeffs
+    timeStart       0.2;
+    duration        2.0;
+    selectionMode   points;
+    points
+    (
+        (2.75 0.5 0)
+    );
+
+    volumeMode      absolute;
+    injectionRateSuSp
     {
-        timeStart       0.2;
-        duration        2.0;
-        selectionMode   points;
-        points
-        (
-            (2.75 0.5 0)
-        );
-
-        volumeMode      absolute;
-        injectionRateSuSp
-        {
-            rho         (1e-4 0); // kg/s
-            H2O         (1e-4 0); // kg/s
-        }
+        rho         (1e-4 0); // kg/s
+        H2O         (1e-4 0); // kg/s
     }
 }
 
@@ -76,23 +68,19 @@ massSource1
 momentumSource1
 {
     type            vectorSemiImplicitSource;
-    active          yes;
 
-    vectorSemiImplicitSourceCoeffs
+    timeStart       0.2;
+    duration        2.0;
+    selectionMode   points;
+    points
+    (
+        (2.75 0.5 0)
+    );
+
+    volumeMode      absolute;
+    injectionRateSuSp
     {
-        timeStart       0.2;
-        duration        2.0;
-        selectionMode   points;
-        points
-        (
-            (2.75 0.5 0)
-        );
-
-        volumeMode      absolute;
-        injectionRateSuSp
-        {
-            U           ((0 0.005 0) 0);
-        }
+        U           ((0 0.005 0) 0);
     }
 }
 
@@ -100,23 +88,19 @@ momentumSource1
 energySource1
 {
     type            scalarSemiImplicitSource;
-    active          yes;
 
-    scalarSemiImplicitSourceCoeffs
+    timeStart       0.2;
+    duration        2.0;
+    selectionMode   points;
+    points
+    (
+        (2.75 0.5 0)
+    );
+
+    volumeMode      absolute;
+    injectionRateSuSp
     {
-        timeStart       0.2;
-        duration        2.0;
-        selectionMode   points;
-        points
-        (
-            (2.75 0.5 0)
-        );
-
-        volumeMode      absolute;
-        injectionRateSuSp
-        {
-            h           (10 0);
-        }
+        h           (10 0);
     }
 }
 
diff --git a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
index 98110758855..2ea1d4f5d26 100644
--- a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
+++ b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (2e8 -1000 -1000);
-            f   (0 0 0);
+        d   (2e8 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (0.70710678 0.70710678 0);
-                    e2  (0 0 1);
-                }
+                type    axesRotation;
+                e1  (0.70710678 0.70710678 0);
+                e2  (0 0 1);
             }
         }
     }
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions
index 5bc7e7ef873..653797ebf22 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions
@@ -32,15 +32,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                thermo:rho.air     (1e-3 0); // kg/s
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            thermo:rho.air     (1e-3 0); // kg/s
         }
     }
 
@@ -48,15 +45,12 @@ options
     {
         type            vectorSemiImplicitSource;
 
-        vectorSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                U.air           ((0 -1e-2 0) 0); // kg*m/s^2
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            U.air           ((0 -1e-2 0) 0); // kg*m/s^2
         }
     }
 
@@ -64,15 +58,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                e.air      (500 0); // kg*m^2/s^3
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            e.air      (500 0); // kg*m^2/s^3
         }
     }
 }
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
index c59177ebfce..2a07e89ca03 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
@@ -32,15 +32,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                thermo:rho.steam     (1.0e-3 0); // kg/s
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            thermo:rho.steam     (1.0e-3 0); // kg/s
         }
     }
 
@@ -48,15 +45,12 @@ options
     {
         type            vectorSemiImplicitSource;
 
-        vectorSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                U.steam           ((0 1e-1 0) 0); // kg*m/s^2
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            U.steam           ((0 1e-1 0) 0); // kg*m/s^2
         }
     }
 
@@ -64,15 +58,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                h.steam      (3700 0); // kg*m^2/s^3
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            h.steam      (3700 0); // kg*m^2/s^3
         }
     }
 }
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions
index 5bc7e7ef873..653797ebf22 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions
@@ -32,15 +32,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                thermo:rho.air     (1e-3 0); // kg/s
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            thermo:rho.air     (1e-3 0); // kg/s
         }
     }
 
@@ -48,15 +45,12 @@ options
     {
         type            vectorSemiImplicitSource;
 
-        vectorSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                U.air           ((0 -1e-2 0) 0); // kg*m/s^2
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            U.air           ((0 -1e-2 0) 0); // kg*m/s^2
         }
     }
 
@@ -64,15 +58,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                e.air      (500 0); // kg*m^2/s^3
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            e.air      (500 0); // kg*m^2/s^3
         }
     }
 }
-- 
GitLab


From 1805b3c98f95c289ebb8b1c6581526cd809f553e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 13 Apr 2017 13:57:33 +0100
Subject: [PATCH 191/277] radiationModel: Added "he" argument to the "Sh"
 function

for consistency with the other energy sources.
---
 applications/solvers/combustion/fireFoam/YEEqn.H       |  2 +-
 .../solvers/heatTransfer/buoyantPimpleFoam/EEqn.H      |  2 +-
 .../solvers/heatTransfer/buoyantSimpleFoam/EEqn.H      |  2 +-
 .../chtMultiRegionSimpleFoam/fluid/EEqn.H              |  2 +-
 .../heatTransfer/chtMultiRegionFoam/fluid/EEqn.H       |  2 +-
 applications/solvers/heatTransfer/thermoFoam/EEqn.H    |  2 +-
 .../solvers/lagrangian/coalChemistryFoam/EEqn.H        |  2 +-
 .../solvers/lagrangian/reactingParcelFilmFoam/EEqn.H   |  2 +-
 .../solvers/lagrangian/reactingParcelFoam/EEqn.H       |  4 ++--
 .../reactingParcelFoam/simpleReactingParcelFoam/EEqn.H |  2 +-
 .../radiationModels/radiationModel/radiationModel.C    |  8 ++++----
 .../radiationModels/radiationModel/radiationModel.H    | 10 +++++++---
 12 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/applications/solvers/combustion/fireFoam/YEEqn.H b/applications/solvers/combustion/fireFoam/YEEqn.H
index f72d574d954..de70ace85a7 100644
--- a/applications/solvers/combustion/fireFoam/YEEqn.H
+++ b/applications/solvers/combustion/fireFoam/YEEqn.H
@@ -67,7 +67,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         Qdot
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + parcels.Sh(he)
       + surfaceFilm.Sh()
       + fvOptions(rho, he)
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H
index ddd21254a9d..f0a7e3ad365 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H
@@ -18,7 +18,7 @@
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         rho*(U&g)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H
index b9782d3f738..e932d2fdefc 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H
@@ -12,7 +12,7 @@
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         rho*(U&g)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H
index b6184788608..daf3af8f2db 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H
@@ -12,7 +12,7 @@
       - fvm::laplacian(turb.alphaEff(), he)
      ==
         rho*(U&g)
-      + rad.Sh(thermo)
+      + rad.Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H
index eafea3fd4c8..d8f4516f5e2 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H
@@ -18,7 +18,7 @@
       - fvm::laplacian(turb.alphaEff(), he)
      ==
         rho*(U&g)
-      + rad.Sh(thermo)
+      + rad.Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/thermoFoam/EEqn.H b/applications/solvers/heatTransfer/thermoFoam/EEqn.H
index 51232bf0bec..98a248ac35a 100644
--- a/applications/solvers/heatTransfer/thermoFoam/EEqn.H
+++ b/applications/solvers/heatTransfer/thermoFoam/EEqn.H
@@ -17,7 +17,7 @@
         )
       - fvm::laplacian(alphaEff, he)
      ==
-        radiation->Sh(thermo)
+        radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
index 1a1f014da05..6f1ad9041be 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
@@ -21,7 +21,7 @@
       + Qdot
       + coalParcels.Sh(he)
       + limestoneParcels.Sh(he)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
index 325009f067d..4d112da030f 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
@@ -20,7 +20,7 @@
         rho*(U&g)
       + parcels.Sh(he)
       + surfaceFilm.Sh()
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
     );
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
index 2ba1ef693fd..42185b8afb2 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
@@ -19,7 +19,7 @@
      ==
         rho*(U&g)
       + parcels.Sh(he)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
     );
@@ -35,6 +35,6 @@
     thermo.correct();
     radiation->correct();
 
-    Info<< "T gas min/max   = " << min(T).value() << ", "
+    Info<< "T gas min/max   " << min(T).value() << ", "
         << max(T).value() << endl;
 }
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
index 9bc12544287..c8baf6beab6 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
@@ -13,7 +13,7 @@
      ==
         rho*(U&g)
       + parcels.Sh(he)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
     );
diff --git a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C
index 22312d5dad7..368326d460c 100644
--- a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C
+++ b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,7 +28,7 @@ License
 #include "scatterModel.H"
 #include "sootModel.H"
 #include "fvmSup.H"
-#include "fluidThermo.H"
+#include "basicThermo.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -228,10 +228,10 @@ void Foam::radiation::radiationModel::correct()
 
 Foam::tmp<Foam::fvScalarMatrix> Foam::radiation::radiationModel::Sh
 (
-    fluidThermo& thermo
+    const basicThermo& thermo,
+    const volScalarField& he
 ) const
 {
-    volScalarField& he = thermo.he();
     const volScalarField Cpv(thermo.Cpv());
     const volScalarField T3(pow3(T_));
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H
index 7b46c38736c..55768498221 100644
--- a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H
+++ b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,7 @@ SourceFiles
 namespace Foam
 {
 
-class fluidThermo;
+class basicThermo;
 class fvMesh;
 
 namespace radiation
@@ -224,7 +224,11 @@ public:
             virtual tmp<volScalarField::Internal> Ru() const = 0;
 
             //- Energy source term
-            virtual tmp<fvScalarMatrix> Sh(fluidThermo& thermo) const;
+            virtual tmp<fvScalarMatrix> Sh
+            (
+                const basicThermo& thermo,
+                const volScalarField& he
+            ) const;
 
             //- Temperature source term
             virtual tmp<fvScalarMatrix> ST
-- 
GitLab


From af2810149e183ea42cf8fa5786f881f16a65dc85 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 13 Apr 2017 14:00:00 +0100
Subject: [PATCH 192/277] porosityModel: The "<porosityModel>Coeffs"
 sub-dictionary is now optional

For example the porosity coefficients may now be specified thus:

porosity1
{
    type            DarcyForchheimer;

    cellZone        porosity;

    d   (5e7 -1000 -1000);
    f   (0 0 0);

    coordinateSystem
    {
        type    cartesian;
        origin  (0 0 0);
        coordinateRotation
        {
            type    axesRotation;
            e1      (0.70710678 0.70710678 0);
            e2      (0 0 1);
        }
    }
}

rather than

porosity1
{
    type            DarcyForchheimer;
    active          yes;
    cellZone        porosity;

    DarcyForchheimerCoeffs
    {
        d   (5e7 -1000 -1000);
        f   (0 0 0);

        coordinateSystem
        {
            type    cartesian;
            origin  (0 0 0);
            coordinateRotation
            {
                type    axesRotation;
                e1      (0.70710678 0.70710678 0);
                e2      (0 0 1);
            }
        }
    }
}

support for which is maintained for backward compatibility.
---
 .../porosityModel/porosityModel.C             | 24 ++++++++++++++----
 .../constant/porosityProperties               | 25 ++++++++-----------
 .../constant/porosityProperties               | 25 ++++++++-----------
 .../constant/porosityProperties               | 25 ++++++++-----------
 4 files changed, 52 insertions(+), 47 deletions(-)

diff --git a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
index 0338e351545..635b864c45b 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
+++ b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,7 +97,12 @@ Foam::porosityModel::porosityModel
     name_(name),
     mesh_(mesh),
     dict_(dict),
-    coeffs_(dict.subDict(modelType + "Coeffs")),
+    coeffs_
+    (
+        dict.found(modelType + "Coeffs")
+      ? dict.subDict(modelType + "Coeffs")
+      : dict
+    ),
     active_(true),
     zoneName_(cellZoneName),
     cellZoneIDs_(),
@@ -105,7 +110,7 @@ Foam::porosityModel::porosityModel
 {
     if (zoneName_ == word::null)
     {
-        dict.lookup("active") >> active_;
+        dict.readIfPresent("active", active_);
         dict_.lookup("cellZone") >> zoneName_;
     }
 
@@ -227,8 +232,17 @@ bool Foam::porosityModel::writeData(Ostream& os) const
 
 bool Foam::porosityModel::read(const dictionary& dict)
 {
-    active_ = readBool(dict.lookup("active"));
-    coeffs_ = dict.subDict(type() + "Coeffs");
+    dict.readIfPresent("active", active_);
+
+    if (dict.found(type() + "Coeffs"))
+    {
+        coeffs_ = dict.subDict(type() + "Coeffs");
+    }
+    else
+    {
+        coeffs_ = dict;
+    }
+
     dict.lookup("cellZone") >> zoneName_;
     cellZoneIDs_ = mesh_.cellZones().findIndices(zoneName_);
 
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porosityProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porosityProperties
index b08090fea79..4f99566f9d4 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porosityProperties
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/porosityProperties
@@ -18,24 +18,21 @@ FoamFile
 porosity1
 {
     type            DarcyForchheimer;
-    active          yes;
+
     cellZone        porosity;
 
-    DarcyForchheimerCoeffs
-    {
-        d   (5e7 -1000 -1000);
-        f   (0 0 0);
+    d   (5e7 -1000 -1000);
+    f   (0 0 0);
 
-        coordinateSystem
+    coordinateSystem
+    {
+        type    cartesian;
+        origin  (0 0 0);
+        coordinateRotation
         {
-            type    cartesian;
-            origin  (0 0 0);
-            coordinateRotation
-            {
-                type    axesRotation;
-                e1  (0.70710678 0.70710678 0);
-                e2  (0 0 1);
-            }
+            type    axesRotation;
+            e1  (0.70710678 0.70710678 0);
+            e2  (0 0 1);
         }
     }
 }
diff --git a/tutorials/incompressible/porousSimpleFoam/angledDuctImplicit/constant/porosityProperties b/tutorials/incompressible/porousSimpleFoam/angledDuctImplicit/constant/porosityProperties
index a96f099ae08..ff7263af9a7 100644
--- a/tutorials/incompressible/porousSimpleFoam/angledDuctImplicit/constant/porosityProperties
+++ b/tutorials/incompressible/porousSimpleFoam/angledDuctImplicit/constant/porosityProperties
@@ -18,24 +18,21 @@ FoamFile
 porosity1
 {
     type            DarcyForchheimer;
-    active          yes;
+
     cellZone        porosity;
 
-    DarcyForchheimerCoeffs
-    {
-        d   (5e7 -1000 -1000);
-        f   (0 0 0);
+    d   (5e7 -1000 -1000);
+    f   (0 0 0);
 
-        coordinateSystem
+    coordinateSystem
+    {
+        type    cartesian;
+        origin  (0 0 0);
+        coordinateRotation
         {
-            type    cartesian;
-            origin  (0 0 0);
-            coordinateRotation
-            {
-                type    axesRotation;
-                e1      (0.70710678 0.70710678 0);
-                e2      (0 0 1);
-            }
+            type    axesRotation;
+            e1      (0.70710678 0.70710678 0);
+            e2      (0 0 1);
         }
     }
 }
diff --git a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties
index 0e911d23780..039ffe67634 100644
--- a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties
+++ b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties
@@ -18,24 +18,21 @@ FoamFile
 porosity1
 {
     type            DarcyForchheimer;
-    active          yes;
+
     cellZone        porosity;
 
-    DarcyForchheimerCoeffs
-    {
-        d   (5e7 -1000 -1000);
-        f   (0 0 0);
+    d   (5e7 -1000 -1000);
+    f   (0 0 0);
 
-        coordinateSystem
+    coordinateSystem
+    {
+        type    cartesian;
+        origin  (0 0 0);
+        coordinateRotation
         {
-            type    cartesian;
-            origin  (0 0 0);
-            coordinateRotation
-            {
-                type    axesRotation;
-                e1      (1 0 0);    //(0.70710678 0.70710678 0);
-                e2      (0 0 1);
-            }
+            type    axesRotation;
+            e1      (1 0 0);    //(0.70710678 0.70710678 0);
+            e2      (0 0 1);
         }
     }
 }
-- 
GitLab


From 448561718c999775d884792946fd84b96c9210e8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 13 Apr 2017 14:03:58 +0100
Subject: [PATCH 193/277] fvOption::radiation: New fvOption providing the
 radiation source to the energy equation

Radiative heat transfer may now be added to any solver in which an energy
equation is solved at run-time rather than having to change the solver code.

For example, radiative heat transfer is now enabled in the SandiaD_LTS
reactingFoam tutorial by providing a constant/fvOptions file containing

radiation
{
    type            radiation;
    libs ("libradiationModels.so");
}

and appropriate settings in the constant/radiationProperties file.
---
 src/thermophysicalModels/radiation/Make/files |   3 +
 .../radiation/fvOptions/radiation/radiation.C |  96 +++++++++++++
 .../radiation/fvOptions/radiation/radiation.H | 129 ++++++++++++++++++
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/G     |  44 ++++++
 .../RAS/SandiaD_LTS/constant/fvOptions        |  24 ++++
 .../SandiaD_LTS/constant/radiationProperties  |  41 +-----
 .../RAS/SandiaD_LTS/system/controlDict        |   3 +-
 .../RAS/SandiaD_LTS/system/fvSolution         |  14 ++
 8 files changed, 318 insertions(+), 36 deletions(-)
 create mode 100644 src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C
 create mode 100644 src/thermophysicalModels/radiation/fvOptions/radiation/radiation.H
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/fvOptions

diff --git a/src/thermophysicalModels/radiation/Make/files b/src/thermophysicalModels/radiation/Make/files
index 5f520b2dcd2..81ad973eb3f 100644
--- a/src/thermophysicalModels/radiation/Make/files
+++ b/src/thermophysicalModels/radiation/Make/files
@@ -40,4 +40,7 @@ derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedF
 derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.C
 derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
 
+/* fvOptions */
+fvOptions/radiation/radiation.C
+
 LIB = $(FOAM_LIBBIN)/libradiationModels
diff --git a/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C
new file mode 100644
index 00000000000..2a817e4e6c2
--- /dev/null
+++ b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C
@@ -0,0 +1,96 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "radiation.H"
+#include "fluidThermo.H"
+#include "fvMatrices.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace fv
+{
+    defineTypeNameAndDebug(radiation, 0);
+
+    addToRunTimeSelectionTable
+    (
+        option,
+        radiation,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::fv::radiation::radiation
+(
+    const word& sourceName,
+    const word& modelType,
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    option(sourceName, modelType, dict, mesh)
+{
+    const basicThermo& thermo =
+        mesh_.lookupObject<basicThermo>(basicThermo::dictName);
+
+    fieldNames_.setSize(1);
+    fieldNames_[0] = thermo.he().name();
+    applied_.setSize(fieldNames_.size(), false);
+
+    radiation_ = Foam::radiation::radiationModel::New(thermo.T());
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::fv::radiation::read(const dictionary& dict)
+{
+    return option::read(dict);
+}
+
+
+void Foam::fv::radiation::addSup
+(
+    const volScalarField& rho,
+    fvMatrix<scalar>& eqn,
+    const label fieldi
+)
+{
+    const basicThermo& thermo =
+        mesh_.lookupObject<basicThermo>(basicThermo::dictName);
+
+    radiation_->correct();
+
+    eqn += radiation_->Sh(thermo, eqn.psi());
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.H b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.H
new file mode 100644
index 00000000000..57927a28f7d
--- /dev/null
+++ b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.H
@@ -0,0 +1,129 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::fv::radiation
+
+Description
+    Calculates and applies the buoyancy energy source rho*(U&g) to the energy
+    equation.
+
+Usage
+    Example usage:
+    \verbatim
+    radiationCoeffs
+    {
+        fields          (h);                    // Name of energy field
+    }
+    \endverbatim
+
+SourceFiles
+    radiation.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef radiation_H
+#define radiation_H
+
+#include "fvOption.H"
+#include "uniformDimensionedFields.H"
+#include "radiationModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace fv
+{
+
+/*---------------------------------------------------------------------------*\
+               Class radiation Declaration
+\*---------------------------------------------------------------------------*/
+
+class radiation
+:
+    public option
+{
+    // Private data
+
+        //- The radiation model pointer
+        autoPtr<Foam::radiation::radiationModel> radiation_;
+
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        radiation(const radiation&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const radiation&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("radiation");
+
+
+    // Constructors
+
+        //- Construct from explicit source name and mesh
+        radiation
+        (
+            const word& sourceName,
+            const word& modelType,
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    // Member Functions
+
+        // Evaluate
+
+            //- Add explicit contribution to compressible momentum equation
+            virtual void addSup
+            (
+                const volScalarField& rho,
+                fvMatrix<scalar>& eqn,
+                const label fieldi
+            );
+
+
+        // IO
+
+            //- Read source dictionary
+            virtual bool read(const dictionary& dict);
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace fv
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
new file mode 100644
index 00000000000..7df3bfdcd0c
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
@@ -0,0 +1,44 @@
+/*--------------------------------*- C++ -*----------------------------------* \
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      G;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 0 -3 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    ".*"
+    {
+        type            MarshakRadiation;
+        T               T;
+        emissivityMode  lookup;
+        emissivity      uniform 1.0;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/fvOptions b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/fvOptions
new file mode 100644
index 00000000000..3763a839bf2
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/fvOptions
@@ -0,0 +1,24 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      fvOptions;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+radiation
+{
+    type            radiation;
+    libs ("libradiationModels.so");
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
index c1ca1d2d7bf..c74f341d4f3 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
@@ -5,6 +5,7 @@
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
+
 FoamFile
 {
     version     2.0;
@@ -15,48 +16,19 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// Radiation model on/off
-radiation       on;
+radiation on;
 
-// Radiation model
 radiationModel  P1;
 
-// Absorption coefficients model
-absorptionEmissionModel greyMeanAbsorptionEmission;
-
-// Number of flow iterations per radiation iteration
-solverFreq 1;
-
-//
-noRadiation
-{
-}
-
-// P1 Model
 P1Coeffs
 {
-
+    C               C [0 0 0 0 0 0 0] 0;
 }
 
+// Number of flow iterations per radiation iteration
+solverFreq 1;
 
-fvDOMCoeffs
-{
-    nPhi        2;          // azimuthal angles in PI/2 on X-Y.(from Y to X)
-    nTheta      2;          // polar angles in PI (from Z to X-Y plane)
-    convergence 1e-1;       // convergence criteria for radiation iteration
-    maxIter     1;          // maximum number of iterations
-    cacheDiv    true;       // cache the div of the RTE equation.
-
-//  NOTE: Caching div is "only" accurate if the upwind scheme is used in
-//  div(Ji,Ii_h)
-}
-
-constantAbsorptionEmissionCoeffs
-{
-    absorptivity    absorptivity    [ m^-1 ]       0.01;
-    emissivity      emissivity      [ m^-1 ]       0.01;
-    E               E               [ kg m^-1 s^-3 ]  0;
-}
+absorptionEmissionModel greyMeanAbsorptionEmission;
 
 greyMeanAbsorptionEmissionCoeffs
 {
@@ -206,5 +178,4 @@ scatterModel    none;
 
 sootModel       none;
 
-
 // ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
index eb014fbe9c9..97c43525a82 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
@@ -13,6 +13,7 @@ FoamFile
     location        "system";
     object          controlDict;
 }
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 application     reactingFoam;
 
@@ -22,7 +23,7 @@ startTime       0;
 
 stopAt          endTime;
 
-endTime         5000;
+endTime         7000;
 
 deltaT          1;
 
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
index 6e2e7422f83..ebd58b1685f 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
@@ -56,6 +56,20 @@ solvers
         tolerance       1e-8;
         relTol          0.1;
     }
+
+    G
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-5;
+        relTol          0.1;
+    }
+
+    GFinal
+    {
+        $G;
+        relTol          0;
+    }
 }
 
 PIMPLE
-- 
GitLab


From 23d9e2e912c422cc3f021546d30a5a1d977d9744 Mon Sep 17 00:00:00 2001
From: Chris Greenshields <http://cfd.direct>
Date: Sun, 16 Apr 2017 18:27:19 +0100
Subject: [PATCH 194/277] Admin: fixed file permissions from wall boiling model
 refinements

---
 .../alphatWallBoilingWallFunctionFvPatchScalarField.C             | 0
 .../alphatWallBoilingWallFunctionFvPatchScalarField.H             | 0
 .../laminar/steamInjection/system/fvSolution                      | 0
 3 files changed, 0 insertions(+), 0 deletions(-)
 mode change 100755 => 100644 applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
 mode change 100755 => 100644 applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
 mode change 100755 => 100644 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
old mode 100755
new mode 100644
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
old mode 100755
new mode 100644
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution
old mode 100755
new mode 100644
-- 
GitLab


From ea257737dfaf6a79a234038f93d0b2d4e86f4bd9 Mon Sep 17 00:00:00 2001
From: Will Bainbridge <http://cfd.direct>
Date: Tue, 18 Apr 2017 11:01:41 +0100
Subject: [PATCH 195/277] codeTemplates: The copyright year is now set
 automatically

---
 bin/foamNewApp                                             | 7 +++++--
 bin/foamNewBC                                              | 4 +++-
 bin/foamNewFunctionObject                                  | 7 +++++--
 etc/codeTemplates/BC/BC.C                                  | 2 +-
 etc/codeTemplates/BC/BC.H                                  | 2 +-
 etc/codeTemplates/BC/BCs.C                                 | 2 +-
 etc/codeTemplates/BC/BCs.H                                 | 2 +-
 etc/codeTemplates/BC/BCsFwd.H                              | 2 +-
 etc/codeTemplates/app/app.C                                | 2 +-
 etc/codeTemplates/dynamicCode/codeStreamTemplate.C         | 2 +-
 etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C      | 2 +-
 etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H      | 2 +-
 .../dynamicCode/fixedValueFvPatchFieldTemplate.C           | 2 +-
 .../dynamicCode/fixedValueFvPatchFieldTemplate.H           | 2 +-
 .../dynamicCode/fixedValuePointPatchFieldTemplate.C        | 2 +-
 .../dynamicCode/fixedValuePointPatchFieldTemplate.H        | 2 +-
 etc/codeTemplates/dynamicCode/functionObjectTemplate.C     | 2 +-
 etc/codeTemplates/dynamicCode/functionObjectTemplate.H     | 2 +-
 etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C  | 2 +-
 etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H  | 2 +-
 etc/codeTemplates/foamScript                               | 2 +-
 etc/codeTemplates/functionObject/FUNCTIONOBJECT.C          | 2 +-
 etc/codeTemplates/functionObject/FUNCTIONOBJECT.H          | 2 +-
 etc/codeTemplates/source/_Template.C                       | 2 +-
 etc/codeTemplates/source/_Template.H                       | 2 +-
 etc/codeTemplates/source/_TemplateApp.C                    | 2 +-
 etc/codeTemplates/source/_TemplateI.H                      | 2 +-
 etc/codeTemplates/source/_TemplateIO.C                     | 2 +-
 etc/codeTemplates/source/foamNewSource                     | 6 ++++--
 etc/codeTemplates/template/_TemplateTemplate.C             | 2 +-
 etc/codeTemplates/template/_TemplateTemplate.H             | 2 +-
 etc/codeTemplates/template/_TemplateTemplateI.H            | 2 +-
 etc/codeTemplates/template/_TemplateTemplateIO.C           | 2 +-
 etc/codeTemplates/template/foamNewTemplate                 | 6 ++++--
 34 files changed, 50 insertions(+), 38 deletions(-)

diff --git a/bin/foamNewApp b/bin/foamNewApp
index b2f664817bd..e960ea0b737 100755
--- a/bin/foamNewApp
+++ b/bin/foamNewApp
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -62,9 +62,12 @@ esac
 [ -d "$1" ] && usage "$1 directory already exists, aborting..."
 
 NAME=$1
+YEAR=$(date +%Y)
 
 echo "Creating application code directory $NAME" && mkdir $NAME
-sed "s#NAME#${NAME}#g" ${DIR}/app.C > $NAME/$NAME.C
+sed -e "s#NAME#${NAME}#g" \
+    -e "s#YEAR#${YEAR}#g" \
+    ${DIR}/app.C > $NAME/$NAME.C
 
 echo "Creating Make subdirectory" && mkdir $NAME/Make
 sed "s#NAME#${NAME}#g" ${DIR}/Make/files > $NAME/Make/files
diff --git a/bin/foamNewBC b/bin/foamNewBC
index 26ac4fcc91e..ceac666502c 100755
--- a/bin/foamNewBC
+++ b/bin/foamNewBC
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -134,6 +134,7 @@ FVPATCHF=fvPatch$(cap $FIELD)
 CLASS=$NAME$(cap $FVPATCHF)
 PARENT=$BASE$(cap $FVPATCHF)
 CONSTRUCT=$(echo $CLASS | sed 's/<Type>//g')
+YEAR=$(date +%Y)
 
 # Create some example values for the Description
 n=0
@@ -155,6 +156,7 @@ do
         -e "s#NAME#${NAME}#g" \
         -e "s#BASE#${BASE}#g" \
         -e "s#CONSTRUCT#${CONSTRUCT}#g" \
+        -e "s#YEAR#${YEAR}#g" \
         -e "s#CLASS#${CLASS}#g" \
         -e "s#FIELD#${FIELD}#g" \
         -e "s#FVPATCHF#${FVPATCHF}#g" \
diff --git a/bin/foamNewFunctionObject b/bin/foamNewFunctionObject
index a2f5d2bf20a..24455375724 100755
--- a/bin/foamNewFunctionObject
+++ b/bin/foamNewFunctionObject
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -66,12 +66,15 @@ esac
 [ -d "$1" ] && usage "$1 directory already exists, aborting..."
 
 NAME=$1
+YEAR=$(date +%Y)
 
 echo "Creating function object code directory $NAME" && mkdir $NAME
 for F in $(ls ${DIR}/*.*)
 do
     FILE=$(basename $F | sed "s#FUNCTIONOBJECT#${NAME}#g")
-    sed "s#FUNCTIONOBJECT#${NAME}#g" ${F} > ${NAME}/${FILE}
+    sed -e "s#FUNCTIONOBJECT#${NAME}#g" \
+        -e "s#YEAR#${YEAR}#g" \
+        ${F} > ${NAME}/${FILE}
 done
 
 echo "Creating Make subdirectory" && mkdir $NAME/Make
diff --git a/etc/codeTemplates/BC/BC.C b/etc/codeTemplates/BC/BC.C
index ced40005b3a..d31c281a5f9 100644
--- a/etc/codeTemplates/BC/BC.C
+++ b/etc/codeTemplates/BC/BC.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BC.H b/etc/codeTemplates/BC/BC.H
index c878d68d9d4..72f66462f64 100644
--- a/etc/codeTemplates/BC/BC.H
+++ b/etc/codeTemplates/BC/BC.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BCs.C b/etc/codeTemplates/BC/BCs.C
index a0b084933ad..b8b4642918c 100644
--- a/etc/codeTemplates/BC/BCs.C
+++ b/etc/codeTemplates/BC/BCs.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BCs.H b/etc/codeTemplates/BC/BCs.H
index bbd112ed9d1..f32d209bbea 100644
--- a/etc/codeTemplates/BC/BCs.H
+++ b/etc/codeTemplates/BC/BCs.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BCsFwd.H b/etc/codeTemplates/BC/BCsFwd.H
index 4c600dd7eb0..2aeabb56ff1 100644
--- a/etc/codeTemplates/BC/BCsFwd.H
+++ b/etc/codeTemplates/BC/BCsFwd.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/app/app.C b/etc/codeTemplates/app/app.C
index 2ed97537f6b..0b765eb1e20 100644
--- a/etc/codeTemplates/app/app.C
+++ b/etc/codeTemplates/app/app.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/codeStreamTemplate.C b/etc/codeTemplates/dynamicCode/codeStreamTemplate.C
index 5d69d996329..58671e58769 100644
--- a/etc/codeTemplates/dynamicCode/codeStreamTemplate.C
+++ b/etc/codeTemplates/dynamicCode/codeStreamTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
index 6cb5cc0d7bd..046412bd683 100644
--- a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
+++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
index c2764193628..29e97e3a289 100644
--- a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
+++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.C b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.C
index c7f442f03a6..e0a3943411f 100644
--- a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.C
+++ b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H
index 6026fe1256c..468ef1326c0 100644
--- a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H
+++ b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.C b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.C
index f474cbbd73c..c1cc7e66c94 100644
--- a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.C
+++ b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H
index bbb46269ff5..ce92b09fb2b 100644
--- a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H
+++ b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/functionObjectTemplate.C b/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
index 4df4117cdd8..b2d65aad5d9 100644
--- a/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
+++ b/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/functionObjectTemplate.H b/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
index a20a40120fe..bd2580a9bea 100644
--- a/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
+++ b/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C
index ab2f100f3e4..651ee6018a5 100644
--- a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C
+++ b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H
index 129fb534dd4..cb59d0a1f5c 100644
--- a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H
+++ b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/foamScript b/etc/codeTemplates/foamScript
index 0c30f337152..48cc73bb5cd 100755
--- a/etc/codeTemplates/foamScript
+++ b/etc/codeTemplates/foamScript
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
diff --git a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
index 68c84dfe7d6..5318dbead70 100644
--- a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
+++ b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
index 2a2dfd07ccc..dc3a3edb2f4 100644
--- a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
+++ b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_Template.C b/etc/codeTemplates/source/_Template.C
index 6812cbdf16f..3d6f46ded11 100644
--- a/etc/codeTemplates/source/_Template.C
+++ b/etc/codeTemplates/source/_Template.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_Template.H b/etc/codeTemplates/source/_Template.H
index d2cbe47d0b5..df90d5e4fe2 100644
--- a/etc/codeTemplates/source/_Template.H
+++ b/etc/codeTemplates/source/_Template.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_TemplateApp.C b/etc/codeTemplates/source/_TemplateApp.C
index 80c562cbdbc..aa6efc53f75 100644
--- a/etc/codeTemplates/source/_TemplateApp.C
+++ b/etc/codeTemplates/source/_TemplateApp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_TemplateI.H b/etc/codeTemplates/source/_TemplateI.H
index eca8d9ea3b2..dd1ba9ecf1e 100644
--- a/etc/codeTemplates/source/_TemplateI.H
+++ b/etc/codeTemplates/source/_TemplateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_TemplateIO.C b/etc/codeTemplates/source/_TemplateIO.C
index d07fc0d3f30..f1e498671e4 100644
--- a/etc/codeTemplates/source/_TemplateIO.C
+++ b/etc/codeTemplates/source/_TemplateIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/foamNewSource b/etc/codeTemplates/source/foamNewSource
index 0a9c1b91af0..ae6d5471411 100755
--- a/etc/codeTemplates/source/foamNewSource
+++ b/etc/codeTemplates/source/foamNewSource
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -104,7 +104,9 @@ else
     fi
 
     # process class name
-    sed "s/CLASSNAME/$className/g" $Template$subType$Type > $fileName
+    sed -e "s/CLASSNAME/$className/g" \
+        -e "s/YEAR/$(date +%Y)/g" \
+        $Template$subType$Type > $fileName
 
     if [ "$subType" = App -a ! -d Make ]
     then
diff --git a/etc/codeTemplates/template/_TemplateTemplate.C b/etc/codeTemplates/template/_TemplateTemplate.C
index 63b895032b6..2f733dfc3fa 100644
--- a/etc/codeTemplates/template/_TemplateTemplate.C
+++ b/etc/codeTemplates/template/_TemplateTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/_TemplateTemplate.H b/etc/codeTemplates/template/_TemplateTemplate.H
index 12e5511b732..ad98aca4af2 100644
--- a/etc/codeTemplates/template/_TemplateTemplate.H
+++ b/etc/codeTemplates/template/_TemplateTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/_TemplateTemplateI.H b/etc/codeTemplates/template/_TemplateTemplateI.H
index eca8d9ea3b2..dd1ba9ecf1e 100644
--- a/etc/codeTemplates/template/_TemplateTemplateI.H
+++ b/etc/codeTemplates/template/_TemplateTemplateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/_TemplateTemplateIO.C b/etc/codeTemplates/template/_TemplateTemplateIO.C
index c60b5be8b8d..05921c96458 100644
--- a/etc/codeTemplates/template/_TemplateTemplateIO.C
+++ b/etc/codeTemplates/template/_TemplateTemplateIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/foamNewTemplate b/etc/codeTemplates/template/foamNewTemplate
index dfc2e13375e..a85be23b503 100755
--- a/etc/codeTemplates/template/foamNewTemplate
+++ b/etc/codeTemplates/template/foamNewTemplate
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -106,7 +106,9 @@ else
 
 
     # process class name
-    sed -e "s/CLASSNAME/$className/g" $Template$Type > $fileName.1
+    sed -e "s/CLASSNAME/$className/g" \
+        -e "s/YEAR/$(date +%Y)/g" \
+        $Template$Type > $fileName.1
 
 
     # process remaining (template) arguments
-- 
GitLab


From 5c5183650128eb9c326a3df39a4874d2c85ec5ba Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 20 Apr 2017 09:14:48 +0100
Subject: [PATCH 196/277] The "<type>Coeffs" sub-dictionary is now optional for
 most model parameters

except turbulence and lagrangian which will also be updated shortly.

For example in the nonNewtonianIcoFoam offsetCylinder tutorial the viscosity
model coefficients may be specified in the corresponding "<type>Coeffs"
sub-dictionary:

transportModel  CrossPowerLaw;

CrossPowerLawCoeffs
{
    nu0         [0 2 -1 0 0 0 0]  0.01;
    nuInf       [0 2 -1 0 0 0 0]  10;
    m           [0 0 1 0 0 0 0]   0.4;
    n           [0 0 0 0 0 0 0]   3;
}

BirdCarreauCoeffs
{
    nu0         [0 2 -1 0 0 0 0]  1e-06;
    nuInf       [0 2 -1 0 0 0 0]  1e-06;
    k           [0 0 1 0 0 0 0]   0;
    n           [0 0 0 0 0 0 0]   1;
}

which allows a quick change between models, or using the simpler

transportModel  CrossPowerLaw;

nu0         [0 2 -1 0 0 0 0]  0.01;
nuInf       [0 2 -1 0 0 0 0]  10;
m           [0 0 1 0 0 0 0]   0.4;
n           [0 0 0 0 0 0 0]   3;

if quick switching between models is not required.

To support this more convenient parameter specification the inconsistent
specification of seedSampleSet in the streamLine and wallBoundedStreamLine
functionObjects had to be corrected from

    // Seeding method.
    seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;

    uniformCoeffs
    {
        type        uniform;
        axis        x;  //distance;

        // Note: tracks slightly offset so as not to be on a face
        start       (-1.001 -0.05 0.0011);
        end         (-1.001 -0.05 1.0011);
        nPoints     20;
    }

to the simpler

    // Seeding method.
    seedSampleSet
    {
        type        uniform;
        axis        x;  //distance;

        // Note: tracks slightly offset so as not to be on a face
        start       (-1.001 -0.05 0.0011);
        end         (-1.001 -0.05 1.0011);
        nPoints     20;
    }

which also support the "<type>Coeffs" form

    // Seeding method.
    seedSampleSet
    {
        type        uniform;

        uniformCoeffs
        {
            axis        x;  //distance;

            // Note: tracks slightly offset so as not to be on a face
            start       (-1.001 -0.05 0.0011);
            end         (-1.001 -0.05 1.0011);
            nPoints     20;
        }
    }
---
 .../dragModels/PDRDragModel/PDRDragModel.C    |   4 +-
 .../XiModels/XiEqModels/XiEqModel/XiEqModel.C |   4 +-
 .../XiModels/XiGModels/XiGModel/XiGModel.C    |   4 +-
 .../PDRFoam/XiModels/XiModel/XiModel.C        |   4 +-
 .../SCOPE/SCOPELaminarFlameSpeed.C            |   4 +-
 .../mixtureViscosityModels/plastic/plastic.C  |   6 +-
 .../relativeVelocityModel.C                   |   4 +-
 .../phaseChangeTwoPhaseMixtures/Kunz/Kunz.C   |   2 +-
 .../Merkle/Merkle.C                           |   2 +-
 .../SchnerrSauer/SchnerrSauer.C               |   2 +-
 .../phaseChangeTwoPhaseMixture.C              |   6 +-
 .../diameterModel/newDiameterModel.C          |   8 +-
 .../diameterModel/diameterModel.C             |   4 +-
 .../diameterModel/newDiameterModel.C          |   8 +-
 .../HrenyaSinclairConductivity.C              |   6 +-
 .../JohnsonJacksonFrictionalStress.C          |   6 +-
 .../JohnsonJacksonSchaefferFrictionalStress.C |   6 +-
 .../Schaeffer/SchaefferFrictionalStress.C     |   6 +-
 .../HrenyaSinclair/HrenyaSinclairViscosity.C  |   6 +-
 .../HrenyaSinclairConductivity.C              |   6 +-
 .../JohnsonJacksonFrictionalStress.C          |   6 +-
 .../JohnsonJacksonSchaefferFrictionalStress.C |   6 +-
 .../Schaeffer/SchaefferFrictionalStress.C     |   6 +-
 .../HrenyaSinclair/HrenyaSinclairViscosity.C  |   6 +-
 .../diameterModel/diameterModel.C             |   4 +-
 .../diameterModel/newDiameterModel.C          |   8 +-
 .../cellSizeFunction/cellSizeFunction.C       |   4 +-
 .../automatic/automatic.C                     |   4 +-
 .../fieldFromFile/fieldFromFile.C             |   9 +-
 .../surfaceCellSizeFunction.C                 |   4 +-
 .../faceAreaWeightModel/faceAreaWeightModel.C |   4 +-
 .../initialPointsMethod/initialPointsMethod.C |   4 +-
 .../relaxationModel/relaxationModel.C         |   4 +-
 .../generation/snappyHexMesh/snappyHexMesh.C  |   2 +-
 .../tabulatedWallFunction.C                   |   4 +-
 .../visualization/streamlines.cfg             |   4 +-
 src/OpenFOAM/db/dictionary/dictionary.C       |  20 +++-
 src/OpenFOAM/db/dictionary/dictionary.H       |   4 +
 .../reactionRateFlameArea.C                   |   4 +-
 .../relaxation/relaxation.C                   |  13 ++-
 .../combustionModel/combustionModel.C         |   6 +-
 .../dynamicInkJetFvMesh/dynamicInkJetFvMesh.C |   4 +-
 .../dynamicRefineFvMesh/dynamicRefineFvMesh.C |   6 +-
 .../solidBodyMotionFunction.C                 |   6 +-
 .../motionSolvers/motionSolver/motionSolver.C |   8 +-
 .../general/SRF/SRFModel/SRFModel/SRFModel.C  |   6 +-
 .../cfdTools/general/fvOptions/fvOption.C     |   7 +-
 .../cfdTools/general/fvOptions/fvOptionIO.C   |   9 +-
 .../porosityModel/porosityModel.C             |  16 +--
 .../advectionDiffusionPatchDistMethod.C       |   4 +-
 .../field/streamLine/streamLine.C             |   8 +-
 .../field/streamLine/streamLine.H             |   5 +-
 .../wallBoundedStreamLine.C                   |   9 +-
 .../wallBoundedStreamLine.H                   |  11 +-
 .../displacementSBRStressFvMotionSolver.C     |   4 +-
 .../trimModel/trimModel/trimModel.C           |   4 +-
 .../extrudeModel/extrudeModel/extrudeModel.C  |   4 +-
 .../displacementMeshMoverMotionSolver.C       |   6 +-
 .../decompositionConstraint.C                 |   7 +-
 .../geomDecomp/geomDecomp.C                   |   4 +-
 .../manualDecomp/manualDecomp.C               |   8 +-
 .../multiLevelDecomp/multiLevelDecomp.C       |   6 +-
 .../structuredDecomp/structuredDecomp.C       |   4 +-
 .../liquidFilmThermo/liquidFilmThermo.C       |   2 +-
 src/renumber/SloanRenumber/SloanRenumber.C    |   9 +-
 .../CuthillMcKeeRenumber.C                    |   9 +-
 .../manualRenumber/manualRenumber.C           |   4 +-
 .../springRenumber/springRenumber.C           |   4 +-
 .../structuredRenumber/structuredRenumber.C   |   4 +-
 src/renumber/zoltanRenumber/zoltanRenumber.C  |   4 +-
 .../sampledSet/sampledSet/sampledSet.C        |   4 +-
 .../laminarFlameSpeed/Gulders/Gulders.C       |   4 +-
 .../laminarFlameSpeed/GuldersEGR/GuldersEGR.C |   4 +-
 .../RaviPetersen/RaviPetersen.C               |   4 +-
 .../binaryAbsorptionEmission.C                |   4 +-
 .../constantAbsorptionEmission.C              |   4 +-
 .../greyMeanAbsorptionEmission.C              |   6 +-
 .../greyMeanSolidAbsorptionEmission.C         |   6 +-
 .../wideBandAbsorptionEmission.C              |   6 +-
 .../constantScatter/constantScatter.C         |   4 +-
 .../liquidProperties/liquidProperties.C       |   5 +-
 .../solidProperties/solidPropertiesNew.C      |   2 +-
 .../linearValveFvMesh/linearValveFvMesh.C     |   4 +-
 .../linearValveLayersFvMesh.C                 |   4 +-
 .../mixerFvMesh/mixerFvMesh.C                 |   4 +-
 .../movingConeTopoFvMesh.C                    |   2 +-
 .../viscosityModels/BirdCarreau/BirdCarreau.C |  10 +-
 .../viscosityModels/Casson/Casson.C           |   6 +-
 .../CrossPowerLaw/CrossPowerLaw.C             |  10 +-
 .../HerschelBulkley/HerschelBulkley.C         |  10 +-
 .../viscosityModels/powerLaw/powerLaw.C       |   6 +-
 .../strainRateFunction/strainRateFunction.C   |   9 +-
 .../constant/dynamicMeshDict                  |  53 ++++-----
 .../movingCone/constant/dynamicMeshDict       |  11 +-
 .../constant/dynamicMeshDict                  |  19 ++--
 .../movingCone/constant/dynamicMeshDict       |  11 +-
 .../mixerVesselAMI2D/constant/dynamicMeshDict |  19 ++--
 .../movingCone/constant/dynamicMeshDict       |  11 +-
 .../constant/dynamicMeshDict                  |  18 +--
 .../propeller/constant/dynamicMeshDict        |  20 ++--
 .../constant/dynamicMeshDict                  | 103 +++++++++---------
 .../motorBike/motorBike/system/controlDict    |   3 +-
 .../motorBike/motorBike/system/streamLines    |   4 +-
 .../simpleFoam/motorBike/system/streamLines   |   4 +-
 .../motorBike/system/wallBoundedStreamLines   |  44 ++++----
 .../pitzDailyExptInlet/system/controlDict     |   6 +-
 .../mixerVessel/constant/dynamicMeshDict      |  23 ++--
 .../SnakeRiverCanyon/constant/dynamicMeshDict |  17 ++-
 .../sloshingTank2D/constant/dynamicMeshDict   |  33 +++---
 .../RAS/DTCHull/constant/dynamicMeshDict      |  95 ++++++++--------
 .../DTCHull/constant/dynamicMeshDict.sixDoF   |  75 ++++++-------
 .../floatingObject/constant/dynamicMeshDict   |   2 +-
 .../constant/dynamicMeshDict.sixDoF           |   2 +-
 .../mixerVesselAMI/constant/dynamicMeshDict   |  21 ++--
 .../constant/dynamicMeshDict                  |  75 ++++++-------
 .../sloshingCylinder/constant/dynamicMeshDict |  42 +++----
 .../sloshingTank2D/constant/dynamicMeshDict   |  33 +++---
 .../constant/dynamicMeshDict                  |  33 +++---
 .../sloshingTank3D/constant/dynamicMeshDict   |  33 +++---
 .../constant/dynamicMeshDict                  |  33 +++---
 .../constant/dynamicMeshDict                  |  15 +--
 .../testTubeMixer/constant/dynamicMeshDict    |  72 ++++++------
 .../damBreak/constant/dynamicMeshDict         |  21 ----
 .../laminar/damBreak/constant/dynamicMeshDict |  21 ----
 .../propeller/constant/dynamicMeshDict        |  35 +++---
 .../mixerVesselAMI2D/constant/dynamicMeshDict |  21 ++--
 .../oscillatingBox/constant/dynamicMeshDict   |  18 ++-
 127 files changed, 718 insertions(+), 852 deletions(-)
 delete mode 100644 tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/dynamicMeshDict
 delete mode 100644 tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/dynamicMeshDict

diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C
index 49f36d33090..2b2cd7c4fdb 100644
--- a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C
+++ b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,7 +79,7 @@ Foam::PDRDragModel::~PDRDragModel()
 
 bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
 {
-    PDRDragModelCoeffs_ = PDRProperties.subDict(type() + "Coeffs");
+    PDRDragModelCoeffs_ = PDRProperties.optionalSubDict(type() + "Coeffs");
 
     PDRDragModelCoeffs_.lookup("drag") >> on_;
 
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C
index a6301ba973d..7e3b2536b13 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,7 @@ Foam::XiEqModel::~XiEqModel()
 
 bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
 {
-    XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
+    XiEqModelCoeffs_ = XiEqProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C
index 12bd7130602..217242b24be 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,7 @@ Foam::XiGModel::~XiGModel()
 
 bool Foam::XiGModel::read(const dictionary& XiGProperties)
 {
-    XiGModelCoeffs_ = XiGProperties.subDict(type() + "Coeffs");
+    XiGModelCoeffs_ = XiGProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C
index 0bb0cd1e0b5..95807289056 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -85,7 +85,7 @@ Foam::XiModel::~XiModel()
 
 bool Foam::XiModel::read(const dictionary& XiProperties)
 {
-    XiModelCoeffs_ = XiProperties.subDict(type() + "Coeffs");
+    XiModelCoeffs_ = XiProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
index 947c62132e9..afdebbd2c64 100644
--- a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
+++ b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,7 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
                   dict.lookup("fuelFile")
               )
           )()
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     LFL_(readScalar(coeffsDict_.lookup("lowerFlamabilityLimit"))),
     UFL_(readScalar(coeffsDict_.lookup("upperFlamabilityLimit"))),
diff --git a/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C b/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C
index 5eb7e0f9cec..c096513474a 100644
--- a/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C
+++ b/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::mixtureViscosityModels::plastic::plastic
 )
 :
     mixtureViscosityModel(name, viscosityProperties, U, phi),
-    plasticCoeffs_(viscosityProperties.subDict(modelName + "Coeffs")),
+    plasticCoeffs_(viscosityProperties.optionalSubDict(modelName + "Coeffs")),
     plasticViscosityCoeff_
     (
         "coeff",
@@ -117,7 +117,7 @@ bool Foam::mixtureViscosityModels::plastic::read
 {
     mixtureViscosityModel::read(viscosityProperties);
 
-    plasticCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    plasticCoeffs_ = viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     plasticCoeffs_.lookup("k") >> plasticViscosityCoeff_;
     plasticCoeffs_.lookup("n") >> plasticViscosityExponent_;
diff --git a/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C b/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
index b6e7fbae004..103ad496b70 100644
--- a/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
+++ b/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -126,7 +126,7 @@ Foam::autoPtr<Foam::relativeVelocityModel> Foam::relativeVelocityModel::New
         (
             cstrIter()
             (
-                dict.subDict(modelType + "Coeffs"),
+                dict.optionalSubDict(modelType + "Coeffs"),
                 mixture
             )
         );
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
index 74c0ec248b3..32d3fe43086 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
@@ -102,7 +102,7 @@ bool Foam::phaseChangeTwoPhaseMixtures::Kunz::read()
 {
     if (phaseChangeTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf") >> UInf_;
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf") >> tInf_;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
index 853884b7943..ade26e86a41 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
@@ -97,7 +97,7 @@ bool Foam::phaseChangeTwoPhaseMixtures::Merkle::read()
 {
     if (phaseChangeTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf") >> UInf_;
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf") >> tInf_;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
index 7f7771cec48..07fe4a23318 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
@@ -151,7 +151,7 @@ bool Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::read()
 {
     if (phaseChangeTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("n") >> n_;
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("dNuc") >> dNuc_;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C
index b9a5e69bf8c..c4fe701a2f7 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,7 +43,7 @@ Foam::phaseChangeTwoPhaseMixture::phaseChangeTwoPhaseMixture
 )
 :
     incompressibleTwoPhaseMixture(U, phi),
-    phaseChangeTwoPhaseMixtureCoeffs_(subDict(type + "Coeffs")),
+    phaseChangeTwoPhaseMixtureCoeffs_(optionalSubDict(type + "Coeffs")),
     pSat_("pSat", dimPressure, lookup("pSat"))
 {}
 
@@ -77,7 +77,7 @@ bool Foam::phaseChangeTwoPhaseMixture::read()
 {
     if (incompressibleTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
         lookup("pSat") >> pSat_;
 
         return true;
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
index b58f00291bb..ef872df0cc8 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,11 @@ Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
            << exit(FatalError);
     }
 
-    return cstrIter()(dict.subDict(diameterModelType + "Coeffs"), phase);
+    return cstrIter()
+    (
+        dict.optionalSubDict(diameterModelType + "Coeffs"),
+        phase
+    );
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C
index a956565b471..d7eaa2f0815 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,7 +61,7 @@ void Foam::diameterModel::correct()
 
 bool Foam::diameterModel::read(const dictionary& phaseProperties)
 {
-    diameterProperties_ = phaseProperties.subDict(type() + "Coeffs");
+    diameterProperties_ = phaseProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
index b58f00291bb..ef872df0cc8 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,11 @@ Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
            << exit(FatalError);
     }
 
-    return cstrIter()(dict.subDict(diameterModelType + "Coeffs"), phase);
+    return cstrIter()
+    (
+        dict.optionalSubDict(diameterModelType + "Coeffs"),
+        phase
+    );
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
index 5abe9f3561d..a1794a78207 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     conductivityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -103,7 +103,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::kappa
 
 bool Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
index ab6d3d354a1..6b110d37317 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJackson
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -130,7 +130,7 @@ Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
index 3b69aa8a62a..67517beb073 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJacksonSchaeffer::JohnsonJacksonSchaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -190,7 +190,7 @@ JohnsonJacksonSchaeffer::nu
 bool Foam::kineticTheoryModels::frictionalStressModels::
 JohnsonJacksonSchaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
index be2555958c9..eeabe622e12 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::Schaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     phi_("phi", dimless, coeffDict_)
 {
     phi_ *= constant::mathematical::pi/180.0;
@@ -178,7 +178,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     phi_.read(coeffDict_);
     phi_ *= constant::mathematical::pi/180.0;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
index 415bb3145a5..6607b16443d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     viscosityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -100,7 +100,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::nu
 
 bool Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
index 5abe9f3561d..a1794a78207 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     conductivityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -103,7 +103,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::kappa
 
 bool Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
index ab6d3d354a1..6b110d37317 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJackson
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -130,7 +130,7 @@ Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
index 3b69aa8a62a..67517beb073 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJacksonSchaeffer::JohnsonJacksonSchaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -190,7 +190,7 @@ JohnsonJacksonSchaeffer::nu
 bool Foam::kineticTheoryModels::frictionalStressModels::
 JohnsonJacksonSchaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
index be2555958c9..eeabe622e12 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::Schaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     phi_("phi", dimless, coeffDict_)
 {
     phi_ *= constant::mathematical::pi/180.0;
@@ -178,7 +178,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     phi_.read(coeffDict_);
     phi_ *= constant::mathematical::pi/180.0;
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
index 415bb3145a5..6607b16443d 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     viscosityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -100,7 +100,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::nu
 
 bool Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C
index 55225147acc..d7eaa2f0815 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,7 +61,7 @@ void Foam::diameterModel::correct()
 
 bool Foam::diameterModel::read(const dictionary& phaseProperties)
 {
-    diameterProperties_ = phaseProperties.subDict(type() + "Coeffs");
+    diameterProperties_ = phaseProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
index b58f00291bb..ef872df0cc8 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,11 @@ Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
            << exit(FatalError);
     }
 
-    return cstrIter()(dict.subDict(diameterModelType + "Coeffs"), phase);
+    return cstrIter()
+    (
+        dict.optionalSubDict(diameterModelType + "Coeffs"),
+        phase
+    );
 }
 
 
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C
index c0db55e5586..3e6860c7a51 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,7 +58,7 @@ Foam::cellSizeFunction::cellSizeFunction
             defaultCellSize
         )
     ),
-    coeffsDict_(subDict(type + "Coeffs")),
+    coeffsDict_(optionalSubDict(type + "Coeffs")),
     defaultCellSize_(defaultCellSize),
     regionIndices_(regionIndices),
     sideMode_(),
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
index 025ba5885d9..5f85fc260ec 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,7 @@ Foam::automatic::automatic
         surface,
         defaultCellSize
     ),
-    coeffsDict_(cellSizeCalcTypeDict.subDict(typeName + "Coeffs")),
+    coeffsDict_(cellSizeCalcTypeDict.optionalSubDict(typeName + "Coeffs")),
     surfaceName_(surface.searchableSurface::name()),
     readCurvature_(Switch(coeffsDict_.lookup("curvature"))),
     curvatureFile_(coeffsDict_.lookup("curvatureFile")),
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C
index 6d6b56e7b6c..c4f2014caf5 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,10 +58,13 @@ Foam::fieldFromFile::fieldFromFile
         surface,
         defaultCellSize
     ),
-    coeffsDict_(cellSizeCalcTypeDict.subDict(typeName + "Coeffs")),
+    coeffsDict_(cellSizeCalcTypeDict.optionalSubDict(typeName + "Coeffs")),
     fileName_
     (
-        cellSizeCalcTypeDict.subDict(typeName + "Coeffs").lookup("fieldFile")
+        cellSizeCalcTypeDict.optionalSubDict
+        (
+            typeName + "Coeffs"
+        ).lookup("fieldFile")
     ),
     cellSizeMultipleCoeff_
     (
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C
index cac18370218..33d7267d7d9 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,7 @@ Foam::surfaceCellSizeFunction::surfaceCellSizeFunction
 :
     dictionary(surfaceCellSizeFunctionDict),
     surface_(surface),
-    coeffsDict_(subDict(type + "Coeffs")),
+    coeffsDict_(optionalSubDict(type + "Coeffs")),
     defaultCellSize_(defaultCellSize),
     refinementFactor_
     (
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C
index 6388c0c6c88..0aa043cb1e3 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,7 @@ faceAreaWeightModel::faceAreaWeightModel
 )
 :
     dictionary(relaxationDict),
-    coeffDict_(subDict(type + "Coeffs"))
+    coeffDict_(optionalSubDict(type + "Coeffs"))
 {}
 
 
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C
index 11007841552..d7b93caba4c 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ initialPointsMethod::initialPointsMethod
     geometryToConformTo_(geometryToConformTo),
     cellShapeControls_(cellShapeControls),
     decomposition_(decomposition),
-    detailsDict_(subDict(type + "Coeffs")),
+    detailsDict_(optionalSubDict(type + "Coeffs")),
     minimumSurfaceDistanceCoeffSqr_
     (
         sqr
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C
index e47cbf4aaa1..c06c5ed9693 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,7 @@ relaxationModel::relaxationModel
 :
     dictionary(relaxationDict),
     runTime_(runTime),
-    coeffDict_(subDict(type + "Coeffs"))
+    coeffDict_(optionalSubDict(type + "Coeffs"))
 {}
 
 
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
index e9d308d3a9a..277189151ac 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
@@ -138,7 +138,7 @@ autoPtr<refinementSurfaces> createRefinementSurfaces
             const word scsFuncName =
                 shapeDict.lookup("surfaceCellSizeFunction");
             const dictionary& scsDict =
-                shapeDict.subDict(scsFuncName + "Coeffs");
+                shapeDict.optionalSubDict(scsFuncName + "Coeffs");
 
             const scalar surfaceCellSize =
                 readScalar(scsDict.lookup("surfaceCellSizeCoeff"));
diff --git a/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.C b/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.C
index 9079b119412..aa881bdc9d0 100644
--- a/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.C
+++ b/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,7 @@ Foam::tabulatedWallFunctions::tabulatedWallFunction::tabulatedWallFunction
 :
     dict_(dict),
     mesh_(mesh),
-    coeffDict_(dict.subDict(name + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(name + "Coeffs")),
     invertedTableName_(dict.lookup("invertedTableName")),
     invertedTable_(invertedTableName_, mesh_, dict, true)
 {}
diff --git a/etc/caseDicts/postProcessing/visualization/streamlines.cfg b/etc/caseDicts/postProcessing/visualization/streamlines.cfg
index 891b4c6d0cb..7d9e242c7ed 100644
--- a/etc/caseDicts/postProcessing/visualization/streamlines.cfg
+++ b/etc/caseDicts/postProcessing/visualization/streamlines.cfg
@@ -19,8 +19,8 @@ lifeTime        10000;
 nSubCycle       5;
 
 cloudName       particleTracks;
-seedSampleSet   uniform;
-uniformCoeffs
+
+seedSampleSet
 {
     type            uniform;
     axis            x;
diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C
index 49cbbbb2374..5fa7be8268c 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.C
+++ b/src/OpenFOAM/db/dictionary/dictionary.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -755,6 +755,24 @@ Foam::dictionary Foam::dictionary::subOrEmptyDict
 }
 
 
+const Foam::dictionary& Foam::dictionary::optionalSubDict
+(
+    const word& keyword
+) const
+{
+    const entry* entryPtr = lookupEntryPtr(keyword, false, true);
+
+    if (entryPtr)
+    {
+        return entryPtr->dict();
+    }
+    else
+    {
+        return *this;
+    }
+}
+
+
 Foam::wordList Foam::dictionary::toc() const
 {
     wordList keys(size());
diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H
index 95339b4835c..2507da9088d 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.H
+++ b/src/OpenFOAM/db/dictionary/dictionary.H
@@ -419,6 +419,10 @@ public:
                 const bool mustRead = false
             ) const;
 
+            //- Find and return a sub-dictionary if found
+            //  otherwise return this dictionary
+            const dictionary& optionalSubDict(const word&) const;
+
             //- Return the table of contents
             wordList toc() const;
 
diff --git a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
index 4e767ca3ad1..1208979f7d6 100644
--- a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
+++ b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ Foam::reactionRateFlameArea::reactionRateFlameArea
     const combustionModel& combModel
 )
 :
-    coeffDict_(dict.subDict(modelType + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(modelType + "Coeffs")),
     mesh_(mesh),
     combModel_(combModel),
     fuel_(dict.lookup("fuel")),
diff --git a/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C b/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
index c714bc5cd25..3ae9d31c297 100644
--- a/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
+++ b/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,9 +56,12 @@ Foam::reactionRateFlameAreaModels::relaxation::relaxation
 )
 :
     reactionRateFlameArea(modelType, dict, mesh, combModel),
-    correlation_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
-    C_(readScalar(dict.subDict(typeName + "Coeffs").lookup("C"))),
-    alpha_(readScalar(dict.subDict(typeName + "Coeffs").lookup("alpha")))
+    correlation_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
+    C_(readScalar(dict.optionalSubDict(typeName + "Coeffs").lookup("C"))),
+    alpha_
+    (
+        readScalar(dict.optionalSubDict(typeName + "Coeffs").lookup("alpha"))
+    )
 {}
 
 
@@ -148,7 +151,7 @@ bool  Foam::reactionRateFlameAreaModels::relaxation::read
 {
     if (reactionRateFlameArea::read(dict))
     {
-        coeffDict_ = dict.subDict(typeName + "Coeffs");
+        coeffDict_ = dict.optionalSubDict(typeName + "Coeffs");
         coeffDict_.lookup("C") >> C_;
         coeffDict_.lookup("alpha") >> alpha_;
         correlation_.read
diff --git a/src/combustionModels/combustionModel/combustionModel.C b/src/combustionModels/combustionModel/combustionModel.C
index 3094e4bdff3..1ed899200cb 100644
--- a/src/combustionModels/combustionModel/combustionModel.C
+++ b/src/combustionModels/combustionModel/combustionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,7 +62,7 @@ Foam::combustionModel::combustionModel
     turbulencePtr_(),
     mesh_(mesh),
     active_(lookupOrDefault<Switch>("active", true)),
-    coeffs_(subDict(modelType + "Coeffs")),
+    coeffs_(optionalSubDict(modelType + "Coeffs")),
     modelType_(modelType),
     phaseName_(phaseName)
 {}
@@ -86,7 +86,7 @@ bool Foam::combustionModel::read()
     if (regIOobject::read())
     {
         this->lookup("active") >> active_;
-        coeffs_ = subDict(modelType_ + "Coeffs");
+        coeffs_ = optionalSubDict(modelType_ + "Coeffs");
         return true;
     }
     else
diff --git a/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.C b/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.C
index a26ea293d3e..737e27877e5 100644
--- a/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.C
+++ b/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ Foam::dynamicInkJetFvMesh::dynamicInkJetFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     amplitude_(readScalar(dynamicMeshCoeffs_.lookup("amplitude"))),
     frequency_(readScalar(dynamicMeshCoeffs_.lookup("frequency"))),
diff --git a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
index 1ef7aadb3e1..e8045134c4a 100644
--- a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
+++ b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -191,7 +191,7 @@ void Foam::dynamicRefineFvMesh::readDict()
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     );
 
     List<Pair<word>> fluxVelocities = List<Pair<word>>
@@ -1202,7 +1202,7 @@ bool Foam::dynamicRefineFvMesh::update()
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     );
 
     label refineInterval = readLabel(refineDict.lookup("refineInterval"));
diff --git a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C
index fd2fb3a9d20..e57fc35ee5e 100644
--- a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C
+++ b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ Foam::solidBodyMotionFunction::solidBodyMotionFunction
 :
     SBMFCoeffs_
     (
-        SBMFCoeffs.subDict
+        SBMFCoeffs.optionalSubDict
         (
             word(SBMFCoeffs.lookup("solidBodyMotionFunction")) + "Coeffs"
         )
@@ -63,7 +63,7 @@ Foam::solidBodyMotionFunction::~solidBodyMotionFunction()
 
 bool Foam::solidBodyMotionFunction::read(const dictionary& SBMFCoeffs)
 {
-    SBMFCoeffs_ = SBMFCoeffs.subDict(type() + "Coeffs");
+    SBMFCoeffs_ = SBMFCoeffs.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
index a637338472e..85c8466040d 100644
--- a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
+++ b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -85,7 +85,7 @@ Foam::motionSolver::motionSolver
 :
     IOdictionary(stealRegistration(dict), dict),
     mesh_(mesh),
-    coeffDict_(dict.subDict(type + "Coeffs"))
+    coeffDict_(dict.optionalSubDict(type + "Coeffs"))
 {}
 
 
@@ -104,7 +104,7 @@ Foam::autoPtr<Foam::motionSolver> Foam::motionSolver::New
     const IOdictionary& solverDict
 )
 {
-    const word solverTypeName(solverDict.lookup("solver"));
+    const word solverTypeName(solverDict.lookup("motionSolver"));
 
     Info<< "Selecting motion solver: " << solverTypeName << endl;
 
@@ -227,7 +227,7 @@ bool Foam::motionSolver::read()
 {
     if (regIOobject::read())
     {
-        coeffDict_ = subDict(type() + "Coeffs");
+        coeffDict_ = optionalSubDict(type() + "Coeffs");
 
         return true;
     }
diff --git a/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C b/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C
index 3e1c92a108a..9d7d2c2516e 100644
--- a/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C
+++ b/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,7 +61,7 @@ Foam::SRF::SRFModel::SRFModel
     mesh_(Urel_.mesh()),
     origin_("origin", dimLength, lookup("origin")),
     axis_(lookup("axis")),
-    SRFModelCoeffs_(subDict(type + "Coeffs")),
+    SRFModelCoeffs_(optionalSubDict(type + "Coeffs")),
     omega_(dimensionedVector("omega", dimless/dimTime, Zero))
 {
     // Normalise the axis
@@ -89,7 +89,7 @@ bool Foam::SRF::SRFModel::read()
         axis_ /= mag(axis_);
 
         // Re-read sub-model coeffs
-        SRFModelCoeffs_ = subDict(type() + "Coeffs");
+        SRFModelCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         return true;
     }
diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
index be200396ea4..446c917a4ef 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
@@ -52,12 +52,7 @@ Foam::fv::option::option
     modelType_(modelType),
     mesh_(mesh),
     dict_(dict),
-    coeffs_
-    (
-        dict.found(modelType + "Coeffs")
-      ? dict.subDict(modelType + "Coeffs")
-      : dict
-    ),
+    coeffs_(dict.optionalSubDict(modelType + "Coeffs")),
     active_(dict_.lookupOrDefault<Switch>("active", true)),
     fieldNames_(),
     applied_()
diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
index 5308fa623b1..88730167b86 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
@@ -54,14 +54,7 @@ bool Foam::fv::option::read(const dictionary& dict)
 {
     dict.readIfPresent("active", active_);
 
-    if (dict.found(modelType_ + "Coeffs"))
-    {
-        coeffs_ = dict.subDict(modelType_ + "Coeffs");
-    }
-    else
-    {
-        coeffs_ = dict;
-    }
+    coeffs_ = dict.optionalSubDict(modelType_ + "Coeffs");
 
     return true;
 }
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
index 635b864c45b..adc20bb5c88 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
+++ b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
@@ -97,12 +97,7 @@ Foam::porosityModel::porosityModel
     name_(name),
     mesh_(mesh),
     dict_(dict),
-    coeffs_
-    (
-        dict.found(modelType + "Coeffs")
-      ? dict.subDict(modelType + "Coeffs")
-      : dict
-    ),
+    coeffs_(dict.optionalSubDict(modelType + "Coeffs")),
     active_(true),
     zoneName_(cellZoneName),
     cellZoneIDs_(),
@@ -234,14 +229,7 @@ bool Foam::porosityModel::read(const dictionary& dict)
 {
     dict.readIfPresent("active", active_);
 
-    if (dict.found(type() + "Coeffs"))
-    {
-        coeffs_ = dict.subDict(type() + "Coeffs");
-    }
-    else
-    {
-        coeffs_ = dict;
-    }
+    coeffs_ = dict.optionalSubDict(type() + "Coeffs");
 
     dict.lookup("cellZone") >> zoneName_;
     cellZoneIDs_ = mesh_.cellZones().findIndices(zoneName_);
diff --git a/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C b/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C
index 78f25810e5c..9e0826340a1 100644
--- a/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C
+++ b/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::patchDistMethods::advectionDiffusion::advectionDiffusion
 )
 :
     patchDistMethod(mesh, patchIDs),
-    coeffs_(dict.subDict(type() + "Coeffs")),
+    coeffs_(dict.optionalSubDict(type() + "Coeffs")),
     pdmPredictor_
     (
         patchDistMethod::New
diff --git a/src/functionObjects/field/streamLine/streamLine.C b/src/functionObjects/field/streamLine/streamLine.C
index a05a0ad94fb..1ed8a2ff8b5 100644
--- a/src/functionObjects/field/streamLine/streamLine.C
+++ b/src/functionObjects/field/streamLine/streamLine.C
@@ -372,19 +372,17 @@ bool Foam::functionObjects::streamLine::read(const dictionary& dict)
     );
 
     cloudName_ = dict.lookupOrDefault<word>("cloudName", "streamLine");
-    dict.lookup("seedSampleSet") >> seedSet_;
 
     meshSearchPtr_.reset(new meshSearch(mesh_));
 
-    const dictionary& coeffsDict = dict.subDict(seedSet_ + "Coeffs");
     sampledSetPtr_ = sampledSet::New
     (
-        seedSet_,
+        "seedSampleSet",
         mesh_,
         meshSearchPtr_(),
-        coeffsDict
+        dict.subDict("seedSampleSet")
     );
-    coeffsDict.lookup("axis") >> sampledSetAxis_;
+    sampledSetAxis_ = sampledSetPtr_->axis();
 
     scalarFormatterPtr_ = writer<scalar>::New(dict.lookup("setFormat"));
     vectorFormatterPtr_ = writer<vector>::New(dict.lookup("setFormat"));
diff --git a/src/functionObjects/field/streamLine/streamLine.H b/src/functionObjects/field/streamLine/streamLine.H
index 07a124c481f..b16f4109a70 100644
--- a/src/functionObjects/field/streamLine/streamLine.H
+++ b/src/functionObjects/field/streamLine/streamLine.H
@@ -55,8 +55,7 @@ Description
         nSubCycle       5;
         cloudName       particleTracks;
 
-        seedSampleSet   uniform;
-        uniformCoeffs
+        seedSampleSet
         {
             type        uniform;
             axis        x;  //distance;
@@ -81,7 +80,7 @@ Usage
         seedSampleSet| Seeding method (see below)| yes       |
     \endtable
 
-    Where \c seedSampleSet is typically one of
+    Where \c seedSampleSet \c type is typically one of
     \plaintable
         uniform | uniform particle seeding
         cloud   | cloud of points
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
index 23892ba7769..3a65c2d5708 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
@@ -469,18 +469,15 @@ bool Foam::functionObjects::wallBoundedStreamLine::read(const dictionary& dict)
         "cloudName",
         "wallBoundedStreamLine"
     );
-    dict.lookup("seedSampleSet") >> seedSet_;
-
-    const dictionary& coeffsDict = dict.subDict(seedSet_ + "Coeffs");
 
     sampledSetPtr_ = sampledSet::New
     (
-        seedSet_,
+        "seedSampleSet",
         mesh_,
         meshSearchMeshObject::New(mesh_),
-        coeffsDict
+        dict.subDict("seedSampleSet")
     );
-    coeffsDict.lookup("axis") >> sampledSetAxis_;
+    sampledSetAxis_ = sampledSetPtr_->axis();
 
     scalarFormatterPtr_ = writer<scalar>::New(dict.lookup("setFormat"));
     vectorFormatterPtr_ = writer<vector>::New(dict.lookup("setFormat"));
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
index 0d19e45423e..619d4ed86d7 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,8 +56,7 @@ Description
         nSubCycle       5;
         cloudName       particleTracks;
 
-        seedSampleSet   patchSeed;
-        patchSeedCoeffs
+        seedSampleSet
         {
             type        patchSeed;
             patches     (wall);
@@ -81,10 +80,10 @@ Usage
         seedSampleSet| Seeding method (see below)| yes       |
     \endtable
 
-    Where \c seedSampleSet is typically one of
+    Where \c seedSampleSet \c type is typically one of
     \plaintable
-        uniform | uniform particle seeding
-        cloud   | cloud of points
+        uniform   | uniform particle seeding
+        cloud     | cloud of points
         patchSeed | seeding via patch faces
         triSurfaceMeshPointSet | points according to a tri-surface mesh
     \endplaintable
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C b/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
index f4a9e60683c..149dffec64a 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ Foam::displacementSBRStressFvMotionSolver::displacementSBRStressFvMotionSolver
     const IOdictionary& dict
 )
 :
-    displacementMotionSolver(mesh, dict, dict.lookup("solver")),
+    displacementMotionSolver(mesh, dict, typeName),
     fvMotionSolver(mesh),
     cellDisplacement_
     (
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.C b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.C
index 9126ee841d4..bfd9f3d9352 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.C
+++ b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,7 +60,7 @@ Foam::trimModel::~trimModel()
 
 void Foam::trimModel::read(const dictionary& dict)
 {
-    coeffs_ = dict.subDict(name_ + "Coeffs");
+    coeffs_ = dict.optionalSubDict(name_ + "Coeffs");
 }
 
 
diff --git a/src/mesh/extrudeModel/extrudeModel/extrudeModel.C b/src/mesh/extrudeModel/extrudeModel/extrudeModel.C
index f6a2a132892..cb041871f62 100644
--- a/src/mesh/extrudeModel/extrudeModel/extrudeModel.C
+++ b/src/mesh/extrudeModel/extrudeModel/extrudeModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ Foam::extrudeModel::extrudeModel
     nLayers_(dict.lookupOrDefault<label>("nLayers", 1)),
     expansionRatio_(dict.lookupOrDefault<scalar>("expansionRatio", 1)),
     dict_(dict),
-    coeffDict_(dict.subDict(modelType + "Coeffs"))
+    coeffDict_(dict.optionalSubDict(modelType + "Coeffs"))
 {}
 
 
diff --git a/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C b/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C
index 33d535e9a41..d92d1bfb765 100644
--- a/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C
+++ b/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,7 +77,7 @@ Foam::displacementMeshMoverMotionSolver::meshMover() const
         meshMoverPtr_ = externalDisplacementMeshMover::New
         (
             moverType,
-            coeffDict().subDict(moverType + "Coeffs"),
+            coeffDict().optionalSubDict(moverType + "Coeffs"),
             localPointRegion::findDuplicateFacePairs(mesh()),
             pointDisplacement_
         );
@@ -108,7 +108,7 @@ void Foam::displacementMeshMoverMotionSolver::solve()
     labelList checkFaces(identity(mesh().nFaces()));
     meshMover().move
     (
-        coeffDict().subDict(meshMover().type() + "Coeffs"),
+        coeffDict().optionalSubDict(meshMover().type() + "Coeffs"),
         nAllowableErrors,
         checkFaces
     );
diff --git a/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C b/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C
index ca9a1981074..0c5ceabea68 100644
--- a/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C
+++ b/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,8 +29,8 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(decompositionConstraint, 1);
-defineRunTimeSelectionTable(decompositionConstraint, dictionary);
+    defineTypeNameAndDebug(decompositionConstraint, 1);
+    defineRunTimeSelectionTable(decompositionConstraint, dictionary);
 }
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
@@ -41,7 +41,6 @@ Foam::decompositionConstraint::decompositionConstraint
     const word& type
 )
 :
-    //coeffDict_(constraintsDict.subOrEmptyDict(type + "Coeffs"))
     coeffDict_(constraintsDict)
 {}
 
diff --git a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C
index a416d0dc304..6f741b09598 100644
--- a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,7 +34,7 @@ Foam::geomDecomp::geomDecomp
 )
 :
     decompositionMethod(decompositionDict),
-    geomDecomDict_(decompositionDict.subDict(derivedType + "Coeffs")),
+    geomDecomDict_(decompositionDict.optionalSubDict(derivedType + "Coeffs")),
     n_(geomDecomDict_.lookup("n")),
     delta_(readScalar(geomDecomDict_.lookup("delta"))),
     rotDelta_(I)
diff --git a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C
index 8af9083bc1f..0c42d691f6c 100644
--- a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,8 +53,10 @@ Foam::manualDecomp::manualDecomp(const dictionary& decompositionDict)
     decompositionMethod(decompositionDict),
     decompDataFile_
     (
-        decompositionDict.subDict(word(decompositionDict.lookup("method"))
-      + "Coeffs").lookup("dataFile")
+        decompositionDict.optionalSubDict
+        (
+            word(decompositionDict.lookup("method")) + "Coeffs"
+        ).lookup("dataFile")
     )
 {}
 
diff --git a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
index 219365e0e43..3ab449d3d3f 100644
--- a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -243,7 +243,7 @@ void Foam::multiLevelDecomp::decompose
 
             // Retrieve original level0 dictionary and modify number of domains
             dictionary::const_iterator iter =
-                decompositionDict_.subDict(typeName + "Coeffs").begin();
+                decompositionDict_.optionalSubDict(typeName + "Coeffs").begin();
             dictionary myDict = iter().dict();
             myDict.set("numberOfSubdomains", nTotal);
 
@@ -330,7 +330,7 @@ void Foam::multiLevelDecomp::decompose
 Foam::multiLevelDecomp::multiLevelDecomp(const dictionary& decompositionDict)
 :
     decompositionMethod(decompositionDict),
-    methodsDict_(decompositionDict_.subDict(typeName + "Coeffs"))
+    methodsDict_(decompositionDict_.optionalSubDict(typeName + "Coeffs"))
 {
     methods_.setSize(methodsDict_.size());
     label i = 0;
diff --git a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
index dd6f9e9236c..2d9dbeff3fa 100644
--- a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,7 @@ namespace Foam
 Foam::structuredDecomp::structuredDecomp(const dictionary& decompositionDict)
 :
     decompositionMethod(decompositionDict),
-    methodDict_(decompositionDict_.subDict(typeName + "Coeffs")),
+    methodDict_(decompositionDict_.optionalSubDict(typeName + "Coeffs")),
     patches_(methodDict_.lookup("patches"))
 {
     methodDict_.set("numberOfSubdomains", nDomains());
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
index 702a9336e03..d0211bd5e75 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
@@ -94,7 +94,7 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
         ownLiquid_ = true;
 
         liquidPtr_ =
-            liquidProperties::New(dict.subDict(name_ + "Coeffs")).ptr();
+            liquidProperties::New(dict.optionalSubDict(name_ + "Coeffs")).ptr();
     }
 }
 
diff --git a/src/renumber/SloanRenumber/SloanRenumber.C b/src/renumber/SloanRenumber/SloanRenumber.C
index ff1a123ee57..7de9bd9bb5e 100644
--- a/src/renumber/SloanRenumber/SloanRenumber.C
+++ b/src/renumber/SloanRenumber/SloanRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,9 +92,10 @@ Foam::SloanRenumber::SloanRenumber(const dictionary& renumberDict)
     renumberMethod(renumberDict),
     reverse_
     (
-        renumberDict.found(typeName + "Coeffs")
-      ? Switch(renumberDict.subDict(typeName + "Coeffs").lookup("reverse"))
-      : Switch(false)
+        renumberDict.optionalSubDict
+        (
+            typeName + "Coeffs"
+        ).lookupOrDefault<Switch>("reverse", false)
     )
 {}
 
diff --git a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
index fae937cb39e..1d375d69eda 100644
--- a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
+++ b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,9 +50,10 @@ Foam::CuthillMcKeeRenumber::CuthillMcKeeRenumber(const dictionary& renumberDict)
     renumberMethod(renumberDict),
     reverse_
     (
-        renumberDict.found(typeName + "Coeffs")
-      ? Switch(renumberDict.subDict(typeName + "Coeffs").lookup("reverse"))
-      : Switch(false)
+        renumberDict.optionalSubDict
+        (
+            typeName + "Coeffs"
+        ).lookupOrDefault<Switch>("reverse", false)
     )
 {}
 
diff --git a/src/renumber/renumberMethods/manualRenumber/manualRenumber.C b/src/renumber/renumberMethods/manualRenumber/manualRenumber.C
index 5db43311640..0b960137b71 100644
--- a/src/renumber/renumberMethods/manualRenumber/manualRenumber.C
+++ b/src/renumber/renumberMethods/manualRenumber/manualRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,7 +50,7 @@ Foam::manualRenumber::manualRenumber(const dictionary& renumberDict)
     renumberMethod(renumberDict),
     dataFile_
     (
-        renumberDict.subDict(typeName+"Coeffs").lookup("dataFile")
+        renumberDict.optionalSubDict(typeName+"Coeffs").lookup("dataFile")
     )
 {}
 
diff --git a/src/renumber/renumberMethods/springRenumber/springRenumber.C b/src/renumber/renumberMethods/springRenumber/springRenumber.C
index dc45768139c..eb31b53b0a5 100644
--- a/src/renumber/renumberMethods/springRenumber/springRenumber.C
+++ b/src/renumber/renumberMethods/springRenumber/springRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,7 +47,7 @@ namespace Foam
 Foam::springRenumber::springRenumber(const dictionary& renumberDict)
 :
     renumberMethod(renumberDict),
-    dict_(renumberDict.subDict(typeName+"Coeffs")),
+    dict_(renumberDict.optionalSubDict(typeName+"Coeffs")),
     maxCo_(readScalar(dict_.lookup("maxCo"))),
     maxIter_(readLabel(dict_.lookup("maxIter"))),
     freezeFraction_(readScalar(dict_.lookup("freezeFraction")))
diff --git a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
index e227f2861fb..f56a6476e39 100644
--- a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
+++ b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,7 +52,7 @@ Foam::structuredRenumber::structuredRenumber
 )
 :
     renumberMethod(renumberDict),
-    methodDict_(renumberDict.subDict(typeName + "Coeffs")),
+    methodDict_(renumberDict.optionalSubDict(typeName + "Coeffs")),
     patches_(methodDict_.lookup("patches")),
     nLayers_(methodDict_.lookupOrDefault<label>("nLayers", labelMax)),
     depthFirst_(methodDict_.lookup("depthFirst")),
diff --git a/src/renumber/zoltanRenumber/zoltanRenumber.C b/src/renumber/zoltanRenumber/zoltanRenumber.C
index da7a2957b53..b487d522ec2 100644
--- a/src/renumber/zoltanRenumber/zoltanRenumber.C
+++ b/src/renumber/zoltanRenumber/zoltanRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -261,7 +261,7 @@ static void get_geom_list
 Foam::zoltanRenumber::zoltanRenumber(const dictionary& renumberDict)
 :
     renumberMethod(renumberDict),
-    coeffsDict_(renumberDict.subDict(typeName+"Coeffs"))
+    coeffsDict_(renumberDict.optionalSubDict(typeName+"Coeffs"))
 {}
 
 
diff --git a/src/sampling/sampledSet/sampledSet/sampledSet.C b/src/sampling/sampledSet/sampledSet/sampledSet.C
index f583aaea86d..cefc4214c2d 100644
--- a/src/sampling/sampledSet/sampledSet/sampledSet.C
+++ b/src/sampling/sampledSet/sampledSet/sampledSet.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -468,7 +468,7 @@ Foam::autoPtr<Foam::sampledSet> Foam::sampledSet::New
             name,
             mesh,
             searchEngine,
-            dict
+            dict.optionalSubDict(sampleType + "Coeffs")
         )
     );
 }
diff --git a/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C b/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C
index 9fc5bbdf26e..eb4c2c04a0e 100644
--- a/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C
+++ b/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,7 @@ Foam::laminarFlameSpeedModels::Gulders::Gulders
 :
     laminarFlameSpeed(dict, ct),
 
-    coeffsDict_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
     W_(readScalar(coeffsDict_.lookup("W"))),
     eta_(readScalar(coeffsDict_.lookup("eta"))),
     xi_(readScalar(coeffsDict_.lookup("xi"))),
diff --git a/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C b/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C
index 3bf32513232..befd4d0973f 100644
--- a/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C
+++ b/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::laminarFlameSpeedModels::GuldersEGR::GuldersEGR
 :
     laminarFlameSpeed(dict, ct),
 
-    coeffsDict_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
     W_(readScalar(coeffsDict_.lookup("W"))),
     eta_(readScalar(coeffsDict_.lookup("eta"))),
     xi_(readScalar(coeffsDict_.lookup("xi"))),
diff --git a/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C b/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C
index faaccea7484..1fff569d9cb 100644
--- a/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C
+++ b/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::laminarFlameSpeedModels::RaviPetersen::RaviPetersen
 )
 :
     laminarFlameSpeed(dict, ct),
-    coeffsDict_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
     pPoints_(coeffsDict_.lookup("pPoints")),
     EqRPoints_(coeffsDict_.lookup("EqRPoints")),
     alpha_(coeffsDict_.lookup("alpha")),
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C
index d78e1527a53..09a91a8d24f 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::binaryAbsorptionEmission::binaryAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs")),
     model1_
     (
         absorptionEmissionModel::New(coeffsDict_.subDict("model1"), mesh)
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C
index c4dc6b246c4..6fd866c6d97 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::constantAbsorptionEmission::constantAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs")),
     a_(coeffsDict_.lookup("absorptivity")),
     e_(coeffsDict_.lookup("emissivity")),
     E_(coeffsDict_.lookup("E"))
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
index bcda5221861..3d89c9c9216 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_((dict.subDict(typeName + "Coeffs"))),
+    coeffsDict_((dict.optionalSubDict(typeName + "Coeffs"))),
     speciesNames_(0),
     specieIndex_(label(0)),
     lookUpTablePtr_(),
@@ -73,7 +73,7 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission
 
 
     label nFunc = 0;
-    const dictionary& functionDicts = dict.subDict(typeName + "Coeffs");
+    const dictionary& functionDicts = dict.optionalSubDict(typeName + "Coeffs");
 
     forAllConstIter(dictionary, functionDicts, iter)
     {
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C
index 0162f20421a..584dc4f6458 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -90,7 +90,7 @@ greyMeanSolidAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_((dict.subDict(typeName + "Coeffs"))),
+    coeffsDict_((dict.optionalSubDict(typeName + "Coeffs"))),
     thermo_(mesh.lookupObject<solidThermo>(basicThermo::dictName)),
     speciesNames_(0),
     mixture_(dynamic_cast<const basicSpecieMixture&>(thermo_)),
@@ -104,7 +104,7 @@ greyMeanSolidAbsorptionEmission
     }
 
     label nFunc = 0;
-    const dictionary& functionDicts = dict.subDict(typeName + "Coeffs");
+    const dictionary& functionDicts = dict.optionalSubDict(typeName + "Coeffs");
 
     forAllConstIter(dictionary, functionDicts, iter)
     {
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
index 6e31e837ab3..b39014bcce0 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::wideBandAbsorptionEmission::wideBandAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_((dict.subDict(typeName + "Coeffs"))),
+    coeffsDict_((dict.optionalSubDict(typeName + "Coeffs"))),
     speciesNames_(0),
     specieIndex_(label(0)),
     lookUpTable_
@@ -67,7 +67,7 @@ Foam::radiation::wideBandAbsorptionEmission::wideBandAbsorptionEmission
     totalWaveLength_(0)
 {
     label nBand = 0;
-    const dictionary& functionDicts = dict.subDict(typeName +"Coeffs");
+    const dictionary& functionDicts = dict.optionalSubDict(typeName +"Coeffs");
     forAllConstIter(dictionary, functionDicts, iter)
     {
         // safety:
diff --git a/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C b/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C
index 12020b8d99c..dd552d0a668 100644
--- a/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C
+++ b/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::constantScatter::constantScatter
 )
 :
     scatterModel(dict, mesh),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs")),
     sigma_(coeffsDict_.lookup("sigma")),
     C_(coeffsDict_.lookup("C"))
 {}
diff --git a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
index 2fc7a6f97be..5f88b7a3e65 100644
--- a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
@@ -148,7 +148,10 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 
             return autoPtr<liquidProperties>
             (
-                cstrIter()(dict.subDict(liquidPropertiesTypeName + "Coeffs"))
+                cstrIter()
+                (
+                    dict.optionalSubDict(liquidPropertiesTypeName + "Coeffs")
+                )
             );
         }
     }
diff --git a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
index 75463513e1e..a3aaf62830c 100644
--- a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
+++ b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
@@ -78,7 +78,7 @@ Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
         {
             return autoPtr<solidProperties>
             (
-                new solidProperties(dict.subDict(solidType + "Coeffs"))
+                new solidProperties(dict.optionalSubDict(solidType + "Coeffs"))
             );
         }
     }
diff --git a/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C b/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
index ec1834fa460..c9fbb148195 100644
--- a/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
+++ b/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -277,7 +277,7 @@ Foam::linearValveFvMesh::linearValveFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     msPtr_(motionSolver::New(*this))
 {
diff --git a/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C b/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
index c86a550eb05..7bf5592af78 100644
--- a/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
+++ b/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -356,7 +356,7 @@ Foam::linearValveLayersFvMesh::linearValveLayersFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     )
 {
     addZonesAndModifiers();
diff --git a/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C b/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
index dec25b57461..ff9ad4f17a4 100644
--- a/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
+++ b/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -293,7 +293,7 @@ Foam::mixerFvMesh::mixerFvMesh
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     csPtr_
     (
diff --git a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
index 5e617cdec83..151f1c10cba 100644
--- a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
+++ b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
@@ -263,7 +263,7 @@ Foam::movingConeTopoFvMesh::movingConeTopoFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     motionVelAmplitude_(motionDict_.lookup("motionVelAmplitude")),
     motionVelPeriod_(readScalar(motionDict_.lookup("motionVelPeriod"))),
diff --git a/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C b/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C
index 4ea9529eaef..cb486982c67 100644
--- a/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C
+++ b/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,10 @@ Foam::viscosityModels::BirdCarreau::BirdCarreau
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    BirdCarreauCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    BirdCarreauCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     nu0_("nu0", dimViscosity, BirdCarreauCoeffs_),
     nuInf_("nuInf", dimViscosity, BirdCarreauCoeffs_),
     k_("k", dimTime, BirdCarreauCoeffs_),
@@ -104,7 +107,8 @@ bool Foam::viscosityModels::BirdCarreau::read
 {
     viscosityModel::read(viscosityProperties);
 
-    BirdCarreauCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    BirdCarreauCoeffs_ =
+        viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     BirdCarreauCoeffs_.lookup("nu0") >> nu0_;
     BirdCarreauCoeffs_.lookup("nuInf") >> nuInf_;
diff --git a/src/transportModels/incompressible/viscosityModels/Casson/Casson.C b/src/transportModels/incompressible/viscosityModels/Casson/Casson.C
index d3c88ccf8cb..43e2807f138 100644
--- a/src/transportModels/incompressible/viscosityModels/Casson/Casson.C
+++ b/src/transportModels/incompressible/viscosityModels/Casson/Casson.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,7 +83,7 @@ Foam::viscosityModels::Casson::Casson
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    CassonCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    CassonCoeffs_(viscosityProperties.optionalSubDict(typeName + "Coeffs")),
     m_("m", dimViscosity, CassonCoeffs_),
     tau0_("tau0", dimViscosity/dimTime, CassonCoeffs_),
     nuMin_("nuMin", dimViscosity, CassonCoeffs_),
@@ -112,7 +112,7 @@ bool Foam::viscosityModels::Casson::read
 {
     viscosityModel::read(viscosityProperties);
 
-    CassonCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    CassonCoeffs_ = viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     CassonCoeffs_.lookup("m") >> m_;
     CassonCoeffs_.lookup("tau0") >> tau0_;
diff --git a/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C b/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C
index 7359c621d0d..6b9ac760a78 100644
--- a/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C
+++ b/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,10 @@ Foam::viscosityModels::CrossPowerLaw::CrossPowerLaw
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    CrossPowerLawCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    CrossPowerLawCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     nu0_("nu0", dimViscosity, CrossPowerLawCoeffs_),
     nuInf_("nuInf", dimViscosity, CrossPowerLawCoeffs_),
     m_("m", dimTime, CrossPowerLawCoeffs_),
@@ -94,7 +97,8 @@ bool Foam::viscosityModels::CrossPowerLaw::read
 {
     viscosityModel::read(viscosityProperties);
 
-    CrossPowerLawCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    CrossPowerLawCoeffs_ =
+        viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     CrossPowerLawCoeffs_.lookup("nu0") >> nu0_;
     CrossPowerLawCoeffs_.lookup("nuInf") >> nuInf_;
diff --git a/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C b/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
index f9ed2bb86e6..8f1656df140 100644
--- a/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
+++ b/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,10 @@ Foam::viscosityModels::HerschelBulkley::HerschelBulkley
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    HerschelBulkleyCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    HerschelBulkleyCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     k_("k", dimViscosity, HerschelBulkleyCoeffs_),
     n_("n", dimless, HerschelBulkleyCoeffs_),
     tau0_("tau0", dimViscosity/dimTime, HerschelBulkleyCoeffs_),
@@ -107,7 +110,8 @@ bool Foam::viscosityModels::HerschelBulkley::read
 {
     viscosityModel::read(viscosityProperties);
 
-    HerschelBulkleyCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    HerschelBulkleyCoeffs_ =
+        viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     HerschelBulkleyCoeffs_.lookup("k") >> k_;
     HerschelBulkleyCoeffs_.lookup("n") >> n_;
diff --git a/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C b/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
index d3258f3a580..ec84ba20285 100644
--- a/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
+++ b/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,7 +81,7 @@ Foam::viscosityModels::powerLaw::powerLaw
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    powerLawCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    powerLawCoeffs_(viscosityProperties.optionalSubDict(typeName + "Coeffs")),
     k_("k", dimViscosity, powerLawCoeffs_),
     n_("n", dimless, powerLawCoeffs_),
     nuMin_("nuMin", dimViscosity, powerLawCoeffs_),
@@ -110,7 +110,7 @@ bool Foam::viscosityModels::powerLaw::read
 {
     viscosityModel::read(viscosityProperties);
 
-    powerLawCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    powerLawCoeffs_ = viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     powerLawCoeffs_.lookup("k") >> k_;
     powerLawCoeffs_.lookup("n") >> n_;
diff --git a/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C b/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C
index 6c218d710a7..29e0735bab1 100644
--- a/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C
+++ b/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,10 @@ Foam::viscosityModels::strainRateFunction::strainRateFunction
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    strainRateFunctionCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    strainRateFunctionCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     strainRateFunction_
     (
         Function1<scalar>::New("function", strainRateFunctionCoeffs_)
@@ -119,7 +122,7 @@ bool Foam::viscosityModels::strainRateFunction::read
 {
     viscosityModel::read(viscosityProperties);
 
-    strainRateFunctionCoeffs_ = viscosityProperties.subDict
+    strainRateFunctionCoeffs_ = viscosityProperties.optionalSubDict
     (
         typeName + "Coeffs"
     );
diff --git a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict
index cf9a03199e1..521582f5689 100644
--- a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict
+++ b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict
@@ -16,43 +16,38 @@ FoamFile
 
 dynamicFvMesh      dynamicRefineFvMesh;
 
+// Refine every refineInterval timesteps
+refineInterval 1;
 
-dynamicRefineFvMeshCoeffs
-{
-
-    // Refine every refineInterval timesteps
-    refineInterval 1;
+// Maximum refinement level (starts from 0)
+maxRefinement 2;
 
-    // Maximum refinement level (starts from 0)
-    maxRefinement 2;
+// Maximum cell limit (approximate)
+maxCells 10000;
 
-    // Maximum cell limit (approximate)
-    maxCells 10000;
+// volScalarField to base refinement on
+field normalisedGradP;
 
-    // volScalarField to base refinement on
-    field normalisedGradP;
+nBufferLayers 1;
 
-    nBufferLayers 1;
+dumpLevel true;
 
-    dumpLevel true;
+lowerRefineLevel 0.5;
+upperRefineLevel 1.5;
 
-    lowerRefineLevel 0.5;
-    upperRefineLevel 1.5;
+unrefineLevel 0.5;
 
-    unrefineLevel 0.5;
+nBufferLayers 1;
+// Newly introduced patch points optionally get projected onto a surface
+//projectSurfaces ("fixedWalls4.stl");
+//projectPatches (fixedWalls);
+// Maximum project distance
+//projectDistance 1;
 
-    nBufferLayers 1;
-    // Newly introduced patch points optionally get projected onto a surface
-    //projectSurfaces ("fixedWalls4.stl");
-    //projectPatches (fixedWalls);
-    // Maximum project distance
-    //projectDistance 1;
-
-    // Fluxes to adapt. For newly created faces or split faces the flux
-    // gets estimated from an interpolated volVectorField ('velocity')
-    // First is name of the flux to adapt, second is velocity that will
-    // be interpolated and inner-producted with the face area vector.
-     correctFluxes ((phi rhoU) (phi_0 none));
-}
+// Fluxes to adapt. For newly created faces or split faces the flux
+// gets estimated from an interpolated volVectorField ('velocity')
+// First is name of the flux to adapt, second is velocity that will
+// be interpolated and inner-producted with the face area vector.
+correctFluxes ((phi rhoU) (phi_0 none));
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict
index 95000b1405e..a6f0ba59dad 100644
--- a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict
+++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict
@@ -17,15 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver          velocityComponentLaplacian;
+motionSolver    velocityComponentLaplacian;
 
-velocityComponentLaplacianCoeffs
-{
-    component       x;
-    diffusivity     directional (1 200 0);
-}
+component       x;
+diffusivity     directional (1 200 0);
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict
index 784fdf08617..8438653c8e9 100644
--- a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict
+++ b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict
@@ -19,19 +19,14 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotatingZone;
+cellZone        rotatingZone;
 
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin      (0 0 0);
-        axis        (0 0 1);
-        omega       $:meshMotionProperties.omega;
-    }
-}
+solidBodyMotionFunction  rotatingMotion;
+
+origin      (0 0 0);
+axis        (0 0 1);
+omega       $:meshMotionProperties.omega;
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict b/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict
index 95000b1405e..a6f0ba59dad 100644
--- a/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict
+++ b/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict
@@ -17,15 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver          velocityComponentLaplacian;
+motionSolver    velocityComponentLaplacian;
 
-velocityComponentLaplacianCoeffs
-{
-    component       x;
-    diffusivity     directional (1 200 0);
-}
+component       x;
+diffusivity     directional (1 200 0);
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict
index 136695eb91a..ed7766ae010 100644
--- a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict
@@ -17,19 +17,14 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotor;
+cellZone        rotor;
 
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         6.2832; // rad/s
-    }
-}
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         6.2832; // rad/s
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict
index 95000b1405e..a6f0ba59dad 100644
--- a/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict
@@ -17,15 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver          velocityComponentLaplacian;
+motionSolver    velocityComponentLaplacian;
 
-velocityComponentLaplacianCoeffs
-{
-    component       x;
-    diffusivity     directional (1 200 0);
-}
+component       x;
+diffusivity     directional (1 200 0);
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict
index 7df955040f3..a814289f605 100644
--- a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict
@@ -17,22 +17,16 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        inletChannel;
+cellZone        inletChannel;
 
-    solidBodyMotionFunction  oscillatingLinearMotion;
+solidBodyMotionFunction  oscillatingLinearMotion;
 
-    oscillatingLinearMotionCoeffs
-    {
-        amplitude       (0 0.5 0);
-        omega           3.14; // rad/s  (.5 rps)
-    }
-}
+amplitude       (0 0.5 0);
+omega           3.14; // rad/s  (.5 rps)
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict
index 99ebb612343..a565894dfa0 100644
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict
@@ -17,22 +17,16 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        innerCylinderSmall;
+cellZone        innerCylinderSmall;
 
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin      (0 0 0);
-        axis        (0 1 0);
-        omega       158; // rad/s
-    }
-}
+solidBodyMotionFunction  rotatingMotion;
 
+origin      (0 0 0);
+axis        (0 1 0);
+omega       158; // rad/s
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict
index 71c497cb61d..7b081972364 100644
--- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict
@@ -18,72 +18,69 @@ dynamicFvMesh      dynamicMotionSolverFvMesh;
 
 motionSolverLibs ("libsixDoFRigidBodyMotion.so");
 
-solver            sixDoFRigidBodyMotion;
+motionSolver    sixDoFRigidBodyMotion;
 
-sixDoFRigidBodyMotionCoeffs
-{
-    patches         (wing);
-    innerDistance   0.3;
-    outerDistance   1;
+patches         (wing);
+innerDistance   0.3;
+outerDistance   1;
 
-    mass            22.9;
-    centreOfMass    (0.4974612746 -0.01671895744 0.125);
-    momentOfInertia (1.958864357 3.920839234 2.057121362);
-    orientation
-    (
-        0.9953705935 0.09611129781 0
-        -0.09611129781 0.9953705935 0
-        0 0 1
-    );
-    angularMomentum (0 0 -2);
-    g               (0 -9.81 0);
-    rho             rhoInf;
-    rhoInf          1;
-    report          on;
+mass            22.9;
+centreOfMass    (0.4974612746 -0.01671895744 0.125);
+momentOfInertia (1.958864357 3.920839234 2.057121362);
+orientation
+(
+    0.9953705935 0.09611129781 0
+    -0.09611129781 0.9953705935 0
+    0 0 1
+);
+angularMomentum (0 0 -2);
+g               (0 -9.81 0);
+rho             rhoInf;
+rhoInf          1;
+report          on;
 
-    solver
+solver
+{
+    type symplectic;
+}
+
+constraints
+{
+    yLine
     {
-        type symplectic;
+        sixDoFRigidBodyMotionConstraint line;
+        centreOfRotation    (0.25 0.007 0.125);
+        direction           (0 1 0);
     }
 
-    constraints
+    zAxis
     {
-        yLine
-        {
-            sixDoFRigidBodyMotionConstraint line;
-            centreOfRotation    (0.25 0.007 0.125);
-            direction           (0 1 0);
-        }
-
-        zAxis
-        {
-            sixDoFRigidBodyMotionConstraint axis;
-            axis                (0 0 1);
-        }
+        sixDoFRigidBodyMotionConstraint axis;
+        axis                (0 0 1);
     }
+}
 
-    restraints
+restraints
+{
+    verticalSpring
     {
-        verticalSpring
-        {
-            sixDoFRigidBodyMotionRestraint linearSpring;
+        sixDoFRigidBodyMotionRestraint linearSpring;
 
-            anchor          (0.25 0.007 0.125);
-            refAttachmentPt (0.25 0.007 0.125);
-            stiffness       4000;
-            damping         2;
-            restLength      0;
-        }
+        anchor          (0.25 0.007 0.125);
+        refAttachmentPt (0.25 0.007 0.125);
+        stiffness       4000;
+        damping         2;
+        restLength      0;
+    }
 
-        axialSpring
-        {
-            sixDoFRigidBodyMotionRestraint linearAxialAngularSpring;
+    axialSpring
+    {
+        sixDoFRigidBodyMotionRestraint linearAxialAngularSpring;
 
-            axis            (0 0 1);
-            stiffness       700;
-            damping         0.5;
-            referenceOrientation $orientation;
-        }
+        axis            (0 0 1);
+        stiffness       700;
+        damping         0.5;
+        referenceOrientation $orientation;
     }
 }
 
diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
index 954b5f4c439..ab6ea48d403 100644
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
@@ -59,8 +59,7 @@ functions
         lifeTime        10000;
         nSubCycle       5;
         cloudName       particleTracks;
-        seedSampleSet   uniform;
-        uniformCoeffs
+        seedSampleSet
         {
             type            uniform;
             axis            x;
diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
index 2aa458c572e..1ca71c25229 100644
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
@@ -32,9 +32,7 @@ streamLines
     cloudName       particleTracks;
 
     // Seeding method.
-    seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;
-
-    uniformCoeffs
+    seedSampleSet
     {
         type        uniform;
         axis        x;  //distance;
diff --git a/tutorials/incompressible/simpleFoam/motorBike/system/streamLines b/tutorials/incompressible/simpleFoam/motorBike/system/streamLines
index ec6792f09e5..4c32d608040 100644
--- a/tutorials/incompressible/simpleFoam/motorBike/system/streamLines
+++ b/tutorials/incompressible/simpleFoam/motorBike/system/streamLines
@@ -42,9 +42,7 @@ streamLines
     cloudName       particleTracks;
 
     // Seeding method.
-    seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;
-
-    uniformCoeffs
+    seedSampleSet
     {
         type        uniform;
         axis        x;  //distance;
diff --git a/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines b/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines
index 923a80615e1..e232b3c2cb7 100644
--- a/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines
+++ b/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines
@@ -68,29 +68,31 @@ wallBoundedStreamLines
     cloudName       wallBoundedParticleTracks;
 
     // Seeding method.
-    seedSampleSet   patchSeed;    //cloud; //triSurfaceMeshPointSet;
-
-    uniformCoeffs
-    {
-        type        uniform;
-        axis        x;  //distance;
-
-        start       (0.0035 0.0999 0.0001);
-        end         (0.0035 0.0999 0.0099);
-        nPoints     20;
-    }
-    cloudCoeffs
-    {
-        type        cloud;
-        axis        x;  //distance;
-        points      ((0.351516548679288 -0.0116085375585099 1.24));
-    }
-    patchSeedCoeffs
+    seedSampleSet
     {
         type        patchSeed;
-        patches     (motorBikeGroup);
-        axis        x;  //distance;
-        maxPoints   20000;
+
+        uniformCoeffs
+        {
+            axis        x;  //distance;
+
+            start       (0.0035 0.0999 0.0001);
+            end         (0.0035 0.0999 0.0099);
+            nPoints     20;
+        }
+
+        cloudCoeffs
+        {
+            axis        x;  //distance;
+            points      ((0.351516548679288 -0.0116085375585099 1.24));
+        }
+
+        patchSeedCoeffs
+        {
+            patches     (motorBikeGroup);
+            axis        x;  //distance;
+            maxPoints   20000;
+        }
     }
 }
 
diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict
index 540dcdd980c..d8f9467764b 100644
--- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict
+++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict
@@ -76,13 +76,11 @@ functions
         cloudName       particleTracks;
 
         // Seeding method.
-        seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;
-
-        uniformCoeffs
+        seedSampleSet
         {
             type        uniform;
-            axis        x;  //distance;
 
+            axis        x;  //distance;
             start       (-0.0205 0.001  0.00001);
             end         (-0.0205 0.0251 0.00001);
             nPoints     10;
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict
index 3b93a3eda24..f96103b3dbc 100644
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict
@@ -17,22 +17,17 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotating;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         -5; // 5 rad/s
-    }
-}
+cellZone        rotating;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         -5; // 5 rad/s
 
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict
index 4aaa9e488c0..2f20f305214 100644
--- a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict
+++ b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict
@@ -20,16 +20,13 @@ dynamicFvMesh dynamicMotionSolverFvMesh;
 
 motionSolverLibs ("libfvMotionSolvers.so");
 
-solver displacementSBRStress;   //displacementLaplacian;
-//solver velocityComponentLaplacian z;
+motionSolver displacementSBRStress;   //displacementLaplacian;
+//motionSolver velocityComponentLaplacian z;
 
-displacementSBRStressCoeffs
-{
-    // diffusivity  uniform;
-    // diffusivity  directional (1 200 0);
-    // diffusivity  motionDirectional (1 1000 0);
-    // diffusivity  file motionDiffusivity;
-    diffusivity  quadratic inverseDistance 1(minZ);
-}
+// diffusivity  uniform;
+// diffusivity  directional (1 200 0);
+// diffusivity  motionDirectional (1 1000 0);
+// diffusivity  file motionDiffusivity;
+diffusivity  quadratic inverseDistance 1(minZ);
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
index 26a2e7018f9..35525573d5e 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.22654;
-        rollAmin        0.10472;
-        heaveA          3.79;
-        swayA           2.34;
-        Q               2;
-        Tp              13.93;
-        Tpn             11.93;
-        dTi             0.059;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.22654;
+rollAmin        0.10472;
+heaveA          3.79;
+swayA           2.34;
+Q               2;
+Tp              13.93;
+Tpn             11.93;
+dTi             0.059;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
index f1575c49c3a..01a5ea2ba4a 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
@@ -14,70 +14,67 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh       dynamicMotionSolverFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs   ("librigidBodyMeshMotion.so");
 
-solver             rigidBodyMotion;
+motionSolver    rigidBodyMotion;
 
-rigidBodyMotionCoeffs
-{
-    report          on;
+report          on;
 
-    solver
-    {
-        type Newmark;
-    }
+solver
+{
+    type Newmark;
+}
 
-    accelerationRelaxation 0.4;
+accelerationRelaxation 0.4;
 
-    bodies
+bodies
+{
+    hull
     {
-        hull
-        {
-            type            rigidBody;
-            parent          root;
+        type            rigidBody;
+        parent          root;
 
-            centreOfMass    (0 0 0);
-            mass            412.73;
-            inertia         (40 0 0 921 0 921);
-            transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);
+        centreOfMass    (0 0 0);
+        mass            412.73;
+        inertia         (40 0 0 921 0 921);
+        transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);
 
-            joint
-            {
-                type    composite;
-                joints
-                (
-                    {
-                        type Pz;
-                    }
-                    {
-                        type Ry;
-                    }
-                );
-            }
-
-            patches         (hull);
-            innerDistance   0.3;
-            outerDistance   1;
+        joint
+        {
+            type    composite;
+            joints
+            (
+                {
+                    type Pz;
+                }
+                {
+                    type Ry;
+                }
+            );
         }
+
+        patches         (hull);
+        innerDistance   0.3;
+        outerDistance   1;
     }
+}
 
-    restraints
+restraints
+{
+    translationDamper
     {
-        translationDamper
-        {
-            type linearDamper;
-            body hull;
-            coeff 8596;
-        }
+        type linearDamper;
+        body hull;
+        coeff 8596;
+    }
 
-        rotationDamper
-        {
-            type sphericalAngularDamper;
-            body hull;
-            coeff 11586;
-        }
+    rotationDamper
+    {
+        type sphericalAngularDamper;
+        body hull;
+        coeff 11586;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
index 02088e1075b..d59f6e4be03 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
+++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
@@ -14,59 +14,56 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh       dynamicMotionSolverFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs    ("libsixDoFRigidBodyMotion.so");
 
-solver              sixDoFRigidBodyMotion;
+motionSolver    sixDoFRigidBodyMotion;
 
-sixDoFRigidBodyMotionCoeffs
-{
-    patches         (hull);
-    innerDistance   0.3;
-    outerDistance   1;
+patches         (hull);
+innerDistance   0.3;
+outerDistance   1;
 
-    centreOfMass    (2.929541 0 0.2);
-    mass            412.73;
-    momentOfInertia (40 921 921);
-    rhoInf          1;
-    report          on;
+centreOfMass    (2.929541 0 0.2);
+mass            412.73;
+momentOfInertia (40 921 921);
+rhoInf          1;
+report          on;
 
-    value           uniform (0 0 0);
+value           uniform (0 0 0);
 
-    accelerationRelaxation 0.4;
+accelerationRelaxation 0.4;
 
-    solver
+solver
+{
+    type Newmark;
+}
+
+constraints
+{
+    zAxis
     {
-        type Newmark;
+        sixDoFRigidBodyMotionConstraint line;
+        direction     (0 0 1);
     }
-
-    constraints
+    yPlane
     {
-        zAxis
-        {
-            sixDoFRigidBodyMotionConstraint line;
-            direction     (0 0 1);
-        }
-        yPlane
-        {
-            sixDoFRigidBodyMotionConstraint axis;
-            axis          (0 1 0);
-        }
+        sixDoFRigidBodyMotionConstraint axis;
+        axis          (0 1 0);
     }
+}
 
-    restraints
+restraints
+{
+    translationDamper
+    {
+        sixDoFRigidBodyMotionRestraint linearDamper;
+        coeff         8596;
+    }
+    rotationDamper
     {
-        translationDamper
-        {
-            sixDoFRigidBodyMotionRestraint linearDamper;
-            coeff         8596;
-        }
-        rotationDamper
-        {
-            sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
-            coeff         11586;
-        }
+        sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
+        coeff         11586;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
index d04014451fa..04d447410bb 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
@@ -18,7 +18,7 @@ dynamicFvMesh       dynamicMotionSolverFvMesh;
 
 motionSolverLibs   ("librigidBodyMeshMotion.so");
 
-solver             rigidBodyMotion;
+motionSolver       rigidBodyMotion;
 
 rigidBodyMotionCoeffs
 {
diff --git a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
index 5f053564266..effb40a0e6a 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
@@ -18,7 +18,7 @@ dynamicFvMesh       dynamicMotionSolverFvMesh;
 
 motionSolverLibs    ("libsixDoFRigidBodyMotion.so");
 
-solver              sixDoFRigidBodyMotion;
+motionSolver        sixDoFRigidBodyMotion;
 
 sixDoFRigidBodyMotionCoeffs
 {
diff --git a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
index 3b93a3eda24..956dd12bfda 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
@@ -19,20 +19,15 @@ dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ( "libfvMotionSolvers.so" );
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotating;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         -5; // 5 rad/s
-    }
-}
+cellZone        rotating;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         -5; // 5 rad/s
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
index 78c25b16328..6ea2c203019 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
@@ -17,45 +17,42 @@ FoamFile
 
 dynamicFvMesh   dynamicRefineFvMesh;
 
-dynamicRefineFvMeshCoeffs
-{
-    // How often to refine
-    refineInterval  1;
-
-    // Field to be refinement on
-    field           alpha.water;
-
-    // Refine field inbetween lower..upper
-    lowerRefineLevel 0.001;
-    upperRefineLevel 0.999;
-
-    // If value < unrefineLevel unrefine
-    unrefineLevel   10;
-
-    // Have slower than 2:1 refinement
-    nBufferLayers   1;
-
-    // Refine cells only up to maxRefinement levels
-    maxRefinement   2;
-
-    // Stop refinement if maxCells reached
-    maxCells        200000;
-
-    // Flux field and corresponding velocity field. Fluxes on changed
-    // faces get recalculated by interpolating the velocity. Use 'none'
-    // on surfaceScalarFields that do not need to be reinterpolated.
-    correctFluxes
-    (
-        (phi none)
-        (nHatf none)
-        (rhoPhi none)
-        (alphaPhi none)
-        (ghf none)
-    );
-
-    // Write the refinement level as a volScalarField
-    dumpLevel       true;
-}
+// How often to refine
+refineInterval  1;
+
+// Field to be refinement on
+field           alpha.water;
+
+// Refine field inbetween lower..upper
+lowerRefineLevel 0.001;
+upperRefineLevel 0.999;
+
+// If value < unrefineLevel unrefine
+unrefineLevel   10;
+
+// Have slower than 2:1 refinement
+nBufferLayers   1;
+
+// Refine cells only up to maxRefinement levels
+maxRefinement   2;
+
+// Stop refinement if maxCells reached
+maxCells        200000;
+
+// Flux field and corresponding velocity field. Fluxes on changed
+// faces get recalculated by interpolating the velocity. Use 'none'
+// on surfaceScalarFields that do not need to be reinterpolated.
+correctFluxes
+(
+    (phi none)
+    (nHatf none)
+    (rhoPhi none)
+    (alphaPhi none)
+    (ghf none)
+);
+
+// Write the refinement level as a volScalarField
+dumpLevel       true;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
index 4d43baaaea0..79e5aa49d1c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
@@ -17,34 +17,28 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction multiMotion;
+solidBodyMotionFunction multiMotion;
 
-    multiMotionCoeffs
+oscillation
+{
+    solidBodyMotionFunction oscillatingLinearMotion;
+    oscillatingLinearMotionCoeffs
     {
-        oscillation
-        {
-            solidBodyMotionFunction oscillatingLinearMotion;
-            oscillatingLinearMotionCoeffs
-            {
-                amplitude     (0.1 0 0);
-                omega         18.8945578;
-            }
-        }
+        amplitude     (0.1 0 0);
+        omega         18.8945578;
+    }
+}
 
-        rotation
-        {
-            solidBodyMotionFunction  rotatingMotion;
-            rotatingMotionCoeffs
-            {
-                origin        (0 0.02 0);
-                axis          (0 0 1);
-                omega         18.8945578;
-            }
-        }
+rotation
+{
+    solidBodyMotionFunction  rotatingMotion;
+    rotatingMotionCoeffs
+    {
+        origin        (0 0.02 0);
+        axis          (0 0 1);
+        omega         18.8945578;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
index 26a2e7018f9..35525573d5e 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.22654;
-        rollAmin        0.10472;
-        heaveA          3.79;
-        swayA           2.34;
-        Q               2;
-        Tp              13.93;
-        Tpn             11.93;
-        dTi             0.059;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.22654;
+rollAmin        0.10472;
+heaveA          3.79;
+swayA           2.34;
+Q               2;
+Tp              13.93;
+Tpn             11.93;
+dTi             0.059;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
index cdf917c2f4e..6f0136494eb 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.2;
-        rollAmin        0.1;
-        heaveA          4;
-        swayA           2.4;
-        Q               2;
-        Tp              14;
-        Tpn             12;
-        dTi             0.06;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.2;
+rollAmin        0.1;
+heaveA          4;
+swayA           2.4;
+Q               2;
+Tp              14;
+Tpn             12;
+dTi             0.06;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
index 26a2e7018f9..35525573d5e 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.22654;
-        rollAmin        0.10472;
-        heaveA          3.79;
-        swayA           2.34;
-        Q               2;
-        Tp              13.93;
-        Tpn             11.93;
-        dTi             0.059;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.22654;
+rollAmin        0.10472;
+heaveA          3.79;
+swayA           2.34;
+Q               2;
+Tp              13.93;
+Tpn             11.93;
+dTi             0.059;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
index cdf917c2f4e..6f0136494eb 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.2;
-        rollAmin        0.1;
-        heaveA          4;
-        swayA           2.4;
-        Q               2;
-        Tp              14;
-        Tpn             12;
-        dTi             0.06;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.2;
+rollAmin        0.1;
+heaveA          4;
+swayA           2.4;
+Q               2;
+Tp              14;
+Tpn             12;
+dTi             0.06;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
index 70672aefe05..9381af397d7 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
@@ -17,17 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction tabulated6DoFMotion;
-    tabulated6DoFMotionCoeffs
-    {
-        CofG            (0 0 0);
-        timeDataFileName "$FOAM_CASE/constant/6DoF.dat";
-    }
-}
+solidBodyMotionFunction tabulated6DoFMotion;
+
+CofG            (0 0 0);
+timeDataFileName "$FOAM_CASE/constant/6DoF.dat";
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
index 1f0d4c253ea..b3647b74e50 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
@@ -17,49 +17,43 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction multiMotion;
+solidBodyMotionFunction multiMotion;
 
-    multiMotionCoeffs
+// Table rotating in z axis
+rotatingTable
+{
+    solidBodyMotionFunction rotatingMotion;
+    rotatingMotionCoeffs
     {
-        // Table rotating in z axis
-        rotatingTable
-        {
-            solidBodyMotionFunction rotatingMotion;
-            rotatingMotionCoeffs
-            {
-                origin          (0 0.1 0);
-                axis            (0 0 1);
-                omega           6.2832; // rad/s
-            }
-        }
-
-        //// Box rotates on rotating table
-        //rotatingBox
-        //{
-        //    solidBodyMotionFunction rotatingMotion;
-        //    rotatingMotionCoeffs
-        //    {
-        //        origin          (0 0 0);
-        //        axis            (1 0 0);
-        //        omega           12.5664; // rad/s
-        //    }
-        //}
+        origin          (0 0.1 0);
+        axis            (0 0 1);
+        omega           6.2832; // rad/s
+    }
+}
 
-        // Tube rocking on rotating table
-        rotatingBox
-        {
-            solidBodyMotionFunction oscillatingRotatingMotion;
-            oscillatingRotatingMotionCoeffs
-            {
-                origin          (0 0 0);
-                omega           40;         // rad/s
-                amplitude       (45 0 0);   // 45 degrees max tilt
-            }
-        }
+//// Box rotates on rotating table
+//rotatingBox
+//{
+//    solidBodyMotionFunction rotatingMotion;
+//    rotatingMotionCoeffs
+//    {
+//        origin          (0 0 0);
+//        axis            (1 0 0);
+//        omega           12.5664; // rad/s
+//    }
+//}
+
+// Tube rocking on rotating table
+rotatingBox
+{
+    solidBodyMotionFunction oscillatingRotatingMotion;
+    oscillatingRotatingMotionCoeffs
+    {
+        origin          (0 0 0);
+        omega           40;         // rad/s
+        amplitude       (45 0 0);   // 45 degrees max tilt
     }
 }
 
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/dynamicMeshDict b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/dynamicMeshDict
deleted file mode 100644
index 0e079209655..00000000000
--- a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/dynamicMeshDict
+++ /dev/null
@@ -1,21 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      dynamicMeshDict;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dynamicFvMesh   staticFvMesh;
-
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/dynamicMeshDict b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/dynamicMeshDict
deleted file mode 100644
index 0e079209655..00000000000
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/dynamicMeshDict
+++ /dev/null
@@ -1,21 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      dynamicMeshDict;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dynamicFvMesh   staticFvMesh;
-
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict
index 7f66500fc76..6bb27702982 100644
--- a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict
@@ -19,27 +19,22 @@ dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ( "libfvMotionSolvers.so" );
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        innerCylinderSmall;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin      (0 0 0);
-        axis        (0 1 0);
-        omega       table
-        (
-            (0    0)
-            (0.01  628)
-            (0.022  628)
-            (0.03  419)
-            (100   419)
-        );
-    }
-}
+cellZone        innerCylinderSmall;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin      (0 0 0);
+axis        (0 1 0);
+omega       table
+(
+    (0    0)
+    (0.01  628)
+    (0.022  628)
+    (0.03  419)
+    (100   419)
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
index d794bdfe9e9..929e69dc79b 100644
--- a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
@@ -19,20 +19,15 @@ dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ( "libfvMotionSolvers.so" );
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotor;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         6.2832; // rad/s
-    }
-}
+cellZone        rotor;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         6.2832; // rad/s
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict b/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict
index c82e2226587..cea075ad716 100644
--- a/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict
+++ b/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict
@@ -16,20 +16,16 @@ FoamFile
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh dynamicMotionSolverFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ("libfvMotionSolvers.so");
 
-solver displacementLaplacian;
-//solver velocityComponentLaplacian z;
+motionSolver    displacementLaplacian;
 
-displacementLaplacianCoeffs
-{
-    // diffusivity  uniform;
-    // diffusivity  directional (1 200 0);
-    // diffusivity  motionDirectional (1 1000 0);
-    // diffusivity  file motionDiffusivity;
-    diffusivity  inverseDistance 1(floatingObjectBottom);
-}
+// diffusivity  uniform;
+// diffusivity  directional (1 200 0);
+// diffusivity  motionDirectional (1 1000 0);
+// diffusivity  file motionDiffusivity;
+diffusivity  inverseDistance 1(floatingObjectBottom);
 
 // ************************************************************************* //
-- 
GitLab


From e4ac3fba7785f60ecefe574e426ed77bc5f20a6f Mon Sep 17 00:00:00 2001
From: Will Bainbridge <http://cfd.direct>
Date: Thu, 20 Apr 2017 10:54:08 +0100
Subject: [PATCH 197/277] SVD: Improved overflow/division protection.

Resolves bug report https://bugs.openfoam.org/view.php?id=2486
---
 src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
index 8b090ff275d..89105de6559 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -156,7 +156,7 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
     {
         if (i < Un-1)
         {
-            if (g != 0)
+            if (g*U_(i, l) != 0)
             {
                 for (label j=l; j<Un; j++)
                 {
@@ -199,7 +199,7 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
             U_(i, j) = 0;
         }
 
-        if (g != 0)
+        if (g*U_(i, i) != 0)
         {
             g = 1.0/g;
 
-- 
GitLab


From e520cb9cccbd319c30855e13a0d521bc7aa9130e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 20 Apr 2017 12:46:50 +0100
Subject: [PATCH 198/277] searchableExtrudedCircle: Relocated to the edgeMesh
 library

Corrected the geometry directory name from "triSurface" to "geometry".

Resolves bug-report https://bugs.openfoam.org/view.php?id=2529
---
 src/edgeMesh/Make/files                       |  2 +-
 .../searchableExtrudedCircle.C                |  0
 .../searchableExtrudedCircle.H                |  2 +-
 src/mesh/blockMesh/Make/files                 |  2 --
 src/meshTools/Make/files                      | 27 +++++++++----------
 .../closedTriSurfaceMesh.C                    |  2 +-
 .../closedTriSurfaceMesh.H                    |  2 +-
 .../searchableBox}/searchableBox.C            |  2 +-
 .../searchableBox}/searchableBox.H            |  2 +-
 .../searchableCylinder}/searchableCylinder.C  |  2 +-
 .../searchableCylinder}/searchableCylinder.H  |  2 +-
 .../searchableDisk}/searchableDisk.C          |  2 +-
 .../searchableDisk}/searchableDisk.H          |  2 +-
 .../searchablePlane}/searchablePlane.C        |  2 +-
 .../searchablePlane}/searchablePlane.H        |  2 +-
 .../searchablePlate}/searchablePlate.C        |  2 +-
 .../searchablePlate}/searchablePlate.H        |  2 +-
 .../searchableSphere}/searchableSphere.C      |  2 +-
 .../searchableSphere}/searchableSphere.H      |  2 +-
 .../searchableSurface/searchableSurface.C     |  2 +-
 .../searchableSurface/searchableSurface.H     |  2 +-
 .../searchableSurfaceCollection.C             |  2 +-
 .../searchableSurfaceCollection.H             |  2 +-
 .../searchableSurfaceWithGaps.C               |  2 +-
 .../searchableSurfaceWithGaps.H               |  2 +-
 .../searchableSurfaces}/searchableSurfaces.C  |  2 +-
 .../searchableSurfaces}/searchableSurfaces.H  |  2 +-
 .../searchableSurfacesQueries.C               |  2 +-
 .../searchableSurfacesQueries.H               |  2 +-
 .../triSurfaceMesh}/triSurfaceMesh.C          |  0
 .../triSurfaceMesh}/triSurfaceMesh.H          |  0
 31 files changed, 39 insertions(+), 42 deletions(-)
 rename src/{mesh/blockMesh => edgeMesh/searchableSurfaces}/searchableExtrudedCircle/searchableExtrudedCircle.C (100%)
 rename src/{mesh/blockMesh => edgeMesh/searchableSurfaces}/searchableExtrudedCircle/searchableExtrudedCircle.H (98%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/closedTriSurfaceMesh}/closedTriSurfaceMesh.C (96%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/closedTriSurfaceMesh}/closedTriSurfaceMesh.H (97%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableBox}/searchableBox.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableBox}/searchableBox.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableCylinder}/searchableCylinder.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableCylinder}/searchableCylinder.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableDisk}/searchableDisk.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableDisk}/searchableDisk.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchablePlane}/searchablePlane.C (98%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchablePlane}/searchablePlane.H (98%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchablePlate}/searchablePlate.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchablePlate}/searchablePlate.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSphere}/searchableSphere.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSphere}/searchableSphere.H (99%)
 rename src/meshTools/{ => searchableSurfaces}/searchableSurface/searchableSurface.C (97%)
 rename src/meshTools/{ => searchableSurfaces}/searchableSurface/searchableSurface.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfaceCollection}/searchableSurfaceCollection.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfaceCollection}/searchableSurfaceCollection.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfaceWithGaps}/searchableSurfaceWithGaps.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfaceWithGaps}/searchableSurfaceWithGaps.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfaces}/searchableSurfaces.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfaces}/searchableSurfaces.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfacesQueries}/searchableSurfacesQueries.C (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/searchableSurfacesQueries}/searchableSurfacesQueries.H (99%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/triSurfaceMesh}/triSurfaceMesh.C (100%)
 rename src/meshTools/{searchableSurface => searchableSurfaces/triSurfaceMesh}/triSurfaceMesh.H (100%)

diff --git a/src/edgeMesh/Make/files b/src/edgeMesh/Make/files
index 0438dd204ec..648ffed01ac 100644
--- a/src/edgeMesh/Make/files
+++ b/src/edgeMesh/Make/files
@@ -42,6 +42,6 @@ efm = $(eem)/extendedFeatureEdgeMesh
 
 $(efm)/extendedFeatureEdgeMesh.C
 
-
+searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
 
 LIB = $(FOAM_LIBBIN)/libedgeMesh
diff --git a/src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.C b/src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
similarity index 100%
rename from src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.C
rename to src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
diff --git a/src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.H b/src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
similarity index 98%
rename from src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.H
rename to src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
index 864638dbc17..83f537ab659 100644
--- a/src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.H
+++ b/src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/mesh/blockMesh/Make/files b/src/mesh/blockMesh/Make/files
index f63aed39365..c909f14b8fa 100644
--- a/src/mesh/blockMesh/Make/files
+++ b/src/mesh/blockMesh/Make/files
@@ -38,6 +38,4 @@ blockMesh/blockMeshMergeFast.C
 
 blockMeshTools/blockMeshTools.C
 
-searchableExtrudedCircle/searchableExtrudedCircle.C
-
 LIB = $(FOAM_LIBBIN)/libblockMesh
diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files
index 0c1b794f7c6..a4ae8ef58fe 100644
--- a/src/meshTools/Make/files
+++ b/src/meshTools/Make/files
@@ -61,20 +61,19 @@ indexedOctree/treeDataPoint.C
 indexedOctree/treeDataPrimitivePatchName.C
 indexedOctree/treeDataTriSurface.C
 
-searchableSurface = searchableSurface
-$(searchableSurface)/searchableBox.C
-$(searchableSurface)/searchableCylinder.C
-$(searchableSurface)/searchableDisk.C
-$(searchableSurface)/searchablePlane.C
-$(searchableSurface)/searchablePlate.C
-$(searchableSurface)/searchableSphere.C
-$(searchableSurface)/searchableSurface.C
-$(searchableSurface)/searchableSurfaceCollection.C
-$(searchableSurface)/searchableSurfaces.C
-$(searchableSurface)/searchableSurfacesQueries.C
-$(searchableSurface)/searchableSurfaceWithGaps.C
-$(searchableSurface)/triSurfaceMesh.C
-$(searchableSurface)/closedTriSurfaceMesh.C
+searchableSurfaces/searchableSurface/searchableSurface.C
+searchableSurfaces/searchableBox/searchableBox.C
+searchableSurfaces/searchableCylinder/searchableCylinder.C
+searchableSurfaces/searchableDisk/searchableDisk.C
+searchableSurfaces/searchablePlane/searchablePlane.C
+searchableSurfaces/searchablePlate/searchablePlate.C
+searchableSurfaces/searchableSphere/searchableSphere.C
+searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
+searchableSurfaces/searchableSurfaces/searchableSurfaces.C
+searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
+searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
+searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
+searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
 
 topoSets = sets/topoSets
 $(topoSets)/cellSet.C
diff --git a/src/meshTools/searchableSurface/closedTriSurfaceMesh.C b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
similarity index 96%
rename from src/meshTools/searchableSurface/closedTriSurfaceMesh.C
rename to src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
index 04e07f0af46..b5ea3d9ec72 100644
--- a/src/meshTools/searchableSurface/closedTriSurfaceMesh.C
+++ b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/closedTriSurfaceMesh.H b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.H
similarity index 97%
rename from src/meshTools/searchableSurface/closedTriSurfaceMesh.H
rename to src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.H
index 845d6fa6cce..8212f906c4b 100644
--- a/src/meshTools/searchableSurface/closedTriSurfaceMesh.H
+++ b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableBox.C b/src/meshTools/searchableSurfaces/searchableBox/searchableBox.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableBox.C
rename to src/meshTools/searchableSurfaces/searchableBox/searchableBox.C
index dfe684bb4da..6514c735f71 100644
--- a/src/meshTools/searchableSurface/searchableBox.C
+++ b/src/meshTools/searchableSurfaces/searchableBox/searchableBox.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableBox.H b/src/meshTools/searchableSurfaces/searchableBox/searchableBox.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableBox.H
rename to src/meshTools/searchableSurfaces/searchableBox/searchableBox.H
index 9162e253c5b..3ee7f9a1df4 100644
--- a/src/meshTools/searchableSurface/searchableBox.H
+++ b/src/meshTools/searchableSurfaces/searchableBox/searchableBox.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableCylinder.C b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableCylinder.C
rename to src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.C
index c158e32b85c..6ffd74f8ca0 100644
--- a/src/meshTools/searchableSurface/searchableCylinder.C
+++ b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableCylinder.H b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableCylinder.H
rename to src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.H
index 2c1508d9d2e..c7d4ae93c09 100644
--- a/src/meshTools/searchableSurface/searchableCylinder.H
+++ b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableDisk.C b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableDisk.C
rename to src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.C
index a62604c2594..0ed845d2e5d 100644
--- a/src/meshTools/searchableSurface/searchableDisk.C
+++ b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableDisk.H b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableDisk.H
rename to src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.H
index 8e6bee01b2b..5cebb1cede5 100644
--- a/src/meshTools/searchableSurface/searchableDisk.H
+++ b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlane.C b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.C
similarity index 98%
rename from src/meshTools/searchableSurface/searchablePlane.C
rename to src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.C
index 81cf1f98cd4..a5e7b0430d1 100644
--- a/src/meshTools/searchableSurface/searchablePlane.C
+++ b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlane.H b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.H
similarity index 98%
rename from src/meshTools/searchableSurface/searchablePlane.H
rename to src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.H
index 3e15a8e34c1..0e782a0198d 100644
--- a/src/meshTools/searchableSurface/searchablePlane.H
+++ b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlate.C b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchablePlate.C
rename to src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.C
index 6ae652d1b45..650bb1f3e82 100644
--- a/src/meshTools/searchableSurface/searchablePlate.C
+++ b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlate.H b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchablePlate.H
rename to src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.H
index 48d270987ff..944179e0cb9 100644
--- a/src/meshTools/searchableSurface/searchablePlate.H
+++ b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSphere.C b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSphere.C
rename to src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.C
index 3db3e7c80a4..512edb07402 100644
--- a/src/meshTools/searchableSurface/searchableSphere.C
+++ b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSphere.H b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSphere.H
rename to src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.H
index 4096d2f4606..1346df359b6 100644
--- a/src/meshTools/searchableSurface/searchableSphere.H
+++ b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurface.C b/src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.C
similarity index 97%
rename from src/meshTools/searchableSurface/searchableSurface.C
rename to src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.C
index 0f5fe77decb..41f490c3e5d 100644
--- a/src/meshTools/searchableSurface/searchableSurface.C
+++ b/src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurface.H b/src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurface.H
rename to src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.H
index 9e6321f9e05..3be73b3d12c 100644
--- a/src/meshTools/searchableSurface/searchableSurface.H
+++ b/src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceCollection.C b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceCollection.C
rename to src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
index e85200a8b02..04ee1c3bb2f 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceCollection.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceCollection.H b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceCollection.H
rename to src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.H
index 6026ebc87cd..88024e2db00 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceCollection.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.C b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceWithGaps.C
rename to src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
index 9371c32757b..7af6d6c8e8f 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.H b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceWithGaps.H
rename to src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.H
index 13b0b13af54..fdfedc94cca 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaces.C b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaces.C
rename to src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.C
index 6800034d09d..0e2ad110917 100644
--- a/src/meshTools/searchableSurface/searchableSurfaces.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaces.H b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaces.H
rename to src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.H
index 4efd019ebc9..395e31ae034 100644
--- a/src/meshTools/searchableSurface/searchableSurfaces.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfacesQueries.C b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfacesQueries.C
rename to src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
index 818ff664880..3e49335d452 100644
--- a/src/meshTools/searchableSurface/searchableSurfacesQueries.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfacesQueries.H b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfacesQueries.H
rename to src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.H
index 819f4303e47..98a5a664a78 100644
--- a/src/meshTools/searchableSurface/searchableSurfacesQueries.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.C b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
similarity index 100%
rename from src/meshTools/searchableSurface/triSurfaceMesh.C
rename to src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.H b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H
similarity index 100%
rename from src/meshTools/searchableSurface/triSurfaceMesh.H
rename to src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H
-- 
GitLab


From 3b2ab88ffc8857fe38cdbf81458a145683d76274 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 20 Apr 2017 12:51:23 +0100
Subject: [PATCH 199/277] tutorials/mesh/blockMesh/pipe: Corrected
 constant/triSurface -> constant/geometry

---
 .../blockMesh/pipe/constant/{triSurface => geometry}/curve.obj    | 0
 .../blockMesh/pipe/constant/{triSurface => geometry}/curve2.vtk   | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename tutorials/mesh/blockMesh/pipe/constant/{triSurface => geometry}/curve.obj (100%)
 rename tutorials/mesh/blockMesh/pipe/constant/{triSurface => geometry}/curve2.vtk (100%)

diff --git a/tutorials/mesh/blockMesh/pipe/constant/triSurface/curve.obj b/tutorials/mesh/blockMesh/pipe/constant/geometry/curve.obj
similarity index 100%
rename from tutorials/mesh/blockMesh/pipe/constant/triSurface/curve.obj
rename to tutorials/mesh/blockMesh/pipe/constant/geometry/curve.obj
diff --git a/tutorials/mesh/blockMesh/pipe/constant/triSurface/curve2.vtk b/tutorials/mesh/blockMesh/pipe/constant/geometry/curve2.vtk
similarity index 100%
rename from tutorials/mesh/blockMesh/pipe/constant/triSurface/curve2.vtk
rename to tutorials/mesh/blockMesh/pipe/constant/geometry/curve2.vtk
-- 
GitLab


From ccc1a89c8bfea880b0d8789c10bb251cfeacac41 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 20 Apr 2017 15:59:34 +0100
Subject: [PATCH 200/277] motionSolver: Changed keyword to select the
 motionSolver type to "motionSolver"

with backward-compatibility so that the previous keyword "solver" is supported.
---
 src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
index 85c8466040d..37dd6f11a6f 100644
--- a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
+++ b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
@@ -104,7 +104,12 @@ Foam::autoPtr<Foam::motionSolver> Foam::motionSolver::New
     const IOdictionary& solverDict
 )
 {
-    const word solverTypeName(solverDict.lookup("motionSolver"));
+    const word solverTypeName
+    (
+        solverDict.found("motionSolver")
+      ? solverDict.lookup("motionSolver")
+      : solverDict.lookup("solver")
+    );
 
     Info<< "Selecting motion solver: " << solverTypeName << endl;
 
-- 
GitLab


From c085c5df257635adce898fde3931b1a798e66ad6 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 21 Apr 2017 10:38:53 +0100
Subject: [PATCH 201/277] Merged the edgeMesh library into the meshTools
 library

---
 .../Make/options                              |  6 +--
 .../cellSizeAndAlignmentGrid/Make/options     |  2 -
 .../conformalVoronoiMesh/Make/options         |  2 -
 .../foamyMesh/foamyHexMesh/Make/options       |  2 -
 .../foamyHexMeshBackgroundMesh/Make/options   |  2 -
 .../foamyHexMeshSurfaceSimplify/Make/options  |  2 -
 .../foamyMesh/foamyQuadMesh/Make/options      |  2 -
 .../generation/snappyHexMesh/Make/options     |  1 -
 .../miscellaneous/foamList/Make/options       |  1 -
 .../surfaceBooleanFeatures/Make/options       |  2 -
 .../surfaceFeatureConvert/Make/options        |  6 +--
 .../surfaceFeatureExtract/Make/options        |  2 -
 .../surfaceLambdaMuSmooth/Make/options        |  4 +-
 src/Allwmake                                  |  1 -
 src/mesh/blockMesh/Make/options               |  2 -
 src/mesh/snappyHexMesh/Make/options           |  2 -
 src/meshTools/Make/files                      | 42 +++++++++++++++++++
 src/{ => meshTools}/edgeMesh/Make/files       |  0
 src/{ => meshTools}/edgeMesh/Make/options     |  0
 src/{ => meshTools}/edgeMesh/edgeMesh.C       |  2 +-
 src/{ => meshTools}/edgeMesh/edgeMesh.H       |  2 +-
 .../edgeMeshFormats/edgeMesh/edgeMeshFormat.C |  2 +-
 .../edgeMeshFormats/edgeMesh/edgeMeshFormat.H |  2 +-
 .../edgeMesh/edgeMeshFormatRunTime.C          |  2 +-
 .../edgeMeshFormats/edgeMeshFormatsCore.C     |  2 +-
 .../edgeMeshFormats/edgeMeshFormatsCore.H     |  2 +-
 .../extendedFeatureEdgeMeshFormat.C           |  2 +-
 .../extendedFeatureEdgeMeshFormat.H           |  2 +-
 .../extendedFeatureEdgeMeshFormatRunTime.C    |  2 +-
 .../edgeMeshFormats/nas/NASedgeFormat.C       |  2 +-
 .../edgeMeshFormats/nas/NASedgeFormat.H       |  2 +-
 .../nas/NASedgeFormatRunTime.C                |  2 +-
 .../edgeMeshFormats/obj/OBJedgeFormat.C       |  2 +-
 .../edgeMeshFormats/obj/OBJedgeFormat.H       |  2 +-
 .../obj/OBJedgeFormatRunTime.C                |  2 +-
 .../edgeMeshFormats/starcd/STARCDedgeFormat.C |  2 +-
 .../edgeMeshFormats/starcd/STARCDedgeFormat.H |  2 +-
 .../starcd/STARCDedgeFormatRunTime.C          |  2 +-
 .../edgeMeshFormats/vtk/VTKedgeFormat.C       |  2 +-
 .../edgeMeshFormats/vtk/VTKedgeFormat.H       |  2 +-
 .../vtk/VTKedgeFormatRunTime.C                |  2 +-
 src/{ => meshTools}/edgeMesh/edgeMeshI.H      |  2 +-
 src/{ => meshTools}/edgeMesh/edgeMeshIO.C     |  2 +-
 src/{ => meshTools}/edgeMesh/edgeMeshNew.C    |  2 +-
 .../extendedEdgeMesh/extendedEdgeMesh.C       |  2 +-
 .../extendedEdgeMesh/extendedEdgeMesh.H       |  2 +-
 .../extendedEdgeMeshFormat.C                  |  2 +-
 .../extendedEdgeMeshFormat.H                  |  2 +-
 .../extendedEdgeMeshFormatRunTime.C           |  2 +-
 .../extendedEdgeMesh/extendedEdgeMeshI.H      |  2 +-
 .../extendedEdgeMesh/extendedEdgeMeshNew.C    |  2 +-
 .../extendedEdgeMeshTemplates.C               |  2 +-
 .../extendedFeatureEdgeMesh.C                 |  2 +-
 .../extendedFeatureEdgeMesh.H                 |  2 +-
 .../extendedFeatureEdgeMeshI.H                |  2 +-
 .../extendedFeatureEdgeMeshTemplates.C        |  2 +-
 .../featureEdgeMesh/featureEdgeMesh.C         |  2 +-
 .../featureEdgeMesh/featureEdgeMesh.H         |  2 +-
 .../searchableExtrudedCircle.C                |  0
 .../searchableExtrudedCircle.H                |  0
 60 files changed, 86 insertions(+), 73 deletions(-)
 rename src/{ => meshTools}/edgeMesh/Make/files (100%)
 rename src/{ => meshTools}/edgeMesh/Make/options (100%)
 rename src/{ => meshTools}/edgeMesh/edgeMesh.C (99%)
 rename src/{ => meshTools}/edgeMesh/edgeMesh.H (99%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C (96%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C (96%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H (97%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C (95%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C (99%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H (97%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C (96%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C (99%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C (96%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C (99%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C (96%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C (96%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshI.H (97%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshIO.C (98%)
 rename src/{ => meshTools}/edgeMesh/edgeMeshNew.C (97%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C (99%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H (99%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C (97%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H (97%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C (95%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H (98%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C (97%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C (99%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C (99%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H (98%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H (98%)
 rename src/{ => meshTools}/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C (99%)
 rename src/{ => meshTools}/edgeMesh/featureEdgeMesh/featureEdgeMesh.C (97%)
 rename src/{ => meshTools}/edgeMesh/featureEdgeMesh/featureEdgeMesh.H (97%)
 rename src/{edgeMesh => meshTools}/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C (100%)
 rename src/{edgeMesh => meshTools}/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H (100%)

diff --git a/applications/test/findSphereFeatureEdges-octree/Make/options b/applications/test/findSphereFeatureEdges-octree/Make/options
index 60690345147..d27c95d033d 100644
--- a/applications/test/findSphereFeatureEdges-octree/Make/options
+++ b/applications/test/findSphereFeatureEdges-octree/Make/options
@@ -1,9 +1,7 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
-    -lmeshTools \
-    -ledgeMesh
+    -lmeshTools
diff --git a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
index d3473481fdc..258f5ccd2db 100644
--- a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
@@ -19,7 +19,6 @@ EXE_INC =  \
     -I$(LIB_SRC)/sampling/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I../conformalVoronoiMesh/lnInclude
 
@@ -32,7 +31,6 @@ EXE_LIBS =  \
     -lmeshTools \
     -ldecompositionMethods \
     -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
-    -ledgeMesh \
     -ltriSurface \
     -ldynamicMesh \
     -lsampling \
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
index c935426f090..62761481738 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
@@ -16,7 +16,6 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
@@ -28,7 +27,6 @@ EXE_INC = \
 LIB_LIBS = \
     ${CGAL_LIBS} \
     -lmeshTools \
-    -ledgeMesh \
     -lfileFormats \
     -ltriSurface \
     -ldynamicMesh \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
index 841143804ef..ecf9cc2b3b0 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
@@ -17,7 +17,6 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
@@ -31,7 +30,6 @@ EXE_LIBS = \
     -lmeshTools \
     -ldecompositionMethods \
     -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
-    -ledgeMesh \
     -lfileFormats \
     -ltriSurface \
     -ldynamicMesh \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
index dae842a311f..701bea14b73 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
@@ -9,7 +9,6 @@ EXE_INC = \
     ${CGAL_INC} \
     -I../conformalVoronoiMesh/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
@@ -26,7 +25,6 @@ EXE_LIBS = \
     -lgmp \
     -lconformalVoronoiMesh \
     -ldecompositionMethods /* -L$(FOAM_LIBBIN)/dummy -lscotchDecomp */ \
-    -ledgeMesh \
     -ltriSurface \
     -lmeshTools \
     -lfileFormats \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
index 5cb1f8676dd..c0eac652387 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
@@ -8,7 +8,6 @@ EXE_INC = \
     /* -IMarchingCubes */ \
     -I$(FASTDUALOCTREE_SRC_PATH) \
     -I../conformalVoronoiMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
@@ -22,7 +21,6 @@ EXE_LIBS = \
     -lGL \
     -lconformalVoronoiMesh \
     -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lscotchDecomp \
-    -ledgeMesh \
     -lfileFormats \
     -ltriSurface \
     -lmeshTools \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
index ede07dde711..37dda185693 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
@@ -15,7 +15,6 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/mesh/extrudeModel/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude \
@@ -31,7 +30,6 @@ EXE_LIBS = \
     -lconformalVoronoiMesh \
     -lmeshTools \
     -lsurfMesh \
-    -ledgeMesh \
     -ltriSurface \
     -ldynamicMesh \
     -ldecompositionMethods \
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/Make/options b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
index fb480c5221e..b50c6396e8d 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
@@ -7,7 +7,6 @@ EXE_INC = \
     -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
 
 EXE_LIBS = \
diff --git a/applications/utilities/miscellaneous/foamList/Make/options b/applications/utilities/miscellaneous/foamList/Make/options
index 1835b223974..96e74a80ac1 100644
--- a/applications/utilities/miscellaneous/foamList/Make/options
+++ b/applications/utilities/miscellaneous/foamList/Make/options
@@ -28,7 +28,6 @@ EXE_LIBS = \
     -lDSMC \
     -ldynamicFvMesh \
     -ldynamicMesh \
-    -ledgeMesh \
     -lengine \
     -lextrudeModel \
     -lfieldFunctionObjects \
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/Make/options b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
index 727dbd1c2b0..70a8e71089e 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/Make/options
+++ b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
@@ -1,9 +1,7 @@
 EXE_INC = \
     -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -ltriSurface \
-    -ledgeMesh \
     -lmeshTools
diff --git a/applications/utilities/surface/surfaceFeatureConvert/Make/options b/applications/utilities/surface/surfaceFeatureConvert/Make/options
index e71834f99e7..54c035b8f55 100644
--- a/applications/utilities/surface/surfaceFeatureConvert/Make/options
+++ b/applications/utilities/surface/surfaceFeatureConvert/Make/options
@@ -1,7 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ledgeMesh
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceFeatureExtract/Make/options b/applications/utilities/surface/surfaceFeatureExtract/Make/options
index b733d5fde96..e96fbb36875 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/Make/options
+++ b/applications/utilities/surface/surfaceFeatureExtract/Make/options
@@ -1,13 +1,11 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
     -lmeshTools \
-    -ledgeMesh \
     -ltriSurface \
     -lsampling
diff --git a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
index c35bf55e394..a504dd8617b 100644
--- a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
+++ b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
@@ -1,7 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude
 
 EXE_LIBS = \
-    -ledgeMesh \
     -lsurfMesh
diff --git a/src/Allwmake b/src/Allwmake
index 29d16a15288..0e0ef5692ad 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -32,7 +32,6 @@ wmake $targetType fileFormats
 wmake $targetType surfMesh
 wmake $targetType triSurface
 wmake $targetType meshTools
-wmake $targetType edgeMesh
 
 # Decomposition methods needed by dummyThirdParty
 # (dummy metisDecomp, scotchDecomp etc) needed by e.g. meshTools
diff --git a/src/mesh/blockMesh/Make/options b/src/mesh/blockMesh/Make/options
index 5467dc3ce38..bf6ca71abfb 100644
--- a/src/mesh/blockMesh/Make/options
+++ b/src/mesh/blockMesh/Make/options
@@ -1,11 +1,9 @@
 EXE_INC = \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude
 
 LIB_LIBS = \
     -lmeshTools \
     -lfileFormats \
-    -ledgeMesh \
     -lsurfMesh
diff --git a/src/mesh/snappyHexMesh/Make/options b/src/mesh/snappyHexMesh/Make/options
index d37a26a9dd4..7a33cbc9620 100644
--- a/src/mesh/snappyHexMesh/Make/options
+++ b/src/mesh/snappyHexMesh/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude
 
@@ -15,7 +14,6 @@ LIB_LIBS = \
     -llagrangian \
     -lmeshTools \
     -lfileFormats \
-    -ledgeMesh \
     -lsurfMesh \
     -ltriSurface \
     -ldistributed
diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files
index a4ae8ef58fe..fdeaa2eabad 100644
--- a/src/meshTools/Make/files
+++ b/src/meshTools/Make/files
@@ -1,3 +1,44 @@
+em = edgeMesh
+
+$(em)/edgeMesh.C
+$(em)/edgeMeshIO.C
+$(em)/edgeMeshNew.C
+
+edgeMeshFormats = $(em)/edgeMeshFormats
+$(edgeMeshFormats)/edgeMeshFormatsCore.C
+
+$(edgeMeshFormats)/edgeMesh/edgeMeshFormat.C
+$(edgeMeshFormats)/edgeMesh/edgeMeshFormatRunTime.C
+
+$(edgeMeshFormats)/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
+$(edgeMeshFormats)/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
+
+$(edgeMeshFormats)/nas/NASedgeFormat.C
+$(edgeMeshFormats)/nas/NASedgeFormatRunTime.C
+
+$(edgeMeshFormats)/obj/OBJedgeFormat.C
+$(edgeMeshFormats)/obj/OBJedgeFormatRunTime.C
+
+$(edgeMeshFormats)/starcd/STARCDedgeFormat.C
+$(edgeMeshFormats)/starcd/STARCDedgeFormatRunTime.C
+
+$(edgeMeshFormats)/vtk/VTKedgeFormat.C
+$(edgeMeshFormats)/vtk/VTKedgeFormatRunTime.C
+
+$(em)/featureEdgeMesh/featureEdgeMesh.C
+
+eem = $(em)/extendedEdgeMesh
+
+$(eem)/extendedEdgeMesh.C
+$(eem)/extendedEdgeMeshNew.C
+
+$(eem)/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
+$(eem)/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
+
+efm = $(eem)/extendedFeatureEdgeMesh
+
+$(efm)/extendedFeatureEdgeMesh.C
+
 cellClassification/cellClassification.C
 cellClassification/cellInfo.C
 
@@ -74,6 +115,7 @@ searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
 searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
 searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
 searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
+searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
 
 topoSets = sets/topoSets
 $(topoSets)/cellSet.C
diff --git a/src/edgeMesh/Make/files b/src/meshTools/edgeMesh/Make/files
similarity index 100%
rename from src/edgeMesh/Make/files
rename to src/meshTools/edgeMesh/Make/files
diff --git a/src/edgeMesh/Make/options b/src/meshTools/edgeMesh/Make/options
similarity index 100%
rename from src/edgeMesh/Make/options
rename to src/meshTools/edgeMesh/Make/options
diff --git a/src/edgeMesh/edgeMesh.C b/src/meshTools/edgeMesh/edgeMesh.C
similarity index 99%
rename from src/edgeMesh/edgeMesh.C
rename to src/meshTools/edgeMesh/edgeMesh.C
index 937a8a373c6..4188e738ec6 100644
--- a/src/edgeMesh/edgeMesh.C
+++ b/src/meshTools/edgeMesh/edgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMesh.H b/src/meshTools/edgeMesh/edgeMesh.H
similarity index 99%
rename from src/edgeMesh/edgeMesh.H
rename to src/meshTools/edgeMesh/edgeMesh.H
index 0af0332ebce..343a27b0f1c 100644
--- a/src/edgeMesh/edgeMesh.H
+++ b/src/meshTools/edgeMesh/edgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
index e07e3f31853..19b4732f2c0 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
index 99ea8c5434c..8f9d1a6bf6c 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
index 2f191be35ea..b552638ae83 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
index 9cd5e35fda2..45ea4229c70 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
index 0f5bbb83ce8..fa68510084f 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
index 3c72541702c..a25999ecb90 100644
--- a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
similarity index 97%
rename from src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
index cabc9beec0c..3582b2f59f1 100644
--- a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
similarity index 95%
rename from src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
index 958f99facb7..5d64582de66 100644
--- a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
similarity index 99%
rename from src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
index 643c161cb17..6eaab199658 100644
--- a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
similarity index 97%
rename from src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
index 4ed631bc427..03f403f8abf 100644
--- a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
index c2932e179d3..018934d33d3 100644
--- a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
similarity index 99%
rename from src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
index af52b56c59f..f6730baf129 100644
--- a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
index 11affeddb0e..baa87877315 100644
--- a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
index 5bda1bb6b42..ef56e7525d5 100644
--- a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
similarity index 99%
rename from src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
index 0c270cd0067..6ee31171468 100644
--- a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
index dd88579e959..fe30fa44acc 100644
--- a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
index 63f690609ba..c03bb42293c 100644
--- a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
index fe18c897f49..4accc8044ee 100644
--- a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
index 2285cf61a0f..b85e134d757 100644
--- a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
index 35720040266..891804b4eeb 100644
--- a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshI.H b/src/meshTools/edgeMesh/edgeMeshI.H
similarity index 97%
rename from src/edgeMesh/edgeMeshI.H
rename to src/meshTools/edgeMesh/edgeMeshI.H
index 5ccff223214..b5034362de1 100644
--- a/src/edgeMesh/edgeMeshI.H
+++ b/src/meshTools/edgeMesh/edgeMeshI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshIO.C b/src/meshTools/edgeMesh/edgeMeshIO.C
similarity index 98%
rename from src/edgeMesh/edgeMeshIO.C
rename to src/meshTools/edgeMesh/edgeMeshIO.C
index 6b4dd6f3820..0ae4b9b4694 100644
--- a/src/edgeMesh/edgeMeshIO.C
+++ b/src/meshTools/edgeMesh/edgeMeshIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshNew.C b/src/meshTools/edgeMesh/edgeMeshNew.C
similarity index 97%
rename from src/edgeMesh/edgeMeshNew.C
rename to src/meshTools/edgeMesh/edgeMeshNew.C
index 8258da4b57b..3ceb973f447 100644
--- a/src/edgeMesh/edgeMeshNew.C
+++ b/src/meshTools/edgeMesh/edgeMeshNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
index 19d9e903f62..120d2c5e6ee 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
index 414c312928d..6c324b87a97 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
similarity index 97%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
index a046a1221db..b737724a92b 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
similarity index 97%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
index 0bd618e0731..8c3e2d95bc4 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
similarity index 95%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
index a98e8ecbe17..e35744a557a 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
similarity index 98%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
index 098f7e399e7..8067971c039 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
similarity index 97%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
index ad0c52966ec..3f0732a559c 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
index 1f2051a3365..3cb86ec3a62 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
index 1ef5765dd3b..a88df6b4478 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
similarity index 98%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
index 3026f15b4e1..602cf4326b2 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
similarity index 98%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
index 55cc8ffa627..6eead24de36 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
index 8aba7d0b595..5b7eec3c5af 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
similarity index 97%
rename from src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
rename to src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
index f34c29745f3..c1e013eaf85 100644
--- a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
+++ b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
similarity index 97%
rename from src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
rename to src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
index 2792abf670b..02ebc126a34 100644
--- a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
+++ b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C b/src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
similarity index 100%
rename from src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
rename to src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
diff --git a/src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H b/src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
similarity index 100%
rename from src/edgeMesh/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
rename to src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
-- 
GitLab


From d548903826bd15d6fdd8e2d930a8aa784f592e9a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 21 Apr 2017 16:50:20 +0100
Subject: [PATCH 202/277] surfaceLambdaMuSmooth: Added meshTools to link

---
 .../utilities/surface/surfaceLambdaMuSmooth/Make/options    | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
index a504dd8617b..5ae72ebd31b 100644
--- a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
+++ b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
@@ -1,5 +1,7 @@
 EXE_INC = \
-    -I$(LIB_SRC)/surfMesh/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lsurfMesh
+    -lsurfMesh \
+    -lmeshTools
-- 
GitLab


From 7ee39746ff2870f88558a6af251179d0a834c24e Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 21 Apr 2017 18:22:46 +0100
Subject: [PATCH 203/277] turbulenceModels: The "<type>Coeffs" sub-dictionary
 is now optional

---
 .../turbulenceModels/LES/LESModel/LESModel.C  | 11 ++++------
 .../LES/LESdeltas/IDDESDelta/IDDESDelta.C     | 10 +++++++---
 .../LES/LESdeltas/PrandtlDelta/PrandtlDelta.C | 12 +++++++----
 .../cubeRootVolDelta/cubeRootVolDelta.C       | 10 +++++++---
 .../LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C   | 10 +++++++---
 .../LES/LESdeltas/smoothDelta/smoothDelta.C   | 11 ++++++----
 .../LESdeltas/vanDriestDelta/vanDriestDelta.C | 20 +++++++++++++------
 .../anisotropicFilter/anisotropicFilter.C     |  9 ++++++---
 .../LESfilters/laplaceFilter/laplaceFilter.C  |  9 ++++++---
 .../turbulenceModels/RAS/RASModel/RASModel.C  | 11 ++++------
 .../laminar/laminarModel/laminarModel.C       | 15 ++++----------
 11 files changed, 74 insertions(+), 54 deletions(-)

diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C b/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C
index c5cc7ebdb70..0ff62667376 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,7 @@ void Foam::LESModel<BasicTurbulenceModel>::printCoeffs(const word& type)
 {
     if (printCoeffs_)
     {
-        Info<< type << "Coeffs" << coeffDict_ << endl;
+        Info<< coeffDict_.dictName() << coeffDict_ << endl;
     }
 }
 
@@ -67,7 +67,7 @@ Foam::LESModel<BasicTurbulenceModel>::LESModel
     LESDict_(this->subOrEmptyDict("LES")),
     turbulence_(LESDict_.lookup("turbulence")),
     printCoeffs_(LESDict_.lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(LESDict_.subOrEmptyDict(type + "Coeffs")),
+    coeffDict_(LESDict_.optionalSubDict(type + "Coeffs")),
 
     kMin_
     (
@@ -183,10 +183,7 @@ bool Foam::LESModel<BasicTurbulenceModel>::read()
         LESDict_ <<= this->subDict("LES");
         LESDict_.lookup("turbulence") >> turbulence_;
 
-        if (const dictionary* dictPtr = LESDict_.subDictPtr(type() + "Coeffs"))
-        {
-            coeffDict_ <<= *dictPtr;
-        }
+        coeffDict_ <<= LESDict_.optionalSubDict(type() + "Coeffs");
 
         delta_().read(LESDict_);
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C
index af812a6f464..8c7396c14fc 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -148,7 +148,11 @@ Foam::LESModels::IDDESDelta::IDDESDelta
     ),
     Cw_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cw", 0.15)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Cw",
+            0.15
+        )
     )
 {
     calcDelta();
@@ -159,7 +163,7 @@ Foam::LESModels::IDDESDelta::IDDESDelta
 
 void Foam::LESModels::IDDESDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     coeffsDict.readIfPresent<scalar>("Cw", Cw_);
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C
index d2b9f762b4a..f09e9c240bb 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,13 +67,17 @@ Foam::LESModels::PrandtlDelta::PrandtlDelta
         (
             name,
             turbulence,
-            dict.subDict(type() + "Coeffs")
+            dict.optionalSubDict(type() + "Coeffs")
         )
     ),
     kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)),
     Cdelta_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cdelta", 0.158)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Cdelta",
+            0.158
+        )
     )
 {
     calcDelta();
@@ -84,7 +88,7 @@ Foam::LESModels::PrandtlDelta::PrandtlDelta
 
 void Foam::LESModels::PrandtlDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffDict(dict.optionalSubDict(type() + "Coeffs"));
 
     geometricDelta_().read(coeffDict);
     dict.readIfPresent<scalar>("kappa", kappa_);
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C
index 053c365a2fa..ce13cbad1fb 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -91,7 +91,11 @@ Foam::LESModels::cubeRootVolDelta::cubeRootVolDelta
     LESdelta(name, turbulence),
     deltaCoeff_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("deltaCoeff", 1)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "deltaCoeff",
+            1
+        )
     )
 {
     calcDelta();
@@ -102,7 +106,7 @@ Foam::LESModels::cubeRootVolDelta::cubeRootVolDelta
 
 void Foam::LESModels::cubeRootVolDelta::read(const dictionary& dict)
 {
-    dict.subDict(type() + "Coeffs").readIfPresent<scalar>
+    dict.optionalSubDict(type() + "Coeffs").readIfPresent<scalar>
     (
         "deltaCoeff",
         deltaCoeff_
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C
index 2163a3201c5..ab6dddafcc4 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -102,7 +102,11 @@ Foam::LESModels::maxDeltaxyz::maxDeltaxyz
     LESdelta(name, turbulence),
     deltaCoeff_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("deltaCoeff", 1)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "deltaCoeff",
+            1
+        )
     )
 {
     calcDelta();
@@ -113,7 +117,7 @@ Foam::LESModels::maxDeltaxyz::maxDeltaxyz
 
 void Foam::LESModels::maxDeltaxyz::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     coeffsDict.readIfPresent<scalar>("deltaCoeff", deltaCoeff_);
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
index c8a95cc048c..306ea663b00 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -153,12 +153,15 @@ Foam::LESModels::smoothDelta::smoothDelta
         (
             "geometricDelta",
             turbulence,
-            dict.subDict(type() + "Coeffs")
+            dict.optionalSubDict(type() + "Coeffs")
         )
     ),
     maxDeltaRatio_
     (
-        readScalar(dict.subDict(type() + "Coeffs").lookup("maxDeltaRatio"))
+        readScalar
+        (
+            dict.optionalSubDict(type() + "Coeffs").lookup("maxDeltaRatio")
+        )
     )
 {
     calcDelta();
@@ -169,7 +172,7 @@ Foam::LESModels::smoothDelta::smoothDelta
 
 void Foam::LESModels::smoothDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     geometricDelta_().read(coeffsDict);
     coeffsDict.lookup("maxDeltaRatio") >> maxDeltaRatio_;
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C
index 97effadd45a..05b1774c2f6 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,21 +108,29 @@ Foam::LESModels::vanDriestDelta::vanDriestDelta
         (
             IOobject::groupName("geometricDelta", turbulence.U().group()),
             turbulence,
-            dict.subDict(type() + "Coeffs")
+            dict.optionalSubDict(type() + "Coeffs")
         )
     ),
     kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)),
     Aplus_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Aplus", 26.0)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Aplus",
+            26.0
+        )
     ),
     Cdelta_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cdelta", 0.158)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Cdelta",
+            0.158
+        )
     ),
     calcInterval_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<label>
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<label>
         (
             "calcInterval",
             1
@@ -137,7 +145,7 @@ Foam::LESModels::vanDriestDelta::vanDriestDelta
 
 void Foam::LESModels::vanDriestDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     geometricDelta_().read(coeffsDict);
     dict.readIfPresent<scalar>("kappa", kappa_);
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C
index 467949de78a..f988138fe3e 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,7 +84,10 @@ Foam::anisotropicFilter::anisotropicFilter
 )
 :
     LESfilter(mesh),
-    widthCoeff_(readScalar(bd.subDict(type() + "Coeffs").lookup("widthCoeff"))),
+    widthCoeff_
+    (
+        readScalar(bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff"))
+    ),
     coeff_
     (
         IOobject
@@ -118,7 +121,7 @@ Foam::anisotropicFilter::anisotropicFilter
 
 void Foam::anisotropicFilter::read(const dictionary& bd)
 {
-    bd.subDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
+    bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C
index 11fea865431..61934975af1 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,10 @@ Foam::laplaceFilter::laplaceFilter(const fvMesh& mesh, scalar widthCoeff)
 Foam::laplaceFilter::laplaceFilter(const fvMesh& mesh, const dictionary& bd)
 :
     LESfilter(mesh),
-    widthCoeff_(readScalar(bd.subDict(type() + "Coeffs").lookup("widthCoeff"))),
+    widthCoeff_
+    (
+        readScalar(bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff"))
+    ),
     coeff_
     (
         IOobject
@@ -86,7 +89,7 @@ Foam::laplaceFilter::laplaceFilter(const fvMesh& mesh, const dictionary& bd)
 
 void Foam::laplaceFilter::read(const dictionary& bd)
 {
-    bd.subDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
+    bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C b/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C
index d95f2bffb3f..cc22f4d64cc 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,7 @@ void Foam::RASModel<BasicTurbulenceModel>::printCoeffs(const word& type)
 {
     if (printCoeffs_)
     {
-        Info<< type << "Coeffs" << coeffDict_ << endl;
+        Info<< coeffDict_.dictName() << coeffDict_ << endl;
     }
 }
 
@@ -67,7 +67,7 @@ Foam::RASModel<BasicTurbulenceModel>::RASModel
     RASDict_(this->subOrEmptyDict("RAS")),
     turbulence_(RASDict_.lookup("turbulence")),
     printCoeffs_(RASDict_.lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(RASDict_.subOrEmptyDict(type + "Coeffs")),
+    coeffDict_(RASDict_.optionalSubDict(type + "Coeffs")),
 
     kMin_
     (
@@ -173,10 +173,7 @@ bool Foam::RASModel<BasicTurbulenceModel>::read()
         RASDict_ <<= this->subDict("RAS");
         RASDict_.lookup("turbulence") >> turbulence_;
 
-        if (const dictionary* dictPtr = RASDict_.subDictPtr(type() + "Coeffs"))
-        {
-            coeffDict_ <<= *dictPtr;
-        }
+        coeffDict_ <<= RASDict_.optionalSubDict(type() + "Coeffs");
 
         kMin_.readIfPresent(RASDict_);
         epsilonMin_.readIfPresent(RASDict_);
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
index 0bd0bb49e3a..b91406d464a 100644
--- a/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
+++ b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,7 +33,7 @@ void Foam::laminarModel<BasicTurbulenceModel>::printCoeffs(const word& type)
 {
     if (printCoeffs_)
     {
-        Info<< type << "Coeffs" << coeffDict_ << endl;
+        Info<< coeffDict_.dictName() << coeffDict_ << endl;
     }
 }
 
@@ -67,7 +67,7 @@ Foam::laminarModel<BasicTurbulenceModel>::laminarModel
 
     laminarDict_(this->subOrEmptyDict("laminar")),
     printCoeffs_(laminarDict_.lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(laminarDict_.subOrEmptyDict(type + "Coeffs"))
+    coeffDict_(laminarDict_.optionalSubDict(type + "Coeffs"))
 {
     // Force the construction of the mesh deltaCoeffs which may be needed
     // for the construction of the derived models and BCs
@@ -170,14 +170,7 @@ bool Foam::laminarModel<BasicTurbulenceModel>::read()
     {
         laminarDict_ <<= this->subDict("laminar");
 
-        if
-        (
-            const dictionary* dictPtr =
-                laminarDict_.subDictPtr(type() + "Coeffs")
-        )
-        {
-            coeffDict_ <<= *dictPtr;
-        }
+        coeffDict_ <<= laminarDict_.optionalSubDict(type() + "Coeffs");
 
         return true;
     }
-- 
GitLab


From 976ad36776844a8b87ab215c52f3704c6096dca7 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 24 Apr 2017 10:34:05 +0100
Subject: [PATCH 204/277] ENH: Initial attempt to track oriented surface fields

---
 .../rhoCentralDyMFoam/rhoCentralDyMFoam.C     |   3 +
 .../rhoCentralFoam/rhoCentralFoam.C           |   2 +
 .../simpleReactingParcelFoam.C                |   1 -
 .../multiphase/interFoam/alphaEqnSubCycle.H   |   2 +
 src/OpenFOAM/Make/files                       |   2 +
 .../DimensionedField/DimensionedField.C       |  42 +-
 .../DimensionedField/DimensionedField.H       |  14 +-
 .../DimensionedFieldFunctionsM.C              |  44 +-
 .../DimensionedField/DimensionedFieldI.H      |  22 +-
 .../DimensionedField/DimensionedFieldIO.C     |  19 +-
 .../GeometricField/GeometricField.C           |   5 +-
 .../GeometricField/GeometricFieldFunctions.C  |  11 +
 .../GeometricField/GeometricFieldFunctionsM.C |   9 +
 src/OpenFOAM/orientedType/orientedType.C      | 498 ++++++++++++++++++
 src/OpenFOAM/orientedType/orientedType.H      | 168 ++++++
 .../gaussLaplacianScheme.C                    |   1 +
 .../snGradSchemes/snGradScheme/snGradScheme.C |   1 +
 .../fvMatrices/fvMatrix/fvMatrix.C            |   2 +
 src/finiteVolume/fvMesh/fvMeshGeometry.C      |   5 +
 .../surfaceInterpolation.C                    |  23 +-
 .../surfaceInterpolationScheme.C              |   5 +
 21 files changed, 836 insertions(+), 43 deletions(-)
 create mode 100644 src/OpenFOAM/orientedType/orientedType.C
 create mode 100644 src/OpenFOAM/orientedType/orientedType.H

diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
index 96413e02017..4a58e5d3fce 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
@@ -120,11 +120,13 @@ int main(int argc, char *argv[])
             "cSf_pos",
             interpolate(c, pos, T.name())*mesh.magSf()
         );
+cSf_pos.oriented().oriented() = true;
         surfaceScalarField cSf_neg
         (
             "cSf_neg",
             interpolate(c, neg, T.name())*mesh.magSf()
         );
+cSf_neg.oriented().oriented() = true;
 
         surfaceScalarField ap
         (
@@ -269,4 +271,5 @@ int main(int argc, char *argv[])
     return 0;
 }
 
+
 // ************************************************************************* //
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
index 65ab9d2db3e..b212fd30ea8 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
@@ -101,11 +101,13 @@ int main(int argc, char *argv[])
             "cSf_pos",
             interpolate(c, pos, T.name())*mesh.magSf()
         );
+cSf_pos.oriented().oriented() = true;
         surfaceScalarField cSf_neg
         (
             "cSf_neg",
             interpolate(c, neg, T.name())*mesh.magSf()
         );
+cSf_neg.oriented().oriented() = true;
 
         surfaceScalarField ap
         (
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
index b3504da91a5..bbec4a41ab9 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
@@ -38,7 +38,6 @@ Description
 #include "basicReactingMultiphaseCloud.H"
 #include "rhoCombustionModel.H"
 #include "radiationModel.H"
-#include "IOporosityModelList.H"
 #include "fvOptions.H"
 #include "SLGThermo.H"
 #include "simpleControl.H"
diff --git a/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H
index 772de0b97af..dd1e69b2cc6 100644
--- a/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H
+++ b/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H
@@ -13,6 +13,8 @@ if (nAlphaSubCycles > 1)
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
 
+    rhoPhiSum.oriented().oriented() = true;
+
     tmp<volScalarField> trSubDeltaT;
 
     if (LTS)
diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index b5c58d17291..8c674c627b8 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -265,6 +265,8 @@ dimensionedTypes/dimensionedSphericalTensor/dimensionedSphericalTensor.C
 dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.C
 dimensionedTypes/dimensionedTensor/dimensionedTensor.C
 
+orientedType/orientedType.C
+
 matrices/solution/solution.C
 
 scalarMatrices = matrices/scalarMatrices
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
index 166f7941faa..9901226ba23 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
@@ -59,7 +59,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(io),
     Field<Type>(field),
     mesh_(mesh),
-    dimensions_(dims)
+    dimensions_(dims),
+    oriented_(false)
 {
     if (field.size() && field.size() != GeoMesh::size(mesh))
     {
@@ -84,7 +85,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(io),
     Field<Type>(GeoMesh::size(mesh)),
     mesh_(mesh),
-    dimensions_(dims)
+    dimensions_(dims),
+    oriented_(false)
 {
     if (checkIOFlags)
     {
@@ -105,7 +107,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(io),
     Field<Type>(GeoMesh::size(mesh), dt.value()),
     mesh_(mesh),
-    dimensions_(dt.dimensions())
+    dimensions_(dt.dimensions()),
+    oriented_(false)
 {
     if (checkIOFlags)
     {
@@ -123,7 +126,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(df),
     Field<Type>(df),
     mesh_(df.mesh_),
-    dimensions_(df.dimensions_)
+    dimensions_(df.dimensions_),
+    oriented_(df.oriented_)
 {}
 
 
@@ -137,7 +141,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(df, reuse),
     Field<Type>(df, reuse),
     mesh_(df.mesh_),
-    dimensions_(df.dimensions_)
+    dimensions_(df.dimensions_),
+    oriented_(df.oriented_)
 {}
 
 
@@ -150,7 +155,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(df(), true),
     Field<Type>(df),
     mesh_(df->mesh_),
-    dimensions_(df->dimensions_)
+    dimensions_(df->dimensions_),
+    oriented_(df->oriented_)
 {}
 
 
@@ -168,7 +174,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
         tdf.isTmp()
     ),
     mesh_(tdf().mesh_),
-    dimensions_(tdf().dimensions_)
+    dimensions_(tdf().dimensions_),
+    oriented_(tdf().oriented_)
 {
     tdf.clear();
 }
@@ -185,7 +192,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(io),
     Field<Type>(df),
     mesh_(df.mesh_),
-    dimensions_(df.dimensions_)
+    dimensions_(df.dimensions_),
+    oriented_(df.oriented_)
 {}
 
 
@@ -200,7 +208,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(io, df),
     Field<Type>(df, reuse),
     mesh_(df.mesh_),
-    dimensions_(df.dimensions_)
+    dimensions_(df.dimensions_),
+    oriented_(df.oriented_)
 {}
 
 
@@ -214,7 +223,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(newName, df, newName == df.name()),
     Field<Type>(df),
     mesh_(df.mesh_),
-    dimensions_(df.dimensions_)
+    dimensions_(df.dimensions_),
+    oriented_(df.oriented_)
 {}
 
 
@@ -229,7 +239,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(newName, df, true),
     Field<Type>(df, reuse),
     mesh_(df.mesh_),
-    dimensions_(df.dimensions_)
+    dimensions_(df.dimensions_),
+    oriented_(df.oriented_)
 {}
 
 
@@ -243,7 +254,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(newName, df, true),
     Field<Type>(df),
     mesh_(df->mesh_),
-    dimensions_(df->dimensions_)
+    dimensions_(df->dimensions_),
+    oriented_(df->oriented_)
 {}
 
 
@@ -262,7 +274,8 @@ DimensionedField<Type, GeoMesh>::DimensionedField
         tdf.isTmp()
     ),
     mesh_(tdf().mesh_),
-    dimensions_(tdf().dimensions_)
+    dimensions_(tdf().dimensions_),
+    oriented_(tdf().oriented_)
 {
     tdf.clear();
 }
@@ -437,6 +450,7 @@ void DimensionedField<Type, GeoMesh>::operator=
     checkField(*this, df, "=");
 
     dimensions_ = df.dimensions();
+    oriented_ = df.oriented();
     Field<Type>::operator=(df);
 }
 
@@ -460,6 +474,7 @@ void DimensionedField<Type, GeoMesh>::operator=
     checkField(*this, df, "=");
 
     dimensions_ = df.dimensions();
+    oriented_ = df.oriented();
     this->transfer(const_cast<DimensionedField<Type, GeoMesh>&>(df));
     tdf.clear();
 }
@@ -487,6 +502,7 @@ void DimensionedField<Type, GeoMesh>::operator op                              \
     checkField(*this, df, #op);                                                \
                                                                                \
     dimensions_ op df.dimensions();                                            \
+    oriented_ op df.oriented();                                                \
     Field<Type>::operator op(df);                                              \
 }                                                                              \
                                                                                \
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
index a302e541710..ff894271c2a 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -41,6 +41,7 @@ SourceFiles
 #include "regIOobject.H"
 #include "Field.H"
 #include "dimensionedType.H"
+#include "orientedType.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -65,7 +66,7 @@ template<class Type, class GeoMesh> Ostream& operator<<
 
 
 /*---------------------------------------------------------------------------*\
-                           Class DimensionedField Declaration
+                      Class DimensionedField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type, class GeoMesh>
@@ -99,6 +100,9 @@ private:
         //- Dimension set for this field
         dimensionSet dimensions_;
 
+        //- Oriented flag
+        orientedType oriented_;
+
 
     // Private Member Functions
 
@@ -262,6 +266,12 @@ public:
         //- Return non-const access to dimensions
         inline dimensionSet& dimensions();
 
+        //- Return oriented flag
+        inline const orientedType& oriented() const;
+
+        //- Return non-const access to the oriented flag
+        inline orientedType& oriented();
+
         inline const Field<Type>& field() const;
 
         inline Field<Type>& field();
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C
index 6da09d945c4..8e69d617454 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C
@@ -52,6 +52,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field());                                     \
                                                                                \
+    tRes.ref().oriented() = Dfunc(df1.oriented());                             \
+                                                                               \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
@@ -75,6 +77,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field());                                     \
                                                                                \
+    tRes.ref().oriented() = Dfunc(df1.oriented());                             \
+                                                                               \
     tdf1.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -108,6 +112,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), df1.field());                             \
                                                                                \
+    tRes.ref().oriented() = Dfunc(df1.oriented());                             \
+                                                                               \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
@@ -131,6 +137,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), df1.field());                             \
                                                                                \
+    tRes.ref().oriented() = Dfunc(df1.oriented());                             \
+                                                                               \
     tdf1.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -165,6 +173,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field(), df2.field());                        \
                                                                                \
+    tRes.ref().oriented() = Func(df1.oriented(), df2.oriented());              \
+                                                                               \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
@@ -189,6 +199,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field(), df2.field());                        \
                                                                                \
+    tRes.ref().oriented() = Func(df1.oriented(), df2.oriented());              \
+                                                                               \
     tdf2.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -215,6 +227,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field(), df2.field());                        \
                                                                                \
+    tRes.ref().oriented() = Func(df1.oriented(), df2.oriented());              \
+                                                                               \
     tdf1.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -244,6 +258,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field(), df2.field());                        \
                                                                                \
+    tRes.ref().oriented() = Func(df1.oriented(), df2.oriented());              \
+                                                                               \
     tdf1.clear();                                                              \
     tdf2.clear();                                                              \
                                                                                \
@@ -279,6 +295,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), dt1.value(), df2.field());                        \
                                                                                \
+    tRes.ref().oriented() = df2.oriented();                                    \
+                                                                               \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
@@ -314,6 +332,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), dt1.value(), df2.field());                        \
                                                                                \
+    tRes.ref().oriented() = df2.oriented();                                    \
+                                                                               \
     tdf2.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -356,6 +376,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field(), dt2.value());                        \
                                                                                \
+    tRes.ref().oriented() = df1.oriented();                                    \
+                                                                               \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
@@ -391,6 +413,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func                                \
                                                                                \
     Func(tRes.ref().field(), df1.field(), dt2.value());                        \
                                                                                \
+    tRes.ref().oriented() = df1.oriented();                                    \
+                                                                               \
     tdf1.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -440,6 +464,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field());                \
                                                                                \
+    tRes.ref().oriented() = df1.oriented() Op df2.oriented();                  \
+                                                                               \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
@@ -464,6 +490,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field());                \
                                                                                \
+    tRes.ref().oriented() = df1.oriented() Op df2.oriented();                  \
+                                                                               \
     tdf2.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -490,6 +518,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field());                \
                                                                                \
+    tRes.ref().oriented() = df1.oriented() Op df2.oriented();                  \
+                                                                               \
     tdf1.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -519,6 +549,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field());                \
                                                                                \
+    tRes.ref().oriented() = df1.oriented() Op df2.oriented();                  \
+                                                                               \
     tdf1.clear();                                                              \
     tdf2.clear();                                                              \
                                                                                \
@@ -528,7 +560,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpName, OpFunc) \
+#define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpName, OpFunc)  \
                                                                                \
 TEMPLATE                                                                       \
 tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
@@ -552,6 +584,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
         )                                                                      \
     );                                                                         \
                                                                                \
+    tRes.ref().oriented() = df2.oriented();                                    \
+                                                                               \
     Foam::OpFunc(tRes.ref().field(), dt1.value(), df2.field());                \
                                                                                \
     return tRes;                                                               \
@@ -589,6 +623,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), dt1.value(), tdf2().field());             \
                                                                                \
+    tRes.ref().oriented() = df2.oriented();                                    \
+                                                                               \
     tdf2.clear();                                                              \
                                                                                \
     return tRes;                                                               \
@@ -605,7 +641,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
 }
 
 
-#define BINARY_TYPE_OPERATOR_FS(ReturnType, Type1, Type2, Op, OpName, OpFunc) \
+#define BINARY_TYPE_OPERATOR_FS(ReturnType, Type1, Type2, Op, OpName, OpFunc)  \
                                                                                \
 TEMPLATE                                                                       \
 tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
@@ -631,6 +667,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), df1.field(), dt2.value());                \
                                                                                \
+    tRes.ref().oriented() = df1.oriented();                                    \
+                                                                               \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
@@ -666,6 +704,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op                         \
                                                                                \
     Foam::OpFunc(tRes.ref().field(), tdf1().field(), dt2.value());             \
                                                                                \
+    tRes.ref().oriented() = df1.oriented();                                    \
+                                                                               \
     tdf1.clear();                                                              \
                                                                                \
     return tRes;                                                               \
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H
index 64cfd315895..0de4d18faa0 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -48,14 +48,29 @@ Foam::DimensionedField<Type, GeoMesh>::dimensions() const
     return dimensions_;
 }
 
+
 template<class Type, class GeoMesh>
-inline Foam::dimensionSet&
-Foam::DimensionedField<Type, GeoMesh>::dimensions()
+inline Foam::dimensionSet& Foam::DimensionedField<Type, GeoMesh>::dimensions()
 {
     return dimensions_;
 }
 
 
+template<class Type, class GeoMesh>
+inline const Foam::orientedType&
+Foam::DimensionedField<Type, GeoMesh>::oriented() const
+{
+    return oriented_;
+}
+
+
+template<class Type, class GeoMesh>
+inline Foam::orientedType& Foam::DimensionedField<Type, GeoMesh>::oriented()
+{
+    return oriented_;
+}
+
+
 template<class Type, class GeoMesh>
 inline const Foam::Field<Type>&
 Foam::DimensionedField<Type, GeoMesh>::field() const
@@ -63,6 +78,7 @@ Foam::DimensionedField<Type, GeoMesh>::field() const
     return *this;
 }
 
+
 template<class Type, class GeoMesh>
 inline Foam::Field<Type>&
 Foam::DimensionedField<Type, GeoMesh>::field()
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
index 74da71025c3..5fe2ed249f9 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
@@ -37,6 +37,7 @@ void Foam::DimensionedField<Type, GeoMesh>::readField
 )
 {
     dimensions_.reset(dimensionSet(fieldDict.lookup("dimensions")));
+    fieldDict.template readIfPresent<bool>("oriented", oriented_.oriented());
 
     Field<Type> f(fieldDictEntry, fieldDict, GeoMesh::size(mesh_));
     this->transfer(f);
@@ -74,7 +75,8 @@ Foam::DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(io),
     Field<Type>(0),
     mesh_(mesh),
-    dimensions_(dimless)
+    dimensions_(dimless),
+    oriented_(false)
 {
     readField(dictionary(readStream(typeName)), fieldDictEntry);
 }
@@ -92,7 +94,8 @@ Foam::DimensionedField<Type, GeoMesh>::DimensionedField
     regIOobject(io),
     Field<Type>(0),
     mesh_(mesh),
-    dimensions_(dimless)
+    dimensions_(dimless),
+    oriented_(false)
 {
     readField(fieldDict, fieldDictEntry);
 }
@@ -107,17 +110,15 @@ bool Foam::DimensionedField<Type, GeoMesh>::writeData
     const word& fieldDictEntry
 ) const
 {
-    os.writeKeyword("dimensions") << dimensions() << token::END_STATEMENT
-        << nl << nl;
+    os.writeEntry("dimensions", dimensions());
+    if (oriented_.oriented()) os.writeEntry("oriented", oriented());
+
+    os<< nl << nl;
 
     Field<Type>::writeEntry(fieldDictEntry, os);
 
     // Check state of Ostream
-    os.check
-    (
-        "bool DimensionedField<Type, GeoMesh>::writeData"
-        "(Ostream& os, const word& fieldDictEntry) const"
-    );
+    os.check(FUNCTION_NAME);
 
     return (os.good());
 }
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
index e7d6ea91402..6cc6dc61293 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
@@ -1175,6 +1175,7 @@ void Foam::GeometricField<Type, PatchField, GeoMesh>::operator=
     // Only assign field contents not ID
 
     this->dimensions() = gf.dimensions();
+    this->oriented() = gf.oriented();
 
     // Transfer the storage from the tmp
     primitiveFieldRef().transfer
@@ -1239,7 +1240,7 @@ void Foam::GeometricField<Type, PatchField, GeoMesh>::operator op              \
 {                                                                              \
     checkField(*this, gf, #op);                                                \
                                                                                \
-    ref() op gf();            \
+    ref() op gf();                                                             \
     boundaryFieldRef() op gf.boundaryField();                                  \
 }                                                                              \
                                                                                \
@@ -1259,7 +1260,7 @@ void Foam::GeometricField<Type, PatchField, GeoMesh>::operator op              \
     const dimensioned<TYPE>& dt                                                \
 )                                                                              \
 {                                                                              \
-    ref() op dt;                                       \
+    ref() op dt;                                                               \
     boundaryFieldRef() op dt.value();                                          \
 }
 
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C
index 49a7ce2d622..4113b1d752b 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C
@@ -51,6 +51,7 @@ void component
 {
     component(gcf.primitiveFieldRef(), gf.primitiveField(), d);
     component(gcf.boundaryFieldRef(), gf.boundaryField(), d);
+    gcf.oriented() = gf.oriented();
 }
 
 
@@ -63,6 +64,7 @@ void T
 {
     T(gf.primitiveFieldRef(), gf1.primitiveField());
     T(gf.boundaryFieldRef(), gf1.boundaryField());
+    gf.oriented() = gf1.oriented();
 }
 
 
@@ -81,6 +83,7 @@ void pow
 {
     pow(gf.primitiveFieldRef(), gf1.primitiveField(), r);
     pow(gf.boundaryFieldRef(), gf1.boundaryField(), r);
+    gf.oriented() = pow(gf1.oriented(), r);
 }
 
 template
@@ -175,6 +178,7 @@ void sqr
 {
     sqr(gf.primitiveFieldRef(), gf1.primitiveField());
     sqr(gf.boundaryFieldRef(), gf1.boundaryField());
+    gf.oriented() = sqr(gf1.oriented());
 }
 
 template<class Type, template<class> class PatchField, class GeoMesh>
@@ -263,6 +267,7 @@ void magSqr
 {
     magSqr(gsf.primitiveFieldRef(), gf.primitiveField());
     magSqr(gsf.boundaryFieldRef(), gf.boundaryField());
+    gsf.oriented() = magSqr(gf.oriented());
 }
 
 template<class Type, template<class> class PatchField, class GeoMesh>
@@ -335,6 +340,7 @@ void mag
 {
     mag(gsf.primitiveFieldRef(), gf.primitiveField());
     mag(gsf.boundaryFieldRef(), gf.boundaryField());
+    gsf.oriented() = mag(gf.oriented());
 }
 
 template<class Type, template<class> class PatchField, class GeoMesh>
@@ -412,6 +418,7 @@ void cmptAv
 {
     cmptAv(gcf.primitiveFieldRef(), gf.primitiveField());
     cmptAv(gcf.boundaryFieldRef(), gf.boundaryField());
+    gcf.oriented() = cmptAv(gf.oriented());
 }
 
 template<class Type, template<class> class PatchField, class GeoMesh>
@@ -611,6 +618,8 @@ void opFunc                                                                    \
         gf1.boundaryField(),                                                   \
         gf2.boundaryField()                                                    \
     );                                                                         \
+                                                                               \
+    gf.oriented() = gf1.oriented() op gf2.oriented();                          \
 }                                                                              \
                                                                                \
 template                                                                       \
@@ -757,6 +766,7 @@ void opFunc                                                                    \
 {                                                                              \
     Foam::opFunc(gf.primitiveFieldRef(), gf1.primitiveField(), dvs.value());   \
     Foam::opFunc(gf.boundaryFieldRef(), gf1.boundaryField(), dvs.value());     \
+    gf.oriented() = gf1.oriented();                                            \
 }                                                                              \
                                                                                \
 template                                                                       \
@@ -870,6 +880,7 @@ void opFunc                                                                    \
 {                                                                              \
     Foam::opFunc(gf.primitiveFieldRef(), dvs.value(), gf1.primitiveField());   \
     Foam::opFunc(gf.boundaryFieldRef(), dvs.value(), gf1.boundaryField());     \
+    gf.oriented() = gf1.oriented();                                            \
 }                                                                              \
                                                                                \
 template                                                                       \
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctionsM.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctionsM.C
index 377339dae97..9ff2ed8639c 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctionsM.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctionsM.C
@@ -43,6 +43,7 @@ void Func                                                                      \
 {                                                                              \
     Foam::Func(res.primitiveFieldRef(), gf1.primitiveField());                 \
     Foam::Func(res.boundaryFieldRef(), gf1.boundaryField());                   \
+    res.oriented() = gf1.oriented();                                           \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
@@ -112,6 +113,7 @@ void OpFunc                                                                    \
 {                                                                              \
     Foam::OpFunc(res.primitiveFieldRef(), gf1.primitiveField());               \
     Foam::OpFunc(res.boundaryFieldRef(), gf1.boundaryField());                 \
+    res.oriented() = gf1.oriented();                                           \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
@@ -192,6 +194,7 @@ void Func                                                                      \
         gf1.boundaryField(),                                                   \
         gf2.boundaryField()                                                    \
     );                                                                         \
+    res.oriented() = Func(gf1.oriented(), gf2.oriented());                     \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
@@ -320,6 +323,7 @@ void Func                                                                      \
 {                                                                              \
     Foam::Func(res.primitiveFieldRef(), dt1.value(), gf2.primitiveField());    \
     Foam::Func(res.boundaryFieldRef(), dt1.value(), gf2.boundaryField());      \
+    res.oriented() = gf2.oriented();                                           \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
@@ -411,6 +415,7 @@ void Func                                                                      \
 {                                                                              \
     Foam::Func(res.primitiveFieldRef(), gf1.primitiveField(), dt2.value());    \
     Foam::Func(res.boundaryFieldRef(), gf1.boundaryField(), dt2.value());      \
+    res.oriented() = gf1.oriented();                                           \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
@@ -511,6 +516,7 @@ void OpFunc                                                                    \
     (res.primitiveFieldRef(), gf1.primitiveField(), gf2.primitiveField());     \
     Foam::OpFunc                                                               \
     (res.boundaryFieldRef(), gf1.boundaryField(), gf2.boundaryField());        \
+    res.oriented() = gf1.oriented() Op gf2.oriented();                         \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
@@ -639,6 +645,8 @@ void OpFunc                                                                    \
 {                                                                              \
     Foam::OpFunc(res.primitiveFieldRef(), dt1.value(), gf2.primitiveField());  \
     Foam::OpFunc(res.boundaryFieldRef(), dt1.value(), gf2.boundaryField());    \
+    res.oriented() = gf2.oriented();                                           \
+                                                                               \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
@@ -730,6 +738,7 @@ void OpFunc                                                                    \
 {                                                                              \
     Foam::OpFunc(res.primitiveFieldRef(), gf1.primitiveField(), dt2.value());  \
     Foam::OpFunc(res.boundaryFieldRef(), gf1.boundaryField(), dt2.value());    \
+    res.oriented() = gf1.oriented();                                           \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
diff --git a/src/OpenFOAM/orientedType/orientedType.C b/src/OpenFOAM/orientedType/orientedType.C
new file mode 100644
index 00000000000..08198c0f049
--- /dev/null
+++ b/src/OpenFOAM/orientedType/orientedType.C
@@ -0,0 +1,498 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "orientedType.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::orientedType::orientedType()
+:
+    oriented_(false)
+{}
+
+
+Foam::orientedType::orientedType(const orientedType& of)
+:
+    oriented_(of.oriented_)
+{}
+
+
+Foam::orientedType::orientedType(const bool oriented)
+:
+    oriented_(oriented)
+{}
+
+
+Foam::orientedType::orientedType(Istream& is)
+:
+    oriented_(readBool(is))
+{
+    is.check(FUNCTION_NAME);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool& Foam::orientedType::oriented()
+{
+    return oriented_;
+}
+
+
+bool Foam::orientedType::oriented() const
+{
+    return oriented_;
+}
+
+
+// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+
+void Foam::orientedType::operator=(const orientedType& of)
+{
+    oriented_ = of.oriented();
+}
+
+
+void Foam::orientedType::operator+=(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    if (oriented_ != of.oriented())
+    {
+        FatalErrorInFunction
+            << "Operator += is undefined for oriented and unoriented types. "
+            << "oriented:" << oriented_ << ", of:" << of.oriented()
+            << abort(FatalError);
+    }
+
+    // No change to oriented_ flag
+}
+
+
+void Foam::orientedType::operator-=(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    if (oriented_ != of.oriented())
+    {
+        FatalErrorInFunction
+            << "Operator -= is undefined for oriented and unoriented types. "
+            << "oriented:" << oriented_ << ", of:" << of.oriented()
+            << abort(FatalError);
+    }
+
+    // No change to oriented_ flag
+}
+
+
+void Foam::orientedType::operator*=(const orientedType& of)
+{
+    oriented_ = oriented_ ^ of.oriented();
+}
+
+
+void Foam::orientedType::operator/=(const orientedType& of)
+{
+    oriented_ = oriented_ ^ of.oriented();
+}
+
+
+void Foam::orientedType::operator*=(const scalar s)
+{
+//InfoInFunction << "oriented_: " << oriented_ << endl;
+    // No change to oriented_ flag
+}
+
+
+void Foam::orientedType::operator/=(const scalar s)
+{
+//InfoInFunction << "oriented_: " << oriented_ << endl;
+    // No change to oriented_ flag
+}
+
+
+bool Foam::orientedType::operator()() const
+{
+//InfoInFunction << "oriented_: " << oriented_ << endl;
+    return oriented_;
+}
+
+
+// * * * * * * * * * * * * * * * Friend Functions  * * * * * * * * * * * * * //
+
+Foam::orientedType Foam::max(const orientedType& of1, const orientedType& of2)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    if (of1.oriented() != of2.oriented())
+    {
+        FatalErrorInFunction
+            << "max is undefined for oriented and unoriented types. "
+            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << abort(FatalError);
+    }
+
+    return of1;
+}
+
+
+Foam::orientedType Foam::min(const orientedType& of1, const orientedType& of2)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    if (of1.oriented() != of2.oriented())
+    {
+        FatalErrorInFunction
+            << "min is undefined for oriented and unoriented types. "
+            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << abort(FatalError);
+    }
+
+    return of1;
+}
+
+
+Foam::orientedType Foam::cmptMultiply
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    return orientedType(of1.oriented() ^ of2.oriented());
+}
+
+
+Foam::orientedType Foam::cmptDivide
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    return orientedType(of1.oriented() ^ of2.oriented());
+}
+
+
+Foam::orientedType Foam::cmptAv(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType Foam::pow(const orientedType& of, const scalar r)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    // Undefined???
+    // - only defined for integers where:
+    //   - odd powers = oriented_ = yes (if of is oriented)
+    //   - even powers = oriented_ = no
+    return of;
+}
+
+
+Foam::orientedType Foam::sqr(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(false);
+}
+
+
+Foam::orientedType Foam::pow3(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(of.oriented());
+}
+
+
+Foam::orientedType Foam::pow4(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(false);
+}
+
+
+Foam::orientedType Foam::pow5(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(of.oriented());
+}
+
+
+Foam::orientedType Foam::pow6(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(false);
+}
+
+
+Foam::orientedType Foam::pow025(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(of.oriented());
+}
+
+
+Foam::orientedType Foam::sqrt(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType Foam::cbrt(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType Foam::magSqr(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(false);
+}
+
+
+Foam::orientedType  Foam::mag(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(false);
+}
+
+
+Foam::orientedType  Foam::sign(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType  Foam::pos(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType  Foam::neg(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType  Foam::posPart(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType  Foam::negPart(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType  Foam::inv(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType Foam::trans(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+Foam::orientedType Foam::atan2
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    if (of1.oriented() != of2.oriented())
+    {
+        FatalErrorInFunction
+            << "atan2 is undefined for oriented and unoriented types. "
+            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << abort(FatalError);
+    }
+
+    return of1;
+}
+
+
+Foam::orientedType Foam::transform(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return of;
+}
+
+
+// * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
+
+Foam::Istream& Foam::operator>>(Istream& is, orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    is >> of.oriented_;
+
+    is.check(FUNCTION_NAME);
+
+    return is;
+}
+
+
+Foam::Ostream& Foam::operator<<(Ostream& os, const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    os << of.oriented();
+
+    os.check(FUNCTION_NAME);
+
+    return os;
+}
+
+
+// * * * * * * * * * * * * * * * Global Operators  * * * * * * * * * * * * * //
+
+Foam::orientedType Foam::operator+
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    if (of1.oriented() != of2.oriented())
+    {
+        FatalErrorInFunction
+            << "Operator + is undefined for oriented and unoriented types. "
+            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << abort(FatalError);
+    }
+
+    return orientedType(of1.oriented() || of2.oriented());
+}
+
+
+Foam::orientedType Foam::operator-(const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(of);
+}
+
+
+Foam::orientedType Foam::operator-
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    if (of1.oriented() != of2.oriented())
+    {
+        FatalErrorInFunction
+            << "Operator - is undefined for oriented and unoriented types. "
+            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << abort(FatalError);
+    }
+
+    return orientedType(of1.oriented() || of2.oriented());
+}
+
+
+Foam::orientedType Foam::operator*(const scalar s, const orientedType& of)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(of);
+}
+
+
+Foam::orientedType Foam::operator/(const orientedType& of, const scalar s)
+{
+//InfoInFunction << "of:" << of.oriented() << endl;
+    return orientedType(of);
+}
+
+
+Foam::orientedType Foam::operator/
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    return orientedType(of1.oriented() ^ of2.oriented());
+}
+
+
+Foam::orientedType Foam::operator*
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    return orientedType(of1.oriented() ^ of2.oriented());
+}
+
+
+Foam::orientedType Foam::operator^
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    return orientedType(of1.oriented() ^ of2.oriented());
+}
+
+
+Foam::orientedType Foam::operator&
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    return orientedType(of1.oriented() ^ of2.oriented());
+}
+
+
+Foam::orientedType Foam::operator&&
+(
+    const orientedType& of1,
+    const orientedType& of2
+)
+{
+//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
+    return orientedType(false);
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/orientedType/orientedType.H b/src/OpenFOAM/orientedType/orientedType.H
new file mode 100644
index 00000000000..4a26164dee0
--- /dev/null
+++ b/src/OpenFOAM/orientedType/orientedType.H
@@ -0,0 +1,168 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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::orientedType
+
+Description
+    Class to determine the 'oriented' status of surface fields
+
+SourceFiles
+    orientedType.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef orientedType_H
+#define orientedType_H
+
+#include "Istream.H"
+#include "Ostream.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of friend functions and operators
+
+class orientedType;
+
+Istream& operator>>(Istream&, orientedType&);
+
+Ostream& operator<<(Ostream&, const orientedType&);
+
+/*---------------------------------------------------------------------------*\
+                           Class dimensioned Declaration
+\*---------------------------------------------------------------------------*/
+
+class orientedType
+{
+    // Private data
+
+        //- Oriented flag
+        bool oriented_;
+
+
+public:
+
+
+    // Constructors
+
+        //- Null constructor - flag initialised to false
+        orientedType();
+
+        //- Copy constructor
+        orientedType(const orientedType& of);
+
+        //- Construct from bool
+        orientedType(const bool oriented);
+
+        //- Construct from Istream
+        orientedType(Istream& is);
+
+
+    // Member functions
+
+        //- Return non-const reference to the oriented flag
+        bool& oriented();
+
+        //- Return const reference to the oriented flag
+        bool oriented() const;
+
+
+    // Member operators
+
+        void operator=(const orientedType& of);
+
+        void operator+=(const orientedType& of);
+        void operator-=(const orientedType& of);
+        void operator*=(const orientedType& of);
+        void operator/=(const orientedType& of);
+        void operator*=(const scalar s);
+        void operator/=(const scalar s);
+        bool operator()() const;
+
+
+    // IOstream operators
+
+        friend Istream& operator>>(Istream& is, orientedType& of);
+
+        friend Ostream& operator<<(Ostream& os, const orientedType& of);
+};
+
+
+// * * * * * * * * * * * * * * * Global Operators  * * * * * * * * * * * * * //
+
+orientedType max(const orientedType& of1, const orientedType& of2);
+orientedType min(const orientedType& of1, const orientedType& of2);
+orientedType cmptMultiply(const orientedType& of1, const orientedType& of2);
+orientedType cmptDivide(const orientedType& of1, const orientedType& of);
+orientedType cmptAv(const orientedType& of);
+
+
+orientedType pow(const orientedType& of, const scalar r);
+orientedType sqr(const orientedType& of);
+orientedType pow3(const orientedType& of);
+orientedType pow4(const orientedType& of);
+orientedType pow5(const orientedType& of);
+orientedType pow6(const orientedType& of);
+orientedType pow025(const orientedType& of);
+
+
+orientedType sqrt(const orientedType& of);
+orientedType cbrt(const orientedType& of);
+orientedType magSqr(const orientedType& of);
+orientedType mag(const orientedType& of);
+orientedType sign(const orientedType& of);
+orientedType pos(const orientedType& of);
+orientedType neg(const orientedType& of);
+orientedType posPart(const orientedType& of);
+orientedType negPart(const orientedType& of);
+orientedType inv(const orientedType& of);
+
+
+orientedType trans(const orientedType& of);
+orientedType atan2(const orientedType& of1, const orientedType& of2);
+orientedType transform(const orientedType& of);
+
+orientedType operator-(const orientedType& of);
+orientedType operator*(const scalar s, const orientedType& of);
+orientedType operator/(const orientedType& of, const scalar s);
+
+orientedType operator+(const orientedType& of1, const orientedType& of2);
+orientedType operator-(const orientedType& of1, const orientedType& of2);
+orientedType operator/(const orientedType& of1, const orientedType& of2);
+orientedType operator*(const orientedType& of1, const orientedType& of2);
+orientedType operator^(const orientedType& of1, const orientedType& of2);
+orientedType operator&(const orientedType& of1, const orientedType& of2);
+orientedType operator&&(const orientedType& of1, const orientedType& of2);
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C
index 795fbff9759..5f372b1e841 100644
--- a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C
+++ b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C
@@ -115,6 +115,7 @@ gaussLaplacianScheme<Type, GType>::gammaSnGradCorr
            *vf.dimensions()*mesh.deltaCoeffs().dimensions()
         )
     );
+    tgammaSnGradCorr.ref().oriented() = SfGammaCorr.oriented();
 
     for (direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++)
     {
diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C
index 2ad75944f44..b6f6fbbef6a 100644
--- a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C
+++ b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C
@@ -124,6 +124,7 @@ snGradScheme<Type>::snGrad
         )
     );
     GeometricField<Type, fvsPatchField, surfaceMesh>& ssf = tsf.ref();
+    ssf.oriented().oriented() = true;
 
     // set reference to difference factors array
     const scalarField& deltaCoeffs = tdeltaCoeffs();
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
index 4c2ffb5a1f1..bb87c6d7f75 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
@@ -892,6 +892,8 @@ flux() const
     GeometricField<Type, fvsPatchField, surfaceMesh>& fieldFlux =
         tfieldFlux.ref();
 
+    fieldFlux.oriented().oriented() = true;
+
     for (direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
     {
         fieldFlux.primitiveFieldRef().replace
diff --git a/src/finiteVolume/fvMesh/fvMeshGeometry.C b/src/finiteVolume/fvMesh/fvMeshGeometry.C
index a05569849f2..6d2976636ad 100644
--- a/src/finiteVolume/fvMesh/fvMeshGeometry.C
+++ b/src/finiteVolume/fvMesh/fvMeshGeometry.C
@@ -67,6 +67,8 @@ void Foam::fvMesh::makeSf() const
         dimArea,
         faceAreas()
     );
+
+    SfPtr_->oriented().oriented() = true;
 }
 
 
@@ -400,6 +402,7 @@ Foam::tmp<Foam::surfaceVectorField> Foam::fvMesh::delta() const
         )
     );
     surfaceVectorField& delta = tdelta.ref();
+    delta.oriented().oriented() = true;
 
     const volVectorField& C = this->C();
     const labelUList& owner = this->owner();
@@ -438,6 +441,8 @@ const Foam::surfaceScalarField& Foam::fvMesh::phi() const
         (*phiPtr_) = dimensionedScalar("0", dimVolume/dimTime, 0.0);
     }
 
+    phiPtr_->oriented().oriented() = true;
+
     return *phiPtr_;
 }
 
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
index 6e8f8bc7d45..f09cc74c339 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -73,8 +73,7 @@ Foam::surfaceInterpolation::~surfaceInterpolation()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-const Foam::surfaceScalarField&
-Foam::surfaceInterpolation::weights() const
+const Foam::surfaceScalarField& Foam::surfaceInterpolation::weights() const
 {
     if (!weights_)
     {
@@ -85,8 +84,7 @@ Foam::surfaceInterpolation::weights() const
 }
 
 
-const Foam::surfaceScalarField&
-Foam::surfaceInterpolation::deltaCoeffs() const
+const Foam::surfaceScalarField& Foam::surfaceInterpolation::deltaCoeffs() const
 {
     if (!deltaCoeffs_)
     {
@@ -156,11 +154,12 @@ void Foam::surfaceInterpolation::makeWeights() const
         dimless
     );
     surfaceScalarField& weights = *weights_;
+    weights.oriented().oriented() = true;
 
     // Set local references to mesh data
-    // (note that we should not use fvMesh sliced fields at this point yet
-    //  since this causes a loop when generating weighting factors in
-    //  coupledFvPatchField evaluation phase)
+    // Note that we should not use fvMesh sliced fields at this point yet
+    // since this causes a loop when generating weighting factors in
+    // coupledFvPatchField evaluation phase
     const labelUList& owner = mesh_.owner();
     const labelUList& neighbour = mesh_.neighbour();
 
@@ -174,7 +173,7 @@ void Foam::surfaceInterpolation::makeWeights() const
     forAll(owner, facei)
     {
         // Note: mag in the dot-product.
-        // For all valid meshes, the non-orthogonality will be less that
+        // For all valid meshes, the non-orthogonality will be less than
         // 90 deg and the dot-product will be positive.  For invalid
         // meshes (d & s <= 0), this will stabilise the calculation
         // but the result will be poor.
@@ -183,8 +182,7 @@ void Foam::surfaceInterpolation::makeWeights() const
         w[facei] = SfdNei/(SfdOwn + SfdNei);
     }
 
-    surfaceScalarField::Boundary& wBf =
-        weights.boundaryFieldRef();
+    surfaceScalarField::Boundary& wBf = weights.boundaryFieldRef();
 
     forAll(mesh_.boundary(), patchi)
     {
@@ -228,6 +226,7 @@ void Foam::surfaceInterpolation::makeDeltaCoeffs() const
         dimless/dimLength
     );
     surfaceScalarField& deltaCoeffs = *deltaCoeffs_;
+    deltaCoeffs.oriented().oriented() = true;
 
 
     // Set local references to mesh data
@@ -278,6 +277,7 @@ void Foam::surfaceInterpolation::makeNonOrthDeltaCoeffs() const
         dimless/dimLength
     );
     surfaceScalarField& nonOrthDeltaCoeffs = *nonOrthDeltaCoeffs_;
+    nonOrthDeltaCoeffs.oriented().oriented() = true;
 
 
     // Set local references to mesh data
@@ -342,6 +342,7 @@ void Foam::surfaceInterpolation::makeNonOrthCorrectionVectors() const
         dimless
     );
     surfaceVectorField& corrVecs = *nonOrthCorrectionVectors_;
+    corrVecs.oriented().oriented() = true;
 
     // Set local references to mesh data
     const volVectorField& C = mesh_.C();
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C
index 8d7074174fb..ab8f3fcc8c1 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C
@@ -311,6 +311,8 @@ Foam::surfaceInterpolationScheme<Type>::dotInterpolate
 
     tlambdas.clear();
 
+//    tsf.ref().oriented() = Sf.oriented();
+
     return tsf;
 }
 
@@ -363,6 +365,8 @@ Foam::surfaceInterpolationScheme<Type>::dotInterpolate
         >
     > tsf = dotInterpolate(Sf, vf, weights(vf));
 
+    tsf.ref().oriented() = Sf.oriented();
+
     if (corrected())
     {
         tsf.ref() += Sf & correction(vf);
@@ -397,6 +401,7 @@ Foam::surfaceInterpolationScheme<Type>::dotInterpolate
             surfaceMesh
         >
     > tSfDotinterpVf = dotInterpolate(Sf, tvf());
+
     tvf.clear();
     return tSfDotinterpVf;
 }
-- 
GitLab


From f71e4ff5cb3238958b2b3cd452aeea1f44a55e3a Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 24 Apr 2017 11:43:13 +0100
Subject: [PATCH 205/277] ENH: surfaceFieldValue - simplified by making use of
 new field.oriented() functionality

---
 .../surfaceFieldValue/surfaceFieldValue.C     | 69 ++++++-------------
 .../surfaceFieldValue/surfaceFieldValue.H     | 19 +----
 .../surfaceFieldValueTemplates.C              | 66 +++++++-----------
 3 files changed, 49 insertions(+), 105 deletions(-)

diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
index 1b3258354a2..9cefa26df30 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
@@ -154,7 +154,7 @@ void Foam::functionObjects::fieldValues::surfaceFieldValue::setFaceZoneFaces()
 
     DynamicList<label> faceIds(fZone.size());
     DynamicList<label> facePatchIds(fZone.size());
-    DynamicList<bool>  faceFlip(fZone.size());
+    DynamicList<bool> faceFlip(fZone.size());
 
     forAll(fZone, i)
     {
@@ -459,7 +459,7 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::totalArea() const
     }
     else
     {
-        totalArea = gSum(filterField(mesh_.magSf(), false));
+        totalArea = gSum(filterField(mesh_.magSf()));
     }
 
     return totalArea;
@@ -479,10 +479,13 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::needsSf() const
         case opAverage:
         case opMin:
         case opMax:
+        {
             return false;
-
+        }
         default:
+        {
             return true;
+        }
     }
 }
 
@@ -496,10 +499,13 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::needsWeight() const
         case opWeightedAverage:
         case opWeightedAreaAverage:
         case opWeightedAreaIntegrate:
+        {
             return true;
-
+        }
         default:
+        {
             return false;
+        }
     }
 }
 
@@ -596,7 +602,6 @@ void Foam::functionObjects::fieldValues::surfaceFieldValue::initialise
 
 
     weightFieldName_ = "none";
-    orientWeightField_ = false;
     if (needsWeight())
     {
         if (dict.readIfPresent("weightField", weightFieldName_))
@@ -610,41 +615,21 @@ void Foam::functionObjects::fieldValues::surfaceFieldValue::initialise
 
             Info<< "    weight field  = " << weightFieldName_ << nl;
         }
-
-        if (dict.found("orientedWeightField"))
-        {
-            if (regionType_ == stSurface || regionType_ == stSampledSurface)
-            {
-                FatalIOErrorInFunction(dict)
-                    << "Cannot use orientedWeightField "
-                    << "for surface/sampledSurface"
-                    << exit(FatalIOError);
-            }
-
-            if (weightFieldName_ == "none")
-            {
-                dict.lookup("orientedWeightField") >> weightFieldName_;
-                orientWeightField_ = true;
-
-                Info<< "    weight field  = " << weightFieldName_ << nl;
-            }
-            else
-            {
-                FatalIOErrorInFunction(dict)
-                    << "Cannot specify both weightField and orientedWeightField"
-                    << exit(FatalIOError);
-            }
-        }
     }
 
+    // Backwards compatibility for v1612+ and older
     List<word> orientedFields;
-    orientedFieldsStart_ = labelMax;
     if (dict.readIfPresent("orientedFields", orientedFields))
     {
-        orientedFieldsStart_ = fields_.size();
+        WarningInFunction
+            << "The 'orientedFields' option is deprecated.  These fields can "
+            << "and have been added to the standard 'fields' list."
+            << endl;
+
         fields_.append(orientedFields);
     }
 
+
     surfaceWriterPtr_.clear();
     if (writeFields_)
     {
@@ -854,8 +839,6 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::surfaceFieldValue
         [dict.lookupOrDefault<word>("postOperation", "none")]
     ),
     weightFieldName_("none"),
-    orientWeightField_(false),
-    orientedFieldsStart_(labelMax),
     writeArea_(dict.lookupOrDefault("writeArea", false)),
     nFaces_(0),
     faceId_(),
@@ -883,8 +866,6 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::surfaceFieldValue
         [dict.lookupOrDefault<word>("postOperation", "none")]
     ),
     weightFieldName_("none"),
-    orientWeightField_(false),
-    orientedFieldsStart_(labelMax),
     writeArea_(dict.lookupOrDefault("writeArea", false)),
     nFaces_(0),
     faceId_(),
@@ -959,7 +940,7 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::write()
         }
         else
         {
-            Sf = filterField(mesh_.Sf(), true); // Oriented Sf
+            Sf = filterField(mesh_.Sf());
         }
     }
 
@@ -988,12 +969,7 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::write()
         {
             scalarField weightField
             (
-                getFieldValues<scalar>
-                (
-                    weightFieldName_,
-                    true,
-                    orientWeightField_
-                )
+                getFieldValues<scalar>(weightFieldName_, true)
             );
 
             // Process the fields
@@ -1003,12 +979,7 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::write()
         {
             vectorField weightField
             (
-                getFieldValues<vector>
-                (
-                    weightFieldName_,
-                    true,
-                    orientWeightField_
-                )
+                getFieldValues<vector>(weightFieldName_, true)
             );
 
             // Process the fields
diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H
index 062d13e7c8a..d78e938bfd6 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H
@@ -91,7 +91,6 @@ Usage
         orientedWeightField  | name of oriented field to apply weighting | no |
         scaleFactor  | scale factor            | no          | 1
         fields       | list of fields to operate on | yes    |
-        orientedFields | list of oriented fields to operate on | no |
     \endtable
 
     Where \c regionType is defined by
@@ -130,8 +129,6 @@ Note
     - faces on empty patches get ignored
     - if the field is a volField the \c faceZone can only consist of boundary
       faces
-    - the `oriented' entries relate to mesh-oriented fields, such as the
-      flux, phi.  These fields will be oriented according to the face normals.
     - Using \c surface:
       - The keyword %subRegion should not be used to select surfaces.
         Specify instead the regionType 'surface' and provide the surface name.
@@ -285,12 +282,6 @@ protected:
         //- Weight field name - optional
         word weightFieldName_;
 
-        //- Flag to indicate if flipMap should be applied to the weight field
-        bool orientWeightField_;
-
-        //- Start index of fields that require application of flipMap
-        label orientedFieldsStart_;
-
         //- Total area of the surfaceFieldValue
         scalar totalArea_;
 
@@ -353,8 +344,7 @@ protected:
         tmp<Field<Type>> getFieldValues
         (
             const word& fieldName,
-            const bool mustGet = false,
-            const bool applyOrientation = false
+            const bool mustGet = false
         ) const;
 
         //- Apply the 'operation' to the values. Operation must preserve Type.
@@ -380,16 +370,14 @@ protected:
         template<class Type>
         tmp<Field<Type>> filterField
         (
-            const GeometricField<Type, fvsPatchField, surfaceMesh>& field,
-            const bool applyOrientation
+            const GeometricField<Type, fvsPatchField, surfaceMesh>& field
         ) const;
 
         //- Filter a volume field according to faceIds
         template<class Type>
         tmp<Field<Type>> filterField
         (
-            const GeometricField<Type, fvPatchField, volMesh>& field,
-            const bool applyOrientation
+            const GeometricField<Type, fvPatchField, volMesh>& field
         ) const;
 
         //- Weighting factor
@@ -424,7 +412,6 @@ protected:
             const word& fieldName,
             const vectorField& Sf,
             const Field<WeightType>& weightField,
-            const bool orient,
             const meshedSurf& surfToWrite
         );
 
diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
index 0577870ad32..e59f2eb36bc 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C
@@ -57,8 +57,7 @@ Foam::tmp<Foam::Field<Type>>
 Foam::functionObjects::fieldValues::surfaceFieldValue::getFieldValues
 (
     const word& fieldName,
-    const bool mustGet,
-    const bool applyOrientation
+    const bool mustGet
 ) const
 {
     typedef GeometricField<Type, fvsPatchField, surfaceMesh> sf;
@@ -71,7 +70,7 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::getFieldValues
     }
     else if (regionType_ != stSampledSurface && foundObject<sf>(fieldName))
     {
-        return filterField(lookupObject<sf>(fieldName), applyOrientation);
+        return filterField(lookupObject<sf>(fieldName));
     }
     else if (foundObject<vf>(fieldName))
     {
@@ -112,7 +111,7 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::getFieldValues
         }
         else
         {
-            return filterField(fld, applyOrientation);
+            return filterField(fld);
         }
     }
 
@@ -140,7 +139,9 @@ processSameTypeValues
     switch (operation_)
     {
         case opNone:
+        {
             break;
+        }
         case opSum:
         {
             result = gSum(values);
@@ -258,8 +259,10 @@ processSameTypeValues
 
         case opAreaNormalAverage:
         case opAreaNormalIntegrate:
-            // handled in specializations only
+        {
+            // Handled in specializations only
             break;
+        }
     }
 
     return result;
@@ -302,30 +305,17 @@ Foam::label Foam::functionObjects::fieldValues::surfaceFieldValue::writeAll
     forAll(fields_, i)
     {
         const word& fieldName = fields_[i];
-        const bool orient = (i >= orientedFieldsStart_);
 
         if
         (
-            writeValues<scalar>
-            (
-                fieldName, Sf, weightField, orient, surfToWrite
-            )
-         || writeValues<vector>
-            (
-                fieldName, Sf, weightField, orient, surfToWrite
-            )
+            writeValues<scalar>(fieldName, Sf, weightField, surfToWrite)
+         || writeValues<vector>(fieldName, Sf, weightField, surfToWrite)
          || writeValues<sphericalTensor>
             (
-                fieldName, Sf, weightField, orient, surfToWrite
-            )
-         || writeValues<symmTensor>
-            (
-                fieldName, Sf, weightField, orient, surfToWrite
-            )
-         || writeValues<tensor>
-            (
-                fieldName, Sf, weightField, orient, surfToWrite
+                fieldName, Sf, weightField, surfToWrite
             )
+         || writeValues<symmTensor>(fieldName, Sf, weightField, surfToWrite)
+         || writeValues<tensor>(fieldName, Sf, weightField, surfToWrite)
         )
         {
             ++nProcessed;
@@ -349,7 +339,6 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::writeValues
     const word& fieldName,
     const vectorField& Sf,
     const Field<WeightType>& weightField,
-    const bool orient,
     const meshedSurf& surfToWrite
 )
 {
@@ -357,7 +346,7 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::writeValues
 
     if (ok)
     {
-        Field<Type> values(getFieldValues<Type>(fieldName, true, orient));
+        Field<Type> values(getFieldValues<Type>(fieldName, true));
 
         // Write raw values on surface if specified
         if (surfaceWriterPtr_.valid())
@@ -389,7 +378,9 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::writeValues
             switch (postOperation_)
             {
                 case postOpNone:
+                {
                     break;
+                }
                 case postOpSqrt:
                 {
                     // sqrt: component-wise - doesn't change the type
@@ -438,8 +429,7 @@ template<class Type>
 Foam::tmp<Foam::Field<Type>>
 Foam::functionObjects::fieldValues::surfaceFieldValue::filterField
 (
-    const GeometricField<Type, fvPatchField, volMesh>& field,
-    const bool applyOrientation
+    const GeometricField<Type, fvPatchField, volMesh>& field
 ) const
 {
     tmp<Field<Type>> tvalues(new Field<Type>(faceId_.size()));
@@ -464,16 +454,7 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::filterField
         }
     }
 
-    if (applyOrientation)
-    {
-        forAll(values, i)
-        {
-            if (faceFlip_[i])
-            {
-                values[i] *= -1;
-            }
-        }
-    }
+    // No need to flip values - all boundary faces point outwards
 
     return tvalues;
 }
@@ -483,8 +464,7 @@ template<class Type>
 Foam::tmp<Foam::Field<Type>>
 Foam::functionObjects::fieldValues::surfaceFieldValue::filterField
 (
-    const GeometricField<Type, fvsPatchField, surfaceMesh>& field,
-    const bool applyOrientation
+    const GeometricField<Type, fvsPatchField, surfaceMesh>& field
 ) const
 {
     tmp<Field<Type>> tvalues(new Field<Type>(faceId_.size()));
@@ -504,7 +484,13 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::filterField
         }
     }
 
-    if (applyOrientation)
+    if (debug)
+    {
+        Pout<< "field " << field.name() << " oriented: "
+            << field.oriented()() << endl;
+    }
+
+    if (field.oriented()())
     {
         forAll(values, i)
         {
-- 
GitLab


From 8886e9087021557cedd36d98ef06997f7bf46ddf Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 24 Apr 2017 13:05:19 +0100
Subject: [PATCH 206/277] ENH: Progagted oriented() flag through field mapping

---
 ...parFvFieldReconstructorReconstructFields.C |  4 ++--
 .../fvMeshDistributeTemplates.C               |  6 +++--
 src/dynamicMesh/fvMeshSubset/fvMeshSubset.H   |  6 ++---
 .../fvMeshSubset/fvMeshSubsetInterpolate.C    | 11 +++++-----
 .../fvsPatchField/fvsPatchField.C             | 22 +++++++------------
 5 files changed, 21 insertions(+), 28 deletions(-)

diff --git a/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C b/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C
index 3df020099ff..6f1ebfd8a45 100644
--- a/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C
+++ b/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -269,7 +269,7 @@ Foam::parFvFieldReconstructor::reconstructFvSurfaceField
     }
 
     // Map all faces
-    Field<Type> internalField(flatFld, mapper);
+    Field<Type> internalField(flatFld, mapper, fld.oriented()());
 
     // Trim to internal faces (note: could also have special mapper)
     internalField.setSize
diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C b/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C
index 86a9617750a..e03840aaa53 100644
--- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C
+++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -205,6 +205,8 @@ void Foam::fvMeshDistribute::mapExposedFaces
     forAllIter(typename HashTable<fldType*>, flds, iter)
     {
         fldType& fld = *iter();
+        const bool oriented = fld.oriented()();
+
         typename fldType::Boundary& bfld = fld.boundaryFieldRef();
 
         const Field<T>& oldInternal = oldFlds[fieldI++];
@@ -225,7 +227,7 @@ void Foam::fvMeshDistribute::mapExposedFaces
                 {
                     patchFld[i] = oldInternal[oldFaceI];
 
-                    if (map.flipFaceFlux().found(faceI))
+                    if (oriented && map.flipFaceFlux().found(faceI))
                     {
                         patchFld[i] = flipOp()(patchFld[i]);
                     }
diff --git a/src/dynamicMesh/fvMeshSubset/fvMeshSubset.H b/src/dynamicMesh/fvMeshSubset/fvMeshSubset.H
index 54c41411073..84089eae2af 100644
--- a/src/dynamicMesh/fvMeshSubset/fvMeshSubset.H
+++ b/src/dynamicMesh/fvMeshSubset/fvMeshSubset.H
@@ -275,16 +275,14 @@ public:
                 const fvMesh& sMesh,
                 const labelList& patchMap,
                 const labelList& cellMap,
-                const labelList& faceMap,
-                const bool negateIfFlipped = true
+                const labelList& faceMap
             );
 
             template<class Type>
             tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>
             interpolate
             (
-                const GeometricField<Type, fvsPatchField, surfaceMesh>&,
-                const bool negateIfFlipped = true
+                const GeometricField<Type, fvsPatchField, surfaceMesh>&
             ) const;
 
             //- Map point field
diff --git a/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C b/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C
index 7a0192ee06c..8e5680737d2 100644
--- a/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C
+++ b/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C
@@ -180,10 +180,11 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
     const fvMesh& sMesh,
     const labelList& patchMap,
     const labelList& cellMap,
-    const labelList& faceMap,
-    const bool negateIfFlipped
+    const labelList& faceMap
 )
 {
+    const bool negateIfFlipped = vf.oriented()();
+
     // 1. Create the complete field with dummy patch fields
     PtrList<fvsPatchField<Type>> patchFields(patchMap.size());
 
@@ -342,8 +343,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
 template<class Type>
 tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
 (
-    const GeometricField<Type, fvsPatchField, surfaceMesh>& sf,
-    const bool negateIfFlipped
+    const GeometricField<Type, fvsPatchField, surfaceMesh>& sf
 ) const
 {
     return interpolate
@@ -352,8 +352,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
         subMesh(),
         patchMap(),
         cellMap(),
-        faceMap(),
-        negateIfFlipped
+        faceMap()
     );
 }
 
diff --git a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C
index cb0276cc7c4..f1ebd2e6908 100644
--- a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C
+++ b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -26,6 +26,7 @@ License
 #include "IOobject.H"
 #include "dictionary.H"
 #include "fvMesh.H"
+#include "surfaceMesh.H"
 #include "fvPatchFieldMapper.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
@@ -93,20 +94,15 @@ Foam::fvsPatchField<Type>::fvsPatchField
     }
     else
     {
-        FatalIOErrorInFunction
-        (
-            dict
-        )   << "essential value entry not provided"
+        FatalIOErrorInFunction(dict)
+            << "essential 'value' entry not provided"
             << exit(FatalIOError);
     }
 }
 
 
 template<class Type>
-Foam::fvsPatchField<Type>::fvsPatchField
-(
-    const fvsPatchField<Type>& ptf
-)
+Foam::fvsPatchField<Type>::fvsPatchField(const fvsPatchField<Type>& ptf)
 :
     Field<Type>(ptf),
     patch_(ptf.patch_),
@@ -149,12 +145,10 @@ void Foam::fvsPatchField<Type>::check(const fvsPatchField<Type>& ptf) const
 
 
 template<class Type>
-void Foam::fvsPatchField<Type>::autoMap
-(
-    const fvPatchFieldMapper& m
-)
+void Foam::fvsPatchField<Type>::autoMap(const fvPatchFieldMapper& m)
 {
-    Field<Type>::autoMap(m);
+    const bool oriented = internalField_.oriented()();
+    Field<Type>::autoMap(m, oriented);
 }
 
 
-- 
GitLab


From 104aac5fca75fff4a9f89ae3009598e59e8427c8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 26 Apr 2017 12:32:23 +0100
Subject: [PATCH 207/277] externalWallHeatFluxTemperature: Added optional
 support for radiative flux to the outside

By specifying the optional outside surface emissivity radiative heat transfer to
the ambient conditions is enabled.  The far-field is assumed to have an
emissivity of 1 but this could be made an optional input in the future if
needed.

Relaxation of the surface temperature is now provided via the optional
"relaxation" which aids stability of steady-state runs with strong radiative
coupling to the boundary.
---
 ...allHeatFluxTemperatureFvPatchScalarField.C | 87 +++++++++++++++++--
 ...allHeatFluxTemperatureFvPatchScalarField.H | 10 ++-
 2 files changed, 88 insertions(+), 9 deletions(-)

diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
index 186722c21e4..42fe3b8a1b4 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -27,6 +27,9 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
+#include "physicoChemicalConstants.H"
+
+using Foam::constant::physicoChemical::sigma;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -66,6 +69,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
     mode_(fixedHeatFlux),
     Q_(0),
+    relaxation_(1),
+    emissivity_(0),
     qrRelaxation_(1),
     qrName_("undefined-qr"),
     thicknessLayers_(),
@@ -89,6 +94,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     temperatureCoupledBase(patch(), dict),
     mode_(operationModeNames.read(dict.lookup("mode"))),
     Q_(0),
+    relaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
+    emissivity_(dict.lookupOrDefault<scalar>("emissivity", 0)),
     qrRelaxation_(dict.lookupOrDefault<scalar>("qrRelaxation", 1)),
     qrName_(dict.lookupOrDefault<word>("qr", "none")),
     thicknessLayers_(),
@@ -167,6 +174,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     temperatureCoupledBase(patch(), ptf),
     mode_(ptf.mode_),
     Q_(ptf.Q_),
+    relaxation_(ptf.relaxation_),
+    emissivity_(ptf.emissivity_),
     qrRelaxation_(ptf.qrRelaxation_),
     qrName_(ptf.qrName_),
     thicknessLayers_(ptf.thicknessLayers_),
@@ -213,6 +222,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     q_(tppsf.q_),
     h_(tppsf.h_),
     Ta_(tppsf.Ta_),
+    relaxation_(tppsf.relaxation_),
+    emissivity_(tppsf.emissivity_),
     qrPrevious_(tppsf.qrPrevious_),
     qrRelaxation_(tppsf.qrRelaxation_),
     qrName_(tppsf.qrName_),
@@ -235,6 +246,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     q_(tppsf.q_),
     h_(tppsf.h_),
     Ta_(tppsf.Ta_),
+    relaxation_(tppsf.relaxation_),
+    emissivity_(tppsf.emissivity_),
     qrPrevious_(tppsf.qrPrevious_),
     qrRelaxation_(tppsf.qrRelaxation_),
     qrName_(tppsf.qrName_),
@@ -326,8 +339,7 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
         return;
     }
 
-    const scalarField Tp(*this);
-    scalarField hp(patch().size(), 0);
+    const scalarField& Tp(*this);
 
     scalarField qr(Tp.size(), 0);
     if (qrName_ != "none")
@@ -372,18 +384,64 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
                     }
                 }
             }
-            hp = 1/(1/h_ + totalSolidRes);
+            scalarField hp(1/(1/h_ + totalSolidRes));
+
+            scalarField hpTa(hp*Ta_);
+
+            if (emissivity_ > 0)
+            {
+                // Evaluate the radiative flux to the environment
+                // from the surface temperature ...
+                if (totalSolidRes > 0)
+                {
+                    // ... including the effect of the solid wall thermal
+                    // resistance
+                    scalarField TpLambda(h_/(h_ + 1/totalSolidRes));
+                    scalarField Ts(TpLambda*Tp + (1 - TpLambda)*Ta_);
+                    scalarField lambdaTa4(pow4((1 - TpLambda)*Ta_));
+
+                    hp += emissivity_*sigma.value()*(pow4(Ts) - lambdaTa4)/Tp;
+                    hpTa += sigma.value()*(emissivity_*lambdaTa4 + pow4(Ta_));
+                }
+                else
+                {
+                    // ... if there is no solid wall thermal resistance use
+                    // the current wall temperature
+                    hp += emissivity_*sigma.value()*pow3(Tp);
+                    hpTa += sigma.value()*pow4(Ta_);
+                }
+            }
+
+            const scalarField kappaDeltaCoeffs
+            (
+                this->kappa(Tp)*patch().deltaCoeffs()
+            );
 
-            qr /= Tp;
             refGrad() = 0;
-            refValue() = hp*Ta_/(hp - qr);
-            valueFraction() =
-                (hp - qr)/((hp - qr) + kappa(Tp)*patch().deltaCoeffs());
+
+            forAll(Tp, i)
+            {
+                if (qr[i] < 0)
+                {
+                    const scalar hpmqr = hp[i] - qr[i]/Tp[i];
+
+                    refValue()[i] = hpTa[i]/hpmqr;
+                    valueFraction()[i] = hpmqr/(hpmqr + kappaDeltaCoeffs[i]);
+                }
+                else
+                {
+                    refValue()[i] = (hpTa[i] + qr[i])/hp[i];
+                    valueFraction()[i] = hp[i]/(hp[i] + kappaDeltaCoeffs[i]);
+                }
+            }
 
             break;
         }
     }
 
+    valueFraction() = relaxation_*valueFraction() + (1 - relaxation_);
+    refValue() = relaxation_*refValue() + (1 - relaxation_)*Tp;
+
     mixedFvPatchScalarField::updateCoeffs();
 
     if (debug)
@@ -434,6 +492,18 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write
             h_.writeEntry("h", os);
             Ta_.writeEntry("Ta", os);
 
+            if (relaxation_ < 1)
+            {
+                os.writeKeyword("relaxation")
+                    << relaxation_ << token::END_STATEMENT << nl;
+            }
+
+            if (emissivity_ > 0)
+            {
+                os.writeKeyword("emissivity")
+                    << emissivity_ << token::END_STATEMENT << nl;
+            }
+
             if (thicknessLayers_.size())
             {
                 thicknessLayers_.writeEntry("thicknessLayers", os);
@@ -448,9 +518,10 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write
 
     if (qrName_ != "none")
     {
-        qrPrevious_.writeEntry("qrPrevious", os);
         os.writeKeyword("qrRelaxation")
             << qrRelaxation_ << token::END_STATEMENT << nl;
+
+        qrPrevious_.writeEntry("qrPrevious", os);
     }
 
     refValue().writeEntry("refValue", os);
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
index 2389f60ec37..411dfe9ef0c 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
@@ -59,6 +59,8 @@ Usage
     Ta           | Ambient temperature [K]     | for mode 'coefficient' |
     thicknessLayers | Layer thicknesses [m] | no |
     kappaLayers  | Layer thermal conductivities [W/m/K] | no |
+    relaxation   | Relaxation for the wall temperature | no | 1
+    emissivity   | Surface emissivity for radiative flux to ambient | no | 0
     qr           | Name of the radiative field | no | none
     qrRelaxation | Relaxation factor for radiative field | no | 1
     kappaMethod  | Inherited from temperatureCoupledBase | inherited |
@@ -147,7 +149,13 @@ private:
         //- Ambient temperature [K]
         scalarField Ta_;
 
-        //- Chache qr for relaxation
+        //- Relaxation for the wall temperature (thermal inertia)
+        scalar relaxation_;
+
+        //- Optional surface emissivity for radiative transfer to ambient
+        scalar emissivity_;
+
+        //- Cache qr for relaxation
         scalarField qrPrevious_;
 
         //- Relaxation for qr
-- 
GitLab


From b9379426c9154c74518bd1ff52119ef2d9a02c66 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 27 Apr 2017 14:47:48 +0100
Subject: [PATCH 208/277] ENH: Oriented fields - updated dependent code

---
 .../solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H  | 2 ++
 .../multiphase/compressibleInterFoam/alphaEqnsSubCycle.H  | 2 ++
 .../multiphaseMixtureThermo/multiphaseMixtureThermo.C     | 3 +++
 .../interCondensatingEvaporatingFoam.C                    | 1 +
 .../interFoam/interMixingFoam/alphaEqnsSubCycle.H         | 1 +
 .../interPhaseChangeFoam/interPhaseChangeFoam.C           | 2 ++
 .../solvers/multiphase/multiphaseEulerFoam/createFields.H | 1 +
 .../multiphaseSystem/multiphaseSystem.C                   | 4 ++++
 .../multiphaseSystem/phaseModel/phaseModel.C              | 2 ++
 .../solvers/multiphase/multiphaseEulerFoam/pEqn.H         | 1 +
 .../multiphaseMixture/multiphaseMixture.C                 | 5 +++++
 .../BlendedInterfacialModel/BlendedInterfacialModel.C     | 2 ++
 .../MomentumTransferPhaseSystem.C                         | 8 +++++++-
 .../phaseModel/MovingPhaseModel/MovingPhaseModel.C        | 3 +++
 .../multiphaseSystem/multiphaseSystem.C                   | 4 ++++
 .../reactingMultiphaseEulerFoam/pU/pEqn.H                 | 2 ++
 .../multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H     | 1 +
 .../twoPhaseSystem/phaseModel/phaseModel.C                | 3 +++
 src/OpenFOAM/fields/Fields/Field/Field.C                  | 1 -
 .../CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C       | 3 +++
 20 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
index c0d3c8e43a9..30916f5323e 100644
--- a/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
+++ b/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
@@ -13,6 +13,8 @@ if (nAlphaSubCycles > 1)
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
 
+    rhoPhiSum.oriented().oriented() = true;
+
     for
     (
         subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
index 89e56191503..b2f925ef356 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
@@ -21,6 +21,8 @@
             dimensionedScalar("0", rhoPhi.dimensions(), 0)
         );
 
+        rhoPhiSum.oriented().oriented() = true;
+
         for
         (
             subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
index 55175d8d804..9f51ee22a3b 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
@@ -113,6 +113,8 @@ Foam::multiphaseMixtureThermo::multiphaseMixtureThermo
         1e-8/pow(average(mesh_.V()), 1.0/3.0)
     )
 {
+    rhoPhi_.oriented().oriented() = true;
+
     calcAlphas();
     alphas_.write();
     correct();
@@ -698,6 +700,7 @@ Foam::multiphaseMixtureThermo::surfaceTensionForce() const
     );
 
     surfaceScalarField& stf = tstf.ref();
+    stf.oriented().oriented() = true;
 
     forAllConstIter(PtrDictionary<phaseModel>, phases_, phase1)
     {
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
index d9981659b8d..5adc39ff69b 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
@@ -104,6 +104,7 @@ int main(int argc, char *argv[])
                 mesh,
                 dimensionedScalar("0", dimMass/dimTime, 0)
             );
+            rhoPhi.oriented().oriented() = true;
 
             mixture->correct();
 
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
index 6025b60069f..af4dc128d41 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
@@ -12,6 +12,7 @@ if (nAlphaSubCycles > 1)
         mesh,
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
+    rhoPhiSum.oriented().oriented() = true;
 
     for
     (
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
index 3ef77d362f7..4b04abbfa5d 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
@@ -100,6 +100,8 @@ int main(int argc, char *argv[])
                 mesh,
                 dimensionedScalar("0", dimMass/dimTime, 0)
             );
+            rhoPhi.oriented().oriented() = true;
+
 
             mixture->correct();
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H b/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H
index a4b9838335d..ff11947b5af 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H
@@ -39,6 +39,7 @@ surfaceScalarField phi
     mesh,
     dimensionedScalar("phi", dimArea*dimVelocity, 0)
 );
+phi.oriented().oriented() = true;
 
 multiphaseSystem fluid(U, phi);
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index be4def509ec..47ee2dc0fb6 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -816,6 +816,8 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
         )
     );
 
+    tSurfaceTension.ref().oriented().oriented() = true;
+
     forAllConstIter(PtrDictionary<phaseModel>, phases_, iter)
     {
         const phaseModel& phase2 = iter();
@@ -918,6 +920,8 @@ void Foam::multiphaseSystem::solve()
                 )
             );
 
+            alphaPhiSums[phasei].oriented().oriented() = true;
+
             phasei++;
         }
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
index f8b323346fd..4bac0c71d08 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
@@ -113,6 +113,8 @@ Foam::phaseModel::phaseModel
         dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0)
     )
 {
+    alphaPhi_.oriented().oriented() = true;
+
     const word phiName = IOobject::groupName("phi", name_);
 
     IOobject phiHeader
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
index 8e2d78cbec8..16c70fbabd6 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
@@ -57,6 +57,7 @@
         mesh,
         dimensionedScalar("phiHbyA", dimArea*dimVelocity, 0)
     );
+    phiHbyA.oriented().oriented() = true;
 
     volScalarField rho("rho", fluid.rho());
     surfaceScalarField ghSnGradRho(ghf*fvc::snGrad(rho)*mesh.magSf());
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index 5dd59dead15..c6069dfbc06 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -128,6 +128,8 @@ Foam::multiphaseMixture::multiphaseMixture
         1e-8/pow(average(mesh_.V()), 1.0/3.0)
     )
 {
+    rhoPhi_.oriented().oriented() = true;
+
     calcAlphas();
     alphas_.write();
 }
@@ -273,6 +275,7 @@ Foam::multiphaseMixture::surfaceTensionForce() const
     );
 
     surfaceScalarField& stf = tstf.ref();
+    stf.oriented().oriented() = true;
 
     forAllConstIter(PtrDictionary<phase>, phases_, iter1)
     {
@@ -335,6 +338,8 @@ void Foam::multiphaseMixture::solve()
             dimensionedScalar("0", rhoPhi_.dimensions(), 0)
         );
 
+        rhoPhiSum.oriented().oriented() = true;
+
         dimensionedScalar totalDeltaT = runTime.deltaT();
 
         for
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C
index 64345bf7597..b089d1b9b94 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C
@@ -456,6 +456,8 @@ Foam::BlendedInterfacialModel<ModelType>::Ff() const
         )
     );
 
+    x.ref().oriented().oriented() = true;
+
     if (model_.valid())
     {
         x.ref() += model_->Ff()*(scalar(1) - f1() - f2());
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C
index b9859eb41d0..bcdc4d5d29d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C
@@ -347,7 +347,7 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::Ff
     }
     else
     {
-        return tmp<surfaceScalarField>
+        tmp<surfaceScalarField> tFf
         (
             new surfaceScalarField
             (
@@ -364,6 +364,10 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::Ff
                 dimensionedScalar("zero", liftModel::dimF*dimArea, 0)
             )
         );
+
+        tFf.ref().oriented().oriented() = true;
+
+        return tFf;
     }
 }
 
@@ -621,6 +625,8 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::setPhiD
                 )
             )
         );
+
+        phiDs[phasei].oriented().oriented() = true;
     }
 
     return phiDs[phasei];
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
index 0605c1171e8..f271bf95e84 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
@@ -200,6 +200,9 @@ Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel
         dimensionedScalar("0", dimDensity/dimTime, 0)
     )
 {
+    alphaPhi_.oriented().oriented() = true;
+    alphaRhoPhi_.oriented().oriented() = true;
+
     phi_.writeOpt() = IOobject::AUTO_WRITE;
     correctKinematics();
 }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index ca37c2245b4..83057cde7fc 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -558,6 +558,8 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
         )
     );
 
+    tSurfaceTension.ref().oriented().oriented() = true;
+
     forAll(phases(), phasej)
     {
         const phaseModel& phase2 = phases()[phasej];
@@ -663,6 +665,8 @@ void Foam::multiphaseSystem::solve()
                     dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0)
                 )
             );
+
+            alphaPhiSums[phasei].oriented().oriented() = true;
         }
 
         for
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
index 5e916dce2fd..95828abbfb9 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
@@ -169,6 +169,8 @@ while (pimple.correct())
         dimensionedScalar("phiHbyA", dimArea*dimVelocity, 0)
     );
 
+    phiHbyA.oriented().oriented() = true;
+
     forAll(phases, phasei)
     {
         phaseModel& phase = phases[phasei];
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H
index 81c65c1caf7..96300269894 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H
@@ -14,6 +14,7 @@ if (nAlphaSubCycles > 1)
         mesh,
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
+    rhoPhiSum.oriented().oriented() = true;
 
     for
     (
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
index f5522c7509e..c8e8170fc4c 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
@@ -109,6 +109,9 @@ Foam::phaseModel::phaseModel
         dimensionedScalar("0", dimensionSet(1, 0, -1, 0, 0), 0)
     )
 {
+    alphaPhi_.oriented().oriented() = true;
+    alphaRhoPhi_.oriented().oriented() = true;
+
     thermo_->validate("phaseModel " + name_, "h", "e");
 
     const word phiName = IOobject::groupName("phi", name_);
diff --git a/src/OpenFOAM/fields/Fields/Field/Field.C b/src/OpenFOAM/fields/Fields/Field/Field.C
index f60ed5047b5..f6ca2a766c6 100644
--- a/src/OpenFOAM/fields/Fields/Field/Field.C
+++ b/src/OpenFOAM/fields/Fields/Field/Field.C
@@ -28,7 +28,6 @@ License
 #include "dictionary.H"
 #include "contiguous.H"
 #include "mapDistributeBase.H"
-#include "flipOp.H"
 
 // * * * * * * * * * * * * * * * Static Members  * * * * * * * * * * * * * * //
 
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index fc31e4b1c5a..2f483fa3007 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -1195,6 +1195,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
             "ddt0(" + phi.name() + ')',
             phi.dimensions()
         );
+    dphidt0.oriented().oriented() = true;
 
     dimensionedScalar rDtCoef = rDtCoef_(ddt0);
 
@@ -1439,6 +1440,8 @@ tmp<surfaceScalarField> CrankNicolsonDdtScheme<Type>::meshPhi
         dimVolume
     );
 
+    meshPhi0.oriented().oriented() = true;
+
     if (evaluate(meshPhi0))
     {
         meshPhi0 =
-- 
GitLab


From 72d39f170790e097f5c53af7b70b5a4e8b8b24ec Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 27 Apr 2017 14:50:20 +0100
Subject: [PATCH 209/277] STYLE: Minor code formatting

---
 .../fvsPatchFields/fvsPatchField/fvsPatchField.H     |  3 +--
 .../CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C  | 12 ++++++------
 src/finiteVolume/fvMesh/fvMeshGeometry.C             |  9 +++------
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.H b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.H
index 6c2f12a436f..1b9f0aa2aca 100644
--- a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.H
+++ b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.H
@@ -286,8 +286,7 @@ public:
             }
 
             //- Return dimensioned internal field reference
-            const DimensionedField<Type, surfaceMesh>&
-            internalField() const
+            const DimensionedField<Type, surfaceMesh>& internalField() const
             {
                 return internalField_;
             }
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index 2f483fa3007..7c9505841b3 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -74,8 +74,7 @@ CrankNicolsonDdtScheme<Type>::DDt0Field<GeoField>::DDt0Field
 
 template<class Type>
 template<class GeoField>
-label CrankNicolsonDdtScheme<Type>::DDt0Field<GeoField>::
-startTimeIndex() const
+label CrankNicolsonDdtScheme<Type>::DDt0Field<GeoField>::startTimeIndex() const
 {
     return startTimeIndex_;
 }
@@ -83,8 +82,7 @@ startTimeIndex() const
 
 template<class Type>
 template<class GeoField>
-GeoField& CrankNicolsonDdtScheme<Type>::DDt0Field<GeoField>::
-operator()()
+GeoField& CrankNicolsonDdtScheme<Type>::DDt0Field<GeoField>::operator()()
 {
     return *this;
 }
@@ -92,8 +90,10 @@ operator()()
 
 template<class Type>
 template<class GeoField>
-void CrankNicolsonDdtScheme<Type>::DDt0Field<GeoField>::
-operator=(const GeoField& gf)
+void CrankNicolsonDdtScheme<Type>::DDt0Field<GeoField>::operator=
+(
+    const GeoField& gf
+)
 {
     GeoField::operator=(gf);
 }
diff --git a/src/finiteVolume/fvMesh/fvMeshGeometry.C b/src/finiteVolume/fvMesh/fvMeshGeometry.C
index 6d2976636ad..99422670413 100644
--- a/src/finiteVolume/fvMesh/fvMeshGeometry.C
+++ b/src/finiteVolume/fvMesh/fvMeshGeometry.C
@@ -273,8 +273,7 @@ const Foam::volScalarField::Internal& Foam::fvMesh::V00() const
 }
 
 
-Foam::tmp<Foam::volScalarField::Internal>
-Foam::fvMesh::Vsc() const
+Foam::tmp<Foam::volScalarField::Internal> Foam::fvMesh::Vsc() const
 {
     if (moving() && time().subCycling())
     {
@@ -302,8 +301,7 @@ Foam::fvMesh::Vsc() const
 }
 
 
-Foam::tmp<Foam::volScalarField::Internal>
-Foam::fvMesh::Vsc0() const
+Foam::tmp<Foam::volScalarField::Internal> Foam::fvMesh::Vsc0() const
 {
     if (moving() && time().subCycling())
     {
@@ -413,8 +411,7 @@ Foam::tmp<Foam::surfaceVectorField> Foam::fvMesh::delta() const
         delta[facei] = C[neighbour[facei]] - C[owner[facei]];
     }
 
-    surfaceVectorField::Boundary& deltabf =
-        delta.boundaryFieldRef();
+    surfaceVectorField::Boundary& deltabf =  delta.boundaryFieldRef();
 
     forAll(deltabf, patchi)
     {
-- 
GitLab


From 11c54566280328728f7f2f5ad1401cdb7e63a46f Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 28 Apr 2017 08:49:45 +0200
Subject: [PATCH 210/277] ENH: improvements for surfaceIntersection (issue
 #450)

- adjust for updates in 'develop'

- change surfaceIntersection constructor to take a dictionary of
  options.

        tolerance      | Edge-length tolerance          | scalar | 1e-3
        allowEdgeHits  | Edge-end cuts another edge     | bool   | true
        avoidDuplicates | Reduce the number of duplicate points    | bool | true
        warnDegenerate | Number of warnings about degenerate edges | label | 0
---
 .../test/surfaceIntersection/Make/files       |   3 +
 .../test/surfaceIntersection/Make/options     |   9 +
 .../Test-surfaceIntersection.C                | 234 +++++
 .../surface/surfaceFeatureExtract/Allwclean   |   7 +
 .../surface/surfaceFeatureExtract/Allwmake    |   9 +
 .../extractionMethod/Make/files               |   3 +-
 .../extractionMethod/extractFromFile.C        |   1 -
 .../extractionMethod/extractFromNone.C        |  81 ++
 .../extractionMethod/extractFromNone.H        |  91 ++
 .../extractionMethod/extractFromSurface.C     |   6 -
 .../extractionMethod/extractFromSurface.H     |   4 -
 .../surfaceFeatureExtract.C                   | 465 +++-------
 .../surfaceFeatureExtractDict                 |  54 +-
 .../surfaceIntersection/surfaceIntersection.C | 862 +++++++++++-------
 .../surfaceIntersection/surfaceIntersection.H | 109 ++-
 .../surfaceIntersectionFuncs.C                |  57 +-
 16 files changed, 1249 insertions(+), 746 deletions(-)
 create mode 100644 applications/test/surfaceIntersection/Make/files
 create mode 100644 applications/test/surfaceIntersection/Make/options
 create mode 100644 applications/test/surfaceIntersection/Test-surfaceIntersection.C
 create mode 100755 applications/utilities/surface/surfaceFeatureExtract/Allwclean
 create mode 100755 applications/utilities/surface/surfaceFeatureExtract/Allwmake
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
 create mode 100644 applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H

diff --git a/applications/test/surfaceIntersection/Make/files b/applications/test/surfaceIntersection/Make/files
new file mode 100644
index 00000000000..e0516a472c0
--- /dev/null
+++ b/applications/test/surfaceIntersection/Make/files
@@ -0,0 +1,3 @@
+Test-surfaceIntersection.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-surfaceIntersection
diff --git a/applications/test/surfaceIntersection/Make/options b/applications/test/surfaceIntersection/Make/options
new file mode 100644
index 00000000000..6ae6c04df12
--- /dev/null
+++ b/applications/test/surfaceIntersection/Make/options
@@ -0,0 +1,9 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/edgeMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/triSurface/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume \
+    -lmeshTools -ledgeMesh
diff --git a/applications/test/surfaceIntersection/Test-surfaceIntersection.C b/applications/test/surfaceIntersection/Test-surfaceIntersection.C
new file mode 100644
index 00000000000..8c0f83f641e
--- /dev/null
+++ b/applications/test/surfaceIntersection/Test-surfaceIntersection.C
@@ -0,0 +1,234 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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/>.
+
+Application
+    Test-surfaceIntersection
+
+Description
+    Test surface-surface intersection
+
+\*---------------------------------------------------------------------------*/
+
+#include "argList.H"
+#include "Time.H"
+#include "triSurface.H"
+#include "triSurfaceMesh.H"
+#include "surfaceIntersection.H"
+#include "OFstream.H"
+
+using namespace Foam;
+
+autoPtr<triSurface> loadSurface
+(
+    const Foam::Time& runTime,
+    const fileName& surfName
+)
+{
+    Info<< "Reading surface " << surfName << endl;
+
+    const fileName fallback =
+        runTime.constantPath()/triSurfaceMesh::meshSubDir/surfName;
+
+    autoPtr<triSurface> surfPtr;
+    if (isFile(surfName))
+    {
+        surfPtr.set(new triSurface(surfName));
+    }
+    else if (isFile(fallback))
+    {
+        surfPtr.set(new triSurface(fallback));
+    }
+    else
+    {
+        FatalErrorInFunction
+            << "No such file:" << surfName << exit(FatalError);
+    }
+
+    return surfPtr;
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+    argList::addNote
+    (
+        "Intersection of two surfaces. Writes obj file"
+    );
+    argList::addBoolOption
+    (
+        "debug2",
+        "set surfaceIntersection debug=2"
+    );
+    argList::addBoolOption
+    (
+        "debug4",
+        "set surfaceIntersection debug=4"
+    );
+    argList::addBoolOption
+    (
+        "print",
+        "print information about cuts, etc"
+    );
+    argList::addBoolOption
+    (
+        "mergeEdges",
+        "merge duplicate edges"
+    );
+    argList::addOption
+    (
+        "mergePoints",
+        "mergeTol",
+        "merge points (and edges) using the specified tolerance"
+    );
+
+    #include "addDictOption.H"
+
+    argList::addNote
+    (
+        "test intersect of two surfaces. Writes obj file"
+    );
+    argList::noParallel();
+    argList::noFunctionObjects();
+    argList::validArgs.append("surface file");
+    argList::validArgs.append("surface file");
+
+    #include "setRootCase.H"
+    #include "createTime.H"
+
+    const word outputFile(args.executable() + ".obj");
+
+    const fileName surf1Name(args[1]);
+    triSurface surf1 = loadSurface(runTime, surf1Name)();
+    Info<< surf1Name << " statistics:" << endl;
+    surf1.writeStats(Info);
+    Info<< endl;
+
+    const fileName surf2Name(args[2]);
+    triSurface surf2 = loadSurface(runTime, surf2Name)();
+    Info<< surf2Name << " statistics:" << endl;
+    surf2.writeStats(Info);
+    Info<< endl;
+
+
+    if (args.optionFound("debug2"))
+    {
+        surfaceIntersection::debug |= 2;
+    }
+    if (args.optionFound("debug4"))
+    {
+        surfaceIntersection::debug |= 4;
+    }
+    const bool optPrint = args.optionFound("print");
+
+    dictionary intersectOptions;
+    if (args.optionFound("dict"))
+    {
+        intersectOptions = IOdictionary
+        (
+            IOobject
+            (
+                args["dict"],
+                runTime,
+                IOobject::MUST_READ_IF_MODIFIED,
+                IOobject::NO_WRITE
+            )
+        );
+    }
+
+    intersectOptions.writeEntry("intersectOptions", Info);
+    Info<< endl;
+
+    triSurfaceSearch query1(surf1);
+    triSurfaceSearch query2(surf2);
+    surfaceIntersection cuts(query1, query2, intersectOptions);
+
+    Info<<"intersection "
+        << cuts.cutPoints().size() << " points "
+        << cuts.cutEdges().size()  << " edges" << nl;
+
+    if (optPrint)
+    {
+        Info<< "surf1-cuts: " << cuts.surf1EdgeCuts() << nl
+            << "surf2-cuts: " << cuts.surf2EdgeCuts() << nl
+            << "face-pairs: " << cuts.facePairToEdge() << nl
+            << "edges: " << cuts.cutEdges() << nl;
+    }
+
+    word mergeOp;
+    if (args.optionFound("mergePoints"))
+    {
+        cuts.mergePoints(args.optionRead<scalar>("mergePoints"));
+        mergeOp = "mergePoints";
+    }
+    else if (args.optionFound("mergeEdges"))
+    {
+        cuts.mergeEdges();
+        mergeOp = "mergeEdges";
+    }
+
+    if (!mergeOp.empty())
+    {
+        Info<< mergeOp << ": "
+            << cuts.cutPoints().size() << " points "
+            << cuts.cutEdges().size()  << " edges" << nl;
+
+        if (optPrint)
+        {
+            Info<< "surf1-cuts: " << cuts.surf1EdgeCuts() << nl
+                << "surf2-cuts: " << cuts.surf2EdgeCuts() << nl
+                << "face-pairs: " << cuts.facePairToEdge() << nl
+                << "edges: " << cuts.cutEdges() << nl;
+        }
+    }
+
+    const pointField& points = cuts.cutPoints();
+    const edgeList&    edges = cuts.cutEdges();
+
+    if (points.size() || edges.size())
+    {
+        Info<<"write to " << outputFile << nl;
+
+        OFstream os(outputFile);
+
+        forAll(points, pointi)
+        {
+            const point& pt = points[pointi];
+            os << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z() << nl;
+        }
+
+        forAll(edges, edgei)
+        {
+            const edge& e = edges[edgei];
+            os << "l " << e.start()+1 << ' ' << e.end()+1 << nl;
+        }
+    }
+
+    Info<< "End\n" << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/Allwclean b/applications/utilities/surface/surfaceFeatureExtract/Allwclean
new file mode 100755
index 00000000000..421b6686c43
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/Allwclean
@@ -0,0 +1,7 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+wclean libso extractionMethod
+wclean .
+
+#------------------------------------------------------------------------------
diff --git a/applications/utilities/surface/surfaceFeatureExtract/Allwmake b/applications/utilities/surface/surfaceFeatureExtract/Allwmake
new file mode 100755
index 00000000000..ee26d27fc3c
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/Allwmake
@@ -0,0 +1,9 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Parse arguments for library compilation
+. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
+
+(wmake libso extractionMethod && wmake)
+
+#------------------------------------------------------------------------------
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files
index 29dd2b73eb3..8c9bb276602 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/files
@@ -1,6 +1,7 @@
 method = .
 $(method)/surfaceFeaturesExtraction.C
-$(method)/extractFromSurface.C
 $(method)/extractFromFile.C
+$(method)/extractFromNone.C
+$(method)/extractFromSurface.C
 
 LIB = $(FOAM_LIBBIN)/libsurfaceFeatureExtract
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
index 437024fbac5..d9fb9b1dde6 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
@@ -24,7 +24,6 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "extractFromFile.H"
-#include "ListOps.H"
 #include "edgeMesh.H"
 #include "addToRunTimeSelectionTable.H"
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
new file mode 100644
index 00000000000..887e9a4d659
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
@@ -0,0 +1,81 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           |  Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "extractFromNone.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+    addNamedToRunTimeSelectionTable
+    (
+        method,
+        extractFromNone,
+        dictionary,
+        none
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::extractFromNone::extractFromNone
+(
+    const dictionary& dict
+)
+:
+    method()
+{
+    const dictionary& coeffDict = dict.subOrEmptyDict("extractFromNoneCoeffs");
+
+    coeffDict.readIfPresent("includedAngle", includedAngle_);
+    coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::surfaceFeaturesExtraction::extractFromNone::~extractFromNone()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+
+Foam::autoPtr<Foam::surfaceFeatures>
+Foam::surfaceFeaturesExtraction::extractFromNone::features
+(
+    const triSurface& surf
+) const
+{
+    return autoPtr<surfaceFeatures>(new surfaceFeatures(surf));
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
new file mode 100644
index 00000000000..da80a3c624a
--- /dev/null
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
@@ -0,0 +1,91 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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::surfaceFeaturesExtraction::extractFromNone
+
+Description
+    Run-time selectable surface feature extraction.
+
+SourceFiles
+    extractionMethod.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef surfaceFeaturesExtraction_extractFromNone_H
+#define surfaceFeaturesExtraction_extractFromNone_H
+
+#include "surfaceFeaturesExtraction.H"
+#include "dictionary.H"
+#include "Switch.H"
+#include "triSurface.H"
+#include "edgeIntersections.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceFeaturesExtraction
+{
+
+/*---------------------------------------------------------------------------*\
+         Class surfaceFeaturesExtraction::extractFromNone Declaration
+\*---------------------------------------------------------------------------*/
+
+class extractFromNone
+:
+    public method
+{
+
+public:
+
+    // Constructors
+
+        //- Construct from dictionary
+        extractFromNone(const dictionary& dict);
+
+
+    //- Destructor
+    virtual ~extractFromNone();
+
+
+    //- Extracted features from surface (no-op)
+    virtual autoPtr<surfaceFeatures> features
+    (
+        const triSurface& surf
+    ) const override;
+
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFeaturesExtraction
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
index f590bb707ac..6621d6c9314 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
@@ -26,12 +26,6 @@ License
 #include "extractFromSurface.H"
 #include "addToRunTimeSelectionTable.H"
 
-#include "triSurface.H"
-#include "triSurfaceSearch.H"
-#include "scalarField.H"
-#include "edgeIntersections.H"
-
-
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
index 980db47b144..e007a8d3b9e 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
@@ -56,10 +56,6 @@ class extractFromSurface
 :
     public method
 {
-
-    bool selfIntersection_;
-
-
 public:
 
     // Constructors
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index 9dcaae6b636..3ae006e69d8 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -29,12 +29,17 @@ Group
 
 Description
     Extracts and writes surface features to file. All but the basic feature
-    extraction is WIP.
-
-    Curvature calculation is an implementation of the algorithm from:
-
-      "Estimating Curvatures and their Derivatives on Triangle Meshes"
-      by S. Rusinkiewicz
+    extraction is a work-in-progress.
+
+    The curvature calculation is an implementation of the algorithm from:
+    \verbatim
+        "Estimating Curvatures and their Derivatives on Triangle Meshes"
+        by S. Rusinkiewicz
+        3DPVT'04 Proceedings of the 3D Data Processing,
+        Visualization, and Transmission, 2nd International Symposium
+        Pages 486-493
+        http://gfx.cs.princeton.edu/pubs/_2004_ECA/curvpaper.pdf
+    \endverbatim
 
 \*---------------------------------------------------------------------------*/
 
@@ -60,6 +65,7 @@ Description
 #include "point.H"
 #include "triadField.H"
 #include "transform.H"
+#include "triSurfaceLoader.H"
 
 using namespace Foam;
 
@@ -367,23 +373,6 @@ triSurfacePointScalarField calcCurvature
 }
 
 
-bool edgesConnected(const edge& e1, const edge& e2)
-{
-    if
-    (
-        e1.start() == e2.start()
-     || e1.start() == e2.end()
-     || e1.end() == e2.start()
-     || e1.end() == e2.end()
-    )
-    {
-        return true;
-    }
-
-    return false;
-}
-
-
 scalar calcProximityOfFeaturePoints
 (
     const List<pointIndexHit>& hitList,
@@ -462,7 +451,7 @@ scalar calcProximityOfFeatureEdges
                     const edge& e2 = efem.edges()[pHit2.index()];
 
                     // Don't refine if the edges are connected to each other
-                    if (!edgesConnected(e1, e2))
+                    if (!e1.connects(e2))
                     {
                         scalar curDist =
                             mag(pHit1.hitPoint() - pHit2.hitPoint());
@@ -480,25 +469,12 @@ scalar calcProximityOfFeatureEdges
 
 void dumpBox(const treeBoundBox& bb, const fileName& fName)
 {
-    OFstream str(fName);
+    OFstream os(fName);
 
     Info<< "Dumping bounding box " << bb << " as lines to obj file "
-        << str.name() << endl;
+        << os.name() << endl;
 
-
-    pointField boxPoints(bb.points());
-
-    forAll(boxPoints, i)
-    {
-        meshTools::writeOBJ(str, boxPoints[i]);
-    }
-
-    forAll(treeBoundBox::edges, i)
-    {
-        const edge& e = treeBoundBox::edges[i];
-
-        str<< "l " << e[0]+1 <<  ' ' << e[1]+1 << nl;
-    }
+    meshTools::writeOBJ(os, bb);
 }
 
 
@@ -866,62 +842,6 @@ void writeStats(const extendedFeatureEdgeMesh& fem, Ostream& os)
 }
 
 
-// Read and combine all surfaces into a single one
-
-autoPtr<triSurface> loadSurfaces(Time& runTime, const wordList& surfNames)
-{
-    List<labelledTri> faces;
-    pointField points;
-    label regoff = 0; // region offset
-
-    forAll(surfNames, surfi)
-    {
-        const word& surfName = surfNames[surfi];
-
-        triSurface addsurf(runTime.constantPath()/"triSurface"/surfName);
-
-        List<labelledTri> addfaces(addsurf.xferFaces());
-        List<point> addpoints(addsurf.xferPoints());
-
-        if (surfi)
-        {
-            const label ptoff = points.size(); // point offset
-
-            forAll(addfaces, facei)
-            {
-                labelledTri& f = addfaces[facei];
-                forAll(f, fi)
-                {
-                    f[fi] += ptoff;
-                }
-                f.region() += regoff;
-            }
-
-            faces.append(addfaces);
-            points.append(addpoints);
-        }
-        else
-        {
-            faces.transfer(addfaces);
-            points.transfer(addpoints);
-        }
-
-        regoff += addsurf.patches().size();
-    }
-
-    return autoPtr<triSurface>
-    (
-        new triSurface
-        (
-            faces,
-            geometricSurfacePatchList(),
-            points,
-            true
-        )
-    );
-}
-
-
 int main(int argc, char *argv[])
 {
     argList::addNote
@@ -939,25 +859,15 @@ int main(int argc, char *argv[])
     const word dictName("surfaceFeatureExtractDict");
     #include "setSystemRunTimeDictionaryIO.H"
 
-    // Will be using triSurface, so filter according to what is supported
-    fileNameList validSurfaceFiles = readDir
-    (
-        runTime.path()/runTime.constant()/"triSurface",
-        fileName::FILE
-    );
-    inplaceSubsetList
-    (
-        validSurfaceFiles,
-        [](const fileName& f){ return triSurface::canRead(f); }
-    );
-
-    // sort and eliminate duplicates (eg, files with/without .gz)
-    inplaceUniqueSort(validSurfaceFiles);
-
     Info<< "Reading " << dictName << nl << endl;
-
     const IOdictionary dict(dictIO);
 
+    // Loader for available triSurface surface files
+    triSurfaceLoader loader(runTime);
+
+    // Where to write VTK output files
+    const fileName vtkOutputDir = runTime.constantPath()/"triSurface";
+
     forAllConstIter(dictionary, dict, iter)
     {
         if (!iter().isDict())
@@ -972,115 +882,88 @@ int main(int argc, char *argv[])
             continue;
         }
 
-        autoPtr<surfaceFeaturesExtraction::method> extractPtr =
+        autoPtr<surfaceFeaturesExtraction::method> extractor =
             surfaceFeaturesExtraction::method::New
             (
                 surfaceDict
             );
 
-        const surfaceFeaturesExtraction::method& extract = extractPtr();
-
-        // Output name, cleansed of extensions
-        const word sFeatFileName =
+        // The output name, cleansed of extensions
+        // Optional "output" entry, or the dictionary name.
+        const word outputName =
             fileName
             (
                 surfaceDict.lookupOrDefault<word>("output", iter().keyword())
             ).lessExt();
 
-        wordList surfFileNames;
-
+        // The "surfaces" entry is normally optional, but if the sub-dictionary
+        // is itself called "surfaces", then this becomes mandatory.
+        // This provides a simple means of handling both situations without an
+        // additional switch.
         if
         (
-            iter().keyword() == "surfaces"   // mandatory
-         || surfaceDict.found("surfaces")    // or optional
+            iter().keyword() == "surfaces"  // mandatory
+         || surfaceDict.found("surfaces")   // or optional
         )
         {
-            wordReList regexs(surfaceDict.lookup("surfaces"));
-
-            labelList selected = findStrings(regexs, validSurfaceFiles);
-            surfFileNames.setSize(selected.size());
-            forAll(selected, i)
-            {
-                surfFileNames[i] = validSurfaceFiles[selected[i]].name();
-            }
-
-            if (surfFileNames.empty())
-            {
-                FatalErrorInFunction
-                    << "No surfaces specified/found for entry: "
-                    << iter().keyword()
-                    << exit(FatalError);
-            }
+            loader.select(wordReList(surfaceDict.lookup("surfaces")));
         }
         else
         {
-            surfFileNames.setSize(1);
-            surfFileNames[0] = iter().keyword();
-
-            const fileName file
-            (
-                runTime.constantPath()/"triSurface"/surfFileNames[0]
-            );
+            loader.select(iter().keyword());
+        }
 
-            if (!isFile(file))
-            {
-                FatalErrorInFunction
-                    << "No surface: " << file.name()
-                    << exit(FatalError);
-            }
+        if (loader.selected().empty())
+        {
+            FatalErrorInFunction
+                << "No surfaces specified/found for entry: "
+                << iter().keyword() << exit(FatalError);
         }
+        // DebugVar(loader.available());
+        // DebugVar(outputName);
 
-        // DebugVar(surfFileNames);
-        // DebugVar(sFeatFileName);
 
         Info<< "Surfaces           : ";
-        if (surfFileNames.size() == 1)
+        if (loader.selected().size() == 1)
         {
-            Info<< surfFileNames[0] << nl;
+            Info<< loader.selected()[0] << nl;
         }
         else
         {
-            Info<< flatOutput(surfFileNames) << nl;
+            Info<< flatOutput(loader.selected()) << nl;
         }
+        Info<< "Output             : " << outputName << nl;
 
-        Info<< "Output             : " << sFeatFileName << nl;
+        // Load a single file, or load and combine multiple selected files
+        autoPtr<triSurface> surfPtr = loader.load();
+        if (!surfPtr.valid() || surfPtr().empty())
+        {
+            FatalErrorInFunction
+                << "Problem loading surface(s) for entry: "
+                << iter().keyword() << exit(FatalError);
+        }
+
+        triSurface surf = surfPtr();
 
         const Switch writeVTK = surfaceDict.lookupOrDefault<Switch>
         (
-            "writeVTK", Switch::OFF
+            "writeVTK",
+            Switch::OFF
         );
         const Switch writeObj = surfaceDict.lookupOrDefault<Switch>
         (
-            "writeObj", Switch::OFF
-        );
-
-        const Switch curvature = surfaceDict.lookupOrDefault<Switch>
-        (
-            "curvature", Switch::OFF
-        );
-        const Switch featureProximity = surfaceDict.lookupOrDefault<Switch>
-        (
-            "featureProximity", Switch::OFF
-        );
-        const Switch closeness = surfaceDict.lookupOrDefault<Switch>
-        (
-            "closeness", Switch::OFF
+            "writeObj",
+            Switch::OFF
         );
 
         Info<< "write VTK: " <<  writeVTK << nl;
 
-        Info<< nl << "Feature line extraction is only valid on closed manifold "
-            << "surfaces." << endl;
-
-
-        // Read and combine all surfaces into a single one
-
-        autoPtr<triSurface> surfPtr = loadSurfaces(runTime, surfFileNames);
-        triSurface surf = surfPtr();
+        Info<< "Feature line extraction is only valid on closed manifold "
+            << "surfaces." << nl;
 
-        Info<< "Statistics:" << endl;
+        Info<< nl << "Statistics:" << nl;
         surf.writeStats(Info);
-        Info<< endl;
+        Info<< nl;
 
         // need plain faces if outputting VTK format
         faceList faces;
@@ -1097,19 +980,19 @@ int main(int argc, char *argv[])
         // Either construct features from surface & featureAngle or read set.
         // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-        autoPtr<surfaceFeatures> set = extract.features(surf);
+        autoPtr<surfaceFeatures> features = extractor().features(surf);
 
         // Trim set
         // ~~~~~~~~
 
         if (surfaceDict.isDict("trimFeatures"))
         {
-            dictionary trimDict = surfaceDict.subDict("trimFeatures");
-            const scalar minLen =
-                trimDict.lookupOrAddDefault<scalar>("minLen", -GREAT);
+            const dictionary& trimDict = surfaceDict.subDict("trimFeatures");
 
+            const scalar minLen =
+                trimDict.lookupOrDefault<scalar>("minLen", 0);
             const label minElem =
-                trimDict.lookupOrAddDefault<label>("minElem", 0);
+                trimDict.lookupOrDefault<label>("minElem", 0);
 
             // Trim away small groups of features
             if (minLen > 0 || minElem > 0)
@@ -1125,7 +1008,10 @@ int main(int argc, char *argv[])
                         << minElem << endl;
                 }
 
-                set().trimFeatures(minLen, minElem, extract.includedAngle());
+                features().trimFeatures
+                (
+                    minLen, minElem, extractor().includedAngle()
+                );
             }
         }
 
@@ -1134,8 +1020,9 @@ int main(int argc, char *argv[])
         // ~~~~~~
 
         // Convert to marked edges, points
-        List<surfaceFeatures::edgeStatus> edgeStat(set().toStatus());
+        List<surfaceFeatures::edgeStatus> edgeStat(features().toStatus());
 
+        // Option: "subsetFeatures" (dictionary)
         if (surfaceDict.isDict("subsetFeatures"))
         {
             const dictionary& subsetDict = surfaceDict.subDict
@@ -1143,6 +1030,7 @@ int main(int argc, char *argv[])
                 "subsetFeatures"
             );
 
+            // Suboption: "insideBox"
             if (subsetDict.found("insideBox"))
             {
                 treeBoundBox bb(subsetDict.lookup("insideBox")());
@@ -1152,6 +1040,7 @@ int main(int argc, char *argv[])
 
                 deleteBox(surf, bb, false, edgeStat);
             }
+            // Suboption: "outsideBox"
             else if (subsetDict.found("outsideBox"))
             {
                 treeBoundBox bb(subsetDict.lookup("outsideBox")());
@@ -1186,17 +1075,15 @@ int main(int argc, char *argv[])
                         (
                             surf,
                             1e-5,   //tol,
-                            extract.includedAngle(),
+                            extractor().includedAngle(),
                             edgeI
                         );
                     }
                 }
             }
 
-            const Switch openEdges =
-                subsetDict.lookupOrDefault<Switch>("openEdges", "yes");
-
-            if (!openEdges)
+            // Suboption: "openEdges" (false: remove open edges)
+            if (!subsetDict.lookupOrDefault<bool>("openEdges", true))
             {
                 Info<< "Removing all open edges"
                     << " (edges with 1 connected face)" << endl;
@@ -1210,6 +1097,7 @@ int main(int argc, char *argv[])
                 }
             }
 
+            // Suboption: "plane"
             if (subsetDict.found("plane"))
             {
                 plane cutPlane(subsetDict.lookup("plane")());
@@ -1225,7 +1113,7 @@ int main(int argc, char *argv[])
 
 
         surfaceFeatures newSet(surf);
-        newSet.setFromStatus(edgeStat, extract.includedAngle());
+        newSet.setFromStatus(edgeStat, extractor().includedAngle());
 
         Info<< nl
             << "Initial feature set:" << nl
@@ -1263,7 +1151,7 @@ int main(int argc, char *argv[])
         (
             newSet,
             runTime,
-            sFeatFileName + ".extendedFeatureEdgeMesh",
+            outputName + ".extendedFeatureEdgeMesh",
             surfBaffleRegions
         );
 
@@ -1292,40 +1180,41 @@ int main(int argc, char *argv[])
             feMesh.add(addFeMesh);
         }
 
-
         if (surfaceDict.lookupOrDefault<bool>("selfIntersection", false))
         {
-            // TODO: perturb tolerance
+            // TODO: perturbance tolerance?
 
             triSurfaceSearch query(surf);
-            surfaceIntersection intersect
-            (
-                query,
-                surfaceDict.lookupOrDefault<scalar>
-                (
-                    "planarTolerance",
-                    surfaceIntersection::defaultTolerance
-                )
-            );
+            surfaceIntersection intersect(query, surfaceDict);
 
-            // surf.write("selfIntersection-input.obj");
+            intersect.mergePoints(5*SMALL);
 
-            Info<<"self-intersection "
-                << intersect.cutEdges().size() << " edges "
-                << intersect.cutPoints().size() << " points" << nl;
+            labelPair sizeInfo
+            (
+                intersect.cutPoints().size(),
+                intersect.cutEdges().size()
+            );
 
             if (intersect.cutEdges().size())
             {
                 extendedEdgeMesh addMesh
                 (
-                    xferCopy<pointField>(intersect.cutPoints()),
-                    xferCopy<edgeList>(intersect.cutEdges())
+                    intersect.cutPoints(),
+                    intersect.cutEdges()
                 );
 
+                addMesh.mergePoints(5*SMALL);
                 feMesh.add(addMesh);
+
+                sizeInfo[0] = addMesh.points().size();
+                sizeInfo[1] = addMesh.edges().size();
             }
+            Info<< "Self intersection:" << nl
+                    << "    points : " << sizeInfo[0] << nl
+                    << "    edges  : " << sizeInfo[1] << nl;
         }
 
+
         Info<< nl
             << "Final feature set:" << nl;
         writeStats(feMesh, Info);
@@ -1337,111 +1226,47 @@ int main(int argc, char *argv[])
 
         if (writeObj)
         {
-            feMesh.writeObj(feMesh.path()/sFeatFileName);
+            feMesh.writeObj(feMesh.path()/outputName);
         }
 
         feMesh.write();
 
         // Write a featureEdgeMesh for backwards compatibility
-        featureEdgeMesh bfeMesh
-        (
-            IOobject
+        if (true)
+        {
+            featureEdgeMesh bfeMesh
             (
-                sFeatFileName + ".eMesh",   // name
-                runTime.constant(),         // instance
-                "triSurface",
-                runTime,                    // registry
-                IOobject::NO_READ,
-                IOobject::AUTO_WRITE,
-                false
-            ),
-            feMesh.points(),
-            feMesh.edges()
-        );
+                IOobject
+                (
+                    outputName + ".eMesh",      // name
+                    runTime.constant(),         // instance
+                    "triSurface",
+                    runTime,                    // registry
+                    IOobject::NO_READ,
+                    IOobject::AUTO_WRITE,
+                    false
+                ),
+                feMesh.points(),
+                feMesh.edges()
+            );
+
+            Info<< nl << "Writing featureEdgeMesh to "
+                << bfeMesh.objectPath() << endl;
+
+            bfeMesh.regIOobject::write();
+        }
 
-        Info<< nl << "Writing featureEdgeMesh to "
-            << bfeMesh.objectPath() << endl;
-
-        bfeMesh.regIOobject::write();
-
-    // Find close features
-
-    // // Dummy trim operation to mark features
-    // labelList featureEdgeIndexing = newSet.trimFeatures(-GREAT, 0);
-
-    // scalarField surfacePtFeatureIndex(surf.points().size(), -1);
-
-    // forAll(newSet.featureEdges(), eI)
-    // {
-    //     const edge& e = surf.edges()[newSet.featureEdges()[eI]];
-
-    //     surfacePtFeatureIndex[surf.meshPoints()[e.start()]] =
-    //     featureEdgeIndexing[newSet.featureEdges()[eI]];
-
-    //     surfacePtFeatureIndex[surf.meshPoints()[e.end()]] =
-    //     featureEdgeIndexing[newSet.featureEdges()[eI]];
-    // }
-
-    // if (writeVTK)
-    // {
-    //     vtkSurfaceWriter().write
-    //     (
-    //         runTime.constant()/"triSurface",    // outputDir
-    //         sFeatFileName,                      // surfaceName
-    //         surf.points(),
-    //         faces,
-    //         "surfacePtFeatureIndex",            // fieldName
-    //         surfacePtFeatureIndex,
-    //         true,                               // isNodeValues
-    //         true                                // verbose
-    //     );
-    // }
-
-    // Random rndGen(343267);
-
-    // treeBoundBox surfBB
-    // (
-    //     treeBoundBox(searchSurf.bounds()).extend(rndGen, 1e-4)
-    // );
-
-    // surfBB.min() -= Foam::point(ROOTVSMALL, ROOTVSMALL, ROOTVSMALL);
-    // surfBB.max() += Foam::point(ROOTVSMALL, ROOTVSMALL, ROOTVSMALL);
-
-    // indexedOctree<treeDataEdge> ftEdTree
-    // (
-    //     treeDataEdge
-    //     (
-    //         false,
-    //         surf.edges(),
-    //         surf.localPoints(),
-    //         newSet.featureEdges()
-    //     ),
-    //     surfBB,
-    //     8,      // maxLevel
-    //     10,     // leafsize
-    //     3.0     // duplicity
-    // );
-
-    // labelList nearPoints = ftEdTree.findBox
-    // (
-    //     treeBoundBox
-    //     (
-    //         sPt - featureSearchSpan*Foam::vector::one,
-    //         sPt + featureSearchSpan*Foam::vector::one
-    //     )
-    // );
-
-        if (closeness)
+        // Option: "closeness"
+        if (surfaceDict.lookupOrDefault<bool>("closeness", false))
         {
             Info<< nl << "Extracting internal and external closeness of "
                 << "surface." << endl;
 
-
             triSurfaceMesh searchSurf
             (
                 IOobject
                 (
-                    sFeatFileName + ".closeness",
+                    outputName + ".closeness",
                     runTime.constant(),
                     "triSurface",
                     runTime,
@@ -1481,8 +1306,8 @@ int main(int argc, char *argv[])
 
             // Info<< "span " << span << endl;
 
-            pointField start(searchSurf.faceCentres() - span*normals);
-            pointField end(searchSurf.faceCentres() + span*normals);
+            const pointField start(searchSurf.faceCentres() - span*normals);
+            const pointField end(searchSurf.faceCentres() + span*normals);
             const pointField& faceCentres = searchSurf.faceCentres();
 
             List<List<pointIndexHit>> allHitInfo;
@@ -1649,7 +1474,7 @@ int main(int argc, char *argv[])
             (
                 IOobject
                 (
-                    sFeatFileName + ".internalCloseness",
+                    outputName + ".internalCloseness",
                     runTime.constant(),
                     "triSurface",
                     runTime,
@@ -1667,7 +1492,7 @@ int main(int argc, char *argv[])
             (
                 IOobject
                 (
-                    sFeatFileName + ".externalCloseness",
+                    outputName + ".externalCloseness",
                     runTime.constant(),
                     "triSurface",
                     runTime,
@@ -1685,8 +1510,8 @@ int main(int argc, char *argv[])
             {
                 vtkSurfaceWriter().write
                 (
-                    runTime.constantPath()/"triSurface",// outputDir
-                    sFeatFileName,                      // surfaceName
+                    vtkOutputDir,
+                    outputName,
                     meshedSurfRef
                     (
                         surf.points(),
@@ -1700,8 +1525,8 @@ int main(int argc, char *argv[])
 
                 vtkSurfaceWriter().write
                 (
-                    runTime.constantPath()/"triSurface",// outputDir
-                    sFeatFileName,                      // surfaceName
+                    vtkOutputDir,
+                    outputName,
                     meshedSurfRef
                     (
                         surf.points(),
@@ -1715,8 +1540,8 @@ int main(int argc, char *argv[])
             }
         }
 
-
-        if (curvature)
+        // Option: "curvature"
+        if (surfaceDict.lookupOrDefault<bool>("curvature", false))
         {
             Info<< nl << "Extracting curvature of surface at the points."
                 << endl;
@@ -1726,7 +1551,7 @@ int main(int argc, char *argv[])
 
             triSurfacePointScalarField k = calcCurvature
             (
-                sFeatFileName,
+                outputName,
                 runTime,
                 surf,
                 pointNormals,
@@ -1739,8 +1564,8 @@ int main(int argc, char *argv[])
             {
                 vtkSurfaceWriter().write
                 (
-                    runTime.constantPath()/"triSurface",// outputDir
-                    sFeatFileName,                      // surfaceName
+                    vtkOutputDir,
+                    outputName,
                     meshedSurfRef
                     (
                         surf.points(),
@@ -1754,8 +1579,8 @@ int main(int argc, char *argv[])
             }
         }
 
-
-        if (featureProximity)
+        // Option: "featureProximity"
+        if (surfaceDict.lookupOrDefault<bool>("featureProximity", false))
         {
             Info<< nl << "Extracting proximity of close feature points and "
                 << "edges to the surface" << endl;
@@ -1802,7 +1627,7 @@ int main(int argc, char *argv[])
             (
                 IOobject
                 (
-                    sFeatFileName + ".featureProximity",
+                    outputName + ".featureProximity",
                     runTime.constant(),
                     "triSurface",
                     runTime,
@@ -1820,8 +1645,8 @@ int main(int argc, char *argv[])
             {
                 vtkSurfaceWriter().write
                 (
-                    runTime.constantPath()/"triSurface",// outputDir
-                    sFeatFileName,                      // surfaceName
+                    vtkOutputDir,
+                    outputName,
                     meshedSurfRef
                     (
                         surf.points(),
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
index f110e063182..d04bbc7958f 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
@@ -16,7 +16,7 @@ FoamFile
 
 surface1.stl
 {
-    // How to obtain raw features (extractFromFile || extractFromSurface)
+    // How to obtain raw features (extractFromFile | extractFromSurface | none)
     extractionMethod    extractFromSurface;
 
     extractFromSurfaceCoeffs
@@ -28,19 +28,25 @@ surface1.stl
         includedAngle   120;
 
         // Do not mark region edges
-        geometricTestOnly       yes;
+        geometricTestOnly  yes;
     }
 
+    // Generate additional features from self-intersect
+    selfIntersection    false;
+
+    // Tolerance for surface intersections
+    tolerance           1e-3;
+
     // Write options
 
         // Write features to obj format for postprocessing
-        writeObj                yes;
+        writeObj        yes;
 }
 
 
 surface2.nas
 {
-    // How to obtain raw features (extractFromFile || extractFromSurface)
+    // How to obtain raw features (extractFromFile | extractFromSurface | none)
     extractionMethod    extractFromFile;
 
     extractFromFileCoeffs
@@ -91,36 +97,42 @@ surface2.nas
     }
 
     // Output the curvature of the surface
-    curvature               no;
+    curvature           no;
 
     // Output the proximity of feature points and edges to each other
-    featureProximity        no;
+    featureProximity    no;
 
     // The maximum search distance to use when looking for other feature
     // points and edges
-    maxFeatureProximity     1;
+    maxFeatureProximity 1;
 
     // Out put the closeness of surface elements to other surface elements.
-    closeness               no;
+    closeness           no;
+
+    // Generate additional features from self-intersect
+    selfIntersection    false;
+
+    // Tolerance for surface intersections
+    tolerance           1e-3;
 
     // Write options
 
         // Write features to obj format for postprocessing
-        writeObj                yes;
+        writeObj        yes;
 
         // Write surface proximity and curvature fields to vtk format
         // for postprocessing
-        writeVTK                no;
+        writeVTK        no;
 }
 
 
-// Handle multiple surfaces
+// Handle single or multiple surfaces
 //
 // - If the dictionary is named 'surfaces', it must also contain a 'surfaces'
 //   entry (wordRe list).
 //
-// - If other dictionaries may contain a 'surfaces' entry, it will be taken
-//   for the input.
+// - If other dictionaries contain a 'surfaces' entry,
+//   it will be taken for the input.
 //
 surfaces
 {
@@ -131,24 +143,30 @@ surfaces
     // Base output name (optional)
     // output              surfaces;
 
-    // Generate features from self-intersect
+    // Generate additional features from self-intersect
     selfIntersection    true;
 
-    // Tolerance for self-intersect
-    planarTolerance     1e-3;
+    // Tolerance for surface intersections
+    tolerance           1e-3;
 
     extractFromSurfaceCoeffs
     {
         includedAngle   120;
 
         // Do not mark region edges
-        geometricTestOnly       yes;
+        geometricTestOnly  yes;
+    }
+
+    extractFromNoneCoeffs
+    {
+        includedAngle   120;
+
     }
 
     // Write options
 
         // Write features to obj format for postprocessing
-        writeObj                yes;
+        writeObj        yes;
 }
 
 // ************************************************************************* //
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
index 4eca27e13d4..737387a5e1f 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -40,175 +40,32 @@ namespace Foam
 defineTypeNameAndDebug(surfaceIntersection, 0);
 }
 
-const Foam::scalar Foam::surfaceIntersection::defaultTolerance = 1e-3;
-
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-// Checks if there exists a special topological situation that causes
-// edge and the face it hit not to be recognized.
-//
-// For now if the face shares a point with the edge
-bool Foam::surfaceIntersection::excludeEdgeHit
-(
-    const triSurface& surf,
-    const label edgeI,
-    const label facei,
-    const scalar
-)
+void Foam::surfaceIntersection::setOptions(const dictionary& dict)
 {
-    const triSurface::FaceType& f = surf.localFaces()[facei];
-    const edge& e = surf.edges()[edgeI];
-
-    forAll(f, fp)
-    {
-        if (f[fp] == e.start() || f[fp] == e.end())
-        {
-            return true;
-        }
-    }
-
-// {
-//        // Get edge vector
-//        vector eVec = e.vec(surf.localPoints());
-//        eVec /= mag(eVec) + VSMALL;
-//
-//        const labelList& eLabels = surf.faceEdges()[facei];
-//
-//        // Get edge vector of 0th edge of face
-//        vector e0Vec = surf.edges()[eLabels[0]].vec(surf.localPoints());
-//        e0Vec /= mag(e0Vec) + VSMALL;
-//
-//        vector n = e0Vec ^ eVec;
-//
-//        if (mag(n) < SMALL)
-//        {
-//            // e0 is aligned with e. Choose next edge of face.
-//            vector e1Vec = surf.edges()[eLabels[1]].vec(surf.localPoints());
-//            e1Vec /= mag(e1Vec) + VSMALL;
-//
-//            n = e1Vec ^ eVec;
-//
-//            if (mag(n) < SMALL)
-//            {
-//                // Problematic triangle. Two edges aligned with edgeI. Give
-//                // up.
-//                return true;
-//            }
-//        }
-//
-//        // Check if same as faceNormal
-//        if (mag(n & surf.faceNormals()[facei]) > 1-tol)
-//        {
-//
-//            Pout<< "edge:" << e << "  face:" << facei
-//                << "  e0Vec:" << e0Vec << "  n:" << n
-//                << "  normalComponent:" << (n & surf.faceNormals()[facei])
-//                << "  tol:" << tol << endl;
-//
-//            return true;
-//        }
-//        else
-//        {
-//            return false;
-//        }
-// }
-
-    return false;
+    dict.readIfPresent("tolerance",       tolerance_);
+    dict.readIfPresent("allowEdgeHits",   allowEdgeHits_);
+    dict.readIfPresent("avoidDuplicates", avoidDuplicates_);
+    dict.readIfPresent("warnDegenerate",  warnDegenerate_);
 }
 
 
-//// Find intersection of plane with edges of hitFacei. Returns
-//// - edgeI
-//// - intersection point
-//Foam::pointIndexHit Foam::surfaceIntersection::faceEdgeIntersection
-//(
-//    const triSurface& surf,
-//    const label hitFacei,
-//
-//    const vector& n,
-//    const point& eStart,
-//    const point& eEnd
-//)
-//{
-//    pointIndexHit pInter;
-//
-//    const pointField& points = surf.points();
-//
-//    const triSurface::FaceType& f = surf.localFaces()[hitFacei];
-//
-//    // Plane for intersect test.
-//    plane pl(eStart, n);
-//
-//    forAll(f, fp)
-//    {
-//        label fp1 = f.fcIndex(fp);
-//
-//        const point& start = points[f[fp]];
-//        const point& end = points[f[fp1]];
-//
-//        vector eVec(end - start);
-//
-//        scalar s = pl.normalIntersect(start, eVec);
-//
-//        if (s < 0 || s > 1)
-//        {
-//            pInter.setPoint(start + s*eVec);
-//
-//            // Check if is correct one: orientation walking
-//            //  eStart - eEnd - hitPoint should be opposite n
-//            vector n2(triPointRef(start, end, pInter.hitPoint()).normal());
-//
-//            Pout<< "plane normal:" << n
-//                << "  start:" << start << "  end:" << end
-//                << "  hit at:" << pInter.hitPoint()
-//                << "  resulting normal:" << n2 << endl;
-//
-//            if ((n2 & n) < 0)
-//            {
-//                pInter.setHit();
-//
-//                // Find corresponding edge between f[fp] f[fp1]
-//                label edgeI =
-//                    meshTools::findEdge
-//                    (
-//                        surf.edges(),
-//                        surf.faceEdges()[hitFacei],
-//                        f[fp],
-//                        f[fp1]
-//                    );
-//
-//                pInter.setIndex(edgeI);
-//
-//                return pInter;
-//            }
-//        }
-//    }
-//
-//    FatalErrorInFunction
-//        << "Did not find intersection of plane " << pl
-//        << " with edges of face " << hitFacei << " verts:" << f
-//        << abort(FatalError);
-//
-//    return pInter;
-//}
-
-
 void Foam::surfaceIntersection::storeIntersection
 (
     const enum originatingType cutFrom,
     const labelList& facesA,
     const label faceB,
-    DynamicList<edge>& allCutEdges,
-    DynamicList<point>& allCutPoints
+    const UList<point>& allCutPoints,
+    const label cutPointId,
+    DynamicList<edge>& allCutEdges
 )
 {
     // Our lookup for two faces - populate with faceB (invariant)
     // Normally always have face from the first surface as first element
     labelPair twoFaces(faceB, faceB);
 
-    const label pointId = allCutPoints.size()-1;
-
     forAll(facesA, facesAI)
     {
         const label faceA = facesA[facesAI];
@@ -249,34 +106,82 @@ void Foam::surfaceIntersection::storeIntersection
         if (iter == facePairToVertex_.end())
         {
             // New intersection. Store face-face intersection.
-            facePairToVertex_.insert(twoFaces, pointId);
+            if (debug & 4)
+            {
+                Pout<< "intersect faces " << twoFaces
+                    << " point-1: " << cutPointId << " = "
+                    << allCutPoints[cutPointId] << endl;
+            }
+
+            facePairToVertex_.insert(twoFaces, cutPointId);
+        }
+        else if (*iter == cutPointId)
+        {
+            // Avoid creating an edge if cutPointId had already been used
+
+            if (debug & 4)
+            {
+                Pout<< "intersect faces " << twoFaces
+                    << " dup-point: " << cutPointId << endl;
+            }
         }
         else
         {
+            const label nextEdgeId = allCutEdges.size();
+            const edge nextEdge(*iter, cutPointId, true);
+
             // Second occurrence of surf1-surf2 intersection.
             // Or rather the face on surf1 intersects a face on
             // surface2 twice -> we found edge.
 
             // Check whether perhaps degenerate
-            const point& prevHit = allCutPoints[*iter];
-            const point& thisHit = allCutPoints.last();
-
-            if (mag(prevHit - thisHit) < SMALL)
+            if (nextEdge.mag(allCutPoints) < SMALL)
             {
-                WarningInFunction
-                    << "Encountered degenerate edge between face "
-                    << twoFaces[0] << " on first surface and face "
-                    << twoFaces[1] << " on second surface" << endl
-                    << "Point on first surface:" << prevHit << endl
-                    << "Point on second surface:" << thisHit << endl
-                    << endl;
+                // Don't normally emit warnings, since these also arise for
+                // manifold connections. For example,
+                //
+                //   e1|  /e2
+                //     | /
+                //     |/
+                // ----.---- plane
+                //
+                // The plane is correctly pierced at the '.' by both edge-1
+                // and edge-2, which belong to the same originating face.
+                //
+                // Unfortunately cannot suppress the second hit either, since
+                // it might already have been used for another face-pair
+                // intersection.
+
+                // Filter/merge away the extraneous points later.
+                if (warnDegenerate_ > 0)
+                {
+                    --warnDegenerate_;
+                    WarningInFunction
+                        << "Degenerate edge between faces " << twoFaces
+                        << " on 1st/2nd surface with points "
+                        << nextEdge.line(allCutPoints)
+                        << endl;
+                }
+                else if (debug & 4)
+                {
+                    Pout<< "degenerate edge face-pair " << twoFaces << " "
+                        << *iter << " point " << allCutPoints[*iter]
+                        << endl;
+                }
             }
-            else
+            else if (facePairToEdge_.insert(twoFaces, nextEdgeId))
             {
-                allCutEdges.append(edge(*iter, pointId));
+                // Record complete (line) intersection of two faces
+
+                allCutEdges.append(nextEdge);
 
-                // Record intersection of faces on surf
-                facePairToEdge_.insert(twoFaces, allCutEdges.size()-1);
+                if (debug & 4)
+                {
+                    Pout<< "create edge - faces " << twoFaces << " edge#"
+                        << nextEdgeId << " edge " << nextEdge
+                        << " = " << nextEdge.line(allCutPoints)
+                        << endl;
+                }
             }
         }
     }
@@ -302,8 +207,8 @@ void Foam::surfaceIntersection::classifyHit
     const label edgeI,
     const pointIndexHit& pHit,
 
-    DynamicList<edge>& allCutEdges,
     DynamicList<point>& allCutPoints,
+    DynamicList<edge>& allCutEdges,
     List<DynamicList<label>>& surfEdgeCuts
 )
 {
@@ -317,6 +222,7 @@ void Foam::surfaceIntersection::classifyHit
     // Classify point on surface2
 
     const triSurface::FaceType& f2 = surf2.localFaces()[surf2Facei];
+    const pointField& surf1Pts = surf1.localPoints();
     const pointField& surf2Pts = surf2.localPoints();
 
     label nearType, nearLabel;
@@ -331,7 +237,7 @@ void Foam::surfaceIntersection::classifyHit
             surf1PointTol[e.end()],
             pHit.hitPoint(),
             e,
-            surf1.localPoints()
+            surf1Pts
         );
 
     if (nearType == triPointRef::POINT)
@@ -341,28 +247,71 @@ void Foam::surfaceIntersection::classifyHit
             // 1. Point hits point. Do nothing.
             if (debug & 2)
             {
-                Pout<< pHit.hitPoint() << " is surf1:"
-                    << " end point of edge " << e
+                Pout<< "hit-type[1] " << pHit.hitPoint() << " is surf1:"
+                    << " end point of edge[" << edgeI << "] " << e
+                    << "==" << e.line(surf1Pts)
                     << " surf2: vertex " << f2[nearLabel]
-                    << " coord:" << surf2Pts[f2[nearLabel]] << endl;
+                    << " coord:" << surf2Pts[f2[nearLabel]]
+                    << " - suppressed" << endl;
             }
         }
         else
         {
             // 2. Edge hits point. Cut edge with new point.
+            bool cached = false;
+            label cutPointId = -1;
+            const label nearVert = f2[nearLabel];
+
+            // For self-intersection, we have tolerances for each point
+            // (surf2 is actually surf1) so we shift the hit to coincide
+            // identically.
+            if (cutFrom == surfaceIntersection::SELF)
+            {
+                const point& nearPt = surf1Pts[nearVert];
+
+                if (mag(pHit.hitPoint() - nearPt) < surf1PointTol[nearVert])
+                {
+                    cutPointId = allCutPoints.size();
+
+                    if (avoidDuplicates_)
+                    {
+                        if (edgeEndAsCut_.insert(nearVert, cutPointId))
+                        {
+                            // First time with this end-point
+                            allCutPoints.append(nearPt);
+                        }
+                        else
+                        {
+                            // Already seen this end point
+                            cutPointId = edgeEndAsCut_[nearVert];
+                            cached = true;
+                        }
+                    }
+                    else
+                    {
+                        allCutPoints.append(nearPt);
+                    }
+                }
+            }
+
             if (debug & 2)
             {
-                Pout<< pHit.hitPoint() << " is surf1:"
-                    << " somewhere on edge " << e
+                Pout<< "hit-type[2] " << pHit.hitPoint() << " is surf1:"
+                    << " from edge[" << edgeI << "] " << e
                     << " surf2: vertex " << f2[nearLabel]
-                    << " coord:" << surf2Pts[f2[nearLabel]] << endl;
+                    << " coord:" << surf2Pts[f2[nearLabel]]
+                    << " - "
+                    << (cached ? "cached" : "stored") << endl;
             }
 
-            allCutPoints.append(pHit.hitPoint());
-            surfEdgeCuts[edgeI].append(allCutPoints.size()-1);
+            if (cutPointId == -1)
+            {
+                cutPointId = allCutPoints.size();
+                allCutPoints.append(pHit.hitPoint());
+            }
+            surfEdgeCuts[edgeI].append(cutPointId);
 
             const labelList& facesB = surf2.pointFaces()[f2[nearLabel]];
-
             forAll(facesB, faceBI)
             {
                 storeIntersection
@@ -370,8 +319,9 @@ void Foam::surfaceIntersection::classifyHit
                     cutFrom,
                     facesA,
                     facesB[faceBI],
-                    allCutEdges,
-                    allCutPoints
+                    allCutPoints,
+                    cutPointId,
+                    allCutEdges
                 );
             }
         }
@@ -380,18 +330,114 @@ void Foam::surfaceIntersection::classifyHit
     {
         if (edgeEnd >= 0)
         {
-            // 3. Point hits edge. Do nothing on this side. Reverse
-            // is handled by 2 (edge hits point)
-            label edge2I = getEdge(surf2, surf2Facei, nearLabel);
+            // 3. Point hits edge.
+            // Normally do nothing on this side since the reverse
+            // (edge hits point) is handled by 2.
+            // However, if the surfaces are separated by a minor gap,
+            // the end-point of a tolerance-extended edge can intersect another
+            // edge without itself being intersected by an edge.
+
+            const label edge2I = getEdge(surf2, surf2Facei, nearLabel);
             const edge& e2 = surf2.edges()[edge2I];
+            const label nearVert  = (edgeEnd == 0 ? e.start() : e.end());
+
+            label cutPointId = -1;
+
+            // Storage treatment
+            // =0: nothing/ignore
+            // >0: store point/edge-cut. Attempt to create new edge.
+            // <0: store point/edge-cut only
+            int handling = (allowEdgeHits_ ? 1 : 0);
+            if (allowEdgeHits_ && cutFrom == surfaceIntersection::SELF)
+            {
+                // The edge-edge intersection is hashed as an 'edge' to
+                // exploit the commutative lookup.
+                // Ie, only do the cut once
+                const edge intersect(edgeI, edge2I);
+
+                if (e2.found(nearVert))
+                {
+                    // Actually the same as #1 above, but missed due to
+                    // tolerancing
+                    handling = 0; // suppress
+                }
+                else if (edgeEdgeIntersection_.insert(intersect))
+                {
+                    const point& nearPt = surf1Pts[nearVert];
+
+                    if
+                    (
+                        mag(pHit.hitPoint() - nearPt) < surf1PointTol[nearVert]
+                    )
+                    {
+                        cutPointId = allCutPoints.size();
+
+                        if (avoidDuplicates_)
+                        {
+                            if (edgeEndAsCut_.insert(nearVert, cutPointId))
+                            {
+                                // First time with this end-point
+                                allCutPoints.append(nearPt);
+                            }
+                            else
+                            {
+                                // Already seen this end point
+                                cutPointId = edgeEndAsCut_[nearVert];
+                                handling = 2;  // cached
+                            }
+                        }
+                        else
+                        {
+                            allCutPoints.append(nearPt);
+                        }
+                    }
+                }
+                else
+                {
+                    handling = 0; // ignore - already did this interaction
+                }
+            }
 
             if (debug & 2)
             {
-                Pout<< pHit.hitPoint() << " is surf1:"
-                    << " end point of edge " << e
-                    << " surf2: edge " << e2
-                    << " coords:" << surf2Pts[e2.start()]
-                    << surf2Pts[e2.end()] << endl;
+                Pout<< "hit-type[3] " << pHit.hitPoint() << " is surf1:"
+                    << " end point of edge[" << edgeI << "] " << e
+                    << "==" << e.line(surf1Pts)
+                    << " surf2: edge[" << edge2I << "] " << e2
+                    << " coords:" << e2.line(surf2Pts)
+                    << " - "
+                    << (
+                           handling > 1
+                         ? "cached" : handling
+                         ? "stored" : "suppressed"
+                       ) << endl;
+            }
+
+            if (handling)
+            {
+                if (cutPointId == -1)
+                {
+                    cutPointId = allCutPoints.size();
+                    allCutPoints.append(pHit.hitPoint());
+                }
+                surfEdgeCuts[edgeI].append(cutPointId);
+            }
+
+            if (handling > 0)
+            {
+                const labelList& facesB = surf2.edgeFaces()[edge2I];
+                forAll(facesB, faceBI)
+                {
+                    storeIntersection
+                    (
+                        cutFrom,
+                        facesA,
+                        facesB[faceBI],
+                        allCutPoints,
+                        cutPointId,
+                        allCutEdges
+                    );
+                }
             }
         }
         else
@@ -402,32 +448,108 @@ void Foam::surfaceIntersection::classifyHit
             // doing the surf2 with surf1 intersection but these
             // are merged later on)
 
-            label edge2I = getEdge(surf2, surf2Facei, nearLabel);
+            // edge hits all faces on surf2 connected to the edge
+            //
+            // The edge-edge intersection is symmetric, store only once.
+            // - When intersecting two surfaces, note which edges are cut each
+            //   time, but only create an edge from the first pass.
+            // - For self-intersection, it is slightly trickier if we don't
+            //   want too many duplicate points.
+
+            const label edge2I = getEdge(surf2, surf2Facei, nearLabel);
             const edge& e2 = surf2.edges()[edge2I];
+            label cutPointId = -1;
+
+            // Storage treatment
+            // =0: nothing/ignore
+            // >0: store point/edge-cut. Attempt to create new edge.
+            // <0: store point/edge-cut only
+            int handling = 0;
+            switch (cutFrom)
+            {
+                case surfaceIntersection::FIRST:
+                    handling = 1;
+                    break;
+                case surfaceIntersection::SECOND:
+                    handling = -1;
+                    break;
+                case surfaceIntersection::SELF:
+                    // The edge-edge intersection is hashed as an 'edge' to
+                    // exploit the commutative lookup.
+                    // Ie, only do the cut once
+                    const edge intersect(edgeI, edge2I);
+
+                    if (edgeEdgeIntersection_.insert(intersect))
+                    {
+                        handling = 1;
+                        forAll(e, edgepti)
+                        {
+                            const label endId = e[edgepti];
+                            const point& nearPt = surf1Pts[endId];
+
+                            if
+                            (
+                                mag(pHit.hitPoint() - nearPt)
+                              < surf1PointTol[endId]
+                            )
+                            {
+                                cutPointId = allCutPoints.size();
+
+                                if (avoidDuplicates_)
+                                {
+                                    if (edgeEndAsCut_.insert(endId, cutPointId))
+                                    {
+                                        // First time with this end-point
+                                        allCutPoints.append(nearPt);
+                                    }
+                                    else
+                                    {
+                                        // Already seen this end point
+                                        cutPointId = edgeEndAsCut_[endId];
+                                        handling = 2;  // cached
+                                    }
+                                }
+                                else
+                                {
+                                    allCutPoints.append(nearPt);
+                                }
+
+                                break;
+                            }
+                        }
+                    }
+                    break;
+            }
 
             if (debug & 2)
             {
-                Pout<< pHit.hitPoint() << " is surf1:"
-                    << " somewhere on edge " << e
-                    << " surf2: edge " << e2
-                    << " coords:" << surf2Pts[e2.start()]
-                    << surf2Pts[e2.end()] << endl;
+                Pout<< "hit-type[4] " << pHit.hitPoint() << " is surf1:"
+                    << " from edge[" << edgeI << "] " << e
+                    << "==" << e.line(surf1Pts)
+                    << " surf2: edge[" << edge2I << "] " << e2
+                    << " coords:" << e2.line(surf2Pts)
+                    << " - "
+                    << (
+                         handling < 0
+                       ? "cut-point" : handling
+                       ? "stored" : "suppressed"
+                       )
+                    << endl;
             }
 
-            allCutPoints.append(pHit.hitPoint());
-            surfEdgeCuts[edgeI].append(allCutPoints.size()-1);
-
-            // edge hits all faces on surf2 connected to the edge
-
-            if (cutFrom == surfaceIntersection::FIRST)
+            if (handling)
             {
-                // edge-edge intersection is symmetric, store only
-                // once.
-                // edge hits all faces on surf2 connected to the
-                // edge
+                if (cutPointId == -1)
+                {
+                    cutPointId = allCutPoints.size();
+                    allCutPoints.append(pHit.hitPoint());
+                }
+                surfEdgeCuts[edgeI].append(cutPointId);
+            }
 
+            if (handling)
+            {
                 const labelList& facesB = surf2.edgeFaces()[edge2I];
-
                 forAll(facesB, faceBI)
                 {
                     storeIntersection
@@ -435,8 +557,9 @@ void Foam::surfaceIntersection::classifyHit
                         cutFrom,
                         facesA,
                         facesB[faceBI],
-                        allCutEdges,
-                        allCutPoints
+                        allCutPoints,
+                        cutPointId,
+                        allCutEdges
                     );
                 }
             }
@@ -448,58 +571,58 @@ void Foam::surfaceIntersection::classifyHit
         {
             // 5. Point hits face. Do what? Introduce
             // point & triangulation in face?
-            if (debug & 2)
-            {
-                Pout<< pHit.hitPoint() << " is surf1:"
-                    << " end point of edge " << e
-                    << " surf2: face " << surf2Facei
-                    << endl;
-            }
 
-            //
             // Look exactly at what side (of surf2) edge is. Leave out ones on
             // inside of surf2 (i.e. on opposite side of normal)
-            //
 
             // Vertex on/near surf2; vertex away from surf2
-            const label nearVert  = (edgeEnd == 0 ?  e.start() : e.end());
-            const label otherVert = (edgeEnd == 0 ?  e.end() : e.start());
+            // otherVert on outside of surf2
+            const label nearVert  = (edgeEnd == 0 ? e.start() : e.end());
+            const label otherVert = (edgeEnd == 0 ? e.end() : e.start());
 
-            const point& nearPt  = surf1.localPoints()[nearVert];
-            const point& otherPt = surf1.localPoints()[otherVert];
-
-            if (debug)
-            {
-                Pout
-                    << pHit.hitPoint() << " is surf1:"
-                    << " end point of edge " << e << " coord:"
-                    << nearPt
-                    << " surf2: face " << surf2Facei << endl;
-            }
+            const point& nearPt  = surf1Pts[nearVert];
+            const point& otherPt = surf1Pts[otherVert];
 
             const vector eVec = otherPt - nearPt;
 
             if ((surf2.faceNormals()[surf2Facei] & eVec) > 0)
             {
-                // otherVert on outside of surf2
-
-                // Shift hitPoint a bit along edge.
-                //point hitPt = nearPt + 0.1*eVec;
-                point hitPt = nearPt;
+                // map to nearVert
+                // Reclassify as normal edge-face pierce (see below)
+                bool cached = false;
 
-                if (debug & 2)
+                label cutPointId = allCutPoints.size();
+                if (avoidDuplicates_)
+                {
+                    if (edgeEndAsCut_.insert(nearVert, cutPointId))
+                    {
+                        // First time with this end-point
+                        allCutPoints.append(nearPt);
+                    }
+                    else
+                    {
+                        // Already seen this end point
+                        cutPointId = edgeEndAsCut_[nearVert];
+                        cached = true;
+                    }
+                }
+                else
                 {
-                    Pout<< "Shifted " << pHit.hitPoint()
-                        << " to " << hitPt
-                        << " along edge:" << e
-                        << " coords:" << surf1.localPoints()[e.start()]
-                        << surf1.localPoints()[e.end()] << endl;
+                    allCutPoints.append(nearPt);
                 }
 
-                // Reclassify as normal edge-face pierce (see below)
+                surfEdgeCuts[edgeI].append(cutPointId);
 
-                allCutPoints.append(hitPt);
-                surfEdgeCuts[edgeI].append(allCutPoints.size()-1);
+                if (debug & 2)
+                {
+                    Pout<< "hit-type[5] " << pHit.hitPoint()
+                        << " shifted to " << nearPt
+                        << " from edge[" << edgeI << "] " << e
+                        << "==" << e.line(surf1Pts)
+                        << " hits surf2 face[" << surf2Facei << "]"
+                        << " - "
+                        << (cached ? "cached" : "stored") << endl;
+                }
 
                 // edge hits single face only
                 storeIntersection
@@ -507,18 +630,19 @@ void Foam::surfaceIntersection::classifyHit
                     cutFrom,
                     facesA,
                     surf2Facei,
-                    allCutEdges,
-                    allCutPoints
+                    allCutPoints,
+                    cutPointId,
+                    allCutEdges
                 );
             }
             else
             {
                 if (debug & 2)
                 {
-                    Pout<< "Discarding " << pHit.hitPoint()
-                        << " since edge " << e << " on inside of surf2."
-                        << " surf2 normal:" << surf2.faceNormals()[surf2Facei]
-                        << endl;
+                    Pout<< "hit-type[5] " << pHit.hitPoint()
+                        << " from edge[" << edgeI << "] " << e
+                        << " hits inside of surf2 face[" << surf2Facei << "]"
+                        << " - discarded" << endl;
                 }
             }
         }
@@ -527,15 +651,16 @@ void Foam::surfaceIntersection::classifyHit
             // 6. Edge pierces face. 'Normal' situation.
             if (debug & 2)
             {
-                Pout<< pHit.hitPoint() << " is surf1:"
-                    << " somewhere on edge " << e
-                    << " surf2: face " << surf2Facei
-                    << endl;
+                Pout<< "hit-type[6] " << pHit.hitPoint()
+                    << " from edge[" << edgeI << "] " << e
+                    << "==" << e.line(surf1Pts)
+                    << " hits surf2 face[" << surf2Facei << "]"
+                    << " - stored" << endl;
             }
 
-            // edgeI intersects surf2. Store point.
+            const label cutPointId = allCutPoints.size();
             allCutPoints.append(pHit.hitPoint());
-            surfEdgeCuts[edgeI].append(allCutPoints.size()-1);
+            surfEdgeCuts[edgeI].append(cutPointId);
 
             // edge hits single face only
             storeIntersection
@@ -543,22 +668,19 @@ void Foam::surfaceIntersection::classifyHit
                 cutFrom,
                 facesA,
                 surf2Facei,
-                allCutEdges,
-                allCutPoints
+                allCutPoints,
+                cutPointId,
+                allCutEdges
             );
         }
     }
-    if (debug & 2)
-    {
-        Pout<< endl;
-    }
 }
 
 
 // Cut all edges of surf1 with surf2. Sets
 // - cutPoints          : coordinates of cutPoints
 // - cutEdges           : newly created edges between cutPoints
-// - facePairToVertex   : hash from face1I and face2I to cutPoint
+// - facePairToVertex   : hash from face1I and face2I to (first) cutPoint
 // - facePairToEdge     : hash from face1I and face2I to cutEdge
 // - surfEdgeCuts       : gives for each edge the cutPoints
 //                        (in order from start to end)
@@ -569,12 +691,12 @@ void Foam::surfaceIntersection::doCutEdges
     const triSurfaceSearch& querySurf2,
     const enum originatingType cutFrom,
 
-    DynamicList<edge>& allCutEdges,
     DynamicList<point>& allCutPoints,
+    DynamicList<edge>& allCutEdges,
     List<DynamicList<label>>& surfEdgeCuts
 )
 {
-    const scalar oldTol = intersection::setPlanarTol(planarTol_);
+    const scalar oldTol = intersection::setPlanarTol(tolerance_);
 
     const pointField& surf1Pts = surf1.localPoints();
 
@@ -583,9 +705,7 @@ void Foam::surfaceIntersection::doCutEdges
 
     forAll(surf1PointTol, pointi)
     {
-        surf1PointTol[pointi] =
-            intersection::planarTol()
-          * minEdgeLen(surf1, pointi);
+        surf1PointTol[pointi] = tolerance_ * minEdgeLen(surf1, pointi);
     }
 
     const indexedOctree<treeDataPrimitivePatch<triSurface>>& searchTree
@@ -606,11 +726,11 @@ void Foam::surfaceIntersection::doCutEdges
             const edge& e = surf1.edges()[edgeI];
             const vector edgeVec = e.vec(surf1Pts);
 
-            // Extend start/end by tolerance - ensures cleaner cutting
+            // Extend start/end by 1/2 tolerance - ensures cleaner cutting
             const point ptStart =
-                surf1Pts[e.start()] - surf1PointTol[e.start()]*edgeVec;
+                surf1Pts[e.start()] - 0.5*surf1PointTol[e.start()]*edgeVec;
             const point ptEnd =
-                surf1Pts[e.end()]   + surf1PointTol[e.end()]*edgeVec;
+                surf1Pts[e.end()]   + 0.5*surf1PointTol[e.end()]*edgeVec;
 
             // Never intersect with faces attached to the edge itself
             maskFaces = surf1.edgeFaces()[edgeI];
@@ -639,8 +759,8 @@ void Foam::surfaceIntersection::doCutEdges
                     edgeI,
                     pHit,
 
-                    allCutEdges,
                     allCutPoints,
+                    allCutEdges,
                     surfEdgeCuts
                 );
             }
@@ -658,8 +778,11 @@ void Foam::surfaceIntersection::doCutEdges
             const point tolVec = intersection::planarTol()*(edgeVec);
             const scalar tolDim = mag(tolVec);
 
-            point ptStart = surf1Pts[e.start()];
-            const point ptEnd = surf1Pts[e.end()];
+            // Extend start/end by 1/2 tolerance - ensures cleaner cutting
+            point ptStart =
+                surf1Pts[e.start()] - 0.5*surf1PointTol[e.start()]*edgeVec;
+            const point ptEnd =
+                surf1Pts[e.end()]   + 0.5*surf1PointTol[e.end()]*edgeVec;
 
             bool doTrack = false;
             do
@@ -680,20 +803,21 @@ void Foam::surfaceIntersection::doCutEdges
                     edgeI,
                     pHit,
 
-                    allCutEdges,
                     allCutPoints,
+                    allCutEdges,
                     surfEdgeCuts
                 );
 
-                if (tolDim > 0.0)
+                if (tolerance_ > 0)
                 {
                     if (mag(pHit.hitPoint() - ptEnd) < tolDim)
                     {
+                        // Near the end => done
                         doTrack = false;
                     }
                     else
                     {
-                        // continue tracking a bit further on
+                        // Continue tracking a bit further on
                         ptStart = pHit.hitPoint() + tolVec;
                         doTrack = true;
                     }
@@ -702,6 +826,14 @@ void Foam::surfaceIntersection::doCutEdges
             while (doTrack);  // execute at least once
         }
     }
+    if (debug & 2)
+    {
+        Pout<< endl;
+    }
+
+    // These temporaries are now unneeded:
+    edgeEdgeIntersection_.clear();
+    edgeEndAsCut_.clear();
 
     intersection::setPlanarTol(oldTol);
 }
@@ -711,7 +843,10 @@ void Foam::surfaceIntersection::doCutEdges
 
 Foam::surfaceIntersection::surfaceIntersection()
 :
-    planarTol_(defaultTolerance),
+    tolerance_(1e-3),
+    allowEdgeHits_(true),
+    avoidDuplicates_(true),
+    warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
     facePairToVertex_(0),
@@ -725,10 +860,13 @@ Foam::surfaceIntersection::surfaceIntersection
 (
     const triSurfaceSearch& query1,
     const triSurfaceSearch& query2,
-    const scalar planarTol
+    const dictionary& dict
 )
 :
-    planarTol_(planarTol),
+    tolerance_(1e-3),
+    allowEdgeHits_(true),
+    avoidDuplicates_(true),
+    warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
     facePairToVertex_(2*max(query1.surface().size(), query2.surface().size())),
@@ -736,6 +874,8 @@ Foam::surfaceIntersection::surfaceIntersection
     surf1EdgeCuts_(0),
     surf2EdgeCuts_(0)
 {
+    setOptions(dict);
+
     const triSurface& surf1 = query1.surface();
     const triSurface& surf2 = query2.surface();
 
@@ -748,7 +888,7 @@ Foam::surfaceIntersection::surfaceIntersection
     }
 
 
-    DynamicList<edge> allCutEdges(surf1.nEdges()/20);
+    DynamicList<edge>  allCutEdges(surf1.nEdges()/20);
     DynamicList<point> allCutPoints(surf1.nPoints()/20);
 
 
@@ -761,8 +901,8 @@ Foam::surfaceIntersection::surfaceIntersection
         surf1,
         query2,
         surfaceIntersection::FIRST,
-        allCutEdges,
         allCutPoints,
+        allCutEdges,
         edgeCuts1
     );
     // Transfer to straight labelListList
@@ -786,8 +926,8 @@ Foam::surfaceIntersection::surfaceIntersection
         surf2,
         query1,
         surfaceIntersection::SECOND,
-        allCutEdges,
         allCutPoints,
+        allCutEdges,
         edgeCuts2
     );
 
@@ -818,16 +958,25 @@ Foam::surfaceIntersection::surfaceIntersection
         OFstream edge2Stream("surf2EdgeCuts.obj");
         writeIntersectedEdges(surf2, surf2EdgeCuts_, edge2Stream);
     }
+
+    // Temporaries
+    facePairToVertex_.clear();
+
+    // // Cleanup any duplicate cuts?
+    // mergeEdges();
 }
 
 
 Foam::surfaceIntersection::surfaceIntersection
 (
     const triSurfaceSearch& query1,
-    const scalar planarTol
+    const dictionary& dict
 )
 :
-    planarTol_(planarTol),
+    tolerance_(1e-3),
+    allowEdgeHits_(true),
+    avoidDuplicates_(true),
+    warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
     facePairToVertex_(2*query1.surface().size()),
@@ -835,6 +984,8 @@ Foam::surfaceIntersection::surfaceIntersection
     surf1EdgeCuts_(0),
     surf2EdgeCuts_(0)
 {
+    setOptions(dict);
+
     const triSurface& surf1 = query1.surface();
 
     //
@@ -845,7 +996,7 @@ Foam::surfaceIntersection::surfaceIntersection
         Pout<< "Cutting surf1 edges" << endl;
     }
 
-    DynamicList<edge> allCutEdges;
+    DynamicList<edge>  allCutEdges;
     DynamicList<point> allCutPoints;
 
     // From edge to cut index on surface1
@@ -857,8 +1008,8 @@ Foam::surfaceIntersection::surfaceIntersection
         surf1,
         query1,
         surfaceIntersection::SELF,
-        allCutEdges,
         allCutPoints,
+        allCutEdges,
         edgeCuts1
     );
 
@@ -867,7 +1018,7 @@ Foam::surfaceIntersection::surfaceIntersection
     cutEdges_.transfer(allCutEdges);
     cutPoints_.transfer(allCutPoints);
 
-    // Shortcut.
+    // Short-circuit
     if (cutPoints_.empty() && cutEdges_.empty())
     {
         if (debug)
@@ -896,6 +1047,12 @@ Foam::surfaceIntersection::surfaceIntersection
         OFstream edge1Stream("surf1EdgeCuts.obj");
         writeIntersectedEdges(surf1, surf1EdgeCuts_, edge1Stream);
     }
+
+    // Temporaries
+    facePairToVertex_.clear();
+
+    // // Cleanup any duplicate cuts?
+    // mergeEdges();
 }
 
 
@@ -907,6 +1064,10 @@ Foam::surfaceIntersection::surfaceIntersection
     const edgeIntersections& intersections2
 )
 :
+    tolerance_(1e-3),
+    allowEdgeHits_(true),
+    avoidDuplicates_(true),
+    warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
     facePairToVertex_(2*max(surf1.size(), surf2.size())),
@@ -916,7 +1077,7 @@ Foam::surfaceIntersection::surfaceIntersection
 {
 
     // All intersection Pout (so for both surfaces)
-    DynamicList<edge> allCutEdges((surf1.nEdges() + surf2.nEdges())/20);
+    DynamicList<edge>  allCutEdges((surf1.nEdges() + surf2.nEdges())/20);
     DynamicList<point> allCutPoints((surf1.nPoints() + surf2.nPoints())/20);
 
 
@@ -938,19 +1099,21 @@ Foam::surfaceIntersection::surfaceIntersection
 
             forAll(intersections, i)
             {
+                // edgeI intersects surf2. Store point.
                 const pointIndexHit& pHit = intersections[i];
+                const label cutPointId = allCutPoints.size();
 
-                // edgeI intersects surf2. Store point.
                 allCutPoints.append(pHit.hitPoint());
-                edgeCuts1[edgeI].append(allCutPoints.size()-1);
+                edgeCuts1[edgeI].append(cutPointId);
 
                 storeIntersection
                 (
                     surfaceIntersection::FIRST,
                     surf1.edgeFaces()[edgeI],
-                    pHit.index(),               // surf2Facei
-                    allCutEdges,
-                    allCutPoints
+                    pHit.index(),
+                    allCutPoints,
+                    cutPointId,
+                    allCutEdges
                 );
             }
         }
@@ -960,7 +1123,6 @@ Foam::surfaceIntersection::surfaceIntersection
     }
 
 
-
     // Cut all edges of surf2 with surf1
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -979,19 +1141,21 @@ Foam::surfaceIntersection::surfaceIntersection
 
             forAll(intersections, i)
             {
+                // edgeI intersects surf1. Store point.
                 const pointIndexHit& pHit = intersections[i];
+                const label cutPointId = allCutPoints.size();
 
-                // edgeI intersects surf1. Store point.
                 allCutPoints.append(pHit.hitPoint());
-                edgeCuts2[edgeI].append(allCutPoints.size()-1);
+                edgeCuts2[edgeI].append(cutPointId);
 
                 storeIntersection
                 (
                     surfaceIntersection::SECOND,
                     surf2.edgeFaces()[edgeI],
-                    pHit.index(),               // surf2Facei
-                    allCutEdges,
-                    allCutPoints
+                    pHit.index(),
+                    allCutPoints,
+                    cutPointId,
+                    allCutEdges
                 );
             }
         }
@@ -1037,8 +1201,7 @@ Foam::surfaceIntersection::surfaceIntersection
 
         forAllConstIter(labelPairLookup, facePairToEdge_, iter)
         {
-            label edgeI = iter();
-
+            const label edgeI = iter();
             const edge& e = cutEdges_[edgeI];
 
             usedPoints.insert(e[0]);
@@ -1047,7 +1210,7 @@ Foam::surfaceIntersection::surfaceIntersection
 
         forAllConstIter(labelPairLookup, facePairToVertex_, iter)
         {
-            label pointi = iter();
+            const label pointi = iter();
 
             if (!usedPoints.found(pointi))
             {
@@ -1058,6 +1221,12 @@ Foam::surfaceIntersection::surfaceIntersection
             }
         }
     }
+
+    // Temporaries
+    facePairToVertex_.clear();
+
+    // // Cleanup any duplicate cuts?
+    // mergeEdges();
 }
 
 
@@ -1075,12 +1244,6 @@ const Foam::edgeList& Foam::surfaceIntersection::cutEdges() const
 }
 
 
-const Foam::labelPairLookup& Foam::surfaceIntersection::facePairToVertex() const
-{
-    return facePairToVertex_;
-}
-
-
 const Foam::labelPairLookup& Foam::surfaceIntersection::facePairToEdge() const
 {
     return facePairToEdge_;
@@ -1115,4 +1278,85 @@ const Foam::labelListList& Foam::surfaceIntersection::surf2EdgeCuts() const
 }
 
 
+void Foam::surfaceIntersection::mergePoints(const scalar mergeDist)
+{
+    pointField newPoints;
+    labelList pointMap;
+
+    const bool hasMerged = Foam::mergePoints
+    (
+        cutPoints_,
+        mergeDist,
+        false,
+        pointMap,
+        newPoints,
+        vector::zero
+    );
+
+    if (hasMerged)
+    {
+        cutPoints_.transfer(newPoints);
+
+        forAll(cutEdges_, edgei)
+        {
+            edge& e = cutEdges_[edgei];
+
+            e[0] = pointMap[e[0]];
+            e[1] = pointMap[e[1]];
+        }
+
+        forAll(surf1EdgeCuts_, edgei)
+        {
+            inplaceRenumber(pointMap, surf1EdgeCuts_[edgei]);
+            inplaceUniqueSort(surf1EdgeCuts_[edgei]);
+        }
+        forAll(surf2EdgeCuts_, edgei)
+        {
+            inplaceRenumber(pointMap, surf2EdgeCuts_[edgei]);
+            inplaceUniqueSort(surf2EdgeCuts_[edgei]);
+        }
+    }
+
+    this->mergeEdges();
+}
+
+
+void Foam::surfaceIntersection::mergeEdges()
+{
+    HashSet<edge, Hash<edge>> uniqEdges(2*cutEdges_.size());
+
+    label nUniqEdges = 0;
+    labelList edgeNumbering(cutEdges_.size(), -1);
+
+    forAll(cutEdges_, edgeI)
+    {
+        const edge& e = cutEdges_[edgeI];
+
+        // Remove degenerate and repeated edges
+        // - reordering (e[0] < e[1]) is not really necessary
+        if (e[0] != e[1] && uniqEdges.insert(e))
+        {
+            edgeNumbering[edgeI] = nUniqEdges;
+            if (nUniqEdges != edgeI)
+            {
+                cutEdges_[nUniqEdges] = e;
+            }
+            cutEdges_[nUniqEdges].sort();
+            ++nUniqEdges;
+        }
+    }
+
+    // if (nUniqEdges < cutEdges_.size())
+    // {
+    //     // Additional safety, in case the edge was replaced?
+    //     forAllIter(labelPairLookup, facePairToEdge_, iter)
+    //     {
+    //         iter() = edgeNumbering[iter()];
+    //     }
+    // }
+
+    cutEdges_.setSize(nUniqEdges);  // truncate
+}
+
+
 // ************************************************************************* //
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
index ca8ba6ccc08..5c609586754 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
@@ -41,11 +41,19 @@ Description
     hit of both faces and an edge is created between the retrieved vertex and
     the new one.
 
-    Note: when doing intersecting itself uses intersection::planarTol() as a
-    fraction of
+    Note: when doing intersecting itself uses 'tolerance' as a fraction of
     current edge length to determine if intersection is a point-touching one
     instead of an edge-piercing action.
 
+    Some constructors allow a dictionary of intersection controls:
+    \table
+        Property       | Description                    | Type   | Default value
+        tolerance      | Edge-length tolerance          | scalar | 1e-3
+        allowEdgeHits  | Edge-end cuts another edge     | bool   | true
+        avoidDuplicates | Reduce the number of duplicate points    | bool | true
+        warnDegenerate | Number of warnings about degenerate edges | label | 0
+    \endtable
+
 SourceFiles
     surfaceIntersection.C
     surfaceIntersectionFuncs.C
@@ -75,7 +83,7 @@ class triSurface;
 class edgeIntersections;
 
 /*---------------------------------------------------------------------------*\
-                    Class surfaceIntersection Declaration
+                     Class surfaceIntersection Declaration
 \*---------------------------------------------------------------------------*/
 
 class surfaceIntersection
@@ -91,13 +99,22 @@ class surfaceIntersection
         };
 
         //- Tolerance for intersections
-        scalar planarTol_;
+        scalar tolerance_;
+
+        //- Allow edge-ends to cut another edge.
+        bool allowEdgeHits_;
+
+        //- Avoid creating duplicate cuts near edge ends
+        bool avoidDuplicates_;
+
+        //- Maximum number of warnings about degenerate edges
+        label warnDegenerate_;
 
         //- Newly introduced points.
         pointField cutPoints_;
 
-        //- Newly introduced edges (are on both surfaces). Reference into
-        //  cutPoints.
+        //- Newly introduced edges (are on both surfaces).
+        //  Reference into cutPoints.
         edgeList cutEdges_;
 
         //- From face on surf1 and face on surf2 to intersection point
@@ -116,18 +133,27 @@ class surfaceIntersection
         //  If multiple cuts:sorted from edge.start to edge.end
         labelListList surf2EdgeCuts_;
 
+        //- Temporary storage to manage edge-edge self-intersections.
+        HashSet<edge, Hash<edge>> edgeEdgeIntersection_;
+
+        //- Temporary storage to manage cuts/intersections from the edge ends
+        Map<label> edgeEndAsCut_;
+
 
     // Private Member Functions
 
-        //- Write point in obj format.
-        static void writeOBJ(const point& pt, Ostream& os);
+        //- Adjust intersection options according to the dictionary entries
+        void setOptions(const dictionary& dict);
+
+        //- Write points in obj format
+        static void writeOBJ(const List<point>& pts, Ostream& os);
 
         //- Write points and edges in obj format
         static void writeOBJ
         (
-            const List<point>&,
-            const List<edge>&,
-            Ostream&
+            const List<point>& pts,
+            const List<edge>& edges,
+            Ostream& os
         );
 
         //- Transfer contents of List<DynamicList<..>> to List<List<..>>
@@ -149,9 +175,6 @@ class surfaceIntersection
         //  to new (-1 if element removed)
         static void removeDuplicates(const labelList& map, labelList& labels);
 
-        //- Apply map to elements of a labelList
-        static void inlineRemap(const labelList& map, labelList& elems);
-
         // Remove all duplicate and degenerate elements. Return unique elements
         // and map from old to new.
         static edgeList filterEdges(const edgeList&, labelList& map);
@@ -159,30 +182,6 @@ class surfaceIntersection
         //- Remove all duplicate elements.
         static labelList filterLabels(const labelList& elems, labelList& map);
 
-        //- Do some checks if edge and face (resulting from hit)
-        //  should not be considered. Returns true if can be discarded.
-        static bool excludeEdgeHit
-        (
-            const triSurface& surf,
-            const label edgeI,
-            const label facei,
-            const scalar tol
-        );
-
-        ////- Given edge (eStart - eEnd) and normal direction construct plane
-        ////  and intersect all edges of hitFace with it.
-        ////  Return the edge and coordinate of hit.
-        //static pointIndexHit faceEdgeIntersection
-        //(
-        //    const triSurface&,
-        //    const label hitFacei,
-        //
-        //    const vector& n,
-        //    const point& eStart,
-        //    const point& eEnd
-        //);
-
-
         //- Debugging: Dump intersected edges to stream
         void writeIntersectedEdges
         (
@@ -199,7 +198,7 @@ class surfaceIntersection
             const scalar endTol,
             const point& p,
             const edge& e,
-            const pointField& points
+            const UList<point>& points
         );
 
         //- Update reference between faceA and faceB. Updates facePairToVertex_
@@ -209,8 +208,9 @@ class surfaceIntersection
             const enum originatingType cutFrom,
             const labelList& facesA,
             const label faceB,
-            DynamicList<edge>&,
-            DynamicList<point>&
+            const UList<point>& allCutPoints,
+            const label cutPointId,
+            DynamicList<edge>& allCutEdges
         );
 
         //- Investigate pHit to whether is case of point hits point,
@@ -224,8 +224,8 @@ class surfaceIntersection
             const label edgeI,
             const pointIndexHit& pHit,
 
-            DynamicList<edge>& allCutEdges,
             DynamicList<point>& allCutPoints,
+            DynamicList<edge>& allCutEdges,
             List<DynamicList<label>>& surfEdgeCuts
         );
 
@@ -236,8 +236,8 @@ class surfaceIntersection
             const triSurfaceSearch& querySurf2,
             const enum originatingType cutFrom,
 
-            DynamicList<edge>& allCutEdges,
             DynamicList<point>& allCutPoints,
+            DynamicList<edge>& allCutEdges,
             List<DynamicList<label>>& surfEdgeCuts
         );
 
@@ -246,9 +246,6 @@ public:
 
     // Public Data, Declarations
 
-    //- The default planarTol for intersections.
-    static const scalar defaultTolerance;
-
     ClassName("surfaceIntersection");
 
 
@@ -263,7 +260,7 @@ public:
         (
             const triSurfaceSearch& querySurf1,
             const triSurfaceSearch& querySurf2,
-            const scalar planarTol = surfaceIntersection::defaultTolerance
+            const dictionary& dict = dictionary::null
         );
 
         //- Construct from self-intersections.
@@ -271,7 +268,7 @@ public:
         surfaceIntersection
         (
             const triSurfaceSearch& querySurf1,
-            const scalar planarTol = surfaceIntersection::defaultTolerance
+            const dictionary& dict = dictionary::null
         );
 
         //- Construct from precalculated intersection information.
@@ -288,21 +285,33 @@ public:
 
     // Member Functions
 
+        //- The list of cut points
         const pointField& cutPoints() const;
 
+        //- The list of created edges
         const edgeList& cutEdges() const;
 
-        const labelPairLookup& facePairToVertex() const;
-
+        //- Lookup of pairs of faces to created edges
         const labelPairLookup& facePairToEdge() const;
 
         //- Access either surf1EdgeCuts (isFirstSurface = true) or
         //  surf2EdgeCuts
         const labelListList& edgeCuts(const bool isFirstSurf) const;
 
+        //- List of cut points on edges of surface1
         const labelListList& surf1EdgeCuts() const;
 
+        //- List of cut points on edges of surface2
         const labelListList& surf2EdgeCuts() const;
+
+
+        //- Geometric merge points (points within mergeDist) prior to
+        //  automatically calling mergeEdges().
+        void mergePoints(const scalar mergeDist);
+
+        //- Merge duplicate edges
+        void mergeEdges();
+
 };
 
 
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
index cd3af9da0c1..6e261a86cb6 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
@@ -24,19 +24,24 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "surfaceIntersection.H"
+#include "triSurface.H"
 #include "triSurfaceSearch.H"
 #include "labelPairHashes.H"
 #include "OFstream.H"
-#include "HashSet.H"
-#include "triSurface.H"
-#include "pointIndexHit.H"
-#include "meshTools.H"
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void Foam::surfaceIntersection::writeOBJ(const point& pt, Ostream& os)
+void Foam::surfaceIntersection::writeOBJ
+(
+    const List<point>& pts,
+    Ostream& os
+)
 {
-    os << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z() << endl;
+    forAll(pts, i)
+    {
+        const point& pt = pts[i];
+        os << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z() << nl;
+    }
 }
 
 
@@ -47,15 +52,13 @@ void Foam::surfaceIntersection::writeOBJ
     Ostream& os
 )
 {
-    forAll(pts, i)
-    {
-        writeOBJ(pts[i], os);
-    }
+    writeOBJ(pts, os);
+
     forAll(edges, i)
     {
         const edge& e = edges[i];
 
-        os << "l " << e.start()+1 << ' ' << e.end()+1 << endl;
+        os << "l " << e.start()+1 << ' ' << e.end()+1 << nl;
     }
 }
 
@@ -162,20 +165,6 @@ void Foam::surfaceIntersection::removeDuplicates
 }
 
 
-// Remap.
-void Foam::surfaceIntersection::inlineRemap
-(
-    const labelList& map,
-    labelList& elems
-)
-{
-    forAll(elems, elemI)
-    {
-        elems[elemI] = map[elems[elemI]];
-    }
-}
-
-
 // Remove all duplicate and degenerate elements. Return unique elements and
 // map from old to new.
 Foam::edgeList Foam::surfaceIntersection::filterEdges
@@ -265,14 +254,8 @@ void Foam::surfaceIntersection::writeIntersectedEdges
     // Dump all points (surface followed by cutPoints)
     const pointField& pts = surf.localPoints();
 
-    forAll(pts, pointi)
-    {
-        writeOBJ(pts[pointi], os);
-    }
-    forAll(cutPoints(), cutPointi)
-    {
-        writeOBJ(cutPoints()[cutPointi], os);
-    }
+    writeOBJ(pts, os);
+    writeOBJ(cutPoints(), os);
 
     forAll(edgeCutVerts, edgeI)
     {
@@ -284,16 +267,16 @@ void Foam::surfaceIntersection::writeIntersectedEdges
 
             // Start of original edge to first extra point
             os  << "l " << e.start()+1 << ' '
-                << extraVerts[0] + surf.nPoints() + 1 << endl;
+                << extraVerts[0] + surf.nPoints() + 1 << nl;
 
             for (label i = 1; i < extraVerts.size(); i++)
             {
                 os  << "l " << extraVerts[i-1] + surf.nPoints() + 1  << ' '
-                    << extraVerts[i] + surf.nPoints() + 1 << endl;
+                    << extraVerts[i] + surf.nPoints() + 1 << nl;
             }
 
             os  << "l " << extraVerts.last() + surf.nPoints() + 1
-                << ' ' << e.end()+1 << endl;
+                << ' ' << e.end()+1 << nl;
         }
     }
 }
@@ -306,7 +289,7 @@ Foam::label Foam::surfaceIntersection::classify
     const scalar endTol,
     const point& p,
     const edge& e,
-    const pointField& points
+    const UList<point>& points
 )
 {
     if (mag(p - points[e.start()]) < startTol)
-- 
GitLab


From da8ea0f21ac83c88b6cb46433c810cccf863e6b6 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 28 Apr 2017 09:12:33 +0200
Subject: [PATCH 211/277] ENH: refactor code from surfaceFeatureExtract to
 triSurfaceTools (issue #450)

---
 .../surfaceFeatureExtract.C                   | 1288 ++---------------
 src/meshTools/Make/files                      |    8 +
 .../edgeMeshTools/edgeMeshFeatureProximity.C  |  228 +++
 .../edgeMesh/edgeMeshTools/edgeMeshTools.C    |   65 +
 .../edgeMesh/edgeMeshTools/edgeMeshTools.H    |   98 ++
 .../extendedEdgeMesh/extendedEdgeMesh.H       |   29 +-
 .../surfaceFeatures/surfaceFeatures.C         |  332 ++++-
 .../surfaceFeatures/surfaceFeatures.H         |   70 +-
 .../triSurfaceTools/triSurfaceCloseness.C     |  360 +++++
 .../triSurfaceTools/triSurfaceCurvature.C     |  386 +++++
 .../triSurfaceTools/triSurfaceTools.C         |   50 -
 .../triSurfaceTools/triSurfaceTools.H         |  118 +-
 12 files changed, 1755 insertions(+), 1277 deletions(-)
 create mode 100644 src/meshTools/edgeMesh/edgeMeshTools/edgeMeshFeatureProximity.C
 create mode 100644 src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.C
 create mode 100644 src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.H
 create mode 100644 src/meshTools/triSurface/triSurfaceTools/triSurfaceCloseness.C
 create mode 100644 src/meshTools/triSurface/triSurfaceTools/triSurfaceCurvature.C

diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index 3ae006e69d8..1ea773f16b4 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -31,817 +31,31 @@ Description
     Extracts and writes surface features to file. All but the basic feature
     extraction is a work-in-progress.
 
-    The curvature calculation is an implementation of the algorithm from:
-    \verbatim
-        "Estimating Curvatures and their Derivatives on Triangle Meshes"
-        by S. Rusinkiewicz
-        3DPVT'04 Proceedings of the 3D Data Processing,
-        Visualization, and Transmission, 2nd International Symposium
-        Pages 486-493
-        http://gfx.cs.princeton.edu/pubs/_2004_ECA/curvpaper.pdf
-    \endverbatim
-
 \*---------------------------------------------------------------------------*/
 
 #include "argList.H"
 #include "Time.H"
 #include "triSurface.H"
+#include "triSurfaceTools.H"
+#include "edgeMeshTools.H"
 #include "surfaceFeaturesExtraction.H"
 #include "surfaceIntersection.H"
 #include "featureEdgeMesh.H"
 #include "extendedFeatureEdgeMesh.H"
 #include "treeBoundBox.H"
 #include "meshTools.H"
-#include "OFstream.H"
+#include "OBJstream.H"
 #include "triSurfaceMesh.H"
 #include "vtkSurfaceWriter.H"
-#include "triSurfaceFields.H"
-#include "indexedOctree.H"
-#include "treeDataEdge.H"
 #include "unitConversion.H"
 #include "plane.H"
-#include "tensor2D.H"
-#include "symmTensor2D.H"
 #include "point.H"
-#include "triadField.H"
-#include "transform.H"
 #include "triSurfaceLoader.H"
 
 using namespace Foam;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-scalar calcVertexNormalWeight
-(
-    const triFace& f,
-    const label pI,
-    const vector& fN,
-    const pointField& points
-)
-{
-    label index = findIndex(f, pI);
-
-    if (index == -1)
-    {
-        FatalErrorInFunction
-            << "Point not in face" << abort(FatalError);
-    }
-
-    const vector e1 = points[f[index]] - points[f[f.fcIndex(index)]];
-    const vector e2 = points[f[index]] - points[f[f.rcIndex(index)]];
-
-    return mag(fN)/(magSqr(e1)*magSqr(e2) + VSMALL);
-}
-
-
-triadField calcVertexCoordSys
-(
-    const triSurface& surf,
-    const vectorField& pointNormals
-)
-{
-    const pointField& points = surf.points();
-    const Map<label>& meshPointMap = surf.meshPointMap();
-
-    triadField pointCoordSys(points.size());
-
-    forAll(points, pI)
-    {
-        const point& pt = points[pI];
-        const vector& normal = pointNormals[meshPointMap[pI]];
-
-        if (mag(normal) < SMALL)
-        {
-            pointCoordSys[meshPointMap[pI]] = triad::unset;
-            continue;
-        }
-
-        plane p(pt, normal);
-
-        // Pick arbitrary point in plane
-        vector dir1 = pt - p.somePointInPlane(1e-3);
-        dir1 /= mag(dir1);
-
-        vector dir2 = dir1 ^ normal;
-        dir2 /= mag(dir2);
-
-        pointCoordSys[meshPointMap[pI]] = triad(dir1, dir2, normal);
-    }
-
-    return pointCoordSys;
-}
-
-
-vectorField calcVertexNormals(const triSurface& surf)
-{
-    // Weighted average of normals of faces attached to the vertex
-    // Weight = fA / (mag(e0)^2 * mag(e1)^2);
-
-    Info<< "Calculating vertex normals" << endl;
-
-    vectorField pointNormals(surf.nPoints(), Zero);
-
-    const pointField& points = surf.points();
-    const labelListList& pointFaces = surf.pointFaces();
-    const labelList& meshPoints = surf.meshPoints();
-
-    forAll(pointFaces, pI)
-    {
-        const labelList& pFaces = pointFaces[pI];
-
-        forAll(pFaces, fI)
-        {
-            const label facei = pFaces[fI];
-            const triFace& f = surf[facei];
-
-            vector fN = f.normal(points);
-
-            scalar weight = calcVertexNormalWeight
-            (
-                f,
-                meshPoints[pI],
-                fN,
-                points
-            );
-
-            pointNormals[pI] += weight*fN;
-        }
-
-        pointNormals[pI] /= mag(pointNormals[pI]) + VSMALL;
-    }
-
-    return pointNormals;
-}
-
-
-triSurfacePointScalarField calcCurvature
-(
-    const word& name,
-    const Time& runTime,
-    const triSurface& surf,
-    const vectorField& pointNormals,
-    const triadField& pointCoordSys
-)
-{
-    Info<< "Calculating face curvature" << endl;
-
-    const pointField& points = surf.points();
-    const labelList& meshPoints = surf.meshPoints();
-    const Map<label>& meshPointMap = surf.meshPointMap();
-
-    triSurfacePointScalarField curvaturePointField
-    (
-        IOobject
-        (
-            name + ".curvature",
-            runTime.constant(),
-            "triSurface",
-            runTime,
-            IOobject::NO_READ,
-            IOobject::NO_WRITE
-        ),
-        surf,
-        dimLength,
-        scalarField(points.size(), 0.0)
-    );
-
-    List<symmTensor2D> pointFundamentalTensors
-    (
-        points.size(),
-        symmTensor2D::zero
-    );
-
-    scalarList accumulatedWeights(points.size(), 0.0);
-
-    forAll(surf, fI)
-    {
-        const triFace& f = surf[fI];
-        const edgeList fEdges = f.edges();
-
-        // Calculate the edge vectors and the normal differences
-        vectorField edgeVectors(f.size(), Zero);
-        vectorField normalDifferences(f.size(), Zero);
-
-        forAll(fEdges, feI)
-        {
-            const edge& e = fEdges[feI];
-
-            edgeVectors[feI] = e.vec(points);
-            normalDifferences[feI] =
-               pointNormals[meshPointMap[e[0]]]
-             - pointNormals[meshPointMap[e[1]]];
-        }
-
-        // Set up a local coordinate system for the face
-        const vector& e0 = edgeVectors[0];
-        const vector eN = f.normal(points);
-        const vector e1 = (e0 ^ eN);
-
-        if (magSqr(eN) < ROOTVSMALL)
-        {
-            continue;
-        }
-
-        triad faceCoordSys(e0, e1, eN);
-        faceCoordSys.normalize();
-
-        // Construct the matrix to solve
-        scalarSymmetricSquareMatrix T(3, 0);
-        scalarDiagonalMatrix Z(3, 0);
-
-        // Least Squares
-        for (label i = 0; i < 3; ++i)
-        {
-            scalar x = edgeVectors[i] & faceCoordSys[0];
-            scalar y = edgeVectors[i] & faceCoordSys[1];
-
-            T(0, 0) += sqr(x);
-            T(1, 0) += x*y;
-            T(1, 1) += sqr(x) + sqr(y);
-            T(2, 1) += x*y;
-            T(2, 2) += sqr(y);
-
-            scalar dndx = normalDifferences[i] & faceCoordSys[0];
-            scalar dndy = normalDifferences[i] & faceCoordSys[1];
-
-            Z[0] += dndx*x;
-            Z[1] += dndx*y + dndy*x;
-            Z[2] += dndy*y;
-        }
-
-        // Perform Cholesky decomposition and back substitution.
-        // Decomposed matrix is in T and solution is in Z.
-        LUsolve(T, Z);
-        symmTensor2D secondFundamentalTensor(Z[0], Z[1], Z[2]);
-
-        // Loop over the face points adding the contribution of the face
-        // curvature to the points.
-        forAll(f, fpI)
-        {
-            const label patchPointIndex = meshPointMap[f[fpI]];
-
-            const triad& ptCoordSys = pointCoordSys[patchPointIndex];
-
-            if (!ptCoordSys.set())
-            {
-                continue;
-            }
-
-            // Rotate faceCoordSys to ptCoordSys
-            tensor rotTensor = rotationTensor(ptCoordSys[2], faceCoordSys[2]);
-            triad rotatedFaceCoordSys = rotTensor & tensor(faceCoordSys);
-
-            // Project the face curvature onto the point plane
-
-            vector2D cmp1
-            (
-                ptCoordSys[0] & rotatedFaceCoordSys[0],
-                ptCoordSys[0] & rotatedFaceCoordSys[1]
-            );
-            vector2D cmp2
-            (
-                ptCoordSys[1] & rotatedFaceCoordSys[0],
-                ptCoordSys[1] & rotatedFaceCoordSys[1]
-            );
-
-            tensor2D projTensor
-            (
-                cmp1,
-                cmp2
-            );
-
-            symmTensor2D projectedFundamentalTensor
-            (
-                projTensor.x() & (secondFundamentalTensor & projTensor.x()),
-                projTensor.x() & (secondFundamentalTensor & projTensor.y()),
-                projTensor.y() & (secondFundamentalTensor & projTensor.y())
-            );
-
-            // Calculate weight
-            // TODO: Voronoi area weighting
-            scalar weight = calcVertexNormalWeight
-            (
-                f,
-                meshPoints[patchPointIndex],
-                f.normal(points),
-                points
-            );
-
-            // Sum contribution of face to this point
-            pointFundamentalTensors[patchPointIndex] +=
-                weight*projectedFundamentalTensor;
-
-            accumulatedWeights[patchPointIndex] += weight;
-        }
-
-        if (false)
-        {
-            Info<< "Points = " << points[f[0]] << " "
-                << points[f[1]] << " "
-                << points[f[2]] << endl;
-            Info<< "edgeVecs = " << edgeVectors[0] << " "
-                << edgeVectors[1] << " "
-                << edgeVectors[2] << endl;
-            Info<< "normDiff = " << normalDifferences[0] << " "
-                << normalDifferences[1] << " "
-                << normalDifferences[2] << endl;
-            Info<< "faceCoordSys = " << faceCoordSys << endl;
-            Info<< "T = " << T << endl;
-            Info<< "Z = " << Z << endl;
-        }
-    }
-
-    forAll(curvaturePointField, pI)
-    {
-        pointFundamentalTensors[pI] /= (accumulatedWeights[pI] + SMALL);
-
-        vector2D principalCurvatures = eigenValues(pointFundamentalTensors[pI]);
-
-        //scalar curvature =
-        //    (principalCurvatures[0] + principalCurvatures[1])/2;
-        scalar curvature = max
-        (
-            mag(principalCurvatures[0]),
-            mag(principalCurvatures[1])
-        );
-        //scalar curvature = principalCurvatures[0]*principalCurvatures[1];
-
-        curvaturePointField[meshPoints[pI]] = curvature;
-    }
-
-    return curvaturePointField;
-}
-
-
-scalar calcProximityOfFeaturePoints
-(
-    const List<pointIndexHit>& hitList,
-    const scalar defaultCellSize
-)
-{
-    scalar minDist = defaultCellSize;
-
-    for
-    (
-        label hI1 = 0;
-        hI1 < hitList.size() - 1;
-        ++hI1
-    )
-    {
-        const pointIndexHit& pHit1 = hitList[hI1];
-
-        if (pHit1.hit())
-        {
-            for
-            (
-                label hI2 = hI1 + 1;
-                hI2 < hitList.size();
-                ++hI2
-            )
-            {
-                const pointIndexHit& pHit2 = hitList[hI2];
-
-                if (pHit2.hit())
-                {
-                    scalar curDist = mag(pHit1.hitPoint() - pHit2.hitPoint());
-
-                    minDist = min(curDist, minDist);
-                }
-            }
-        }
-    }
-
-    return minDist;
-}
-
-
-scalar calcProximityOfFeatureEdges
-(
-    const extendedFeatureEdgeMesh& efem,
-    const List<pointIndexHit>& hitList,
-    const scalar defaultCellSize
-)
-{
-    scalar minDist = defaultCellSize;
-
-    for
-    (
-        label hI1 = 0;
-        hI1 < hitList.size() - 1;
-        ++hI1
-    )
-    {
-        const pointIndexHit& pHit1 = hitList[hI1];
-
-        if (pHit1.hit())
-        {
-            const edge& e1 = efem.edges()[pHit1.index()];
-
-            for
-            (
-                label hI2 = hI1 + 1;
-                hI2 < hitList.size();
-                ++hI2
-            )
-            {
-                const pointIndexHit& pHit2 = hitList[hI2];
-
-                if (pHit2.hit())
-                {
-                    const edge& e2 = efem.edges()[pHit2.index()];
-
-                    // Don't refine if the edges are connected to each other
-                    if (!e1.connects(e2))
-                    {
-                        scalar curDist =
-                            mag(pHit1.hitPoint() - pHit2.hitPoint());
-
-                        minDist = min(curDist, minDist);
-                    }
-                }
-            }
-        }
-    }
-
-    return minDist;
-}
-
-
-void dumpBox(const treeBoundBox& bb, const fileName& fName)
-{
-    OFstream os(fName);
-
-    Info<< "Dumping bounding box " << bb << " as lines to obj file "
-        << os.name() << endl;
-
-    meshTools::writeOBJ(os, bb);
-}
-
-
-// Deletes all edges inside/outside bounding box from set.
-void deleteBox
-(
-    const triSurface& surf,
-    const treeBoundBox& bb,
-    const bool removeInside,
-    List<surfaceFeatures::edgeStatus>& edgeStat
-)
-{
-    forAll(edgeStat, edgeI)
-    {
-        const point eMid = surf.edges()[edgeI].centre(surf.localPoints());
-
-        if (removeInside ? bb.contains(eMid) : !bb.contains(eMid))
-        {
-            edgeStat[edgeI] = surfaceFeatures::NONE;
-        }
-    }
-}
-
-
-bool onLine(const point& p, const linePointRef& line)
-{
-    const point& a = line.start();
-    const point& b = line.end();
-
-    if
-    (
-        ( p.x() < min(a.x(), b.x()) || p.x() > max(a.x(), b.x()) )
-     || ( p.y() < min(a.y(), b.y()) || p.y() > max(a.y(), b.y()) )
-     || ( p.z() < min(a.z(), b.z()) || p.z() > max(a.z(), b.z()) )
-    )
-    {
-        return false;
-    }
-
-    return true;
-}
-
-
-// Deletes all edges inside/outside bounding box from set.
-void deleteEdges
-(
-    const triSurface& surf,
-    const plane& cutPlane,
-    List<surfaceFeatures::edgeStatus>& edgeStat
-)
-{
-    const pointField& points = surf.points();
-    const labelList& meshPoints = surf.meshPoints();
-
-    forAll(edgeStat, edgeI)
-    {
-        const edge& e = surf.edges()[edgeI];
-        const point& p0 = points[meshPoints[e.start()]];
-        const point& p1 = points[meshPoints[e.end()]];
-        const linePointRef line(p0, p1);
-
-        // If edge does not intersect the plane, delete.
-        scalar intersect = cutPlane.lineIntersect(line);
-
-        point featPoint = intersect * (p1 - p0) + p0;
-
-        if (!onLine(featPoint, line))
-        {
-            edgeStat[edgeI] = surfaceFeatures::NONE;
-        }
-    }
-}
-
-
-void drawHitProblem
-(
-    label fI,
-    const triSurface& surf,
-    const pointField& start,
-    const pointField& faceCentres,
-    const pointField& end,
-    const List<pointIndexHit>& hitInfo
-)
-{
-    Info<< nl << "# findLineAll did not hit its own face."
-        << nl << "# fI " << fI
-        << nl << "# start " << start[fI]
-        << nl << "# f centre " << faceCentres[fI]
-        << nl << "# end " << end[fI]
-        << nl << "# hitInfo " << hitInfo
-        << endl;
-
-    meshTools::writeOBJ(Info, start[fI]);
-    meshTools::writeOBJ(Info, faceCentres[fI]);
-    meshTools::writeOBJ(Info, end[fI]);
-
-    Info<< "l 1 2 3" << endl;
-
-    meshTools::writeOBJ(Info, surf.points()[surf[fI][0]]);
-    meshTools::writeOBJ(Info, surf.points()[surf[fI][1]]);
-    meshTools::writeOBJ(Info, surf.points()[surf[fI][2]]);
-
-    Info<< "f 4 5 6" << endl;
-
-    forAll(hitInfo, hI)
-    {
-        label hFI = hitInfo[hI].index();
-
-        meshTools::writeOBJ(Info, surf.points()[surf[hFI][0]]);
-        meshTools::writeOBJ(Info, surf.points()[surf[hFI][1]]);
-        meshTools::writeOBJ(Info, surf.points()[surf[hFI][2]]);
-
-        Info<< "f "
-            << 3*hI + 7 << " "
-            << 3*hI + 8 << " "
-            << 3*hI + 9
-            << endl;
-    }
-}
-
-
-// Unmark non-manifold edges if individual triangles are not features
-void unmarkBaffles
-(
-    const triSurface& surf,
-    const scalar includedAngle,
-    List<surfaceFeatures::edgeStatus>& edgeStat
-)
-{
-    scalar minCos = Foam::cos(degToRad(180.0 - includedAngle));
-
-    const labelListList& edgeFaces = surf.edgeFaces();
-
-    forAll(edgeFaces, edgeI)
-    {
-        const labelList& eFaces = edgeFaces[edgeI];
-
-        if (eFaces.size() > 2)
-        {
-            label i0 = eFaces[0];
-            //const labelledTri& f0 = surf[i0];
-            const Foam::vector& n0 = surf.faceNormals()[i0];
-
-            //Pout<< "edge:" << edgeI << " n0:" << n0 << endl;
-
-            bool same = true;
-
-            for (label i = 1; i < eFaces.size(); i++)
-            {
-                //const labelledTri& f = surf[i];
-                const Foam::vector& n = surf.faceNormals()[eFaces[i]];
-
-                //Pout<< "    mag(n&n0): " << mag(n&n0) << endl;
-
-                if (mag(n&n0) < minCos)
-                {
-                    same = false;
-                    break;
-                }
-            }
-
-            if (same)
-            {
-                edgeStat[edgeI] = surfaceFeatures::NONE;
-            }
-        }
-    }
-}
-
-
-//- Divide into multiple normal bins
-//  - return REGION if != 2 normals
-//  - return REGION if 2 normals that make feature angle
-//  - otherwise return NONE and set normals,bins
-surfaceFeatures::edgeStatus checkFlatRegionEdge
-(
-    const triSurface& surf,
-    const scalar tol,
-    const scalar includedAngle,
-    const label edgeI
-)
-{
-    const edge& e = surf.edges()[edgeI];
-    const labelList& eFaces = surf.edgeFaces()[edgeI];
-
-    // Bin according to normal
-
-    DynamicList<Foam::vector> normals(2);
-    DynamicList<labelList> bins(2);
-
-    forAll(eFaces, eFacei)
-    {
-        const Foam::vector& n = surf.faceNormals()[eFaces[eFacei]];
-
-        // Find the normal in normals
-        label index = -1;
-        forAll(normals, normalI)
-        {
-            if (mag(n&normals[normalI]) > (1-tol))
-            {
-                index = normalI;
-                break;
-            }
-        }
-
-        if (index != -1)
-        {
-            bins[index].append(eFacei);
-        }
-        else if (normals.size() >= 2)
-        {
-            // Would be third normal. Mark as feature.
-            //Pout<< "** at edge:" << surf.localPoints()[e[0]]
-            //    << surf.localPoints()[e[1]]
-            //    << " have normals:" << normals
-            //    << " and " << n << endl;
-            return surfaceFeatures::REGION;
-        }
-        else
-        {
-            normals.append(n);
-            bins.append(labelList(1, eFacei));
-        }
-    }
-
-
-    // Check resulting number of bins
-    if (bins.size() == 1)
-    {
-        // Note: should check here whether they are two sets of faces
-        // that are planar or indeed 4 faces al coming together at an edge.
-        //Pout<< "** at edge:"
-        //    << surf.localPoints()[e[0]]
-        //    << surf.localPoints()[e[1]]
-        //    << " have single normal:" << normals[0]
-        //    << endl;
-        return surfaceFeatures::NONE;
-    }
-    else
-    {
-        // Two bins. Check if normals make an angle
-
-        //Pout<< "** at edge:"
-        //    << surf.localPoints()[e[0]]
-        //    << surf.localPoints()[e[1]] << nl
-        //    << "    normals:" << normals << nl
-        //    << "    bins   :" << bins << nl
-        //    << endl;
-
-        if (includedAngle >= 0)
-        {
-            scalar minCos = Foam::cos(degToRad(180.0 - includedAngle));
-
-            forAll(eFaces, i)
-            {
-                const Foam::vector& ni = surf.faceNormals()[eFaces[i]];
-                for (label j=i+1; j<eFaces.size(); j++)
-                {
-                    const Foam::vector& nj = surf.faceNormals()[eFaces[j]];
-                    if (mag(ni & nj) < minCos)
-                    {
-                        //Pout<< "have sharp feature between normal:" << ni
-                        //    << " and " << nj << endl;
-
-                        // Is feature. Keep as region or convert to
-                        // feature angle? For now keep as region.
-                        return surfaceFeatures::REGION;
-                    }
-                }
-            }
-        }
-
-
-        // So now we have two normals bins but need to make sure both
-        // bins have the same regions in it.
-
-         // 1. store + or - region number depending
-        //    on orientation of triangle in bins[0]
-        const labelList& bin0 = bins[0];
-        labelList regionAndNormal(bin0.size());
-        forAll(bin0, i)
-        {
-            const labelledTri& t = surf.localFaces()[eFaces[bin0[i]]];
-            int dir = t.edgeDirection(e);
-
-            if (dir > 0)
-            {
-                regionAndNormal[i] = t.region()+1;
-            }
-            else if (dir == 0)
-            {
-                FatalErrorInFunction
-                    << exit(FatalError);
-            }
-            else
-            {
-                regionAndNormal[i] = -(t.region()+1);
-            }
-        }
-
-        // 2. check against bin1
-        const labelList& bin1 = bins[1];
-        labelList regionAndNormal1(bin1.size());
-        forAll(bin1, i)
-        {
-            const labelledTri& t = surf.localFaces()[eFaces[bin1[i]]];
-            int dir = t.edgeDirection(e);
-
-            label myRegionAndNormal;
-            if (dir > 0)
-            {
-                myRegionAndNormal = t.region()+1;
-            }
-            else
-            {
-                myRegionAndNormal = -(t.region()+1);
-            }
-
-            regionAndNormal1[i] = myRegionAndNormal;
-
-            label index = findIndex(regionAndNormal, -myRegionAndNormal);
-            if (index == -1)
-            {
-                // Not found.
-                //Pout<< "cannot find region " << myRegionAndNormal
-                //    << " in regions " << regionAndNormal << endl;
-
-                return surfaceFeatures::REGION;
-            }
-        }
-
-        // Passed all checks, two normal bins with the same contents.
-        //Pout<< "regionAndNormal:" << regionAndNormal << endl;
-        //Pout<< "myRegionAndNormal:" << regionAndNormal1 << endl;
-
-        return surfaceFeatures::NONE;
-    }
-}
-
-
-void writeStats(const extendedFeatureEdgeMesh& fem, Ostream& os)
-{
-    os  << "    points : " << fem.points().size() << nl
-        << "    of which" << nl
-        << "        convex             : "
-        << fem.concaveStart() << nl
-        << "        concave            : "
-        << (fem.mixedStart()-fem.concaveStart()) << nl
-        << "        mixed              : "
-        << (fem.nonFeatureStart()-fem.mixedStart()) << nl
-        << "        non-feature        : "
-        << (fem.points().size()-fem.nonFeatureStart()) << nl
-        << "    edges  : " << fem.edges().size() << nl
-        << "    of which" << nl
-        << "        external edges     : "
-        << fem.internalStart() << nl
-        << "        internal edges     : "
-        << (fem.flatStart()- fem.internalStart()) << nl
-        << "        flat edges         : "
-        << (fem.openStart()- fem.flatStart()) << nl
-        << "        open edges         : "
-        << (fem.multipleStart()- fem.openStart()) << nl
-        << "        multiply connected : "
-        << (fem.edges().size()- fem.multipleStart()) << endl;
-}
-
-
 int main(int argc, char *argv[])
 {
     argList::addNote
@@ -874,7 +88,6 @@ int main(int argc, char *argv[])
         {
             continue;
         }
-
         const dictionary& surfaceDict = iter().dict();
 
         if (!surfaceDict.found("extractionMethod"))
@@ -965,7 +178,7 @@ int main(int argc, char *argv[])
         surf.writeStats(Info);
         Info<< nl;
 
-        // need plain faces if outputting VTK format
+        // Need a copy as plain faces if outputting VTK format
         faceList faces;
         if (writeVTK)
         {
@@ -976,15 +189,15 @@ int main(int argc, char *argv[])
             }
         }
 
-
-        // Either construct features from surface & featureAngle or read set.
-        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
+        //
+        // Extract features using the preferred extraction method
+        //
         autoPtr<surfaceFeatures> features = extractor().features(surf);
 
         // Trim set
         // ~~~~~~~~
 
+        // Option: "trimFeatures" (dictionary)
         if (surfaceDict.isDict("trimFeatures"))
         {
             const dictionary& trimDict = surfaceDict.subDict("trimFeatures");
@@ -1015,7 +228,6 @@ int main(int argc, char *argv[])
             }
         }
 
-
         // Subset
         // ~~~~~~
 
@@ -1035,51 +247,51 @@ int main(int argc, char *argv[])
             {
                 treeBoundBox bb(subsetDict.lookup("insideBox")());
 
-                Info<< "Removing all edges outside bb " << bb << endl;
-                dumpBox(bb, "subsetBox.obj");
+                Info<< "Subset edges inside box " << bb << endl;
+                features().subsetBox(edgeStat, bb);
 
-                deleteBox(surf, bb, false, edgeStat);
+                {
+                    OBJstream os("subsetBox.obj");
+
+                    Info<< "Dumping bounding box " << bb
+                        << " as lines to obj file "
+                        << os.name() << endl;
+
+                    os.write(bb);
+                }
             }
             // Suboption: "outsideBox"
             else if (subsetDict.found("outsideBox"))
             {
                 treeBoundBox bb(subsetDict.lookup("outsideBox")());
 
-                Info<< "Removing all edges inside bb " << bb << endl;
-                dumpBox(bb, "deleteBox.obj");
+                Info<< "Exclude edges outside box " << bb << endl;
+                features().excludeBox(edgeStat, bb);
 
-                deleteBox(surf, bb, true, edgeStat);
-            }
+                {
+                    OBJstream os("deleteBox.obj");
 
-            const Switch nonManifoldEdges =
-                subsetDict.lookupOrDefault<Switch>("nonManifoldEdges", "yes");
+                    Info<< "Dumping bounding box " << bb
+                        << " as lines to obj file "
+                        << os.name() << endl;
 
-            if (!nonManifoldEdges)
+                    os.write(bb);
+                }
+            }
+
+            // Suboption: "nonManifoldEdges" (false: remove non-manifold edges)
+            if (!subsetDict.lookupOrDefault<bool>("nonManifoldEdges", true))
             {
                 Info<< "Removing all non-manifold edges"
                     << " (edges with > 2 connected faces) unless they"
                     << " cross multiple regions" << endl;
 
-                forAll(edgeStat, edgeI)
-                {
-                    const labelList& eFaces = surf.edgeFaces()[edgeI];
-
-                    if
-                    (
-                        eFaces.size() > 2
-                     && edgeStat[edgeI] == surfaceFeatures::REGION
-                     && (eFaces.size() % 2) == 0
-                    )
-                    {
-                        edgeStat[edgeI] = checkFlatRegionEdge
-                        (
-                            surf,
-                            1e-5,   //tol,
-                            extractor().includedAngle(),
-                            edgeI
-                        );
-                    }
-                }
+                features().checkFlatRegionEdge
+                (
+                    edgeStat,
+                    1e-5,   // tol
+                    extractor().includedAngle()
+                );
             }
 
             // Suboption: "openEdges" (false: remove open edges)
@@ -1088,13 +300,7 @@ int main(int argc, char *argv[])
                 Info<< "Removing all open edges"
                     << " (edges with 1 connected face)" << endl;
 
-                forAll(edgeStat, edgeI)
-                {
-                    if (surf.edgeFaces()[edgeI].size() == 1)
-                    {
-                        edgeStat[edgeI] = surfaceFeatures::NONE;
-                    }
-                }
+                features().excludeOpen(edgeStat);
             }
 
             // Suboption: "plane"
@@ -1102,47 +308,49 @@ int main(int argc, char *argv[])
             {
                 plane cutPlane(subsetDict.lookup("plane")());
 
-                deleteEdges(surf, cutPlane, edgeStat);
+                Info<< "Only include feature edges that intersect the plane"
+                    << " with normal " << cutPlane.normal()
+                    << " and base point " << cutPlane.refPoint() << endl;
 
-                Info<< "Only edges that intersect the plane with normal "
-                    << cutPlane.normal()
-                    << " and base point " << cutPlane.refPoint()
-                    << " will be included as feature edges."<< endl;
+                features().subsetPlane(edgeStat, cutPlane);
             }
         }
 
-
         surfaceFeatures newSet(surf);
         newSet.setFromStatus(edgeStat, extractor().includedAngle());
 
-        Info<< nl
-            << "Initial feature set:" << nl
-            << "    feature points : " << newSet.featurePoints().size() << nl
-            << "    feature edges  : " << newSet.featureEdges().size() << nl
-            << "    of which" << nl
-            << "        region edges   : " << newSet.nRegionEdges() << nl
-            << "        external edges : " << newSet.nExternalEdges() << nl
-            << "        internal edges : " << newSet.nInternalEdges() << nl
-            << endl;
-
-        //if (writeObj)
-        //{
-        //    newSet.writeObj("final");
-        //}
+        Info<< nl << "Initial ";
+        newSet.writeStats(Info);
 
         boolList surfBaffleRegions(surf.patches().size(), false);
+        if (surfaceDict.found("baffles"))
+        {
+            wordReList baffleSelect(surfaceDict.lookup("baffles"));
 
-        wordList surfBaffleNames;
-        surfaceDict.readIfPresent("baffles", surfBaffleNames);
+            wordList patchNames(surf.patches().size());
+            forAll(surf.patches(), patchi)
+            {
+                patchNames[patchi] = surf.patches()[patchi].name();
+            }
 
-        forAll(surf.patches(), pI)
-        {
-            const word& name = surf.patches()[pI].name();
+            labelList indices = findStrings(baffleSelect, patchNames);
+            forAll(indices, patchi)
+            {
+                surfBaffleRegions[patchi] = true;
+            }
 
-            if (findIndex(surfBaffleNames, name) != -1)
+            if (indices.size())
             {
-                Info<< "Adding baffle region " << name << endl;
-                surfBaffleRegions[pI] = true;
+                Info<< "Adding " << indices.size() << " baffle regions: (";
+
+                forAll(surfBaffleRegions, patchi)
+                {
+                    if (surfBaffleRegions[patchi])
+                    {
+                        Info<< ' ' << patchNames[patchi];
+                    }
+                }
+                Info<< " )" << nl << nl;
             }
         }
 
@@ -1175,7 +383,7 @@ int main(int argc, char *argv[])
                 )
             );
             Info<< "Read " << addFeMesh.name() << nl;
-            writeStats(addFeMesh, Info);
+            edgeMeshTools::writeStats(Info, addFeMesh);
 
             feMesh.add(addFeMesh);
         }
@@ -1209,15 +417,14 @@ int main(int argc, char *argv[])
                 sizeInfo[0] = addMesh.points().size();
                 sizeInfo[1] = addMesh.edges().size();
             }
-            Info<< "Self intersection:" << nl
-                    << "    points : " << sizeInfo[0] << nl
-                    << "    edges  : " << sizeInfo[1] << nl;
+            Info<< nl
+                << "Self intersection:" << nl
+                << "    points : " << sizeInfo[0] << nl
+                << "    edges  : " << sizeInfo[1] << nl;
         }
 
-
-        Info<< nl
-            << "Final feature set:" << nl;
-        writeStats(feMesh, Info);
+        Info<< nl << "Final ";
+        edgeMeshTools::writeStats(Info, feMesh);
 
         Info<< nl << "Writing extendedFeatureEdgeMesh to "
             << feMesh.objectPath() << endl;
@@ -1259,253 +466,16 @@ int main(int argc, char *argv[])
         // Option: "closeness"
         if (surfaceDict.lookupOrDefault<bool>("closeness", false))
         {
-            Info<< nl << "Extracting internal and external closeness of "
-                << "surface." << endl;
-
-            triSurfaceMesh searchSurf
-            (
-                IOobject
+            Pair<tmp<scalarField>> tcloseness =
+                triSurfaceTools::writeCloseness
                 (
-                    outputName + ".closeness",
-                    runTime.constant(),
-                    "triSurface",
                     runTime,
-                    IOobject::NO_READ,
-                    IOobject::NO_WRITE
-                ),
-                surf
-            );
-
-
-            // Internal and external closeness
-
-            // Prepare start and end points for intersection tests
-
-            const vectorField& normals = searchSurf.faceNormals();
-
-            scalar span = searchSurf.bounds().mag();
-
-            scalar externalAngleTolerance = 10;
-            scalar externalToleranceCosAngle =
-                Foam::cos
-                (
-                    degToRad(180 - externalAngleTolerance)
-                );
-
-            scalar internalAngleTolerance = 45;
-            scalar internalToleranceCosAngle =
-                Foam::cos
-                (
-                    degToRad(180 - internalAngleTolerance)
+                    outputName,
+                    surf,
+                    45,  // internalAngleTolerance
+                    10   // externalAngleTolerance
                 );
 
-            Info<< "externalToleranceCosAngle: " << externalToleranceCosAngle
-                << nl
-                << "internalToleranceCosAngle: " << internalToleranceCosAngle
-                << endl;
-
-            // Info<< "span " << span << endl;
-
-            const pointField start(searchSurf.faceCentres() - span*normals);
-            const pointField end(searchSurf.faceCentres() + span*normals);
-            const pointField& faceCentres = searchSurf.faceCentres();
-
-            List<List<pointIndexHit>> allHitInfo;
-
-            // Find all intersections (in order)
-            searchSurf.findLineAll(start, end, allHitInfo);
-
-            scalarField internalCloseness(start.size(), GREAT);
-            scalarField externalCloseness(start.size(), GREAT);
-
-            forAll(allHitInfo, fI)
-            {
-                const List<pointIndexHit>& hitInfo = allHitInfo[fI];
-
-                if (hitInfo.size() < 1)
-                {
-                    drawHitProblem(fI, surf, start, faceCentres, end, hitInfo);
-
-                    // FatalErrorInFunction
-                    //     << "findLineAll did not hit its own face."
-                    //     << exit(FatalError);
-                }
-                else if (hitInfo.size() == 1)
-                {
-                    if (!hitInfo[0].hit())
-                    {
-                        // FatalErrorInFunction
-                        //     << "findLineAll did not hit any face."
-                        //     << exit(FatalError);
-                    }
-                    else if (hitInfo[0].index() != fI)
-                    {
-                        drawHitProblem
-                        (
-                            fI,
-                            surf,
-                            start,
-                            faceCentres,
-                            end,
-                            hitInfo
-                        );
-
-                        // FatalErrorInFunction
-                        //     << "findLineAll did not hit its own face."
-                        //     << exit(FatalError);
-                    }
-                }
-                else
-                {
-                    label ownHitI = -1;
-
-                    forAll(hitInfo, hI)
-                    {
-                        // Find the hit on the triangle that launched the ray
-
-                        if (hitInfo[hI].index() == fI)
-                        {
-                            ownHitI = hI;
-
-                            break;
-                        }
-                    }
-
-                    if (ownHitI < 0)
-                    {
-                        drawHitProblem
-                        (
-                            fI,
-                            surf,
-                            start,
-                            faceCentres,
-                            end,
-                            hitInfo
-                        );
-
-                        // FatalErrorInFunction
-                        //     << "findLineAll did not hit its own face."
-                        //     << exit(FatalError);
-                    }
-                    else if (ownHitI == 0)
-                    {
-                        // There are no internal hits, the first hit is the
-                        // closest external hit
-
-                        if
-                        (
-                            (
-                                normals[fI]
-                              & normals[hitInfo[ownHitI + 1].index()]
-                            )
-                          < externalToleranceCosAngle
-                        )
-                        {
-                            externalCloseness[fI] =
-                                mag
-                                (
-                                    faceCentres[fI]
-                                  - hitInfo[ownHitI + 1].hitPoint()
-                                );
-                        }
-                    }
-                    else if (ownHitI == hitInfo.size() - 1)
-                    {
-                        // There are no external hits, the last but one hit is
-                        // the closest internal hit
-
-                        if
-                        (
-                            (
-                                normals[fI]
-                              & normals[hitInfo[ownHitI - 1].index()]
-                            )
-                          < internalToleranceCosAngle
-                        )
-                        {
-                            internalCloseness[fI] =
-                                mag
-                                (
-                                    faceCentres[fI]
-                                  - hitInfo[ownHitI - 1].hitPoint()
-                                );
-                        }
-                    }
-                    else
-                    {
-                        if
-                        (
-                            (
-                                normals[fI]
-                              & normals[hitInfo[ownHitI + 1].index()]
-                            )
-                          < externalToleranceCosAngle
-                        )
-                        {
-                            externalCloseness[fI] =
-                                mag
-                                (
-                                    faceCentres[fI]
-                                  - hitInfo[ownHitI + 1].hitPoint()
-                                );
-                        }
-
-                        if
-                        (
-                            (
-                                normals[fI]
-                              & normals[hitInfo[ownHitI - 1].index()]
-                            )
-                          < internalToleranceCosAngle
-                        )
-                        {
-                            internalCloseness[fI] =
-                                mag
-                                (
-                                    faceCentres[fI]
-                                  - hitInfo[ownHitI - 1].hitPoint()
-                                );
-                        }
-                    }
-                }
-            }
-
-            triSurfaceScalarField internalClosenessField
-            (
-                IOobject
-                (
-                    outputName + ".internalCloseness",
-                    runTime.constant(),
-                    "triSurface",
-                    runTime,
-                    IOobject::NO_READ,
-                    IOobject::NO_WRITE
-                ),
-                surf,
-                dimLength,
-                internalCloseness
-            );
-
-            internalClosenessField.write();
-
-            triSurfaceScalarField externalClosenessField
-            (
-                IOobject
-                (
-                    outputName + ".externalCloseness",
-                    runTime.constant(),
-                    "triSurface",
-                    runTime,
-                    IOobject::NO_READ,
-                    IOobject::NO_WRITE
-                ),
-                surf,
-                dimLength,
-                externalCloseness
-            );
-
-            externalClosenessField.write();
-
             if (writeVTK)
             {
                 vtkSurfaceWriter().write
@@ -1518,7 +488,7 @@ int main(int argc, char *argv[])
                         faces
                     ),
                     "internalCloseness",                // fieldName
-                    internalCloseness,
+                    tcloseness[0](),
                     false,                              // isNodeValues
                     true                                // verbose
                 );
@@ -1533,7 +503,7 @@ int main(int argc, char *argv[])
                         faces
                     ),
                     "externalCloseness",                // fieldName
-                    externalCloseness,
+                    tcloseness[1](),
                     false,                              // isNodeValues
                     true                                // verbose
                 );
@@ -1543,22 +513,13 @@ int main(int argc, char *argv[])
         // Option: "curvature"
         if (surfaceDict.lookupOrDefault<bool>("curvature", false))
         {
-            Info<< nl << "Extracting curvature of surface at the points."
-                << endl;
-
-            vectorField pointNormals = calcVertexNormals(surf);
-            triadField pointCoordSys = calcVertexCoordSys(surf, pointNormals);
-
-            triSurfacePointScalarField k = calcCurvature
-            (
-                outputName,
-                runTime,
-                surf,
-                pointNormals,
-                pointCoordSys
-            );
-
-            k.write();
+            tmp<scalarField> tcurvatureField =
+                triSurfaceTools::writeCurvature
+                (
+                    runTime,
+                    outputName,
+                    surf
+                );
 
             if (writeVTK)
             {
@@ -1572,7 +533,7 @@ int main(int argc, char *argv[])
                         faces
                     ),
                     "curvature",                        // fieldName
-                    k,
+                    tcurvatureField(),
                     true,                               // isNodeValues
                     true                                // verbose
                 );
@@ -1582,64 +543,15 @@ int main(int argc, char *argv[])
         // Option: "featureProximity"
         if (surfaceDict.lookupOrDefault<bool>("featureProximity", false))
         {
-            Info<< nl << "Extracting proximity of close feature points and "
-                << "edges to the surface" << endl;
-
-            const scalar searchDistance =
-                readScalar(surfaceDict.lookup("maxFeatureProximity"));
-
-            scalarField featureProximity(surf.size(), searchDistance);
-
-            forAll(surf, fI)
-            {
-                const triPointRef& tri = surf[fI].tri(surf.points());
-                const point& triCentre = tri.circumCentre();
-
-                const scalar radiusSqr = min
-                (
-                    sqr(4*tri.circumRadius()),
-                    sqr(searchDistance)
-                );
-
-                List<pointIndexHit> hitList;
-
-                feMesh.allNearestFeatureEdges(triCentre, radiusSqr, hitList);
-
-                featureProximity[fI] =
-                    calcProximityOfFeatureEdges
-                    (
-                        feMesh,
-                        hitList,
-                        featureProximity[fI]
-                    );
-
-                feMesh.allNearestFeaturePoints(triCentre, radiusSqr, hitList);
-
-                featureProximity[fI] =
-                    calcProximityOfFeaturePoints
-                    (
-                        hitList,
-                        featureProximity[fI]
-                    );
-            }
-
-            triSurfaceScalarField featureProximityField
-            (
-                IOobject
+            tmp<scalarField> tproximity =
+                edgeMeshTools::writeFeatureProximity
                 (
-                    outputName + ".featureProximity",
-                    runTime.constant(),
-                    "triSurface",
                     runTime,
-                    IOobject::NO_READ,
-                    IOobject::NO_WRITE
-                ),
-                surf,
-                dimLength,
-                featureProximity
-            );
-
-            featureProximityField.write();
+                    outputName,
+                    feMesh,
+                    surf,
+                    readScalar(surfaceDict.lookup("maxFeatureProximity"))
+                );
 
             if (writeVTK)
             {
@@ -1653,7 +565,7 @@ int main(int argc, char *argv[])
                         faces
                     ),
                     "featureProximity",                 // fieldName
-                    featureProximity,
+                    tproximity(),
                     false,                              // isNodeValues
                     true                                // verbose
                 );
diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files
index b77d0bdbc99..f9af11d9bef 100644
--- a/src/meshTools/Make/files
+++ b/src/meshTools/Make/files
@@ -25,6 +25,12 @@ $(edgeMeshFormats)/starcd/STARCDedgeFormatRunTime.C
 $(edgeMeshFormats)/vtk/VTKedgeFormat.C
 $(edgeMeshFormats)/vtk/VTKedgeFormatRunTime.C
 
+
+edgeMeshTools = $(em)/edgeMeshTools
+$(edgeMeshTools)/edgeMeshTools.C
+$(edgeMeshTools)/edgeMeshFeatureProximity.C
+
+
 $(em)/featureEdgeMesh/featureEdgeMesh.C
 
 eem = $(em)/extendedEdgeMesh
@@ -215,6 +221,8 @@ triSurface/triangleFuncs/triangleFuncs.C
 triSurface/surfaceFeatures/surfaceFeatures.C
 triSurface/triSurfaceLoader/triSurfaceLoader.C
 triSurface/triSurfaceTools/triSurfaceTools.C
+triSurface/triSurfaceTools/triSurfaceCloseness.C
+triSurface/triSurfaceTools/triSurfaceCurvature.C
 triSurface/triSurfaceTools/geompack/geompack.C
 triSurface/triSurfaceTools/pointToPointPlanarInterpolation.C
 
diff --git a/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshFeatureProximity.C b/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshFeatureProximity.C
new file mode 100644
index 00000000000..c5e9e883e70
--- /dev/null
+++ b/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshFeatureProximity.C
@@ -0,0 +1,228 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "edgeMeshTools.H"
+
+#include "extendedEdgeMesh.H"
+#include "triSurface.H"
+#include "triSurfaceFields.H"
+#include "pointIndexHit.H"
+#include "MeshedSurface.H"
+#include "OFstream.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+static scalar calcProximityOfFeaturePoints
+(
+    const List<pointIndexHit>& hitList,
+    const scalar defaultCellSize
+)
+{
+    scalar minDist = defaultCellSize;
+
+    for
+    (
+        label hI1 = 0;
+        hI1 < hitList.size() - 1;
+        ++hI1
+    )
+    {
+        const pointIndexHit& pHit1 = hitList[hI1];
+
+        if (pHit1.hit())
+        {
+            for
+            (
+                label hI2 = hI1 + 1;
+                hI2 < hitList.size();
+                ++hI2
+            )
+            {
+                const pointIndexHit& pHit2 = hitList[hI2];
+
+                if (pHit2.hit())
+                {
+                    scalar curDist = mag(pHit1.hitPoint() - pHit2.hitPoint());
+
+                    minDist = min(curDist, minDist);
+                }
+            }
+        }
+    }
+
+    return minDist;
+}
+
+
+scalar calcProximityOfFeatureEdges
+(
+    const edgeMesh& emesh,
+    const List<pointIndexHit>& hitList,
+    const scalar defaultCellSize
+)
+{
+    scalar minDist = defaultCellSize;
+
+    for
+    (
+        label hI1 = 0;
+        hI1 < hitList.size() - 1;
+        ++hI1
+    )
+    {
+        const pointIndexHit& pHit1 = hitList[hI1];
+
+        if (pHit1.hit())
+        {
+            const edge& e1 = emesh.edges()[pHit1.index()];
+
+            for
+            (
+                label hI2 = hI1 + 1;
+                hI2 < hitList.size();
+                ++hI2
+            )
+            {
+                const pointIndexHit& pHit2 = hitList[hI2];
+
+                if (pHit2.hit())
+                {
+                    const edge& e2 = emesh.edges()[pHit2.index()];
+
+                    // Don't refine if the edges are connected to each other
+                    if (!e1.connects(e2))
+                    {
+                        scalar curDist =
+                            mag(pHit1.hitPoint() - pHit2.hitPoint());
+
+                        minDist = min(curDist, minDist);
+                    }
+                }
+            }
+        }
+    }
+
+    return minDist;
+}
+
+} // End namespace Foam
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::scalarField> Foam::edgeMeshTools::featureProximity
+(
+    const extendedEdgeMesh& emesh,
+    const triSurface& surf,
+    const scalar searchDistance
+)
+{
+    tmp<scalarField> tfld(new scalarField(surf.size(), searchDistance));
+    scalarField& featureProximity = tfld.ref();
+
+    Info<< "Extracting proximity of close feature points and "
+        << "edges to the surface" << endl;
+
+    forAll(surf, fI)
+    {
+        const triPointRef& tri = surf[fI].tri(surf.points());
+        const point& triCentre = tri.circumCentre();
+
+        const scalar radiusSqr = min
+        (
+            sqr(4*tri.circumRadius()),
+            sqr(searchDistance)
+        );
+
+        List<pointIndexHit> hitList;
+
+        emesh.allNearestFeatureEdges(triCentre, radiusSqr, hitList);
+
+        featureProximity[fI] =
+            calcProximityOfFeatureEdges
+            (
+                emesh,
+                hitList,
+                featureProximity[fI]
+            );
+
+        emesh.allNearestFeaturePoints(triCentre, radiusSqr, hitList);
+
+        featureProximity[fI] =
+            calcProximityOfFeaturePoints
+            (
+                hitList,
+                featureProximity[fI]
+            );
+    }
+
+    return tfld;
+}
+
+
+Foam::tmp<Foam::scalarField> Foam::edgeMeshTools::writeFeatureProximity
+(
+    const Time& runTime,
+    const word& basename,
+    const extendedEdgeMesh& emesh,
+    const triSurface& surf,
+    const scalar searchDistance
+)
+{
+    Info<< nl << "Extracting curvature of surface at the points."
+        << endl;
+
+
+    tmp<scalarField> tfld =
+        edgeMeshTools::featureProximity(emesh, surf, searchDistance);
+    scalarField& featureProximity = tfld.ref();
+
+    triSurfaceScalarField outputField
+    (
+        IOobject
+        (
+            basename + ".featureProximity",
+            runTime.constant(),
+            "triSurface",
+            runTime,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        surf,
+        dimLength,
+        scalarField()
+    );
+
+    outputField.swap(featureProximity);
+    outputField.write();
+    outputField.swap(featureProximity);
+
+    return tfld;
+}
+
+// ************************************************************************* //
diff --git a/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.C b/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.C
new file mode 100644
index 00000000000..eac159b8e98
--- /dev/null
+++ b/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.C
@@ -0,0 +1,65 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "edgeMeshTools.H"
+
+#include "extendedFeatureEdgeMesh.H"
+#include "OFstream.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+void Foam::edgeMeshTools::writeStats
+(
+    Ostream& os,
+    const extendedFeatureEdgeMesh& emesh
+)
+{
+    os  << "Feature set:" << nl
+        << "    points : " << emesh.points().size() << nl
+        << "    of which" << nl
+        << "        convex             : "
+        << emesh.concaveStart() << nl
+        << "        concave            : "
+        << (emesh.mixedStart()-emesh.concaveStart()) << nl
+        << "        mixed              : "
+        << (emesh.nonFeatureStart()-emesh.mixedStart()) << nl
+        << "        non-feature        : "
+        << (emesh.points().size()-emesh.nonFeatureStart()) << nl
+        << "    edges  : " << emesh.edges().size() << nl
+        << "    of which" << nl
+        << "        external edges     : "
+        << emesh.internalStart() << nl
+        << "        internal edges     : "
+        << (emesh.flatStart()- emesh.internalStart()) << nl
+        << "        flat edges         : "
+        << (emesh.openStart()- emesh.flatStart()) << nl
+        << "        open edges         : "
+        << (emesh.multipleStart()- emesh.openStart()) << nl
+        << "        multiply connected : "
+        << (emesh.edges().size()- emesh.multipleStart()) << endl;
+}
+
+
+// ************************************************************************* //
diff --git a/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.H b/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.H
new file mode 100644
index 00000000000..aab9216f34f
--- /dev/null
+++ b/src/meshTools/edgeMesh/edgeMeshTools/edgeMeshTools.H
@@ -0,0 +1,98 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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/>.
+
+Namespace
+    Foam::edgeMeshTools
+
+Description
+    Collection of static functions related to edgeMesh features.
+
+SourceFiles
+    edgeMeshTools.C
+    edgeMeshFeatureProximity.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef edgeMeshTools_H
+#define edgeMeshTools_H
+
+#include "tmp.H"
+#include "scalarField.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class edgeMesh;
+class extendedEdgeMesh;
+class extendedFeatureEdgeMesh;
+class triSurface;
+class Time;
+class Ostream;
+
+/*---------------------------------------------------------------------------*\
+                      Namespace edgeMeshTools Declaration
+\*---------------------------------------------------------------------------*/
+
+namespace edgeMeshTools
+{
+    //- Write some information
+    void writeStats
+    (
+        Ostream& os,
+        const extendedFeatureEdgeMesh& emesh
+    );
+
+
+    //- Calculate proximity of the features to the surface
+    tmp<scalarField> featureProximity
+    (
+        const extendedEdgeMesh& emesh,
+        const triSurface& surf,
+        const scalar searchDistance
+    );
+
+
+    //- Calculate proximity of the features to the surface and write the field
+    tmp<scalarField> writeFeatureProximity
+    (
+        const Time& runTime,
+        const word& basename,
+        const extendedEdgeMesh& emesh,
+        const triSurface& surf,
+        const scalar searchDistance
+    );
+
+} // End namespace edgeMeshTools
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
index 914287df13f..71a4b817795 100644
--- a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
@@ -94,23 +94,22 @@ public:
 
     enum pointStatus
     {
-        CONVEX,     // Fully convex point (w.r.t normals)
-        CONCAVE,    // Fully concave point
-        MIXED,      // A point surrounded by both convex and concave edges
-        NONFEATURE  // Not a feature point
+        CONVEX,     //!< Fully convex point (w.r.t normals)
+        CONCAVE,    //!< Fully concave point
+        MIXED,      //!< A point surrounded by both convex and concave edges
+        NONFEATURE  //!< Not a feature point
     };
 
     static const Foam::NamedEnum<pointStatus, 4> pointStatusNames_;
 
     enum edgeStatus
     {
-        EXTERNAL,   // "Convex" edge
-        INTERNAL,   // "Concave" edge
-        FLAT,       // Neither concave or convex, on a flat surface
-        OPEN,       // i.e. only connected to one face
-        MULTIPLE,   // Multiply connected (connected to more than two faces)
-        NONE        // Not a classified feature edge (consistency with
-                    // surfaceFeatures)
+        EXTERNAL,   //!< "Convex" edge
+        INTERNAL,   //!< "Concave" edge
+        FLAT,       //!< Neither concave or convex, on a flat surface
+        OPEN,       //!< Only connected to a single face
+        MULTIPLE,   //!< Multiply connected (connected to more than two faces)
+        NONE        //!< Unclassified (consistency with surfaceFeatures)
     };
 
     static const Foam::NamedEnum<edgeStatus, 6> edgeStatusNames_;
@@ -118,10 +117,10 @@ public:
     //- Normals point to the outside
     enum sideVolumeType
     {
-        INSIDE  = 0,  // mesh inside
-        OUTSIDE = 1,  // mesh outside
-        BOTH    = 2,  // e.g. a baffle
-        NEITHER = 3   // not sure when this may be used
+        INSIDE  = 0,  //!< mesh inside
+        OUTSIDE = 1,  //!< mesh outside
+        BOTH    = 2,  //!< e.g. a baffle
+        NEITHER = 3   //!< not sure when this may be used
     };
 
     static const Foam::NamedEnum<sideVolumeType, 4> sideVolumeTypeNames_;
diff --git a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
index 055bf8fd63e..c727121a601 100644
--- a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
+++ b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -42,7 +42,30 @@ namespace Foam
     defineTypeNameAndDebug(surfaceFeatures, 0);
 
     const scalar surfaceFeatures::parallelTolerance = sin(degToRad(1.0));
+
+
+//! \cond fileScope
+//  Check if the point is on the line
+static bool onLine(const Foam::point& p, const linePointRef& line)
+{
+    const point& a = line.start();
+    const point& b = line.end();
+
+    if
+    (
+        (p.x() < min(a.x(), b.x()) || p.x() > max(a.x(), b.x()))
+     || (p.y() < min(a.y(), b.y()) || p.y() > max(a.y(), b.y()))
+     || (p.z() < min(a.z(), b.z()) || p.z() > max(a.z(), b.z()))
+    )
+    {
+        return false;
+    }
+
+    return true;
 }
+//! \endcond
+
+} // End namespace Foam
 
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
@@ -442,6 +465,181 @@ Foam::surfaceFeatures::labelScalar Foam::surfaceFeatures::walkSegment
 }
 
 
+//- Divide into multiple normal bins
+//  - return REGION if != 2 normals
+//  - return REGION if 2 normals that make feature angle
+//  - otherwise return NONE and set normals,bins
+//
+// This has been relocated from surfaceFeatureExtract and could be cleaned
+// up some more.
+//
+Foam::surfaceFeatures::edgeStatus
+Foam::surfaceFeatures::surfaceFeatures::checkFlatRegionEdge
+(
+    const scalar tol,
+    const scalar includedAngle,
+    const label edgeI
+) const
+{
+    const triSurface& surf = surf_;
+
+    const edge& e = surf.edges()[edgeI];
+    const labelList& eFaces = surf.edgeFaces()[edgeI];
+
+    // Bin according to normal
+
+    DynamicList<vector> normals(2);
+    DynamicList<labelList> bins(2);
+
+    forAll(eFaces, eFacei)
+    {
+        const vector& n = surf.faceNormals()[eFaces[eFacei]];
+
+        // Find the normal in normals
+        label index = -1;
+        forAll(normals, normalI)
+        {
+            if (mag(n & normals[normalI]) > (1-tol))
+            {
+                index = normalI;
+                break;
+            }
+        }
+
+        if (index != -1)
+        {
+            bins[index].append(eFacei);
+        }
+        else if (normals.size() >= 2)
+        {
+            // Would be third normal. Mark as feature.
+            //Pout<< "** at edge:" << surf.localPoints()[e[0]]
+            //    << surf.localPoints()[e[1]]
+            //    << " have normals:" << normals
+            //    << " and " << n << endl;
+            return surfaceFeatures::REGION;
+        }
+        else
+        {
+            normals.append(n);
+            bins.append(labelList(1, eFacei));
+        }
+    }
+
+
+    // Check resulting number of bins
+    if (bins.size() == 1)
+    {
+        // Note: should check here whether they are two sets of faces
+        // that are planar or indeed 4 faces al coming together at an edge.
+        //Pout<< "** at edge:"
+        //    << surf.localPoints()[e[0]]
+        //    << surf.localPoints()[e[1]]
+        //    << " have single normal:" << normals[0]
+        //    << endl;
+        return surfaceFeatures::NONE;
+    }
+    else
+    {
+        // Two bins. Check if normals make an angle
+
+        //Pout<< "** at edge:"
+        //    << surf.localPoints()[e[0]]
+        //    << surf.localPoints()[e[1]] << nl
+        //    << "    normals:" << normals << nl
+        //    << "    bins   :" << bins << nl
+        //    << endl;
+
+        if (includedAngle >= 0)
+        {
+            scalar minCos = Foam::cos(degToRad(180.0 - includedAngle));
+
+            forAll(eFaces, i)
+            {
+                const vector& ni = surf.faceNormals()[eFaces[i]];
+                for (label j=i+1; j<eFaces.size(); j++)
+                {
+                    const vector& nj = surf.faceNormals()[eFaces[j]];
+                    if (mag(ni & nj) < minCos)
+                    {
+                        //Pout<< "have sharp feature between normal:" << ni
+                        //    << " and " << nj << endl;
+
+                        // Is feature. Keep as region or convert to
+                        // feature angle? For now keep as region.
+                        return surfaceFeatures::REGION;
+                    }
+                }
+            }
+        }
+
+        // So now we have two normals bins but need to make sure both
+        // bins have the same regions in it.
+
+        // 1. store + or - region number depending
+        //    on orientation of triangle in bins[0]
+        const labelList& bin0 = bins[0];
+        labelList regionAndNormal(bin0.size());
+        forAll(bin0, i)
+        {
+            const labelledTri& t = surf.localFaces()[eFaces[bin0[i]]];
+            int dir = t.edgeDirection(e);
+
+            if (dir > 0)
+            {
+                regionAndNormal[i] = t.region()+1;
+            }
+            else if (dir == 0)
+            {
+                FatalErrorInFunction
+                    << exit(FatalError);
+            }
+            else
+            {
+                regionAndNormal[i] = -(t.region()+1);
+            }
+        }
+
+        // 2. check against bin1
+        const labelList& bin1 = bins[1];
+        labelList regionAndNormal1(bin1.size());
+        forAll(bin1, i)
+        {
+            const labelledTri& t = surf.localFaces()[eFaces[bin1[i]]];
+            int dir = t.edgeDirection(e);
+
+            label myRegionAndNormal;
+            if (dir > 0)
+            {
+                myRegionAndNormal = t.region()+1;
+            }
+            else
+            {
+                myRegionAndNormal = -(t.region()+1);
+            }
+
+            regionAndNormal1[i] = myRegionAndNormal;
+
+            label index = findIndex(regionAndNormal, -myRegionAndNormal);
+            if (index == -1)
+            {
+                // Not found.
+                //Pout<< "cannot find region " << myRegionAndNormal
+                //    << " in regions " << regionAndNormal << endl;
+
+                return surfaceFeatures::REGION;
+            }
+        }
+
+        // Passed all checks, two normal bins with the same contents.
+        //Pout<< "regionAndNormal:" << regionAndNormal << endl;
+        //Pout<< "myRegionAndNormal:" << regionAndNormal1 << endl;
+    }
+
+    return surfaceFeatures::NONE;
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::surfaceFeatures::surfaceFeatures(const triSurface& surf)
@@ -829,9 +1027,127 @@ Foam::labelList Foam::surfaceFeatures::trimFeatures
 }
 
 
-void Foam::surfaceFeatures::writeDict(Ostream& os) const
+void Foam::surfaceFeatures::excludeBox
+(
+    List<edgeStatus>& edgeStat,
+    const treeBoundBox& bb
+) const
+{
+    deleteBox(edgeStat, bb, true);
+}
+
+
+void Foam::surfaceFeatures::subsetBox
+(
+    List<edgeStatus>& edgeStat,
+    const treeBoundBox& bb
+) const
+{
+    deleteBox(edgeStat, bb, false);
+}
+
+
+void Foam::surfaceFeatures::deleteBox
+(
+    List<edgeStatus>& edgeStat,
+    const treeBoundBox& bb,
+    const bool removeInside
+) const
+{
+    const edgeList& surfEdges = surf_.edges();
+    const pointField& surfLocalPoints = surf_.localPoints();
+
+    forAll(edgeStat, edgei)
+    {
+        const point eMid = surfEdges[edgei].centre(surfLocalPoints);
+
+        if (removeInside ? bb.contains(eMid) : !bb.contains(eMid))
+        {
+            edgeStat[edgei] = surfaceFeatures::NONE;
+        }
+    }
+}
+
+
+void Foam::surfaceFeatures::subsetPlane
+(
+    List<edgeStatus>& edgeStat,
+    const plane& cutPlane
+) const
+{
+    const edgeList& surfEdges = surf_.edges();
+    const pointField& pts = surf_.points();
+    const labelList& meshPoints = surf_.meshPoints();
+
+    forAll(edgeStat, edgei)
+    {
+        const edge& e = surfEdges[edgei];
+
+        const point& p0 = pts[meshPoints[e.start()]];
+        const point& p1 = pts[meshPoints[e.end()]];
+        const linePointRef line(p0, p1);
+
+        // If edge does not intersect the plane, delete.
+        scalar intersect = cutPlane.lineIntersect(line);
+
+        point featPoint = intersect * (p1 - p0) + p0;
+
+        if (!onLine(featPoint, line))
+        {
+            edgeStat[edgei] = surfaceFeatures::NONE;
+        }
+    }
+}
+
+
+void Foam::surfaceFeatures::excludeOpen
+(
+    List<edgeStatus>& edgeStat
+) const
+{
+    forAll(edgeStat, edgei)
+    {
+        if (surf_.edgeFaces()[edgei].size() == 1)
+        {
+            edgeStat[edgei] = surfaceFeatures::NONE;
+        }
+    }
+}
+
+
+//- Divide into multiple normal bins
+//  - return REGION if != 2 normals
+//  - return REGION if 2 normals that make feature angle
+//  - otherwise return NONE and set normals,bins
+void Foam::surfaceFeatures::checkFlatRegionEdge
+(
+    List<edgeStatus>& edgeStat,
+    const scalar tol,
+    const scalar includedAngle
+) const
 {
+    forAll(edgeStat, edgei)
+    {
+        if (edgeStat[edgei] == surfaceFeatures::REGION)
+        {
+            const labelList& eFaces = surf_.edgeFaces()[edgei];
+
+            if (eFaces.size() > 2 && (eFaces.size() % 2) == 0)
+            {
+                edgeStat[edgei] = checkFlatRegionEdge
+                (
+                    tol,
+                    includedAngle,
+                    edgei
+                );
+            }
+        }
+    }
+}
 
+
+void Foam::surfaceFeatures::writeDict(Ostream& os) const
+{
     dictionary featInfoDict;
     featInfoDict.add("externalStart", externalStart_);
     featInfoDict.add("internalStart", internalStart_);
@@ -903,6 +1219,18 @@ void Foam::surfaceFeatures::writeObj(const fileName& prefix) const
 }
 
 
+void Foam::surfaceFeatures::writeStats(Ostream& os) const
+{
+    os  << "Feature set:" << nl
+        << "    points : " << this->featurePoints().size() << nl
+        << "    edges  : " << this->featureEdges().size() << nl
+        << "    of which" << nl
+        << "        region edges   : " << this->nRegionEdges() << nl
+        << "        external edges : " << this->nExternalEdges() << nl
+        << "        internal edges : " << this->nInternalEdges() << endl;
+}
+
+
 // Get nearest vertex on patch for every point of surf in pointSet.
 Foam::Map<Foam::label> Foam::surfaceFeatures::nearestSamples
 (
diff --git a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
index a9e12e267fb..a4a3083f1a2 100644
--- a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
+++ b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -60,7 +60,9 @@ namespace Foam
 {
 
 // Forward declaration of classes
+class plane;
 class triSurface;
+class treeBoundBox;
 
 /*---------------------------------------------------------------------------*\
                            Class surfaceFeatures Declaration
@@ -73,10 +75,10 @@ public:
         //- Edge status
         enum edgeStatus
         {
-            NONE,
-            REGION,
-            EXTERNAL,
-            INTERNAL
+            NONE,       //!< Not a classified feature edge
+            REGION,     //
+            EXTERNAL,   //!< "Convex" edge
+            INTERNAL    //!< "Concave" edge
         };
 
 
@@ -170,6 +172,17 @@ private:
             labelList& featVisited
         );
 
+        //- Divide into multiple normal bins
+        //  - set REGION if != 2 normals
+        //  - set REGION if 2 normals that make feature angle
+        //  - otherwise set NONE and set normals,bins
+        edgeStatus checkFlatRegionEdge
+        (
+            const scalar tol,
+            const scalar includedAngle,
+            const label edgeI
+        ) const;
+
 public:
 
     ClassName("surfaceFeatures");
@@ -300,6 +313,50 @@ public:
                 const scalar includedAngle
             );
 
+            //- Mark edge status inside box as 'NONE'
+            void excludeBox
+            (
+                List<edgeStatus>& edgeStat,
+                const treeBoundBox& bb
+            ) const;
+
+            //- Mark edge status outside box as 'NONE'
+            void subsetBox
+            (
+                List<edgeStatus>& edgeStat,
+                const treeBoundBox& bb
+            ) const;
+
+            //- Mark edge status as 'NONE' for edges inside/outside box.
+            void deleteBox
+            (
+                List<edgeStatus>& edgeStat,
+                const treeBoundBox& bb,
+                const bool removeInside
+            ) const;
+
+            //- If edge does not intersect the plane, mark as 'NONE'
+            void subsetPlane
+            (
+                List<edgeStatus>& edgeStat,
+                const plane& cutPlane
+            ) const;
+
+            //- Mark edges with a single connected face as 'NONE'
+            void excludeOpen(List<edgeStatus>& edgeStat) const;
+
+            //- Divide into multiple normal bins
+            //  - set REGION if != 2 normals
+            //  - set REGION if 2 normals that make feature angle
+            //  - otherwise set NONE and set normals,bins
+            void checkFlatRegionEdge
+            (
+                List<edgeStatus>& edgeStat,
+                const scalar tol,
+                const scalar includedAngle
+            ) const;
+
+
             //- From member feature edges to status per edge.
             List<edgeStatus> toStatus() const;
 
@@ -414,6 +471,9 @@ public:
             //  feature points) for visualization
             void writeObj(const fileName& prefix) const;
 
+            //- Write some information
+            void writeStats(Ostream& os) const;
+
 
 
     // Member Operators
diff --git a/src/meshTools/triSurface/triSurfaceTools/triSurfaceCloseness.C b/src/meshTools/triSurface/triSurfaceTools/triSurfaceCloseness.C
new file mode 100644
index 00000000000..3925950b73b
--- /dev/null
+++ b/src/meshTools/triSurface/triSurfaceTools/triSurfaceCloseness.C
@@ -0,0 +1,360 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "triSurfaceTools.H"
+
+#include "triSurface.H"
+#include "triSurfaceMesh.H"
+#include "triSurfaceFields.H"
+#include "MeshedSurface.H"
+#include "OFstream.H"
+#include "unitConversion.H"
+#include "meshTools.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+static void drawHitProblem
+(
+    label fI,
+    const triSurface& surf,
+    const pointField& start,
+    const pointField& faceCentres,
+    const pointField& end,
+    const List<pointIndexHit>& hitInfo
+)
+{
+    Info<< nl << "# findLineAll did not hit its own face."
+        << nl << "# fI " << fI
+        << nl << "# start " << start[fI]
+        << nl << "# f centre " << faceCentres[fI]
+        << nl << "# end " << end[fI]
+        << nl << "# hitInfo " << hitInfo
+        << endl;
+
+    meshTools::writeOBJ(Info, start[fI]);
+    meshTools::writeOBJ(Info, faceCentres[fI]);
+    meshTools::writeOBJ(Info, end[fI]);
+
+    Info<< "l 1 2 3" << endl;
+
+    meshTools::writeOBJ(Info, surf.points()[surf[fI][0]]);
+    meshTools::writeOBJ(Info, surf.points()[surf[fI][1]]);
+    meshTools::writeOBJ(Info, surf.points()[surf[fI][2]]);
+
+    Info<< "f 4 5 6" << endl;
+
+    forAll(hitInfo, hI)
+    {
+        label hFI = hitInfo[hI].index();
+
+        meshTools::writeOBJ(Info, surf.points()[surf[hFI][0]]);
+        meshTools::writeOBJ(Info, surf.points()[surf[hFI][1]]);
+        meshTools::writeOBJ(Info, surf.points()[surf[hFI][2]]);
+
+        Info<< "f "
+            << 3*hI + 7 << " "
+            << 3*hI + 8 << " "
+            << 3*hI + 9
+            << endl;
+    }
+}
+
+} // End namespace Foam
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::Pair<Foam::tmp<Foam::scalarField>>
+Foam::triSurfaceTools::writeCloseness
+(
+    const Time& runTime,
+    const word& basename,
+    const triSurface& surf,
+    const scalar internalAngleTolerance,
+    const scalar externalAngleTolerance
+)
+{
+    Pair<tmp<scalarField>> tpair
+    (
+        tmp<scalarField>(new scalarField(surf.size(), GREAT)),
+        tmp<scalarField>(new scalarField(surf.size(), GREAT))
+    );
+
+    Info<< "Extracting internal and external closeness of surface." << endl;
+
+    triSurfaceMesh searchSurf
+    (
+        IOobject
+        (
+            basename + ".closeness",
+            runTime.constant(),
+            "triSurface",
+            runTime,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        surf
+    );
+
+    // Prepare start and end points for intersection tests
+
+    const vectorField& normals = searchSurf.faceNormals();
+    const scalar span = searchSurf.bounds().mag();
+
+    const scalar externalToleranceCosAngle =
+        Foam::cos
+        (
+            degToRad(180 - externalAngleTolerance)
+        );
+
+    const scalar internalToleranceCosAngle =
+        Foam::cos
+        (
+            degToRad(180 - internalAngleTolerance)
+        );
+
+    Info<< "externalToleranceCosAngle: " << externalToleranceCosAngle << nl
+        << "internalToleranceCosAngle: " << internalToleranceCosAngle << endl;
+
+    // Info<< "span " << span << endl;
+
+    const pointField start(searchSurf.faceCentres() - span*normals);
+    const pointField end(searchSurf.faceCentres() + span*normals);
+    const pointField& faceCentres = searchSurf.faceCentres();
+
+    List<List<pointIndexHit>> allHitInfo;
+
+    // Find all intersections (in order)
+    searchSurf.findLineAll(start, end, allHitInfo);
+
+    scalarField& internalCloseness = tpair[0].ref();
+    scalarField& externalCloseness  = tpair[1].ref();
+
+    forAll(allHitInfo, fI)
+    {
+        const List<pointIndexHit>& hitInfo = allHitInfo[fI];
+
+        if (hitInfo.size() < 1)
+        {
+            drawHitProblem(fI, surf, start, faceCentres, end, hitInfo);
+
+            // FatalErrorInFunction
+            //     << "findLineAll did not hit its own face."
+            //     << exit(FatalError);
+        }
+        else if (hitInfo.size() == 1)
+        {
+            if (!hitInfo[0].hit())
+            {
+                // FatalErrorInFunction
+                //     << "findLineAll did not hit any face."
+                //     << exit(FatalError);
+            }
+            else if (hitInfo[0].index() != fI)
+            {
+                drawHitProblem
+                (
+                    fI,
+                    surf,
+                    start,
+                    faceCentres,
+                    end,
+                    hitInfo
+                );
+
+                // FatalErrorInFunction
+                //     << "findLineAll did not hit its own face."
+                //     << exit(FatalError);
+            }
+        }
+        else
+        {
+            label ownHitI = -1;
+
+            forAll(hitInfo, hI)
+            {
+                // Find the hit on the triangle that launched the ray
+
+                if (hitInfo[hI].index() == fI)
+                {
+                    ownHitI = hI;
+
+                    break;
+                }
+            }
+
+            if (ownHitI < 0)
+            {
+                drawHitProblem
+                (
+                    fI,
+                    surf,
+                    start,
+                    faceCentres,
+                    end,
+                    hitInfo
+                );
+
+                // FatalErrorInFunction
+                //     << "findLineAll did not hit its own face."
+                //     << exit(FatalError);
+            }
+            else if (ownHitI == 0)
+            {
+                // There are no internal hits, the first hit is the
+                // closest external hit
+
+                if
+                (
+                    (
+                        normals[fI]
+                      & normals[hitInfo[ownHitI + 1].index()]
+                    )
+                  < externalToleranceCosAngle
+                )
+                {
+                    externalCloseness[fI] =
+                        mag
+                        (
+                            faceCentres[fI]
+                          - hitInfo[ownHitI + 1].hitPoint()
+                        );
+                }
+            }
+            else if (ownHitI == hitInfo.size() - 1)
+            {
+                // There are no external hits, the last but one hit is
+                // the closest internal hit
+
+                if
+                (
+                    (
+                        normals[fI]
+                      & normals[hitInfo[ownHitI - 1].index()]
+                    )
+                  < internalToleranceCosAngle
+                )
+                {
+                    internalCloseness[fI] =
+                        mag
+                        (
+                            faceCentres[fI]
+                          - hitInfo[ownHitI - 1].hitPoint()
+                        );
+                }
+            }
+            else
+            {
+                if
+                (
+                    (
+                        normals[fI]
+                      & normals[hitInfo[ownHitI + 1].index()]
+                    )
+                  < externalToleranceCosAngle
+                )
+                {
+                    externalCloseness[fI] =
+                        mag
+                        (
+                            faceCentres[fI]
+                          - hitInfo[ownHitI + 1].hitPoint()
+                        );
+                }
+
+                if
+                (
+                    (
+                        normals[fI]
+                      & normals[hitInfo[ownHitI - 1].index()]
+                    )
+                  < internalToleranceCosAngle
+                )
+                {
+                    internalCloseness[fI] =
+                        mag
+                        (
+                            faceCentres[fI]
+                          - hitInfo[ownHitI - 1].hitPoint()
+                        );
+                }
+            }
+        }
+    }
+
+    // write as 'internalCloseness'
+    {
+        triSurfaceScalarField outputField
+        (
+            IOobject
+            (
+                basename + ".internalCloseness",
+                runTime.constant(),
+                "triSurface",
+                runTime,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            surf,
+            dimLength,
+            scalarField()
+        );
+
+        outputField.swap(internalCloseness);
+        outputField.write();
+        outputField.swap(internalCloseness);
+    }
+
+    // write as 'externalCloseness'
+    {
+        triSurfaceScalarField outputField
+        (
+            IOobject
+            (
+                basename + ".externalCloseness",
+                runTime.constant(),
+                "triSurface",
+                runTime,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            surf,
+            dimLength,
+            scalarField()
+        );
+
+        outputField.swap(externalCloseness);
+        outputField.write();
+        outputField.swap(externalCloseness);
+    }
+
+    return tpair;
+}
+
+
+// ************************************************************************* //
diff --git a/src/meshTools/triSurface/triSurfaceTools/triSurfaceCurvature.C b/src/meshTools/triSurface/triSurfaceTools/triSurfaceCurvature.C
new file mode 100644
index 00000000000..2518b095164
--- /dev/null
+++ b/src/meshTools/triSurface/triSurfaceTools/triSurfaceCurvature.C
@@ -0,0 +1,386 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "triSurfaceTools.H"
+
+#include "triSurface.H"
+#include "MeshedSurfaces.H"
+#include "triSurfaceFields.H"
+#include "OFstream.H"
+#include "plane.H"
+#include "tensor2D.H"
+#include "symmTensor2D.H"
+#include "scalarMatrices.H"
+#include "transform.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::scalar Foam::triSurfaceTools::vertexNormalWeight
+(
+    const triFace& f,
+    const label pI,
+    const vector& fN,
+    const UList<point>& points
+)
+{
+    label index = findIndex(f, pI);
+
+    if (index == -1)
+    {
+        FatalErrorInFunction
+            << "Point not in face" << abort(FatalError);
+    }
+
+    const vector e1 = points[f[index]] - points[f[f.fcIndex(index)]];
+    const vector e2 = points[f[index]] - points[f[f.rcIndex(index)]];
+
+    return mag(fN)/(magSqr(e1)*magSqr(e2) + VSMALL);
+}
+
+
+Foam::tmp<Foam::vectorField>
+Foam::triSurfaceTools::vertexNormals(const triSurface& surf)
+{
+    // Weighted average of normals of faces attached to the vertex
+    // Weight = fA / (mag(e0)^2 * mag(e1)^2);
+
+    Info<< "Calculating vertex normals" << endl;
+
+    tmp<vectorField> tfld(new vectorField(surf.nPoints(), Zero));
+    vectorField& pointNormals = tfld.ref();
+
+    const pointField& points = surf.points();
+    const labelListList& pointFaces = surf.pointFaces();
+    const labelList& meshPoints = surf.meshPoints();
+
+    forAll(pointFaces, pI)
+    {
+        const labelList& pFaces = pointFaces[pI];
+
+        forAll(pFaces, fI)
+        {
+            const label facei = pFaces[fI];
+            const triFace& f = surf[facei];
+
+            vector fN = f.normal(points);
+
+            const scalar weight = vertexNormalWeight
+            (
+                f,
+                meshPoints[pI],
+                fN,
+                points
+            );
+
+            pointNormals[pI] += weight*fN;
+        }
+
+        pointNormals[pI] /= mag(pointNormals[pI]) + VSMALL;
+    }
+
+    return tfld;
+}
+
+
+Foam::tmp<Foam::triadField>
+Foam::triSurfaceTools::vertexTriads
+(
+    const triSurface& surf,
+    const vectorField& pointNormals
+)
+{
+    const pointField& points = surf.points();
+    const Map<label>& meshPointMap = surf.meshPointMap();
+
+    tmp<triadField> tfld(new triadField(points.size()));
+    triadField& pointTriads = tfld.ref();
+
+    forAll(points, pI)
+    {
+        const point& pt = points[pI];
+        const vector& normal = pointNormals[meshPointMap[pI]];
+
+        if (mag(normal) < SMALL)
+        {
+            pointTriads[meshPointMap[pI]] = triad::unset;
+            continue;
+        }
+
+        plane p(pt, normal);
+
+        // Pick arbitrary point in plane
+        vector dir1 = pt - p.somePointInPlane(1e-3);
+        dir1 /= mag(dir1);
+
+        vector dir2 = dir1 ^ normal;
+        dir2 /= mag(dir2);
+
+        pointTriads[meshPointMap[pI]] = triad(dir1, dir2, normal);
+    }
+
+    return tfld;
+}
+
+
+Foam::tmp<Foam::scalarField>
+Foam::triSurfaceTools::curvatures
+(
+    const triSurface& surf,
+    const vectorField& pointNormals,
+    const triadField& pointTriads
+)
+{
+    Info<< "Calculating face curvature" << endl;
+
+    const pointField& points = surf.points();
+    const labelList& meshPoints = surf.meshPoints();
+    const Map<label>& meshPointMap = surf.meshPointMap();
+
+    List<symmTensor2D> pointFundamentalTensors
+    (
+        points.size(),
+        symmTensor2D::zero
+    );
+
+    scalarList accumulatedWeights(points.size(), 0.0);
+
+    forAll(surf, fI)
+    {
+        const triFace& f = surf[fI];
+        const edgeList fEdges = f.edges();
+
+        // Calculate the edge vectors and the normal differences
+        vectorField edgeVectors(f.size(), Zero);
+        vectorField normalDifferences(f.size(), Zero);
+
+        forAll(fEdges, feI)
+        {
+            const edge& e = fEdges[feI];
+
+            edgeVectors[feI] = e.vec(points);
+            normalDifferences[feI] =
+               pointNormals[meshPointMap[e[0]]]
+             - pointNormals[meshPointMap[e[1]]];
+        }
+
+        // Set up a local coordinate system for the face
+        const vector& e0 = edgeVectors[0];
+        const vector eN = f.normal(points);
+        const vector e1 = (e0 ^ eN);
+
+        if (magSqr(eN) < ROOTVSMALL)
+        {
+            continue;
+        }
+
+        triad faceCoordSys(e0, e1, eN);
+        faceCoordSys.normalize();
+
+        // Construct the matrix to solve
+        scalarSymmetricSquareMatrix T(3, 0);
+        scalarDiagonalMatrix Z(3, 0);
+
+        // Least Squares
+        for (label i = 0; i < 3; ++i)
+        {
+            scalar x = edgeVectors[i] & faceCoordSys[0];
+            scalar y = edgeVectors[i] & faceCoordSys[1];
+
+            T(0, 0) += sqr(x);
+            T(1, 0) += x*y;
+            T(1, 1) += sqr(x) + sqr(y);
+            T(2, 1) += x*y;
+            T(2, 2) += sqr(y);
+
+            scalar dndx = normalDifferences[i] & faceCoordSys[0];
+            scalar dndy = normalDifferences[i] & faceCoordSys[1];
+
+            Z[0] += dndx*x;
+            Z[1] += dndx*y + dndy*x;
+            Z[2] += dndy*y;
+        }
+
+        // Perform Cholesky decomposition and back substitution.
+        // Decomposed matrix is in T and solution is in Z.
+        LUsolve(T, Z);
+        symmTensor2D secondFundamentalTensor(Z[0], Z[1], Z[2]);
+
+        // Loop over the face points adding the contribution of the face
+        // curvature to the points.
+        forAll(f, fpI)
+        {
+            const label patchPointIndex = meshPointMap[f[fpI]];
+
+            const triad& ptCoordSys = pointTriads[patchPointIndex];
+
+            if (!ptCoordSys.set())
+            {
+                continue;
+            }
+
+            // Rotate faceCoordSys to ptCoordSys
+            tensor rotTensor = rotationTensor(ptCoordSys[2], faceCoordSys[2]);
+            triad rotatedFaceCoordSys = rotTensor & tensor(faceCoordSys);
+
+            // Project the face curvature onto the point plane
+
+            vector2D cmp1
+            (
+                ptCoordSys[0] & rotatedFaceCoordSys[0],
+                ptCoordSys[0] & rotatedFaceCoordSys[1]
+            );
+            vector2D cmp2
+            (
+                ptCoordSys[1] & rotatedFaceCoordSys[0],
+                ptCoordSys[1] & rotatedFaceCoordSys[1]
+            );
+
+            tensor2D projTensor
+            (
+                cmp1,
+                cmp2
+            );
+
+            symmTensor2D projectedFundamentalTensor
+            (
+                projTensor.x() & (secondFundamentalTensor & projTensor.x()),
+                projTensor.x() & (secondFundamentalTensor & projTensor.y()),
+                projTensor.y() & (secondFundamentalTensor & projTensor.y())
+            );
+
+            // Calculate weight
+            // TODO: Voronoi area weighting
+            scalar weight = triSurfaceTools::vertexNormalWeight
+            (
+                f,
+                meshPoints[patchPointIndex],
+                f.normal(points),
+                points
+            );
+
+            // Sum contribution of face to this point
+            pointFundamentalTensors[patchPointIndex] +=
+                weight*projectedFundamentalTensor;
+
+            accumulatedWeights[patchPointIndex] += weight;
+        }
+
+        if (false)
+        {
+            Info<< "Points = " << points[f[0]] << " "
+                << points[f[1]] << " "
+                << points[f[2]] << endl;
+            Info<< "edgeVecs = " << edgeVectors[0] << " "
+                << edgeVectors[1] << " "
+                << edgeVectors[2] << endl;
+            Info<< "normDiff = " << normalDifferences[0] << " "
+                << normalDifferences[1] << " "
+                << normalDifferences[2] << endl;
+            Info<< "faceCoordSys = " << faceCoordSys << endl;
+            Info<< "T = " << T << endl;
+            Info<< "Z = " << Z << endl;
+        }
+    }
+
+    tmp<scalarField> tfld(new scalarField(points.size(), Zero));
+    scalarField& curvatureAtPoints = tfld.ref();
+
+    forAll(curvatureAtPoints, pI)
+    {
+        pointFundamentalTensors[pI] /= (accumulatedWeights[pI] + SMALL);
+
+        vector2D principalCurvatures = eigenValues(pointFundamentalTensors[pI]);
+
+        //scalar curvature =
+        //    (principalCurvatures[0] + principalCurvatures[1])/2;
+        scalar curvature = max
+        (
+            mag(principalCurvatures[0]),
+            mag(principalCurvatures[1])
+        );
+        //scalar curvature = principalCurvatures[0]*principalCurvatures[1];
+
+        curvatureAtPoints[meshPoints[pI]] = curvature;
+    }
+
+    return tfld;
+}
+
+
+Foam::tmp<Foam::scalarField>
+Foam::triSurfaceTools::curvatures
+(
+    const triSurface& surf
+)
+{
+    tmp<vectorField> norms = triSurfaceTools::vertexNormals(surf);
+    tmp<triadField> triads = triSurfaceTools::vertexTriads(surf, norms());
+
+    tmp<scalarField> curv = curvatures(surf, norms(), triads());
+    norms.clear();
+    triads.clear();
+
+    return curv;
+}
+
+
+Foam::tmp<Foam::scalarField>
+Foam::triSurfaceTools::writeCurvature
+(
+    const Time& runTime,
+    const word& basename,
+    const triSurface& surf
+)
+{
+    Info<< "Extracting curvature of surface at the points." << endl;
+
+    tmp<scalarField> tfld = triSurfaceTools::curvatures(surf);
+    scalarField& curv = tfld.ref();
+
+    triSurfacePointScalarField outputField
+    (
+        IOobject
+        (
+            basename + ".curvature",
+            runTime.constant(),
+            "triSurface",
+            runTime,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        surf,
+        dimLength,
+        scalarField()
+    );
+
+    outputField.swap(curv);
+    outputField.write();
+    outputField.swap(curv);
+
+    return tfld;
+}
+
+
+// ************************************************************************* //
diff --git a/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C b/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C
index aec02f8e06b..d1da45a001c 100644
--- a/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C
+++ b/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C
@@ -33,7 +33,6 @@ License
 #include "plane.H"
 #include "geompack.H"
 
-
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 const Foam::label Foam::triSurfaceTools::ANYEDGE = -1;
@@ -1376,54 +1375,6 @@ Foam::labelList Foam::triSurfaceTools::getVertexVertices
 }
 
 
-//// Order vertices consistent with face
-//void Foam::triSurfaceTools::orderVertices
-//(
-//    const labelledTri& f,
-//    const label v1,
-//    const label v2,
-//    label& vA,
-//    label& vB
-//)
-//{
-//    // Order v1, v2 in anticlockwise order.
-//    bool reverse = false;
-//
-//    if (f[0] == v1)
-//    {
-//        if (f[1] != v2)
-//        {
-//            reverse = true;
-//        }
-//    }
-//    else if (f[1] == v1)
-//    {
-//        if (f[2] != v2)
-//        {
-//            reverse = true;
-//        }
-//    }
-//    else
-//    {
-//        if (f[0] != v2)
-//        {
-//            reverse = true;
-//        }
-//    }
-//
-//    if (reverse)
-//    {
-//        vA = v2;
-//        vB = v1;
-//    }
-//    else
-//    {
-//        vA = v1;
-//        vB = v2;
-//    }
-//}
-
-
 // Get the other face using edgeI
 Foam::label Foam::triSurfaceTools::otherFace
 (
@@ -2633,7 +2584,6 @@ void Foam::triSurfaceTools::calcInterpolationWeights
     {
         const point& samplePt = samplePts[i];
 
-
         FixedList<label, 3>& verts = allVerts[i];
         FixedList<scalar, 3>& weights = allWeights[i];
 
diff --git a/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.H b/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.H
index d90c862dc97..28960823dbf 100644
--- a/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.H
+++ b/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.H
@@ -27,8 +27,21 @@ Class
 Description
     A collection of tools for triSurface.
 
+Note
+    The curvature calculation is an implementation of the algorithm from:
+    \verbatim
+        "Estimating Curvatures and their Derivatives on Triangle Meshes"
+        by S. Rusinkiewicz
+        3DPVT'04 Proceedings of the 3D Data Processing,
+        Visualization, and Transmission, 2nd International Symposium
+        Pages 486-493
+        http://gfx.cs.princeton.edu/pubs/_2004_ECA/curvpaper.pdf
+    \endverbatim
+
 SourceFiles
     triSurfaceTools.C
+    triSurfaceCloseness.C
+    triSurfaceCurvature.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -37,9 +50,12 @@ SourceFiles
 
 #include "boolList.H"
 #include "pointField.H"
+#include "vectorField.H"
+#include "triadFieldFwd.H"
 #include "DynamicList.H"
 #include "HashSet.H"
 #include "FixedList.H"
+#include "Pair.H"
 #include "vector2D.H"
 #include "triPointRef.H"
 #include "surfaceLocation.H"
@@ -56,6 +72,7 @@ class polyBoundaryMesh;
 class plane;
 class triSurface;
 class face;
+class Time;
 template<class Face> class MeshedSurface;
 
 
@@ -280,16 +297,6 @@ public:
             const edge& e
         );
 
-        ////- Order vertices consistent with face
-        //static void orderVertices
-        //(
-        //    const labelledTri& f,
-        //    const label v1,
-        //    const label v2,
-        //    label& vA,
-        //    label& vB
-        //);
-
         //- Get face connected to edge not facei
         static label otherFace
         (
@@ -490,12 +497,16 @@ public:
 
     // Triangulation and interpolation
 
+        //- Do unconstrained Delaunay of points. Returns triSurface with 3D
+        //  points with z=0. All triangles in region 0.
+        static triSurface delaunay2D(const List<vector2D>&);
+
         //- Calculate linear interpolation weights for point (guaranteed to be
         //  inside triangle)
         static void calcInterpolationWeights
         (
-            const triPointRef&,
-            const point&,
+            const triPointRef& tri,
+            const point& p,
             FixedList<scalar, 3>& weights
         );
 
@@ -510,13 +521,86 @@ public:
         (
             const triSurface& s,
             const pointField& samplePts,
-            List<FixedList<label, 3>>& verts,
-            List<FixedList<scalar, 3>>& weights
+            List<FixedList<label, 3>>& allVerts,
+            List<FixedList<scalar, 3>>& allWeights
         );
 
-        //- Do unconstrained Delaunay of points. Returns triSurface with 3D
-        //  points with z=0. All triangles in region 0.
-        static triSurface delaunay2D(const List<vector2D>&);
+
+    // Curvature
+
+        //- Weighting for normals of faces attached to vertex
+        static scalar vertexNormalWeight
+        (
+            const triFace& f,
+            const label pI,
+            const vector& fN,
+            const UList<point>& points
+        );
+
+        //- Weighted average of normals of attached faces
+        static tmp<vectorField> vertexNormals(const triSurface& surf);
+
+        //- Local coordinate-system for each point normal
+        static tmp<triadField> vertexTriads
+        (
+            const triSurface& surf,
+            const vectorField& pointNormals
+        );
+
+        //- Surface curvatures at the vertex points
+        static tmp<scalarField> curvatures
+        (
+            const triSurface& surf,
+            const vectorField& pointNormals,
+            const triadField& pointTriads
+        );
+
+        //- Surface curvatures at the vertex points
+        static tmp<scalarField> curvatures
+        (
+            const triSurface& surf
+        );
+
+        //- Write surface curvature at the vertex points and return the field
+        static tmp<scalarField> writeCurvature
+        (
+            const Time& runTime,
+            const word& basename,
+            const triSurface& surf
+        );
+
+
+    // Closeness
+
+        //- Check and write internal/external closeness fields
+        static Pair<tmp<scalarField>> writeCloseness
+        (
+            const Time& runTime,
+            const word& basename,
+            const triSurface& surf,
+            const scalar internalAngleTolerance = 45,
+            const scalar externalAngleTolerance = 10
+        );
+
+
+    // Feature Proximity
+
+        //- Calculate feature proximity
+        scalarField featureProximity
+        (
+            const triSurface& surf,
+            const scalar searchDistance
+        );
+
+        //- Check and write internal/external closeness fields
+        static void writeFeatureProximity
+        (
+            const Time& runTime,
+            const word& basename,
+            const triSurface& surf,
+            const bool writeVTK,
+            const scalar searchDistance
+        );
 
 
     // Surface checking functionality
-- 
GitLab


From f68896605e04a8ebce3f500eaf3b9227972232f7 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Wed, 17 May 2017 17:33:47 +0100
Subject: [PATCH 212/277] ENH: Clean-up after latest Foundation integrations

---
 applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H b/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H
index b9765ce586f..2741ad3f964 100644
--- a/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/EEqn.H
@@ -14,7 +14,7 @@
         rho*(U&g)
       + Qdot
       + parcels.Sh(he)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
-- 
GitLab


From 8ff163713d013c73ae24393e68db3b0a3b1906a8 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Wed, 17 May 2017 20:48:00 +0100
Subject: [PATCH 213/277] BUG: Lagrangian - corrected particle LocalInteraction
 behaviour on coupled patches.  See reactingParcelFoam/filter tutorial example

---
 .../Templates/KinematicParcel/KinematicParcel.C    | 14 +++++++-------
 .../LocalInteraction/patchInteractionDataList.C    |  1 -
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index fa213c67d3c..b593d4393bf 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -402,16 +402,16 @@ bool Foam::KinematicParcel<ParcelType>::hitPatch
         td.keepParticle
     );
 
-    // Invoke surface film model
-    if (td.cloud().surfaceFilm().transferParcel(p, pp, td.keepParticle))
+    if (isA<processorPolyPatch>(pp))
     {
-        // All interactions done
-        return true;
+        // Skip processor patches
+        return false;
     }
-    else if (pp.coupled())
+    else if (td.cloud().surfaceFilm().transferParcel(p, pp, td.keepParticle))
     {
-        // Don't apply the patchInteraction models to coupled boundaries
-        return false;
+        // Surface film model consumes the interaction, i.e. all
+        // interactions done
+        return true;
     }
     else
     {
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C
index 4ee514d8c48..9033ab2b892 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionDataList.C
@@ -26,7 +26,6 @@ License
 #include "patchInteractionDataList.H"
 #include "stringListOps.H"
 #include "emptyPolyPatch.H"
-#include "cyclicAMIPolyPatch.H"
 
 // * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * * //
 
-- 
GitLab


From abe61213114505cc74963407a091f9060ff71bb7 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Thu, 18 May 2017 11:01:27 +0200
Subject: [PATCH 214/277] GIT: remove remnant edgeMesh Make/{files,options}

- missed by commit c085c5df2576
---
 .../PolyhedronReader/Make/options             |  1 -
 src/meshTools/edgeMesh/Make/files             | 47 -------------------
 src/meshTools/edgeMesh/Make/options           | 10 ----
 3 files changed, 58 deletions(-)
 delete mode 100644 src/meshTools/edgeMesh/Make/files
 delete mode 100644 src/meshTools/edgeMesh/Make/options

diff --git a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
index bea50bf0feb..e8940960b96 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
+++ b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
@@ -15,7 +15,6 @@ EXE_INC = \
     -I.. \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I/usr/include/Qt
 
diff --git a/src/meshTools/edgeMesh/Make/files b/src/meshTools/edgeMesh/Make/files
deleted file mode 100644
index 648ffed01ac..00000000000
--- a/src/meshTools/edgeMesh/Make/files
+++ /dev/null
@@ -1,47 +0,0 @@
-em = .
-
-$(em)/edgeMesh.C
-$(em)/edgeMeshIO.C
-$(em)/edgeMeshNew.C
-
-
-edgeMeshFormats = $(em)/edgeMeshFormats
-$(edgeMeshFormats)/edgeMeshFormatsCore.C
-
-$(edgeMeshFormats)/edgeMesh/edgeMeshFormat.C
-$(edgeMeshFormats)/edgeMesh/edgeMeshFormatRunTime.C
-
-$(edgeMeshFormats)/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
-$(edgeMeshFormats)/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
-
-
-$(edgeMeshFormats)/nas/NASedgeFormat.C
-$(edgeMeshFormats)/nas/NASedgeFormatRunTime.C
-
-$(edgeMeshFormats)/obj/OBJedgeFormat.C
-$(edgeMeshFormats)/obj/OBJedgeFormatRunTime.C
-
-$(edgeMeshFormats)/starcd/STARCDedgeFormat.C
-$(edgeMeshFormats)/starcd/STARCDedgeFormatRunTime.C
-
-$(edgeMeshFormats)/vtk/VTKedgeFormat.C
-$(edgeMeshFormats)/vtk/VTKedgeFormatRunTime.C
-
-
-$(em)/featureEdgeMesh/featureEdgeMesh.C
-
-eem = $(em)/extendedEdgeMesh
-
-$(eem)/extendedEdgeMesh.C
-$(eem)/extendedEdgeMeshNew.C
-
-$(eem)/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
-$(eem)/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
-
-efm = $(eem)/extendedFeatureEdgeMesh
-
-$(efm)/extendedFeatureEdgeMesh.C
-
-searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
-
-LIB = $(FOAM_LIBBIN)/libedgeMesh
diff --git a/src/meshTools/edgeMesh/Make/options b/src/meshTools/edgeMesh/Make/options
deleted file mode 100644
index d488d6522e5..00000000000
--- a/src/meshTools/edgeMesh/Make/options
+++ /dev/null
@@ -1,10 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude
-
-LIB_LIBS = \
-    -ltriSurface \
-    -lmeshTools \
-    -lsurfMesh
-- 
GitLab


From 381476278542eb4af99e040f85ddb823e64b0087 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Thu, 18 May 2017 10:42:05 +0200
Subject: [PATCH 215/277] ENH: relocate triSurface classes into surfMesh
 library (issue #294)

- simplifies organization, includes, linkage etc.
---
 .../solvers/combustion/PDRFoam/Make/options   |  4 +--
 .../test/dynamicIndexedOctree/Make/options    |  6 ++--
 applications/test/ensightFile/Make/options    | 10 +++----
 .../test/momentOfInertia/Make/options         |  4 +--
 .../mesh/advanced/selectCells/Make/options    |  8 ++----
 .../advanced/snappyRefineMesh/Make/options    |  3 +-
 .../conversion/ccm/ccmToFoam/Make/options     |  4 +--
 .../conversion/ccm/foamToCcm/Make/options     |  4 +--
 .../mesh/conversion/fireToFoam/Make/options   |  4 +--
 .../conversion/foamToFireMesh/Make/options    |  4 +--
 .../conversion/foamToStarMesh/Make/options    |  4 +--
 .../mesh/conversion/star4ToFoam/Make/options  |  4 +--
 .../mesh/generation/blockMesh/Make/options    |  3 +-
 .../cellSizeAndAlignmentGrid/Make/options     | 13 ++++-----
 .../conformalVoronoiMesh/Make/options         | 12 +++-----
 .../foamyMesh/foamyHexMesh/Make/options       | 14 ++++------
 .../foamyHexMeshBackgroundMesh/Make/options   |  8 ++----
 .../foamyHexMeshSurfaceSimplify/Make/options  |  4 +--
 .../foamyMesh/foamyQuadMesh/Make/options      | 14 ++++------
 .../generation/snappyHexMesh/Make/options     |  5 +---
 .../manipulation/insideCells/Make/options     |  6 ++--
 .../manipulation/orientFaceZone/Make/options  |  7 ++---
 .../miscellaneous/foamList/Make/options       |  1 -
 .../dataConversion/foamToEnsight/Make/options |  7 ++---
 .../foamToEnsightParts/Make/options           | 11 ++++----
 .../vtkPVblockMesh/Make/options               |  3 +-
 .../lagrangian/particleTracks/Make/options    |  3 +-
 .../faceAgglomerate/Make/options              |  4 +--
 .../preProcessing/viewFactorsGen/Make/options |  5 ++--
 .../utilities/surface/surfaceAdd/Make/options |  5 ++--
 .../surfaceBooleanFeatures/Make/options       |  6 +---
 .../PolyhedronReader/Make/options             |  3 +-
 .../surface/surfaceCheck/Make/options         | 10 +++----
 .../surface/surfaceClean/Make/options         |  5 ++--
 .../surface/surfaceCoarsen/Make/options       |  5 ++--
 .../surface/surfaceConvert/Make/options       |  5 ++--
 .../surfaceFeatureExtract/Make/options        |  4 +--
 .../surface/surfaceHookUp/Make/options        |  8 ++----
 .../surface/surfaceInertia/Make/options       |  7 ++---
 .../surface/surfaceInflate/Make/options       |  3 --
 .../surfaceMeshConvertTesting/Make/options    |  4 +--
 .../surface/surfaceOrient/Make/options        |  5 ++--
 .../surface/surfacePatch/Make/options         |  4 +--
 .../surface/surfacePointMerge/Make/options    |  7 ++---
 .../surfaceRedistributePar/Make/options       |  5 ++--
 .../surfaceRefineRedGreen/Make/options        |  7 ++---
 .../surface/surfaceSplitByPatch/Make/options  |  6 ++--
 .../surfaceSplitByTopology/Make/options       |  6 ++--
 .../surfaceSplitNonManifolds/Make/options     |  7 ++---
 .../surface/surfaceSubset/Make/options        |  6 ++--
 .../surface/surfaceToPatch/Make/options       |  4 +--
 src/Allwmake                                  |  1 -
 src/conversion/Make/options                   |  3 +-
 src/conversion/ccm/Make/options               |  2 +-
 src/dynamicFvMesh/Make/options                |  3 +-
 src/dynamicMesh/Make/options                  |  4 +--
 src/finiteVolume/Make/options                 |  5 ++--
 src/functionObjects/forces/Make/options       |  5 ++--
 .../CMakeLists-Common.txt                     |  4 +--
 src/fvMotionSolver/Make/options               |  8 ++----
 src/mesh/blockMesh/Make/options               |  8 ++----
 src/mesh/extrudeModel/Make/options            |  2 +-
 src/mesh/snappyHexMesh/Make/options           |  5 +---
 src/meshTools/Make/options                    |  6 ++--
 src/parallel/distributed/Make/options         | 10 +++----
 src/rigidBodyMeshMotion/Make/options          |  3 +-
 src/sampling/Make/options                     | 14 ++++------
 src/sixDoFRigidBodyMotion/Make/options        |  5 ++--
 src/surfMesh/Make/files                       | 26 +++++++++++++++++
 .../triSurface/fields}/triSurfaceFields.C     |  0
 .../triSurface/fields}/triSurfaceFields.H     |  0
 .../triSurface/fields}/triSurfaceFieldsFwd.H  |  0
 .../triSurface/fields}/triSurfaceGeoMesh.H    |  0
 .../fields}/triSurfacePointGeoMesh.H          |  0
 .../triSurface/interfaces/AC3D/readAC.C       |  0
 .../triSurface/interfaces/AC3D/writeAC.C      |  0
 .../triSurface/interfaces/GTS/readGTS.C       |  0
 .../triSurface/interfaces/GTS/writeGTS.C      |  0
 .../triSurface/interfaces/NAS/readNAS.C       |  0
 .../triSurface/interfaces/OBJ/readOBJ.C       |  0
 .../triSurface/interfaces/OBJ/writeOBJ.C      |  0
 .../triSurface/interfaces/OFF/readOFF.C       |  0
 .../triSurface/interfaces/OFF/writeOFF.C      |  0
 .../triSurface/interfaces/SMESH/writeSMESH.C  |  0
 .../triSurface/interfaces/STL/readSTL.C       |  0
 .../triSurface/interfaces/STL/writeSTL.C      |  0
 .../triSurface/interfaces/TRI/readTRI.C       |  0
 .../triSurface/interfaces/TRI/writeTRI.C      |  0
 .../triSurface/interfaces/VTK/readVTK.C       |  0
 .../triSurface/interfaces/VTK/writeVTK.C      |  0
 .../patches}/geometricSurfacePatch.C          |  0
 .../patches}/geometricSurfacePatch.H          |  0
 .../patches}/geometricSurfacePatchList.H      |  0
 .../triSurface/patches}/surfacePatch.C        |  0
 .../triSurface/patches}/surfacePatch.H        |  0
 .../triSurface/patches}/surfacePatchList.H    |  0
 .../triSurface/stitchTriangles.C              |  0
 .../triSurface/triSurface.C                   |  0
 .../triSurface/triSurface.H                   |  0
 .../triSurface/triSurfaceAddressing.C         |  0
 .../radiation/Make/options                    |  5 ++--
 src/triSurface/Make/files                     | 28 -------------------
 src/triSurface/Make/options                   |  6 ----
 103 files changed, 177 insertions(+), 277 deletions(-)
 rename src/{triSurface/triSurfaceFields => surfMesh/triSurface/fields}/triSurfaceFields.C (100%)
 rename src/{triSurface/triSurfaceFields => surfMesh/triSurface/fields}/triSurfaceFields.H (100%)
 rename src/{triSurface/triSurfaceFields => surfMesh/triSurface/fields}/triSurfaceFieldsFwd.H (100%)
 rename src/{triSurface/triSurfaceFields => surfMesh/triSurface/fields}/triSurfaceGeoMesh.H (100%)
 rename src/{triSurface/triSurfaceFields => surfMesh/triSurface/fields}/triSurfacePointGeoMesh.H (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/AC3D/readAC.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/AC3D/writeAC.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/GTS/readGTS.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/GTS/writeGTS.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/NAS/readNAS.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/OBJ/readOBJ.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/OBJ/writeOBJ.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/OFF/readOFF.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/OFF/writeOFF.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/SMESH/writeSMESH.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/STL/readSTL.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/STL/writeSTL.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/TRI/readTRI.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/TRI/writeTRI.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/VTK/readVTK.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/interfaces/VTK/writeVTK.C (100%)
 rename src/{triSurface/triSurface/geometricSurfacePatch => surfMesh/triSurface/patches}/geometricSurfacePatch.C (100%)
 rename src/{triSurface/triSurface/geometricSurfacePatch => surfMesh/triSurface/patches}/geometricSurfacePatch.H (100%)
 rename src/{triSurface/triSurface/geometricSurfacePatch => surfMesh/triSurface/patches}/geometricSurfacePatchList.H (100%)
 rename src/{triSurface/triSurface/surfacePatch => surfMesh/triSurface/patches}/surfacePatch.C (100%)
 rename src/{triSurface/triSurface/surfacePatch => surfMesh/triSurface/patches}/surfacePatch.H (100%)
 rename src/{triSurface/triSurface/surfacePatch => surfMesh/triSurface/patches}/surfacePatchList.H (100%)
 rename src/{triSurface => surfMesh}/triSurface/stitchTriangles.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/triSurface.C (100%)
 rename src/{triSurface => surfMesh}/triSurface/triSurface.H (100%)
 rename src/{triSurface => surfMesh}/triSurface/triSurfaceAddressing.C (100%)
 delete mode 100644 src/triSurface/Make/files
 delete mode 100644 src/triSurface/Make/options

diff --git a/applications/solvers/combustion/PDRFoam/Make/options b/applications/solvers/combustion/PDRFoam/Make/options
index 405f5bcf626..58dfadafd4f 100644
--- a/applications/solvers/combustion/PDRFoam/Make/options
+++ b/applications/solvers/combustion/PDRFoam/Make/options
@@ -15,8 +15,8 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -lengine \
diff --git a/applications/test/dynamicIndexedOctree/Make/options b/applications/test/dynamicIndexedOctree/Make/options
index a1d2c044e17..54c035b8f55 100644
--- a/applications/test/dynamicIndexedOctree/Make/options
+++ b/applications/test/dynamicIndexedOctree/Make/options
@@ -1,3 +1,5 @@
-EXE_INC = -I$(LIB_SRC)/meshTools/lnInclude
+EXE_INC = \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
-EXE_LIBS = -lmeshTools
+EXE_LIBS = \
+    -lmeshTools
diff --git a/applications/test/ensightFile/Make/options b/applications/test/ensightFile/Make/options
index a4f7656262c..6684cce1e75 100644
--- a/applications/test/ensightFile/Make/options
+++ b/applications/test/ensightFile/Make/options
@@ -1,10 +1,8 @@
 EXE_INC = \
-    -I$(LIB_SRC)/conversion/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/conversion/lnInclude
 
 EXE_LIBS = \
-    -lconversion \
-    -lfileFormats \
-    -lmeshTools
-
+    -lmeshTools \
+    -lconversion
diff --git a/applications/test/momentOfInertia/Make/options b/applications/test/momentOfInertia/Make/options
index 0b32f3355b3..d5ff5b3e407 100644
--- a/applications/test/momentOfInertia/Make/options
+++ b/applications/test/momentOfInertia/Make/options
@@ -1,6 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -lmeshTools
diff --git a/applications/utilities/mesh/advanced/selectCells/Make/options b/applications/utilities/mesh/advanced/selectCells/Make/options
index c4020c272cd..18a53a8f5e5 100644
--- a/applications/utilities/mesh/advanced/selectCells/Make/options
+++ b/applications/utilities/mesh/advanced/selectCells/Make/options
@@ -1,12 +1,10 @@
 EXE_INC = \
-    -I$(LIB_SRC)/dynamicMesh/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude
 
-
 EXE_LIBS = \
-    -ldynamicMesh \
     -lmeshTools \
-    -ltriSurface \
+    -ldynamicMesh \
     -llagrangian
diff --git a/applications/utilities/mesh/advanced/snappyRefineMesh/Make/options b/applications/utilities/mesh/advanced/snappyRefineMesh/Make/options
index 78df8bbcf4e..7abac6e3a5e 100644
--- a/applications/utilities/mesh/advanced/snappyRefineMesh/Make/options
+++ b/applications/utilities/mesh/advanced/snappyRefineMesh/Make/options
@@ -1,11 +1,10 @@
 EXE_INC = \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude
 
 EXE_LIBS = \
     -ldynamicMesh \
     -lmeshTools \
-    -ltriSurface \
     -llagrangian
diff --git a/applications/utilities/mesh/conversion/ccm/ccmToFoam/Make/options b/applications/utilities/mesh/conversion/ccm/ccmToFoam/Make/options
index 8b1f005a783..55f161ad828 100644
--- a/applications/utilities/mesh/conversion/ccm/ccmToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/ccm/ccmToFoam/Make/options
@@ -1,9 +1,9 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/conversion/lnInclude \
-    -I$(LIB_SRC)/conversion/ccm/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude
+    -I$(LIB_SRC)/conversion/ccm/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
diff --git a/applications/utilities/mesh/conversion/ccm/foamToCcm/Make/options b/applications/utilities/mesh/conversion/ccm/foamToCcm/Make/options
index df1a41bde0a..a788d881ee9 100644
--- a/applications/utilities/mesh/conversion/ccm/foamToCcm/Make/options
+++ b/applications/utilities/mesh/conversion/ccm/foamToCcm/Make/options
@@ -1,8 +1,8 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/conversion/lnInclude \
-    -I$(LIB_SRC)/conversion/ccm/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude
+    -I$(LIB_SRC)/conversion/ccm/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
diff --git a/applications/utilities/mesh/conversion/fireToFoam/Make/options b/applications/utilities/mesh/conversion/fireToFoam/Make/options
index e3af2fe661b..890aee06c8f 100644
--- a/applications/utilities/mesh/conversion/fireToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/fireToFoam/Make/options
@@ -1,7 +1,7 @@
 EXE_INC = \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/conversion/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude
+    -I$(LIB_SRC)/conversion/lnInclude
 
 EXE_LIBS = \
     -lconversion
diff --git a/applications/utilities/mesh/conversion/foamToFireMesh/Make/options b/applications/utilities/mesh/conversion/foamToFireMesh/Make/options
index e3af2fe661b..890aee06c8f 100644
--- a/applications/utilities/mesh/conversion/foamToFireMesh/Make/options
+++ b/applications/utilities/mesh/conversion/foamToFireMesh/Make/options
@@ -1,7 +1,7 @@
 EXE_INC = \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/conversion/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude
+    -I$(LIB_SRC)/conversion/lnInclude
 
 EXE_LIBS = \
     -lconversion
diff --git a/applications/utilities/mesh/conversion/foamToStarMesh/Make/options b/applications/utilities/mesh/conversion/foamToStarMesh/Make/options
index e3af2fe661b..890aee06c8f 100644
--- a/applications/utilities/mesh/conversion/foamToStarMesh/Make/options
+++ b/applications/utilities/mesh/conversion/foamToStarMesh/Make/options
@@ -1,7 +1,7 @@
 EXE_INC = \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/conversion/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude
+    -I$(LIB_SRC)/conversion/lnInclude
 
 EXE_LIBS = \
     -lconversion
diff --git a/applications/utilities/mesh/conversion/star4ToFoam/Make/options b/applications/utilities/mesh/conversion/star4ToFoam/Make/options
index e3af2fe661b..890aee06c8f 100644
--- a/applications/utilities/mesh/conversion/star4ToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/star4ToFoam/Make/options
@@ -1,7 +1,7 @@
 EXE_INC = \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/conversion/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude
+    -I$(LIB_SRC)/conversion/lnInclude
 
 EXE_LIBS = \
     -lconversion
diff --git a/applications/utilities/mesh/generation/blockMesh/Make/options b/applications/utilities/mesh/generation/blockMesh/Make/options
index 9d13a25de68..3828bbeca13 100644
--- a/applications/utilities/mesh/generation/blockMesh/Make/options
+++ b/applications/utilities/mesh/generation/blockMesh/Make/options
@@ -1,11 +1,10 @@
 EXE_INC = \
     -I$(LIB_SRC)/mesh/blockMesh/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude
 
 EXE_LIBS = \
     -lblockMesh \
     -lmeshTools \
-    -lfileFormats \
     -ldynamicMesh
diff --git a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
index c53403e6022..386b6690838 100644
--- a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
@@ -6,7 +6,6 @@ CGAL_INEXACT = -DCGAL_INEXACT
 
 include $(GENERAL_RULES)/CGAL
 
-
 EXE_INC =  \
     ${ROUNDING_MATH} \
     ${EXE_NDEBUG} \
@@ -14,10 +13,10 @@ EXE_INC =  \
     ${CGAL_INC} \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/sampling/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/sampling/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I../conformalVoronoiMesh/lnInclude
@@ -25,11 +24,9 @@ EXE_INC =  \
 EXE_LIBS =  \
     $(CGAL_LIBS) \
     -lconformalVoronoiMesh \
-    -lfiniteVolume    \
+    -lfiniteVolume \
     -lmeshTools \
+    -lsampling \
     -ldecompositionMethods \
     -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
-    -ltriSurface \
-    -ldynamicMesh \
-    -lsampling \
-    -lfileFormats
+    -ldynamicMesh
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
index 1baf4fb2f9d..89496232cc7 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
@@ -14,24 +14,20 @@ EXE_INC = \
     ${CGAL_INC} \
     ${c++LESSWARN} \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/sampling/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
-    -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/sampling/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -IPrintTable
 
 LIB_LIBS = \
     ${CGAL_LIBS} \
     -lmeshTools \
+    -lsampling \
     -ldecompose \
-    -lfileFormats \
-    -ltriSurface \
     -ldynamicMesh \
-    -lsurfMesh \
-    -lsampling \
     -lsnappyHexMesh
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
index ce8d65dcc64..40373bec9dd 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
@@ -15,12 +15,12 @@ EXE_INC = \
     ${c++LESSWARN} \
     -I../conformalVoronoiMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/dynamicMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude \
+    -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -IvectorTools
 
@@ -28,10 +28,8 @@ EXE_LIBS = \
     ${CGAL_LIBS} \
     -lconformalVoronoiMesh \
     -lmeshTools \
+    -lsampling \
     -ldecompositionMethods \
     -ldecompose \
     -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp -lscotchDecomp \
-    -lfileFormats \
-    -ltriSurface \
-    -ldynamicMesh \
-    -lsampling
+    -ldynamicMesh
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
index 293882347b3..3fe4af45fb5 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
@@ -11,11 +11,11 @@ EXE_INC = \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I../vectorTools
 
@@ -24,9 +24,7 @@ EXE_LIBS = \
     -lconformalVoronoiMesh \
     -ldecompositionMethods /* -L$(FOAM_LIBBIN)/dummy -lscotchDecomp */ \
     -ldecompose \
-    -ltriSurface \
     -lmeshTools \
-    -lfileFormats \
     -lsampling \
     -ldynamicMesh \
     -lfiniteVolume
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
index 0a1653a2f3f..66ddf81aac5 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
@@ -10,7 +10,7 @@ EXE_INC = \
     -I../conformalVoronoiMesh/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
@@ -19,7 +19,5 @@ EXE_LIBS = \
     -lGL \
     -lconformalVoronoiMesh \
     -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lscotchDecomp \
-    -lfileFormats \
-    -ltriSurface \
     -lmeshTools \
     -ldynamicMesh
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
index 30e411d669c..1b509ac9df0 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
@@ -13,13 +13,12 @@ EXE_INC = \
     -I../conformalVoronoiMesh/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/sampling/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/mesh/extrudeModel/lnInclude \
-    -I$(LIB_SRC)/sampling/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude
 
 EXE_LIBS = \
@@ -29,10 +28,7 @@ EXE_LIBS = \
     -lcv2DMesh \
     -lconformalVoronoiMesh \
     -lmeshTools \
-    -lsurfMesh \
-    -ltriSurface \
+    -lsampling \
     -ldynamicMesh \
     -ldecompositionMethods \
-    -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
-    -lsampling \
-    -lfileFormats
+    -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/Make/options b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
index a01104b387d..bb863797fae 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
@@ -2,10 +2,9 @@ EXE_INC = \
     /* -g -DFULLDEBUG -O0 */ \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \
     -I$(LIB_SRC)/parallel/reconstruct/reconstruct/lnInclude \
@@ -18,8 +17,6 @@ EXE_LIBS = \
     /* note: scotch < 6.0 does not like both scotch and ptscotch together */ \
     -lscotchDecomp \
     -lmeshTools \
-    -lsurfMesh \
-    -lfileFormats \
     -ldynamicMesh \
     -ldecompose \
     -lreconstruct \
diff --git a/applications/utilities/mesh/manipulation/insideCells/Make/options b/applications/utilities/mesh/manipulation/insideCells/Make/options
index 07bbf1aab92..d5ff5b3e407 100644
--- a/applications/utilities/mesh/manipulation/insideCells/Make/options
+++ b/applications/utilities/mesh/manipulation/insideCells/Make/options
@@ -1,8 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
-
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -ltriSurface \
     -lmeshTools
diff --git a/applications/utilities/mesh/manipulation/orientFaceZone/Make/options b/applications/utilities/mesh/manipulation/orientFaceZone/Make/options
index 56e8dc4f174..8bec702f894 100644
--- a/applications/utilities/mesh/manipulation/orientFaceZone/Make/options
+++ b/applications/utilities/mesh/manipulation/orientFaceZone/Make/options
@@ -1,9 +1,8 @@
 EXE_INC = \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude
 
 EXE_LIBS = \
     -lmeshTools \
-    -lsnappyHexMesh \
-    -ltriSurface
+    -lsnappyHexMesh
diff --git a/applications/utilities/miscellaneous/foamList/Make/options b/applications/utilities/miscellaneous/foamList/Make/options
index 96e74a80ac1..6487208998c 100644
--- a/applications/utilities/miscellaneous/foamList/Make/options
+++ b/applications/utilities/miscellaneous/foamList/Make/options
@@ -89,7 +89,6 @@ EXE_LIBS = \
     -lsurfMesh \
     -lthermalBaffleModels \
     -ltopoChangerFvMesh \
-    -ltriSurface \
     -lturbulenceModels \
     -ltwoPhaseMixture \
     -ltwoPhaseMixtureThermo \
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
index dc8f10f1f1a..82fc2ecd288 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
@@ -1,14 +1,13 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/conversion/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
-    -I$(LIB_SRC)/conversion/lnInclude
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude
 
 EXE_LIBS = \
     -ldynamicMesh \
-    -lfileFormats \
     -lgenericPatchFields \
     -llagrangian \
     -lconversion
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options
index 09a58c1559a..b9756396493 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options
@@ -1,14 +1,13 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
-    -I$(LIB_SRC)/conversion/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/conversion/lnInclude \
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
     -llagrangian \
     -lmeshTools \
-    -lfileFormats \
-    -lgenericPatchFields \
-    -lconversion
+    -lconversion \
+    -lgenericPatchFields
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMesh/Make/options b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMesh/Make/options
index 295a695c769..d07c5b24692 100644
--- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMesh/Make/options
+++ b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMesh/Make/options
@@ -2,8 +2,8 @@ sinclude $(GENERAL_RULES)/paraview
 
 EXE_INC = \
     ${c++LESSWARN} \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/mesh/blockMesh/lnInclude \
     -I$(ParaView_INCLUDE_DIR) \
     -I$(ParaView_INCLUDE_DIR)/vtkkwiml \
@@ -12,7 +12,6 @@ EXE_INC = \
 
 LIB_LIBS = \
     -lmeshTools \
-    -lfileFormats \
     -lblockMesh \
     -L$(FOAM_LIBBIN) -lfoamPv-pv${ParaView_MAJOR} \
     $(GLIBS)
diff --git a/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options b/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options
index b653926f93a..806956cf5f1 100644
--- a/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options
+++ b/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options
@@ -1,12 +1,11 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
     -lmeshTools \
-    -lfileFormats \
     -lgenericPatchFields \
     -llagrangian
diff --git a/applications/utilities/preProcessing/faceAgglomerate/Make/options b/applications/utilities/preProcessing/faceAgglomerate/Make/options
index 3facebbe198..df6e1ebb3be 100644
--- a/applications/utilities/preProcessing/faceAgglomerate/Make/options
+++ b/applications/utilities/preProcessing/faceAgglomerate/Make/options
@@ -5,6 +5,4 @@ EXE_INC = \
 
 EXE_LIBS = \
     -lfiniteVolume \
-    -lpairPatchAgglomeration \
-    -ltriSurface \
-    -lmeshTools
+    -lpairPatchAgglomeration
diff --git a/applications/utilities/preProcessing/viewFactorsGen/Make/options b/applications/utilities/preProcessing/viewFactorsGen/Make/options
index b64f44712ce..1eeef409c21 100644
--- a/applications/utilities/preProcessing/viewFactorsGen/Make/options
+++ b/applications/utilities/preProcessing/viewFactorsGen/Make/options
@@ -1,12 +1,11 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/parallel/distributed/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/parallel/distributed/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
     -lmeshTools \
-    -ltriSurface \
     -ldistributed \
     -lradiationModels
diff --git a/applications/utilities/surface/surfaceAdd/Make/options b/applications/utilities/surface/surfaceAdd/Make/options
index c746f7e0f0d..a504dd8617b 100644
--- a/applications/utilities/surface/surfaceAdd/Make/options
+++ b/applications/utilities/surface/surfaceAdd/Make/options
@@ -1,6 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude
 
 EXE_LIBS = \
-    -ltriSurface \
-    -lmeshTools
+    -lsurfMesh
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/Make/options b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
index 5a431f7d73b..7a1c792e54d 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/Make/options
+++ b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
@@ -1,7 +1,6 @@
 EXE_NDEBUG = -DNDEBUG
 /* EXE_NDEBUG = -g -O0 -DFULLDEBUG */
 
-
 c++CGALWARN = -Wno-old-style-cast
 
 /*-- Define NO_CGAL to avoid using CGAL altogether */
@@ -15,12 +14,9 @@ EXE_INC = \
     ${CGAL_INC} \
     ${c++CGALWARN} \
     $(COMP_FLAGS) \
-    -I$(FOAM_SRC)/surfMesh/lnInclude \
-    -I$(FOAM_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lsurfMesh \
-    -ltriSurface \
     -lmeshTools \
     $(LINK_FLAGS)
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
index e8940960b96..8ed525de9f3 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
+++ b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
@@ -14,11 +14,10 @@ EXE_INC = \
     ${c++CGALWARN} \
     -I.. \
     -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I/usr/include/Qt
 
 LIB_LIBS = \
     -L$(CGAL_ARCH_PATH)/lib \
     -L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceCheck/Make/options b/applications/utilities/surface/surfaceCheck/Make/options
index 28fb9f2cceb..65185bc7f28 100644
--- a/applications/utilities/surface/surfaceCheck/Make/options
+++ b/applications/utilities/surface/surfaceCheck/Make/options
@@ -1,10 +1,8 @@
 EXE_INC = \
-    -I$(LIB_SRC)/sampling/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
-    -lsampling \
-    -ltriSurface \
-    -lmeshTools
+    -lmeshTools \
+    -lsampling
diff --git a/applications/utilities/surface/surfaceClean/Make/options b/applications/utilities/surface/surfaceClean/Make/options
index 2db41f545a2..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfaceClean/Make/options
+++ b/applications/utilities/surface/surfaceClean/Make/options
@@ -1,7 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceCoarsen/Make/options b/applications/utilities/surface/surfaceCoarsen/Make/options
index 965309e4dab..2ff4a1f22f7 100644
--- a/applications/utilities/surface/surfaceCoarsen/Make/options
+++ b/applications/utilities/surface/surfaceCoarsen/Make/options
@@ -1,7 +1,6 @@
 EXE_INC = \
     -Ibunnylod \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude
 
 EXE_LIBS = \
-    -ltriSurface \
-    -lmeshTools
+    -lsurfMesh
diff --git a/applications/utilities/surface/surfaceConvert/Make/options b/applications/utilities/surface/surfaceConvert/Make/options
index 4c41bc1a492..a504dd8617b 100644
--- a/applications/utilities/surface/surfaceConvert/Make/options
+++ b/applications/utilities/surface/surfaceConvert/Make/options
@@ -1,6 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
+    -lsurfMesh
diff --git a/applications/utilities/surface/surfaceFeatureExtract/Make/options b/applications/utilities/surface/surfaceFeatureExtract/Make/options
index e96fbb36875..e57de43f22b 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/Make/options
+++ b/applications/utilities/surface/surfaceFeatureExtract/Make/options
@@ -1,11 +1,9 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
     -lmeshTools \
-    -ltriSurface \
     -lsampling
diff --git a/applications/utilities/surface/surfaceHookUp/Make/options b/applications/utilities/surface/surfaceHookUp/Make/options
index db53089d480..edc787aeae9 100644
--- a/applications/utilities/surface/surfaceHookUp/Make/options
+++ b/applications/utilities/surface/surfaceHookUp/Make/options
@@ -1,9 +1,7 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -lfileFormats \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceInertia/Make/options b/applications/utilities/surface/surfaceInertia/Make/options
index 9f08e8d2a80..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfaceInertia/Make/options
+++ b/applications/utilities/surface/surfaceInertia/Make/options
@@ -1,7 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceInflate/Make/options b/applications/utilities/surface/surfaceInflate/Make/options
index dd995740b37..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfaceInflate/Make/options
+++ b/applications/utilities/surface/surfaceInflate/Make/options
@@ -1,9 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -ltriSurface \
-    -lsurfMesh \
     -lmeshTools
diff --git a/applications/utilities/surface/surfaceMeshConvertTesting/Make/options b/applications/utilities/surface/surfaceMeshConvertTesting/Make/options
index 3b91e457ea3..a504dd8617b 100644
--- a/applications/utilities/surface/surfaceMeshConvertTesting/Make/options
+++ b/applications/utilities/surface/surfaceMeshConvertTesting/Make/options
@@ -1,5 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude
 
-EXE_LIBS = -ltriSurface -lsurfMesh
+EXE_LIBS = \
+    -lsurfMesh
diff --git a/applications/utilities/surface/surfaceOrient/Make/options b/applications/utilities/surface/surfaceOrient/Make/options
index 2db41f545a2..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfaceOrient/Make/options
+++ b/applications/utilities/surface/surfaceOrient/Make/options
@@ -1,7 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfacePatch/Make/options b/applications/utilities/surface/surfacePatch/Make/options
index a8173dc0456..5319623bf19 100644
--- a/applications/utilities/surface/surfacePatch/Make/options
+++ b/applications/utilities/surface/surfacePatch/Make/options
@@ -1,10 +1,8 @@
 EXE_INC = \
     -IsearchableSurfaceModifier \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
-
 EXE_LIBS = \
-    -ltriSurface \
     -lmeshTools
diff --git a/applications/utilities/surface/surfacePointMerge/Make/options b/applications/utilities/surface/surfacePointMerge/Make/options
index 9f08e8d2a80..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfacePointMerge/Make/options
+++ b/applications/utilities/surface/surfacePointMerge/Make/options
@@ -1,7 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceRedistributePar/Make/options b/applications/utilities/surface/surfaceRedistributePar/Make/options
index d836881301c..452e1e204fe 100644
--- a/applications/utilities/surface/surfaceRedistributePar/Make/options
+++ b/applications/utilities/surface/surfaceRedistributePar/Make/options
@@ -1,12 +1,11 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \
     -I$(LIB_SRC)/parallel/distributed/lnInclude
 
 EXE_LIBS = \
-    -ldistributed \
     -lmeshTools \
-    -ltriSurface \
+    -ldistributed \
     -ldecompose
diff --git a/applications/utilities/surface/surfaceRefineRedGreen/Make/options b/applications/utilities/surface/surfaceRefineRedGreen/Make/options
index 9f08e8d2a80..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfaceRefineRedGreen/Make/options
+++ b/applications/utilities/surface/surfaceRefineRedGreen/Make/options
@@ -1,7 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceSplitByPatch/Make/options b/applications/utilities/surface/surfaceSplitByPatch/Make/options
index 717768279db..a504dd8617b 100644
--- a/applications/utilities/surface/surfaceSplitByPatch/Make/options
+++ b/applications/utilities/surface/surfaceSplitByPatch/Make/options
@@ -1,7 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
-
+    -lsurfMesh
diff --git a/applications/utilities/surface/surfaceSplitByTopology/Make/options b/applications/utilities/surface/surfaceSplitByTopology/Make/options
index 717768279db..a504dd8617b 100644
--- a/applications/utilities/surface/surfaceSplitByTopology/Make/options
+++ b/applications/utilities/surface/surfaceSplitByTopology/Make/options
@@ -1,7 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
-
+    -lsurfMesh
diff --git a/applications/utilities/surface/surfaceSplitNonManifolds/Make/options b/applications/utilities/surface/surfaceSplitNonManifolds/Make/options
index 9f08e8d2a80..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfaceSplitNonManifolds/Make/options
+++ b/applications/utilities/surface/surfaceSplitNonManifolds/Make/options
@@ -1,7 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceSubset/Make/options b/applications/utilities/surface/surfaceSubset/Make/options
index f535c206fc2..d5ff5b3e407 100644
--- a/applications/utilities/surface/surfaceSubset/Make/options
+++ b/applications/utilities/surface/surfaceSubset/Make/options
@@ -1,8 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ltriSurface
-
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceToPatch/Make/options b/applications/utilities/surface/surfaceToPatch/Make/options
index 6b0ab4880ef..87038840ec6 100644
--- a/applications/utilities/surface/surfaceToPatch/Make/options
+++ b/applications/utilities/surface/surfaceToPatch/Make/options
@@ -1,10 +1,8 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude
 
-
 EXE_LIBS = \
-    -ltriSurface \
     -lmeshTools \
     -ldynamicMesh
diff --git a/src/Allwmake b/src/Allwmake
index 4934d5be216..1e71c42e0cd 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -28,7 +28,6 @@ wmake $targetType OpenFOAM
 
 wmake $targetType fileFormats
 wmake $targetType surfMesh
-wmake $targetType triSurface
 wmake $targetType meshTools
 
 # Decomposition methods needed by dummyThirdParty
diff --git a/src/conversion/Make/options b/src/conversion/Make/options
index 4ff461186cc..22e6c0f6f16 100644
--- a/src/conversion/Make/options
+++ b/src/conversion/Make/options
@@ -1,9 +1,8 @@
 EXE_INC = \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
-    -lfileFormats \
     -lfiniteVolume \
     -lmeshTools
diff --git a/src/conversion/ccm/Make/options b/src/conversion/ccm/Make/options
index ef4b6bb2798..3272da3576e 100644
--- a/src/conversion/ccm/Make/options
+++ b/src/conversion/ccm/Make/options
@@ -3,9 +3,9 @@ EXE_INC = \
     /* -DDEBUG_BAFFLES */ \
     /* -DDEBUG_CCMIOREAD */ \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/conversion/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(CCMIO_ARCH_PATH)/include
 
 LIB_LIBS = \
diff --git a/src/dynamicFvMesh/Make/options b/src/dynamicFvMesh/Make/options
index 966b56964d7..3540c13bfc8 100644
--- a/src/dynamicFvMesh/Make/options
+++ b/src/dynamicFvMesh/Make/options
@@ -1,11 +1,10 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
 
 LIB_LIBS = \
-    -ltriSurface \
     -lmeshTools \
     -ldynamicMesh \
     -lfiniteVolume
diff --git a/src/dynamicMesh/Make/options b/src/dynamicMesh/Make/options
index 0757c296783..45af15fb9c7 100644
--- a/src/dynamicMesh/Make/options
+++ b/src/dynamicMesh/Make/options
@@ -1,10 +1,10 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/mesh/extrudeModel/lnInclude
 
 LIB_LIBS = \
     -lfiniteVolume \
-    -ltriSurface \
+    -lsurfMesh \
     -lextrudeModel
diff --git a/src/finiteVolume/Make/options b/src/finiteVolume/Make/options
index 1c1990e5f3e..4ac4139c42a 100644
--- a/src/finiteVolume/Make/options
+++ b/src/finiteVolume/Make/options
@@ -1,8 +1,7 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
     -lOpenFOAM \
-    -ltriSurface \
     -lmeshTools
diff --git a/src/functionObjects/forces/Make/options b/src/functionObjects/forces/Make/options
index 3f85a6262bd..219b130f9e2 100644
--- a/src/functionObjects/forces/Make/options
+++ b/src/functionObjects/forces/Make/options
@@ -1,13 +1,13 @@
 EXE_INC = \
     -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude
+    -I$(LIB_SRC)/finiteVolume/lnInclude
 
 LIB_LIBS = \
     -lfluidThermophysicalModels \
@@ -17,6 +17,5 @@ LIB_LIBS = \
     -lincompressibleTurbulenceModels \
     -lcompressibleTurbulenceModels \
     -lspecie \
-    -lfileFormats \
     -lfiniteVolume \
     -lmeshTools
diff --git a/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt
index b5c3bf08152..9dc15138fde 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt
+++ b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt
@@ -13,7 +13,7 @@ endif()
 include_directories(
     $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
     $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
-    $ENV{WM_PROJECT_DIR}/src/triSurface/lnInclude
+    $ENV{WM_PROJECT_DIR}/src/surfMesh/lnInclude
     $ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude
     ${CMAKE_CURRENT_SOURCE_DIR}
     ${CMAKE_CURRENT_BINARY_DIR}
@@ -70,7 +70,7 @@ file(GLOB SOURCE_FILES
 
 set(OPENFOAM_LIBRARIES
     OpenFOAM
-    triSurface
+    surfMesh
     finiteVolume
 )
 
diff --git a/src/fvMotionSolver/Make/options b/src/fvMotionSolver/Make/options
index c4bc7921795..94dc2f7c814 100644
--- a/src/fvMotionSolver/Make/options
+++ b/src/fvMotionSolver/Make/options
@@ -1,15 +1,13 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/functionObjects/forces/lnInclude \
 
 LIB_LIBS = \
-    -ltriSurface \
     -lmeshTools \
     -ldynamicMesh \
-    -lfiniteVolume \
-    -lfileFormats
+    -lfiniteVolume
     /*-lforces include in controlDict if needed */
diff --git a/src/mesh/blockMesh/Make/options b/src/mesh/blockMesh/Make/options
index bf6ca71abfb..6f44ed69126 100644
--- a/src/mesh/blockMesh/Make/options
+++ b/src/mesh/blockMesh/Make/options
@@ -1,9 +1,7 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/surfMesh/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
-    -lmeshTools \
-    -lfileFormats \
-    -lsurfMesh
+    -lmeshTools
diff --git a/src/mesh/extrudeModel/Make/options b/src/mesh/extrudeModel/Make/options
index 2dd02e7d86a..979289742c4 100644
--- a/src/mesh/extrudeModel/Make/options
+++ b/src/mesh/extrudeModel/Make/options
@@ -1,6 +1,6 @@
 EXE_INC = \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude
 
 LIB_LIBS = \
diff --git a/src/mesh/snappyHexMesh/Make/options b/src/mesh/snappyHexMesh/Make/options
index d3db7112b5b..9a7fe18cd6c 100644
--- a/src/mesh/snappyHexMesh/Make/options
+++ b/src/mesh/snappyHexMesh/Make/options
@@ -3,17 +3,14 @@ EXE_INC = \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
     -ldynamicMesh \
     -lfiniteVolume \
     -llagrangian \
     -lmeshTools \
-    -lsurfMesh \
-    -ltriSurface \
     -lfvMotionSolvers \
     -ldistributed
diff --git a/src/meshTools/Make/options b/src/meshTools/Make/options
index 98853e61fbb..210c6558960 100644
--- a/src/meshTools/Make/options
+++ b/src/meshTools/Make/options
@@ -1,8 +1,6 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude
+    -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude
 
 LIB_LIBS = \
-    -ltriSurface \
     -lsurfMesh
diff --git a/src/parallel/distributed/Make/options b/src/parallel/distributed/Make/options
index 6753a2306c3..232875c5048 100644
--- a/src/parallel/distributed/Make/options
+++ b/src/parallel/distributed/Make/options
@@ -1,10 +1,8 @@
 EXE_INC = \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude
 
 LIB_LIBS = \
-    -ltriSurface \
-    -ldecompositionMethods \
-    -lmeshTools
+    -lmeshTools \
+    -ldecompositionMethods
diff --git a/src/rigidBodyMeshMotion/Make/options b/src/rigidBodyMeshMotion/Make/options
index 708015aaaf1..dd66786aced 100644
--- a/src/rigidBodyMeshMotion/Make/options
+++ b/src/rigidBodyMeshMotion/Make/options
@@ -1,14 +1,13 @@
 EXE_INC = \
     -I$(LIB_SRC)/rigidBodyDynamics/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/functionObjects/forces/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude
 
 LIB_LIBS = \
     -lrigidBodyDynamics \
     -lforces \
     -lmeshTools \
-    -lfileFormats \
     -ldynamicMesh
diff --git a/src/sampling/Make/options b/src/sampling/Make/options
index 00d418481bc..2a3f6397953 100644
--- a/src/sampling/Make/options
+++ b/src/sampling/Make/options
@@ -1,19 +1,15 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/dynamicMesh/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/conversion/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude
 
-
 LIB_LIBS = \
     -lfiniteVolume \
     -lmeshTools \
-    -lsurfMesh \
-    -ltriSurface \
-    -llagrangian \
+    -lconversion \
     -ldynamicMesh \
-    -lconversion
+    -llagrangian
diff --git a/src/sixDoFRigidBodyMotion/Make/options b/src/sixDoFRigidBodyMotion/Make/options
index 11834cbddf8..cad98a1c419 100644
--- a/src/sixDoFRigidBodyMotion/Make/options
+++ b/src/sixDoFRigidBodyMotion/Make/options
@@ -1,12 +1,11 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/functionObjects/forces/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude
 
 LIB_LIBS = \
-    -lforces \
     -lmeshTools \
-    -lfileFormats \
+    -lforces \
     -ldynamicMesh
diff --git a/src/surfMesh/Make/files b/src/surfMesh/Make/files
index e0a2b486e47..10d6171c207 100644
--- a/src/surfMesh/Make/files
+++ b/src/surfMesh/Make/files
@@ -40,4 +40,30 @@ $(surfaceFormats)/vtk/VTKsurfaceFormatRunTime.C
 $(surfaceFormats)/x3d/X3DsurfaceFormatCore.C
 $(surfaceFormats)/x3d/X3DsurfaceFormatRunTime.C
 
+triSurface/triSurface.C
+triSurface/triSurfaceAddressing.C
+triSurface/stitchTriangles.C
+
+triSurface/fields/triSurfaceFields.C
+triSurface/patches/geometricSurfacePatch.C
+triSurface/patches/surfacePatch.C
+
+interfaces = triSurface/interfaces
+$(interfaces)/STL/writeSTL.C
+$(interfaces)/STL/readSTL.C
+$(interfaces)/GTS/writeGTS.C
+$(interfaces)/GTS/readGTS.C
+$(interfaces)/OBJ/readOBJ.C
+$(interfaces)/OBJ/writeOBJ.C
+$(interfaces)/SMESH/writeSMESH.C
+$(interfaces)/OFF/readOFF.C
+$(interfaces)/OFF/writeOFF.C
+$(interfaces)/TRI/writeTRI.C
+$(interfaces)/TRI/readTRI.C
+$(interfaces)/AC3D/readAC.C
+$(interfaces)/AC3D/writeAC.C
+$(interfaces)/VTK/readVTK.C
+$(interfaces)/VTK/writeVTK.C
+$(interfaces)/NAS/readNAS.C
+
 LIB = $(FOAM_LIBBIN)/libsurfMesh
diff --git a/src/triSurface/triSurfaceFields/triSurfaceFields.C b/src/surfMesh/triSurface/fields/triSurfaceFields.C
similarity index 100%
rename from src/triSurface/triSurfaceFields/triSurfaceFields.C
rename to src/surfMesh/triSurface/fields/triSurfaceFields.C
diff --git a/src/triSurface/triSurfaceFields/triSurfaceFields.H b/src/surfMesh/triSurface/fields/triSurfaceFields.H
similarity index 100%
rename from src/triSurface/triSurfaceFields/triSurfaceFields.H
rename to src/surfMesh/triSurface/fields/triSurfaceFields.H
diff --git a/src/triSurface/triSurfaceFields/triSurfaceFieldsFwd.H b/src/surfMesh/triSurface/fields/triSurfaceFieldsFwd.H
similarity index 100%
rename from src/triSurface/triSurfaceFields/triSurfaceFieldsFwd.H
rename to src/surfMesh/triSurface/fields/triSurfaceFieldsFwd.H
diff --git a/src/triSurface/triSurfaceFields/triSurfaceGeoMesh.H b/src/surfMesh/triSurface/fields/triSurfaceGeoMesh.H
similarity index 100%
rename from src/triSurface/triSurfaceFields/triSurfaceGeoMesh.H
rename to src/surfMesh/triSurface/fields/triSurfaceGeoMesh.H
diff --git a/src/triSurface/triSurfaceFields/triSurfacePointGeoMesh.H b/src/surfMesh/triSurface/fields/triSurfacePointGeoMesh.H
similarity index 100%
rename from src/triSurface/triSurfaceFields/triSurfacePointGeoMesh.H
rename to src/surfMesh/triSurface/fields/triSurfacePointGeoMesh.H
diff --git a/src/triSurface/triSurface/interfaces/AC3D/readAC.C b/src/surfMesh/triSurface/interfaces/AC3D/readAC.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/AC3D/readAC.C
rename to src/surfMesh/triSurface/interfaces/AC3D/readAC.C
diff --git a/src/triSurface/triSurface/interfaces/AC3D/writeAC.C b/src/surfMesh/triSurface/interfaces/AC3D/writeAC.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/AC3D/writeAC.C
rename to src/surfMesh/triSurface/interfaces/AC3D/writeAC.C
diff --git a/src/triSurface/triSurface/interfaces/GTS/readGTS.C b/src/surfMesh/triSurface/interfaces/GTS/readGTS.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/GTS/readGTS.C
rename to src/surfMesh/triSurface/interfaces/GTS/readGTS.C
diff --git a/src/triSurface/triSurface/interfaces/GTS/writeGTS.C b/src/surfMesh/triSurface/interfaces/GTS/writeGTS.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/GTS/writeGTS.C
rename to src/surfMesh/triSurface/interfaces/GTS/writeGTS.C
diff --git a/src/triSurface/triSurface/interfaces/NAS/readNAS.C b/src/surfMesh/triSurface/interfaces/NAS/readNAS.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/NAS/readNAS.C
rename to src/surfMesh/triSurface/interfaces/NAS/readNAS.C
diff --git a/src/triSurface/triSurface/interfaces/OBJ/readOBJ.C b/src/surfMesh/triSurface/interfaces/OBJ/readOBJ.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/OBJ/readOBJ.C
rename to src/surfMesh/triSurface/interfaces/OBJ/readOBJ.C
diff --git a/src/triSurface/triSurface/interfaces/OBJ/writeOBJ.C b/src/surfMesh/triSurface/interfaces/OBJ/writeOBJ.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/OBJ/writeOBJ.C
rename to src/surfMesh/triSurface/interfaces/OBJ/writeOBJ.C
diff --git a/src/triSurface/triSurface/interfaces/OFF/readOFF.C b/src/surfMesh/triSurface/interfaces/OFF/readOFF.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/OFF/readOFF.C
rename to src/surfMesh/triSurface/interfaces/OFF/readOFF.C
diff --git a/src/triSurface/triSurface/interfaces/OFF/writeOFF.C b/src/surfMesh/triSurface/interfaces/OFF/writeOFF.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/OFF/writeOFF.C
rename to src/surfMesh/triSurface/interfaces/OFF/writeOFF.C
diff --git a/src/triSurface/triSurface/interfaces/SMESH/writeSMESH.C b/src/surfMesh/triSurface/interfaces/SMESH/writeSMESH.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/SMESH/writeSMESH.C
rename to src/surfMesh/triSurface/interfaces/SMESH/writeSMESH.C
diff --git a/src/triSurface/triSurface/interfaces/STL/readSTL.C b/src/surfMesh/triSurface/interfaces/STL/readSTL.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/STL/readSTL.C
rename to src/surfMesh/triSurface/interfaces/STL/readSTL.C
diff --git a/src/triSurface/triSurface/interfaces/STL/writeSTL.C b/src/surfMesh/triSurface/interfaces/STL/writeSTL.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/STL/writeSTL.C
rename to src/surfMesh/triSurface/interfaces/STL/writeSTL.C
diff --git a/src/triSurface/triSurface/interfaces/TRI/readTRI.C b/src/surfMesh/triSurface/interfaces/TRI/readTRI.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/TRI/readTRI.C
rename to src/surfMesh/triSurface/interfaces/TRI/readTRI.C
diff --git a/src/triSurface/triSurface/interfaces/TRI/writeTRI.C b/src/surfMesh/triSurface/interfaces/TRI/writeTRI.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/TRI/writeTRI.C
rename to src/surfMesh/triSurface/interfaces/TRI/writeTRI.C
diff --git a/src/triSurface/triSurface/interfaces/VTK/readVTK.C b/src/surfMesh/triSurface/interfaces/VTK/readVTK.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/VTK/readVTK.C
rename to src/surfMesh/triSurface/interfaces/VTK/readVTK.C
diff --git a/src/triSurface/triSurface/interfaces/VTK/writeVTK.C b/src/surfMesh/triSurface/interfaces/VTK/writeVTK.C
similarity index 100%
rename from src/triSurface/triSurface/interfaces/VTK/writeVTK.C
rename to src/surfMesh/triSurface/interfaces/VTK/writeVTK.C
diff --git a/src/triSurface/triSurface/geometricSurfacePatch/geometricSurfacePatch.C b/src/surfMesh/triSurface/patches/geometricSurfacePatch.C
similarity index 100%
rename from src/triSurface/triSurface/geometricSurfacePatch/geometricSurfacePatch.C
rename to src/surfMesh/triSurface/patches/geometricSurfacePatch.C
diff --git a/src/triSurface/triSurface/geometricSurfacePatch/geometricSurfacePatch.H b/src/surfMesh/triSurface/patches/geometricSurfacePatch.H
similarity index 100%
rename from src/triSurface/triSurface/geometricSurfacePatch/geometricSurfacePatch.H
rename to src/surfMesh/triSurface/patches/geometricSurfacePatch.H
diff --git a/src/triSurface/triSurface/geometricSurfacePatch/geometricSurfacePatchList.H b/src/surfMesh/triSurface/patches/geometricSurfacePatchList.H
similarity index 100%
rename from src/triSurface/triSurface/geometricSurfacePatch/geometricSurfacePatchList.H
rename to src/surfMesh/triSurface/patches/geometricSurfacePatchList.H
diff --git a/src/triSurface/triSurface/surfacePatch/surfacePatch.C b/src/surfMesh/triSurface/patches/surfacePatch.C
similarity index 100%
rename from src/triSurface/triSurface/surfacePatch/surfacePatch.C
rename to src/surfMesh/triSurface/patches/surfacePatch.C
diff --git a/src/triSurface/triSurface/surfacePatch/surfacePatch.H b/src/surfMesh/triSurface/patches/surfacePatch.H
similarity index 100%
rename from src/triSurface/triSurface/surfacePatch/surfacePatch.H
rename to src/surfMesh/triSurface/patches/surfacePatch.H
diff --git a/src/triSurface/triSurface/surfacePatch/surfacePatchList.H b/src/surfMesh/triSurface/patches/surfacePatchList.H
similarity index 100%
rename from src/triSurface/triSurface/surfacePatch/surfacePatchList.H
rename to src/surfMesh/triSurface/patches/surfacePatchList.H
diff --git a/src/triSurface/triSurface/stitchTriangles.C b/src/surfMesh/triSurface/stitchTriangles.C
similarity index 100%
rename from src/triSurface/triSurface/stitchTriangles.C
rename to src/surfMesh/triSurface/stitchTriangles.C
diff --git a/src/triSurface/triSurface/triSurface.C b/src/surfMesh/triSurface/triSurface.C
similarity index 100%
rename from src/triSurface/triSurface/triSurface.C
rename to src/surfMesh/triSurface/triSurface.C
diff --git a/src/triSurface/triSurface/triSurface.H b/src/surfMesh/triSurface/triSurface.H
similarity index 100%
rename from src/triSurface/triSurface/triSurface.H
rename to src/surfMesh/triSurface/triSurface.H
diff --git a/src/triSurface/triSurface/triSurfaceAddressing.C b/src/surfMesh/triSurface/triSurfaceAddressing.C
similarity index 100%
rename from src/triSurface/triSurface/triSurfaceAddressing.C
rename to src/surfMesh/triSurface/triSurfaceAddressing.C
diff --git a/src/thermophysicalModels/radiation/Make/options b/src/thermophysicalModels/radiation/Make/options
index 07c8dcf770b..f514104f331 100644
--- a/src/thermophysicalModels/radiation/Make/options
+++ b/src/thermophysicalModels/radiation/Make/options
@@ -7,8 +7,8 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/parallel/distributed/lnInclude
 
 LIB_LIBS = \
@@ -20,5 +20,4 @@ LIB_LIBS = \
     -lthermophysicalProperties \
     -lfiniteVolume \
     -lmeshTools \
-    -ldistributed \
-    -ltriSurface
+    -ldistributed
diff --git a/src/triSurface/Make/files b/src/triSurface/Make/files
deleted file mode 100644
index ba9df9c53d6..00000000000
--- a/src/triSurface/Make/files
+++ /dev/null
@@ -1,28 +0,0 @@
-triSurface/triSurface.C
-triSurface/triSurfaceAddressing.C
-triSurface/stitchTriangles.C
-
-interfaces = triSurface/interfaces
-$(interfaces)/STL/writeSTL.C
-$(interfaces)/STL/readSTL.C
-$(interfaces)/GTS/writeGTS.C
-$(interfaces)/GTS/readGTS.C
-$(interfaces)/OBJ/readOBJ.C
-$(interfaces)/OBJ/writeOBJ.C
-$(interfaces)/SMESH/writeSMESH.C
-$(interfaces)/OFF/readOFF.C
-$(interfaces)/OFF/writeOFF.C
-$(interfaces)/TRI/writeTRI.C
-$(interfaces)/TRI/readTRI.C
-$(interfaces)/AC3D/readAC.C
-$(interfaces)/AC3D/writeAC.C
-$(interfaces)/VTK/readVTK.C
-$(interfaces)/VTK/writeVTK.C
-$(interfaces)/NAS/readNAS.C
-
-triSurface/geometricSurfacePatch/geometricSurfacePatch.C
-triSurface/surfacePatch/surfacePatch.C
-
-triSurfaceFields/triSurfaceFields.C
-
-LIB = $(FOAM_LIBBIN)/libtriSurface
diff --git a/src/triSurface/Make/options b/src/triSurface/Make/options
deleted file mode 100644
index 210c6558960..00000000000
--- a/src/triSurface/Make/options
+++ /dev/null
@@ -1,6 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/surfMesh/lnInclude
-
-LIB_LIBS = \
-    -lsurfMesh
-- 
GitLab


From 776d87836b314e2fd9a51a3ade43949e8e1a60ab Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 18 May 2017 12:49:09 +0100
Subject: [PATCH 216/277] STYLE: corrected header comment

---
 .../externalWallHeatFluxTemperatureFvPatchScalarField.H       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
index c9d1d6d51f1..f823eb6fa79 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
@@ -122,8 +122,8 @@ public:
         //- Operation mode enumeration
         enum operationMode
         {
-            fixedPower,                 //!< Fixed heat flux
-            fixedHeatFlux,              //!< Fixed heat flux
+            fixedPower,                 //!< Fixed heat power [W]
+            fixedHeatFlux,              //!< Fixed heat flux [W/m2]
             fixedHeatTransferCoeff,     //!< Fixed heat transfer coefficient
         };
 
-- 
GitLab


From 9efd9ce0619e9ec31e7c757ac4a937ae5890523c Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 18 May 2017 14:42:37 +0100
Subject: [PATCH 217/277] BUG: TDACChemistryModel - corrected construction of
 tabulationResults_ field

---
 .../chemistryModel/TDACChemistryModel/TDACChemistryModel.C      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
index bc6c6ee749c..8d9f0ccb605 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/TDACChemistryModel/TDACChemistryModel.C
@@ -61,7 +61,7 @@ Foam::TDACChemistryModel<CompType, ThermoType>::TDACChemistryModel
             IOobject::AUTO_WRITE
         ),
         mesh,
-        scalar(0)
+        dimensionedScalar("0", dimless, 0)
     )
 {
     basicMultiComponentMixture& composition = this->thermo().composition();
-- 
GitLab


From 9a6f0fdd37dc72b6888aeae90f83d63740c087b8 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 18 May 2017 14:43:05 +0100
Subject: [PATCH 218/277] COMP: Updated kOmegaSSTSato model to suppress
 compiler warning

---
 .../RAS/kOmegaSSTSato/kOmegaSSTSato.C                  | 10 +++++++---
 .../RAS/kOmegaSSTSato/kOmegaSSTSato.H                  |  6 +-----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
index 1b0d5feb31f..8db844d9a8f 100644
--- a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
+++ b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.C
@@ -132,8 +132,7 @@ kOmegaSSTSato<BasicTurbulenceModel>::gasTurbulence() const
 template<class BasicTurbulenceModel>
 void kOmegaSSTSato<BasicTurbulenceModel>::correctNut
 (
-    const volScalarField& S2,
-    const volScalarField& F2
+    const volScalarField& S2
 )
 {
     const PhaseCompressibleTurbulenceModel<transportModel>& gasTurbulence =
@@ -145,7 +144,12 @@ void kOmegaSSTSato<BasicTurbulenceModel>::correctNut
     );
 
     this->nut_ =
-        this->a1_*this->k_/max(this->a1_*this->omega_, this->b1_*F2*sqrt(S2))
+        this->a1_*this->k_
+       /max
+        (
+            this->a1_*this->omega_,
+            this->b1_*this->F23()*sqrt(S2)
+        )
       + sqr(1 - exp(-yPlus/16.0))
        *Cmub_*gasTurbulence.transport().d()*gasTurbulence.alpha()
        *(mag(this->U_ - gasTurbulence.U()));
diff --git a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H
index 37fd2a8b4c7..ac42f2a7777 100644
--- a/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H
+++ b/src/TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato/kOmegaSSTSato.H
@@ -156,11 +156,7 @@ protected:
 
     // Protected Member Functions
 
-        virtual void correctNut
-        (
-            const volScalarField& S2,
-            const volScalarField& F2
-        );
+        virtual void correctNut(const volScalarField& S2);
 
 
 public:
-- 
GitLab


From 28868f8d4d7ca4bc38e2fa4b8efa79ef41ba7168 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 18 May 2017 14:44:52 +0100
Subject: [PATCH 219/277] ENH: Updated reading of dimensioned types from
 transportProperties dictionary to avoid the need to provide the dimension set

---
 .../basic/laplacianFoam/createFields.H        | 58 ++++++-------
 .../basic/scalarTransportFoam/createFields.H  | 84 ++++++++++---------
 .../readThermodynamicProperties.H             | 62 +++++++-------
 .../adjointShapeOptimizationFoam.C            |  2 -
 .../createFields.H                            | 15 +++-
 5 files changed, 117 insertions(+), 104 deletions(-)

diff --git a/applications/solvers/basic/laplacianFoam/createFields.H b/applications/solvers/basic/laplacianFoam/createFields.H
index 616afe1a885..7056505e992 100644
--- a/applications/solvers/basic/laplacianFoam/createFields.H
+++ b/applications/solvers/basic/laplacianFoam/createFields.H
@@ -1,37 +1,39 @@
-    Info<< "Reading field T\n" << endl;
+Info<< "Reading field T\n" << endl;
 
-    volScalarField T
+volScalarField T
+(
+    IOobject
     (
-        IOobject
-        (
-            "T",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
+        "T",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
 
 
-    Info<< "Reading transportProperties\n" << endl;
+Info<< "Reading transportProperties\n" << endl;
 
-    IOdictionary transportProperties
+IOdictionary transportProperties
+(
+    IOobject
     (
-        IOobject
-        (
-            "transportProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::NO_WRITE
-        )
-    );
+        "transportProperties",
+        runTime.constant(),
+        mesh,
+        IOobject::MUST_READ_IF_MODIFIED,
+        IOobject::NO_WRITE
+    )
+);
 
 
-    Info<< "Reading diffusivity DT\n" << endl;
+Info<< "Reading diffusivity DT\n" << endl;
 
-    dimensionedScalar DT
-    (
-        transportProperties.lookup("DT")
-    );
+dimensionedScalar DT
+(
+    "DT",
+    dimArea/dimTime,
+    transportProperties
+);
diff --git a/applications/solvers/basic/scalarTransportFoam/createFields.H b/applications/solvers/basic/scalarTransportFoam/createFields.H
index c6ba83629ba..54dcb3fca52 100644
--- a/applications/solvers/basic/scalarTransportFoam/createFields.H
+++ b/applications/solvers/basic/scalarTransportFoam/createFields.H
@@ -1,55 +1,57 @@
-    Info<< "Reading field T\n" << endl;
+Info<< "Reading field T\n" << endl;
 
-    volScalarField T
+volScalarField T
+(
+    IOobject
     (
-        IOobject
-        (
-            "T",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
+        "T",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
 
 
-    Info<< "Reading field U\n" << endl;
+Info<< "Reading field U\n" << endl;
 
-    volVectorField U
+volVectorField U
+(
+    IOobject
     (
-        IOobject
-        (
-            "U",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
+        "U",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
 
 
-    Info<< "Reading transportProperties\n" << endl;
+Info<< "Reading transportProperties\n" << endl;
 
-    IOdictionary transportProperties
+IOdictionary transportProperties
+(
+    IOobject
     (
-        IOobject
-        (
-            "transportProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::NO_WRITE
-        )
-    );
+        "transportProperties",
+        runTime.constant(),
+        mesh,
+        IOobject::MUST_READ_IF_MODIFIED,
+        IOobject::NO_WRITE
+    )
+);
 
 
-    Info<< "Reading diffusivity DT\n" << endl;
+Info<< "Reading diffusivity DT\n" << endl;
 
-    dimensionedScalar DT
-    (
-        transportProperties.lookup("DT")
-    );
+dimensionedScalar DT
+(
+    "DT",
+    dimArea/dimTime,
+    transportProperties
+);
 
-    #include "createPhi.H"
+#include "createPhi.H"
diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readThermodynamicProperties.H b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readThermodynamicProperties.H
index 82ebe7ae30f..8f420d91c69 100644
--- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readThermodynamicProperties.H
+++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readThermodynamicProperties.H
@@ -1,37 +1,37 @@
-    Info<< "Reading thermodynamicProperties\n" << endl;
+Info<< "Reading thermodynamicProperties\n" << endl;
 
-    IOdictionary thermodynamicProperties
+IOdictionary thermodynamicProperties
+(
+    IOobject
     (
-        IOobject
-        (
-            "thermodynamicProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::NO_WRITE
-        )
-    );
+        "thermodynamicProperties",
+        runTime.constant(),
+        mesh,
+        IOobject::MUST_READ_IF_MODIFIED,
+        IOobject::NO_WRITE
+    )
+);
 
-    dimensionedScalar rho0
-    (
-        "rho0",
-        dimDensity,
-        thermodynamicProperties
-    );
+dimensionedScalar rho0
+(
+    "rho0",
+    dimDensity,
+    thermodynamicProperties
+);
 
-    dimensionedScalar p0
-    (
-        "p0",
-        dimPressure,
-        thermodynamicProperties
-    );
+dimensionedScalar p0
+(
+    "p0",
+    dimPressure,
+    thermodynamicProperties
+);
 
-    dimensionedScalar psi
-    (
-        "psi",
-        dimCompressibility,
-        thermodynamicProperties
-    );
+dimensionedScalar psi
+(
+    "psi",
+    dimCompressibility,
+    thermodynamicProperties
+);
 
-    // Density offset, i.e. the constant part of the density
-    dimensionedScalar rhoO("rhoO", rho0 - psi*p0);
+// Density offset, i.e. the constant part of the density
+dimensionedScalar rhoO("rhoO", rho0 - psi*p0);
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
index ccbe3b81416..7296a8cb37b 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
@@ -93,8 +93,6 @@ int main(int argc, char *argv[])
     {
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
-        laminarTransport.lookup("lambda") >> lambda;
-
         //alpha +=
         //    mesh.relaxationFactor("alpha")
         //   *(lambda*max(Ua & U, zeroSensitivity) - alpha);
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H b/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H
index 93da72123d6..bba352e71c9 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/createFields.H
@@ -89,8 +89,19 @@ autoPtr<incompressible::turbulenceModel> turbulence
 dimensionedScalar zeroSensitivity("0", dimVelocity*dimVelocity, 0.0);
 dimensionedScalar zeroAlpha("0", dimless/dimTime, 0.0);
 
-dimensionedScalar lambda(laminarTransport.lookup("lambda"));
-dimensionedScalar alphaMax(laminarTransport.lookup("alphaMax"));
+dimensionedScalar lambda
+(
+    "lambda",
+    dimTime/sqr(dimLength),
+    laminarTransport
+);
+
+dimensionedScalar alphaMax
+(
+    "alphaMax",
+    dimless/dimTime,
+    laminarTransport
+);
 
 const labelList& inletCells = mesh.boundary()["inlet"].faceCells();
 //const labelList& outletCells = mesh.boundary()["outlet"].faceCells();
-- 
GitLab


From 0a4733acab9c115a13a0957815737c4222957815 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 18 May 2017 14:47:00 +0100
Subject: [PATCH 220/277] ENH: Tutorial updates

---
 .../boxTurb16/constant/transportProperties    |  2 +-
 .../flange/constant/transportProperties       |  2 +-
 .../pitzDaily/constant/transportProperties    |  2 +-
 .../LES/compartmentFire/0/panelRegion/T       |  1 +
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/thermodynamicProperties          |  6 +--
 .../constant/transportProperties              |  2 +-
 .../hartmann/constant/transportProperties     |  8 ++--
 .../europeanCall/constant/financialProperties | 11 ++---
 .../BernardCells/constant/transportProperties | 10 ++---
 .../hotRoom/constant/transportProperties      | 10 ++---
 .../hotRoom/constant/transportProperties      | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../externalSolarLoad/0/floor/T               |  5 ++-
 .../system/floor/changeDictionaryDict         |  5 ++-
 .../0.orig/windshield/T                       |  5 ++-
 .../rotor2D/constant/transportProperties      |  2 +-
 .../mixer/constant/transportProperties        |  2 +-
 .../pitzDaily/constant/transportProperties    |  6 +--
 .../constant/transportProperties              |  4 +-
 .../constant/transportProperties              |  4 +-
 .../constant/transportProperties              |  4 +-
 .../constant/transportProperties.template     |  4 +-
 .../cavity/constant/transportProperties       |  2 +-
 .../constant/transportProperties              |  2 +-
 .../cavityGrade/constant/transportProperties  |  2 +-
 .../constant/transportProperties              |  2 +-
 .../elbow/constant/transportProperties        |  2 +-
 .../constant/transportProperties              | 16 ++++----
 .../constant/transportProperties              |  2 +-
 .../movingCone/constant/transportProperties   |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../propeller/constant/transportProperties    |  2 +-
 .../constant/transportProperties              |  4 +-
 .../constant/transportProperties              |  4 +-
 .../channel395/constant/transportProperties   |  4 +-
 .../constant/transportProperties              |  2 +-
 .../TJunction/constant/transportProperties    |  2 +-
 .../TJunctionFan/constant/transportProperties |  2 +-
 .../constant/transportProperties              |  2 +-
 .../pitzDaily/constant/transportProperties    |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../motorBike/constant/transportProperties    |  2 +-
 .../pitzDaily/constant/transportProperties    |  2 +-
 .../constant/transportProperties              |  2 +-
 .../RAS/cavity/constant/transportProperties   |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../common/constant/transportProperties       |  2 +-
 .../constant/transportProperties              |  2 +-
 .../airFoil2D/constant/transportProperties    |  4 +-
 .../constant/transportProperties              |  2 +-
 .../motorBike/constant/transportProperties    |  2 +-
 .../pipeCyclic/constant/transportProperties   |  2 +-
 .../pitzDaily/constant/transportProperties    |  2 +-
 .../constant/transportProperties              |  2 +-
 .../rotorDisk/constant/transportProperties    |  2 +-
 .../simpleCar/constant/transportProperties    | 18 +--------
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  4 +-
 .../constant/transportProperties              |  4 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../cavity/constant/transportProperties       |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              | 40 +++----------------
 .../throttle/constant/thermodynamicProperties | 10 ++---
 .../LES/throttle/constant/transportProperties | 12 ++----
 .../constant/thermodynamicProperties          | 10 ++---
 .../throttle3D/constant/transportProperties   | 12 ++----
 .../throttle/constant/thermodynamicProperties | 10 ++---
 .../RAS/throttle/constant/transportProperties | 12 ++----
 .../sphereDrop/constant/transportProperties   |  8 ++--
 .../constant/transportProperties              | 30 +++++++-------
 .../motorBike/constant/transportProperties    | 40 +++----------------
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../constant/transportProperties              | 10 ++---
 .../bubbleColumn/constant/transportProperties |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              | 16 ++++----
 .../constant/transportProperties              | 16 ++++----
 .../constant/transportProperties              | 16 ++++----
 .../constant/transportProperties              | 16 ++++----
 .../constant/transportProperties              |  2 +-
 .../constant/transportProperties              |  2 +-
 .../lockExchange/constant/transportProperties | 12 +++---
 .../cavity/constant/transportProperties       |  2 +-
 .../motorBike/constant/transportProperties    |  2 +-
 99 files changed, 250 insertions(+), 339 deletions(-)

diff --git a/tutorials/DNS/dnsFoam/boxTurb16/constant/transportProperties b/tutorials/DNS/dnsFoam/boxTurb16/constant/transportProperties
index 56114857ea6..dbaa773bc85 100644
--- a/tutorials/DNS/dnsFoam/boxTurb16/constant/transportProperties
+++ b/tutorials/DNS/dnsFoam/boxTurb16/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              [0 2 -1 0 0 0 0] 0.025;
+nu              0.025;
 
 
 // ************************************************************************* //
diff --git a/tutorials/basic/laplacianFoam/flange/constant/transportProperties b/tutorials/basic/laplacianFoam/flange/constant/transportProperties
index e192dc4fbb0..45ae631f402 100644
--- a/tutorials/basic/laplacianFoam/flange/constant/transportProperties
+++ b/tutorials/basic/laplacianFoam/flange/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-DT              DT [0 2 -1 0 0 0 0] 4e-05;
+DT              4e-05;
 
 
 // ************************************************************************* //
diff --git a/tutorials/basic/scalarTransportFoam/pitzDaily/constant/transportProperties b/tutorials/basic/scalarTransportFoam/pitzDaily/constant/transportProperties
index c955b2bc162..57f8e9c2779 100644
--- a/tutorials/basic/scalarTransportFoam/pitzDaily/constant/transportProperties
+++ b/tutorials/basic/scalarTransportFoam/pitzDaily/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-DT              DT [0 2 -1 0 0 0 0] 0.01;
+DT              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/LES/compartmentFire/0/panelRegion/T b/tutorials/combustion/fireFoam/LES/compartmentFire/0/panelRegion/T
index 989dfa04d46..8c508d72389 100644
--- a/tutorials/combustion/fireFoam/LES/compartmentFire/0/panelRegion/T
+++ b/tutorials/combustion/fireFoam/LES/compartmentFire/0/panelRegion/T
@@ -25,6 +25,7 @@ boundaryField
     wallPanel_top
     {
         type            externalWallHeatFluxTemperature;
+        mode            coefficient;
         Ta              uniform 294.75;
         h               uniform 10;
         kappaMethod     solidThermo;
diff --git a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/transportProperties b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/transportProperties
index cad699f48a4..63a1ac75aa0 100644
--- a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/transportProperties
+++ b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.0e-6;
+nu              1.0e-6;
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/transportProperties b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/transportProperties
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/thermodynamicProperties b/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/thermodynamicProperties
index 51b9c21e971..20fad7511dd 100644
--- a/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/thermodynamicProperties
+++ b/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/thermodynamicProperties
@@ -15,11 +15,11 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-rho0            rho0 [1 -3 0 0 0 0 0] 1000;
+rho0            1000;
 
-p0              p0 [1 -1 -2 0 0 0 0] 100000;
+p0              100000;
 
-psi             psi [0 -2 2 0 0 0 0] 4.54e-07;
+psi             4.54e-07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/transportProperties b/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/transportProperties
index 691014c1b86..c77ebea1751 100644
--- a/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/transportProperties
+++ b/tutorials/compressible/sonicLiquidFoam/decompressionTank/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-mu              mu [1 -1 -1 0 0 0 0] 0.001;
+mu              0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/electromagnetics/mhdFoam/hartmann/constant/transportProperties b/tutorials/electromagnetics/mhdFoam/hartmann/constant/transportProperties
index 547f4056e50..07afbf7ce3d 100644
--- a/tutorials/electromagnetics/mhdFoam/hartmann/constant/transportProperties
+++ b/tutorials/electromagnetics/mhdFoam/hartmann/constant/transportProperties
@@ -15,12 +15,12 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-rho             [1 -3 0 0 0 0 0] 1;
+rho             1;
 
-nu              [0 2 -1 0 0 0 0] 1;
+nu              1;
 
-mu              [1 1 -2 0 0 -2 0] 1;
+mu              1;
 
-sigma           [-1 -3 3 0 0 2 0] 1;
+sigma           1;
 
 // ************************************************************************* //
diff --git a/tutorials/financial/financialFoam/europeanCall/constant/financialProperties b/tutorials/financial/financialFoam/europeanCall/constant/financialProperties
index 658fccc56e6..98f3b4dac2b 100644
--- a/tutorials/financial/financialFoam/europeanCall/constant/financialProperties
+++ b/tutorials/financial/financialFoam/europeanCall/constant/financialProperties
@@ -15,16 +15,11 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-strike          [0 1 0 0 0 0 0] 40;
+strike          40;
 
-r               [0 0 -1 0 0 0 0] 0.1;
+r               0.1;
 
-sigma           [0 0 -0.5 0 0 0 0] 0.2;
+sigma           0.2;
 
-s               [0 0 -1 0 0 0 0] 0;
-
-xi              [0 0 -0.5 0 0 0 0] 0.1;
-
-eta             [0 0 0 0 0 0 0] 0;
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
index 418b7b75f99..1a603506fff 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/constant/transportProperties
@@ -18,18 +18,18 @@ FoamFile
 transportModel Newtonian;
 
 // Laminar viscosity
-nu              [0 2 -1 0 0 0 0] 1e-03;
+nu              1e-03;
 
 // Thermal expansion coefficient
-beta            [0 0 0 -1 0 0 0] 1e-03;
+beta            1e-03;
 
 // Reference temperature
-TRef            [0 0 0 1 0 0 0] 300;
+TRef            300;
 
 // Laminar Prandtl number
-Pr              [0 0 0 0 0 0 0] 1.0;
+Pr              1.0;
 
 // Turbulent Prandtl number
-Prt             [0 0 0 0 0 0 0] 1.0;
+Prt             1.0;
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/hotRoom/constant/transportProperties b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/hotRoom/constant/transportProperties
index 06ee8fc8f43..ae4727d615f 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/hotRoom/constant/transportProperties
+++ b/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/hotRoom/constant/transportProperties
@@ -18,18 +18,18 @@ FoamFile
 transportModel Newtonian;
 
 // Laminar viscosity
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // Thermal expansion coefficient
-beta            [0 0 0 -1 0 0 0] 3e-03;
+beta            3e-03;
 
 // Reference temperature
-TRef            [0 0 0 1 0 0 0] 300;
+TRef            300;
 
 // Laminar Prandtl number
-Pr              [0 0 0 0 0 0 0] 0.7;
+Pr              0.7;
 
 // Turbulent Prandtl number
-Prt             [0 0 0 0 0 0 0] 0.85;
+Prt             0.85;
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/hotRoom/constant/transportProperties b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/hotRoom/constant/transportProperties
index 06ee8fc8f43..ae4727d615f 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/hotRoom/constant/transportProperties
+++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/hotRoom/constant/transportProperties
@@ -18,18 +18,18 @@ FoamFile
 transportModel Newtonian;
 
 // Laminar viscosity
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // Thermal expansion coefficient
-beta            [0 0 0 -1 0 0 0] 3e-03;
+beta            3e-03;
 
 // Reference temperature
-TRef            [0 0 0 1 0 0 0] 300;
+TRef            300;
 
 // Laminar Prandtl number
-Pr              [0 0 0 0 0 0 0] 0.7;
+Pr              0.7;
 
 // Turbulent Prandtl number
-Prt             [0 0 0 0 0 0 0] 0.85;
+Prt             0.85;
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/transportProperties b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/transportProperties
index 06ee8fc8f43..ae4727d615f 100644
--- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/transportProperties
+++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/constant/transportProperties
@@ -18,18 +18,18 @@ FoamFile
 transportModel Newtonian;
 
 // Laminar viscosity
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // Thermal expansion coefficient
-beta            [0 0 0 -1 0 0 0] 3e-03;
+beta            3e-03;
 
 // Reference temperature
-TRef            [0 0 0 1 0 0 0] 300;
+TRef            300;
 
 // Laminar Prandtl number
-Pr              [0 0 0 0 0 0 0] 0.7;
+Pr              0.7;
 
 // Turbulent Prandtl number
-Prt             [0 0 0 0 0 0 0] 0.85;
+Prt             0.85;
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T
index 267473f7901..35ceb480f02 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T
@@ -44,13 +44,14 @@ boundaryField
     minZ
     {
         type            externalWallHeatFluxTemperature;
-        value           uniform 300;
-        kappaMethod     solidThermo;
+        mode            coefficient;
         Ta              uniform 313;
         h               uniform 1000000;
         thicknessLayers ( 1 2 );
         kappaLayers     ( 100 200 );
+        kappaMethod     solidThermo;
         kappa           none;
+        value           uniform 300;
     }
     floor_to_domain3
     {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict
index faf294c0843..6ae161489a7 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict
@@ -66,13 +66,14 @@ dictionaryReplacement
             minZ
             {
                 type            externalWallHeatFluxTemperature;
-                kappaMethod     solidThermo;
+                mode            coefficient;
                 Ta              uniform 313.0;
                 h               uniform 10e5;
+                kappaMethod     solidThermo;
+                kappa           none;
                 thicknessLayers (1 2);
                 kappaLayers     (100 200);
                 value           uniform 300.0;
-                kappa           none;
             }
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T
index a384823f320..ae7fc35032f 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T
@@ -39,10 +39,11 @@ boundaryField
     exterior
     {
         type            externalWallHeatFluxTemperature;
-        kappaMethod     solidThermo;
-        kappa           none;
+        mode            coefficient;
         h               uniform 10;
         Ta              uniform 260;
+        kappaMethod     solidThermo;
+        kappa           none;
         value           uniform 260;
     }
 }
diff --git a/tutorials/incompressible/SRFPimpleFoam/rotor2D/constant/transportProperties b/tutorials/incompressible/SRFPimpleFoam/rotor2D/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/SRFPimpleFoam/rotor2D/constant/transportProperties
+++ b/tutorials/incompressible/SRFPimpleFoam/rotor2D/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/SRFSimpleFoam/mixer/constant/transportProperties b/tutorials/incompressible/SRFSimpleFoam/mixer/constant/transportProperties
index 8035aa85709..9be02f5f222 100644
--- a/tutorials/incompressible/SRFSimpleFoam/mixer/constant/transportProperties
+++ b/tutorials/incompressible/SRFSimpleFoam/mixer/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/constant/transportProperties b/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/constant/transportProperties
index 7d7b76833ac..60243561048 100644
--- a/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/constant/transportProperties
+++ b/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/constant/transportProperties
@@ -17,9 +17,9 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-5;
+nu              1e-5;
 
-lambda          lambda   [0 -2 1 0 0 0 0] 1e5;
-alphaMax        alphaMax [0 0 -1 0 0 0 0] 200.0;
+lambda          1e5;
+alphaMax        200.0;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/constant/transportProperties b/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/constant/transportProperties
index 8ed7850396e..a8ce5169360 100644
--- a/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/constant/transportProperties
+++ b/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/constant/transportProperties
@@ -15,11 +15,11 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Ubar            [0 1 -1 0 0 0 0] (10 0 0);
+Ubar            (10 0 0);
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/constant/transportProperties b/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/constant/transportProperties
index d93ea31ee60..21e095137e7 100644
--- a/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/constant/transportProperties
+++ b/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/constant/transportProperties
@@ -15,10 +15,10 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Ubar            [0 1 -1 0 0 0 0] (10 0 0);
+Ubar            (10 0 0);
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties
index 13576c4d2e4..c1751a85983 100644
--- a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties
+++ b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties
@@ -15,10 +15,10 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Ubar            [0 1 -1 0 0 0 0] (10 0 0);
+Ubar            (10 0 0);
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-8;
+nu              1e-8;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties.template b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties.template
index 0a21c024a5a..ed0b8a6359f 100644
--- a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties.template
+++ b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/constant/transportProperties.template
@@ -15,10 +15,10 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Ubar            [0 1 -1 0 0 0 0] (10 0 0);
+Ubar            (10 0 0);
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-XXX;
+nu              1e-XXX;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/icoFoam/cavity/cavity/constant/transportProperties b/tutorials/incompressible/icoFoam/cavity/cavity/constant/transportProperties
index 2509c116703..5b9f2ab093b 100644
--- a/tutorials/incompressible/icoFoam/cavity/cavity/constant/transportProperties
+++ b/tutorials/incompressible/icoFoam/cavity/cavity/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              [0 2 -1 0 0 0 0] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/icoFoam/cavity/cavityClipped/constant/transportProperties b/tutorials/incompressible/icoFoam/cavity/cavityClipped/constant/transportProperties
index 2509c116703..5b9f2ab093b 100644
--- a/tutorials/incompressible/icoFoam/cavity/cavityClipped/constant/transportProperties
+++ b/tutorials/incompressible/icoFoam/cavity/cavityClipped/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              [0 2 -1 0 0 0 0] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/icoFoam/cavity/cavityGrade/constant/transportProperties b/tutorials/incompressible/icoFoam/cavity/cavityGrade/constant/transportProperties
index 2509c116703..5b9f2ab093b 100644
--- a/tutorials/incompressible/icoFoam/cavity/cavityGrade/constant/transportProperties
+++ b/tutorials/incompressible/icoFoam/cavity/cavityGrade/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              [0 2 -1 0 0 0 0] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/icoFoam/cavityMappingTest/constant/transportProperties b/tutorials/incompressible/icoFoam/cavityMappingTest/constant/transportProperties
index 2509c116703..5b9f2ab093b 100644
--- a/tutorials/incompressible/icoFoam/cavityMappingTest/constant/transportProperties
+++ b/tutorials/incompressible/icoFoam/cavityMappingTest/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              [0 2 -1 0 0 0 0] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/icoFoam/elbow/constant/transportProperties b/tutorials/incompressible/icoFoam/elbow/constant/transportProperties
index 2509c116703..5b9f2ab093b 100644
--- a/tutorials/incompressible/icoFoam/elbow/constant/transportProperties
+++ b/tutorials/incompressible/icoFoam/elbow/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              [0 2 -1 0 0 0 0] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/constant/transportProperties b/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/constant/transportProperties
index 9f16c8dc4ac..2f1f19585e8 100644
--- a/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/constant/transportProperties
+++ b/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/constant/transportProperties
@@ -19,18 +19,18 @@ transportModel  CrossPowerLaw;
 
 CrossPowerLawCoeffs
 {
-    nu0         [0 2 -1 0 0 0 0]  0.01;
-    nuInf       [0 2 -1 0 0 0 0]  10;
-    m           [0 0 1 0 0 0 0]   0.4;
-    n           [0 0 0 0 0 0 0]   3;
+    nu0         0.01;
+    nuInf       10;
+    m           0.4;
+    n           3;
 }
 
 BirdCarreauCoeffs
 {
-    nu0         [0 2 -1 0 0 0 0]  1e-06;
-    nuInf       [0 2 -1 0 0 0 0]  1e-06;
-    k           [0 0 1 0 0 0 0]   0;
-    n           [0 0 0 0 0 0 0]   1;
+    nu0         1e-06;
+    nuInf       1e-06;
+    k           0;
+    n           1;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/transportProperties
index b59cf4a2d1e..d0a2296caaf 100644
--- a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/transportProperties
+++ b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/transportProperties
@@ -17,7 +17,7 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/transportProperties
+++ b/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/transportProperties
index c1509dad6a8..51788a66f34 100644
--- a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/transportProperties
+++ b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-6;
+nu              1e-6;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletPeriodicAMI2D/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletPeriodicAMI2D/constant/transportProperties
index 103466de0a6..51788a66f34 100644
--- a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletPeriodicAMI2D/constant/transportProperties
+++ b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletPeriodicAMI2D/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              nu [ 0 2 -1 0 0 0 0 ] 1e-6;
+nu              1e-6;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/propeller/constant/transportProperties
index c1509dad6a8..51788a66f34 100644
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/constant/transportProperties
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-6;
+nu              1e-6;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/transportProperties
index 0af56810b21..e75104f3e64 100644
--- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/transportProperties
+++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/transportProperties
@@ -15,8 +15,8 @@ FoamFile
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-transportModel Newtonian;
+transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/constant/transportProperties
index 0af56810b21..e75104f3e64 100644
--- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/constant/transportProperties
+++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_simpleFoam/constant/transportProperties
@@ -15,8 +15,8 @@ FoamFile
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-transportModel Newtonian;
+transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/LES/channel395/constant/transportProperties b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/transportProperties
index 31d29f828fa..2791e92ca0c 100644
--- a/tutorials/incompressible/pimpleFoam/LES/channel395/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/transportProperties
@@ -15,10 +15,10 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Ubar            [0 1 -1 0 0 0 0] (0.1335 0 0);
+Ubar            (0.1335 0 0);
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 2e-05;
+nu              2e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/transportProperties b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/transportProperties
index ca586f46380..945334543b8 100644
--- a/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/transportProperties
@@ -24,7 +24,7 @@ transportModel  Newtonian;
 // U_bulk = 17.55 -> u_tau = 1
 // -> nu = 1*1/395 = 2.532e-3
 
-nu              nu [ 0 2 -1 0 0 0 0 ] 2.532e-3;
+nu              2.532e-3;
 
 
 
diff --git a/tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/transportProperties
index 0305c5d8c45..6ad11f4860e 100644
--- a/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.86e-05;
+nu              1.86e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/transportProperties b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/transportProperties
index 4356510fb1f..d9a839772a9 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-5;
+nu              1e-5;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/transportProperties b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/transportProperties
index bc64c528669..dec19819339 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/transportProperties
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 0.1; // kinematic -> 0.002 dynamic
+nu              0.1; // kinematic -> 0.002 dynamic
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/transportProperties b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/transportProperties
index 93a8cb630c0..c4e6700e332 100644
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/transportProperties
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/transportProperties b/tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/transportProperties
+++ b/tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/transportProperties b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/transportProperties
+++ b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/RAS/cavity/constant/transportProperties b/tutorials/incompressible/pisoFoam/RAS/cavity/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pisoFoam/RAS/cavity/constant/transportProperties
+++ b/tutorials/incompressible/pisoFoam/RAS/cavity/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/transportProperties b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/transportProperties
+++ b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/transportProperties b/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/transportProperties
index 4220fccc4eb..b97ce3adab4 100644
--- a/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/transportProperties
+++ b/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 5e-3; // Re_blockage = 200
+nu              5e-3; // Re_blockage = 200
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/transportProperties b/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/transportProperties
index 93a8cb630c0..c4e6700e332 100644
--- a/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/transportProperties
+++ b/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/transportProperties b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/transportProperties
index 93a8cb630c0..c4e6700e332 100644
--- a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/transportProperties
+++ b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/airFoil2D/constant/transportProperties b/tutorials/incompressible/simpleFoam/airFoil2D/constant/transportProperties
index 5681fcad5b1..a92f59e5e71 100644
--- a/tutorials/incompressible/simpleFoam/airFoil2D/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/airFoil2D/constant/transportProperties
@@ -17,8 +17,8 @@ FoamFile
 
 transportModel  Newtonian;
 
-rho             [1 -3 0 0 0 0 0] 1;
+rho             1;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/transportProperties b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/mixerVessel2D/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/motorBike/constant/transportProperties b/tutorials/incompressible/simpleFoam/motorBike/constant/transportProperties
index 93a8cb630c0..778c5383eef 100644
--- a/tutorials/incompressible/simpleFoam/motorBike/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/motorBike/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              .5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/pipeCyclic/constant/transportProperties b/tutorials/incompressible/simpleFoam/pipeCyclic/constant/transportProperties
index 08a6a40e882..d57a3d1feae 100644
--- a/tutorials/incompressible/simpleFoam/pipeCyclic/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/pipeCyclic/constant/transportProperties
@@ -17,7 +17,7 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-06;
+nu              1e-06;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/constant/transportProperties b/tutorials/incompressible/simpleFoam/pitzDaily/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/constant/transportProperties b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/constant/transportProperties
index 10b33d899a8..4a7e6c4690d 100644
--- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/rotorDisk/constant/transportProperties b/tutorials/incompressible/simpleFoam/rotorDisk/constant/transportProperties
index 93a8cb630c0..c4e6700e332 100644
--- a/tutorials/incompressible/simpleFoam/rotorDisk/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/rotorDisk/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/simpleCar/constant/transportProperties b/tutorials/incompressible/simpleFoam/simpleCar/constant/transportProperties
index 6e3c2131baf..d0a2296caaf 100644
--- a/tutorials/incompressible/simpleFoam/simpleCar/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/simpleCar/constant/transportProperties
@@ -17,23 +17,7 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              nu [ 0 2 -1 0 0 0 0 ] 1e-05;
-
-CrossPowerLawCoeffs
-{
-    nu0             nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
-    nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-    m               m [ 0 0 1 0 0 0 0 ] 1;
-    n               n [ 0 0 0 0 0 0 0 ] 1;
-}
-
-BirdCarreauCoeffs
-{
-    nu0             nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
-    nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-    k               k [ 0 0 1 0 0 0 0 ] 0;
-    n               n [ 0 0 0 0 0 0 0 ] 1;
-}
+nu              1e-05;
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/turbineSiting/constant/transportProperties b/tutorials/incompressible/simpleFoam/turbineSiting/constant/transportProperties
index 93a8cb630c0..c4e6700e332 100644
--- a/tutorials/incompressible/simpleFoam/turbineSiting/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/turbineSiting/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/windAroundBuildings/constant/transportProperties b/tutorials/incompressible/simpleFoam/windAroundBuildings/constant/transportProperties
index 93a8cb630c0..c4e6700e332 100644
--- a/tutorials/incompressible/simpleFoam/windAroundBuildings/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/windAroundBuildings/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/constant/transportProperties b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/constant/transportProperties
index 375de077121..43a2628f960 100644
--- a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/constant/transportProperties
+++ b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/constant/transportProperties
@@ -15,10 +15,10 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-rhoInf          [1 -3 0 0 0 0 0] 1.2;
+rhoInf          1.2;
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/constant/transportProperties b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/constant/transportProperties
index 375de077121..43a2628f960 100644
--- a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/constant/transportProperties
+++ b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/constant/transportProperties
@@ -15,10 +15,10 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-rhoInf          [1 -3 0 0 0 0 0] 1.2;
+rhoInf          1.2;
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-05;
+nu              1e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/transportProperties b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/transportProperties
index 2509c116703..5b9f2ab093b 100644
--- a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/transportProperties
+++ b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              [0 2 -1 0 0 0 0] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/constant/transportProperties b/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/constant/transportProperties
index c1509dad6a8..51788a66f34 100644
--- a/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/constant/transportProperties
+++ b/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-6;
+nu              1e-6;
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/constant/transportProperties b/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/constant/transportProperties
index c1509dad6a8..51788a66f34 100644
--- a/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/constant/transportProperties
+++ b/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/constant/transportProperties
@@ -17,6 +17,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-6;
+nu              1e-6;
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/parallel/cavity/constant/transportProperties b/tutorials/mesh/parallel/cavity/constant/transportProperties
index de00c3587cd..5b9f2ab093b 100644
--- a/tutorials/mesh/parallel/cavity/constant/transportProperties
+++ b/tutorials/mesh/parallel/cavity/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              nu [ 0 2 -1 0 0 0 0 ] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/constant/transportProperties b/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/constant/transportProperties
index 5eabec50ac9..c4e6700e332 100644
--- a/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/constant/transportProperties
+++ b/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              nu [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/constant/transportProperties b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/constant/transportProperties
index f2fa0fcec9c..84ac74aab24 100644
--- a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/constant/transportProperties
+++ b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/constant/transportProperties
@@ -20,48 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              nu [ 0 2 -1 0 0 0 0 ] 1e-06;
-    rho             rho [ 1 -3 0 0 0 0 0 ] 1000;
-    CrossPowerLawCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        m               m [ 0 0 1 0 0 0 0 ] 1;
-        n               n [ 0 0 0 0 0 0 0 ] 0;
-    }
-
-    BirdCarreauCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 0.0142515;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        k               k [ 0 0 1 0 0 0 0 ] 99.6;
-        n               n [ 0 0 0 0 0 0 0 ] 0.1003;
-    }
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              nu [ 0 2 -1 0 0 0 0 ] 1.48e-05;
-    rho             rho [ 1 -3 0 0 0 0 0 ] 1;
-    CrossPowerLawCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        m               m [ 0 0 1 0 0 0 0 ] 1;
-        n               n [ 0 0 0 0 0 0 0 ] 0;
-    }
-
-    BirdCarreauCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 0.0142515;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        k               k [ 0 0 1 0 0 0 0 ] 99.6;
-        n               n [ 0 0 0 0 0 0 0 ] 0.1003;
-    }
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           sigma [ 1 0 -2 0 0 0 0 ] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/thermodynamicProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/thermodynamicProperties
index f9fd0e69e31..69ac20d98f3 100644
--- a/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/thermodynamicProperties
+++ b/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/thermodynamicProperties
@@ -17,15 +17,15 @@ FoamFile
 
 barotropicCompressibilityModel linear;
 
-psiv            [0 -2 2 0 0] 2.5e-06;
+psiv            2.5e-06;
 
-rholSat         [1 -3 0 0 0] 830;
+rholSat         830;
 
-psil            [0 -2 2 0 0] 5e-07;
+psil            5e-07;
 
-pSat            [1 -1 -2 0 0] 4500;
+pSat            4500;
 
-rhoMin          [1 -3 0 0 0] 0.001;
+rhoMin          0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/transportProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/transportProperties
index 9f210560aef..f4f52757ec8 100644
--- a/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/transportProperties
+++ b/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/transportProperties
@@ -15,24 +15,20 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-mul             [1 -1 -1 0 0] 0.0065;
-
-muv             [1 -1 -1 0 0] 5.953e-06;
-
 phases (vapour water);
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 7.831e-06;
-    rho             [1 -3 0 0 0 0 0] 830;
+    nu              7.831e-06;
+    rho             830;
 }
 
 vapour
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 4.252e-05;
-    rho             [1 -3 0 0 0 0 0] 0.14;
+    nu              4.252e-05;
+    rho             0.14;
 }
 
 
diff --git a/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/thermodynamicProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/thermodynamicProperties
index f9fd0e69e31..69ac20d98f3 100644
--- a/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/thermodynamicProperties
+++ b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/thermodynamicProperties
@@ -17,15 +17,15 @@ FoamFile
 
 barotropicCompressibilityModel linear;
 
-psiv            [0 -2 2 0 0] 2.5e-06;
+psiv            2.5e-06;
 
-rholSat         [1 -3 0 0 0] 830;
+rholSat         830;
 
-psil            [0 -2 2 0 0] 5e-07;
+psil            5e-07;
 
-pSat            [1 -1 -2 0 0] 4500;
+pSat            4500;
 
-rhoMin          [1 -3 0 0 0] 0.001;
+rhoMin          0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/transportProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/transportProperties
index a5a6e8a3891..bd7dc9a4974 100644
--- a/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/transportProperties
+++ b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/transportProperties
@@ -15,24 +15,20 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-mul             [1 -1 -1 0 0] 0.0065;
-
-muv             [1 -1 -1 0 0] 5.953e-06;
-
 phases (vapour water);
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 7.831e-06;
-    rho             [1 -3 0 0 0 0 0] 830;
+    nu              7.831e-06;
+    rho             830;
 }
 
 vapour
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 4.252e-05;
-    rho             [1 -3 0 0 0 0 0] 0.14;
+    nu              4.252e-05;
+    rho             0.14;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/thermodynamicProperties b/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/thermodynamicProperties
index 3728ab3344a..ae87991f935 100644
--- a/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/thermodynamicProperties
+++ b/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/thermodynamicProperties
@@ -17,14 +17,14 @@ FoamFile
 
 barotropicCompressibilityModel linear;
 
-psiv            [0 -2 2 0 0] 2.5e-06;
+psiv            2.5e-06;
 
-rholSat         [1 -3 0 0 0] 830;
+rholSat         830;
 
-psil            [0 -2 2 0 0] 5e-07;
+psil            5e-07;
 
-pSat            [1 -1 -2 0 0] 4500;
+pSat            4500;
 
-rhoMin          [1 -3 0 0 0] 0.001;
+rhoMin          0.001;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/transportProperties b/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/transportProperties
index a5a6e8a3891..bd7dc9a4974 100644
--- a/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/transportProperties
+++ b/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/transportProperties
@@ -15,24 +15,20 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-mul             [1 -1 -1 0 0] 0.0065;
-
-muv             [1 -1 -1 0 0] 5.953e-06;
-
 phases (vapour water);
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 7.831e-06;
-    rho             [1 -3 0 0 0 0 0] 830;
+    nu              7.831e-06;
+    rho             830;
 }
 
 vapour
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 4.252e-05;
-    rho             [1 -3 0 0 0 0 0] 0.14;
+    nu              4.252e-05;
+    rho             0.14;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/constant/transportProperties b/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/constant/transportProperties
index c0d0baa30dd..c69a57d6de3 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/constant/transportProperties
+++ b/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/constant/transportProperties
@@ -19,15 +19,15 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties
index a6ad8621d44..8d6c9b86b3d 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties
@@ -14,37 +14,37 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-phases (liquid vapour);// FC-72
+phases (liquid vapour); // FC-72
 
 
-sigma           sigma [1 0 -2 0 0 0 0] 0.0;
+sigma           0;
 
 liquid
 {
     transportModel  Newtonian;
-    nu              nu [0 2 -1 0 0 0 0] 2.64e-7;
-    rho             rho [1 -3 0 0 0 0 0] 1583.4;
+    nu              2.64e-7;
+    rho             1583.4;
 
 
-    Cp              Cp [0 2 -2 -1 0 0 0] 1.1072e3;
-    Cv              cv [0 2 -2 -1 0 0 0] 1.1072e3; //assume Cp for liquid
-    kappa           kappa [1 1 -3 -1 0 0 0] 0.057;
-    hf              hf [0 2 -2 0 0 0 0] 0;
+    Cp              1.1072e3;
+    Cv              1.1072e3;   // assume Cp for liquid
+    kappa           0.057;
+    hf              0;
 }
 
 vapour
 {
     transportModel  Newtonian;
-    nu              nu [0 2 -1 0 0 0 0]  5e-7;
-    rho             rho [1 -3 0 0 0 0 0] 14.9;
+    nu              5e-7;
+    rho             14.9;
 
 
-    Cp              Cp [0 2 -2 -1 0 0 0] 895.2; //FC72 vapour
-    Cv              Cv [0 2 -2 -1 0 0 0] 870.4; // Cv = Cp - R/w
-    kappa           kappa [1 1 -3 -1 0 0 0] 0.01; //FC72 vapour
-    hf              hf [0 2 -2 0 0 0 0] 93.0e3;
+    Cp              895.2;      // FC72 vapour
+    Cv              870.4;      // Cv = Cp - R/w
+    kappa           0.01;       // FC72 vapour
+    hf              93.0e3;
 }
 
-Prt     0.7;
+Prt             0.7;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/motorBike/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/motorBike/constant/transportProperties
index f2fa0fcec9c..84ac74aab24 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/motorBike/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/motorBike/constant/transportProperties
@@ -20,48 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              nu [ 0 2 -1 0 0 0 0 ] 1e-06;
-    rho             rho [ 1 -3 0 0 0 0 0 ] 1000;
-    CrossPowerLawCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        m               m [ 0 0 1 0 0 0 0 ] 1;
-        n               n [ 0 0 0 0 0 0 0 ] 0;
-    }
-
-    BirdCarreauCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 0.0142515;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        k               k [ 0 0 1 0 0 0 0 ] 99.6;
-        n               n [ 0 0 0 0 0 0 0 ] 0.1003;
-    }
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              nu [ 0 2 -1 0 0 0 0 ] 1.48e-05;
-    rho             rho [ 1 -3 0 0 0 0 0 ] 1;
-    CrossPowerLawCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        m               m [ 0 0 1 0 0 0 0 ] 1;
-        n               n [ 0 0 0 0 0 0 0 ] 0;
-    }
-
-    BirdCarreauCoeffs
-    {
-        nu0             nu0 [ 0 2 -1 0 0 0 0 ] 0.0142515;
-        nuInf           nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
-        k               k [ 0 0 1 0 0 0 0 ] 99.6;
-        n               n [ 0 0 0 0 0 0 0 ] 0.1003;
-    }
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           sigma [ 1 0 -2 0 0 0 0 ] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/constant/transportProperties
index 1331af1e5ce..84ac74aab24 100644
--- a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/constant/transportProperties
index 019225dd4f1..be4da001c23 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/constant/transportProperties
index 019225dd4f1..be4da001c23 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/constant/transportProperties
index 019225dd4f1..be4da001c23 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/constant/transportProperties
index 019225dd4f1..be4da001c23 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/constant/transportProperties
index 019225dd4f1..be4da001c23 100644
--- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties
index f0c5e3bcbab..ecfb2c2c451 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties
@@ -88,7 +88,7 @@ drag
 
 // This is a dummy to support the Smagorinsky model
 transportModel  Newtonian;
-nu              [0 2 -1 0 0 0 0] 0;
+nu              0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties
index b4f1932c5a1..ea24f30e38c 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties
@@ -230,7 +230,7 @@ drag
 
 // This is a dummy to support the Smagorinsky model
 transportModel  Newtonian;
-nu              [0 2 -1 0 0 0 0] 0;
+nu              0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties
index b4f1932c5a1..ea24f30e38c 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties
@@ -230,7 +230,7 @@ drag
 
 // This is a dummy to support the Smagorinsky model
 transportModel  Newtonian;
-nu              [0 2 -1 0 0 0 0] 0;
+nu              0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/constant/transportProperties
index 4aaf867bb31..711e0bf6d86 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/constant/transportProperties
@@ -242,7 +242,7 @@ drag
 
 // This is a dummy to support the Smagorinsky model
 transportModel  Newtonian;
-nu              [0 2 -1 0 0 0 0] 0;
+nu              0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties
index 2c533c62ffc..f090780ac42 100644
--- a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties
@@ -20,29 +20,29 @@ phases
      water
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 1000;
+         nu             1e-06;
+         rho            1000;
      }
 
      oil
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 500;
+         nu             1e-06;
+         rho            500;
      }
 
      mercury
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.125e-07;
-         rho [1 -3 0 0 0 0 0] 13529;
+         nu             1.125e-07;
+         rho            13529;
      }
 
      air
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.48e-05;
-         rho [1 -3 0 0 0 0 0] 1;
+         nu             1.48e-05;
+         rho            1;
      }
 );
 
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/transportProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/transportProperties
index 2c533c62ffc..f090780ac42 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/transportProperties
@@ -20,29 +20,29 @@ phases
      water
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 1000;
+         nu             1e-06;
+         rho            1000;
      }
 
      oil
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 500;
+         nu             1e-06;
+         rho            500;
      }
 
      mercury
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.125e-07;
-         rho [1 -3 0 0 0 0 0] 13529;
+         nu             1.125e-07;
+         rho            13529;
      }
 
      air
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.48e-05;
-         rho [1 -3 0 0 0 0 0] 1;
+         nu             1.48e-05;
+         rho            1;
      }
 );
 
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/transportProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/transportProperties
index 2c533c62ffc..f090780ac42 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/transportProperties
@@ -20,29 +20,29 @@ phases
      water
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 1000;
+         nu             1e-06;
+         rho            1000;
      }
 
      oil
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 500;
+         nu             1e-06;
+         rho            500;
      }
 
      mercury
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.125e-07;
-         rho [1 -3 0 0 0 0 0] 13529;
+         nu             1.125e-07;
+         rho            13529;
      }
 
      air
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.48e-05;
-         rho [1 -3 0 0 0 0 0] 1;
+         nu             1.48e-05;
+         rho            1;
      }
 );
 
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/constant/transportProperties
index 2c533c62ffc..f090780ac42 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/mixerVessel2D/constant/transportProperties
@@ -20,29 +20,29 @@ phases
      water
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 1000;
+         nu             1e-06;
+         rho            1000;
      }
 
      oil
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1e-06;
-         rho [1 -3 0 0 0 0 0] 500;
+         nu             1e-06;
+         rho            500;
      }
 
      mercury
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.125e-07;
-         rho [1 -3 0 0 0 0 0] 13529;
+         nu             1.125e-07;
+         rho            13529;
      }
 
      air
      {
          transportModel Newtonian;
-         nu [0 2 -1 0 0 0 0] 1.48e-05;
-         rho [1 -3 0 0 0 0 0] 1;
+         nu             1.48e-05;
+         rho            1;
      }
 );
 
diff --git a/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/transportProperties b/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/transportProperties
index 0aa193ba8cc..bbfe9c16e75 100644
--- a/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/transportProperties
+++ b/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/transportProperties
@@ -16,7 +16,7 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-06;
+nu              1e-06;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/constant/transportProperties b/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/constant/transportProperties
index 0aa193ba8cc..bbfe9c16e75 100644
--- a/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/constant/transportProperties
+++ b/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/constant/transportProperties
@@ -16,7 +16,7 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              [0 2 -1 0 0 0 0] 1e-06;
+nu              1e-06;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/constant/transportProperties b/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/constant/transportProperties
index e9a800818ab..9a745eb4cfe 100644
--- a/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/constant/transportProperties
+++ b/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/constant/transportProperties
@@ -15,23 +15,23 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Dab           [0 2 -1 0 0 0 0]    1e-06;
-alphatab      [0 0 0 0 0 0 0]     1;
+Dab         1e-06;
+alphatab    1;
 
 phases (sludge water);
 
 sludge
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 990;
+    nu              1e-06;
+    rho             990;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties b/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties
index de00c3587cd..5b9f2ab093b 100644
--- a/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties
+++ b/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-nu              nu [ 0 2 -1 0 0 0 0 ] 0.01;
+nu              0.01;
 
 
 // ************************************************************************* //
diff --git a/tutorials/preProcessing/createZeroDirectory/motorBike/constant/transportProperties b/tutorials/preProcessing/createZeroDirectory/motorBike/constant/transportProperties
index 5eabec50ac9..c4e6700e332 100644
--- a/tutorials/preProcessing/createZeroDirectory/motorBike/constant/transportProperties
+++ b/tutorials/preProcessing/createZeroDirectory/motorBike/constant/transportProperties
@@ -16,6 +16,6 @@ FoamFile
 
 transportModel  Newtonian;
 
-nu              nu [0 2 -1 0 0 0 0] 1.5e-05;
+nu              1.5e-05;
 
 // ************************************************************************* //
-- 
GitLab


From 62ff00f8602544e9efa30328cad9815d69554cd1 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 18 May 2017 22:12:48 +0100
Subject: [PATCH 221/277] COMP: specie - ensure if block is evaluated

---
 .../specie/specie/specieI.H                     | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/thermophysicalModels/specie/specie/specieI.H b/src/thermophysicalModels/specie/specie/specieI.H
index 222ca1ceeef..780e7328baf 100644
--- a/src/thermophysicalModels/specie/specie/specieI.H
+++ b/src/thermophysicalModels/specie/specie/specieI.H
@@ -159,14 +159,17 @@ inline specie operator==(const specie& st1, const specie& st2)
         diffY = SMALL;
     }
 
-    const scalar diffRW =
-        st2.Y_/st2.molWeight_ - st1.Y_/st1.molWeight_;
+    const scalar diffRW = st2.Y_/st2.molWeight_ - st1.Y_/st1.molWeight_;
 
-    scalar molWeight = GREAT;
-    if (mag(diffRW) > SMALL)
-    {
-        molWeight = diffY/diffRW;
-    }
+    // if (mag(diffRW) > SMALL)
+    // {
+    //     molWeight = diffY/diffRW;
+    // }
+
+    // Using intermediate volatile bool to prevent compiler optimising out the
+    // if block (above) - CLANG 3.7.1
+    volatile const bool valid = (mag(diffRW) > SMALL);
+    const scalar molWeight = valid ? diffY/diffRW : GREAT;
 
     return specie(diffY, molWeight);
 }
-- 
GitLab


From 79bfd7d7d9f470faf37fce9e5cfe0298a40f19fb Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Fri, 19 May 2017 11:46:58 +0100
Subject: [PATCH 222/277] TUT: Corrected execute permissions on run scripts

---
 tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun   | 0
 .../multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun     | 0
 .../multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean   | 0
 .../multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun     | 0
 .../multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean   | 0
 5 files changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun
 mode change 100644 => 100755 tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun
 mode change 100644 => 100755 tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean
 mode change 100644 => 100755 tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun
 mode change 100644 => 100755 tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean

diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun
old mode 100644
new mode 100755
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun
old mode 100644
new mode 100755
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean
old mode 100644
new mode 100755
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun
old mode 100644
new mode 100755
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean
old mode 100644
new mode 100755
-- 
GitLab


From 009f8df176d4545720f2ae1614f6a2fe2e87cbfc Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 22 May 2017 13:37:51 +0100
Subject: [PATCH 223/277] TUT: minor update

---
 .../reactingFoam/RAS/SandiaD_LTS/0.orig/G     |  2 --
 .../constant/boundaryRadiationProperties      | 26 +++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)
 create mode 100644 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/boundaryRadiationProperties

diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
index 4ebef94f2ae..7bbfa1dcd09 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
@@ -24,8 +24,6 @@ boundaryField
     {
         type            MarshakRadiation;
         T               T;
-        emissivityMode  lookup;
-        emissivity      uniform 1.0;
         value           uniform 0;
     }
 
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/boundaryRadiationProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/boundaryRadiationProperties
new file mode 100644
index 00000000000..e438f1b7cf0
--- /dev/null
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/boundaryRadiationProperties
@@ -0,0 +1,26 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      boundaryRadiationProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+".*"
+{
+    mode            lookup;
+    emissivity      1;
+    absorptivity    0;
+}
+
+
+// ************************************************************************* //
-- 
GitLab


From 5db16946331437c06038a4638d50523e5f9c709c Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 3 May 2017 19:17:43 +0100
Subject: [PATCH 224/277] surfaceTensionModels: Resolved warning from Clang
 concerning virtual function overload

---
 .../liquidProperties/liquidPropertiesSurfaceTension.C           | 2 +-
 .../liquidProperties/liquidPropertiesSurfaceTension.H           | 2 +-
 src/transportModels/interfaceProperties/interfaceProperties.C   | 2 +-
 .../surfaceTensionModels/constant/constantSurfaceTension.C      | 2 +-
 .../surfaceTensionModels/constant/constantSurfaceTension.H      | 2 +-
 .../surfaceTensionModel/surfaceTensionModel.H                   | 2 +-
 .../temperatureDependent/temperatureDependentSurfaceTension.C   | 2 +-
 .../temperatureDependent/temperatureDependentSurfaceTension.H   | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
index 71e10898023..7888ec23473 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
@@ -127,7 +127,7 @@ Foam::surfaceTensionModels::liquidProperties::sigma() const
 }
 
 
-bool Foam::surfaceTensionModels::liquidProperties::read
+bool Foam::surfaceTensionModels::liquidProperties::readDict
 (
     const dictionary& dict
 )
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
index b209dfc9d6e..7c1e4940acf 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
@@ -104,7 +104,7 @@ public:
         virtual tmp<volScalarField> sigma() const;
 
         //- Update surface tension coefficient from given dictionary
-        virtual bool read(const dictionary& dict);
+        virtual bool readDict(const dictionary& dict);
 
         //- Write in dictionary format
         virtual bool writeData(Ostream& os) const;
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C
index c31cd0efe60..f017fccca8f 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.C
+++ b/src/transportModels/interfaceProperties/interfaceProperties.C
@@ -239,7 +239,7 @@ void Foam::interfaceProperties::correct()
 bool Foam::interfaceProperties::read()
 {
     alpha1_.mesh().solverDict(alpha1_.name()).lookup("cAlpha") >> cAlpha_;
-    sigmaPtr_->read(transportPropertiesDict_);
+    sigmaPtr_->readDict(transportPropertiesDict_);
 
     return true;
 }
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
index bbe92e5196e..9a19092e046 100644
--- a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
@@ -83,7 +83,7 @@ Foam::surfaceTensionModels::constant::sigma() const
 }
 
 
-bool Foam::surfaceTensionModels::constant::read(const dictionary& dict)
+bool Foam::surfaceTensionModels::constant::readDict(const dictionary& dict)
 {
     // Handle sub-dictionary format as a special case
     if (dict.isDict("sigma"))
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
index feef36300c2..fdc1f91b8d5 100644
--- a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
@@ -98,7 +98,7 @@ public:
         virtual tmp<volScalarField> sigma() const;
 
         //- Update surface tension coefficient from given dictionary
-        virtual bool read(const dictionary& dict);
+        virtual bool readDict(const dictionary& dict);
 
         //- Write in dictionary format
         virtual bool writeData(Ostream& os) const;
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
index 930a8444f1d..a5cddff4ef9 100644
--- a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
@@ -143,7 +143,7 @@ public:
         virtual tmp<volScalarField> sigma() const = 0;
 
         //- Update surface tension coefficient from given dictionary
-        virtual bool read(const dictionary& dict) = 0;
+        virtual bool readDict(const dictionary& dict) = 0;
 
         //- Write in dictionary format
         virtual bool writeData(Ostream& os) const = 0;
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
index c56ac7f4a8b..03fb3a106c7 100644
--- a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
@@ -104,7 +104,7 @@ Foam::surfaceTensionModels::temperatureDependent::sigma() const
 }
 
 
-bool Foam::surfaceTensionModels::temperatureDependent::read
+bool Foam::surfaceTensionModels::temperatureDependent::readDict
 (
     const dictionary& dict
 )
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H
index c0bded7c311..e442fda63e6 100644
--- a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H
@@ -113,7 +113,7 @@ public:
         virtual tmp<volScalarField> sigma() const;
 
         //- Update surface tension coefficient from given dictionary
-        virtual bool read(const dictionary& dict);
+        virtual bool readDict(const dictionary& dict);
 
         //- Write in dictionary format
         virtual bool writeData(Ostream& os) const;
-- 
GitLab


From bdc48f6f5417caa882dc0fabf8eee55d0453c375 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 3 May 2017 14:59:07 +0100
Subject: [PATCH 225/277] thermophysicalModels: Corrected alphah to be enthalpy
 based

in

solidSpecie/transport/const/constAnIsoSolidTransport
solidSpecie/transport/const/constIsoSolidTransport
solidSpecie/transport/exponential/exponentialSolidTransport
solidSpecie/transport/polynomial/polynomialSolidTransport
specie/transport/logPolynomial/logPolynomialTransport
specie/transport/polynomial/polynomialTransport
specie/transport/sutherland/sutherlandTransport

Resolves bug-report https://bugs.openfoam.org/view.php?id=2532
---
 .../solidSpecie/transport/const/constAnIsoSolidTransportI.H     | 2 +-
 .../solidSpecie/transport/const/constIsoSolidTransportI.H       | 2 +-
 .../transport/exponential/exponentialSolidTransportI.H          | 2 +-
 .../transport/polynomial/polynomialSolidTransportI.H            | 2 +-
 .../specie/transport/logPolynomial/logPolynomialTransportI.H    | 2 +-
 .../specie/transport/polynomial/polynomialTransportI.H          | 2 +-
 .../specie/transport/sutherland/sutherlandTransportI.H          | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H
index 60e06fbb4e2..ee58b30acec 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constAnIsoSolidTransportI.H
@@ -92,7 +92,7 @@ template<class Thermo>
 inline Foam::vector Foam::constAnIsoSolidTransport<Thermo>::
 alphah(const scalar p, const scalar T) const
 {
-    return kappa_/this->Cpv(p, T);
+    return kappa_/this->Cp(p, T);
 }
 
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H
index 45b5f4d2964..0065451548a 100644
--- a/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/const/constIsoSolidTransportI.H
@@ -92,7 +92,7 @@ template<class thermo>
 inline Foam::scalar Foam::constIsoSolidTransport<thermo>::
 alphah(const scalar p, const scalar T) const
 {
-    return kappa_/this->Cpv(p, T);
+    return kappa_/this->Cp(p, T);
 }
 
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H
index ec80965b8ab..dd5e5e526f2 100644
--- a/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/exponential/exponentialSolidTransportI.H
@@ -104,7 +104,7 @@ template<class Thermo>
 inline Foam::scalar Foam::exponentialSolidTransport<Thermo>::
 alphah(const scalar p, const scalar T) const
 {
-    return kappa(p, T)/this->Cpv(p, T);
+    return kappa(p, T)/this->Cp(p, T);
 }
 
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
index 727e2be6b0a..b0cc6e03840 100644
--- a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
@@ -118,7 +118,7 @@ inline Foam::scalar Foam::polynomialSolidTransport<Thermo, PolySize>::alphah
     const scalar p, const scalar T
 ) const
 {
-    return kappa(p, T)/this->Cpv(p, T);
+    return kappa(p, T)/this->Cp(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
index 29c15536968..558c41eb481 100644
--- a/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
+++ b/src/thermophysicalModels/specie/transport/logPolynomial/logPolynomialTransportI.H
@@ -106,7 +106,7 @@ inline Foam::scalar Foam::logPolynomialTransport<Thermo, PolySize>::alphah
     const scalar p, const scalar T
 ) const
 {
-    return kappa(p, T)/this->Cpv(p, T);
+    return kappa(p, T)/this->Cp(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
index 3715ccbb185..6540d00ed44 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
@@ -106,7 +106,7 @@ inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::alphah
     const scalar p, const scalar T
 ) const
 {
-    return kappa(p, T)/this->Cpv(p, T);
+    return kappa(p, T)/this->Cp(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
index b5a0f6835f2..e9a16c4ca11 100644
--- a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
+++ b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
@@ -144,7 +144,7 @@ inline Foam::scalar Foam::sutherlandTransport<Thermo>::alphah
 ) const
 {
 
-    return kappa(p, T)/this->Cpv(p, T);
+    return kappa(p, T)/this->Cp(p, T);
 }
 
 
-- 
GitLab


From b39b90a9b5d29583d612d1154e797b256984f274 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 11 May 2017 19:33:01 +0100
Subject: [PATCH 226/277] CrankNicolsonDdtScheme: Corrected input of
 off-centering coefficient of 1

---
 .../ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index aa0937162be..e3f9e6961aa 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -308,7 +308,7 @@ CrankNicolsonDdtScheme<Type>::CrankNicolsonDdtScheme
 
     if (firstToken.isNumber())
     {
-        const scalar ocCoeff = firstToken.scalarToken();
+        const scalar ocCoeff = firstToken.number();
         if (ocCoeff < 0 || ocCoeff > 1)
         {
             FatalIOErrorInFunction
-- 
GitLab


From 3b2cd0b107a4411cdfa21e50599dc943e41f94a8 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Thu, 4 May 2017 09:39:23 +0100
Subject: [PATCH 227/277] DPMDyMFoam, DPMDyMFoam: Corrected support for
 closed-domain simulations

Also added support for extrapolated pressure boundary conditions.
---
 .../solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H      |  6 +++---
 applications/solvers/lagrangian/DPMFoam/pEqn.H        | 11 ++++++++---
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
index 2f7b843d254..dd4d382befa 100644
--- a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
@@ -1,6 +1,5 @@
 {
-    volVectorField HbyA("HbyA", Uc);
-    HbyA = rAUc*UcEqn.H();
+    volVectorField HbyA(constrainHbyA(rAUc*UcEqn.H(), Uc, p));
 
     surfaceScalarField phiHbyA
     (
@@ -8,7 +7,6 @@
         (
            fvc::flux(HbyA)
          + alphacf*rAUcf*fvc::ddtCorr(Uc, Ucf)
-         + phicForces
         )
     );
 
@@ -19,6 +17,8 @@
         fvc::makeAbsolute(phiHbyA, Uc);
     }
 
+    phiHbyA += phicForces;
+
     // Update the pressure BCs to ensure flux consistency
     constrainPressure(p, Uc, phiHbyA, rAUcf);
 
diff --git a/applications/solvers/lagrangian/DPMFoam/pEqn.H b/applications/solvers/lagrangian/DPMFoam/pEqn.H
index 9e465511221..ea0bd1c101d 100644
--- a/applications/solvers/lagrangian/DPMFoam/pEqn.H
+++ b/applications/solvers/lagrangian/DPMFoam/pEqn.H
@@ -1,6 +1,5 @@
 {
-    volVectorField HbyA("HbyA", Uc);
-    HbyA = rAUc*UcEqn.H();
+    volVectorField HbyA(constrainHbyA(rAUc*UcEqn.H(), Uc, p));
 
     surfaceScalarField phiHbyA
     (
@@ -8,10 +7,16 @@
         (
            fvc::flux(HbyA)
          + alphacf*rAUcf*fvc::ddtCorr(Uc, phic)
-         + phicForces
         )
     );
 
+    if (p.needReference())
+    {
+        adjustPhi(phiHbyA, Uc, p);
+    }
+
+    phiHbyA += phicForces;
+
     // Update the pressure BCs to ensure flux consistency
     constrainPressure(p, Uc, phiHbyA, rAUcf);
 
-- 
GitLab


From ff132ff5f6c44a05c462762ac5ab003f54f184ce Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 4 May 2017 15:32:51 +0100
Subject: [PATCH 228/277] ENH: orientedFields - updated mapping and parallel
 utils

---
 ...parFvFieldReconstructorReconstructFields.C | 18 +++-
 .../GeometricField/MapGeometricFields.H       | 44 +++------
 .../fvMeshSubset/fvMeshSubsetInterpolate.C    |  9 +-
 .../fvFieldMappers/MapFvSurfaceField.H        | 24 +++--
 .../mapping/fvFieldMappers/MapFvVolField.H    |  4 +-
 .../decompose/decompose/fvFieldDecomposer.C   | 97 +++++++++----------
 .../decompose/decompose/fvFieldDecomposer.H   |  9 +-
 .../fvFieldDecomposerDecomposeFields.C        | 53 ++++++----
 .../fvFieldReconstructorReconstructFields.C   | 18 +++-
 9 files changed, 150 insertions(+), 126 deletions(-)

diff --git a/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C b/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C
index 6f1ebfd8a45..c561dc71839 100644
--- a/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C
+++ b/applications/utilities/parallelProcessing/redistributePar/parFvFieldReconstructorReconstructFields.C
@@ -66,7 +66,7 @@ Foam::parFvFieldReconstructor::reconstructFvVolumeInternalField
         IOobject::NO_WRITE
     );
 
-    return tmp<DimensionedField<Type, volMesh>>
+    tmp<DimensionedField<Type, volMesh>> tfield
     (
         new DimensionedField<Type, volMesh>
         (
@@ -76,6 +76,10 @@ Foam::parFvFieldReconstructor::reconstructFvVolumeInternalField
             internalField
         )
     );
+
+    tfield.ref().oriented() = fld.oriented();
+
+    return tfield;
 }
 
 
@@ -209,7 +213,7 @@ Foam::parFvFieldReconstructor::reconstructFvVolumeField
         IOobject::NO_WRITE
     );
 
-    return tmp<GeometricField<Type, fvPatchField, volMesh>>
+    tmp<GeometricField<Type, fvPatchField, volMesh>> tfield
     (
         new GeometricField<Type, fvPatchField, volMesh>
         (
@@ -220,6 +224,10 @@ Foam::parFvFieldReconstructor::reconstructFvVolumeField
             basePatchFields
         )
     );
+
+    tfield.ref().oriented()= fld.oriented();
+
+    return tfield;
 }
 
 
@@ -372,7 +380,7 @@ Foam::parFvFieldReconstructor::reconstructFvSurfaceField
         IOobject::NO_WRITE
     );
 
-    return tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>
+    tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tfield
     (
         new GeometricField<Type, fvsPatchField, surfaceMesh>
         (
@@ -383,6 +391,10 @@ Foam::parFvFieldReconstructor::reconstructFvSurfaceField
             basePatchFields
         )
     );
+
+    tfield.ref().oriented() = fld.oriented();
+
+    return tfield;
 }
 
 
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/MapGeometricFields.H b/src/OpenFOAM/fields/GeometricFields/GeometricField/MapGeometricFields.H
index 93a47eda9fe..864318a4b00 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/MapGeometricFields.H
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/MapGeometricFields.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -51,7 +51,7 @@ public:
 
     void operator()
     (
-        Field<Type>& field,
+        DimensionedField<Type, GeoMesh>& field,
         const MeshMapper& mapper
     ) const;
 };
@@ -72,10 +72,12 @@ void MapGeometricFields
     const MeshMapper& mapper
 )
 {
-    HashTable<const GeometricField<Type, PatchField, GeoMesh>*> fields
+    typedef GeometricField<Type, PatchField, GeoMesh> FieldType;
+
+    HashTable<const FieldType*> fields
     (
         mapper.thisDb().objectRegistry::template
-            lookupClass<GeometricField<Type, PatchField, GeoMesh>>()
+            lookupClass<FieldType>()
     );
 
     // It is necessary to enforce that all old-time fields are stored
@@ -83,17 +85,9 @@ void MapGeometricFields
     // old-time-level field is mapped before the field itself, sizes
     // will not match.
 
-    for
-    (
-        typename HashTable<const GeometricField<Type, PatchField, GeoMesh>*>::
-            iterator fieldIter = fields.begin();
-        fieldIter != fields.end();
-        ++fieldIter
-    )
+    forAllConstIter(typename HashTable<const FieldType*>, fields, fieldIter)
     {
-        GeometricField<Type, PatchField, GeoMesh>& field =
-            const_cast<GeometricField<Type, PatchField, GeoMesh>&>
-            (*fieldIter());
+        FieldType& field = const_cast<FieldType&>(*fieldIter());
 
         //Note: check can be removed once pointFields are actually stored on
         //      the pointMesh instead of now on the polyMesh!
@@ -103,17 +97,9 @@ void MapGeometricFields
         }
     }
 
-    for
-    (
-        typename HashTable<const GeometricField<Type, PatchField, GeoMesh>*>::
-            iterator fieldIter = fields.begin();
-        fieldIter != fields.end();
-        ++fieldIter
-    )
+    forAllConstIter(typename HashTable<const FieldType*>, fields, fieldIter)
     {
-        GeometricField<Type, PatchField, GeoMesh>& field =
-            const_cast<GeometricField<Type, PatchField, GeoMesh>&>
-            (*fieldIter());
+        FieldType& field = const_cast<FieldType&>(*fieldIter());
 
         if (&field.mesh() == &mapper.mesh())
         {
@@ -124,15 +110,11 @@ void MapGeometricFields
             }
 
             // Map the internal field
-            MapInternalField<Type, MeshMapper, GeoMesh>()
-            (
-                field.primitiveFieldRef(),
-                mapper
-            );
+            MapInternalField<Type, MeshMapper, GeoMesh>()(field.ref(), mapper);
 
             // Map the patch fields
-            typename GeometricField<Type, PatchField, GeoMesh>
-            ::Boundary& bfield = field.boundaryFieldRef();
+            typename FieldType::Boundary& bfield = field.boundaryFieldRef();
+
             forAll(bfield, patchi)
             {
                 // Cannot check sizes for patch fields because of
diff --git a/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C b/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C
index 8e5680737d2..228b7df26da 100644
--- a/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C
+++ b/src/dynamicMesh/fvMeshSubset/fvMeshSubsetInterpolate.C
@@ -102,6 +102,7 @@ tmp<GeometricField<Type, fvPatchField, volMesh>> fvMeshSubset::interpolate
         )
     );
     GeometricField<Type, fvPatchField, volMesh>& resF = tresF.ref();
+    resF.oriented() = vf.oriented();
 
 
     // 2. Change the fvPatchFields to the correct type using a mapper
@@ -183,8 +184,6 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
     const labelList& faceMap
 )
 {
-    const bool negateIfFlipped = vf.oriented()();
-
     // 1. Create the complete field with dummy patch fields
     PtrList<fvsPatchField<Type>> patchFields(patchMap.size());
 
@@ -248,6 +247,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
         )
     );
     GeometricField<Type, fvsPatchField, surfaceMesh>& resF = tresF.ref();
+    resF.oriented() = vf.oriented();
 
 
     // 2. Change the fvsPatchFields to the correct type using a mapper
@@ -311,7 +311,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
                 {
                     Type val = vf.internalField()[baseFacei];
 
-                    if (cellMap[fc[i]] == own[baseFacei] || !negateIfFlipped)
+                    if (cellMap[fc[i]] == own[baseFacei] || !vf.oriented()())
                     {
                         pfld[i] = val;
                     }
@@ -422,6 +422,7 @@ fvMeshSubset::interpolate
         )
     );
     GeometricField<Type, pointPatchField, pointMesh>& resF = tresF.ref();
+    resF.oriented() = vf.oriented();
 
 
     // 2. Change the pointPatchFields to the correct type using a mapper
@@ -531,6 +532,8 @@ tmp<DimensionedField<Type, volMesh>> fvMeshSubset::interpolate
         )
     );
 
+    tresF.ref().oriented() = df.oriented();
+
     return tresF;
 }
 
diff --git a/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H b/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H
index 40dfd16f791..f9e58e589b3 100644
--- a/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H
+++ b/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H
@@ -48,7 +48,7 @@ public:
 
     void operator()
     (
-        Field<Type>& field,
+        DimensionedField<Type, surfaceMesh>& field,
         const MeshMapper& mapper
     ) const;
 };
@@ -57,7 +57,7 @@ public:
 template<class Type, class MeshMapper>
 void MapInternalField<Type, MeshMapper, surfaceMesh>::operator()
 (
-    Field<Type>& field,
+    DimensionedField<Type, surfaceMesh>& field,
     const MeshMapper& mapper
 ) const
 {
@@ -69,16 +69,22 @@ void MapInternalField<Type, MeshMapper, surfaceMesh>::operator()
            << abort(FatalError);
     }
 
-    field.autoMap(mapper.surfaceMap());
+    // Passing in oriented flag so that oriented fields (e.g. phi) are negated
+    // if flipped.  Un-oriented fields, e.g U interpolated to faces (Uf) are not
+    // touched
+    field.autoMap(mapper.surfaceMap(), field.oriented().oriented());
 
-    // Flip the flux
-    const labelList flipFaces = mapper.surfaceMap().flipFaceFlux().toc();
-
-    forAll(flipFaces, i)
+    if (field.oriented().oriented())
     {
-        if (flipFaces[i] < field.size())
+        // Flip the flux
+        const labelList flipFaces = mapper.surfaceMap().flipFaceFlux().toc();
+
+        forAll(flipFaces, i)
         {
-            field[flipFaces[i]] *= -1.0;
+            if (flipFaces[i] < field.size())
+            {
+                field[flipFaces[i]] *= -1.0;
+            }
         }
     }
 }
diff --git a/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvVolField.H b/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvVolField.H
index db8c9ce72b8..f23517342fc 100644
--- a/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvVolField.H
+++ b/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvVolField.H
@@ -48,7 +48,7 @@ public:
 
     void operator()
     (
-        Field<Type>& field,
+        DimensionedField<Type, volMesh>& field,
         const MeshMapper& mapper
     ) const;
 };
@@ -57,7 +57,7 @@ public:
 template<class Type, class MeshMapper>
 void MapInternalField<Type, MeshMapper, volMesh>::operator()
 (
-    Field<Type>& field,
+    DimensionedField<Type, volMesh>& field,
     const MeshMapper& mapper
 ) const
 {
diff --git a/src/parallel/decompose/decompose/fvFieldDecomposer.C b/src/parallel/decompose/decompose/fvFieldDecomposer.C
index 310d0ce1fec..8ff6ee3e06e 100644
--- a/src/parallel/decompose/decompose/fvFieldDecomposer.C
+++ b/src/parallel/decompose/decompose/fvFieldDecomposer.C
@@ -107,7 +107,7 @@ processorSurfacePatchFieldDecomposer
         weights_[i].setSize(1);
 
         addressing_[i][0] = mag(addressingSlice[i]) - 1;
-        weights_[i][0] = sign(addressingSlice[i]);
+        weights_[i][0] = 1;
     }
 }
 
@@ -126,59 +126,75 @@ Foam::fvFieldDecomposer::fvFieldDecomposer
     faceAddressing_(faceAddressing),
     cellAddressing_(cellAddressing),
     boundaryAddressing_(boundaryAddressing),
-    patchFieldDecomposerPtrs_
-    (
-        procMesh_.boundary().size(),
-        static_cast<patchFieldDecomposer*>(nullptr)
-    ),
-    processorVolPatchFieldDecomposerPtrs_
-    (
-        procMesh_.boundary().size(),
-        static_cast<processorVolPatchFieldDecomposer*>(nullptr)
-    ),
-    processorSurfacePatchFieldDecomposerPtrs_
-    (
-        procMesh_.boundary().size(),
-        static_cast<processorSurfacePatchFieldDecomposer*>(nullptr)
-    )
+    patchFieldDecomposerPtrs_(procMesh_.boundary().size()),
+    processorVolPatchFieldDecomposerPtrs_(procMesh_.boundary().size()),
+    processorSurfacePatchFieldDecomposerPtrs_(procMesh_.boundary().size()),
+    faceSign_(procMesh_.boundary().size())
 {
     forAll(boundaryAddressing_, patchi)
     {
+        const fvPatch& fvp = procMesh_.boundary()[patchi];
+
         if
         (
             boundaryAddressing_[patchi] >= 0
         && !isA<processorLduInterface>(procMesh.boundary()[patchi])
         )
         {
-            patchFieldDecomposerPtrs_[patchi] = new patchFieldDecomposer
+            patchFieldDecomposerPtrs_.set
             (
-                procMesh_.boundary()[patchi].patchSlice(faceAddressing_),
-                completeMesh_.boundaryMesh()
-                [
-                    boundaryAddressing_[patchi]
-                ].start()
+                patchi,
+                new patchFieldDecomposer
+                (
+                    fvp.patchSlice(faceAddressing_),
+                    completeMesh_.boundaryMesh()
+                    [
+                        boundaryAddressing_[patchi]
+                    ].start()
+                )
             );
         }
         else
         {
-            processorVolPatchFieldDecomposerPtrs_[patchi] =
+            processorVolPatchFieldDecomposerPtrs_.set
+            (
+                patchi,
                 new processorVolPatchFieldDecomposer
                 (
                     completeMesh_,
-                    procMesh_.boundary()[patchi].patchSlice(faceAddressing_)
-                );
+                    fvp.patchSlice(faceAddressing_)
+                )
+            );
 
-            processorSurfacePatchFieldDecomposerPtrs_[patchi] =
+            processorSurfacePatchFieldDecomposerPtrs_.set
+            (
+                patchi,
                 new processorSurfacePatchFieldDecomposer
                 (
                     static_cast<const labelUList&>
                     (
-                        procMesh_.boundary()[patchi].patchSlice
+                        fvp.patchSlice
                         (
                             faceAddressing_
                         )
                     )
-                );
+                )
+            );
+
+            faceSign_.set
+            (
+                patchi,
+                new scalarField(fvp.patchSlice(faceAddressing_).size())
+            );
+
+            {
+                const SubList<label> fa = fvp.patchSlice(faceAddressing_);
+                scalarField& s = faceSign_[patchi];
+                forAll(s, i)
+                {
+                    s[i] = sign(fa[i]);
+                }
+            }
         }
     }
 }
@@ -187,30 +203,7 @@ Foam::fvFieldDecomposer::fvFieldDecomposer
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::fvFieldDecomposer::~fvFieldDecomposer()
-{
-    forAll(patchFieldDecomposerPtrs_, patchi)
-    {
-        if (patchFieldDecomposerPtrs_[patchi])
-        {
-            delete patchFieldDecomposerPtrs_[patchi];
-        }
-    }
+{}
 
-    forAll(processorVolPatchFieldDecomposerPtrs_, patchi)
-    {
-        if (processorVolPatchFieldDecomposerPtrs_[patchi])
-        {
-            delete processorVolPatchFieldDecomposerPtrs_[patchi];
-        }
-    }
-
-    forAll(processorSurfacePatchFieldDecomposerPtrs_, patchi)
-    {
-        if (processorSurfacePatchFieldDecomposerPtrs_[patchi])
-        {
-            delete processorSurfacePatchFieldDecomposerPtrs_[patchi];
-        }
-    }
-}
 
 // ************************************************************************* //
diff --git a/src/parallel/decompose/decompose/fvFieldDecomposer.H b/src/parallel/decompose/decompose/fvFieldDecomposer.H
index c6953b37a4a..b4193edc97a 100644
--- a/src/parallel/decompose/decompose/fvFieldDecomposer.H
+++ b/src/parallel/decompose/decompose/fvFieldDecomposer.H
@@ -215,15 +215,18 @@ private:
         const labelList& boundaryAddressing_;
 
         //- List of patch field decomposers
-        List<patchFieldDecomposer*> patchFieldDecomposerPtrs_;
+        PtrList<patchFieldDecomposer> patchFieldDecomposerPtrs_;
 
-        List<processorVolPatchFieldDecomposer*>
+        PtrList<processorVolPatchFieldDecomposer>
             processorVolPatchFieldDecomposerPtrs_;
 
-        List<processorSurfacePatchFieldDecomposer*>
+        PtrList<processorSurfacePatchFieldDecomposer>
             processorSurfacePatchFieldDecomposerPtrs_;
 
 
+        PtrList<scalarField> faceSign_;
+
+
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
diff --git a/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C b/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C
index a5e87d2097c..ab231a939b6 100644
--- a/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C
+++ b/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C
@@ -40,6 +40,8 @@ Foam::fvFieldDecomposer::decomposeField
     const bool allowUnknownPatchFields
 ) const
 {
+    typedef GeometricField<Type, fvPatchField, volMesh> VolFieldType;
+
     // 1. Create the complete field with dummy patch fields
     PtrList<fvPatchField<Type>> patchFields(boundaryAddressing_.size());
 
@@ -58,9 +60,9 @@ Foam::fvFieldDecomposer::decomposeField
     }
 
     // Create the field for the processor
-    tmp<GeometricField<Type, fvPatchField, volMesh>> tresF
+    tmp<VolFieldType> tresF
     (
-        new GeometricField<Type, fvPatchField, volMesh>
+        new VolFieldType
         (
             IOobject
             (
@@ -76,18 +78,18 @@ Foam::fvFieldDecomposer::decomposeField
             patchFields
         )
     );
-    GeometricField<Type, fvPatchField, volMesh>& resF = tresF.ref();
+    VolFieldType& resF = tresF.ref();
+    resF.oriented() = field().oriented();
 
 
     // 2. Change the fvPatchFields to the correct type using a mapper
     //  constructor (with reference to the now correct internal field)
 
-    typename GeometricField<Type, fvPatchField, volMesh>::
-        Boundary& bf = resF.boundaryFieldRef();
+    typename VolFieldType::Boundary& bf = resF.boundaryFieldRef();
 
     forAll(bf, patchi)
     {
-        if (patchFieldDecomposerPtrs_[patchi])
+        if (patchFieldDecomposerPtrs_.set(patchi))
         {
             bf.set
             (
@@ -97,7 +99,7 @@ Foam::fvFieldDecomposer::decomposeField
                     field.boundaryField()[boundaryAddressing_[patchi]],
                     procMesh_.boundary()[patchi],
                     resF(),
-                    *patchFieldDecomposerPtrs_[patchi]
+                    patchFieldDecomposerPtrs_[patchi]
                 )
             );
         }
@@ -113,7 +115,7 @@ Foam::fvFieldDecomposer::decomposeField
                     Field<Type>
                     (
                         field.primitiveField(),
-                        *processorVolPatchFieldDecomposerPtrs_[patchi]
+                        processorVolPatchFieldDecomposerPtrs_[patchi]
                     )
                 )
             );
@@ -130,7 +132,7 @@ Foam::fvFieldDecomposer::decomposeField
                     Field<Type>
                     (
                         field.primitiveField(),
-                        *processorVolPatchFieldDecomposerPtrs_[patchi]
+                        processorVolPatchFieldDecomposerPtrs_[patchi]
                     )
                 )
             );
@@ -166,6 +168,8 @@ Foam::fvFieldDecomposer::decomposeField
     const GeometricField<Type, fvsPatchField, surfaceMesh>& field
 ) const
 {
+    typedef GeometricField<Type, fvsPatchField, surfaceMesh> SurfaceFieldType;
+
     labelList mapAddr
     (
         labelList::subList
@@ -200,7 +204,7 @@ Foam::fvFieldDecomposer::decomposeField
 
     forAll(field.boundaryField(), patchi)
     {
-        const Field<Type> & p = field.boundaryField()[patchi];
+        const Field<Type>& p = field.boundaryField()[patchi];
 
         const label patchStart = field.mesh().boundaryMesh()[patchi].start();
 
@@ -228,9 +232,9 @@ Foam::fvFieldDecomposer::decomposeField
         );
     }
 
-    tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tresF
+    tmp<SurfaceFieldType> tresF
     (
-        new GeometricField<Type, fvsPatchField, surfaceMesh>
+        new SurfaceFieldType
         (
             IOobject
             (
@@ -246,18 +250,17 @@ Foam::fvFieldDecomposer::decomposeField
             patchFields
         )
     );
-    GeometricField<Type, fvsPatchField, surfaceMesh>& resF = tresF.ref();
-
+    SurfaceFieldType& resF = tresF.ref();
+    resF.oriented() = field().oriented();
 
     // 2. Change the fvsPatchFields to the correct type using a mapper
     //  constructor (with reference to the now correct internal field)
 
-    typename GeometricField<Type, fvsPatchField, surfaceMesh>::
-        Boundary& bf = resF.boundaryFieldRef();
+    typename SurfaceFieldType::Boundary& bf = resF.boundaryFieldRef();
 
     forAll(boundaryAddressing_, patchi)
     {
-        if (patchFieldDecomposerPtrs_[patchi])
+        if (patchFieldDecomposerPtrs_.set(patchi))
         {
             bf.set
             (
@@ -267,7 +270,7 @@ Foam::fvFieldDecomposer::decomposeField
                     field.boundaryField()[boundaryAddressing_[patchi]],
                     procMesh_.boundary()[patchi],
                     resF(),
-                    *patchFieldDecomposerPtrs_[patchi]
+                    patchFieldDecomposerPtrs_[patchi]
                 )
             );
         }
@@ -283,10 +286,15 @@ Foam::fvFieldDecomposer::decomposeField
                     Field<Type>
                     (
                         allFaceField,
-                        *processorSurfacePatchFieldDecomposerPtrs_[patchi]
+                        processorSurfacePatchFieldDecomposerPtrs_[patchi]
                     )
                 )
             );
+
+            if (resF.oriented().oriented())
+            {
+                bf[patchi] *= faceSign_[patchi];
+            }
         }
         else if (isA<processorFvPatch>(procMesh_.boundary()[patchi]))
         {
@@ -300,10 +308,15 @@ Foam::fvFieldDecomposer::decomposeField
                     Field<Type>
                     (
                         allFaceField,
-                        *processorSurfacePatchFieldDecomposerPtrs_[patchi]
+                        processorSurfacePatchFieldDecomposerPtrs_[patchi]
                     )
                 )
             );
+
+            if (resF.oriented().oriented())
+            {
+                bf[patchi] *= faceSign_[patchi];
+            }
         }
         else
         {
diff --git a/src/parallel/reconstruct/reconstruct/fvFieldReconstructorReconstructFields.C b/src/parallel/reconstruct/reconstruct/fvFieldReconstructorReconstructFields.C
index 88a8d1b5320..e7bd26b2cc9 100644
--- a/src/parallel/reconstruct/reconstruct/fvFieldReconstructorReconstructFields.C
+++ b/src/parallel/reconstruct/reconstruct/fvFieldReconstructorReconstructFields.C
@@ -56,7 +56,7 @@ Foam::fvFieldReconstructor::reconstructFvVolumeInternalField
         );
     }
 
-    return tmp<DimensionedField<Type, volMesh>>
+    tmp<DimensionedField<Type, volMesh>> tfield
     (
         new DimensionedField<Type, volMesh>
         (
@@ -66,6 +66,10 @@ Foam::fvFieldReconstructor::reconstructFvVolumeInternalField
             internalField
         )
     );
+
+    tfield.ref().oriented() = procFields[0].oriented();
+
+    return tfield;
 }
 
 
@@ -282,7 +286,7 @@ Foam::fvFieldReconstructor::reconstructFvVolumeField
 
     // Now construct and write the field
     // setting the internalField and patchFields
-    return tmp<GeometricField<Type, fvPatchField, volMesh>>
+    tmp<GeometricField<Type, fvPatchField, volMesh>> tfield
     (
         new GeometricField<Type, fvPatchField, volMesh>
         (
@@ -293,6 +297,10 @@ Foam::fvFieldReconstructor::reconstructFvVolumeField
             patchFields
         )
     );
+
+    tfield.ref().oriented() = procFields[0].oriented();
+
+    return tfield;
 }
 
 
@@ -523,7 +531,7 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
 
     // Now construct and write the field
     // setting the internalField and patchFields
-    return tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>
+    tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tfield
     (
         new GeometricField<Type, fvsPatchField, surfaceMesh>
         (
@@ -534,6 +542,10 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
             patchFields
         )
     );
+
+    tfield.ref().oriented() = procFields[0].oriented();
+
+    return tfield;
 }
 
 
-- 
GitLab


From 0e7630fecac61cb4c83a94b118dc80230ee9b31d Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 8 May 2017 14:57:47 +0200
Subject: [PATCH 229/277] ENH: improved handling of 'unresolved' surface
 intersections (issue #450)

- the heuristic for matching unresolved intersections is a relatively
  simple matching scheme that seems to be more robust than attempting to walk
  the geometry or the cuts.

- avoid false positives for self intersection
---
 .../test/surfaceIntersection/Make/options     |   6 +-
 .../Test-surfaceIntersection.C                |  21 +-
 .../surfaceBooleanFeatures.C                  |   7 +-
 .../surfaceFeaturesExtraction.C               |   2 +-
 .../surfaceFeatureExtract.C                   |  12 +-
 .../surfaceFeatureExtractDict                 |  37 +-
 .../surfaceSplitNonManifolds.C                |   3 +-
 .../intersectedSurface/edgeSurface.C          |  75 +---
 .../intersectedSurface/edgeSurface.H          |  13 -
 .../surfaceIntersection/surfaceIntersection.C | 403 ++++++++++++------
 .../surfaceIntersection/surfaceIntersection.H |  64 +--
 .../surfaceIntersectionFuncs.C                |  34 +-
 12 files changed, 382 insertions(+), 295 deletions(-)

diff --git a/applications/test/surfaceIntersection/Make/options b/applications/test/surfaceIntersection/Make/options
index 6ae6c04df12..b7fa8b23261 100644
--- a/applications/test/surfaceIntersection/Make/options
+++ b/applications/test/surfaceIntersection/Make/options
@@ -1,9 +1,7 @@
 EXE_INC = \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude
 
 EXE_LIBS = \
-    -lfiniteVolume \
-    -lmeshTools -ledgeMesh
+    -lmeshTools
diff --git a/applications/test/surfaceIntersection/Test-surfaceIntersection.C b/applications/test/surfaceIntersection/Test-surfaceIntersection.C
index 8c0f83f641e..ddf122f60a9 100644
--- a/applications/test/surfaceIntersection/Test-surfaceIntersection.C
+++ b/applications/test/surfaceIntersection/Test-surfaceIntersection.C
@@ -34,7 +34,7 @@ Description
 #include "triSurface.H"
 #include "triSurfaceMesh.H"
 #include "surfaceIntersection.H"
-#include "OFstream.H"
+#include "OBJstream.H"
 
 using namespace Foam;
 
@@ -172,7 +172,7 @@ int main(int argc, char *argv[])
     {
         Info<< "surf1-cuts: " << cuts.surf1EdgeCuts() << nl
             << "surf2-cuts: " << cuts.surf2EdgeCuts() << nl
-            << "face-pairs: " << cuts.facePairToEdge() << nl
+            << "face-pairs: " << cuts.facePairToEdgeId() << nl
             << "edges: " << cuts.cutEdges() << nl;
     }
 
@@ -198,7 +198,7 @@ int main(int argc, char *argv[])
         {
             Info<< "surf1-cuts: " << cuts.surf1EdgeCuts() << nl
                 << "surf2-cuts: " << cuts.surf2EdgeCuts() << nl
-                << "face-pairs: " << cuts.facePairToEdge() << nl
+                << "face-pairs: " << cuts.facePairToEdgeId() << nl
                 << "edges: " << cuts.cutEdges() << nl;
         }
     }
@@ -209,20 +209,7 @@ int main(int argc, char *argv[])
     if (points.size() || edges.size())
     {
         Info<<"write to " << outputFile << nl;
-
-        OFstream os(outputFile);
-
-        forAll(points, pointi)
-        {
-            const point& pt = points[pointi];
-            os << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z() << nl;
-        }
-
-        forAll(edges, edgei)
-        {
-            const edge& e = edges[edgei];
-            os << "l " << e.start()+1 << ' ' << e.end()+1 << nl;
-        }
+        OBJstream(outputFile).write(edges, points);
     }
 
     Info<< "End\n" << endl;
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
index 02d0b0c8e63..1d0dfae584a 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
+++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
@@ -99,7 +99,7 @@ typedef CGAL::AABB_face_graph_triangle_primitive
 typedef CGAL::AABB_traits<K, Primitive> Traits;
 typedef CGAL::AABB_tree<Traits> Tree;
 
-typedef boost::optional<Tree::Intersection_and_primitive_id<Segment>::Type >
+typedef boost::optional<Tree::Intersection_and_primitive_id<Segment>::Type>
 Segment_intersection;
 
 #endif // NO_CGAL
@@ -477,7 +477,6 @@ label dupNonManifoldPoints(triSurface& s, labelList& pointMap)
     List<labelledTri> newFaces(s);
     label nNonManifold = 0;
 
-
     forAll(pf, pointI)
     {
         const labelList& pFaces = pf[pointI];
@@ -1257,10 +1256,10 @@ autoPtr<extendedFeatureEdgeMesh> createEdgeMesh
     const triSurface& s1 = surf1;
     const triSurface& s2 = surf2;
 
-    forAllConstIter(labelPairLookup, inter.facePairToEdge(), iter)
+    forAllConstIters(inter.facePairToEdgeId(), iter)
     {
-        const label& cutEdgeI = iter();
         const labelPair& facePair = iter.key();
+        const label cutEdgeI = iter.object();
 
         const edge& fE = inter.cutEdges()[cutEdgeI];
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
index 95a1c1b0280..28bd8f092d7 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
@@ -73,7 +73,7 @@ Foam::surfaceFeaturesExtraction::method::New
     dictionaryConstructorTable::iterator cstrIter =
         dictionaryConstructorTablePtr_->find(methodName);
 
-    if (cstrIter == dictionaryConstructorTablePtr_->end())
+    if (!cstrIter.found())
     {
         FatalIOErrorInFunction
         (
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index 1ea773f16b4..29187c7cfe3 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -84,6 +84,8 @@ int main(int argc, char *argv[])
 
     forAllConstIter(dictionary, dict, iter)
     {
+        const word& dictName = iter().keyword();
+
         if (!iter().isDict())
         {
             continue;
@@ -106,7 +108,7 @@ int main(int argc, char *argv[])
         const word outputName =
             fileName
             (
-                surfaceDict.lookupOrDefault<word>("output", iter().keyword())
+                surfaceDict.lookupOrDefault<word>("output", dictName)
             ).lessExt();
 
         // The "surfaces" entry is normally optional, but if the sub-dictionary
@@ -115,7 +117,7 @@ int main(int argc, char *argv[])
         // additional switch.
         if
         (
-            iter().keyword() == "surfaces"  // mandatory
+            dictName == "surfaces"  // mandatory
          || surfaceDict.found("surfaces")   // or optional
         )
         {
@@ -123,14 +125,14 @@ int main(int argc, char *argv[])
         }
         else
         {
-            loader.select(iter().keyword());
+            loader.select(dictName);
         }
 
         if (loader.selected().empty())
         {
             FatalErrorInFunction
                 << "No surfaces specified/found for entry: "
-                << iter().keyword() << exit(FatalError);
+                << dictName << exit(FatalError);
         }
         // DebugVar(loader.available());
         // DebugVar(outputName);
@@ -153,7 +155,7 @@ int main(int argc, char *argv[])
         {
             FatalErrorInFunction
                 << "Problem loading surface(s) for entry: "
-                << iter().keyword() << exit(FatalError);
+                << dictName << exit(FatalError);
         }
 
         triSurface surf = surfPtr();
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
index d04bbc7958f..362e7f99eef 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
@@ -134,7 +134,7 @@ surface2.nas
 // - If other dictionaries contain a 'surfaces' entry,
 //   it will be taken for the input.
 //
-surfaces
+dummyName
 {
     extractionMethod    extractFromSurface;
 
@@ -169,4 +169,39 @@ surfaces
         writeObj        yes;
 }
 
+
+// Handle single or multiple surfaces
+//
+// - If the dictionary is named 'surfaces', it must also contain a 'surfaces'
+//   entry (wordRe list).
+//
+// - If other dictionaries contain a 'surfaces' entry,
+//   it will be taken for the input.
+//
+surfaces
+{
+    extractionMethod    extractFromNone;
+
+    surfaces            (surface1.stl surface2.nas);
+
+    // Base output name (optional)
+    // output              surfaces;
+
+    // Generate additional features from self-intersect
+    selfIntersection    true;
+
+    // Tolerance for surface intersections
+    tolerance           1e-3;
+
+    extractFromNoneCoeffs
+    {
+        includedAngle   0;
+    }
+
+    // Write options
+
+    // Write features to obj format for postprocessing
+    writeObj        yes;
+}
+
 // ************************************************************************* //
diff --git a/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C b/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C
index 65dd086cd3a..47a83a09f22 100644
--- a/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C
+++ b/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C
@@ -129,8 +129,7 @@ void dumpFaces
     const Map<label>& connectedFaces
 )
 {
-    Info<< "Dumping connectedFaces as Lightwave .obj file to " << fName
-        << "\nThis can be visualized with e.g. javaview (www.javaview.de)\n\n";
+    Info<< "Dumping connectedFaces as .obj file to " << fName << nl;
 
     OFstream os(fName);
 
diff --git a/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C b/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C
index 87405317a2a..8491d6dee1a 100644
--- a/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C
+++ b/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C
@@ -27,56 +27,37 @@ License
 #include "triSurface.H"
 #include "surfaceIntersection.H"
 #include "meshTools.H"
-#include "OFstream.H"
+#include "OBJstream.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
 defineTypeNameAndDebug(edgeSurface, 0);
-}
-
-
-// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-// Write whole pointField and edges to stream
-void Foam::edgeSurface::writeOBJ
-(
-    const pointField& points,
-    const edgeList& edges,
-    Ostream& os
-)
+// file-scope
+// Write points in obj format
+static void writeObjPoints(const UList<point>& pts, Ostream& os)
 {
-    forAll(points, pointi)
+    forAll(pts, i)
     {
-        const point& pt = points[pointi];
-
-        os << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z() << endl;
-    }
-    forAll(edges, edgeI)
-    {
-        const edge& e = edges[edgeI];
-
-        os << "l " << e.start()+1 << ' ' << e.end()+1 << endl;
+        const point& pt = pts[i];
+        os << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z() << nl;
     }
 }
 
 
 // Write whole pointField and selected edges to stream
-void Foam::edgeSurface::writeOBJ
+void writeObjEdges
 (
-    const pointField& points,
+    const UList<point>& points,
     const edgeList& edges,
     const labelList& edgeLabels,
     Ostream& os
 )
 {
-    forAll(points, pointi)
-    {
-        const point& pt = points[pointi];
+    writeObjPoints(points, os);
 
-        os << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z() << endl;
-    }
     forAll(edgeLabels, i)
     {
         const edge& e = edges[edgeLabels[i]];
@@ -85,6 +66,10 @@ void Foam::edgeSurface::writeOBJ
     }
 }
 
+} // End namespace Foam
+
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 // Pointedges in edgeSurface indices only.
 void Foam::edgeSurface::calcPointEdges()
@@ -253,29 +238,16 @@ Foam::edgeSurface::edgeSurface
     }
 
 
-
-
     // Add intersection edges to faceEdges
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    forAllConstIter(labelPairLookup, inter.facePairToEdge(), iter)
+    forAllConstIters(inter.facePairToEdgeId(), iter)
     {
-        // Edge label in intersection
-        const label edgeI = iter();
-
-        // Get the face from the correct surface
-        const FixedList<label, 2>& twoFaces = iter.key();
+        // The faceId from the correct surface
+        const label facei = iter.key()[isFirstSurface ? 0 : 1];
 
-        label facei;
-
-        if (isFirstSurface)
-        {
-            facei = twoFaces[0];
-        }
-        else
-        {
-            facei = twoFaces[1];
-        }
+        // Edge label in intersection
+        const label edgeI = iter.object();
 
         // Store on face-edge addressing. (note: offset edge)
         allFaceEdges[facei].append(edgeI + nSurfaceEdges_);
@@ -312,18 +284,17 @@ Foam::edgeSurface::edgeSurface
                     << " to " << faceFName << endl;
 
                 OFstream fStream(faceFName);
-                writeOBJ(points_, edges_, fEdges, fStream);
+                writeObjEdges(points_, edges_, fEdges, fStream);
             }
         }
 
         Pout<< "edgeSurface : Dumping edges to edges.obj" << endl;
-        OFstream eStream("edges.obj");
-        writeOBJ(points_, edges_, eStream);
+        OBJstream("edges.obj").write(edges_, points_);
 
         Pout<< "edgeSurface : Dumping intersectionEdges to"
             << " intersectionEdges.obj" << endl;
-        OFstream intEdgesStream("intersectionEdges.obj");
 
+        OFstream intEdgesStream("intersectionEdges.obj");
         labelList edgeLabels(edges_.size() - nSurfaceEdges_);
 
         label i = 0;
@@ -332,7 +303,7 @@ Foam::edgeSurface::edgeSurface
             edgeLabels[i++] = edgeI;
         }
 
-        writeOBJ(points_, edges_, edgeLabels, intEdgesStream);
+        writeObjEdges(points_, edges_, edgeLabels, intEdgesStream);
     }
 }
 
diff --git a/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.H b/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.H
index d8564be949c..76c83ee2edb 100644
--- a/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.H
+++ b/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.H
@@ -93,25 +93,12 @@ private:
         //- From face to our edges_
         labelListList faceEdges_;
 
-
         //- Constructed from above: pointEdges
         labelListList pointEdges_;
 
 
     // Private Member Functions
 
-        //- Dump edges in obj format
-        static void writeOBJ(const pointField&, const edgeList&, Ostream&);
-
-        //- Dump selected edges in obj format
-        static void writeOBJ
-        (
-            const pointField&,
-            const edgeList&,
-            const labelList&,
-            Ostream&
-        );
-
         //- Calculate pointEdges
         void calcPointEdges();
 
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
index 737387a5e1f..5592d95362f 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
@@ -25,7 +25,7 @@ License
 
 #include "surfaceIntersection.H"
 #include "triSurfaceSearch.H"
-#include "OFstream.H"
+#include "OBJstream.H"
 #include "labelPairHashes.H"
 #include "triSurface.H"
 #include "pointIndexHit.H"
@@ -47,7 +47,7 @@ void Foam::surfaceIntersection::setOptions(const dictionary& dict)
 {
     dict.readIfPresent("tolerance",       tolerance_);
     dict.readIfPresent("allowEdgeHits",   allowEdgeHits_);
-    dict.readIfPresent("avoidDuplicates", avoidDuplicates_);
+    dict.readIfPresent("snap",            snapToEnd_);
     dict.readIfPresent("warnDegenerate",  warnDegenerate_);
 }
 
@@ -101,42 +101,64 @@ void Foam::surfaceIntersection::storeIntersection
             }
         }
 
-        labelPairLookup::const_iterator iter = facePairToVertex_.find(twoFaces);
 
-        if (iter == facePairToVertex_.end())
+        // Get existing edge, or create a null edge (with -1)
+        edge& thisEdge = facePairToEdge_(twoFaces);
+        const label pointCount = thisEdge.count();
+
+        if (pointCount == 0)
         {
-            // New intersection. Store face-face intersection.
+            // First intersection of the faces - record it.
+            thisEdge.insert(cutPointId);
+
             if (debug & 4)
             {
                 Pout<< "intersect faces " << twoFaces
                     << " point-1: " << cutPointId << " = "
                     << allCutPoints[cutPointId] << endl;
             }
-
-            facePairToVertex_.insert(twoFaces, cutPointId);
+            continue;
         }
-        else if (*iter == cutPointId)
+        else if (pointCount == 2)
         {
-            // Avoid creating an edge if cutPointId had already been used
-
+            // This occurs for ugly surfaces with shards that result in multiple
+            // cuts very near a snapped end point.
             if (debug & 4)
             {
-                Pout<< "intersect faces " << twoFaces
-                    << " dup-point: " << cutPointId << endl;
+                Pout<< "suppressed double intersection " << twoFaces
+                    << thisEdge << endl;
             }
+            continue;
         }
-        else
-        {
-            const label nextEdgeId = allCutEdges.size();
-            const edge nextEdge(*iter, cutPointId, true);
 
-            // Second occurrence of surf1-surf2 intersection.
-            // Or rather the face on surf1 intersects a face on
-            // surface2 twice -> we found edge.
+        if (thisEdge.insert(cutPointId))
+        {
+            // Second intersection of the faces - this is an edge,
+            // with special treatment:
+            // - avoid duplicate points: addressed by the insert() above
+            // - avoid degenerate lengths
+            // - avoid duplicate edges - can occur with really dirty geometry
 
-            // Check whether perhaps degenerate
-            if (nextEdge.mag(allCutPoints) < SMALL)
+            if (edgeToId_.found(thisEdge))
             {
+                // Already have this edgeId, but not for this intersection.
+                thisEdge.sort();
+                if (facePairToEdge_.insert(twoFaces, thisEdge))
+                {
+                    if (debug & 4)
+                    {
+                        Pout<< "reuse edge - faces " << twoFaces << " edge#"
+                            << edgeToId_[thisEdge] << " edge " << thisEdge
+                            << " = " << thisEdge.line(allCutPoints)
+                            << endl;
+                    }
+                }
+            }
+            else if (thisEdge.mag(allCutPoints) < SMALL)
+            {
+                // Degenerate length
+                // - eg, end snapping was disabled or somehow failed.
+
                 // Don't normally emit warnings, since these also arise for
                 // manifold connections. For example,
                 //
@@ -147,10 +169,6 @@ void Foam::surfaceIntersection::storeIntersection
                 //
                 // The plane is correctly pierced at the '.' by both edge-1
                 // and edge-2, which belong to the same originating face.
-                //
-                // Unfortunately cannot suppress the second hit either, since
-                // it might already have been used for another face-pair
-                // intersection.
 
                 // Filter/merge away the extraneous points later.
                 if (warnDegenerate_ > 0)
@@ -159,31 +177,55 @@ void Foam::surfaceIntersection::storeIntersection
                     WarningInFunction
                         << "Degenerate edge between faces " << twoFaces
                         << " on 1st/2nd surface with points "
-                        << nextEdge.line(allCutPoints)
+                        << thisEdge.line(allCutPoints)
                         << endl;
                 }
                 else if (debug & 4)
                 {
                     Pout<< "degenerate edge face-pair " << twoFaces << " "
-                        << *iter << " point " << allCutPoints[*iter]
+                        << thisEdge[0] << " point " << allCutPoints[thisEdge[0]]
                         << endl;
                 }
+
+                // This is a failed edge - undo this second interaction
+                thisEdge.erase(cutPointId);
             }
-            else if (facePairToEdge_.insert(twoFaces, nextEdgeId))
+            else
             {
-                // Record complete (line) intersection of two faces
+                // This is a new edge.
+                const label edgeId = allCutEdges.size();
 
-                allCutEdges.append(nextEdge);
+                if (facePairToEdgeId_.insert(twoFaces, edgeId))
+                {
+                    // Record complete (line) intersection of two faces
+                    thisEdge.sort();
+                    edgeToId_.insert(thisEdge, edgeId);
+                    allCutEdges.append(thisEdge);
 
-                if (debug & 4)
+                    if (debug & 4)
+                    {
+                        Pout<< "create edge - faces " << twoFaces << " edge#"
+                            << edgeId << " edge " << thisEdge
+                            << " = " << thisEdge.line(allCutPoints)
+                            << endl;
+                    }
+                }
+                else
                 {
-                    Pout<< "create edge - faces " << twoFaces << " edge#"
-                        << nextEdgeId << " edge " << nextEdge
-                        << " = " << nextEdge.line(allCutPoints)
-                        << endl;
+                    // Faces already had an intersection
+                    // This should not fail, but for safety.
+                    Info<<"WARN " << twoFaces
+                        << " already intersected= " << thisEdge << endl;
+                    thisEdge.erase(cutPointId);
                 }
             }
         }
+        else
+        {
+            // Duplicate point - usually zero-length edge from snapping
+            // - can discard this face/face interaction entirely
+            facePairToEdge_.erase(twoFaces);
+        }
     }
 }
 
@@ -212,7 +254,7 @@ void Foam::surfaceIntersection::classifyHit
     List<DynamicList<label>>& surfEdgeCuts
 )
 {
-    const edge& e = surf1.edges()[edgeI];
+    const edge& e1 = surf1.edges()[edgeI];
 
     const labelList& facesA = surf1.edgeFaces()[edgeI];
 
@@ -233,10 +275,10 @@ void Foam::surfaceIntersection::classifyHit
     const label edgeEnd =
         classify
         (
-            surf1PointTol[e.start()],
-            surf1PointTol[e.end()],
+            surf1PointTol[e1.start()],
+            surf1PointTol[e1.end()],
             pHit.hitPoint(),
-            e,
+            e1,
             surf1Pts
         );
 
@@ -248,8 +290,8 @@ void Foam::surfaceIntersection::classifyHit
             if (debug & 2)
             {
                 Pout<< "hit-type[1] " << pHit.hitPoint() << " is surf1:"
-                    << " end point of edge[" << edgeI << "] " << e
-                    << "==" << e.line(surf1Pts)
+                    << " end point of edge[" << edgeI << "] " << e1
+                    << "==" << e1.line(surf1Pts)
                     << " surf2: vertex " << f2[nearLabel]
                     << " coord:" << surf2Pts[f2[nearLabel]]
                     << " - suppressed" << endl;
@@ -258,7 +300,6 @@ void Foam::surfaceIntersection::classifyHit
         else
         {
             // 2. Edge hits point. Cut edge with new point.
-            bool cached = false;
             label cutPointId = -1;
             const label nearVert = f2[nearLabel];
 
@@ -269,22 +310,25 @@ void Foam::surfaceIntersection::classifyHit
             {
                 const point& nearPt = surf1Pts[nearVert];
 
-                if (mag(pHit.hitPoint() - nearPt) < surf1PointTol[nearVert])
+                if
+                (
+                    mag(pHit.hitPoint() - nearPt)
+                  < surf1PointTol[nearVert]
+                )
                 {
                     cutPointId = allCutPoints.size();
 
-                    if (avoidDuplicates_)
+                    if (snapToEnd_)
                     {
-                        if (edgeEndAsCut_.insert(nearVert, cutPointId))
+                        if (snappedEnds_.insert(nearVert, cutPointId))
                         {
-                            // First time with this end-point
+                            // Initial snap
                             allCutPoints.append(nearPt);
                         }
                         else
                         {
-                            // Already seen this end point
-                            cutPointId = edgeEndAsCut_[nearVert];
-                            cached = true;
+                            // Already snapped this point.
+                            cutPointId = snappedEnds_[nearVert];
                         }
                     }
                     else
@@ -297,11 +341,11 @@ void Foam::surfaceIntersection::classifyHit
             if (debug & 2)
             {
                 Pout<< "hit-type[2] " << pHit.hitPoint() << " is surf1:"
-                    << " from edge[" << edgeI << "] " << e
+                    << " from edge[" << edgeI << "] " << e1
                     << " surf2: vertex " << f2[nearLabel]
                     << " coord:" << surf2Pts[f2[nearLabel]]
                     << " - "
-                    << (cached ? "cached" : "stored") << endl;
+                    << (cutPointId >= 0 ? "snapped" : "stored") << endl;
             }
 
             if (cutPointId == -1)
@@ -339,7 +383,7 @@ void Foam::surfaceIntersection::classifyHit
 
             const label edge2I = getEdge(surf2, surf2Facei, nearLabel);
             const edge& e2 = surf2.edges()[edge2I];
-            const label nearVert  = (edgeEnd == 0 ? e.start() : e.end());
+            const label nearVert = e1[edgeEnd];
 
             label cutPointId = -1;
 
@@ -367,22 +411,23 @@ void Foam::surfaceIntersection::classifyHit
 
                     if
                     (
-                        mag(pHit.hitPoint() - nearPt) < surf1PointTol[nearVert]
+                        mag(pHit.hitPoint() - nearPt)
+                      < surf1PointTol[nearVert]
                     )
                     {
                         cutPointId = allCutPoints.size();
 
-                        if (avoidDuplicates_)
+                        if (snapToEnd_)
                         {
-                            if (edgeEndAsCut_.insert(nearVert, cutPointId))
+                            if (snappedEnds_.insert(nearVert, cutPointId))
                             {
-                                // First time with this end-point
+                                // Initial snap
                                 allCutPoints.append(nearPt);
                             }
                             else
                             {
-                                // Already seen this end point
-                                cutPointId = edgeEndAsCut_[nearVert];
+                                // Already snapped this point.
+                                cutPointId = snappedEnds_[nearVert];
                                 handling = 2;  // cached
                             }
                         }
@@ -401,8 +446,8 @@ void Foam::surfaceIntersection::classifyHit
             if (debug & 2)
             {
                 Pout<< "hit-type[3] " << pHit.hitPoint() << " is surf1:"
-                    << " end point of edge[" << edgeI << "] " << e
-                    << "==" << e.line(surf1Pts)
+                    << " end point of edge[" << edgeI << "] " << e1
+                    << "==" << e1.line(surf1Pts)
                     << " surf2: edge[" << edge2I << "] " << e2
                     << " coords:" << e2.line(surf2Pts)
                     << " - "
@@ -482,9 +527,9 @@ void Foam::surfaceIntersection::classifyHit
                     if (edgeEdgeIntersection_.insert(intersect))
                     {
                         handling = 1;
-                        forAll(e, edgepti)
+                        forAll(e1, edgepti)
                         {
-                            const label endId = e[edgepti];
+                            const label endId = e1[edgepti];
                             const point& nearPt = surf1Pts[endId];
 
                             if
@@ -495,9 +540,9 @@ void Foam::surfaceIntersection::classifyHit
                             {
                                 cutPointId = allCutPoints.size();
 
-                                if (avoidDuplicates_)
+                                if (snapToEnd_)
                                 {
-                                    if (edgeEndAsCut_.insert(endId, cutPointId))
+                                    if (snappedEnds_.insert(endId, cutPointId))
                                     {
                                         // First time with this end-point
                                         allCutPoints.append(nearPt);
@@ -505,7 +550,7 @@ void Foam::surfaceIntersection::classifyHit
                                     else
                                     {
                                         // Already seen this end point
-                                        cutPointId = edgeEndAsCut_[endId];
+                                        cutPointId = snappedEnds_[endId];
                                         handling = 2;  // cached
                                     }
                                 }
@@ -524,8 +569,8 @@ void Foam::surfaceIntersection::classifyHit
             if (debug & 2)
             {
                 Pout<< "hit-type[4] " << pHit.hitPoint() << " is surf1:"
-                    << " from edge[" << edgeI << "] " << e
-                    << "==" << e.line(surf1Pts)
+                    << " from edge[" << edgeI << "] " << e1
+                    << "==" << e1.line(surf1Pts)
                     << " surf2: edge[" << edge2I << "] " << e2
                     << " coords:" << e2.line(surf2Pts)
                     << " - "
@@ -549,18 +594,28 @@ void Foam::surfaceIntersection::classifyHit
 
             if (handling)
             {
+                const vector eVec = e1.unitVec(surf1Pts);
+
                 const labelList& facesB = surf2.edgeFaces()[edge2I];
                 forAll(facesB, faceBI)
                 {
-                    storeIntersection
+                    // Intersecting edge should be non-coplanar with face
+                    if
                     (
-                        cutFrom,
-                        facesA,
-                        facesB[faceBI],
-                        allCutPoints,
-                        cutPointId,
-                        allCutEdges
-                    );
+                        mag((surf2.faceNormals()[facesB[faceBI]] & eVec))
+                      > 0.01
+                    )
+                    {
+                        storeIntersection
+                        (
+                            cutFrom,
+                            facesA,
+                            facesB[faceBI],
+                            allCutPoints,
+                            cutPointId,
+                            allCutEdges
+                        );
+                    }
                 }
             }
         }
@@ -577,8 +632,8 @@ void Foam::surfaceIntersection::classifyHit
 
             // Vertex on/near surf2; vertex away from surf2
             // otherVert on outside of surf2
-            const label nearVert  = (edgeEnd == 0 ? e.start() : e.end());
-            const label otherVert = (edgeEnd == 0 ? e.end() : e.start());
+            const label nearVert  = (edgeEnd == 0 ? e1.start() : e1.end());
+            const label otherVert = (edgeEnd == 0 ? e1.end() : e1.start());
 
             const point& nearPt  = surf1Pts[nearVert];
             const point& otherPt = surf1Pts[otherVert];
@@ -592,9 +647,9 @@ void Foam::surfaceIntersection::classifyHit
                 bool cached = false;
 
                 label cutPointId = allCutPoints.size();
-                if (avoidDuplicates_)
+                if (snapToEnd_)
                 {
-                    if (edgeEndAsCut_.insert(nearVert, cutPointId))
+                    if (snappedEnds_.insert(nearVert, cutPointId))
                     {
                         // First time with this end-point
                         allCutPoints.append(nearPt);
@@ -602,7 +657,7 @@ void Foam::surfaceIntersection::classifyHit
                     else
                     {
                         // Already seen this end point
-                        cutPointId = edgeEndAsCut_[nearVert];
+                        cutPointId = snappedEnds_[nearVert];
                         cached = true;
                     }
                 }
@@ -617,8 +672,8 @@ void Foam::surfaceIntersection::classifyHit
                 {
                     Pout<< "hit-type[5] " << pHit.hitPoint()
                         << " shifted to " << nearPt
-                        << " from edge[" << edgeI << "] " << e
-                        << "==" << e.line(surf1Pts)
+                        << " from edge[" << edgeI << "] " << e1
+                        << "==" << e1.line(surf1Pts)
                         << " hits surf2 face[" << surf2Facei << "]"
                         << " - "
                         << (cached ? "cached" : "stored") << endl;
@@ -640,7 +695,7 @@ void Foam::surfaceIntersection::classifyHit
                 if (debug & 2)
                 {
                     Pout<< "hit-type[5] " << pHit.hitPoint()
-                        << " from edge[" << edgeI << "] " << e
+                        << " from edge[" << edgeI << "] " << e1
                         << " hits inside of surf2 face[" << surf2Facei << "]"
                         << " - discarded" << endl;
                 }
@@ -652,8 +707,8 @@ void Foam::surfaceIntersection::classifyHit
             if (debug & 2)
             {
                 Pout<< "hit-type[6] " << pHit.hitPoint()
-                    << " from edge[" << edgeI << "] " << e
-                    << "==" << e.line(surf1Pts)
+                    << " from edge[" << edgeI << "] " << e1
+                    << "==" << e1.line(surf1Pts)
                     << " hits surf2 face[" << surf2Facei << "]"
                     << " - stored" << endl;
             }
@@ -680,8 +735,8 @@ void Foam::surfaceIntersection::classifyHit
 // Cut all edges of surf1 with surf2. Sets
 // - cutPoints          : coordinates of cutPoints
 // - cutEdges           : newly created edges between cutPoints
-// - facePairToVertex   : hash from face1I and face2I to (first) cutPoint
-// - facePairToEdge     : hash from face1I and face2I to cutEdge
+// - facePairToVertex   : hash from face1I and face2I to edge
+// - facePairToEdgeId   : hash from face1I and face2I to index in cutEdge
 // - surfEdgeCuts       : gives for each edge the cutPoints
 //                        (in order from start to end)
 //
@@ -716,7 +771,7 @@ void Foam::surfaceIntersection::doCutEdges
         // An edge may intersect multiple faces
         // - mask out faces that have already been hit before trying again
         // - never intersect with faces attached to the edge itself
-        DynamicList<label> maskFaces(8);
+        DynamicList<label> maskFaces(32);
 
         treeDataTriSurface::findAllIntersectOp
             allIntersectOp(searchTree, maskFaces);
@@ -732,8 +787,12 @@ void Foam::surfaceIntersection::doCutEdges
             const point ptEnd =
                 surf1Pts[e.end()]   + 0.5*surf1PointTol[e.end()]*edgeVec;
 
-            // Never intersect with faces attached to the edge itself
-            maskFaces = surf1.edgeFaces()[edgeI];
+            // Never intersect with faces attached directly to the edge itself,
+            // nor with faces attached to its end points. This mask contains
+            // some duplicates, but filtering them out is less efficient.
+            maskFaces = surf1.pointFaces()[e.start()];
+            maskFaces.append(surf1.pointFaces()[e.end()]);
+
             while (true)
             {
                 pointIndexHit pHit = searchTree.findLine
@@ -833,24 +892,110 @@ void Foam::surfaceIntersection::doCutEdges
 
     // These temporaries are now unneeded:
     edgeEdgeIntersection_.clear();
-    edgeEndAsCut_.clear();
+    snappedEnds_.clear();
 
     intersection::setPlanarTol(oldTol);
 }
 
 
+void Foam::surfaceIntersection::joinDisconnected
+(
+    DynamicList<edge>& allCutEdges
+)
+{
+    // This simple heuristic seems to work just as well (or better) than
+    // more complicated schemes
+    //
+    // For any face/face intersection that only appears once,
+    // consider which other faces/points are involved and connect between
+    // those points.
+    // Just do a simple connect-the-dots?
+
+    Pair<Map<labelPairHashSet>> missedFacePoint;
+
+    // Stage 1:
+    // - Extract "faceId -> (faceId, pointId)"
+    //   for all face/face pairs that only have one interaction
+    forAllConstIters(facePairToEdge_, iter)
+    {
+        const labelPair& twoFaces = iter.key();
+        const edge& e = iter.object();
+
+        if (e.count() == 1)
+        {
+            // minVertex = -1 (unused), maxVertex = pointId
+            const label pointId = e.maxVertex();
+
+            missedFacePoint[0](twoFaces[0]).insert
+            (
+                labelPair(twoFaces[1], pointId)
+            );
+
+            missedFacePoint[1](twoFaces[1]).insert
+            (
+                labelPair(twoFaces[0], pointId)
+            );
+        }
+    }
+
+
+    // Stage 2:
+    // - anything with two cross-interactions could cause a new edge:
+
+    edgeHashSet newEdges;
+    forAll(missedFacePoint, sidei)
+    {
+        const auto& mapping = missedFacePoint[sidei];
+
+        forAllConstIters(mapping, iter)
+        {
+            const auto& connect = iter.object();
+
+            if (connect.size() == 2)
+            {
+                // exactly two face/face cross-interactions
+
+                edge e;
+                for (const auto& facePoint : connect)
+                {
+                    e.insert(facePoint.second());
+                }
+                e.sort();
+
+                // Only consider edges with two unique ends,
+                // and do not introduce duplicates
+                if (e.count() == 2 && !edgeToId_.found(e))
+                {
+                    newEdges.insert(e);
+                }
+            }
+        }
+    }
+
+    label edgeId = allCutEdges.size();
+    edgeList newEdgesLst = newEdges.sortedToc();
+    for (const auto& e : newEdgesLst)
+    {
+        // Record complete (line) intersection of two faces
+        allCutEdges.append(e);
+        edgeToId_.insert(e, edgeId);
+        ++edgeId;
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::surfaceIntersection::surfaceIntersection()
 :
     tolerance_(1e-3),
     allowEdgeHits_(true),
-    avoidDuplicates_(true),
+    snapToEnd_(true),
     warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
-    facePairToVertex_(0),
     facePairToEdge_(0),
+    facePairToEdgeId_(0),
     surf1EdgeCuts_(0),
     surf2EdgeCuts_(0)
 {}
@@ -865,12 +1010,12 @@ Foam::surfaceIntersection::surfaceIntersection
 :
     tolerance_(1e-3),
     allowEdgeHits_(true),
-    avoidDuplicates_(true),
+    snapToEnd_(true),
     warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
-    facePairToVertex_(2*max(query1.surface().size(), query2.surface().size())),
     facePairToEdge_(2*max(query1.surface().size(), query2.surface().size())),
+    facePairToEdgeId_(2*max(query1.surface().size(), query2.surface().size())),
     surf1EdgeCuts_(0),
     surf2EdgeCuts_(0)
 {
@@ -931,6 +1076,9 @@ Foam::surfaceIntersection::surfaceIntersection
         edgeCuts2
     );
 
+    // join disconnected intersection points
+    joinDisconnected(allCutEdges);
+
     // Transfer to straight label(List)List
     transfer(edgeCuts2, surf2EdgeCuts_);
     cutEdges_.transfer(allCutEdges);
@@ -946,8 +1094,7 @@ Foam::surfaceIntersection::surfaceIntersection
         Pout<< "surfaceIntersection : Writing intersection to intEdges.obj"
             << endl;
 
-        OFstream intStream("intEdges.obj");
-        writeOBJ(cutPoints_, cutEdges_, intStream);
+        OBJstream("intEdges.obj").write(cutEdges_, cutPoints_);
 
         // Dump all cut edges to files
         Pout<< "Dumping cut edges of surface1 to surf1EdgeCuts.obj" << endl;
@@ -960,9 +1107,9 @@ Foam::surfaceIntersection::surfaceIntersection
     }
 
     // Temporaries
-    facePairToVertex_.clear();
+    facePairToEdge_.clear();
 
-    // // Cleanup any duplicate cuts?
+    // Cleanup any duplicate cuts?
     // mergeEdges();
 }
 
@@ -975,12 +1122,12 @@ Foam::surfaceIntersection::surfaceIntersection
 :
     tolerance_(1e-3),
     allowEdgeHits_(true),
-    avoidDuplicates_(true),
+    snapToEnd_(true),
     warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
-    facePairToVertex_(2*query1.surface().size()),
     facePairToEdge_(2*query1.surface().size()),
+    facePairToEdgeId_(2*query1.surface().size()),
     surf1EdgeCuts_(0),
     surf2EdgeCuts_(0)
 {
@@ -1013,6 +1160,9 @@ Foam::surfaceIntersection::surfaceIntersection
         edgeCuts1
     );
 
+    // join disconnected intersection points
+    joinDisconnected(allCutEdges);
+
     // Transfer to straight label(List)List
     transfer(edgeCuts1, surf1EdgeCuts_);
     cutEdges_.transfer(allCutEdges);
@@ -1039,8 +1189,7 @@ Foam::surfaceIntersection::surfaceIntersection
         Pout<< "surfaceIntersection : Writing intersection to intEdges.obj"
             << endl;
 
-        OFstream intStream("intEdges.obj");
-        writeOBJ(cutPoints_, cutEdges_, intStream);
+        OBJstream("intEdges.obj").write(cutEdges_, cutPoints_);
 
         // Dump all cut edges to files
         Pout<< "Dumping cut edges of surface1 to surf1EdgeCuts.obj" << endl;
@@ -1049,7 +1198,7 @@ Foam::surfaceIntersection::surfaceIntersection
     }
 
     // Temporaries
-    facePairToVertex_.clear();
+    facePairToEdge_.clear();
 
     // // Cleanup any duplicate cuts?
     // mergeEdges();
@@ -1066,12 +1215,12 @@ Foam::surfaceIntersection::surfaceIntersection
 :
     tolerance_(1e-3),
     allowEdgeHits_(true),
-    avoidDuplicates_(true),
+    snapToEnd_(true),
     warnDegenerate_(0),
     cutPoints_(0),
     cutEdges_(0),
-    facePairToVertex_(2*max(surf1.size(), surf2.size())),
     facePairToEdge_(2*max(surf1.size(), surf2.size())),
+    facePairToEdgeId_(2*max(surf1.size(), surf2.size())),
     surf1EdgeCuts_(0),
     surf2EdgeCuts_(0)
 {
@@ -1180,8 +1329,7 @@ Foam::surfaceIntersection::surfaceIntersection
         Pout<< "surfaceIntersection : Writing intersection to intEdges.obj"
             << endl;
 
-        OFstream intStream("intEdges.obj");
-        writeOBJ(cutPoints_, cutEdges_, intStream);
+        OBJstream("intEdges.obj").write(cutEdges_, cutPoints_);
 
         // Dump all cut edges to files
         Pout<< "Dumping cut edges of surface1 to surf1EdgeCuts.obj" << endl;
@@ -1193,37 +1341,8 @@ Foam::surfaceIntersection::surfaceIntersection
         writeIntersectedEdges(surf2, surf2EdgeCuts_, edge2Stream);
     }
 
-
-    // Debugging stuff
-    {
-        // Check all facePairToVertex is used.
-        labelHashSet usedPoints;
-
-        forAllConstIter(labelPairLookup, facePairToEdge_, iter)
-        {
-            const label edgeI = iter();
-            const edge& e = cutEdges_[edgeI];
-
-            usedPoints.insert(e[0]);
-            usedPoints.insert(e[1]);
-        }
-
-        forAllConstIter(labelPairLookup, facePairToVertex_, iter)
-        {
-            const label pointi = iter();
-
-            if (!usedPoints.found(pointi))
-            {
-                WarningInFunction
-                    << "Problem: cut point:" << pointi
-                    << " coord:" << cutPoints_[pointi]
-                    << " not used by any edge" << endl;
-            }
-        }
-    }
-
     // Temporaries
-    facePairToVertex_.clear();
+    facePairToEdge_.clear();
 
     // // Cleanup any duplicate cuts?
     // mergeEdges();
@@ -1244,9 +1363,9 @@ const Foam::edgeList& Foam::surfaceIntersection::cutEdges() const
 }
 
 
-const Foam::labelPairLookup& Foam::surfaceIntersection::facePairToEdge() const
+const Foam::labelPairLookup& Foam::surfaceIntersection::facePairToEdgeId() const
 {
-    return facePairToEdge_;
+    return facePairToEdgeId_;
 }
 
 
@@ -1349,9 +1468,9 @@ void Foam::surfaceIntersection::mergeEdges()
     // if (nUniqEdges < cutEdges_.size())
     // {
     //     // Additional safety, in case the edge was replaced?
-    //     forAllIter(labelPairLookup, facePairToEdge_, iter)
+    //     forAllIters(facePairToEdge_, iter)
     //     {
-    //         iter() = edgeNumbering[iter()];
+    //         iter.object() = edgeNumbering[iter.object()];
     //     }
     // }
 
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
index 5c609586754..93e15669eeb 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
@@ -50,7 +50,7 @@ Description
         Property       | Description                    | Type   | Default value
         tolerance      | Edge-length tolerance          | scalar | 1e-3
         allowEdgeHits  | Edge-end cuts another edge     | bool   | true
-        avoidDuplicates | Reduce the number of duplicate points    | bool | true
+        snap           | Snap near end-points           | bool   | true
         warnDegenerate | Number of warnings about degenerate edges | label | 0
     \endtable
 
@@ -66,11 +66,11 @@ SourceFiles
 
 #include "DynamicList.H"
 #include "point.H"
-#include "edge.H"
-#include "labelPairHashes.H"
-#include "typeInfo.H"
+#include "edgeHashes.H"
 #include "edgeList.H"
+#include "labelPairHashes.H"
 #include "pointIndexHit.H"
+#include "typeInfo.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -82,6 +82,14 @@ class triSurfaceSearch;
 class triSurface;
 class edgeIntersections;
 
+
+//- Key is non-commutative pair of labels. Value is commutative pair of labels
+typedef LabelPairMap<edge> labelPairEdgeLookup;
+
+//- Map from edge back to all parents (pairs of faces)
+typedef EdgeMap<labelPairHashSet> edgelabelPairHashLookup;
+
+
 /*---------------------------------------------------------------------------*\
                      Class surfaceIntersection Declaration
 \*---------------------------------------------------------------------------*/
@@ -104,8 +112,8 @@ class surfaceIntersection
         //- Allow edge-ends to cut another edge.
         bool allowEdgeHits_;
 
-        //- Avoid creating duplicate cuts near edge ends
-        bool avoidDuplicates_;
+        //- Snap cut points near edge ends (default: true)
+        bool snapToEnd_;
 
         //- Maximum number of warnings about degenerate edges
         label warnDegenerate_;
@@ -117,27 +125,29 @@ class surfaceIntersection
         //  Reference into cutPoints.
         edgeList cutEdges_;
 
-        //- From face on surf1 and face on surf2 to intersection point
-        //  (label in cutPoints)
-        labelPairLookup facePairToVertex_;
-
         //- From face on surf1 and face on surf2 to intersection edge
+        labelPairEdgeLookup facePairToEdge_;
+
+        //- From face on surf1 and face on surf2 to intersection edgeId
         //  (label in cutEdges)
-        labelPairLookup facePairToEdge_;
+        labelPairLookup facePairToEdgeId_;
 
-        //- Edges on surf1 that are cut. From edge on surf1 to label in cutPoint
-        //  If multiple cuts:sorted from edge.start to edge.end
+        //- Edges on surf1 that are cut.
+        //  From edgeId on surf1 to location in cutPoint
         labelListList surf1EdgeCuts_;
 
-        //- Edges on surf2 that are cut. From edge on surf2 to label in cutPoint
-        //  If multiple cuts:sorted from edge.start to edge.end
+        //- Edges on surf2 that are cut.
+        //  From edgeId on surf2 to location in cutPoint
         labelListList surf2EdgeCuts_;
 
         //- Temporary storage to manage edge-edge self-intersections.
-        HashSet<edge, Hash<edge>> edgeEdgeIntersection_;
+        edgeHashSet edgeEdgeIntersection_;
 
         //- Temporary storage to manage cuts/intersections from the edge ends
-        Map<label> edgeEndAsCut_;
+        Map<label> snappedEnds_;
+
+        //- Temporary storage
+        EdgeMap<label> edgeToId_;
 
 
     // Private Member Functions
@@ -145,17 +155,6 @@ class surfaceIntersection
         //- Adjust intersection options according to the dictionary entries
         void setOptions(const dictionary& dict);
 
-        //- Write points in obj format
-        static void writeOBJ(const List<point>& pts, Ostream& os);
-
-        //- Write points and edges in obj format
-        static void writeOBJ
-        (
-            const List<point>& pts,
-            const List<edge>& edges,
-            Ostream& os
-        );
-
         //- Transfer contents of List<DynamicList<..>> to List<List<..>>
         template<class T>
         static void transfer(List<DynamicList<T>>&,  List<List<T>>&);
@@ -201,8 +200,8 @@ class surfaceIntersection
             const UList<point>& points
         );
 
-        //- Update reference between faceA and faceB. Updates facePairToVertex_
-        //  (first occurrence of face pair) and facePairToEdge_ (second occ.)
+        //- Update reference between faceA and faceB.
+        //  Updates facePairToEdge_ and facePairToEdgeId_ (on the second hit)
         void storeIntersection
         (
             const enum originatingType cutFrom,
@@ -241,6 +240,9 @@ class surfaceIntersection
             List<DynamicList<label>>& surfEdgeCuts
         );
 
+        //- Join disconnected intersection points
+        void joinDisconnected(DynamicList<edge>& allCutEdges);
+
 
 public:
 
@@ -292,7 +294,7 @@ public:
         const edgeList& cutEdges() const;
 
         //- Lookup of pairs of faces to created edges
-        const labelPairLookup& facePairToEdge() const;
+        const labelPairLookup& facePairToEdgeId() const;
 
         //- Access either surf1EdgeCuts (isFirstSurface = true) or
         //  surf2EdgeCuts
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
index 6e261a86cb6..d8797736b0b 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
@@ -29,13 +29,14 @@ License
 #include "labelPairHashes.H"
 #include "OFstream.H"
 
-// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-void Foam::surfaceIntersection::writeOBJ
-(
-    const List<point>& pts,
-    Ostream& os
-)
+namespace Foam
+{
+
+// file-scope
+// Write points in obj format
+static void writeObjPoints(const UList<point>& pts, Ostream& os)
 {
     forAll(pts, i)
     {
@@ -44,23 +45,10 @@ void Foam::surfaceIntersection::writeOBJ
     }
 }
 
+} // End namespace Foam
 
-void Foam::surfaceIntersection::writeOBJ
-(
-    const List<point>& pts,
-    const List<edge>& edges,
-    Ostream& os
-)
-{
-    writeOBJ(pts, os);
-
-    forAll(edges, i)
-    {
-        const edge& e = edges[i];
 
-        os << "l " << e.start()+1 << ' ' << e.end()+1 << nl;
-    }
-}
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 
 // Get minimum length of all edges connected to point
@@ -254,8 +242,8 @@ void Foam::surfaceIntersection::writeIntersectedEdges
     // Dump all points (surface followed by cutPoints)
     const pointField& pts = surf.localPoints();
 
-    writeOBJ(pts, os);
-    writeOBJ(cutPoints(), os);
+    writeObjPoints(pts, os);
+    writeObjPoints(cutPoints(), os);
 
     forAll(edgeCutVerts, edgeI)
     {
-- 
GitLab


From 034ddfa78f9c05d66f4bb7543c87fbe1afe996ab Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 10 May 2017 14:11:28 +0200
Subject: [PATCH 230/277] ENH: make coeffs dictionaries optional for
 surfaceFeatureExtract

---
 .../extractionMethod/Make/options             | 10 ++--
 .../extractionMethod/extractFromFile.C        |  3 +-
 .../extractionMethod/extractFromFile.H        |  7 +--
 .../extractionMethod/extractFromNone.C        |  2 +-
 .../extractionMethod/extractFromNone.H        | 11 ++--
 .../extractionMethod/extractFromSurface.C     |  3 +-
 .../extractionMethod/extractFromSurface.H     | 11 ++--
 .../surfaceFeatureExtractDict                 | 50 +++++++++----------
 8 files changed, 46 insertions(+), 51 deletions(-)

diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options
index 322709bfff9..a5976d53f84 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options
@@ -1,11 +1,7 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
-    -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/surfMesh/lnInclude
+    -I$(LIB_SRC)/surfMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
-    -lmeshTools \
-    -ledgeMesh \
-    -ltriSurface
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
index d9fb9b1dde6..7b2b0c8ad09 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C
@@ -53,7 +53,8 @@ Foam::surfaceFeaturesExtraction::extractFromFile::extractFromFile
 :
     method()
 {
-    const dictionary& coeffDict = dict.subDict("extractFromFileCoeffs");
+    const dictionary& coeffDict =
+        dict.optionalSubDict("extractFromFileCoeffs");
 
     coeffDict.lookup("featureEdgeFile") >> featureEdgeFile_;
     coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_);
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
index bca148439ff..83853fab2de 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
@@ -27,8 +27,11 @@ Class
 Description
     Run-time selectable surface feature extraction.
 
+    Mandatory dictionary entries: "featureEdgeFile".
+    Optional dictionary entries: "geometricTestOnly".
+
 SourceFiles
-    extractionMethod.C
+    extractFromFile.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -36,8 +39,6 @@ SourceFiles
 #define surfaceFeaturesExtraction_extractFromFile_H
 
 #include "surfaceFeaturesExtraction.H"
-#include "dictionary.H"
-#include "Switch.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
index 887e9a4d659..c49db760a98 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
@@ -52,7 +52,7 @@ Foam::surfaceFeaturesExtraction::extractFromNone::extractFromNone
 :
     method()
 {
-    const dictionary& coeffDict = dict.subOrEmptyDict("extractFromNoneCoeffs");
+    const dictionary& coeffDict = dict.optionalSubDict("noneCoeffs");
 
     coeffDict.readIfPresent("includedAngle", includedAngle_);
     coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_);
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
index da80a3c624a..9f9b94410f4 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
@@ -25,10 +25,13 @@ Class
     Foam::surfaceFeaturesExtraction::extractFromNone
 
 Description
-    Run-time selectable surface feature extraction.
+    Run-time selectable surface feature extraction - no extraction.
+    Primarily useful with self-intersection methods.
+
+    Optional dictionary entries: "includedAngle", "geometricTestOnly".
 
 SourceFiles
-    extractionMethod.C
+    extractFromNone.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -36,10 +39,6 @@ SourceFiles
 #define surfaceFeaturesExtraction_extractFromNone_H
 
 #include "surfaceFeaturesExtraction.H"
-#include "dictionary.H"
-#include "Switch.H"
-#include "triSurface.H"
-#include "edgeIntersections.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
index 6621d6c9314..35b5dc0e3f0 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C
@@ -52,7 +52,8 @@ Foam::surfaceFeaturesExtraction::extractFromSurface::extractFromSurface
 :
     method()
 {
-    const dictionary& coeffDict = dict.subDict("extractFromSurfaceCoeffs");
+    const dictionary& coeffDict =
+        dict.optionalSubDict("extractFromSurfaceCoeffs");
 
     coeffDict.lookup("includedAngle") >> includedAngle_;
     coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_);
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
index e007a8d3b9e..3ad3412819a 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
@@ -25,10 +25,13 @@ Class
     Foam::surfaceFeaturesExtraction::extractFromSurface
 
 Description
-    Run-time selectable surface feature extraction.
+    Run-time selectable surface feature extraction - extract from surface.
+
+    Mandatory dictionary entries: "includedAngle".
+    Optional dictionary entries: "geometricTestOnly".
 
 SourceFiles
-    extractionMethod.C
+    extractFromSurface.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -36,10 +39,6 @@ SourceFiles
 #define surfaceFeaturesExtraction_extractFromSurface_H
 
 #include "surfaceFeaturesExtraction.H"
-#include "dictionary.H"
-#include "Switch.H"
-#include "triSurface.H"
-#include "edgeIntersections.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
index 362e7f99eef..65322152987 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
@@ -19,17 +19,22 @@ surface1.stl
     // How to obtain raw features (extractFromFile | extractFromSurface | none)
     extractionMethod    extractFromSurface;
 
+    // Mark edges whose adjacent surface normals are at an angle less
+    // than includedAngle as features
+    // - 0  : selects no edges
+    // - 180: selects all edges
+    includedAngle       120;
+
+    // Do not mark region edges
+    geometricTestOnly   yes;
+
+    /* alternative specification as coeff dictionary
     extractFromSurfaceCoeffs
     {
-        // Mark edges whose adjacent surface normals are at an angle less
-        // than includedAngle as features
-        // - 0  : selects no edges
-        // - 180: selects all edges
         includedAngle   120;
 
-        // Do not mark region edges
         geometricTestOnly  yes;
-    }
+    } */
 
     // Generate additional features from self-intersect
     selfIntersection    false;
@@ -69,27 +74,27 @@ surface2.nas
         // Use a plane to select feature edges
         // (normal)(basePoint)
         // Keep only edges that intersect the plane will be included
-        plane               (1 0 0)(0 0 0);
+        plane           (1 0 0)(0 0 0);
 
         // Select feature edges using a box
         // (minPt)(maxPt)
         // Keep edges inside the box:
-        insideBox           (0 0 0)(1 1 1);
+        insideBox       (0 0 0)(1 1 1);
         // Keep edges outside the box:
-        outsideBox          (0 0 0)(1 1 1);
+        outsideBox      (0 0 0)(1 1 1);
 
         // Keep nonManifold edges (edges with >2 connected faces where
         // the faces form more than two different normal planes)
-        nonManifoldEdges    yes;
+        nonManifoldEdges yes;
 
         // Keep open edges (edges with 1 connected face)
-        openEdges           yes;
+        openEdges       yes;
     }
 
     addFeatures
     {
         // Add (without merging) another extendedFeatureEdgeMesh
-        name                axZ.extendedFeatureEdgeMesh;
+        name            axZ.extendedFeatureEdgeMesh;
 
         // Optionally flip features (invert all normals, making
         // convex<->concave etc)
@@ -149,19 +154,10 @@ dummyName
     // Tolerance for surface intersections
     tolerance           1e-3;
 
-    extractFromSurfaceCoeffs
-    {
-        includedAngle   120;
+    includedAngle       120;
 
-        // Do not mark region edges
-        geometricTestOnly  yes;
-    }
-
-    extractFromNoneCoeffs
-    {
-        includedAngle   120;
-
-    }
+    // Do not mark region edges
+    geometricTestOnly   yes;
 
     // Write options
 
@@ -180,7 +176,7 @@ dummyName
 //
 surfaces
 {
-    extractionMethod    extractFromNone;
+    extractionMethod    none;
 
     surfaces            (surface1.stl surface2.nas);
 
@@ -193,10 +189,12 @@ surfaces
     // Tolerance for surface intersections
     tolerance           1e-3;
 
-    extractFromNoneCoeffs
+    /* alternative specification as coeff dictionary
+    noneCoeffs
     {
         includedAngle   0;
     }
+    */
 
     // Write options
 
-- 
GitLab


From 69efba734806cf997d36ae65c5865bc6592c1ace Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 19 May 2017 15:16:54 +0200
Subject: [PATCH 231/277] STYLE: typos in comments

---
 src/OpenFOAM/primitives/predicates/predicates.H | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/OpenFOAM/primitives/predicates/predicates.H b/src/OpenFOAM/primitives/predicates/predicates.H
index 8731fb45189..e751c7e957f 100644
--- a/src/OpenFOAM/primitives/predicates/predicates.H
+++ b/src/OpenFOAM/primitives/predicates/predicates.H
@@ -59,7 +59,7 @@ public:
     inline always()
     {}
 
-    //- Evalulated as a bool - return true
+    //- Evaluated as a bool - return true
     inline operator bool() const
     {
         return true;
@@ -79,8 +79,8 @@ public:
         return true;
     }
 
-    //- String matching returning true
-    inline bool match(const std::string& unused, bool literal=false) const
+    //- String match returning true
+    inline bool match(const std::string&, bool literal=false) const
     {
         return true;
     }
@@ -101,7 +101,7 @@ public:
     inline never()
     {}
 
-    //- Evalulated as a bool - return false
+    //- Evaluated as a bool - return false
     inline operator bool() const
     {
         return false;
@@ -121,8 +121,8 @@ public:
         return false;
     }
 
-    //- String matching returning false
-    inline bool match(const std::string& unused, bool literal=false) const
+    //- String match returning false
+    inline bool match(const std::string&, bool literal=false) const
     {
         return false;
     }
-- 
GitLab


From 009f1ec85c6d354267f6d0adb020f6f2bb823d86 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 19 May 2017 15:17:29 +0200
Subject: [PATCH 232/277] ENH: only update meshSubset on topo change

---
 src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C | 2 +-
 src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.H | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C b/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C
index 0f3760654cb..7a7d4fbcf7f 100644
--- a/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C
+++ b/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C
@@ -92,7 +92,7 @@ Foam::polyMesh::readUpdateState Foam::meshSubsetHelper::readUpdate()
 {
     polyMesh::readUpdateState meshState = baseMesh_.readUpdate();
 
-    if (meshState != polyMesh::UNCHANGED)
+    if (meshState == polyMesh::TOPO_CHANGE || polyMesh::TOPO_PATCH_CHANGE)
     {
         correct(true);
     }
diff --git a/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.H b/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.H
index 891e6d94a6e..f531535e79c 100644
--- a/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.H
+++ b/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.H
@@ -146,7 +146,7 @@ public:
         //- Update mesh subset
         void correct(bool verbose = false);
 
-        //- Read mesh
+        //- Read mesh. Correct on topo-change
         polyMesh::readUpdateState readUpdate();
 
 
-- 
GitLab


From 667b88511682772429a5e5ef2e9c1a84fa8cb508 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 17 May 2017 18:59:51 +0200
Subject: [PATCH 233/277] STYLE: remove ununsed foamToVTK template functions

---
 .../dataConversion/foamToVTK/foamToVTK.C      | 64 +++++++++---------
 .../foamToVTK/foamToVTK/writeFuns.H           | 31 +--------
 .../foamToVTK/foamToVTK/writeFunsTemplates.C  | 65 -------------------
 3 files changed, 33 insertions(+), 127 deletions(-)

diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
index 602f68b2d04..dcf612a663e 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
@@ -341,6 +341,7 @@ int main(int argc, char *argv[])
 
     #include "createTime.H"
 
+    const bool decomposePoly   = !args.optionFound("poly");
     const bool doWriteInternal = !args.optionFound("noInternal");
     const bool doFaceZones     = !args.optionFound("noFaceZones");
     const bool doLinks         = !args.optionFound("noLinks");
@@ -349,7 +350,7 @@ int main(int argc, char *argv[])
     const bool noLagrangian    = args.optionFound("noLagrangian");
 
     // Decomposition of polyhedral cells into tets/pyramids cells
-    vtkTopo::decomposePoly     = !args.optionFound("poly");
+    vtkTopo::decomposePoly     = decomposePoly;
 
     if (binary && (sizeof(floatScalar) != 4 || sizeof(label) != 4))
     {
@@ -410,8 +411,6 @@ int main(int argc, char *argv[])
     args.optionReadIfPresent("pointSet", pointSetName);
 
 
-    instantList timeDirs = timeSelector::select0(runTime, args);
-
     #include "createNamedMesh.H"
 
     // VTK/ directory in the case
@@ -449,6 +448,9 @@ int main(int argc, char *argv[])
 
     mkDir(fvPath);
 
+    instantList timeDirs = timeSelector::select0(runTime, args);
+
+
     // Mesh wrapper: does subsetting and decomposition
     vtkMesh vMesh(mesh, cellSetName);
 
@@ -492,7 +494,7 @@ int main(int argc, char *argv[])
             // Filename as if patch with same name.
             mkDir(fvPath/set.name());
 
-            fileName patchFileName
+            fileName outputName
             (
                 fvPath/set.name()/set.name()
               + "_"
@@ -500,12 +502,12 @@ int main(int argc, char *argv[])
               + ".vtk"
             );
 
-            Info<< "    FaceSet   : " << patchFileName << endl;
-
-            writeFaceSet(binary, vMesh.mesh(), set, patchFileName);
+            Info<< "    faceSet   : " << outputName << endl;
 
+            writeFaceSet(binary, vMesh.mesh(), set, outputName);
             continue;
         }
+
         // If pointSet: write pointSet only (as polydata)
         if (pointSetName.size())
         {
@@ -515,7 +517,7 @@ int main(int argc, char *argv[])
             // Filename as if patch with same name.
             mkDir(fvPath/set.name());
 
-            fileName patchFileName
+            fileName outputName
             (
                 fvPath/set.name()/set.name()
               + "_"
@@ -523,10 +525,9 @@ int main(int argc, char *argv[])
               + ".vtk"
             );
 
-            Info<< "    pointSet   : " << patchFileName << endl;
-
-            writePointSet(binary, vMesh.mesh(), set, patchFileName);
+            Info<< "    pointSet   : " << outputName << endl;
 
+            writePointSet(binary, vMesh.mesh(), set, outputName);
             continue;
         }
 
@@ -868,11 +869,11 @@ int main(int argc, char *argv[])
         {
             mkDir(fvPath/"allPatches");
 
-            fileName patchFileName;
+            fileName outputName;
 
             if (vMesh.useSubMesh())
             {
-                patchFileName =
+                outputName =
                     fvPath/"allPatches"/cellSetName
                   + "_"
                   + timeDesc
@@ -880,21 +881,21 @@ int main(int argc, char *argv[])
             }
             else
             {
-                patchFileName =
+                outputName =
                     fvPath/"allPatches"/"allPatches"
                   + "_"
                   + timeDesc
                   + ".vtk";
             }
 
-            Info<< "    Combined patches     : " << patchFileName << endl;
+            Info<< "    Combined patches     : " << outputName << endl;
 
             patchWriter writer
             (
                 vMesh.mesh(),
                 binary,
                 nearCellValue,
-                patchFileName,
+                outputName,
                 getSelectedPatches(patches, excludePatches)
             );
 
@@ -946,11 +947,11 @@ int main(int argc, char *argv[])
                 {
                     mkDir(fvPath/pp.name());
 
-                    fileName patchFileName;
+                    fileName outputName;
 
                     if (vMesh.useSubMesh())
                     {
-                        patchFileName =
+                        outputName =
                             fvPath/pp.name()/cellSetName
                           + "_"
                           + timeDesc
@@ -958,22 +959,22 @@ int main(int argc, char *argv[])
                     }
                     else
                     {
-                        patchFileName =
+                        outputName =
                             fvPath/pp.name()/pp.name()
                           + "_"
                           + timeDesc
                           + ".vtk";
                     }
 
-                    Info<< "    Patch     : " << patchFileName << endl;
+                    Info<< "    Patch     : " << outputName << endl;
 
                     patchWriter writer
                     (
                         vMesh.mesh(),
                         binary,
                         nearCellValue,
-                        patchFileName,
-                        labelList(1, patchi)
+                        outputName,
+                        labelList{patchi}
                     );
 
                     if (!isA<emptyPolyPatch>(pp))
@@ -1068,11 +1069,11 @@ int main(int argc, char *argv[])
 
                 mkDir(fvPath/fz.name());
 
-                fileName patchFileName;
+                fileName outputName;
 
                 if (vMesh.useSubMesh())
                 {
-                    patchFileName =
+                    outputName =
                         fvPath/fz.name()/cellSetName
                       + "_"
                       + timeDesc
@@ -1080,14 +1081,14 @@ int main(int argc, char *argv[])
                 }
                 else
                 {
-                    patchFileName =
+                    outputName =
                         fvPath/fz.name()/fz.name()
                       + "_"
                       + timeDesc
                       + ".vtk";
                 }
 
-                Info<< "    FaceZone  : " << patchFileName << endl;
+                Info<< "    FaceZone  : " << outputName << endl;
 
                 indirectPrimitivePatch pp
                 (
@@ -1100,7 +1101,7 @@ int main(int argc, char *argv[])
                     binary,
                     pp,
                     fz.name(),
-                    patchFileName
+                    outputName
                 );
 
                 // Number of fields
@@ -1131,14 +1132,13 @@ int main(int argc, char *argv[])
             // Always create the cloud directory.
             mkDir(fvPath/cloud::prefix/cloudName);
 
-            fileName lagrFileName
+            fileName outputName
             (
                 fvPath/cloud::prefix/cloudName/cloudName
               + "_" + timeDesc + ".vtk"
             );
 
-            Info<< "    Lagrangian: " << lagrFileName << endl;
-
+            Info<< "    Lagrangian: " << outputName << endl;
 
             IOobjectList sprayObjs
             (
@@ -1189,7 +1189,7 @@ int main(int argc, char *argv[])
                 (
                     vMesh.mesh(),
                     binary,
-                    lagrFileName,
+                    outputName,
                     cloudName,
                     false
                 );
@@ -1219,7 +1219,7 @@ int main(int argc, char *argv[])
                 (
                     vMesh.mesh(),
                     binary,
-                    lagrFileName,
+                    outputName,
                     cloudName,
                     true
                 );
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFuns.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFuns.H
index 1776eefe09e..60fe2a6d010 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFuns.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFuns.H
@@ -104,6 +104,7 @@ public:
 
     //- Append elements to DynamicList
     static void insert(const labelList&, DynamicList<label>&);
+
     template<class Type>
     static void insert(const List<Type>&, DynamicList<floatScalar>&);
 
@@ -140,36 +141,6 @@ public:
         const vtkMesh&
     );
 
-    //- Write generic GeometricFields
-    template<class Type, template<class> class PatchField, class GeoMesh>
-    static void write
-    (
-        std::ostream&,
-        const bool binary,
-        const PtrList<GeometricField<Type, PatchField, GeoMesh>>&,
-        const vtkMesh&
-    );
-
-    //- Write generic dimensioned internal fields
-    template<class Type>
-    static void write
-    (
-        std::ostream&,
-        const bool binary,
-        const PtrList<DimensionedField<Type, volMesh>>&,
-        const vtkMesh&
-    );
-
-    //- Interpolate and write volFields
-    template<class Type>
-    static void write
-    (
-        std::ostream&,
-        const bool binary,
-        const volPointInterpolation&,
-        const PtrList<GeometricField<Type, fvPatchField, volMesh>>&,
-        const vtkMesh&
-    );
 };
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFunsTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFunsTemplates.C
index a6778a461c3..8929a1ad80e 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFunsTemplates.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeFunsTemplates.C
@@ -43,22 +43,6 @@ void Foam::writeFuns::insert
 }
 
 
-//// Store List (indexed through map) in dest
-//template<class Type>
-//void Foam::writeFuns::insert
-//(
-//    const labelList& map,
-//    const List<Type>& source,
-//    DynamicList<floatScalar>& dest
-//)
-//{
-//    forAll(map, i)
-//    {
-//        insert(source[map[i]], dest);
-//    }
-//}
-
-
 template<class Type>
 void Foam::writeFuns::write
 (
@@ -159,53 +143,4 @@ void Foam::writeFuns::write
 }
 
 
-template<class Type, template<class> class PatchField, class GeoMesh>
-void Foam::writeFuns::write
-(
-    std::ostream& os,
-    const bool binary,
-    const PtrList<GeometricField<Type, PatchField, GeoMesh>>& flds,
-    const vtkMesh& vMesh
-)
-{
-    forAll(flds, i)
-    {
-        write(os, binary, flds[i].dimensionedInternalField(), vMesh);
-    }
-}
-
-
-template<class Type>
-void Foam::writeFuns::write
-(
-    std::ostream& os,
-    const bool binary,
-    const PtrList<DimensionedField<Type, volMesh>>& flds,
-    const vtkMesh& vMesh
-)
-{
-    forAll(flds, i)
-    {
-        write(os, binary, flds[i], vMesh);
-    }
-}
-
-
-template<class Type>
-void Foam::writeFuns::write
-(
-    std::ostream& os,
-    const bool binary,
-    const volPointInterpolation& pInterp,
-    const PtrList<GeometricField<Type, fvPatchField, volMesh>>& flds,
-    const vtkMesh& vMesh
-)
-{
-    forAll(flds, i)
-    {
-        write(os, binary, flds[i], pInterp.interpolate(flds[i])(), vMesh);
-    }
-}
-
-
 // ************************************************************************* //
-- 
GitLab


From 8255005e199de49b63b92d89101706e673950c6a Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Thu, 18 May 2017 16:57:22 +0100
Subject: [PATCH 234/277] ENH: mapDistributePolyMesh: new test app

---
 .../test/mapDistributePolyMesh/Make/files     |   3 +
 .../test/mapDistributePolyMesh/Make/options   |   9 +
 .../Test-mapDistributePolyMesh.C              | 149 ++++++++++++
 .../test/mapDistributePolyMesh/cavity/0/U     |  41 ++++
 .../test/mapDistributePolyMesh/cavity/0/p     |  39 +++
 .../test/mapDistributePolyMesh/cavity/0/phi   | 228 ++++++++++++++++++
 .../mapDistributePolyMesh/cavity/Allclean     |  13 +
 .../test/mapDistributePolyMesh/cavity/Allrun  |  17 ++
 .../mapDistributePolyMesh/cavity/cavity.foam  |   0
 .../cavity/constant/transportProperties       |  21 ++
 .../cavity/system/blockMeshDict               |  75 ++++++
 .../cavity/system/controlDict                 |  49 ++++
 .../cavity/system/controlDict-latestTime      |  49 ++++
 .../cavity/system/controlDict-startTime       |  49 ++++
 .../cavity/system/decomposeParDict            | 143 +++++++++++
 .../cavity/system/decomposeParDict-2          | 143 +++++++++++
 .../cavity/system/decomposeParDict-5          | 143 +++++++++++
 .../system/decomposeParDict-hierarchical      |  29 +++
 .../cavity/system/decomposeParDict-scotch     |  28 +++
 .../cavity/system/fvSchemes                   |  51 ++++
 .../cavity/system/fvSolution                  |  46 ++++
 .../cavity/system/processorField              |  64 +++++
 .../cavity/system/renumberMeshDict-random     | 112 +++++++++
 23 files changed, 1501 insertions(+)
 create mode 100644 applications/test/mapDistributePolyMesh/Make/files
 create mode 100644 applications/test/mapDistributePolyMesh/Make/options
 create mode 100644 applications/test/mapDistributePolyMesh/Test-mapDistributePolyMesh.C
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/0/U
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/0/p
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/0/phi
 create mode 100755 applications/test/mapDistributePolyMesh/cavity/Allclean
 create mode 100755 applications/test/mapDistributePolyMesh/cavity/Allrun
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/cavity.foam
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/constant/transportProperties
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/blockMeshDict
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/controlDict
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/controlDict-latestTime
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/controlDict-startTime
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-hierarchical
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-scotch
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/fvSchemes
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/fvSolution
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/processorField
 create mode 100644 applications/test/mapDistributePolyMesh/cavity/system/renumberMeshDict-random

diff --git a/applications/test/mapDistributePolyMesh/Make/files b/applications/test/mapDistributePolyMesh/Make/files
new file mode 100644
index 00000000000..eb304044bff
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/Make/files
@@ -0,0 +1,3 @@
+Test-mapDistributePolyMesh.C
+EXE = $(FOAM_USER_APPBIN)/Test-mapDistributePolyMesh
+
diff --git a/applications/test/mapDistributePolyMesh/Make/options b/applications/test/mapDistributePolyMesh/Make/options
new file mode 100644
index 00000000000..dc318df9983
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/Make/options
@@ -0,0 +1,9 @@
+EXE_INC = \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume \
+    -ldynamicMesh \
+    -lmeshTools
diff --git a/applications/test/mapDistributePolyMesh/Test-mapDistributePolyMesh.C b/applications/test/mapDistributePolyMesh/Test-mapDistributePolyMesh.C
new file mode 100644
index 00000000000..a925be3efe8
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/Test-mapDistributePolyMesh.C
@@ -0,0 +1,149 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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/>.
+
+Application
+    mapDistributePolyMesh
+
+Description
+    Test for procAddressing
+
+\*---------------------------------------------------------------------------*/
+
+#include "IOmapDistributePolyMesh.H"
+#include "argList.H"
+#include "Time.H"
+#include "surfaceFields.H"
+#include "flipOp.H"
+
+using namespace Foam;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+    #include "setRootCase.H"
+    #include "createTime.H"
+    #include "createMesh.H"
+
+    Info<< "Reading distribute map\n" << endl;
+
+    const word instance("0.005");
+    const scalar instanceValue(0.005);
+
+
+    IOobject io
+    (
+        "procAddressing",
+        instance,
+        fvMesh::meshSubDir,
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE,
+        false
+    );
+
+    IOmapDistributePolyMesh map(io);
+
+    {
+        // Load the instance mesh
+        runTime.setTime(instanceValue, 0);
+        polyMesh distributedMesh
+        (
+            IOobject
+            (
+                polyMesh::defaultRegion,
+                instance,
+                runTime,
+                IOobject::MUST_READ
+            )
+        );
+
+        // Faces, no flip
+        {
+            const mapDistribute& faceMap = map.faceMap();
+            pointField fc(mesh.faceCentres());
+            faceMap.distribute(fc, noOp());
+            Pout<< "Construct size:" << faceMap.constructSize() << endl;
+            forAll(distributedMesh.faceCentres(), facei)
+            {
+                Pout<< "face:" << facei
+                    << "\tmappedFc:" << fc[facei]
+                    << "\tactual:" << distributedMesh.faceCentres()[facei]
+                    << endl;
+            }
+        }
+        // Faces, flipped field
+        {
+            const mapDistribute& faceMap = map.faceMap();
+            scalarField flux(mesh.faceAreas() & vector(1, 1, 1));
+            faceMap.distribute(flux, flipOp());
+            Pout<< "Construct size:" << faceMap.constructSize() << endl;
+            const scalarField newFlux
+            (
+                distributedMesh.faceAreas()
+              & vector(1, 1, 1)
+            );
+            forAll(newFlux, facei)
+            {
+                Pout<< "face:" << facei
+                    << "\tmappedFlux:" << flux[facei]
+                    << "\tactual:" << newFlux[facei]
+                    << endl;
+            }
+        }
+
+
+        {
+            const mapDistribute& cellMap = map.cellMap();
+            pointField cc(mesh.cellCentres());
+            cellMap.distribute(cc, noOp());
+            Pout<< "Construct size:" << cellMap.constructSize() << endl;
+            forAll(distributedMesh.cellCentres(), celli)
+            {
+                Pout<< "cell:" << celli
+                    << "\tmappedCc:" << cc[celli]
+                    << "\tactual:" << distributedMesh.cellCentres()[celli]
+                    << endl;
+            }
+        }
+        {
+            const mapDistribute& pointMap = map.pointMap();
+            pointField pc(mesh.points());
+            pointMap.distribute(pc, noOp());
+            Pout<< "Construct size:" << pointMap.constructSize() << endl;
+            forAll(distributedMesh.points(), pointi)
+            {
+                Pout<< "point:" << pointi
+                    << "\tmappedPoint:" << pc[pointi]
+                    << "\tactual:" << distributedMesh.points()[pointi]
+                    << endl;
+            }
+        }
+    }
+
+    Info<< "End\n" << endl;
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/0/U b/applications/test/mapDistributePolyMesh/cavity/0/U
new file mode 100644
index 00000000000..f3ab7eefb66
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/0/U
@@ -0,0 +1,41 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (1 1 0);
+
+boundaryField
+{
+    movingWall
+    {
+        type            fixedValue;
+        value           uniform (1 0 0);
+    }
+
+    fixedWalls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/0/p b/applications/test/mapDistributePolyMesh/cavity/0/p
new file mode 100644
index 00000000000..0976329cedb
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/0/p
@@ -0,0 +1,39 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    movingWall
+    {
+        type            zeroGradient;
+    }
+
+    fixedWalls
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/0/phi b/applications/test/mapDistributePolyMesh/cavity/0/phi
new file mode 100644
index 00000000000..0a745bbd5b7
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/0/phi
@@ -0,0 +1,228 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus.feature-oriented-fields          |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       surfaceScalarField;
+    location    "0";
+    object      fluxU;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 3 -1 0 0 0 0];
+oriented        1;
+
+
+internalField   nonuniform List<scalar> 
+180
+(
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+0.0001
+)
+;
+
+boundaryField
+{
+    movingWall
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    fixedWalls
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    frontAndBack
+    {
+        type            empty;
+        value           nonuniform 0();
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/Allclean b/applications/test/mapDistributePolyMesh/cavity/Allclean
new file mode 100755
index 00000000000..1ddaee91ff1
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/Allclean
@@ -0,0 +1,13 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+cleanCase
+
+# Restore default dictionaries
+cp system/decomposeParDict-2 system/decomposeParDict
+cp system/controlDict-startTime system/controlDict
+
+# -----------------------------------------------------------------------------
diff --git a/applications/test/mapDistributePolyMesh/cavity/Allrun b/applications/test/mapDistributePolyMesh/cavity/Allrun
new file mode 100755
index 00000000000..9afaa5243d9
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/Allrun
@@ -0,0 +1,17 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+
+runApplication decomposePar -decomposeParDict system/decomposeParDict-2
+
+runParallel -s scotch -np 5 redistributePar \
+    -decomposeParDict system/decomposeParDict-5
+
+runParallel -np 5 Test-mapDistributePolyMesh \
+    -decomposeParDict system/decomposeParDict-5
+
+# -----------------------------------------------------------------------------
diff --git a/applications/test/mapDistributePolyMesh/cavity/cavity.foam b/applications/test/mapDistributePolyMesh/cavity/cavity.foam
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/applications/test/mapDistributePolyMesh/cavity/constant/transportProperties b/applications/test/mapDistributePolyMesh/cavity/constant/transportProperties
new file mode 100644
index 00000000000..de00c3587cd
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/constant/transportProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              nu [ 0 2 -1 0 0 0 0 ] 0.01;
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/blockMeshDict b/applications/test/mapDistributePolyMesh/cavity/system/blockMeshDict
new file mode 100644
index 00000000000..3118c894d87
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/blockMeshDict
@@ -0,0 +1,75 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 0.1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 0.1)
+    (1 0 0.1)
+    (1 1 0.1)
+    (0 1 0.1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (10 10 1) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    movingWall
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    fixedWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+            (1 5 4 0)
+        );
+    }
+    frontAndBack
+    {
+        type empty;
+        faces
+        (
+            (0 3 2 1)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/controlDict b/applications/test/mapDistributePolyMesh/cavity/system/controlDict
new file mode 100644
index 00000000000..78ef7651b9c
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/controlDict
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.5;
+
+deltaT          0.005;
+
+writeControl    timeStep;
+
+writeInterval   20;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/controlDict-latestTime b/applications/test/mapDistributePolyMesh/cavity/system/controlDict-latestTime
new file mode 100644
index 00000000000..8b3e003782d
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/controlDict-latestTime
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         1.0;
+
+deltaT          0.005;
+
+writeControl    timeStep;
+
+writeInterval   20;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/controlDict-startTime b/applications/test/mapDistributePolyMesh/cavity/system/controlDict-startTime
new file mode 100644
index 00000000000..78ef7651b9c
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/controlDict-startTime
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.5;
+
+deltaT          0.005;
+
+writeControl    timeStep;
+
+writeInterval   20;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict
new file mode 100644
index 00000000000..8c054db9bbb
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict
@@ -0,0 +1,143 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  2;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+//- Keep owner and neighbour on same processor for faces in patches:
+//  (makes sense only for cyclic patches)
+//preservePatches (cyclic_half0 cyclic_half1);
+
+//- Keep all of faceSet on a single processor. This puts all cells
+//  connected with a point, edge or face on the same processor.
+//  (just having face connected cells might not guarantee a balanced
+//  decomposition)
+// The processor can be -1 (the decompositionMethod chooses the processor
+// for a good load balance) or explicitly provided (upsets balance).
+//singleProcessorFaceSets ((f0 -1));
+
+
+//- Keep owner and neighbour of baffles on same processor (i.e. keep it
+//  detectable as a baffle). Baffles are two boundary face sharing the
+//  same points.
+//preserveBaffles true;
+
+//- Use the volScalarField named here as a weight for each cell in the
+//  decomposition.  For example, use a particle population field to decompose
+//  for a balanced number of particles in a lagrangian simulation.
+// weightField dsmcRhoNMean;
+
+method          scotch;
+//method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+// method          multiLevel;
+// method          structured;  // does 2D decomposition of structured mesh
+
+multiLevelCoeffs
+{
+    // Decomposition methods to apply in turn. This is like hierarchical but
+    // fully general - every method can be used at every level.
+
+    level0
+    {
+        numberOfSubdomains  64;
+        //method simple;
+        //simpleCoeffs
+        //{
+        //    n           (2 1 1);
+        //    delta       0.001;
+        //}
+        method scotch;
+    }
+    level1
+    {
+        numberOfSubdomains  4;
+        method scotch;
+    }
+}
+
+// Desired output
+
+simpleCoeffs
+{
+    n           (2 1 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (1 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+structuredCoeffs
+{
+    // Patches to do 2D decomposition on. Structured mesh only; cells have
+    // to be in 'columns' on top of patches.
+    patches     (movingWall);
+
+    // Method to use on the 2D subset
+    method      scotch;
+}
+
+//// Is the case distributed? Note: command-line argument -roots takes
+//// precedence
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2 b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2
new file mode 100644
index 00000000000..8c054db9bbb
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2
@@ -0,0 +1,143 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  2;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+//- Keep owner and neighbour on same processor for faces in patches:
+//  (makes sense only for cyclic patches)
+//preservePatches (cyclic_half0 cyclic_half1);
+
+//- Keep all of faceSet on a single processor. This puts all cells
+//  connected with a point, edge or face on the same processor.
+//  (just having face connected cells might not guarantee a balanced
+//  decomposition)
+// The processor can be -1 (the decompositionMethod chooses the processor
+// for a good load balance) or explicitly provided (upsets balance).
+//singleProcessorFaceSets ((f0 -1));
+
+
+//- Keep owner and neighbour of baffles on same processor (i.e. keep it
+//  detectable as a baffle). Baffles are two boundary face sharing the
+//  same points.
+//preserveBaffles true;
+
+//- Use the volScalarField named here as a weight for each cell in the
+//  decomposition.  For example, use a particle population field to decompose
+//  for a balanced number of particles in a lagrangian simulation.
+// weightField dsmcRhoNMean;
+
+method          scotch;
+//method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+// method          multiLevel;
+// method          structured;  // does 2D decomposition of structured mesh
+
+multiLevelCoeffs
+{
+    // Decomposition methods to apply in turn. This is like hierarchical but
+    // fully general - every method can be used at every level.
+
+    level0
+    {
+        numberOfSubdomains  64;
+        //method simple;
+        //simpleCoeffs
+        //{
+        //    n           (2 1 1);
+        //    delta       0.001;
+        //}
+        method scotch;
+    }
+    level1
+    {
+        numberOfSubdomains  4;
+        method scotch;
+    }
+}
+
+// Desired output
+
+simpleCoeffs
+{
+    n           (2 1 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (1 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+structuredCoeffs
+{
+    // Patches to do 2D decomposition on. Structured mesh only; cells have
+    // to be in 'columns' on top of patches.
+    patches     (movingWall);
+
+    // Method to use on the 2D subset
+    method      scotch;
+}
+
+//// Is the case distributed? Note: command-line argument -roots takes
+//// precedence
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5 b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5
new file mode 100644
index 00000000000..0692228c7c8
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5
@@ -0,0 +1,143 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  5;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+//- Keep owner and neighbour on same processor for faces in patches:
+//  (makes sense only for cyclic patches)
+//preservePatches (cyclic_half0 cyclic_half1);
+
+//- Keep all of faceSet on a single processor. This puts all cells
+//  connected with a point, edge or face on the same processor.
+//  (just having face connected cells might not guarantee a balanced
+//  decomposition)
+// The processor can be -1 (the decompositionMethod chooses the processor
+// for a good load balance) or explicitly provided (upsets balance).
+//singleProcessorFaceSets ((f0 -1));
+
+
+//- Keep owner and neighbour of baffles on same processor (i.e. keep it
+//  detectable as a baffle). Baffles are two boundary face sharing the
+//  same points.
+//preserveBaffles true;
+
+//- Use the volScalarField named here as a weight for each cell in the
+//  decomposition.  For example, use a particle population field to decompose
+//  for a balanced number of particles in a lagrangian simulation.
+// weightField dsmcRhoNMean;
+
+method          scotch;
+//method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+// method          multiLevel;
+// method          structured;  // does 2D decomposition of structured mesh
+
+multiLevelCoeffs
+{
+    // Decomposition methods to apply in turn. This is like hierarchical but
+    // fully general - every method can be used at every level.
+
+    level0
+    {
+        numberOfSubdomains  64;
+        //method simple;
+        //simpleCoeffs
+        //{
+        //    n           (2 1 1);
+        //    delta       0.001;
+        //}
+        method scotch;
+    }
+    level1
+    {
+        numberOfSubdomains  4;
+        method scotch;
+    }
+}
+
+// Desired output
+
+simpleCoeffs
+{
+    n           (2 1 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (1 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+structuredCoeffs
+{
+    // Patches to do 2D decomposition on. Structured mesh only; cells have
+    // to be in 'columns' on top of patches.
+    patches     (movingWall);
+
+    // Method to use on the 2D subset
+    method      scotch;
+}
+
+//// Is the case distributed? Note: command-line argument -roots takes
+//// precedence
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-hierarchical b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-hierarchical
new file mode 100644
index 00000000000..4914ae5e029
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-hierarchical
@@ -0,0 +1,29 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  2;
+
+method          hierarchical;
+
+hierarchicalCoeffs
+{
+    n           (1 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-scotch b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-scotch
new file mode 100644
index 00000000000..9df92a84e45
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-scotch
@@ -0,0 +1,28 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  2;
+
+//method          scotch;
+method          hierarchical;
+hierarchicalCoeffs
+{
+    n           (2 1 1);
+    delta       0.001;
+    order       xyz;
+}
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/fvSchemes b/applications/test/mapDistributePolyMesh/cavity/system/fvSchemes
new file mode 100644
index 00000000000..b43ea748aca
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/fvSolution b/applications/test/mapDistributePolyMesh/cavity/system/fvSolution
new file mode 100644
index 00000000000..3be65f5ab56
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/fvSolution
@@ -0,0 +1,46 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    "(p|pFinal)"
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-06;
+        relTol          0;
+    }
+
+    U
+    {
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-05;
+        relTol          0;
+    }
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/processorField b/applications/test/mapDistributePolyMesh/cavity/system/processorField
new file mode 100644
index 00000000000..19c72f5418f
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/processorField
@@ -0,0 +1,64 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      postProcessingDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+functions
+{
+    processorField
+    {
+        // Type of functionObject
+        type            processorField;
+
+        // Where to load it from (if not already in solver)
+        libs            ("libfieldFunctionObjects.so");
+
+        // Function object enabled flag
+        enabled         true;
+
+        // When to output the average fields
+        writeControl    writeTime;
+    }
+    cellID
+    {
+        // Load the library containing the 'coded' functionObject
+        functionObjectLibs ("libutilityFunctionObjects.so");
+        type coded;
+        // Name of on-the-fly generated functionObject
+        redirectType cellID;
+        codeExecute
+        #{
+            volScalarField cellID
+            (
+                IOobject
+                (
+                    "cellID",
+                    mesh().time().timeName(),
+                    mesh(),
+                    IOobject::NO_READ
+                ),
+                mesh(),
+                dimensionedScalar("cellID", dimless, 0)
+            );
+            forAll(cellID, celli)
+            {
+                cellID[celli] = celli;
+            }
+            cellID.correctBoundaryConditions();
+            cellID.write();
+        #};
+    }
+}
+
+// ************************************************************************* //
diff --git a/applications/test/mapDistributePolyMesh/cavity/system/renumberMeshDict-random b/applications/test/mapDistributePolyMesh/cavity/system/renumberMeshDict-random
new file mode 100644
index 00000000000..67631d08ee7
--- /dev/null
+++ b/applications/test/mapDistributePolyMesh/cavity/system/renumberMeshDict-random
@@ -0,0 +1,112 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh renumbering dictionary";
+    object      renumberMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Write maps from renumbered back to original mesh
+writeMaps true;
+
+// Optional entry: sort cells on coupled boundaries to last for use with
+// e.g. nonBlockingGaussSeidel.
+sortCoupledFaceCells false;
+
+// Optional entry: renumber on a block-by-block basis. It uses a
+// blockCoeffs dictionary to construct a decompositionMethod to do
+// a block subdivision) and then applies the renumberMethod to each
+// block in turn. This can be used in large cases to keep the blocks
+// fitting in cache with all the the cache misses bunched at the end.
+// This number is the approximate size of the blocks - this gets converted
+// to a number of blocks that is the input to the decomposition method.
+//blockSize 1000;
+
+// Optional entry: sort points into internal and boundary points
+//orderPoints false;
+
+// Optional: suppress renumbering cellSets,faceSets,pointSets
+//renumberSets false;
+
+
+//method          CuthillMcKee;
+//method          Sloan;
+//method          manual;
+method          random;
+//method          structured;
+//method          spring;
+//method          zoltan;             // only if compiled with zoltan support
+
+//CuthillMcKeeCoeffs
+//{
+//    // Reverse CuthillMcKee (RCM) or plain
+//    reverse true;
+//}
+
+manualCoeffs
+{
+    // In system directory: new-to-original (i.e. order) labelIOList
+    dataFile "cellMap";
+}
+
+
+// For extruded (i.e. structured in one direction) meshes
+structuredCoeffs
+{
+    // Patches that mesh was extruded from. These determine the starting
+    // layer of cells
+    patches (movingWall);
+    // Method to renumber the starting layer of cells
+    method  random;
+
+    // Renumber in columns (depthFirst) or in layers
+    depthFirst true;
+
+    // Reverse ordering
+    reverse false;
+}
+
+
+springCoeffs
+{
+    // Maximum jump of cell indices. Is fraction of number of cells
+    maxCo 0.01;
+
+    // Limit the amount of movement; the fraction maxCo gets decreased
+    // with every iteration
+    freezeFraction 0.999;
+
+    // Maximum number of iterations
+    maxIter 1000;
+}
+
+
+blockCoeffs
+{
+    method          scotch;
+    //method hierarchical;
+    //hierarchicalCoeffs
+    //{
+    //    n           (1 2 1);
+    //    delta       0.001;
+    //    order       xyz;
+    //}
+}
+
+
+zoltanCoeffs
+{
+    ORDER_METHOD    LOCAL_HSFC;
+}
+
+
+// ************************************************************************* //
-- 
GitLab


From 9fef27cb7d19c4046fee53495b0888ceff081d26 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 22 May 2017 14:59:05 +0200
Subject: [PATCH 235/277] ENH: relocate inplaceUniq (wordReList) into wordRes

---
 .../primitives/strings/wordRes/wordRes.C      | 36 ++++++++++++++-----
 .../primitives/strings/wordRes/wordRes.H      |  4 +++
 .../utilities/ensightWrite/ensightWrite.C     | 28 +++------------
 .../utilities/ensightWrite/ensightWrite.H     |  3 --
 4 files changed, 37 insertions(+), 34 deletions(-)

diff --git a/src/OpenFOAM/primitives/strings/wordRes/wordRes.C b/src/OpenFOAM/primitives/strings/wordRes/wordRes.C
index 3f53f6492ff..618c47932c4 100644
--- a/src/OpenFOAM/primitives/strings/wordRes/wordRes.C
+++ b/src/OpenFOAM/primitives/strings/wordRes/wordRes.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,15 +36,12 @@ Foam::wordReList Foam::wordRes::uniq(const UList<wordRe>& input)
     label count = 0;
     forAll(input, i)
     {
-        const wordRe& select = input[i];
+        const auto& select = input[i];
 
-        if
-        (
-            select.isPattern()
-         || uniqWord.insert(static_cast<const word&>(select))
-        )
+        if (select.isPattern() || uniqWord.insert(select))
         {
-            retain[count++] = select;
+            retain[count] = select;
+            ++count;
         }
     }
 
@@ -53,4 +50,27 @@ Foam::wordReList Foam::wordRes::uniq(const UList<wordRe>& input)
 }
 
 
+void Foam::wordRes::inplaceUniq(wordReList& input)
+{
+    wordHashSet uniqWord;
+
+    label count = 0;
+    forAll(input, i)
+    {
+        const auto& select = input[i];
+
+        if (select.isPattern() || uniqWord.insert(select))
+        {
+            if (count != i)
+            {
+                input[count] = input[i];
+            }
+            ++count;
+        }
+    }
+
+    input.setSize(count);
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/strings/wordRes/wordRes.H b/src/OpenFOAM/primitives/strings/wordRes/wordRes.H
index 5cfe6b9b575..00ca657fe80 100644
--- a/src/OpenFOAM/primitives/strings/wordRes/wordRes.H
+++ b/src/OpenFOAM/primitives/strings/wordRes/wordRes.H
@@ -78,6 +78,10 @@ public:
         //  No filtering is done on regular expressions.
         static wordReList uniq(const UList<wordRe>& input);
 
+        //- Inplace subset of wordReList with duplicate words filtered out.
+        //  No filtering is done on regular expressions.
+        static void inplaceUniq(wordReList& input);
+
 
     // Member Functions
 
diff --git a/src/functionObjects/utilities/ensightWrite/ensightWrite.C b/src/functionObjects/utilities/ensightWrite/ensightWrite.C
index 30b11ffc9e3..47cd1050bed 100644
--- a/src/functionObjects/utilities/ensightWrite/ensightWrite.C
+++ b/src/functionObjects/utilities/ensightWrite/ensightWrite.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -26,6 +26,7 @@ License
 #include "ensightWrite.H"
 #include "Time.H"
 #include "polyMesh.H"
+#include "wordRes.H"
 #include "addToRunTimeSelectionTable.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -47,25 +48,6 @@ namespace functionObjects
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void Foam::functionObjects::ensightWrite::uniqWords(wordReList& lst)
-{
-    boolList retain(lst.size());
-    wordHashSet uniq;
-    forAll(lst, i)
-    {
-        const wordRe& select = lst[i];
-
-        retain[i] =
-        (
-            select.isPattern()
-         || uniq.insert(static_cast<const word&>(select))
-        );
-    }
-
-    inplaceSubset(retain, lst);
-}
-
-
 int Foam::functionObjects::ensightWrite::process(const word& fieldName)
 {
     int state = 0;
@@ -140,7 +122,7 @@ bool Foam::functionObjects::ensightWrite::read(const dictionary& dict)
     if (dict.found("patches"))
     {
         wordReList lst(dict.lookup("patches"));
-        uniqWords(lst);
+        wordRes::inplaceUniq(lst);
 
         writeOpts_.patchSelection(lst);
     }
@@ -148,7 +130,7 @@ bool Foam::functionObjects::ensightWrite::read(const dictionary& dict)
     if (dict.found("faceZones"))
     {
         wordReList lst(dict.lookup("faceZones"));
-        uniqWords(lst);
+        wordRes::inplaceUniq(lst);
 
         writeOpts_.faceZoneSelection(lst);
     }
@@ -174,7 +156,7 @@ bool Foam::functionObjects::ensightWrite::read(const dictionary& dict)
     // output fields
     //
     dict.lookup("fields") >> selectFields_;
-    uniqWords(selectFields_);
+    wordRes::inplaceUniq(selectFields_);
 
     return true;
 }
diff --git a/src/functionObjects/utilities/ensightWrite/ensightWrite.H b/src/functionObjects/utilities/ensightWrite/ensightWrite.H
index edba7c8535a..67bc5ca3cbc 100644
--- a/src/functionObjects/utilities/ensightWrite/ensightWrite.H
+++ b/src/functionObjects/utilities/ensightWrite/ensightWrite.H
@@ -135,9 +135,6 @@ class ensightWrite
 
     // Private Member Functions
 
-        //- Eliminate duplicate 'word' entries
-        static void uniqWords(wordReList&);
-
         //- Ensight case handler
         ensightCase& ensCase()
         {
-- 
GitLab


From 5a528a7330213b3ca566e80491a7dfbaaa793aba Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 22 May 2017 15:06:21 +0200
Subject: [PATCH 236/277] STYLE: additional cleanup of hashtable item found
 checks

---
 .../fields/fvPatchFields/fvPatchField/fvPatchFieldNew.C     | 6 +-----
 .../fields/fvsPatchFields/fvsPatchField/fvsPatchFieldNew.C  | 6 +-----
 .../basic/basicThermo/basicThermoTemplates.C                | 4 ++--
 3 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchFieldNew.C b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchFieldNew.C
index 664f3ca2f28..bf62d071dc2 100644
--- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchFieldNew.C
+++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchFieldNew.C
@@ -148,11 +148,7 @@ Foam::tmp<Foam::fvPatchField<Type>> Foam::fvPatchField<Type>::New
         typename dictionaryConstructorTable::iterator patchTypeCstrIter
             = dictionaryConstructorTablePtr_->find(p.type());
 
-        if
-        (
-            patchTypeCstrIter != dictionaryConstructorTablePtr_->end()
-         && patchTypeCstrIter() != cstrIter()
-        )
+        if (patchTypeCstrIter.found() && patchTypeCstrIter() != cstrIter())
         {
             FatalIOErrorInFunction
             (
diff --git a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchFieldNew.C b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchFieldNew.C
index 32c567f95d0..12af314f875 100644
--- a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchFieldNew.C
+++ b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchFieldNew.C
@@ -136,11 +136,7 @@ Foam::tmp<Foam::fvsPatchField<Type>> Foam::fvsPatchField<Type>::New
         typename dictionaryConstructorTable::iterator patchTypeCstrIter
             = dictionaryConstructorTablePtr_->find(p.type());
 
-        if
-        (
-            patchTypeCstrIter != dictionaryConstructorTablePtr_->end()
-         && patchTypeCstrIter() != cstrIter()
-        )
+        if (patchTypeCstrIter.found() && patchTypeCstrIter() != cstrIter())
         {
             FatalIOErrorInFunction
             (
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C b/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
index b589708163b..56817cd219d 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
@@ -41,7 +41,7 @@ typename Table::iterator Foam::basicThermo::lookupThermo
     typename Table::iterator cstrIter = tablePtr->find(thermoTypeName);
 
     // Print error message if package not found in the table
-    if (cstrIter == tablePtr->end())
+    if (!cstrIter.found())
     {
         FatalErrorInFunction
             << "Unknown " << Thermo::typeName << " type " << nl
@@ -182,7 +182,7 @@ typename Table::iterator Foam::basicThermo::lookupThermo
 
         typename Table::iterator cstrIter = tablePtr->find(thermoTypeName);
 
-        if (cstrIter == tablePtr->end())
+        if (!cstrIter.found())
         {
             FatalErrorInFunction
                 << "Unknown " << Thermo::typeName << " type "
-- 
GitLab


From f0fcfce6a35a0caf1fc6d81395118defea3a2c4b Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 22 May 2017 18:12:25 +0200
Subject: [PATCH 237/277] ENH: avoid weird cast workarounds for
 edgeFaceCirculator

- holding a pointer instead of a reference for edgeFaceCirculator
  simplifies overall handling.
---
 src/meshTools/Make/files                      |   2 -
 .../edgeFaceCirculator/edgeFaceCirculator.C   |  44 --------
 .../edgeFaceCirculator/edgeFaceCirculator.H   |  34 +++---
 .../edgeFaceCirculator/edgeFaceCirculatorI.H  | 102 +++++++++++-------
 4 files changed, 81 insertions(+), 101 deletions(-)
 delete mode 100644 src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C

diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files
index c503db29754..b77d0bdbc99 100644
--- a/src/meshTools/Make/files
+++ b/src/meshTools/Make/files
@@ -63,8 +63,6 @@ $(csys)/coordinateRotation/EulerCoordinateRotation.C
 $(csys)/coordinateRotation/STARCDCoordinateRotation.C
 $(csys)/coordinateRotation/cylindrical.C
 
-edgeFaceCirculator/edgeFaceCirculator.C
-
 polyMeshZipUpCells/polyMeshZipUpCells.C
 primitiveMeshGeometry/primitiveMeshGeometry.C
 
diff --git a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C
deleted file mode 100644
index 5431bb419fb..00000000000
--- a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.C
+++ /dev/null
@@ -1,44 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2017 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 "edgeFaceCirculator.H"
-#include "primitiveMesh.H"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-const Foam::primitiveMesh* const Foam::edgeFaceCirculator::endConstIterMeshPtr
-    = nullptr;
-
-const Foam::edgeFaceCirculator Foam::edgeFaceCirculator::endConstIter
-(
-    *Foam::edgeFaceCirculator::endConstIterMeshPtr, // primitiveMesh
-    -1,                                             // faceLabel
-    false,                                          // ownerSide
-    -1,                                             // index
-    false                                           // isBoundaryEdge
-);
-
-
-// ************************************************************************* //
diff --git a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H
index c9b8ac0708b..a6a1e9f6ce9 100644
--- a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H
+++ b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H
@@ -86,19 +86,10 @@ class primitiveMesh;
 
 class edgeFaceCirculator
 {
-    // Static data members
+    // Private Member Data
 
-        //- End iterator primitiveMesh nullptr
-        static const primitiveMesh* const endConstIterMeshPtr;
-
-        //- End iterator
-        static const edgeFaceCirculator endConstIter;
-
-
-    // Private data
-
-        //- Mesh
-        const primitiveMesh& mesh_;
+        //- The underlying mesh pointer
+        const primitiveMesh* meshPtr_;
 
         //- Current face
         label faceLabel_;
@@ -119,16 +110,21 @@ class edgeFaceCirculator
 
     // Private Member Functions
 
+        //- The underlying mesh
+        inline const primitiveMesh& mesh() const;
+
         //- Set to end() iterator
         inline void setEnd();
 
         //- Check and set faceLabel_ and ownerSide_
         inline void setFace(const label facei, const label celli);
 
-        //- Set faceLabel_ to be the other face on the cell that uses the
-        //  edge.
+        //- Set faceLabel_ to be the other face on the cell that uses the edge.
         inline void otherFace(const label celli);
 
+        //- Construct null - this is also an end iterator
+        inline edgeFaceCirculator();
+
 
 public:
 
@@ -145,7 +141,7 @@ public:
         );
 
         //- Construct as copy
-        inline edgeFaceCirculator(const edgeFaceCirculator&);
+        inline edgeFaceCirculator(const edgeFaceCirculator& circ);
 
 
     // Member Functions
@@ -159,8 +155,12 @@ public:
             const label v1
         );
 
+        //- Return the face label, -1 for end iterator
         inline label faceLabel() const;
 
+        //- Return true if the face label corresponds to an internal face
+        inline bool isInternalFace() const;
+
         inline bool ownerSide() const;
 
         inline label index() const;
@@ -197,8 +197,8 @@ public:
         inline edgeFaceCirculator cbegin() const;
 
         //- Iterator set to beyond the end of the walk.
-        inline const edgeFaceCirculator& end() const;
-        inline const edgeFaceCirculator& cend() const;
+        inline const edgeFaceCirculator end() const;
+        inline const edgeFaceCirculator cend() const;
 };
 
 
diff --git a/src/meshTools/edgeFaceCirculator/edgeFaceCirculatorI.H b/src/meshTools/edgeFaceCirculator/edgeFaceCirculatorI.H
index bbebe4382f1..23c1f76faf4 100644
--- a/src/meshTools/edgeFaceCirculator/edgeFaceCirculatorI.H
+++ b/src/meshTools/edgeFaceCirculator/edgeFaceCirculatorI.H
@@ -27,6 +27,12 @@ License
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
+inline const Foam::primitiveMesh& Foam::edgeFaceCirculator::mesh() const
+{
+    return *meshPtr_;
+}
+
+
 void Foam::edgeFaceCirculator::setEnd()
 {
     faceLabel_ = -1;
@@ -42,7 +48,7 @@ void Foam::edgeFaceCirculator::setFace
 {
     faceLabel_ = facei;
 
-    if (!isBoundaryEdge_ && !mesh_.isInternalFace(facei))
+    if (!isBoundaryEdge_ && !mesh().isInternalFace(facei))
     {
         FatalErrorInFunction
             << "Edge is not defined as boundary edge but still walked to"
@@ -54,11 +60,11 @@ void Foam::edgeFaceCirculator::setFace
 
 void Foam::edgeFaceCirculator::otherFace(const label celli)
 {
-    const face& f = mesh_.faces()[faceLabel_];
+    const face& f = mesh().faces()[faceLabel_];
     label v0 = f[index_];
     label v1 = f.nextLabel(index_);
 
-    const cell& cFaces = mesh_.cells()[celli];
+    const cell& cFaces = mesh().cells()[celli];
 
     forAll(cFaces, i)
     {
@@ -66,7 +72,7 @@ void Foam::edgeFaceCirculator::otherFace(const label celli)
 
         if (faceB != faceLabel_)
         {
-            label fp = getMinIndex(mesh_.faces()[faceB], v0, v1);
+            label fp = getMinIndex(mesh().faces()[faceB], v0, v1);
 
             if (fp >= 0)
             {
@@ -81,14 +87,24 @@ void Foam::edgeFaceCirculator::otherFace(const label celli)
         << "Could not find next face stepping"
         << " through cell along edge." << endl
         << "face:" << faceLabel_ << " index in face:" << index_
-        << " edge:" << mesh_.points()[v0] << mesh_.points()[v1]
+        << " edge:" << mesh().points()[v0] << mesh().points()[v1]
         << abort(FatalError);
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-//- Construct from components
+Foam::edgeFaceCirculator::edgeFaceCirculator()
+:
+    meshPtr_(nullptr),
+    faceLabel_(-1),
+    ownerSide_(false),
+    index_(-1),
+    isBoundaryEdge_(false),
+    startFaceLabel_(0)
+{}
+
+
 Foam::edgeFaceCirculator::edgeFaceCirculator
 (
     const primitiveMesh& mesh,
@@ -98,7 +114,7 @@ Foam::edgeFaceCirculator::edgeFaceCirculator
     const bool isBoundaryEdge
 )
 :
-    mesh_(mesh),
+    meshPtr_(&mesh),
     faceLabel_(faceLabel),
     ownerSide_(ownerSide),
     index_(index),
@@ -107,10 +123,9 @@ Foam::edgeFaceCirculator::edgeFaceCirculator
 {}
 
 
-//- Construct copy
 Foam::edgeFaceCirculator::edgeFaceCirculator(const edgeFaceCirculator& circ)
 :
-    mesh_(circ.mesh_),
+    meshPtr_(circ.meshPtr_),
     faceLabel_(circ.faceLabel_),
     ownerSide_(circ.ownerSide_),
     index_(circ.index_),
@@ -158,6 +173,17 @@ Foam::label Foam::edgeFaceCirculator::faceLabel() const
 }
 
 
+bool Foam::edgeFaceCirculator::isInternalFace() const
+{
+    return
+    (
+        faceLabel_ >= 0
+     && meshPtr_
+     && meshPtr_->isInternalFace(faceLabel_)
+    );
+}
+
+
 bool Foam::edgeFaceCirculator::ownerSide() const
 {
     return ownerSide_;
@@ -174,11 +200,11 @@ Foam::label Foam::edgeFaceCirculator::cellLabel() const
 {
     if (ownerSide_)
     {
-        return mesh_.faceOwner()[faceLabel_];
+        return mesh().faceOwner()[faceLabel_];
     }
-    else if (mesh_.isInternalFace(faceLabel_))
+    else if (mesh().isInternalFace(faceLabel_))
     {
-        return mesh_.faceNeighbour()[faceLabel_];
+        return mesh().faceNeighbour()[faceLabel_];
     }
     else
     {
@@ -189,7 +215,7 @@ Foam::label Foam::edgeFaceCirculator::cellLabel() const
 
 bool Foam::edgeFaceCirculator::sameOrder(const label v0, const label v1) const
 {
-    const face& f = mesh_.faces()[faceLabel_];
+    const face& f = mesh().faces()[faceLabel_];
 
     label fp = getMinIndex(f, v0, v1);
 
@@ -216,21 +242,21 @@ void Foam::edgeFaceCirculator::setCanonical()
 
         while (true)
         {
-            if (mesh_.isInternalFace(faceLabel_))
+            if (mesh().isInternalFace(faceLabel_))
             {
                 if (ownerSide_)
                 {
-                    label celli = mesh_.faceNeighbour()[faceLabel_];
+                    label celli = mesh().faceNeighbour()[faceLabel_];
                     otherFace(celli);
                     // Maintain reverse direction of walking
-                    ownerSide_ = (mesh_.faceOwner()[faceLabel_] == celli);
+                    ownerSide_ = (mesh().faceOwner()[faceLabel_] == celli);
                 }
                 else
                 {
-                    label celli = mesh_.faceOwner()[faceLabel_];
+                    label celli = mesh().faceOwner()[faceLabel_];
                     otherFace(celli);
                     // Maintain reverse direction of walking
-                    ownerSide_ = (mesh_.faceOwner()[faceLabel_] == celli);
+                    ownerSide_ = (mesh().faceOwner()[faceLabel_] == celli);
                 }
             }
             else if (ownerSide_)
@@ -239,22 +265,22 @@ void Foam::edgeFaceCirculator::setCanonical()
             }
             else
             {
-                label celli = mesh_.faceOwner()[faceLabel_];
+                label celli = mesh().faceOwner()[faceLabel_];
                 otherFace(celli);
                 // Maintain reverse direction of walking
-                ownerSide_ = (mesh_.faceOwner()[faceLabel_] == celli);
+                ownerSide_ = (mesh().faceOwner()[faceLabel_] == celli);
             }
 
             i++;
 
             if (i >= 1000)
             {
-                const face& f = mesh_.faces()[faceLabel_];
+                const face& f = mesh().faces()[faceLabel_];
 
                 FatalErrorInFunction
                     << "Walked " << i << " cells around edge "
-                    << mesh_.points()[f[index_]]
-                    << mesh_.points()[f.nextLabel(index_)]
+                    << mesh().points()[f[index_]]
+                    << mesh().points()[f.nextLabel(index_)]
                     << " without reaching a boundary face."
                     << " Are you sure this is a boundary edge?"
                     << abort(FatalError);
@@ -281,15 +307,15 @@ void Foam::edgeFaceCirculator::setCanonical()
                 break;
             }
 
-            if (!mesh_.isInternalFace(faceLabel_))
+            if (!mesh().isInternalFace(faceLabel_))
             {
-                const face& f = mesh_.faces()[faceLabel_];
+                const face& f = mesh().faces()[faceLabel_];
 
                 FatalErrorInFunction
                     << "Reached boundary face " << faceLabel_
                     << " when walking around internal edge "
-                    << mesh_.points()[f[index_]]
-                    << mesh_.points()[f.nextLabel(index_)]
+                    << mesh().points()[f[index_]]
+                    << mesh().points()[f.nextLabel(index_)]
                     << "." << endl
                     << "Are you sure this is an internal edge?"
                     << abort(FatalError);
@@ -360,10 +386,10 @@ Foam::edgeFaceCirculator::operator++()
     else if (ownerSide_)
     {
         // Step to owner
-        label celli = mesh_.faceOwner()[faceLabel_];
+        label celli = mesh().faceOwner()[faceLabel_];
         otherFace(celli);
         // Maintain direction of walking
-        ownerSide_ = (mesh_.faceOwner()[faceLabel_] != celli);
+        ownerSide_ = (mesh().faceOwner()[faceLabel_] != celli);
 
         // Check for internal edge : ends on starting face.
         if (!isBoundaryEdge_ && faceLabel_ == startFaceLabel_)
@@ -371,13 +397,13 @@ Foam::edgeFaceCirculator::operator++()
             setEnd();
         }
     }
-    else if (mesh_.isInternalFace(faceLabel_))
+    else if (mesh().isInternalFace(faceLabel_))
     {
         // Step to neighbour
-        label celli = mesh_.faceNeighbour()[faceLabel_];
+        label celli = mesh().faceNeighbour()[faceLabel_];
         otherFace(celli);
         // Maintain direction of walking
-        ownerSide_ = (mesh_.faceOwner()[faceLabel_] != celli);
+        ownerSide_ = (mesh().faceOwner()[faceLabel_] != celli);
 
         // Check for internal edge : ends on starting face.
         if (!isBoundaryEdge_ && faceLabel_ == startFaceLabel_)
@@ -399,7 +425,7 @@ Foam::edgeFaceCirculator Foam::edgeFaceCirculator::begin() const
 {
     edgeFaceCirculator iter
     (
-        mesh_,
+        *meshPtr_,
         faceLabel_,
         ownerSide_,
         index_,
@@ -418,7 +444,7 @@ Foam::edgeFaceCirculator Foam::edgeFaceCirculator::cbegin() const
 {
     edgeFaceCirculator iter
     (
-        mesh_,
+        *meshPtr_,
         faceLabel_,
         ownerSide_,
         index_,
@@ -433,14 +459,14 @@ Foam::edgeFaceCirculator Foam::edgeFaceCirculator::cbegin() const
 }
 
 
-const Foam::edgeFaceCirculator& Foam::edgeFaceCirculator::end() const
+const Foam::edgeFaceCirculator Foam::edgeFaceCirculator::end() const
 {
-    return endConstIter;
+    return edgeFaceCirculator();
 }
 
-const Foam::edgeFaceCirculator& Foam::edgeFaceCirculator::cend() const
+const Foam::edgeFaceCirculator Foam::edgeFaceCirculator::cend() const
 {
-    return endConstIter;
+    return edgeFaceCirculator();
 }
 
 
-- 
GitLab


From c4caef3a1b31661db8928f60525c5a90003996cd Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 24 May 2017 07:40:48 +0200
Subject: [PATCH 238/277] ENH: nicer indentation of inGroups patch entry (issue
 #474)

- The inGroups is a wordList.
  It can be flattened on output to make files more readable.
---
 .../Identifiers/patch/coupleGroupIdentifier.C | 14 ++++---
 .../Identifiers/patch/coupleGroupIdentifier.H | 28 ++++++++++----
 .../Identifiers/patch/patchIdentifier.C       | 16 ++++----
 .../Identifiers/patch/patchIdentifier.H       | 38 +++++++++----------
 4 files changed, 55 insertions(+), 41 deletions(-)

diff --git a/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.C b/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.C
index 9b7fc8a548d..e68137a628f 100644
--- a/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.C
+++ b/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.C
@@ -134,16 +134,18 @@ Foam::coupleGroupIdentifier::coupleGroupIdentifier()
 {}
 
 
-Foam::coupleGroupIdentifier::coupleGroupIdentifier(const word& name)
+Foam::coupleGroupIdentifier::coupleGroupIdentifier(const word& patchGroupName)
 :
-    name_(name)
+    name_(patchGroupName)
 {}
 
 
 Foam::coupleGroupIdentifier::coupleGroupIdentifier(const dictionary& dict)
 :
-    name_(dict.lookupOrDefault<word>("coupleGroup", ""))
-{}
+    name_()
+{
+    dict.readIfPresent("coupleGroup", name_);
+}
 
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
@@ -222,7 +224,7 @@ void Foam::coupleGroupIdentifier::write(Ostream& os) const
 {
     if (valid())
     {
-        os.writeKeyword("coupleGroup") << name() << token::END_STATEMENT << nl;
+        os.writeEntry("coupleGroup", name());
     }
 }
 
@@ -232,7 +234,7 @@ void Foam::coupleGroupIdentifier::write(Ostream& os) const
 Foam::Ostream& Foam::operator<<(Ostream& os, const coupleGroupIdentifier& p)
 {
     p.write(os);
-    os.check("Ostream& operator<<(Ostream& os, const coupleGroupIdentifier& p");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.H b/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.H
index 895dcf53ffa..cf1caa3667c 100644
--- a/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.H
+++ b/src/OpenFOAM/meshes/Identifiers/patch/coupleGroupIdentifier.H
@@ -53,11 +53,11 @@ class Ostream;
 
 // Forward declaration of friend functions and operators
 class coupleGroupIdentifier;
-Ostream& operator<<(Ostream&, const coupleGroupIdentifier&);
+Ostream& operator<<(Ostream& os, const coupleGroupIdentifier& p);
 
 
 /*---------------------------------------------------------------------------*\
-                         Class coupleGroupIdentifier Declaration
+                    Class coupleGroupIdentifier Declaration
 \*---------------------------------------------------------------------------*/
 
 class coupleGroupIdentifier
@@ -71,7 +71,11 @@ class coupleGroupIdentifier
     // Private Member Functions
 
         //- Find other patch in specified mesh. Returns index of patch or -1.
-        label findOtherPatchID(const polyMesh&, const polyPatch&) const;
+        label findOtherPatchID
+        (
+            const polyMesh& mesh,
+            const polyPatch& thisPatch
+        ) const;
 
 
 public:
@@ -85,7 +89,7 @@ public:
         coupleGroupIdentifier(const word& patchGroupName);
 
         //- Construct from dictionary
-        coupleGroupIdentifier(const dictionary&);
+        coupleGroupIdentifier(const dictionary& dict);
 
 
     // Member Functions
@@ -97,19 +101,27 @@ public:
         inline bool valid() const;
 
         //- Find other patch in same region. Returns index of patch or -1.
-        label findOtherPatchID(const polyPatch&) const;
+        label findOtherPatchID(const polyPatch& thisPatch) const;
 
         //- Find other patch and region. Returns index of patch and sets
         //  otherRegion to name of region. Fatal error if patch not found
-        label findOtherPatchID(const polyPatch&, word&) const;
+        label findOtherPatchID
+        (
+            const polyPatch& thisPatch,
+            word& otherRegion
+        ) const;
 
         //- Write the data as a dictionary
-        void write(Ostream&) const;
+        void write(Ostream& os) const;
 
 
     // IOstream Operators
 
-        friend Ostream& operator<<(Ostream&, const coupleGroupIdentifier&);
+        friend Ostream& operator<<
+        (
+            Ostream& os,
+            const coupleGroupIdentifier& p
+        );
 };
 
 
diff --git a/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C b/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C
index b69ffae4f4c..086f44ef8d6 100644
--- a/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C
+++ b/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C
@@ -82,7 +82,7 @@ Foam::patchIdentifier::~patchIdentifier()
 
 bool Foam::patchIdentifier::inGroup(const word& name) const
 {
-    return findIndex(inGroups_, name) != -1;
+    return inGroups_.size() && findIndex(inGroups_, name) != -1;
 }
 
 
@@ -90,23 +90,23 @@ void Foam::patchIdentifier::write(Ostream& os) const
 {
     if (physicalType_.size())
     {
-        os.writeKeyword("physicalType") << physicalType_
-            << token::END_STATEMENT << nl;
+        os.writeEntry("physicalType", physicalType_);
     }
     if (inGroups_.size())
     {
-        os.writeKeyword("inGroups") << inGroups_
-            << token::END_STATEMENT << nl;
+        os.writeKeyword("inGroups");
+        // Write list with flatOutput
+        inGroups_.writeList(os, 0) << token::END_STATEMENT << nl;
     }
 }
 
 
 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
 
-Foam::Ostream& Foam::operator<<(Ostream& os, const patchIdentifier& pi)
+Foam::Ostream& Foam::operator<<(Ostream& os, const patchIdentifier& p)
 {
-    pi.write(os);
-    os.check("Ostream& operator<<(Ostream&, const patchIdentifier&)");
+    p.write(os);
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.H b/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.H
index e54d2767330..760744a87e9 100644
--- a/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.H
+++ b/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.H
@@ -25,7 +25,7 @@ Class
     Foam::patchIdentifier
 
 Description
-    Identifies patch by name, patch index and physical type
+    Identifies a patch by name, patch index and physical type
 
 SourceFiles
     patchIdentifier.C
@@ -48,11 +48,11 @@ class dictionary;
 // Forward declaration of friend functions and operators
 
 class patchIdentifier;
-Ostream& operator<<(Ostream&, const patchIdentifier&);
+Ostream& operator<<(Ostream& os, const patchIdentifier& p);
 
 
 /*---------------------------------------------------------------------------*\
-                           Class patchIdentifier Declaration
+                       Class patchIdentifier Declaration
 \*---------------------------------------------------------------------------*/
 
 class patchIdentifier
@@ -68,7 +68,7 @@ class patchIdentifier
         //- Optional physical type
         mutable word physicalType_;
 
-        //- Optional groups patch belongs to
+        //- Optional groups to which the patch belongs
         wordList inGroups_;
 
 public:
@@ -88,14 +88,14 @@ public:
         patchIdentifier
         (
             const word& name,
-            const dictionary&,
+            const dictionary& dict,
             const label index
         );
 
-        //- Construct from geometric patch, resetting the index
+        //- Copy construct from geometric patch, resetting the index
         patchIdentifier
         (
-            const patchIdentifier&,
+            const patchIdentifier& p,
             const label index
         );
 
@@ -106,64 +106,64 @@ public:
 
     // Member Functions
 
-        //- Return name
+        //- Return the patch name
         const word& name() const
         {
             return name_;
         }
 
-        //- Return name for modification
+        //- Modifiable patch name
         word& name()
         {
             return name_;
         }
 
-        //- Return the optional physical type of the patch
+        //- The optional physical type of the patch
         const word& physicalType() const
         {
             return physicalType_;
         }
 
-        //- Return the optional physical type of the patch for modification
+        //- Modifiable optional physical type of the patch
         word& physicalType()
         {
             return physicalType_;
         }
 
-        //- Return the index of this patch in the boundaryMesh
+        //- The index of this patch in the boundaryMesh
         label index() const
         {
             return index_;
         }
 
-        //- Return the index of this patch in the boundaryMesh for modification
+        //- Modifiable the index of this patch in the boundaryMesh
         label& index()
         {
             return index_;
         }
 
-        //- Return the optional groups patch belongs to
+        //- The optional groups that the patch belongs to
         const wordList& inGroups() const
         {
             return inGroups_;
         }
 
-        //- Return the optional groups patch belongs to for modification
+        //- Modifiable optional groups that the patch belongs to
         wordList& inGroups()
         {
             return inGroups_;
         }
 
-        //- Test if in group
-        bool inGroup(const word&) const;
+        //- Check if the patch is in named group
+        bool inGroup(const word& name) const;
 
         //- Write patchIdentifier as a dictionary
-        void write(Ostream&) const;
+        void write(Ostream& os) const;
 
 
     // Ostream Operator
 
-        friend Ostream& operator<<(Ostream&, const patchIdentifier&);
+        friend Ostream& operator<<(Ostream& os, const patchIdentifier& p);
 };
 
 
-- 
GitLab


From 51b4c3898781c6300c69bd5b91774d24fe445b30 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 24 May 2017 07:51:38 +0200
Subject: [PATCH 239/277] STYLE: explicitly use iterator object() in ListOps

STYLE: adjust parameter names and template types in invertManyToMany

- more explicit about the acceptable list types
---
 .../containers/Lists/ListOps/ListOps.H        | 27 +++++---
 .../Lists/ListOps/ListOpsTemplates.C          | 63 ++++++++-----------
 2 files changed, 44 insertions(+), 46 deletions(-)

diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
index 3960b4ffe2a..46f3784a162 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
@@ -171,17 +171,26 @@ labelList invert(const label len, const labelUList& map);
 labelListList invertOneToMany(const label len, const labelUList& map);
 
 //- Invert many-to-many.
-//  Input and output types need to be inherited from List.
-//  eg, faces to pointFaces.
-template<class InList, class OutList>
-void invertManyToMany(const label len, const UList<InList>&, List<OutList>&);
+//  Input and output types must be inherited from List and also
+//  contain ints/labels. Used, for example, for faces to pointFaces.
+template<class InputIntListType, class OutputIntListType>
+void invertManyToMany
+(
+    const label len,
+    const UList<InputIntListType>& input,
+    List<OutputIntListType>& output
+);
 
-template<class InList, class OutList>
-List<OutList> invertManyToMany(const label len, const UList<InList>& in)
+template<class InputIntListType, class OutputIntListType>
+List<OutputIntListType> invertManyToMany
+(
+    const label len,
+    const UList<InputIntListType>& input
+)
 {
-    List<OutList> out;
-    invertManyToMany<InList,OutList>(len, in, out);
-    return out;
+    List<OutputIntListType> output;
+    invertManyToMany<InputIntListType,OutputIntListType>(len, input, output);
+    return output;
 }
 
 //- Create identity map of the given length with (map[i] == i)
diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
index 9267221e99c..48e8b73897e 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
@@ -124,16 +124,11 @@ void Foam::inplaceMapValue
     Container& lst
 )
 {
-    for
-    (
-        typename Container::iterator iter = lst.begin();
-        iter != lst.end();
-        ++iter
-    )
+    for (auto iter = lst.begin(); iter != lst.end(); ++iter)
     {
-        if (iter() >= 0)
+        if (iter.object() >= 0)
         {
-            iter() = oldToNew[iter()];
+            iter.object() = oldToNew[iter.object()];
         }
     }
 }
@@ -148,16 +143,11 @@ void Foam::inplaceMapKey
 {
     Container newLst(lst.size());
 
-    for
-    (
-        typename Container::iterator iter = lst.begin();
-        iter != lst.end();
-        ++iter
-    )
+    for (auto iter = lst.begin(); iter != lst.end(); ++iter)
     {
         if (iter.key() >= 0)
         {
-            newLst.insert(oldToNew[iter.key()], iter());
+            newLst.insert(oldToNew[iter.key()], iter.object());
         }
     }
 
@@ -477,46 +467,45 @@ void Foam::inplaceSubsetList
 }
 
 
-template<class InList, class OutList>
+template<class InputIntListType, class OutputIntListType>
 void Foam::invertManyToMany
 (
-    const label nEdges,
-    const UList<InList>& pointEdges,
-    List<OutList>& edges
+    const label len,
+    const UList<InputIntListType>& input,
+    List<OutputIntListType>& output
 )
 {
-    // Number of points per edge
-    labelList nPointsPerEdge(nEdges, 0);
+    // The output list sizes
+    labelList sizes(len, 0);
 
-    forAll(pointEdges, pointi)
+    forAll(input, listi)
     {
-        const InList& pEdges = pointEdges[pointi];
+        const InputIntListType& sublist = input[listi];
 
-        forAll(pEdges, j)
+        forAll(sublist, idx)
         {
-            nPointsPerEdge[pEdges[j]]++;
+            sizes[sublist[idx]]++;
         }
     }
 
-    // Size edges
-    edges.setSize(nEdges);
-
-    forAll(nPointsPerEdge, edgeI)
+    // Size output
+    output.setSize(len);
+    forAll(sizes, outi)
     {
-        edges[edgeI].setSize(nPointsPerEdge[edgeI]);
+        output[outi].setSize(sizes[outi]);
     }
-    nPointsPerEdge = 0;
 
-    // Fill edges
-    forAll(pointEdges, pointi)
+    // Fill output
+    sizes = 0;
+    forAll(input, listi)
     {
-        const InList& pEdges = pointEdges[pointi];
+        const InputIntListType& sublist = input[listi];
 
-        forAll(pEdges, j)
+        forAll(sublist, idx)
         {
-            label edgeI = pEdges[j];
+            const label outi = sublist[idx];
 
-            edges[edgeI][nPointsPerEdge[edgeI]++] = pointi;
+            output[outi][sizes[outi]++] = listi;
         }
     }
 }
-- 
GitLab


From b5ed93a40afa46d4b280b0729a1d33a5dd43b56f Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Wed, 24 May 2017 12:26:12 +0100
Subject: [PATCH 240/277] ENH: orientedFields - refectored and simplified usage

---
 .../rhoCentralDyMFoam/rhoCentralDyMFoam.C     |   5 +-
 .../rhoCentralFoam/rhoCentralFoam.C           |   5 +-
 .../MPPICInterFoam/alphaEqnSubCycle.H         |   2 -
 .../compressibleInterFoam/alphaEqnsSubCycle.H |   2 -
 .../multiphaseMixtureThermo.C                 |   5 +-
 .../interCondensatingEvaporatingFoam.C        |   1 -
 .../multiphase/interFoam/alphaEqnSubCycle.H   |   2 -
 .../interMixingFoam/alphaEqnsSubCycle.H       |   1 -
 .../interPhaseChangeFoam.C                    |   2 -
 .../multiphaseEulerFoam/createFields.H        |   1 -
 .../multiphaseSystem/multiphaseSystem.C       |   5 +-
 .../multiphaseSystem/phaseModel/phaseModel.C  |   2 +-
 .../multiphase/multiphaseEulerFoam/pEqn.H     |   1 -
 .../multiphaseMixture/multiphaseMixture.C     |   6 +-
 .../BlendedInterfacialModel.C                 |   3 +-
 .../MomentumTransferPhaseSystem.C             |   4 +-
 .../MovingPhaseModel/MovingPhaseModel.C       |   4 +-
 .../multiphaseSystem/multiphaseSystem.C       |   4 +-
 .../reactingMultiphaseEulerFoam/pU/pEqn.H     |   2 -
 .../twoLiquidMixingFoam/alphaEqnSubCycle.H    |   1 -
 .../twoPhaseSystem/phaseModel/phaseModel.C    |   4 +-
 .../DimensionedField/DimensionedField.C       |   6 +-
 .../DimensionedField/DimensionedField.H       |   7 +-
 .../DimensionedField/DimensionedFieldI.H      |  10 +
 .../DimensionedField/DimensionedFieldIO.C     |   8 +-
 src/OpenFOAM/orientedType/orientedType.C      | 388 ++++++++++--------
 src/OpenFOAM/orientedType/orientedType.H      | 146 ++++---
 .../CrankNicolsonDdtScheme.C                  |   4 +-
 .../snGradSchemes/snGradScheme/snGradScheme.C |   2 +-
 .../fvMatrices/fvMatrix/fvMatrix.C            |   2 +-
 src/finiteVolume/fvMesh/fvMeshGeometry.C      |   6 +-
 .../fvFieldMappers/MapFvSurfaceField.H        |   4 +-
 .../surfaceInterpolation.C                    |   8 +-
 .../fvFieldDecomposerDecomposeFields.C        |   4 +-
 34 files changed, 373 insertions(+), 284 deletions(-)

diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
index 4a58e5d3fce..b24f21fe8df 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
@@ -120,13 +120,14 @@ int main(int argc, char *argv[])
             "cSf_pos",
             interpolate(c, pos, T.name())*mesh.magSf()
         );
-cSf_pos.oriented().oriented() = true;
+        cSf_pos.setOriented();
+
         surfaceScalarField cSf_neg
         (
             "cSf_neg",
             interpolate(c, neg, T.name())*mesh.magSf()
         );
-cSf_neg.oriented().oriented() = true;
+        cSf_neg.setOriented();
 
         surfaceScalarField ap
         (
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
index b212fd30ea8..6550d62b28c 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
@@ -101,13 +101,14 @@ int main(int argc, char *argv[])
             "cSf_pos",
             interpolate(c, pos, T.name())*mesh.magSf()
         );
-cSf_pos.oriented().oriented() = true;
+        cSf_pos.setOriented();
+
         surfaceScalarField cSf_neg
         (
             "cSf_neg",
             interpolate(c, neg, T.name())*mesh.magSf()
         );
-cSf_neg.oriented().oriented() = true;
+        cSf_neg.setOriented();
 
         surfaceScalarField ap
         (
diff --git a/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
index 30916f5323e..c0d3c8e43a9 100644
--- a/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
+++ b/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
@@ -13,8 +13,6 @@ if (nAlphaSubCycles > 1)
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
 
-    rhoPhiSum.oriented().oriented() = true;
-
     for
     (
         subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
index b2f925ef356..89e56191503 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/alphaEqnsSubCycle.H
@@ -21,8 +21,6 @@
             dimensionedScalar("0", rhoPhi.dimensions(), 0)
         );
 
-        rhoPhiSum.oriented().oriented() = true;
-
         for
         (
             subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
index 9f51ee22a3b..627dd41b6f2 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/multiphaseMixtureThermo.C
@@ -113,8 +113,7 @@ Foam::multiphaseMixtureThermo::multiphaseMixtureThermo
         1e-8/pow(average(mesh_.V()), 1.0/3.0)
     )
 {
-    rhoPhi_.oriented().oriented() = true;
-
+    rhoPhi_.setOriented();
     calcAlphas();
     alphas_.write();
     correct();
@@ -700,7 +699,7 @@ Foam::multiphaseMixtureThermo::surfaceTensionForce() const
     );
 
     surfaceScalarField& stf = tstf.ref();
-    stf.oriented().oriented() = true;
+    stf.setOriented();
 
     forAllConstIter(PtrDictionary<phaseModel>, phases_, phase1)
     {
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
index 5adc39ff69b..d9981659b8d 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
@@ -104,7 +104,6 @@ int main(int argc, char *argv[])
                 mesh,
                 dimensionedScalar("0", dimMass/dimTime, 0)
             );
-            rhoPhi.oriented().oriented() = true;
 
             mixture->correct();
 
diff --git a/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H
index dd1e69b2cc6..772de0b97af 100644
--- a/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H
+++ b/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H
@@ -13,8 +13,6 @@ if (nAlphaSubCycles > 1)
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
 
-    rhoPhiSum.oriented().oriented() = true;
-
     tmp<volScalarField> trSubDeltaT;
 
     if (LTS)
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
index af4dc128d41..6025b60069f 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqnsSubCycle.H
@@ -12,7 +12,6 @@ if (nAlphaSubCycles > 1)
         mesh,
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
-    rhoPhiSum.oriented().oriented() = true;
 
     for
     (
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
index 4b04abbfa5d..3ef77d362f7 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
@@ -100,8 +100,6 @@ int main(int argc, char *argv[])
                 mesh,
                 dimensionedScalar("0", dimMass/dimTime, 0)
             );
-            rhoPhi.oriented().oriented() = true;
-
 
             mixture->correct();
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H b/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H
index ff11947b5af..a4b9838335d 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H
@@ -39,7 +39,6 @@ surfaceScalarField phi
     mesh,
     dimensionedScalar("phi", dimArea*dimVelocity, 0)
 );
-phi.oriented().oriented() = true;
 
 multiphaseSystem fluid(U, phi);
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index 47ee2dc0fb6..7a244eb439a 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -815,8 +815,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
             )
         )
     );
-
-    tSurfaceTension.ref().oriented().oriented() = true;
+    tSurfaceTension.ref().setOriented();
 
     forAllConstIter(PtrDictionary<phaseModel>, phases_, iter)
     {
@@ -920,8 +919,6 @@ void Foam::multiphaseSystem::solve()
                 )
             );
 
-            alphaPhiSums[phasei].oriented().oriented() = true;
-
             phasei++;
         }
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
index 4bac0c71d08..7f91518ba27 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/phaseModel/phaseModel.C
@@ -113,7 +113,7 @@ Foam::phaseModel::phaseModel
         dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0)
     )
 {
-    alphaPhi_.oriented().oriented() = true;
+    alphaPhi_.setOriented();
 
     const word phiName = IOobject::groupName("phi", name_);
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
index 16c70fbabd6..8e2d78cbec8 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
@@ -57,7 +57,6 @@
         mesh,
         dimensionedScalar("phiHbyA", dimArea*dimVelocity, 0)
     );
-    phiHbyA.oriented().oriented() = true;
 
     volScalarField rho("rho", fluid.rho());
     surfaceScalarField ghSnGradRho(ghf*fvc::snGrad(rho)*mesh.magSf());
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index c6069dfbc06..772f6d8b507 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -128,7 +128,7 @@ Foam::multiphaseMixture::multiphaseMixture
         1e-8/pow(average(mesh_.V()), 1.0/3.0)
     )
 {
-    rhoPhi_.oriented().oriented() = true;
+    rhoPhi_.setOriented();
 
     calcAlphas();
     alphas_.write();
@@ -275,7 +275,7 @@ Foam::multiphaseMixture::surfaceTensionForce() const
     );
 
     surfaceScalarField& stf = tstf.ref();
-    stf.oriented().oriented() = true;
+    stf.setOriented();
 
     forAllConstIter(PtrDictionary<phase>, phases_, iter1)
     {
@@ -338,8 +338,6 @@ void Foam::multiphaseMixture::solve()
             dimensionedScalar("0", rhoPhi_.dimensions(), 0)
         );
 
-        rhoPhiSum.oriented().oriented() = true;
-
         dimensionedScalar totalDeltaT = runTime.deltaT();
 
         for
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C
index b089d1b9b94..2213f1a7253 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/BlendedInterfacialModel/BlendedInterfacialModel.C
@@ -455,8 +455,7 @@ Foam::BlendedInterfacialModel<ModelType>::Ff() const
             dimensionedScalar("zero", ModelType::dimF*dimArea, 0)
         )
     );
-
-    x.ref().oriented().oriented() = true;
+    x.ref().setOriented();
 
     if (model_.valid())
     {
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C
index bcdc4d5d29d..02969b89cb8 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C
@@ -365,7 +365,7 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::Ff
             )
         );
 
-        tFf.ref().oriented().oriented() = true;
+        tFf.ref().setOriented();
 
         return tFf;
     }
@@ -626,7 +626,7 @@ Foam::MomentumTransferPhaseSystem<BasePhaseSystem>::setPhiD
             )
         );
 
-        phiDs[phasei].oriented().oriented() = true;
+        phiDs[phasei].setOriented();
     }
 
     return phiDs[phasei];
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
index f271bf95e84..2afa388aca9 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseModel/MovingPhaseModel/MovingPhaseModel.C
@@ -200,8 +200,8 @@ Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel
         dimensionedScalar("0", dimDensity/dimTime, 0)
     )
 {
-    alphaPhi_.oriented().oriented() = true;
-    alphaRhoPhi_.oriented().oriented() = true;
+    alphaPhi_.setOriented();
+    alphaRhoPhi_.setOriented();
 
     phi_.writeOpt() = IOobject::AUTO_WRITE;
     correctKinematics();
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index 83057cde7fc..6ed8cfdc1a0 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -558,7 +558,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
         )
     );
 
-    tSurfaceTension.ref().oriented().oriented() = true;
+    tSurfaceTension.ref().setOriented();
 
     forAll(phases(), phasej)
     {
@@ -665,8 +665,6 @@ void Foam::multiphaseSystem::solve()
                     dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0)
                 )
             );
-
-            alphaPhiSums[phasei].oriented().oriented() = true;
         }
 
         for
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
index 95828abbfb9..5e916dce2fd 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
@@ -169,8 +169,6 @@ while (pimple.correct())
         dimensionedScalar("phiHbyA", dimArea*dimVelocity, 0)
     );
 
-    phiHbyA.oriented().oriented() = true;
-
     forAll(phases, phasei)
     {
         phaseModel& phase = phases[phasei];
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H
index 96300269894..81c65c1caf7 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqnSubCycle.H
@@ -14,7 +14,6 @@ if (nAlphaSubCycles > 1)
         mesh,
         dimensionedScalar("0", rhoPhi.dimensions(), 0)
     );
-    rhoPhiSum.oriented().oriented() = true;
 
     for
     (
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
index c8e8170fc4c..80253f39816 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
@@ -109,8 +109,8 @@ Foam::phaseModel::phaseModel
         dimensionedScalar("0", dimensionSet(1, 0, -1, 0, 0), 0)
     )
 {
-    alphaPhi_.oriented().oriented() = true;
-    alphaRhoPhi_.oriented().oriented() = true;
+    alphaPhi_.setOriented();
+    alphaRhoPhi_.setOriented();
 
     thermo_->validate("phaseModel " + name_, "h", "e");
 
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
index 9901226ba23..17449f78d53 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
@@ -60,7 +60,7 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     Field<Type>(field),
     mesh_(mesh),
     dimensions_(dims),
-    oriented_(false)
+    oriented_()
 {
     if (field.size() && field.size() != GeoMesh::size(mesh))
     {
@@ -86,7 +86,7 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     Field<Type>(GeoMesh::size(mesh)),
     mesh_(mesh),
     dimensions_(dims),
-    oriented_(false)
+    oriented_()
 {
     if (checkIOFlags)
     {
@@ -108,7 +108,7 @@ DimensionedField<Type, GeoMesh>::DimensionedField
     Field<Type>(GeoMesh::size(mesh), dt.value()),
     mesh_(mesh),
     dimensions_(dt.dimensions()),
-    oriented_(false)
+    oriented_()
 {
     if (checkIOFlags)
     {
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
index ff894271c2a..0cc7ab3c69f 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
@@ -266,12 +266,15 @@ public:
         //- Return non-const access to dimensions
         inline dimensionSet& dimensions();
 
-        //- Return oriented flag
+        //- Return oriented type
         inline const orientedType& oriented() const;
 
-        //- Return non-const access to the oriented flag
+        //- Return non-const access to the oriented type
         inline orientedType& oriented();
 
+        //- Set the oriented flag
+        inline void setOriented(const bool oriented = true);
+
         inline const Field<Type>& field() const;
 
         inline Field<Type>& field();
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H
index 0de4d18faa0..b4a5b5d8b5a 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldI.H
@@ -71,6 +71,16 @@ inline Foam::orientedType& Foam::DimensionedField<Type, GeoMesh>::oriented()
 }
 
 
+template<class Type, class GeoMesh>
+inline void Foam::DimensionedField<Type, GeoMesh>::setOriented
+(
+    const bool oriented
+)
+{
+    oriented_.setOriented(oriented);
+}
+
+
 template<class Type, class GeoMesh>
 inline const Foam::Field<Type>&
 Foam::DimensionedField<Type, GeoMesh>::field() const
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
index 5fe2ed249f9..7bbd460d36b 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
@@ -37,7 +37,7 @@ void Foam::DimensionedField<Type, GeoMesh>::readField
 )
 {
     dimensions_.reset(dimensionSet(fieldDict.lookup("dimensions")));
-    fieldDict.template readIfPresent<bool>("oriented", oriented_.oriented());
+    oriented_.read(fieldDict);
 
     Field<Type> f(fieldDictEntry, fieldDict, GeoMesh::size(mesh_));
     this->transfer(f);
@@ -76,7 +76,7 @@ Foam::DimensionedField<Type, GeoMesh>::DimensionedField
     Field<Type>(0),
     mesh_(mesh),
     dimensions_(dimless),
-    oriented_(false)
+    oriented_()
 {
     readField(dictionary(readStream(typeName)), fieldDictEntry);
 }
@@ -95,7 +95,7 @@ Foam::DimensionedField<Type, GeoMesh>::DimensionedField
     Field<Type>(0),
     mesh_(mesh),
     dimensions_(dimless),
-    oriented_(false)
+    oriented_()
 {
     readField(fieldDict, fieldDictEntry);
 }
@@ -111,7 +111,7 @@ bool Foam::DimensionedField<Type, GeoMesh>::writeData
 ) const
 {
     os.writeEntry("dimensions", dimensions());
-    if (oriented_.oriented()) os.writeEntry("oriented", oriented());
+    oriented_.writeEntry(os);
 
     os<< nl << nl;
 
diff --git a/src/OpenFOAM/orientedType/orientedType.C b/src/OpenFOAM/orientedType/orientedType.C
index 08198c0f049..4a04453ac09 100644
--- a/src/OpenFOAM/orientedType/orientedType.C
+++ b/src/OpenFOAM/orientedType/orientedType.C
@@ -25,29 +25,72 @@ License
 
 #include "orientedType.H"
 
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    template<>
+    const char* NamedEnum
+    <
+        orientedType::orientedOption,
+        3
+    >::names[] =
+    {
+        "oriented",
+        "unoriented",
+        "unknown"
+    };
+}
+
+const Foam::NamedEnum<Foam::orientedType::orientedOption, 3>
+    Foam::orientedType::orientedOptionNames;
+
+
+bool Foam::orientedType::checkType
+(
+    const orientedType& ot1,
+    const orientedType& ot2
+)
+{
+    if
+    (
+        (ot1.oriented() == UNKNOWN)
+     || (ot2.oriented() == UNKNOWN)
+     || (ot1.oriented() == ot2.oriented())
+    )
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::orientedType::orientedType()
 :
-    oriented_(false)
+    oriented_(UNKNOWN)
 {}
 
 
-Foam::orientedType::orientedType(const orientedType& of)
+Foam::orientedType::orientedType(const orientedType& ot)
 :
-    oriented_(of.oriented_)
+    oriented_(ot.oriented_)
 {}
 
 
 Foam::orientedType::orientedType(const bool oriented)
 :
-    oriented_(oriented)
+    oriented_(oriented ? ORIENTED : UNORIENTED)
 {}
 
 
 Foam::orientedType::orientedType(Istream& is)
 :
-    oriented_(readBool(is))
+    oriented_(orientedOptionNames.read(is))
 {
     is.check(FUNCTION_NAME);
 }
@@ -55,312 +98,339 @@ Foam::orientedType::orientedType(Istream& is)
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-bool& Foam::orientedType::oriented()
+Foam::orientedType::orientedOption& Foam::orientedType::oriented()
 {
     return oriented_;
 }
 
 
-bool Foam::orientedType::oriented() const
+Foam::orientedType::orientedOption Foam::orientedType::oriented() const
 {
     return oriented_;
 }
 
 
+void Foam::orientedType::setOriented(const bool oriented)
+{
+    oriented_ = oriented ? ORIENTED : UNORIENTED;
+}
+
+
+void Foam::orientedType::read(const dictionary& dict)
+{
+    if (dict.found("oriented"))
+    {
+        oriented_ = orientedOptionNames.read(dict.lookup("oriented"));
+    }
+    else
+    {
+        oriented_ = UNKNOWN;
+    }
+}
+
+
+void Foam::orientedType::writeEntry(Ostream& os) const
+{
+    if (oriented_ == ORIENTED)
+    {
+        os.writeEntry("oriented", orientedOptionNames[oriented_]);
+    }
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
-void Foam::orientedType::operator=(const orientedType& of)
+void Foam::orientedType::operator=(const orientedType& ot)
 {
-    oriented_ = of.oriented();
+    // Oriented state is inherited on assignment
+    oriented_ = ot.oriented();
 }
 
 
-void Foam::orientedType::operator+=(const orientedType& of)
+void Foam::orientedType::operator+=(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    if (oriented_ != of.oriented())
+    // Set the oriented status if it was unknown
+    if (oriented_ == UNKNOWN)
+    {
+        oriented_ = ot.oriented();
+    }
+
+    if (!checkType(*this, ot))
     {
         FatalErrorInFunction
-            << "Operator += is undefined for oriented and unoriented types. "
-            << "oriented:" << oriented_ << ", of:" << of.oriented()
+            << "Operator += is undefined for "
+            << orientedOptionNames[oriented_] << " and "
+            << orientedOptionNames[ot.oriented()] << " types"
             << abort(FatalError);
     }
-
-    // No change to oriented_ flag
 }
 
 
-void Foam::orientedType::operator-=(const orientedType& of)
+void Foam::orientedType::operator-=(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    if (oriented_ != of.oriented())
+    // Set the oriented status if it was unknown
+    if (oriented_ == UNKNOWN)
+    {
+        oriented_ = ot.oriented();
+    }
+
+    if (!checkType(*this, ot))
     {
         FatalErrorInFunction
-            << "Operator -= is undefined for oriented and unoriented types. "
-            << "oriented:" << oriented_ << ", of:" << of.oriented()
+            << "Operator -= is undefined for "
+            << orientedOptionNames[oriented_] << " and "
+            << orientedOptionNames[ot.oriented()] << " types"
             << abort(FatalError);
     }
-
-    // No change to oriented_ flag
 }
 
 
-void Foam::orientedType::operator*=(const orientedType& of)
+void Foam::orientedType::operator*=(const orientedType& ot)
 {
-    oriented_ = oriented_ ^ of.oriented();
+    const orientedType& ot1 = *this;
+    if (ot1() ^ ot())
+    {
+        oriented_ = ORIENTED;
+    }
+    else
+    {
+        oriented_ = UNORIENTED;
+    }
 }
 
 
-void Foam::orientedType::operator/=(const orientedType& of)
+void Foam::orientedType::operator/=(const orientedType& ot)
 {
-    oriented_ = oriented_ ^ of.oriented();
+    const orientedType& ot1 = *this;
+    if (ot1() ^ ot())
+    {
+        oriented_ = ORIENTED;
+    }
+    else
+    {
+        oriented_ = UNORIENTED;
+    }
 }
 
 
 void Foam::orientedType::operator*=(const scalar s)
 {
-//InfoInFunction << "oriented_: " << oriented_ << endl;
     // No change to oriented_ flag
 }
 
 
 void Foam::orientedType::operator/=(const scalar s)
 {
-//InfoInFunction << "oriented_: " << oriented_ << endl;
     // No change to oriented_ flag
 }
 
 
 bool Foam::orientedType::operator()() const
 {
-//InfoInFunction << "oriented_: " << oriented_ << endl;
-    return oriented_;
+    return oriented_ == ORIENTED;
 }
 
 
 // * * * * * * * * * * * * * * * Friend Functions  * * * * * * * * * * * * * //
 
-Foam::orientedType Foam::max(const orientedType& of1, const orientedType& of2)
+Foam::orientedType Foam::max(const orientedType& ot1, const orientedType& ot2)
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    if (of1.oriented() != of2.oriented())
+    if (!orientedType::checkType(ot1, ot2))
     {
         FatalErrorInFunction
-            << "max is undefined for oriented and unoriented types. "
-            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << "Operator max is undefined for "
+            << orientedType::orientedOptionNames[ot1.oriented()] << " and "
+            << orientedType::orientedOptionNames[ot2.oriented()] << " types"
             << abort(FatalError);
     }
 
-    return of1;
+    return ot1;
 }
 
 
-Foam::orientedType Foam::min(const orientedType& of1, const orientedType& of2)
+Foam::orientedType Foam::min(const orientedType& ot1, const orientedType& ot2)
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    if (of1.oriented() != of2.oriented())
+    if (!orientedType::checkType(ot1, ot2))
     {
         FatalErrorInFunction
-            << "min is undefined for oriented and unoriented types. "
-            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << "Operator min is undefined for "
+            << orientedType::orientedOptionNames[ot1.oriented()] << " and "
+            << orientedType::orientedOptionNames[ot2.oriented()] << "types"
             << abort(FatalError);
     }
 
-    return of1;
+    return ot1;
 }
 
 
 Foam::orientedType Foam::cmptMultiply
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    return orientedType(of1.oriented() ^ of2.oriented());
+    return ot1 ^ ot2;
 }
 
 
 Foam::orientedType Foam::cmptDivide
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    return orientedType(of1.oriented() ^ of2.oriented());
+    return ot1 ^ ot2;
 }
 
 
-Foam::orientedType Foam::cmptAv(const orientedType& of)
+Foam::orientedType Foam::cmptAv(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType Foam::pow(const orientedType& of, const scalar r)
+Foam::orientedType Foam::pow(const orientedType& ot, const scalar r)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
     // Undefined???
     // - only defined for integers where:
-    //   - odd powers = oriented_ = yes (if of is oriented)
+    //   - odd powers = oriented_ = yes (if ot is oriented)
     //   - even powers = oriented_ = no
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType Foam::sqr(const orientedType& of)
+Foam::orientedType Foam::sqr(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
     return orientedType(false);
 }
 
 
-Foam::orientedType Foam::pow3(const orientedType& of)
+Foam::orientedType Foam::pow3(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return orientedType(of.oriented());
+    return ot;
 }
 
 
-Foam::orientedType Foam::pow4(const orientedType& of)
+Foam::orientedType Foam::pow4(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
     return orientedType(false);
 }
 
 
-Foam::orientedType Foam::pow5(const orientedType& of)
+Foam::orientedType Foam::pow5(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return orientedType(of.oriented());
+    return ot;
 }
 
 
-Foam::orientedType Foam::pow6(const orientedType& of)
+Foam::orientedType Foam::pow6(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
     return orientedType(false);
 }
 
 
-Foam::orientedType Foam::pow025(const orientedType& of)
+Foam::orientedType Foam::pow025(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return orientedType(of.oriented());
+    return ot;
 }
 
 
-Foam::orientedType Foam::sqrt(const orientedType& of)
+Foam::orientedType Foam::sqrt(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType Foam::cbrt(const orientedType& of)
+Foam::orientedType Foam::cbrt(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType Foam::magSqr(const orientedType& of)
+Foam::orientedType Foam::magSqr(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
     return orientedType(false);
 }
 
 
-Foam::orientedType  Foam::mag(const orientedType& of)
+Foam::orientedType  Foam::mag(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
     return orientedType(false);
 }
 
 
-Foam::orientedType  Foam::sign(const orientedType& of)
+Foam::orientedType  Foam::sign(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType  Foam::pos(const orientedType& of)
+Foam::orientedType  Foam::pos(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType  Foam::neg(const orientedType& of)
+Foam::orientedType  Foam::neg(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType  Foam::posPart(const orientedType& of)
+Foam::orientedType  Foam::posPart(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType  Foam::negPart(const orientedType& of)
+Foam::orientedType  Foam::negPart(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType  Foam::inv(const orientedType& of)
+Foam::orientedType  Foam::inv(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
-Foam::orientedType Foam::trans(const orientedType& of)
+Foam::orientedType Foam::trans(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
 Foam::orientedType Foam::atan2
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    if (of1.oriented() != of2.oriented())
+    if (!orientedType::checkType(ot1, ot2))
     {
         FatalErrorInFunction
-            << "atan2 is undefined for oriented and unoriented types. "
-            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << "Operator atan2 is undefined for "
+            << orientedType::orientedOptionNames[ot1.oriented()] << " and "
+            << orientedType::orientedOptionNames[ot2.oriented()] << "types"
             << abort(FatalError);
     }
 
-    return of1;
+    return ot1;
 }
 
 
-Foam::orientedType Foam::transform(const orientedType& of)
+Foam::orientedType Foam::transform(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return of;
+    return ot;
 }
 
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-Foam::Istream& Foam::operator>>(Istream& is, orientedType& of)
+Foam::Istream& Foam::operator>>(Istream& is, orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    is >> of.oriented_;
+    ot.oriented_ = orientedType::orientedOptionNames.read(is);
 
     is.check(FUNCTION_NAME);
 
@@ -368,10 +438,9 @@ Foam::Istream& Foam::operator>>(Istream& is, orientedType& of)
 }
 
 
-Foam::Ostream& Foam::operator<<(Ostream& os, const orientedType& of)
+Foam::Ostream& Foam::operator<<(Ostream& os, const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    os << of.oriented();
+    os << orientedType::orientedOptionNames[ot.oriented()];
 
     os.check(FUNCTION_NAME);
 
@@ -383,114 +452,109 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const orientedType& of)
 
 Foam::orientedType Foam::operator+
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    if (of1.oriented() != of2.oriented())
+    if (!orientedType::checkType(ot1, ot2))
     {
         FatalErrorInFunction
-            << "Operator + is undefined for oriented and unoriented types. "
-            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << "Operator + is undefined for "
+            << orientedType::orientedOptionNames[ot1.oriented()] << " and "
+            << orientedType::orientedOptionNames[ot2.oriented()] << " types"
             << abort(FatalError);
     }
 
-    return orientedType(of1.oriented() || of2.oriented());
+    // Note use of () operators to convert to boolean op
+    return orientedType(ot1() || ot2());
 }
 
 
-Foam::orientedType Foam::operator-(const orientedType& of)
+Foam::orientedType Foam::operator-(const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return orientedType(of);
+    return ot;
 }
 
 
 Foam::orientedType Foam::operator-
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    if (of1.oriented() != of2.oriented())
+    if (!orientedType::checkType(ot1, ot2))
     {
         FatalErrorInFunction
-            << "Operator - is undefined for oriented and unoriented types. "
-            << "of1:" << of1.oriented() << ", of2:" << of2.oriented()
+            << "Operator - is undefined for "
+            << orientedType::orientedOptionNames[ot1.oriented()] << " and "
+            << orientedType::orientedOptionNames[ot2.oriented()] << " types"
             << abort(FatalError);
     }
 
-    return orientedType(of1.oriented() || of2.oriented());
+    // Note use of () operators to convert to boolean op
+    return orientedType(ot1() || ot2());
 }
 
 
-Foam::orientedType Foam::operator*(const scalar s, const orientedType& of)
+Foam::orientedType Foam::operator*(const scalar s, const orientedType& ot)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return orientedType(of);
+    return ot;
 }
 
 
-Foam::orientedType Foam::operator/(const orientedType& of, const scalar s)
+Foam::orientedType Foam::operator/(const orientedType& ot, const scalar s)
 {
-//InfoInFunction << "of:" << of.oriented() << endl;
-    return orientedType(of);
+    return ot;
 }
 
 
 Foam::orientedType Foam::operator/
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    return orientedType(of1.oriented() ^ of2.oriented());
+    return ot1 ^ ot2;
 }
 
 
 Foam::orientedType Foam::operator*
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    return orientedType(of1.oriented() ^ of2.oriented());
+    return ot1 ^ ot2;
 }
 
 
 Foam::orientedType Foam::operator^
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    return orientedType(of1.oriented() ^ of2.oriented());
+    // Note use of () operators to convert to boolean op
+    return orientedType(ot1() ^ ot2());
 }
 
 
 Foam::orientedType Foam::operator&
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
-    return orientedType(of1.oriented() ^ of2.oriented());
+    return ot1 ^ ot2;
 }
 
 
 Foam::orientedType Foam::operator&&
 (
-    const orientedType& of1,
-    const orientedType& of2
+    const orientedType& ot1,
+    const orientedType& ot2
 )
 {
-//InfoInFunction << "of1:" << of1.oriented() << ", of2:" << of2.oriented() << endl;
     return orientedType(false);
 }
 
diff --git a/src/OpenFOAM/orientedType/orientedType.H b/src/OpenFOAM/orientedType/orientedType.H
index 4a26164dee0..d050f71dcb5 100644
--- a/src/OpenFOAM/orientedType/orientedType.H
+++ b/src/OpenFOAM/orientedType/orientedType.H
@@ -37,6 +37,8 @@ SourceFiles
 
 #include "Istream.H"
 #include "Ostream.H"
+#include "dictionary.H"
+#include "NamedEnum.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -52,27 +54,43 @@ Istream& operator>>(Istream&, orientedType&);
 Ostream& operator<<(Ostream&, const orientedType&);
 
 /*---------------------------------------------------------------------------*\
-                           Class dimensioned Declaration
+                        Class orientedType Declaration
 \*---------------------------------------------------------------------------*/
 
 class orientedType
 {
+public:
+
+    // Public data types
+
+        //- Enumeration defining the valid oriented flags
+        enum orientedOption
+        {
+            ORIENTED,
+            UNORIENTED,
+            UNKNOWN
+        };
+
+        static const NamedEnum<orientedOption, 3> orientedOptionNames;
+
+
+private:
+
     // Private data
 
         //- Oriented flag
-        bool oriented_;
+        orientedOption oriented_;
 
 
 public:
 
-
     // Constructors
 
         //- Null constructor - flag initialised to false
         orientedType();
 
         //- Copy constructor
-        orientedType(const orientedType& of);
+        orientedType(const orientedType& ot);
 
         //- Construct from bool
         orientedType(const bool oriented);
@@ -83,21 +101,37 @@ public:
 
     // Member functions
 
+        //- Return true if can operate on this pair of oriented types
+        static bool checkType
+        (
+            const orientedType& ot1,
+            const orientedType& ot2
+        );
+
         //- Return non-const reference to the oriented flag
-        bool& oriented();
+        orientedOption& oriented();
 
         //- Return const reference to the oriented flag
-        bool oriented() const;
+        orientedOption oriented() const;
+
+        //- Set the oriented flag
+        void setOriented(const bool oriented = true);
+
+        //- Read the oriented state from dictionary
+        void read(const dictionary& dict);
+
+        //- Write the oriented flag entry
+        void writeEntry(Ostream& os) const;
 
 
     // Member operators
 
-        void operator=(const orientedType& of);
+        void operator=(const orientedType& ot);
 
-        void operator+=(const orientedType& of);
-        void operator-=(const orientedType& of);
-        void operator*=(const orientedType& of);
-        void operator/=(const orientedType& of);
+        void operator+=(const orientedType& ot);
+        void operator-=(const orientedType& ot);
+        void operator*=(const orientedType& ot);
+        void operator/=(const orientedType& ot);
         void operator*=(const scalar s);
         void operator/=(const scalar s);
         bool operator()() const;
@@ -105,57 +139,57 @@ public:
 
     // IOstream operators
 
-        friend Istream& operator>>(Istream& is, orientedType& of);
+        friend Istream& operator>>(Istream& is, orientedType& ot);
 
-        friend Ostream& operator<<(Ostream& os, const orientedType& of);
+        friend Ostream& operator<<(Ostream& os, const orientedType& ot);
 };
 
 
 // * * * * * * * * * * * * * * * Global Operators  * * * * * * * * * * * * * //
 
-orientedType max(const orientedType& of1, const orientedType& of2);
-orientedType min(const orientedType& of1, const orientedType& of2);
-orientedType cmptMultiply(const orientedType& of1, const orientedType& of2);
-orientedType cmptDivide(const orientedType& of1, const orientedType& of);
-orientedType cmptAv(const orientedType& of);
-
-
-orientedType pow(const orientedType& of, const scalar r);
-orientedType sqr(const orientedType& of);
-orientedType pow3(const orientedType& of);
-orientedType pow4(const orientedType& of);
-orientedType pow5(const orientedType& of);
-orientedType pow6(const orientedType& of);
-orientedType pow025(const orientedType& of);
-
-
-orientedType sqrt(const orientedType& of);
-orientedType cbrt(const orientedType& of);
-orientedType magSqr(const orientedType& of);
-orientedType mag(const orientedType& of);
-orientedType sign(const orientedType& of);
-orientedType pos(const orientedType& of);
-orientedType neg(const orientedType& of);
-orientedType posPart(const orientedType& of);
-orientedType negPart(const orientedType& of);
-orientedType inv(const orientedType& of);
-
-
-orientedType trans(const orientedType& of);
-orientedType atan2(const orientedType& of1, const orientedType& of2);
-orientedType transform(const orientedType& of);
-
-orientedType operator-(const orientedType& of);
-orientedType operator*(const scalar s, const orientedType& of);
-orientedType operator/(const orientedType& of, const scalar s);
-
-orientedType operator+(const orientedType& of1, const orientedType& of2);
-orientedType operator-(const orientedType& of1, const orientedType& of2);
-orientedType operator/(const orientedType& of1, const orientedType& of2);
-orientedType operator*(const orientedType& of1, const orientedType& of2);
-orientedType operator^(const orientedType& of1, const orientedType& of2);
-orientedType operator&(const orientedType& of1, const orientedType& of2);
-orientedType operator&&(const orientedType& of1, const orientedType& of2);
+orientedType max(const orientedType& ot1, const orientedType& ot2);
+orientedType min(const orientedType& ot1, const orientedType& ot2);
+orientedType cmptMultiply(const orientedType& ot1, const orientedType& ot2);
+orientedType cmptDivide(const orientedType& ot1, const orientedType& ot);
+orientedType cmptAv(const orientedType& ot);
+
+
+orientedType pow(const orientedType& ot, const scalar r);
+orientedType sqr(const orientedType& ot);
+orientedType pow3(const orientedType& ot);
+orientedType pow4(const orientedType& ot);
+orientedType pow5(const orientedType& ot);
+orientedType pow6(const orientedType& ot);
+orientedType pow025(const orientedType& ot);
+
+
+orientedType sqrt(const orientedType& ot);
+orientedType cbrt(const orientedType& ot);
+orientedType magSqr(const orientedType& ot);
+orientedType mag(const orientedType& ot);
+orientedType sign(const orientedType& ot);
+orientedType pos(const orientedType& ot);
+orientedType neg(const orientedType& ot);
+orientedType posPart(const orientedType& ot);
+orientedType negPart(const orientedType& ot);
+orientedType inv(const orientedType& ot);
+
+
+orientedType trans(const orientedType& ot);
+orientedType atan2(const orientedType& ot1, const orientedType& ot2);
+orientedType transform(const orientedType& ot);
+
+orientedType operator-(const orientedType& ot);
+orientedType operator*(const scalar s, const orientedType& ot);
+orientedType operator/(const orientedType& ot, const scalar s);
+
+orientedType operator+(const orientedType& ot1, const orientedType& ot2);
+orientedType operator-(const orientedType& ot1, const orientedType& ot2);
+orientedType operator/(const orientedType& ot1, const orientedType& ot2);
+orientedType operator*(const orientedType& ot1, const orientedType& ot2);
+orientedType operator^(const orientedType& ot1, const orientedType& ot2);
+orientedType operator&(const orientedType& ot1, const orientedType& ot2);
+orientedType operator&&(const orientedType& ot1, const orientedType& ot2);
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
index 7c9505841b3..3aea9d7f29d 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C
@@ -1195,7 +1195,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
             "ddt0(" + phi.name() + ')',
             phi.dimensions()
         );
-    dphidt0.oriented().oriented() = true;
+    dphidt0.setOriented();
 
     dimensionedScalar rDtCoef = rDtCoef_(ddt0);
 
@@ -1440,7 +1440,7 @@ tmp<surfaceScalarField> CrankNicolsonDdtScheme<Type>::meshPhi
         dimVolume
     );
 
-    meshPhi0.oriented().oriented() = true;
+    meshPhi0.setOriented();
 
     if (evaluate(meshPhi0))
     {
diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C
index b6f6fbbef6a..3844234dff0 100644
--- a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C
+++ b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C
@@ -124,7 +124,7 @@ snGradScheme<Type>::snGrad
         )
     );
     GeometricField<Type, fvsPatchField, surfaceMesh>& ssf = tsf.ref();
-    ssf.oriented().oriented() = true;
+    ssf.setOriented();
 
     // set reference to difference factors array
     const scalarField& deltaCoeffs = tdeltaCoeffs();
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
index bb87c6d7f75..262444193cd 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
@@ -892,7 +892,7 @@ flux() const
     GeometricField<Type, fvsPatchField, surfaceMesh>& fieldFlux =
         tfieldFlux.ref();
 
-    fieldFlux.oriented().oriented() = true;
+    fieldFlux.setOriented();
 
     for (direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
     {
diff --git a/src/finiteVolume/fvMesh/fvMeshGeometry.C b/src/finiteVolume/fvMesh/fvMeshGeometry.C
index 99422670413..c530ee0a9a0 100644
--- a/src/finiteVolume/fvMesh/fvMeshGeometry.C
+++ b/src/finiteVolume/fvMesh/fvMeshGeometry.C
@@ -68,7 +68,7 @@ void Foam::fvMesh::makeSf() const
         faceAreas()
     );
 
-    SfPtr_->oriented().oriented() = true;
+    SfPtr_->setOriented();
 }
 
 
@@ -400,7 +400,7 @@ Foam::tmp<Foam::surfaceVectorField> Foam::fvMesh::delta() const
         )
     );
     surfaceVectorField& delta = tdelta.ref();
-    delta.oriented().oriented() = true;
+    delta.setOriented();
 
     const volVectorField& C = this->C();
     const labelUList& owner = this->owner();
@@ -438,7 +438,7 @@ const Foam::surfaceScalarField& Foam::fvMesh::phi() const
         (*phiPtr_) = dimensionedScalar("0", dimVolume/dimTime, 0.0);
     }
 
-    phiPtr_->oriented().oriented() = true;
+    phiPtr_->setOriented();
 
     return *phiPtr_;
 }
diff --git a/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H b/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H
index f9e58e589b3..d1f21db48ae 100644
--- a/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H
+++ b/src/finiteVolume/interpolation/mapping/fvFieldMappers/MapFvSurfaceField.H
@@ -72,9 +72,9 @@ void MapInternalField<Type, MeshMapper, surfaceMesh>::operator()
     // Passing in oriented flag so that oriented fields (e.g. phi) are negated
     // if flipped.  Un-oriented fields, e.g U interpolated to faces (Uf) are not
     // touched
-    field.autoMap(mapper.surfaceMap(), field.oriented().oriented());
+    field.autoMap(mapper.surfaceMap(), field.oriented()());
 
-    if (field.oriented().oriented())
+    if (field.oriented()())
     {
         // Flip the flux
         const labelList flipFaces = mapper.surfaceMap().flipFaceFlux().toc();
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
index f09cc74c339..f13c646316b 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
@@ -154,7 +154,7 @@ void Foam::surfaceInterpolation::makeWeights() const
         dimless
     );
     surfaceScalarField& weights = *weights_;
-    weights.oriented().oriented() = true;
+    weights.setOriented();
 
     // Set local references to mesh data
     // Note that we should not use fvMesh sliced fields at this point yet
@@ -226,7 +226,7 @@ void Foam::surfaceInterpolation::makeDeltaCoeffs() const
         dimless/dimLength
     );
     surfaceScalarField& deltaCoeffs = *deltaCoeffs_;
-    deltaCoeffs.oriented().oriented() = true;
+    deltaCoeffs.setOriented();
 
 
     // Set local references to mesh data
@@ -277,7 +277,7 @@ void Foam::surfaceInterpolation::makeNonOrthDeltaCoeffs() const
         dimless/dimLength
     );
     surfaceScalarField& nonOrthDeltaCoeffs = *nonOrthDeltaCoeffs_;
-    nonOrthDeltaCoeffs.oriented().oriented() = true;
+    nonOrthDeltaCoeffs.setOriented();
 
 
     // Set local references to mesh data
@@ -342,7 +342,7 @@ void Foam::surfaceInterpolation::makeNonOrthCorrectionVectors() const
         dimless
     );
     surfaceVectorField& corrVecs = *nonOrthCorrectionVectors_;
-    corrVecs.oriented().oriented() = true;
+    corrVecs.setOriented();
 
     // Set local references to mesh data
     const volVectorField& C = mesh_.C();
diff --git a/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C b/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C
index ab231a939b6..cffd1a6e1e2 100644
--- a/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C
+++ b/src/parallel/decompose/decompose/fvFieldDecomposerDecomposeFields.C
@@ -291,7 +291,7 @@ Foam::fvFieldDecomposer::decomposeField
                 )
             );
 
-            if (resF.oriented().oriented())
+            if (resF.oriented()())
             {
                 bf[patchi] *= faceSign_[patchi];
             }
@@ -313,7 +313,7 @@ Foam::fvFieldDecomposer::decomposeField
                 )
             );
 
-            if (resF.oriented().oriented())
+            if (resF.oriented()())
             {
                 bf[patchi] *= faceSign_[patchi];
             }
-- 
GitLab


From 2838c4554cbc07e0d83f0cdbdddf277ec35fc062 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Wed, 24 May 2017 14:28:28 +0100
Subject: [PATCH 241/277] BUG: pointConstraints: resize all constraints arrays.
 Fixes #480.

---
 .../volPointInterpolation/pointConstraints.C          | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C b/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C
index 47d9ab90d97..cd4090a7c85 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C
+++ b/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -233,7 +233,16 @@ void Foam::pointConstraints::makePatchPatchAddressing()
                     // Allocate new constraint
                     if (patchPatchPoints.size() <= pppi)
                     {
+                        // Check if not enough space. This
+                        // can occasionally happen if -coupled points connect
+                        // to the inside of a patch -these coupled points also
+                        // carry a constraint
                         patchPatchPoints.setSize(pppi+100);
+                        patchPatchPointConstraints_.setSize
+                        (
+                            pppi+100,
+                            pointConstraint()
+                        );
                     }
                     patchPatchPointSet.insert(meshPointi, pppi);
                     patchPatchPoints[pppi] = meshPointi;
-- 
GitLab


From 4b209918415a7f703784bf17368f97d503e66449 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Thu, 25 May 2017 09:16:49 +0100
Subject: [PATCH 242/277] ENH: argEdge: order of member initialisation. Fixes
 #481.

---
 src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.H | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.H b/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.H
index 260e5dc7bb4..caf5ea259d5 100644
--- a/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.H
+++ b/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -56,9 +56,9 @@ class arcEdge
     // Private data
 
         point p1_, p2_, p3_;
-        cylindricalCS cs_;
         scalar angle_;
         scalar radius_;
+        cylindricalCS cs_;
 
 
     // Private Member Functions
-- 
GitLab


From 757cc7a15df59cc3bc29ddefa7545e8ccbe306c1 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Thu, 25 May 2017 10:43:57 +0100
Subject: [PATCH 243/277] BUG: cshrc: account for lsof printing mount point
 after files

Some versions of lsof print the mount point (if remote) after the
script path:
    /hosts/mymachine/OpenFOAM/OpenFOAM-plus.develop/etc/cshrc (mymachine:/home)
This now gets filtered out.
---
 etc/cshrc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/etc/cshrc b/etc/cshrc
index 4fb51cad687..688905c2cf0 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -43,7 +43,7 @@ setenv WM_PROJECT_VERSION plus
 #   values to an appropriate path.
 #
 setenv FOAM_INST_DIR `lsof +p $$ |& \
-    sed -n -e 's@[^/]*@@' -e 's@/'$WM_PROJECT'[^/]*/etc/cshrc@@p'`
+    sed -n -e 's@[^/]*@@' -e 's@/'$WM_PROJECT'[^/]*/etc/cshrc.*@@p'`
 # setenv FOAM_INST_DIR  $HOME/$WM_PROJECT
 # setenv FOAM_INST_DIR  /opt/$WM_PROJECT
 # setenv FOAM_INST_DIR  /usr/local/$WM_PROJECT
-- 
GitLab


From 15d5fca144014d0b08411788d48066649b4946d8 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Thu, 25 May 2017 12:12:43 +0100
Subject: [PATCH 244/277] BUG: argList: -decomposeParDict handling in
 combination with -case.

Related to #482 but this one is the handling inside argList.
---
 src/OpenFOAM/global/argList/argList.C | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/OpenFOAM/global/argList/argList.C b/src/OpenFOAM/global/argList/argList.C
index 6873c7c1571..01b68a32de4 100644
--- a/src/OpenFOAM/global/argList/argList.C
+++ b/src/OpenFOAM/global/argList/argList.C
@@ -673,6 +673,17 @@ void Foam::argList::parse
                     adjustOpt = true;
                     source = source/"decomposeParDict";
                 }
+
+                if
+                (
+                   !source.isAbsolute()
+                && !(source.size() && source[0] == '.')
+                )
+                {
+                    source = rootPath_/globalCase_/source;
+                    adjustOpt = true;
+                }
+
                 // Could also check for absolute path, but shouldn't be needed
                 if (adjustOpt)
                 {
-- 
GitLab


From 8d3e1061663aadb27fa2662969975ad222b1fe43 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 08:15:49 +0200
Subject: [PATCH 245/277] STYLE: remove redundant size check

---
 src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C b/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C
index 086f44ef8d6..c535e5b0bf6 100644
--- a/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C
+++ b/src/OpenFOAM/meshes/Identifiers/patch/patchIdentifier.C
@@ -82,7 +82,7 @@ Foam::patchIdentifier::~patchIdentifier()
 
 bool Foam::patchIdentifier::inGroup(const word& name) const
 {
-    return inGroups_.size() && findIndex(inGroups_, name) != -1;
+    return findIndex(inGroups_, name) != -1;
 }
 
 
-- 
GitLab


From 5efe22c2f0a2ea8d5ef005ac989faa35e27f6685 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 09:10:48 +0200
Subject: [PATCH 246/277] ENH: align constructors of geometricSurfacePatch with
 surfZoneIdentifier

- both classes are nearly identical and should be merged in the future.
---
 .../Identifiers/surface/surfZoneIdentifier.C  |  33 ++---
 .../Identifiers/surface/surfZoneIdentifier.H  |  38 +++---
 .../UnsortedMeshedSurface.C                   |   5 +-
 .../triSurface/interfaces/AC3D/readAC.C       |   3 +-
 .../triSurface/interfaces/NAS/readNAS.C       |  12 +-
 .../triSurface/interfaces/OBJ/readOBJ.C       |  15 ++-
 .../triSurface/interfaces/TRI/readTRI.C       |   2 +-
 .../triSurface/interfaces/VTK/readVTK.C       |  12 +-
 .../patches/geometricSurfacePatch.C           | 116 +++++++++++-------
 .../patches/geometricSurfacePatch.H           |  60 ++++++---
 src/surfMesh/triSurface/triSurface.C          |   2 +-
 11 files changed, 163 insertions(+), 135 deletions(-)

diff --git a/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.C b/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.C
index d9179f42748..33e933ba230 100644
--- a/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.C
+++ b/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.C
@@ -106,29 +106,22 @@ void Foam::surfZoneIdentifier::write(Ostream& os) const
 }
 
 
-// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * Global Operators  * * * * * * * * * * * * * //
 
-// needed for list output
-bool Foam::surfZoneIdentifier::operator!=
-(
-    const surfZoneIdentifier& rhs
-) const
+bool Foam::operator==(const surfZoneIdentifier& a, const surfZoneIdentifier& b)
 {
-    return !(*this == rhs);
+    return
+    (
+        (a.index() == b.index())
+     && (a.name()  == b.name())
+     && (a.geometricType() == b.geometricType())
+    );
 }
 
 
-bool Foam::surfZoneIdentifier::operator==
-(
-    const surfZoneIdentifier& rhs
-) const
+bool Foam::operator!=(const surfZoneIdentifier& a, const surfZoneIdentifier& b)
 {
-    return
-    (
-        (index() == rhs.index())
-     && (name()  == rhs.name())
-     && (geometricType() == rhs.geometricType())
-    );
+    return !(a == b);
 }
 
 
@@ -137,17 +130,15 @@ bool Foam::surfZoneIdentifier::operator==
 Foam::Istream& Foam::operator>>(Istream& is, surfZoneIdentifier& obj)
 {
     is >> obj.name_ >> obj.geometricType_;
-
     return is;
 }
 
 
 Foam::Ostream& Foam::operator<<(Ostream& os, const surfZoneIdentifier& obj)
 {
-    // newlines to separate, since that is what triSurface currently expects
+    // Newlines to separate, since that is what triSurface currently expects
     os  << nl << obj.name_ << nl << obj.geometricType_;
-
-    os.check("Ostream& operator<<(Ostream&, const surfZoneIdentifier&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.H b/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.H
index a084e0196a3..26922f5aef8 100644
--- a/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.H
+++ b/src/OpenFOAM/meshes/Identifiers/surface/surfZoneIdentifier.H
@@ -51,8 +51,8 @@ class dictionary;
 // Forward declaration of friend functions and operators
 
 class surfZoneIdentifier;
-Istream& operator>>(Istream&, surfZoneIdentifier&);
-Ostream& operator<<(Ostream&, const surfZoneIdentifier&);
+Istream& operator>>(Istream& is, surfZoneIdentifier& p);
+Ostream& operator<<(Ostream& os, const surfZoneIdentifier& p);
 
 /*---------------------------------------------------------------------------*\
                      Class surfZoneIdentifier Declaration
@@ -94,21 +94,20 @@ public:
             const word& name,
             const label index,
             const word& geometricType = word::null
-
         );
 
         //- Construct from dictionary
         surfZoneIdentifier
         (
             const word& name,
-            const dictionary&,
+            const dictionary& dict,
             const label index
         );
 
-        //- Construct from another zone identifier, resetting the index
+        //- Copy construct from another zone identifier, resetting the index
         surfZoneIdentifier
         (
-            const surfZoneIdentifier&,
+            const surfZoneIdentifier& p,
             const label index
         );
 
@@ -156,14 +155,8 @@ public:
         }
 
 
-        //- Write surfZoneIdentifier as a dictionary
-        void write(Ostream&) const;
-
-
-    // Member Operators
-
-        bool operator!=(const surfZoneIdentifier&) const;
-        bool operator==(const surfZoneIdentifier&) const;
+        //- Write identifier as a dictionary
+        void write(Ostream& os) const;
 
 
     // Ostream Operator
@@ -171,20 +164,29 @@ public:
         //- Read name/type.
         friend Istream& operator>>
         (
-            Istream&,
-            surfZoneIdentifier&
+            Istream& is,
+            surfZoneIdentifier& ob
         );
 
         //- Write name/type.
         friend Ostream& operator<<
         (
-            Ostream&,
-            const surfZoneIdentifier&
+            Ostream& os,
+            const surfZoneIdentifier& obj
         );
 
 };
 
 
+// Global Operators
+
+//- Compare zone indentifiers for equality
+bool operator==(const surfZoneIdentifier& a, const surfZoneIdentifier& b);
+
+//- Compare zone indentifiers for inequality
+bool operator!=(const surfZoneIdentifier& a, const surfZoneIdentifier& b);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C b/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C
index 7ac9a3e598c..c1567931240 100644
--- a/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C
+++ b/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C
@@ -327,9 +327,8 @@ void Foam::UnsortedMeshedSurface<Face>::setOneZone()
         zoneName = "zone0";
     }
 
-    // set single default zone
-    zoneToc_.setSize(1);
-    zoneToc_[0] = surfZoneIdentifier(zoneName, 0);
+    // Set single default zone
+    zoneToc_ = { surfZoneIdentifier(zoneName, 0) };
 }
 
 
diff --git a/src/surfMesh/triSurface/interfaces/AC3D/readAC.C b/src/surfMesh/triSurface/interfaces/AC3D/readAC.C
index 8d300f08a1a..f1712875688 100644
--- a/src/surfMesh/triSurface/interfaces/AC3D/readAC.C
+++ b/src/surfMesh/triSurface/interfaces/AC3D/readAC.C
@@ -183,7 +183,7 @@ bool triSurface::readAC(const fileName& ACfileName)
         );
 
         // Object global values
-        string patchName = string("patch") + name(patchi);
+        string patchName = string("patch") + Foam::name(patchi);
         label nVerts = 0;
         tensor rot(I);
         vector loc(0, 0, 0);
@@ -319,7 +319,6 @@ bool triSurface::readAC(const fileName& ACfileName)
                 patches[patchi] =
                     geometricSurfacePatch
                     (
-                        "empty",
                         word(patchName),
                         patchi
                     );
diff --git a/src/surfMesh/triSurface/interfaces/NAS/readNAS.C b/src/surfMesh/triSurface/interfaces/NAS/readNAS.C
index c98b11f08c0..ae55c60ca37 100644
--- a/src/surfMesh/triSurface/interfaces/NAS/readNAS.C
+++ b/src/surfMesh/triSurface/interfaces/NAS/readNAS.C
@@ -372,16 +372,10 @@ bool triSurface::readNAS(const fileName& fName)
     // Convert groupToPatch to patchList.
     geometricSurfacePatchList patches(nPatches);
 
-    forAllConstIter(Map<word>, groupToName, iter)
+    forAllConstIters(groupToName, iter)
     {
-        label patchi = groupToPatch[iter.key()];
-
-        patches[patchi] = geometricSurfacePatch
-        (
-            "empty",
-            iter(),
-            patchi
-        );
+        const label patchIdx = groupToPatch[iter.key()];
+        patches[patchIdx] = geometricSurfacePatch(iter.object(), patchIdx);
     }
 
     Info<< "patches:" << patches << endl;
diff --git a/src/surfMesh/triSurface/interfaces/OBJ/readOBJ.C b/src/surfMesh/triSurface/interfaces/OBJ/readOBJ.C
index 907669961b6..f13f1535bd2 100644
--- a/src/surfMesh/triSurface/interfaces/OBJ/readOBJ.C
+++ b/src/surfMesh/triSurface/interfaces/OBJ/readOBJ.C
@@ -1,4 +1,3 @@
-
 /*---------------------------------------------------------------------------*\
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
@@ -172,19 +171,19 @@ bool Foam::triSurface::readOBJ(const fileName& OBJfileName)
 
     if (maxGroupID == 0)
     {
-        // Generate default patch
-        patches.setSize(1);
-        patches[0] = geometricSurfacePatch("empty", "patch0", 0);
+        // Add single (default) patch
+        patches = { geometricSurfacePatch("patch0", 0) };
     }
     else
     {
-        forAllConstIter(HashTable<label>, groupToPatch, iter)
+        forAllConstIters(groupToPatch, iter)
         {
-            patches[iter()] = geometricSurfacePatch
+            const label patchIdx = iter.object();
+
+            patches[patchIdx] = geometricSurfacePatch
             (
-                "empty",
                 iter.key(),
-                iter()
+                patchIdx
             );
         }
     }
diff --git a/src/surfMesh/triSurface/interfaces/TRI/readTRI.C b/src/surfMesh/triSurface/interfaces/TRI/readTRI.C
index f11ddcfd5ef..841ab10692d 100644
--- a/src/surfMesh/triSurface/interfaces/TRI/readTRI.C
+++ b/src/surfMesh/triSurface/interfaces/TRI/readTRI.C
@@ -163,7 +163,7 @@ bool Foam::triSurface::readTRI(const fileName& TRIfileName)
     forAll(names, nameI)
     {
         patches_[nameI].name() = names[nameI];
-        patches_[nameI].geometricType() = "empty";
+        patches_[nameI].geometricType() = geometricSurfacePatch::emptyType;
     }
 
     return true;
diff --git a/src/surfMesh/triSurface/interfaces/VTK/readVTK.C b/src/surfMesh/triSurface/interfaces/VTK/readVTK.C
index b413641102d..d19b38e96c7 100644
--- a/src/surfMesh/triSurface/interfaces/VTK/readVTK.C
+++ b/src/surfMesh/triSurface/interfaces/VTK/readVTK.C
@@ -67,13 +67,13 @@ bool Foam::triSurface::readVTK(const fileName& fName)
 
             patches[zoneI] = geometricSurfacePatch
             (
-                zone.geometricType().size() ? zone.geometricType() : "empty",
                 regionName,
-                zoneI
+                zoneI,
+                zone.geometricType()
             );
 
             // Set triangle regions
-            for (label i = zone.start(); i < zone.start()+zone.size(); i++)
+            for (label i = zone.start(); i < zone.start()+zone.size(); ++i)
             {
                 tris[i].region() = zoneI;
             }
@@ -81,11 +81,9 @@ bool Foam::triSurface::readVTK(const fileName& fName)
     }
     else
     {
-        // Add single patch
-        patches.setSize(1);
-        patches[0] = geometricSurfacePatch("empty", "patch0", 0);
-
+        // Add single (default) patch
         // Triangle regions already set to 0
+        patches = { geometricSurfacePatch("patch0", 0) };
     }
 
 
diff --git a/src/surfMesh/triSurface/patches/geometricSurfacePatch.C b/src/surfMesh/triSurface/patches/geometricSurfacePatch.C
index 6bfd83e14c7..45c3191b35d 100644
--- a/src/surfMesh/triSurface/patches/geometricSurfacePatch.C
+++ b/src/surfMesh/triSurface/patches/geometricSurfacePatch.C
@@ -26,28 +26,54 @@ License
 #include "geometricSurfacePatch.H"
 #include "dictionary.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
+defineTypeNameAndDebug(geometricSurfacePatch, 0);
+}
 
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+const Foam::word Foam::geometricSurfacePatch::emptyType = "empty";
 
-defineTypeNameAndDebug(geometricSurfacePatch, 0);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-// Construct null
-geometricSurfacePatch::geometricSurfacePatch()
+Foam::geometricSurfacePatch::geometricSurfacePatch()
 :
-    geometricType_("empty"),
+    geometricType_(emptyType),
     name_("patch"),
     index_(0)
 {}
 
 
-// Construct from components
-geometricSurfacePatch::geometricSurfacePatch
+Foam::geometricSurfacePatch::geometricSurfacePatch(const label index)
+:
+    geometricType_(emptyType),
+    name_("patch"),
+    index_(index)
+{}
+
+
+Foam::geometricSurfacePatch::geometricSurfacePatch
+(
+    const word& name,
+    const label index,
+    const word& geometricType
+)
+:
+    geometricType_(geometricType),
+    name_(name),
+    index_(index)
+
+{
+    if (geometricType_.empty())
+    {
+        geometricType_ = emptyType;
+    }
+}
+
+
+Foam::geometricSurfacePatch::geometricSurfacePatch
 (
     const word& geometricType,
     const word& name,
@@ -61,13 +87,16 @@ geometricSurfacePatch::geometricSurfacePatch
 {
     if (geometricType_.empty())
     {
-        geometricType_ = "empty";
+        geometricType_ = emptyType;
     }
 }
 
 
-// Construct from Istream
-geometricSurfacePatch::geometricSurfacePatch(Istream& is, const label index)
+Foam::geometricSurfacePatch::geometricSurfacePatch
+(
+    Istream& is,
+    const label index
+)
 :
     geometricType_(is),
     name_(is),
@@ -75,89 +104,82 @@ geometricSurfacePatch::geometricSurfacePatch(Istream& is, const label index)
 {
     if (geometricType_.empty())
     {
-        geometricType_ = "empty";
+        geometricType_ = emptyType;
     }
 }
 
 
-// Construct from dictionary
-geometricSurfacePatch::geometricSurfacePatch
+Foam::geometricSurfacePatch::geometricSurfacePatch
 (
     const word& name,
     const dictionary& dict,
     const label index
 )
 :
-    geometricType_(dict.lookup("geometricType")),
+    geometricType_(emptyType),
     name_(name),
     index_(index)
 {
-    if (geometricType_.empty())
-    {
-        geometricType_ = "empty";
-    }
+    dict.readIfPresent("geometricType", geometricType_);
 }
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-// Write
-void geometricSurfacePatch::write(Ostream& os) const
+void Foam::geometricSurfacePatch::write(Ostream& os) const
 {
     os  << nl << name_
         << nl << geometricType_;
 }
 
 
-void geometricSurfacePatch::writeDict(Ostream& os) const
+void Foam::geometricSurfacePatch::writeDict(Ostream& os) const
 {
-    os  << "    geometricType " << geometricType_ << ';' << nl;
+    os.writeEntry("geometricType", geometricType_);
 }
 
 
-// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * Global Operators  * * * * * * * * * * * * * //
 
-bool Foam::geometricSurfacePatch::operator!=(const geometricSurfacePatch& p)
-    const
+bool Foam::operator==
+(
+    const geometricSurfacePatch& a,
+    const geometricSurfacePatch& b
+)
 {
-    return !(*this == p);
+    return
+    (
+        (a.geometricType() == b.geometricType())
+     && (a.name() == b.name())
+    );
 }
 
 
-bool Foam::geometricSurfacePatch::operator==(const geometricSurfacePatch& p)
-    const
+bool Foam::operator!=
+(
+    const geometricSurfacePatch& a,
+    const geometricSurfacePatch& b
+)
 {
-    return
-    (
-        (geometricType() == p.geometricType())
-     && (name() == p.name())
-    );
+    return !(a == b);
 }
 
 
 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
 
-Istream& operator>>(Istream& is, geometricSurfacePatch& gp)
+Foam::Istream& Foam::operator>>(Istream& is, geometricSurfacePatch& p)
 {
-    is >> gp.name_ >> gp.geometricType_;
-
+    is >> p.name_ >> p.geometricType_;
     return is;
 }
 
 
-Ostream& operator<<(Ostream& os, const geometricSurfacePatch& gp)
+Foam::Ostream& Foam::operator<<(Ostream& os, const geometricSurfacePatch& p)
 {
-    gp.write(os);
-    os.check
-    (
-        "Ostream& operator<<(Ostream& f, const geometricSurfacePatch& gp)"
-    );
+    p.write(os);
+    os.check(FUNCTION_NAME);
     return os;
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/surfMesh/triSurface/patches/geometricSurfacePatch.H b/src/surfMesh/triSurface/patches/geometricSurfacePatch.H
index 3a54b71975b..3adfe452d7a 100644
--- a/src/surfMesh/triSurface/patches/geometricSurfacePatch.H
+++ b/src/surfMesh/triSurface/patches/geometricSurfacePatch.H
@@ -47,8 +47,14 @@ namespace Foam
 
 class dictionary;
 
+// Forward declaration of friend functions and operators
+class geometricSurfacePatch;
+
+Istream& operator>>(Istream& is, geometricSurfacePatch& p);
+Ostream& operator<<(Ostream& os, const geometricSurfacePatch& p);
+
 /*---------------------------------------------------------------------------*\
-                           Class geometricSurfacePatch Declaration
+                    Class geometricSurfacePatch Declaration
 \*---------------------------------------------------------------------------*/
 
 class geometricSurfacePatch
@@ -66,6 +72,12 @@ class geometricSurfacePatch
 
 public:
 
+    // Public data
+
+        //- The name for an 'empty' type
+        static const word emptyType;
+
+
     //- Runtime type information
     ClassName("geometricSurfacePatch");
 
@@ -75,6 +87,17 @@ public:
         //- Construct null
         geometricSurfacePatch();
 
+        //- Construct null with specified index
+        explicit geometricSurfacePatch(const label index);
+
+        //- Construct from components
+        geometricSurfacePatch
+        (
+            const word& name,
+            const label index,
+            const word& geometricType = word::null
+        );
+
         //- Construct from components
         geometricSurfacePatch
         (
@@ -83,9 +106,6 @@ public:
             const label index
         );
 
-        //- Construct from Istream
-        geometricSurfacePatch(Istream&, const label index);
-
         //- Construct from dictionary
         geometricSurfacePatch
         (
@@ -94,6 +114,9 @@ public:
             const label index
         );
 
+        //- Construct from Istream
+        geometricSurfacePatch(Istream& is, const label index);
+
 
     // Member Functions
 
@@ -109,50 +132,51 @@ public:
             return name_;
         }
 
-        //- Return the type of the patch
+        //- Return the geometric type of the patch
         const word& geometricType() const
         {
             return geometricType_;
         }
 
-        //- Return the type of the patch
+        //- Return the geometric type of the patch for modification
         word& geometricType()
         {
             return geometricType_;
         }
 
-        //- Return the index of this patch in the boundaryMesh
+        //- Return the index of this patch in the surface mesh
         label index() const
         {
             return index_;
         }
 
-        //- Return the index of this patch in the boundaryMesh
+        //- Return the index of this patch in the surface mesh for modification
         label& index()
         {
             return index_;
         }
 
         //- Write
-        void write(Ostream&) const;
+        void write(Ostream& os) const;
 
         //- Write dictionary
-        void writeDict(Ostream&) const;
+        void writeDict(Ostream& os) const;
 
 
-    // Member Operators
+    // Ostream Operator
 
-        bool operator!=(const geometricSurfacePatch&) const;
+        friend Istream& operator>>(Istream& is, geometricSurfacePatch& p);
+        friend Ostream& operator<<(Ostream& os, const geometricSurfacePatch& p);
+};
 
-        //- compare.
-        bool operator==(const geometricSurfacePatch&) const;
 
+// Global Operators
 
-    // Ostream Operator
+//- Compare patches for equality
+bool operator==(const geometricSurfacePatch& a, const geometricSurfacePatch& b);
 
-        friend Ostream& operator<<(Ostream&, const geometricSurfacePatch&);
-        friend Istream& operator>>(Istream&, geometricSurfacePatch&);
-};
+//- Compare patches for inequality
+bool operator!=(const geometricSurfacePatch& a, const geometricSurfacePatch& b);
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/surfMesh/triSurface/triSurface.C b/src/surfMesh/triSurface/triSurface.C
index d1ff1919c58..7590bba3a81 100644
--- a/src/surfMesh/triSurface/triSurface.C
+++ b/src/surfMesh/triSurface/triSurface.C
@@ -623,7 +623,7 @@ Foam::triSurface::calcPatches(labelList& faceMap) const
         }
         else
         {
-            newPatch.geometricType() = "empty";
+            newPatch.geometricType() = geometricSurfacePatch::emptyType;
         }
 
         startFacei += newPatch.size();
-- 
GitLab


From ccc1ce4a2562b51cc5bb69b48c48ade8cb7c8daf Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 10:39:56 +0200
Subject: [PATCH 247/277] ENH: avoid calling fileName::components twice in
 Foam::cp

---
 src/OSspecific/POSIX/POSIX.C | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/OSspecific/POSIX/POSIX.C b/src/OSspecific/POSIX/POSIX.C
index d444b83a0b6..f4cad0fccb8 100644
--- a/src/OSspecific/POSIX/POSIX.C
+++ b/src/OSspecific/POSIX/POSIX.C
@@ -770,7 +770,7 @@ bool Foam::cp(const fileName& src, const fileName& dest, const bool followLink)
         // If dest is a directory, create the destination file name.
         if (destFile.type() == fileName::DIRECTORY)
         {
-            destFile = destFile/src.component(src.components().size() -1);
+            destFile = destFile/src.components().last();
         }
 
         // Make sure the destination directory exists.
-- 
GitLab


From 0564efb9e1f32043e0ca814a966220ba37c255df Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 10:48:01 +0200
Subject: [PATCH 248/277] ENH: add basic support for file extensions to word

- when a plain word is used as a directory-local name for file.
  We don't have a full blown fileName, but still want to check/remove
  extensions etc.
---
 .../primitives/strings/fileName/fileName.C    | 83 +++----------------
 .../primitives/strings/fileName/fileName.H    | 19 ++---
 .../primitives/strings/fileName/fileNameI.H   | 33 ++++----
 .../primitives/strings/string/string.C        | 66 ++++++++++++++-
 .../primitives/strings/string/string.H        | 33 ++++++++
 .../primitives/strings/string/stringI.H       | 41 ++++++++-
 src/OpenFOAM/primitives/strings/word/word.C   | 42 ++++++++++
 src/OpenFOAM/primitives/strings/word/word.H   | 33 ++++++++
 src/OpenFOAM/primitives/strings/word/wordI.H  | 12 +++
 .../primitives/strings/wordRe/wordRe.H        |  4 +-
 10 files changed, 265 insertions(+), 101 deletions(-)

diff --git a/src/OpenFOAM/primitives/strings/fileName/fileName.C b/src/OpenFOAM/primitives/strings/fileName/fileName.C
index 258167fc1e0..87ddec68b7c 100644
--- a/src/OpenFOAM/primitives/strings/fileName/fileName.C
+++ b/src/OpenFOAM/primitives/strings/fileName/fileName.C
@@ -41,15 +41,15 @@ const Foam::fileName Foam::fileName::null;
 Foam::fileName::fileName(const UList<word>& lst)
 {
     // Estimate overall size
-    size_type sz = lst.size();
-    for (const word& item : lst)
+    size_type sz = lst.size();  // Approx number of '/' needed
+    for (const auto& item : lst)
     {
         sz += item.size();
     }
     reserve(sz);
 
     sz = 0;
-    for (const word& item : lst)
+    for (const auto& item : lst)
     {
         if (item.size())
         {
@@ -63,15 +63,15 @@ Foam::fileName::fileName(const UList<word>& lst)
 Foam::fileName::fileName(std::initializer_list<word> lst)
 {
     // Estimate overall size
-    size_type sz = lst.size();
-    for (const word& item : lst)
+    size_type sz = lst.size();  // Approx number of '/' needed
+    for (const auto& item : lst)
     {
         sz += item.size();
     }
     reserve(sz);
 
     sz = 0;
-    for (const word& item : lst)
+    for (const auto& item : lst)
     {
         if (item.size())
         {
@@ -90,12 +90,6 @@ Foam::fileName::Type Foam::fileName::type(const bool followLink) const
 }
 
 
-bool Foam::fileName::isAbsolute() const
-{
-    return !empty() && operator[](0) == '/';
-}
-
-
 Foam::fileName& Foam::fileName::toAbsolute()
 {
     fileName& f = *this;
@@ -294,81 +288,26 @@ Foam::fileName Foam::fileName::lessExt() const
 
 Foam::word Foam::fileName::ext() const
 {
-    const size_type i = find_ext();
-
-    if (i == npos)
-    {
-        return word::null;
-    }
-    else
-    {
-        return substr(i+1, npos);
-    }
+    return string::ext();
 }
 
 
 Foam::fileName& Foam::fileName::ext(const word& ending)
 {
-    if (!ending.empty() && !empty() && operator[](size()-1) != '/')
-    {
-        append(".");
-        append(ending);
-    }
-
+    string::ext(ending);
     return *this;
 }
 
 
-bool Foam::fileName::hasExt() const
-{
-    return (find_ext() != npos);
-}
-
-
 bool Foam::fileName::hasExt(const word& ending) const
 {
-    size_type i = find_ext();
-    if (i == npos)
-    {
-        return false;
-    }
-
-    ++i; // Do next comparison *after* the dot
-    return
-    (
-        // Lengths must match
-        ((size() - i) == ending.size())
-     && !compare(i, npos, ending)
-    );
+    return string::hasExt(ending);
 }
 
 
 bool Foam::fileName::hasExt(const wordRe& ending) const
 {
-    const size_type i = find_ext();
-    if (i == npos)
-    {
-        return false;
-    }
-
-    std::string end = substr(i+1, npos);
-    return ending.match(end);
-}
-
-
-bool Foam::fileName::removeExt()
-{
-    const size_type i = find_ext();
-
-    if (i == npos)
-    {
-        return false;
-    }
-    else
-    {
-        this->resize(i);
-        return true;
-    }
+    return string::hasExt(ending);
 }
 
 
@@ -444,7 +383,7 @@ void Foam::fileName::operator=(const char* str)
 }
 
 
-// * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * Global Operators  * * * * * * * * * * * * * //
 
 Foam::fileName Foam::operator/(const string& a, const string& b)
 {
diff --git a/src/OpenFOAM/primitives/strings/fileName/fileName.H b/src/OpenFOAM/primitives/strings/fileName/fileName.H
index a8f17cf6b04..19cd295120f 100644
--- a/src/OpenFOAM/primitives/strings/fileName/fileName.H
+++ b/src/OpenFOAM/primitives/strings/fileName/fileName.H
@@ -74,10 +74,6 @@ class fileName
 {
     // Private Member Functions
 
-        //- Find position of the file extension dot, return npos on failure.
-        //  A wrapped version of find_last_of("./") with additional logic.
-        inline size_type find_ext() const;
-
         //- Strip invalid characters
         inline void stripInvalid();
 
@@ -154,6 +150,7 @@ public:
         //
         // * Removes trailing '/'
         //
+        // \return True if any contents changed
         bool clean();
 
         //- Cleanup file name
@@ -167,8 +164,8 @@ public:
         //  LINK (only if followLink=false)
         Type type(const bool followLink = true) const;
 
-        //- Return true if file name is absolute
-        bool isAbsolute() const;
+        //- Return true if file name is absolute (starts with a '/')
+        inline bool isAbsolute() const;
 
         //- Convert from relative to absolute
         fileName& toAbsolute();
@@ -194,8 +191,8 @@ public:
         word nameLessExt() const;
 
         //- Return basename, optionally without extension
-        // \deprecated in favour of name() or nameLessExt() which more
-        //  explicitly describe their behaviour (MAR-2017).
+        // \deprecated in favour of name() or nameLessExt() which describe
+        //  their behaviour more explicitly (MAR-2017).
         word name(const bool noExt) const
         {
             return noExt ? this->nameLessExt() : this->name();
@@ -227,7 +224,7 @@ public:
         fileName& ext(const word& ending);
 
         //- Return true if it has an extension or simply ends with a '.'
-        bool hasExt() const;
+        inline bool hasExt() const;
 
         //- Return true if the extension is the same as the given ending.
         bool hasExt(const word& ending) const;
@@ -236,7 +233,7 @@ public:
         bool hasExt(const wordRe& ending) const;
 
         //- Remove extension, returning true if string changed.
-        bool removeExt();
+        inline bool removeExt();
 
 
         //- Return path components as wordList
@@ -288,6 +285,8 @@ public:
 };
 
 
+// Global Operators
+
 //- Assemble words and fileNames as pathnames by adding a '/' separator.
 //  No '/' separator is added if either argument is an empty string.
 fileName operator/(const string& a, const string& b);
diff --git a/src/OpenFOAM/primitives/strings/fileName/fileNameI.H b/src/OpenFOAM/primitives/strings/fileName/fileNameI.H
index e2055f74746..b1199263056 100644
--- a/src/OpenFOAM/primitives/strings/fileName/fileNameI.H
+++ b/src/OpenFOAM/primitives/strings/fileName/fileNameI.H
@@ -25,21 +25,6 @@ License
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-inline std::string::size_type Foam::fileName::find_ext() const
-{
-    const size_type i = find_last_of("./");
-
-    if (i == npos || i == 0 || operator[](i) == '/')
-    {
-        return npos;
-    }
-    else
-    {
-        return i;
-    }
-}
-
-
 inline void Foam::fileName::stripInvalid()
 {
     // skip stripping unless debug is active to avoid
@@ -130,4 +115,22 @@ inline bool Foam::fileName::valid(char c)
 }
 
 
+inline bool Foam::fileName::isAbsolute() const
+{
+    return !empty() && operator[](0) == '/';
+}
+
+
+inline bool Foam::fileName::hasExt() const
+{
+    return string::hasExt();
+}
+
+
+inline bool Foam::fileName::removeExt()
+{
+    return string::removeExt();
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/strings/string/string.C b/src/OpenFOAM/primitives/strings/string/string.C
index 5f03edeba1c..dff56264118 100644
--- a/src/OpenFOAM/primitives/strings/string/string.C
+++ b/src/OpenFOAM/primitives/strings/string/string.C
@@ -25,6 +25,8 @@ License
 
 #include "string.H"
 #include "stringOps.H"
+#include "word.H"
+#include "wordRe.H"
 
 /* * * * * * * * * * * * * * * Static Member Data  * * * * * * * * * * * * * */
 
@@ -33,13 +35,75 @@ int Foam::string::debug(Foam::debug::debugSwitch(string::typeName, 0));
 const Foam::string Foam::string::null;
 
 
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+Foam::word Foam::string::ext() const
+{
+    const size_type i = find_ext();
+
+    if (i == npos)
+    {
+        return word::null;
+    }
+    else
+    {
+        return substr(i+1, npos);
+    }
+}
+
+
+bool Foam::string::ext(const Foam::word& ending)
+{
+    if (!ending.empty() && !empty() && operator[](size()-1) != '/')
+    {
+        append(1u, '.');
+        append(ending);
+
+        return true;
+    }
+
+    return false;
+}
+
+
+bool Foam::string::hasExt(const word& ending) const
+{
+    size_type i = find_ext();
+    if (i == npos)
+    {
+        return false;
+    }
+
+    ++i; // Compare *after* the dot
+    return
+    (
+        // Lengths must match
+        ((size() - i) == ending.size())
+     && !compare(i, npos, ending)
+    );
+}
+
+
+bool Foam::string::hasExt(const wordRe& ending) const
+{
+    const size_type i = find_ext();
+    if (i == npos)
+    {
+        return false;
+    }
+
+    const std::string end = substr(i+1, npos);  // Compare *after* the dot
+    return ending.match(end);
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 Foam::string::size_type Foam::string::count(const char c) const
 {
     size_type cCount = 0;
 
-    for (const_iterator iter = begin(); iter != end(); ++iter)
+    for (const_iterator iter = cbegin(); iter != cend(); ++iter)
     {
         if (*iter == c)
         {
diff --git a/src/OpenFOAM/primitives/strings/string/string.H b/src/OpenFOAM/primitives/strings/string/string.H
index 87cb00104b2..e624a684567 100644
--- a/src/OpenFOAM/primitives/strings/string/string.H
+++ b/src/OpenFOAM/primitives/strings/string/string.H
@@ -58,6 +58,8 @@ namespace Foam
 {
 
 // Forward declaration of classes
+class word;
+class wordRe;
 class Istream;
 class Ostream;
 
@@ -76,6 +78,37 @@ class string
 :
     public std::string
 {
+protected:
+
+    // Protected Member Functions
+
+        //- Find position of a file extension dot, return npos on failure.
+        //  A wrapped version of find_last_of("./") with additional logic.
+        inline size_type find_ext() const;
+
+        //- Return file name extension (part after last .)
+        word ext() const;
+
+        //- Append a '.' and the ending.
+        //  The '.' and ending will not be added when the ending is empty,
+        //  or when the object was or ended with a '/'.
+        //
+        //  \return True if append occurred.
+        bool ext(const word& ending);
+
+        //- Return true if it has an extension or simply ends with a '.'
+        inline bool hasExt() const;
+
+        //- Return true if the extension is the same as the given ending.
+        bool hasExt(const word& ending) const;
+
+        //- Return true if the extension matches the given ending.
+        bool hasExt(const wordRe& ending) const;
+
+        //- Remove extension, returning true if string changed.
+        inline bool removeExt();
+
+
 public:
 
     // Static data members
diff --git a/src/OpenFOAM/primitives/strings/string/stringI.H b/src/OpenFOAM/primitives/strings/string/stringI.H
index b23a71b2d53..bae33b3342f 100644
--- a/src/OpenFOAM/primitives/strings/string/stringI.H
+++ b/src/OpenFOAM/primitives/strings/string/stringI.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,6 +25,45 @@ License
 
 #include <iostream>
 
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+inline std::string::size_type Foam::string::find_ext() const
+{
+    const size_type i = find_last_of("./");
+
+    if (i == npos || i == 0 || operator[](i) == '/')
+    {
+        return npos;
+    }
+    else
+    {
+        return i;
+    }
+}
+
+
+inline bool Foam::string::hasExt() const
+{
+    return (find_ext() != npos);
+}
+
+
+inline bool Foam::string::removeExt()
+{
+    const size_type i = find_ext();
+
+    if (i == npos)
+    {
+        return false;
+    }
+    else
+    {
+        this->resize(i);
+        return true;
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 inline Foam::string::string()
diff --git a/src/OpenFOAM/primitives/strings/word/word.C b/src/OpenFOAM/primitives/strings/word/word.C
index bbd4050a338..2f418d721d2 100644
--- a/src/OpenFOAM/primitives/strings/word/word.C
+++ b/src/OpenFOAM/primitives/strings/word/word.C
@@ -91,4 +91,46 @@ Foam::word Foam::word::validated(const std::string& s)
 }
 
 
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::word Foam::word::lessExt() const
+{
+    const size_type i = find_ext();
+
+    if (i == npos)
+    {
+        return *this;
+    }
+    else
+    {
+        return substr(0, i);
+    }
+}
+
+
+Foam::word Foam::word::ext() const
+{
+    return string::ext();
+}
+
+
+Foam::word& Foam::word::ext(const word& ending)
+{
+    string::ext(ending);
+    return *this;
+}
+
+
+bool Foam::word::hasExt(const word& ending) const
+{
+    return string::hasExt(ending);
+}
+
+
+bool Foam::word::hasExt(const wordRe& ending) const
+{
+    return string::hasExt(ending);
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/strings/word/word.H b/src/OpenFOAM/primitives/strings/word/word.H
index 4561292ab90..ebff4c52350 100644
--- a/src/OpenFOAM/primitives/strings/word/word.H
+++ b/src/OpenFOAM/primitives/strings/word/word.H
@@ -117,13 +117,46 @@ public:
         static word validated(const std::string& s);
 
 
+      // File-like functions
+
+        //- Return word without extension (part before last .)
+        word lessExt() const;
+
+        //- Return file name extension (part after last .)
+        word ext() const;
+
+        //- Append a '.' and the ending, and return the object.
+        //  The '.' and ending will not be added when the ending is empty,
+        //  or when the file name is empty or ended with a '/'.
+        word& ext(const word& ending);
+
+        //- Return true if it has an extension or simply ends with a '.'
+        inline bool hasExt() const;
+
+        //- Return true if the extension is the same as the given ending.
+        bool hasExt(const word& ending) const;
+
+        //- Return true if the extension matches the given ending.
+        bool hasExt(const wordRe& ending) const;
+
+        //- Remove extension, returning true if string changed.
+        inline bool removeExt();
+
+
     // Member operators
 
       // Assignment
 
+        //- Copy, no character validation required
         inline void operator=(const word& w);
+
+        //- Copy, stripping invalid characters
         inline void operator=(const string& s);
+
+        //- Copy, stripping invalid characters
         inline void operator=(const std::string& s);
+
+        //- Copy, stripping invalid characters
         inline void operator=(const char* s);
 
 
diff --git a/src/OpenFOAM/primitives/strings/word/wordI.H b/src/OpenFOAM/primitives/strings/word/wordI.H
index 4c6c800b118..eb170970143 100644
--- a/src/OpenFOAM/primitives/strings/word/wordI.H
+++ b/src/OpenFOAM/primitives/strings/word/wordI.H
@@ -127,6 +127,18 @@ inline bool Foam::word::valid(char c)
 }
 
 
+inline bool Foam::word::hasExt() const
+{
+    return string::hasExt();
+}
+
+
+inline bool Foam::word::removeExt()
+{
+    return string::removeExt();
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 inline void Foam::word::operator=(const word& w)
diff --git a/src/OpenFOAM/primitives/strings/wordRe/wordRe.H b/src/OpenFOAM/primitives/strings/wordRe/wordRe.H
index ede0a7a047e..4df4325efda 100644
--- a/src/OpenFOAM/primitives/strings/wordRe/wordRe.H
+++ b/src/OpenFOAM/primitives/strings/wordRe/wordRe.H
@@ -25,8 +25,8 @@ Class
     Foam::wordRe
 
 Description
-    A wordRe is a word, but can also have a regular expression for matching
-    words.
+    A wordRe is a Foam::word, but can contain a regular expression for
+    matching words or strings.
 
     By default the constructors will generally preserve the argument as a
     string literal and the assignment operators will use the wordRe::DETECT
-- 
GitLab


From 2af602c2f456a2b3da0f000621d5dbdb228bf1ff Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 10:59:16 +0200
Subject: [PATCH 249/277] STYLE: for Istream/Ostream check() use FUNCTION_NAME
 in messages

---
 .../electromagnetics/magneticFoam/magnet.H    |  4 +--
 etc/codeTemplates/source/_TemplateIO.C        | 18 ++---------
 .../template/_TemplateTemplateIO.C            | 19 ++----------
 src/OSspecific/POSIX/fileStat.C               |  4 +--
 src/OSspecific/POSIX/memInfo/memInfo.C        | 14 ++-------
 .../algorithms/indexedOctree/volumeType.C     |  4 +--
 .../HashTables/HashTable/HashTableIO.C        | 10 ++-----
 .../StaticHashTable/StaticHashTableIO.C       | 10 +++----
 .../containers/Identifiers/Keyed/KeyedI.H     |  4 +--
 .../LinkedLists/accessTypes/ILList/ILListIO.C |  8 ++---
 .../LinkedLists/accessTypes/LList/LListIO.C   | 12 ++++----
 .../accessTypes/LPtrList/LPtrListIO.C         | 18 ++++-------
 .../accessTypes/UILList/UILListIO.C           |  4 +--
 .../Lists/Distribution/Distribution.C         |  8 ++---
 .../containers/Lists/FixedList/FixedListIO.C  |  6 ++--
 src/OpenFOAM/containers/Lists/List/ListIO.C   |  4 +--
 .../containers/Lists/PackedList/PackedList.C  | 10 +++----
 .../containers/Lists/PackedList/PackedListI.H |  3 +-
 .../containers/Lists/PtrList/PtrListIO.C      |  2 +-
 .../Lists/UIndirectList/UIndirectListIO.C     |  4 +--
 src/OpenFOAM/containers/Lists/UList/UListIO.C |  6 ++--
 .../containers/Lists/UPtrList/UPtrListIO.C    |  4 +--
 .../IOstreams/Pstreams/UPstreamCommsStruct.C  |  6 +---
 src/OpenFOAM/db/IOstreams/token/tokenIO.C     |  4 +--
 .../dictionaryEntry/dictionaryEntryIO.C       | 12 ++------
 .../dictionaryListEntryIO.C                   |  3 +-
 .../functionEntry/functionEntry.C             | 12 ++------
 .../primitiveEntry/primitiveEntryIO.C         | 10 ++-----
 src/OpenFOAM/dimensionSet/dimensionSetIO.C    | 19 ++++--------
 .../dimensionedType/dimensionedType.C         | 30 ++++---------------
 .../DimensionedField/DimensionedFieldIO.C     |  4 +--
 .../GeometricField/GeometricBoundaryField.C   |  7 +----
 .../GeometricField/GeometricField.C           | 10 ++-----
 .../pointPatchField/pointPatchField.C         |  2 +-
 src/OpenFOAM/graph/curve/curve.C              |  2 +-
 src/OpenFOAM/graph/graph.C                    |  2 +-
 .../matrices/LduMatrix/LduMatrix/LduMatrix.C  |  2 +-
 src/OpenFOAM/matrices/Matrix/MatrixIO.C       |  6 ++--
 .../matrices/lduMatrix/lduMatrix/lduMatrix.C  |  4 +--
 .../meshes/Identifiers/DynamicID/DynamicID.H  |  4 +--
 src/OpenFOAM/meshes/boundBox/boundBox.C       |  6 ++--
 src/OpenFOAM/meshes/lduMesh/lduMesh.C         |  2 +-
 src/OpenFOAM/meshes/meshShapes/face/faceI.H   |  4 +--
 .../meshShapes/labelledTri/labelledTriI.H     |  6 +---
 .../mapPolyMesh/mapDistribute/mapDistribute.C |  2 +-
 .../mapDistribute/mapDistributeBase.C         |  2 +-
 .../mapDistribute/mapDistributePolyMesh.C     |  2 +-
 .../mapPolyMesh/objectMap/objectMapI.H        | 11 ++-----
 .../polyBoundaryMesh/polyBoundaryMesh.C       | 18 ++---------
 .../polyMeshTetDecomposition/tetIndices.C     | 15 ++--------
 .../polyPatches/polyPatch/polyPatch.C         |  2 +-
 .../meshes/polyMesh/zones/cellZone/cellZone.C |  2 +-
 .../meshes/polyMesh/zones/faceZone/faceZone.C |  2 +-
 .../polyMesh/zones/pointZone/pointZone.C      |  2 +-
 .../meshes/polyMesh/zones/zone/zone.C         |  2 +-
 .../meshes/primitiveShapes/line/lineI.H       |  2 +-
 .../primitiveShapes/objectHit/PointIndexHit.H |  9 ++----
 .../meshes/primitiveShapes/pyramid/pyramidI.H |  4 +--
 .../tetrahedron/tetrahedronI.H                |  2 +-
 .../primitiveShapes/triangle/triangleI.H      |  2 +-
 src/OpenFOAM/primitives/Scalar/Scalar.C       |  6 ++--
 src/OpenFOAM/primitives/Tuple2/Tuple2.H       |  4 +--
 .../primitives/VectorSpace/VectorSpace.C      |  8 ++---
 src/OpenFOAM/primitives/chars/char/charIO.C   |  6 ++--
 src/OpenFOAM/primitives/chars/wchar/wcharIO.C |  2 +-
 src/OpenFOAM/primitives/complex/complex.C     |  4 +--
 .../functions/Function1/Function1/Function1.C |  6 +---
 .../functions/Polynomial/PolynomialIO.C       |  7 +----
 .../functions/Polynomial/polynomialFunction.C |  2 +-
 .../vectorTensorTransform.C                   |  2 +-
 .../primitives/hashes/SHA1/SHA1Digest.C       |  4 +--
 src/OpenFOAM/primitives/ints/int32/int32IO.C  |  6 ++--
 src/OpenFOAM/primitives/ints/int64/int64IO.C  |  6 ++--
 .../primitives/ints/uint32/uint32IO.C         |  6 ++--
 .../primitives/ints/uint64/uint64IO.C         |  6 ++--
 .../primitives/quaternion/quaternion.C        |  4 +--
 .../primitives/ranges/labelRange/labelRange.C |  4 +--
 .../primitives/septernion/septernion.C        |  4 +--
 .../primitives/strings/fileName/fileNameIO.C  |  6 ++--
 .../primitives/strings/keyType/keyType.C      |  6 ++--
 .../primitives/strings/string/stringIO.C      |  8 ++---
 src/OpenFOAM/primitives/strings/word/wordIO.C |  6 ++--
 .../primitives/strings/wordRe/wordRe.C        |  6 ++--
 src/dynamicMesh/boundaryPatch/boundaryPatch.C |  2 +-
 .../directions/directionInfo/directionInfo.C  |  7 ++---
 .../wallNormalInfo/wallNormalInfo.C           |  8 ++---
 .../polyMeshModifier/polyMeshModifier.C       |  2 +-
 .../polyTopoChange/refinementData.C           |  6 ++--
 .../polyTopoChanger/polyTopoChanger.C         |  2 +-
 src/engine/ignition/ignitionSiteIO.C          |  4 +--
 .../derived/turbulentDFSEMInlet/eddy/eddyIO.C | 28 ++++-------------
 .../fvPatchFields/fvPatchField/fvPatchField.C |  2 +-
 .../fvsPatchField/fvsPatchField.C             |  2 +-
 .../fvMatrices/fvMatrix/fvMatrix.C            |  2 +-
 .../fieldAverageItem/fieldAverageItemIO.C     | 25 +++-------------
 .../field/nearWallFields/findCellParticle.C   | 11 ++-----
 .../field/streamLine/streamLineParticle.C     | 11 ++-----
 .../wallBoundedParticle.C                     |  7 +----
 .../wallBoundedStreamLineParticle.C           | 14 ++-------
 .../Templates/DSMCParcel/DSMCParcelIO.C       | 14 ++-------
 src/lagrangian/basic/Cloud/CloudIO.C          |  4 +--
 src/lagrangian/basic/IOPosition/IOPosition.C  |  6 +---
 .../referredWallFace/referredWallFace.C       | 16 ++--------
 .../injectedParticle/injectedParticleIO.C     | 14 ++-------
 src/lagrangian/basic/particle/particleIO.C    |  4 +--
 .../CollidingParcel/CollidingParcelIO.C       | 14 ++-------
 .../CollisionRecordList/CollisionRecordList.C | 23 ++------------
 .../PairCollisionRecordIO.C                   | 22 ++------------
 .../WallCollisionRecordIO.C                   | 22 ++------------
 .../KinematicParcel/KinematicParcelIO.C       | 14 ++-------
 .../Templates/MPPICParcel/MPPICParcelIO.C     | 12 ++------
 .../ReactingMultiphaseParcelIO.C              | 22 ++------------
 .../ReactingParcel/ReactingParcelIO.C         | 18 ++---------
 .../Templates/ThermoParcel/ThermoParcelIO.C   | 13 ++------
 .../phaseProperties/phasePropertiesIO.C       | 18 +++--------
 .../PairCollision/WallSiteData/WallSiteData.C | 16 ++--------
 .../kinematicParcelInjectionDataIO.C          |  4 +--
 .../LocalInteraction/patchInteractionData.C   |  2 +-
 .../reactingParcelInjectionDataIO.C           |  4 +--
 .../reactingMultiphaseParcelInjectionDataIO.C |  4 +--
 .../thermoParcelInjectionDataIO.C             |  4 +--
 .../bufferedAccumulatorIO.C                   |  8 +----
 .../correlationFunctionIO.C                   |  8 +----
 .../distribution/distribution.C               |  8 +----
 .../molecule/molecule/moleculeIO.C            | 15 ++--------
 .../molecule/reducedUnits/reducedUnitsIO.C    |  8 +----
 .../solidParticle/solidParticleIO.C           |  7 ++---
 .../Templates/SprayParcel/SprayParcelIO.C     | 18 ++---------
 .../blockMesh/blockMeshTools/blockMeshTools.C |  5 +---
 .../gradingDescriptor/gradingDescriptor.C     |  4 +--
 .../gradingDescriptor/gradingDescriptors.C    |  2 +-
 .../trackedParticle/trackedParticle.C         | 11 ++-----
 src/meshTools/AABBTree/AABBTree.C             |  4 +--
 .../coordinateSystems/coordinateSystem.C      |  2 +-
 .../edgeMeshFormats/edgeMesh/edgeMeshFormat.C | 11 ++-----
 src/meshTools/edgeMesh/edgeMeshIO.C           |  8 ++---
 .../extendedEdgeMesh/extendedEdgeMesh.C       | 12 ++------
 .../extendedFeatureEdgeMesh.C                 |  4 +--
 .../rigidBodyModelStateIO.C                   | 16 ++--------
 .../sampledSurface/sampledSurface.C           |  2 +-
 .../sixDoFRigidBodyMotionStateIO.C            | 16 ++--------
 src/surfMesh/MeshedSurface/MeshedSurfaceIO.C  |  4 +--
 .../UnsortedMeshedSurface.C                   |  4 +--
 src/surfMesh/surfZone/surfZone/surfZone.C     |  4 +--
 .../triSurface/patches/surfacePatch.C         |  2 +-
 src/surfMesh/triSurface/triSurface.C          |  2 +-
 .../specie/specie/specie.C                    |  2 +-
 147 files changed, 270 insertions(+), 851 deletions(-)

diff --git a/applications/solvers/electromagnetics/magneticFoam/magnet.H b/applications/solvers/electromagnetics/magneticFoam/magnet.H
index 7e9b04a4c51..8f15c69635d 100644
--- a/applications/solvers/electromagnetics/magneticFoam/magnet.H
+++ b/applications/solvers/electromagnetics/magneticFoam/magnet.H
@@ -138,9 +138,7 @@ public:
                 >> m.orientation_;
             is.readEnd("magnet");
 
-            // Check state of Istream
-            is.check("operator>>(Istream&, magnet&)");
-
+            is.check(FUNCTION_NAME);
             return is;
         }
 
diff --git a/etc/codeTemplates/source/_TemplateIO.C b/etc/codeTemplates/source/_TemplateIO.C
index f1e498671e4..4097eaa24f5 100644
--- a/etc/codeTemplates/source/_TemplateIO.C
+++ b/etc/codeTemplates/source/_TemplateIO.C
@@ -35,8 +35,7 @@ Foam::CLASSNAME::CLASSNAME(Istream& is)
     member1(is),
     member2(is)
 {
-    // Check state of Istream
-    is.check("Foam::CLASSNAME::CLASSNAME(Foam::Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -44,25 +43,14 @@ Foam::CLASSNAME::CLASSNAME(Istream& is)
 
 Foam::Istream& Foam::operator>>(Istream& is, CLASSNAME&)
 {
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>(Foam::Istream&, Foam::CLASSNAME&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
 
 Foam::Ostream& Foam::operator<<(Ostream& os, const CLASSNAME&)
 {
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::CLASSNAME&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/etc/codeTemplates/template/_TemplateTemplateIO.C b/etc/codeTemplates/template/_TemplateTemplateIO.C
index 05921c96458..f17a357c979 100644
--- a/etc/codeTemplates/template/_TemplateTemplateIO.C
+++ b/etc/codeTemplates/template/_TemplateTemplateIO.C
@@ -36,8 +36,7 @@ Foam::CLASSNAME<TemplateArgument>::CLASSNAME(Istream& is)
     member1(is),
     member2(is)
 {
-    // Check state of Istream
-    is.check("Foam::CLASSNAME<TemplateArgument>::CLASSNAME(Foam::Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -50,13 +49,7 @@ Foam::Istream& Foam::operator>>
     CLASSNAME<TemplateArgument>&
 )
 {
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::CLASSNAME<TemplateArgument>&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -68,13 +61,7 @@ Foam::Ostream& Foam::operator<<
     const CLASSNAME<TemplateArgument>&
 )
 {
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Ostream&, const CLASSNAME<TemplateArgument>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OSspecific/POSIX/fileStat.C b/src/OSspecific/POSIX/fileStat.C
index f40192f03bc..afb955bfe26 100644
--- a/src/OSspecific/POSIX/fileStat.C
+++ b/src/OSspecific/POSIX/fileStat.C
@@ -123,9 +123,7 @@ Foam::Istream& Foam::operator>>(Istream& is, fileStat& fStat)
     fStat.status_.st_mtime = stat[11];
     fStat.status_.st_ctime = stat[12];
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, fileStat&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OSspecific/POSIX/memInfo/memInfo.C b/src/OSspecific/POSIX/memInfo/memInfo.C
index 43037b5c793..c0ff2dd99bf 100644
--- a/src/OSspecific/POSIX/memInfo/memInfo.C
+++ b/src/OSspecific/POSIX/memInfo/memInfo.C
@@ -118,12 +118,7 @@ Foam::Istream& Foam::operator>>(Istream& is, memInfo& m)
 
     is.readEnd("memInfo");
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>(Foam::Istream&, Foam::memInfo&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -136,12 +131,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const memInfo& m)
         << m.rss_
         << token::END_LIST;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, const Foam::memInfo&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/algorithms/indexedOctree/volumeType.C b/src/OpenFOAM/algorithms/indexedOctree/volumeType.C
index 95868f6c0c3..1bb1356b967 100644
--- a/src/OpenFOAM/algorithms/indexedOctree/volumeType.C
+++ b/src/OpenFOAM/algorithms/indexedOctree/volumeType.C
@@ -61,9 +61,7 @@ Foam::Istream& Foam::operator>>(Istream& is, volumeType& vt)
     // Read end of volumeType
     is.readEnd("volumeType");
 
-    // Check state of Istream
-    is.check("operator>>(Istream&, volumeType&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C b/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C
index 0eb3fadb459..54cd7ed9220 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C
@@ -129,9 +129,7 @@ Foam::Ostream& Foam::HashTable<T, Key, Hash>::writeKeys
         os << token::END_LIST << nl;  // End delimiter
     }
 
-    // Check state of IOstream
     os.check(FUNCTION_NAME);
-
     return os;
 }
 
@@ -145,12 +143,12 @@ Foam::Istream& Foam::operator>>
     HashTable<T, Key, Hash>& L
 )
 {
-    is.fatalCheck("operator>>(Istream&, HashTable<T, Key, Hash>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     // Anull list
     L.clear();
 
-    is.fatalCheck("operator>>(Istream&, HashTable<T, Key, Hash>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
@@ -251,7 +249,7 @@ Foam::Istream& Foam::operator>>
             << exit(FatalIOError);
     }
 
-    is.fatalCheck("operator>>(Istream&, HashTable<T, Key, Hash>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     return is;
 }
@@ -278,9 +276,7 @@ Foam::Ostream& Foam::operator<<
     // Write end delimiter
     os << token::END_LIST;
 
-    // Check state of IOstream
     os.check(FUNCTION_NAME);
-
     return os;
 }
 
diff --git a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C
index 7e4b3832611..c7e06724530 100644
--- a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C
+++ b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C
@@ -94,12 +94,12 @@ Foam::StaticHashTable<T, Key, Hash>::printInfo(Ostream& os) const
 template<class T, class Key, class Hash>
 Foam::Istream& Foam::operator>>(Istream& is, StaticHashTable<T, Key, Hash>& L)
 {
-    is.fatalCheck("operator>>(Istream&, StaticHashTable<T, Key, Hash>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     // Anull list
     L.clear();
 
-    is.fatalCheck("operator>>(Istream&, StaticHashTable<T, Key, Hash>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
@@ -200,7 +200,7 @@ Foam::Istream& Foam::operator>>(Istream& is, StaticHashTable<T, Key, Hash>& L)
             << exit(FatalIOError);
     }
 
-    is.fatalCheck("operator>>(Istream&, StaticHashTable<T, Key, Hash>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     return is;
 }
@@ -229,9 +229,7 @@ Foam::Ostream& Foam::operator<<
     // Write end delimiter
     os << token::END_LIST;
 
-    // Check state of IOstream
-    os.check("Ostream& operator<<(Ostream&, const StaticHashTable&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/containers/Identifiers/Keyed/KeyedI.H b/src/OpenFOAM/containers/Identifiers/Keyed/KeyedI.H
index d07aeb0f6af..59f49406871 100644
--- a/src/OpenFOAM/containers/Identifiers/Keyed/KeyedI.H
+++ b/src/OpenFOAM/containers/Identifiers/Keyed/KeyedI.H
@@ -125,9 +125,7 @@ inline Foam::Istream& Foam::operator>>(Istream& is, Keyed<T>& item)
     // Read end of Keyed item/key pair
     is.readEnd("Keyed<T>");
 
-    // Check state of Ostream
-    is.check("Istream& operator>>(Istream&, Keyed&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C
index 5b398198e58..961569aea77 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C
@@ -33,7 +33,7 @@ template<class LListBase, class T>
 template<class INew>
 void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
 {
-    is.fatalCheck("operator>>(Istream&, ILList<LListBase, T>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
@@ -97,7 +97,7 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
         }
 
         token lastToken(is);
-        is.fatalCheck("operator>>(Istream&, ILList<LListBase, T>&)");
+        is.fatalCheck(FUNCTION_NAME);
 
         while
         (
@@ -111,7 +111,7 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
             this->append(iNew(is).ptr());
 
             is >> lastToken;
-            is.fatalCheck("operator>>(Istream&, ILList<LListBase, T>&)");
+            is.fatalCheck(FUNCTION_NAME);
         }
     }
     else
@@ -122,7 +122,7 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
             << exit(FatalIOError);
     }
 
-    is.fatalCheck("operator>>(Istream&, ILList<LListBase, T>&)");
+    is.fatalCheck(FUNCTION_NAME);
 }
 
 
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C
index 02890145282..11ce9dd8528 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C
@@ -44,7 +44,7 @@ Foam::Istream& Foam::operator>>(Istream& is, LList<LListBase, T>& L)
     // Anull list
     L.clear();
 
-    is.fatalCheck(" operator>>(Istream&, LList<LListBase, T>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
@@ -98,7 +98,7 @@ Foam::Istream& Foam::operator>>(Istream& is, LList<LListBase, T>& L)
         }
 
         token lastToken(is);
-        is.fatalCheck(" operator>>(Istream&, LList<LListBase, T>&)");
+        is.fatalCheck(FUNCTION_NAME);
 
         while
         (
@@ -114,7 +114,7 @@ Foam::Istream& Foam::operator>>(Istream& is, LList<LListBase, T>& L)
             L.append(element);
 
             is >> lastToken;
-            is.fatalCheck(" operator>>(Istream&, LList<LListBase, T>&)");
+            is.fatalCheck(FUNCTION_NAME);
         }
     }
     else
@@ -126,7 +126,7 @@ Foam::Istream& Foam::operator>>(Istream& is, LList<LListBase, T>& L)
     }
 
     // Check state of IOstream
-    is.fatalCheck(" operator>>(Istream&, LList<LListBase,>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     return is;
 }
@@ -152,9 +152,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const LList<LListBase, T>& lst)
     // Write end of contents
     os << token::END_LIST;
 
-    // Check state of IOstream
-    os.check("Ostream& operator<<(Ostream&, const LList<LListBase, T>&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C
index e23b2ddae1a..1db2a59a50e 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C
@@ -34,10 +34,7 @@ template<class LListBase, class T>
 template<class INew>
 void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
 {
-    is.fatalCheck
-    (
-        "LPtrList<LListBase, T>::read(Istream&, const INew&)"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
@@ -102,7 +99,7 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
         }
 
         token lastToken(is);
-        is.fatalCheck("LPtrList<LListBase, T>::read(Istream&, const INew&)");
+        is.fatalCheck(FUNCTION_NAME);
 
         while
         (
@@ -116,10 +113,7 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
             this->append(iNew(is).ptr());
 
             is >> lastToken;
-            is.fatalCheck
-            (
-                "LPtrList<LListBase, T>::read(Istream&, const INew&)"
-            );
+            is.fatalCheck(FUNCTION_NAME);
         }
     }
     else
@@ -132,7 +126,7 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
             << exit(FatalIOError);
     }
 
-    is.fatalCheck("LPtrList<LListBase, T>::read(Istream&, const INew&)");
+    is.fatalCheck(FUNCTION_NAME);
 }
 
 
@@ -190,9 +184,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const LPtrList<LListBase, T>& lst)
     // Write end of contents
     os << token::END_LIST;
 
-    // Check state of IOstream
-    os.check("Ostream& operator<<(Ostream&, const LPtrList<LListBase, T>&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILListIO.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILListIO.C
index 137affd92bf..3f34eb83116 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILListIO.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/UILList/UILListIO.C
@@ -52,9 +52,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const UILList<LListBase, T>& lst)
     // Write end of contents
     os << token::END_LIST;
 
-    // Check state of IOstream
-    os.check("Ostream& operator<<(Ostream&, const UILList<LListBase, T>&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/containers/Lists/Distribution/Distribution.C b/src/OpenFOAM/containers/Lists/Distribution/Distribution.C
index e6d45249959..a6f960db6e7 100644
--- a/src/OpenFOAM/containers/Lists/Distribution/Distribution.C
+++ b/src/OpenFOAM/containers/Lists/Distribution/Distribution.C
@@ -591,9 +591,7 @@ Foam::Istream& Foam::operator>>
         >> d.binWidth_
         >> d.listStarts_;
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, Distribution<Type>&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -609,9 +607,7 @@ Foam::Ostream& Foam::operator<<
         << d.binWidth_ << token::SPACE
         << d.listStarts_;
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, " "const Distribution&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
index 895e373488a..6d1d65b20e2 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
@@ -139,9 +139,7 @@ Foam::Ostream& Foam::FixedList<T, Size>::writeList
         os.write(reinterpret_cast<const char*>(L.cdata()), Size*sizeof(T));
     }
 
-    // Check state of IOstream
-    os.check("const FixedList::writeList(Ostream&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -158,7 +156,7 @@ Foam::FixedList<T, Size>::FixedList(Istream& is)
 template<class T, unsigned Size>
 Foam::Istream& Foam::operator>>(Foam::Istream& is, FixedList<T, Size>& L)
 {
-    is.fatalCheck("operator>>(Istream&, FixedList<T, Size>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     if (is.format() == IOstream::ASCII || !contiguous<T>())
     {
diff --git a/src/OpenFOAM/containers/Lists/List/ListIO.C b/src/OpenFOAM/containers/Lists/List/ListIO.C
index 46183bb45b6..b21b6a86648 100644
--- a/src/OpenFOAM/containers/Lists/List/ListIO.C
+++ b/src/OpenFOAM/containers/Lists/List/ListIO.C
@@ -46,11 +46,11 @@ Foam::Istream& Foam::operator>>(Istream& is, List<T>& L)
     // Anull list
     L.setSize(0);
 
-    is.fatalCheck("operator>>(Istream&, List<T>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
-    is.fatalCheck("operator>>(Istream&, List<T>&) : reading first token");
+    is.fatalCheck(FUNCTION_NAME);
 
     if (firstToken.isCompound())
     {
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedList.C b/src/OpenFOAM/containers/Lists/PackedList/PackedList.C
index 53889b02ad4..b862792b127 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedList.C
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedList.C
@@ -266,7 +266,7 @@ Foam::Istream& Foam::PackedList<nBits>::read(Istream& is)
     PackedList<nBits>& lst = *this;
 
     lst.clear();
-    is.fatalCheck("PackedList<nBits>::read(Istream&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstTok(is);
     is.fatalCheck
@@ -349,7 +349,7 @@ Foam::Istream& Foam::PackedList<nBits>::read(Istream& is)
         if (firstTok.pToken() == token::BEGIN_LIST)
         {
             token nextTok(is);
-            is.fatalCheck("PackedList<nBits>::read(Istream&)");
+            is.fatalCheck(FUNCTION_NAME);
 
             while
             (
@@ -362,13 +362,13 @@ Foam::Istream& Foam::PackedList<nBits>::read(Istream& is)
                 lst.append(lst.readValue(is));
 
                 is  >> nextTok;
-                is.fatalCheck("PackedList<nBits>::read(Istream&)");
+                is.fatalCheck(FUNCTION_NAME);
             }
         }
         else if (firstTok.pToken() == token::BEGIN_BLOCK)
         {
             token nextTok(is);
-            is.fatalCheck("PackedList<nBits>::read(Istream&)");
+            is.fatalCheck(FUNCTION_NAME);
 
             while
             (
@@ -381,7 +381,7 @@ Foam::Istream& Foam::PackedList<nBits>::read(Istream& is)
                 lst.setPair(is);
 
                 is  >> nextTok;
-                is.fatalCheck("PackedList<nBits>::read(Istream&)");
+                is.fatalCheck(FUNCTION_NAME);
             }
         }
         else
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H b/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H
index 2397a45768e..7849d5a792d 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H
@@ -137,8 +137,7 @@ inline void Foam::PackedList<nBits>::setPair(Istream& is)
 
     set(ind, val);
 
-    // Check state of Istream
-    is.check("PackedList<nBits>::setPair(Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C b/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C
index a9ce86e43ce..6aff9ed81e0 100644
--- a/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C
+++ b/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C
@@ -35,7 +35,7 @@ template<class T>
 template<class INew>
 void Foam::PtrList<T>::read(Istream& is, const INew& inewt)
 {
-    is.fatalCheck("PtrList<T>::read(Istream&, const INew&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
diff --git a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C
index f6a82069c20..5e711c07241 100644
--- a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C
+++ b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C
@@ -120,9 +120,7 @@ Foam::Ostream& Foam::UIndirectList<T>::writeList
         }
     }
 
-    // Check state of IOstream
-    os.check("UIndirectList::writeList(Ostream&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/containers/Lists/UList/UListIO.C b/src/OpenFOAM/containers/Lists/UList/UListIO.C
index cd6d8cd6bf4..efb2ad3ffce 100644
--- a/src/OpenFOAM/containers/Lists/UList/UListIO.C
+++ b/src/OpenFOAM/containers/Lists/UList/UListIO.C
@@ -150,9 +150,7 @@ Foam::Ostream& Foam::UList<T>::writeList
         }
     }
 
-    // Check state of IOstream
-    os.check("UList<T>::writeList(Ostream&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -169,7 +167,7 @@ Foam::Ostream& Foam::operator<<(Foam::Ostream& os, const Foam::UList<T>& L)
 template<class T>
 Foam::Istream& Foam::operator>>(Istream& is, UList<T>& L)
 {
-    is.fatalCheck("operator>>(Istream&, UList<T>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
diff --git a/src/OpenFOAM/containers/Lists/UPtrList/UPtrListIO.C b/src/OpenFOAM/containers/Lists/UPtrList/UPtrListIO.C
index 59657676136..2852654dda0 100644
--- a/src/OpenFOAM/containers/Lists/UPtrList/UPtrListIO.C
+++ b/src/OpenFOAM/containers/Lists/UPtrList/UPtrListIO.C
@@ -44,9 +44,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const UPtrList<T>& L)
     // Write end delimiter
     os << nl << decrIndent << indent << token::END_LIST << nl;
 
-    // Check state of IOstream
-    os.check("Ostream& operator<<(Ostream&, const UPtrList&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UPstreamCommsStruct.C b/src/OpenFOAM/db/IOstreams/Pstreams/UPstreamCommsStruct.C
index 10d8dd993ef..3bce29637a8 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/UPstreamCommsStruct.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/UPstreamCommsStruct.C
@@ -117,11 +117,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const UPstream::commsStruct& comm)
         << comm.allBelow_ << token::SPACE
         << comm.allNotBelow_;
 
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const commsStruct&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/db/IOstreams/token/tokenIO.C b/src/OpenFOAM/db/IOstreams/token/tokenIO.C
index 2a2a8a70063..c3504740807 100644
--- a/src/OpenFOAM/db/IOstreams/token/tokenIO.C
+++ b/src/OpenFOAM/db/IOstreams/token/tokenIO.C
@@ -105,9 +105,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const token& t)
                 << endl;
     }
 
-    // Check state of stream
-    os.check("Ostream& operator<<(Ostream&, const token&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
index 0b2c5315ecc..5a4feda30eb 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
@@ -38,11 +38,7 @@ Foam::dictionaryEntry::dictionaryEntry
     entry(keyType(is)),
     dictionary(parentDict, is)
 {
-    is.fatalCheck
-    (
-        "dictionaryEntry::dictionaryEntry"
-        "(const dictionary& parentDict, Istream&)"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 }
 
 
@@ -56,11 +52,7 @@ Foam::dictionaryEntry::dictionaryEntry
     entry(key),
     dictionary(key, parentDict, is)
 {
-    is.fatalCheck
-    (
-        "dictionaryEntry::dictionaryEntry"
-        "(const keyType&, const dictionary& parentDict, Istream&)"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 }
 
 
diff --git a/src/OpenFOAM/db/dictionary/dictionaryListEntry/dictionaryListEntryIO.C b/src/OpenFOAM/db/dictionary/dictionaryListEntry/dictionaryListEntryIO.C
index 7d31932e9a1..5043a206c22 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryListEntry/dictionaryListEntryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryListEntry/dictionaryListEntryIO.C
@@ -115,8 +115,7 @@ void Foam::dictionaryListEntry::write(Ostream& os) const
     // Write end delimiter
     os << decrIndent << indent << token::END_LIST << nl;
 
-    // Check state of IOstream
-    os.check("Ostream& operator<<(Ostream&, const dictionaryListEntry&)");
+    os.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C b/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C
index f91ee70bf65..d72a67791f0 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C
+++ b/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C
@@ -84,11 +84,7 @@ bool Foam::functionEntry::execute
     Istream& is
 )
 {
-    is.fatalCheck
-    (
-        "functionEntry::execute"
-        "(const word& functionName, dictionary& parentDict, Istream&)"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 
     if (!executedictionaryIstreamMemberFunctionTablePtr_)
     {
@@ -127,11 +123,7 @@ bool Foam::functionEntry::execute
     Istream& is
 )
 {
-    is.fatalCheck
-    (
-        "functionEntry::execute"
-        "(const word&, const dictionary&, primitiveEntry&, Istream&)"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 
     if (!executeprimitiveEntryIstreamMemberFunctionTablePtr_)
     {
diff --git a/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C b/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C
index 1c447e88abc..39580f5a4fe 100644
--- a/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C
+++ b/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C
@@ -91,10 +91,7 @@ bool Foam::primitiveEntry::expandFunction
 
 bool Foam::primitiveEntry::read(const dictionary& dict, Istream& is)
 {
-    is.fatalCheck
-    (
-        "primitiveEntry::readData(const dictionary&, Istream&)"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 
     label blockCount = 0;
     token currToken;
@@ -145,10 +142,7 @@ bool Foam::primitiveEntry::read(const dictionary& dict, Istream& is)
         }
     }
 
-    is.fatalCheck
-    (
-        "primitiveEntry::readData(const dictionary&, Istream&)"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 
     if (currToken.good())
     {
diff --git a/src/OpenFOAM/dimensionSet/dimensionSetIO.C b/src/OpenFOAM/dimensionSet/dimensionSetIO.C
index 7f7648e10d1..768acc8efc8 100644
--- a/src/OpenFOAM/dimensionSet/dimensionSetIO.C
+++ b/src/OpenFOAM/dimensionSet/dimensionSetIO.C
@@ -477,9 +477,8 @@ Foam::Istream& Foam::dimensionSet::read
                 << exit(FatalIOError);
         }
     }
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, dimensionSet&)");
 
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -617,9 +616,7 @@ Foam::Istream& Foam::dimensionSet::read
         }
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, dimensionSet&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -691,9 +688,7 @@ Foam::Ostream& Foam::dimensionSet::write
 
     os  << token::END_SQR;
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const dimensionSet&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -722,9 +717,7 @@ Foam::Istream& Foam::operator>>(Istream& is, dimensionSet& dset)
             << exit(FatalIOError);
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, dimensionSet&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -734,9 +727,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const dimensionSet& dset)
     scalar multiplier;
     dset.write(os, multiplier);
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const dimensionSet&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C
index dca595c6a3e..d281845b922 100644
--- a/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C
+++ b/src/OpenFOAM/dimensionedTypes/dimensionedType/dimensionedType.C
@@ -339,12 +339,7 @@ Foam::dimensioned<Type>::read(Istream& is, const dictionary& readSet)
     is >> value_;
     value_ *= mult;
 
-    // Check state of Istream
-    is.check
-    (
-        "Istream& dimensioned<Type>::read(Istream& is, const dictionary&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -367,13 +362,7 @@ Foam::Istream& Foam::dimensioned<Type>::read
     is >> value_;
     value_ *= mult;
 
-    // Check state of Istream
-    is.check
-    (
-        "Istream& dimensioned<Type>::read"
-        "(Istream& is, const HashTable<dimensionedScalar>&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -392,12 +381,7 @@ Foam::Istream& Foam::dimensioned<Type>::read(Istream& is)
     is >> value_;
     value_ *= mult;
 
-    // Check state of Istream
-    is.check
-    (
-        "Istream& dimensioned<Type>::read(Istream& is)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -612,9 +596,7 @@ Foam::Istream& Foam::operator>>(Istream& is, dimensioned<Type>& dt)
     is >> dt.value_;
     dt.value_ *= multiplier;
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, dimensioned<Type>&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -634,9 +616,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const dimensioned<Type>& dt)
     // Write the value
     os << dt.value()/mult;
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const dimensioned<Type>&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
index 7bbd460d36b..9ecc2a0ff43 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C
@@ -117,10 +117,8 @@ bool Foam::DimensionedField<Type, GeoMesh>::writeData
 
     Field<Type>::writeEntry(fieldDictEntry, os);
 
-    // Check state of Ostream
     os.check(FUNCTION_NAME);
-
-    return (os.good());
+    return os.good();
 }
 
 
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
index 38a8b94efac..c37fcf3fda4 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
@@ -573,12 +573,7 @@ writeEntry(const word& keyword, Ostream& os) const
     this->writeEntries(os);
     os.endBlock() << flush;
 
-    // Check state of IOstream
-    os.check
-    (
-        "GeometricField<Type, PatchField, GeoMesh>::Boundary::"
-        "writeEntry(const word& keyword, Ostream& os) const"
-    );
+    os.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
index 74ba7e39e25..c985a3135f6 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
@@ -1292,14 +1292,8 @@ Foam::Ostream& Foam::operator<<
     os  << nl;
     gf.boundaryField().writeEntry("boundaryField", os);
 
-    // Check state of IOstream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, "
-        "const GeometricField<Type, PatchField, GeoMesh>&)"
-    );
-
-    return (os);
+    os.check(FUNCTION_NAME);
+    return os;
 }
 
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.C b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.C
index 53a26f00ba3..2c98caa0e5c 100644
--- a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.C
+++ b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.C
@@ -329,7 +329,7 @@ Foam::Ostream& Foam::operator<<
 {
     ptf.write(os);
 
-    os.check("Ostream& operator<<(Ostream&, const pointPatchField<Type>&)");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/OpenFOAM/graph/curve/curve.C b/src/OpenFOAM/graph/curve/curve.C
index aadff19fce1..87260649760 100644
--- a/src/OpenFOAM/graph/curve/curve.C
+++ b/src/OpenFOAM/graph/curve/curve.C
@@ -63,7 +63,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const curve& c)
         << c.style_ << nl
         << static_cast<const scalarField&>(c);
 
-    os.check("Ostream& operator>>(Ostream&, const curve&)");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/OpenFOAM/graph/graph.C b/src/OpenFOAM/graph/graph.C
index e21540d1851..105c69bcd56 100644
--- a/src/OpenFOAM/graph/graph.C
+++ b/src/OpenFOAM/graph/graph.C
@@ -298,7 +298,7 @@ void Foam::graph::write
 Foam::Ostream& Foam::operator<<(Ostream& os, const graph& g)
 {
     g.writeTable(os);
-    os.check("Ostream& operator<<(Ostream&, const graph&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.C b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.C
index 0e944bd3adb..b7cf4836c0d 100644
--- a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.C
+++ b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.C
@@ -363,7 +363,7 @@ Foam::Ostream& Foam::operator<<
             << endl << endl;
     }
 
-    os.check("Ostream& operator<<(Ostream&, const LduMatrix&");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/OpenFOAM/matrices/Matrix/MatrixIO.C b/src/OpenFOAM/matrices/Matrix/MatrixIO.C
index fc315f4ca46..46b0b29f125 100644
--- a/src/OpenFOAM/matrices/Matrix/MatrixIO.C
+++ b/src/OpenFOAM/matrices/Matrix/MatrixIO.C
@@ -48,7 +48,7 @@ Foam::Istream& Foam::operator>>(Istream& is, Matrix<Form, Type>& M)
     // Anull matrix
     M.clear();
 
-    is.fatalCheck("operator>>(Istream&, Matrix<Form, Type>&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     token firstToken(is);
 
@@ -250,9 +250,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const Matrix<Form, Type>& M)
         }
     }
 
-    // Check state of IOstream
-    os.check("Ostream& operator<<(Ostream&, const Matrix&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
index e9eb25143af..922f9b8c594 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
@@ -338,7 +338,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const lduMatrix& ldum)
         os  << ldum.upper();
     }
 
-    os.check("Ostream& operator<<(Ostream&, const lduMatrix&");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
@@ -398,7 +398,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const InfoProxy<lduMatrix>& ip)
     //    os  << endl;
     //}
 
-    os.check("Ostream& operator<<(Ostream&, const lduMatrix&");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/OpenFOAM/meshes/Identifiers/DynamicID/DynamicID.H b/src/OpenFOAM/meshes/Identifiers/DynamicID/DynamicID.H
index 03942bb9ad1..a0d82fb7794 100644
--- a/src/OpenFOAM/meshes/Identifiers/DynamicID/DynamicID.H
+++ b/src/OpenFOAM/meshes/Identifiers/DynamicID/DynamicID.H
@@ -142,9 +142,7 @@ Ostream& operator<<(Ostream& os, const DynamicID<ObjectType>& dynId)
         << dynId.name() << token::SPACE << dynId.index()
         << token::END_LIST;
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const DynamicID<ObjectType>&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/boundBox/boundBox.C b/src/OpenFOAM/meshes/boundBox/boundBox.C
index 08da5b207a6..a03a7e7597f 100644
--- a/src/OpenFOAM/meshes/boundBox/boundBox.C
+++ b/src/OpenFOAM/meshes/boundBox/boundBox.C
@@ -259,8 +259,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const boundBox& bb)
         );
     }
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const boundBox&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -280,8 +279,7 @@ Foam::Istream& Foam::operator>>(Istream& is, boundBox& bb)
         );
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, boundBox&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/meshes/lduMesh/lduMesh.C b/src/OpenFOAM/meshes/lduMesh/lduMesh.C
index 1717be26c68..911cf0a93bd 100644
--- a/src/OpenFOAM/meshes/lduMesh/lduMesh.C
+++ b/src/OpenFOAM/meshes/lduMesh/lduMesh.C
@@ -139,7 +139,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const InfoProxy<lduMesh>& ip)
         }
     }
 
-    os.check("Ostream& operator<<(Ostream&, const lduMesh&");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/OpenFOAM/meshes/meshShapes/face/faceI.H b/src/OpenFOAM/meshes/meshShapes/face/faceI.H
index ce807528c65..d312560843c 100644
--- a/src/OpenFOAM/meshes/meshShapes/face/faceI.H
+++ b/src/OpenFOAM/meshes/meshShapes/face/faceI.H
@@ -176,9 +176,7 @@ inline Foam::Istream& Foam::operator>>(Istream& is, face& f)
         is >> static_cast<labelList&>(f);
     }
 
-    // Check state of Ostream
-    is.check("Istream& operator>>(Istream&, face&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/meshes/meshShapes/labelledTri/labelledTriI.H b/src/OpenFOAM/meshes/meshShapes/labelledTri/labelledTriI.H
index 861be7665ae..3975314e009 100644
--- a/src/OpenFOAM/meshes/meshShapes/labelledTri/labelledTriI.H
+++ b/src/OpenFOAM/meshes/meshShapes/labelledTri/labelledTriI.H
@@ -137,9 +137,7 @@ inline Foam::Istream& Foam::operator>>(Istream& is, labelledTri& t)
         is.read(reinterpret_cast<char*>(&t), sizeof(labelledTri));
     }
 
-    // Check state of Ostream
-    is.check("Istream& operator>>(Istream&, labelledTri&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -161,9 +159,7 @@ inline Foam::Ostream& Foam::operator<<(Ostream& os, const labelledTri& t)
         );
     }
 
-    // Check state of Ostream
     os.check(FUNCTION_NAME);
-
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C
index 800dfd4d80a..d1fc64caea5 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C
@@ -545,7 +545,7 @@ void Foam::mapDistribute::operator=(const mapDistribute& rhs)
 
 Foam::Istream& Foam::operator>>(Istream& is, mapDistribute& map)
 {
-    is.fatalCheck("operator>>(Istream&, mapDistribute&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     is  >> static_cast<mapDistributeBase&>(map)
         >> map.transformElements_ >> map.transformStart_;
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C
index ac970965c80..fce5b416c3c 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.C
@@ -1248,7 +1248,7 @@ void Foam::mapDistributeBase::operator=(const mapDistributeBase& rhs)
 
 Foam::Istream& Foam::operator>>(Istream& is, mapDistributeBase& map)
 {
-    is.fatalCheck("operator>>(Istream&, mapDistributeBase&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     is  >> map.constructSize_ >> map.subMap_ >> map.constructMap_
         >> map.subHasFlip_ >> map.constructHasFlip_;
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.C
index 4adda18a496..2f44c1d9a6a 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.C
@@ -309,7 +309,7 @@ void Foam::mapDistributePolyMesh::operator=(const mapDistributePolyMesh& rhs)
 
 Foam::Istream& Foam::operator>>(Istream& is, mapDistributePolyMesh& map)
 {
-    is.fatalCheck("operator>>(Istream&, mapDistributePolyMesh&)");
+    is.fatalCheck(FUNCTION_NAME);
 
     is  >> map.nOldPoints_
         >> map.nOldFaces_
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/objectMap/objectMapI.H b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/objectMap/objectMapI.H
index 878452a62aa..1563a11fcc6 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/objectMap/objectMapI.H
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/objectMap/objectMapI.H
@@ -58,8 +58,7 @@ inline objectMap::objectMap(Istream& is)
     // Read master of objectMap
     is.readEnd("objectMap");
 
-    // Check state of Istream
-    is.check("objectMap::objectMap(Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -115,9 +114,7 @@ inline Ostream& operator<<(Ostream& os, const objectMap& a)
         << a.masterObjects_
         << token::END_LIST;
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const objectMap&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -128,9 +125,7 @@ inline Istream& operator>>(Istream& is, objectMap& a)
     is  >> a.index_ >> a.masterObjects_;
     is.readEnd("objectMap");
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, objectMap&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
index dfebcf0d308..47907706479 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
@@ -86,12 +86,7 @@ Foam::polyBoundaryMesh::polyBoundaryMesh
             );
         }
 
-        // Check state of IOstream
-        is.check
-        (
-            "polyBoundaryMesh::polyBoundaryMesh"
-            "(const IOobject&, const polyMesh&)"
-        );
+        is.check(FUNCTION_NAME);
 
         close();
     }
@@ -155,12 +150,7 @@ Foam::polyBoundaryMesh::polyBoundaryMesh
             );
         }
 
-        // Check state of IOstream
-        is.check
-        (
-            "polyBoundaryMesh::polyBoundaryMesh"
-            "(const IOobject&, const polyMesh&, const polyPatchList&)"
-        );
+        is.check(FUNCTION_NAME);
 
         close();
     }
@@ -1121,9 +1111,7 @@ bool Foam::polyBoundaryMesh::writeData(Ostream& os) const
 
     os  << decrIndent << token::END_LIST;
 
-    // Check state of IOstream
-    os.check("polyBoundaryMesh::writeData(Ostream& os) const");
-
+    os.check(FUNCTION_NAME);
     return os.good();
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.C b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.C
index 8e0d4f3581a..bfe4e2088ef 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.C
@@ -114,12 +114,7 @@ Foam::Istream& Foam::operator>>(Istream& is, tetIndices& tI)
         >> tI.facePtB()
         >> tI.tetPt();
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>(Foam::Istream&, Foam::tetIndices&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -134,13 +129,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const tetIndices& tI)
         << tI.tetPt() << token::SPACE
         << endl;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::tetIndices&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C
index 546702bb54e..7a26581fe7b 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C
@@ -421,7 +421,7 @@ void Foam::polyPatch::operator=(const polyPatch& p)
 Foam::Ostream& Foam::operator<<(Ostream& os, const polyPatch& p)
 {
     p.write(os);
-    os.check("Ostream& operator<<(Ostream& os, const polyPatch& p");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/zones/cellZone/cellZone.C b/src/OpenFOAM/meshes/polyMesh/zones/cellZone/cellZone.C
index a408ec87a77..c59ec220911 100644
--- a/src/OpenFOAM/meshes/polyMesh/zones/cellZone/cellZone.C
+++ b/src/OpenFOAM/meshes/polyMesh/zones/cellZone/cellZone.C
@@ -173,7 +173,7 @@ void Foam::cellZone::operator=(const Xfer<labelList>& addr)
 Foam::Ostream& Foam::operator<<(Ostream& os, const cellZone& zn)
 {
     zn.write(os);
-    os.check("Ostream& operator<<(Ostream&, const cellZone&");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
index 9a6238c7335..459e8002d7e 100644
--- a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
+++ b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
@@ -544,7 +544,7 @@ void Foam::faceZone::writeDict(Ostream& os) const
 Foam::Ostream& Foam::operator<<(Ostream& os, const faceZone& zn)
 {
     zn.write(os);
-    os.check("Ostream& operator<<(Ostream&, const faceZone&");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/zones/pointZone/pointZone.C b/src/OpenFOAM/meshes/polyMesh/zones/pointZone/pointZone.C
index ccb109025d1..31680ccf1a0 100644
--- a/src/OpenFOAM/meshes/polyMesh/zones/pointZone/pointZone.C
+++ b/src/OpenFOAM/meshes/polyMesh/zones/pointZone/pointZone.C
@@ -225,7 +225,7 @@ void Foam::pointZone::operator=(const Xfer<labelList>& addr)
 Foam::Ostream& Foam::operator<<(Ostream& os, const pointZone& zn)
 {
     zn.write(os);
-    os.check("Ostream& operator<<(Ostream&, const pointZone&");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/zones/zone/zone.C b/src/OpenFOAM/meshes/polyMesh/zones/zone/zone.C
index 8e26d4e8193..5ff0eebb7b4 100644
--- a/src/OpenFOAM/meshes/polyMesh/zones/zone/zone.C
+++ b/src/OpenFOAM/meshes/polyMesh/zones/zone/zone.C
@@ -242,7 +242,7 @@ void Foam::zone::write(Ostream& os) const
 Foam::Ostream& Foam::operator<<(Ostream& os, const zone& z)
 {
     z.write(os);
-    os.check("Ostream& operator<<(Ostream& f, const zone& z");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/meshes/primitiveShapes/line/lineI.H b/src/OpenFOAM/meshes/primitiveShapes/line/lineI.H
index c4757716cfc..034f8687803 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/line/lineI.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/line/lineI.H
@@ -280,7 +280,7 @@ inline Foam::Istream& Foam::operator>>
     is  >> l.a_ >> l.b_;
     is.readEnd("line");
 
-    is.check("Istream& operator>>(Istream&, line&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/meshes/primitiveShapes/objectHit/PointIndexHit.H b/src/OpenFOAM/meshes/primitiveShapes/objectHit/PointIndexHit.H
index 13118adb015..63a8068cb51 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/objectHit/PointIndexHit.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/objectHit/PointIndexHit.H
@@ -212,12 +212,11 @@ public:
                 );
             }
 
-            // Check state of Ostream
-            os.check("Ostream& operator<<(Ostream&, const PointIndexHit&)");
-
+            os.check(FUNCTION_NAME);
             return os;
         }
 
+
         friend Istream& operator>>(Istream& is, PointIndexHit& pHit)
         {
             if (is.format() == IOstream::ASCII)
@@ -233,9 +232,7 @@ public:
                 );
             }
 
-            // Check state of Istream
-            is.check("Istream& operator>>(Istream&, PointIndexHit&)");
-
+            is.check(FUNCTION_NAME);
             return is;
         }
 
diff --git a/src/OpenFOAM/meshes/primitiveShapes/pyramid/pyramidI.H b/src/OpenFOAM/meshes/primitiveShapes/pyramid/pyramidI.H
index 636990dcc68..a657a889f81 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/pyramid/pyramidI.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/pyramid/pyramidI.H
@@ -45,7 +45,7 @@ template<class Point, class PointRef, class polygonRef>
 inline Foam::pyramid<Point, PointRef, polygonRef>::pyramid(Istream& is)
 {
     is >> base_ >> apex_;
-    is.check("pyramid::pyramid(Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -105,7 +105,7 @@ inline Foam::Istream& Foam::operator>>
 )
 {
     is  >> p.base_ >> p.apex_;
-    is.check("Istream& operator>>(Istream&, pyramid&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H
index d95f42dc1eb..b98fc15bb80 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H
@@ -967,7 +967,7 @@ inline Foam::Istream& Foam::operator>>
     is  >> t.a_ >> t.b_ >> t.c_ >> t.d_;
     is.readEnd("tetrahedron");
 
-    is.check("Istream& operator>>(Istream&, tetrahedron&)");
+    is.check(FUNCTION_NAME);
 
     return is;
 }
diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
index 605e10589b5..7608c1ceb40 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
@@ -869,7 +869,7 @@ inline Foam::Istream& Foam::operator>>
     is  >> t.a_ >> t.b_ >> t.c_;
     is.readEnd("triangle");
 
-    is.check("Istream& operator>>(Istream&, triangle&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.C b/src/OpenFOAM/primitives/Scalar/Scalar.C
index a801378b218..941349cce66 100644
--- a/src/OpenFOAM/primitives/Scalar/Scalar.C
+++ b/src/OpenFOAM/primitives/Scalar/Scalar.C
@@ -111,9 +111,7 @@ Istream& operator>>(Istream& is, Scalar& s)
         return is;
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, Scalar&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -121,7 +119,7 @@ Istream& operator>>(Istream& is, Scalar& s)
 Ostream& operator<<(Ostream& os, const Scalar s)
 {
     os.write(s);
-    os.check("Ostream& operator<<(Ostream&, const Scalar&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/Tuple2/Tuple2.H b/src/OpenFOAM/primitives/Tuple2/Tuple2.H
index c19b645ddf3..bf911ebc56b 100644
--- a/src/OpenFOAM/primitives/Tuple2/Tuple2.H
+++ b/src/OpenFOAM/primitives/Tuple2/Tuple2.H
@@ -234,9 +234,7 @@ inline Istream& operator>>(Istream& is, Tuple2<Type1, Type2>& t2)
     is >> t2.f_ >> t2.s_;
     is.readEnd("Tuple2");
 
-    // Check state of Istream
-    is.check("operator>>(Istream&, Tuple2<Type1, Type2>&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/primitives/VectorSpace/VectorSpace.C b/src/OpenFOAM/primitives/VectorSpace/VectorSpace.C
index baba05c6ec8..27b68c50108 100644
--- a/src/OpenFOAM/primitives/VectorSpace/VectorSpace.C
+++ b/src/OpenFOAM/primitives/VectorSpace/VectorSpace.C
@@ -48,7 +48,7 @@ Foam::VectorSpace<Form, Cmpt, Ncmpts>::VectorSpace
     is.readEnd("VectorSpace<Form, Cmpt, Ncmpts>");
 
     // Check state of Istream
-    is.check("VectorSpace<Form, Cmpt, Ncmpts>::VectorSpace(Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -94,7 +94,7 @@ Foam::Istream& Foam::operator>>
     is.readEnd("VectorSpace<Form, Cmpt, Ncmpts>");
 
     // Check state of Istream
-    is.check("operator>>(Istream&, VectorSpace<Form, Cmpt, Ncmpts>&)");
+    is.check(FUNCTION_NAME);
 
     return is;
 }
@@ -116,9 +116,7 @@ Foam::Ostream& Foam::operator<<
 
     os << token::END_LIST;
 
-    // Check state of Ostream
-    os.check("operator<<(Ostream&, const VectorSpace<Form, Cmpt, Ncmpts>&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/chars/char/charIO.C b/src/OpenFOAM/primitives/chars/char/charIO.C
index ca69b91e059..583cd24b0cf 100644
--- a/src/OpenFOAM/primitives/chars/char/charIO.C
+++ b/src/OpenFOAM/primitives/chars/char/charIO.C
@@ -39,7 +39,7 @@ char Foam::readChar(Istream& is)
 Foam::Istream& Foam::operator>>(Istream& is, char& c)
 {
     is.read(c);
-    is.check("Istream& operator>>(Istream&, char&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -47,7 +47,7 @@ Foam::Istream& Foam::operator>>(Istream& is, char& c)
 Foam::Ostream& Foam::operator<<(Ostream& os, const char c)
 {
     os.write(c);
-    os.check("Ostream& operator<<(Ostream&, const char)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -55,7 +55,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const char c)
 Foam::Ostream& Foam::operator<<(Ostream& os, const char* s)
 {
     os.write(s);
-    os.check("Ostream& operator<<(Ostream&, const char*)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/chars/wchar/wcharIO.C b/src/OpenFOAM/primitives/chars/wchar/wcharIO.C
index a7bf57cddf0..fc710a52dd3 100644
--- a/src/OpenFOAM/primitives/chars/wchar/wcharIO.C
+++ b/src/OpenFOAM/primitives/chars/wchar/wcharIO.C
@@ -95,7 +95,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const wchar_t wc)
         os.write(char(0xBD));
     }
 
-    os.check("Ostream& operator<<(Ostream&, const wchar_t)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/complex/complex.C b/src/OpenFOAM/primitives/complex/complex.C
index 91f9a529eed..959659c76b5 100644
--- a/src/OpenFOAM/primitives/complex/complex.C
+++ b/src/OpenFOAM/primitives/complex/complex.C
@@ -64,9 +64,7 @@ Foam::Istream& Foam::operator>>(Istream& is, complex& c)
     // Read end of complex
     is.readEnd("complex");
 
-    // Check state of Istream
-    is.check("operator>>(Istream&, complex&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.C b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.C
index bccc14d7f5e..c551c912711 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.C
@@ -133,11 +133,7 @@ Foam::Ostream& Foam::operator<<
     const Function1<Type>& f1
 )
 {
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const Function1<Type>&)"
-    );
+    os.check(FUNCTION_NAME);
 
     os  << f1.name_;
     f1.writeData(os);
diff --git a/src/OpenFOAM/primitives/functions/Polynomial/PolynomialIO.C b/src/OpenFOAM/primitives/functions/Polynomial/PolynomialIO.C
index 0b24c9578f8..7af8e6e5b31 100644
--- a/src/OpenFOAM/primitives/functions/Polynomial/PolynomialIO.C
+++ b/src/OpenFOAM/primitives/functions/Polynomial/PolynomialIO.C
@@ -37,12 +37,7 @@ Foam::Ostream& Foam::operator<<
     os  << static_cast
             <VectorSpace<Polynomial<PolySize>, scalar, PolySize>>(poly);
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const Polynomial<PolySize>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C
index e10d5a7c97a..c93c1d12564 100644
--- a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C
+++ b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C
@@ -320,7 +320,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const polynomialFunction& poly)
 
 
     // Check state of Ostream
-    os.check("operator<<(Ostream&, const polynomialFunction&)");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.C b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.C
index b0b7df27ef4..488d6dc3662 100644
--- a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.C
+++ b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.C
@@ -107,7 +107,7 @@ Foam::Istream& Foam::operator>>(Istream& is, vectorTensorTransform& tr)
     is.readEnd("vectorTensorTransform");
 
     // Check state of Istream
-    is.check("operator>>(Istream&, vectorTensorTransform&)");
+    is.check(FUNCTION_NAME);
 
     return is;
 }
diff --git a/src/OpenFOAM/primitives/hashes/SHA1/SHA1Digest.C b/src/OpenFOAM/primitives/hashes/SHA1/SHA1Digest.C
index 478681b2049..6fe25953b1a 100644
--- a/src/OpenFOAM/primitives/hashes/SHA1/SHA1Digest.C
+++ b/src/OpenFOAM/primitives/hashes/SHA1/SHA1Digest.C
@@ -147,7 +147,7 @@ Foam::Ostream& Foam::SHA1Digest::write(Ostream& os, const bool prefixed) const
         os.write(hexChars[(v_[i] & 0xF)]);
     }
 
-    os.check("SHA1Digest::write(Ostream&, const bool)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -268,7 +268,7 @@ Foam::Istream& Foam::operator>>(Istream& is, SHA1Digest& dig)
         v[i] = (c1 << 4) + c2;
     }
 
-    is.check("Istream& operator>>(Istream&, SHA1Digest&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/primitives/ints/int32/int32IO.C b/src/OpenFOAM/primitives/ints/int32/int32IO.C
index c5023315f02..1759f87daa5 100644
--- a/src/OpenFOAM/primitives/ints/int32/int32IO.C
+++ b/src/OpenFOAM/primitives/ints/int32/int32IO.C
@@ -71,9 +71,7 @@ Foam::Istream& Foam::operator>>(Istream& is, int32_t& i)
         return is;
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, int32_t&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -102,7 +100,7 @@ bool Foam::read(const char* buf, int32_t& s)
 Foam::Ostream& Foam::operator<<(Ostream& os, const int32_t i)
 {
     os.write(label(i));
-    os.check("Ostream& operator<<(Ostream&, const int32_t)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/ints/int64/int64IO.C b/src/OpenFOAM/primitives/ints/int64/int64IO.C
index 0523bb94cbb..fe6ce5f5689 100644
--- a/src/OpenFOAM/primitives/ints/int64/int64IO.C
+++ b/src/OpenFOAM/primitives/ints/int64/int64IO.C
@@ -71,9 +71,7 @@ Foam::Istream& Foam::operator>>(Istream& is, int64_t& i)
         return is;
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, int64_t&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -100,7 +98,7 @@ bool Foam::read(const char* buf, int64_t& s)
 Foam::Ostream& Foam::operator<<(Ostream& os, const int64_t i)
 {
     os.write(label(i));
-    os.check("Ostream& operator<<(Ostream&, const int64_t)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/ints/uint32/uint32IO.C b/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
index f88f5b1ad86..9c46c5d649c 100644
--- a/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
+++ b/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
@@ -69,9 +69,7 @@ Foam::Istream& Foam::operator>>(Istream& is, uint32_t& i)
         return is;
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, uint32_t&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -97,7 +95,7 @@ bool Foam::read(const char* buf, uint32_t& s)
 Foam::Ostream& Foam::operator<<(Ostream& os, const uint32_t i)
 {
     os.write(label(i));
-    os.check("Ostream& operator<<(Ostream&, const uint32_t)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/ints/uint64/uint64IO.C b/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
index 3e110d933a6..02e8d2284de 100644
--- a/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
+++ b/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
@@ -69,9 +69,7 @@ Foam::Istream& Foam::operator>>(Istream& is, uint64_t& i)
         return is;
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, uint64_t&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -97,7 +95,7 @@ bool Foam::read(const char* buf, uint64_t& s)
 Foam::Ostream& Foam::operator<<(Ostream& os, const uint64_t i)
 {
     os.write(label(i));
-    os.check("Ostream& operator<<(Ostream&, const uint64_t)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/quaternion/quaternion.C b/src/OpenFOAM/primitives/quaternion/quaternion.C
index fa509113e0a..18cfda5a60e 100644
--- a/src/OpenFOAM/primitives/quaternion/quaternion.C
+++ b/src/OpenFOAM/primitives/quaternion/quaternion.C
@@ -159,9 +159,7 @@ Foam::Istream& Foam::operator>>(Istream& is, quaternion& q)
     // Read end of quaternion
     is.readEnd("quaternion");
 
-    // Check state of Istream
-    is.check("operator>>(Istream&, quaternion&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C b/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C
index 38349e92b2f..b0715f8b403 100644
--- a/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C
+++ b/src/OpenFOAM/primitives/ranges/labelRange/labelRange.C
@@ -185,7 +185,7 @@ Foam::Istream& Foam::operator>>(Istream& is, labelRange& range)
     is  >> range.start_ >> range.size_;
     is.readEnd("labelRange");
 
-    is.check("operator>>(Istream&, labelRange&)");
+    is.check(FUNCTION_NAME);
 
     // Disallow invalid sizes
     if (range.size_ < 0)
@@ -204,7 +204,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const labelRange& range)
         << range.start() << token::SPACE << range.size()
         << token::END_LIST;
 
-    os.check("operator<<(Ostream&, const labelRange&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/septernion/septernion.C b/src/OpenFOAM/primitives/septernion/septernion.C
index 33cdf44c7c5..6e786ce7a09 100644
--- a/src/OpenFOAM/primitives/septernion/septernion.C
+++ b/src/OpenFOAM/primitives/septernion/septernion.C
@@ -111,9 +111,7 @@ Foam::Istream& Foam::operator>>(Istream& is, septernion& s)
     // Read end of septernion
     is.readEnd("septernion");
 
-    // Check state of Istream
-    is.check("operator>>(Istream&, septernion&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C b/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C
index 3e193ecf99f..42ab4f6936a 100644
--- a/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C
+++ b/src/OpenFOAM/primitives/strings/fileName/fileNameIO.C
@@ -62,9 +62,7 @@ Foam::Istream& Foam::operator>>(Istream& is, fileName& fn)
 
     fn.stripInvalid();
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, fileName&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -72,7 +70,7 @@ Foam::Istream& Foam::operator>>(Istream& is, fileName& fn)
 Foam::Ostream& Foam::operator<<(Ostream& os, const fileName& fn)
 {
     os.write(fn);
-    os.check("Ostream& operator<<(Ostream&, const fileName&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/strings/keyType/keyType.C b/src/OpenFOAM/primitives/strings/keyType/keyType.C
index 05f54c25545..e9b120e8e97 100644
--- a/src/OpenFOAM/primitives/strings/keyType/keyType.C
+++ b/src/OpenFOAM/primitives/strings/keyType/keyType.C
@@ -104,9 +104,7 @@ Foam::Istream& Foam::operator>>(Istream& is, keyType& kw)
         return is;
     }
 
-    // Check state of IOstream
-    is.check("Istream& operator>>(Istream&, keyType&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -114,7 +112,7 @@ Foam::Istream& Foam::operator>>(Istream& is, keyType& kw)
 Foam::Ostream& Foam::operator<<(Ostream& os, const keyType& kw)
 {
     os.write(kw);
-    os.check("Ostream& operator<<(Ostream&, const keyType&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/strings/string/stringIO.C b/src/OpenFOAM/primitives/strings/string/stringIO.C
index 954290fff7b..53c728b548c 100644
--- a/src/OpenFOAM/primitives/strings/string/stringIO.C
+++ b/src/OpenFOAM/primitives/strings/string/stringIO.C
@@ -60,9 +60,7 @@ Foam::Istream& Foam::operator>>(Istream& is, string& s)
         return is;
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, string&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -70,7 +68,7 @@ Foam::Istream& Foam::operator>>(Istream& is, string& s)
 Foam::Ostream& Foam::operator<<(Ostream& os, const string& s)
 {
     os.write(s);
-    os.check("Ostream& operator<<(Ostream&, const string&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -78,7 +76,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const string& s)
 Foam::Ostream& Foam::operator<<(Ostream& os, const std::string& s)
 {
     os.write(string(s));
-    os.check("Ostream& operator<<(Ostream&, const std::string&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/strings/word/wordIO.C b/src/OpenFOAM/primitives/strings/word/wordIO.C
index 19221fa2b7f..476dde86fa4 100644
--- a/src/OpenFOAM/primitives/strings/word/wordIO.C
+++ b/src/OpenFOAM/primitives/strings/word/wordIO.C
@@ -79,9 +79,7 @@ Foam::Istream& Foam::operator>>(Istream& is, word& w)
         return is;
     }
 
-    // Check state of IOstream
-    is.check("Istream& operator>>(Istream&, word&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -89,7 +87,7 @@ Foam::Istream& Foam::operator>>(Istream& is, word& w)
 Foam::Ostream& Foam::operator<<(Ostream& os, const word& w)
 {
     os.write(w);
-    os.check("Ostream& operator<<(Ostream&, const word&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/OpenFOAM/primitives/strings/wordRe/wordRe.C b/src/OpenFOAM/primitives/strings/wordRe/wordRe.C
index d7725323ca7..cbee07ee734 100644
--- a/src/OpenFOAM/primitives/strings/wordRe/wordRe.C
+++ b/src/OpenFOAM/primitives/strings/wordRe/wordRe.C
@@ -85,9 +85,7 @@ Foam::Istream& Foam::operator>>(Istream& is, wordRe& w)
         return is;
     }
 
-    // Check state of IOstream
-    is.check("Istream& operator>>(Istream&, wordRe&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -95,7 +93,7 @@ Foam::Istream& Foam::operator>>(Istream& is, wordRe& w)
 Foam::Ostream& Foam::operator<<(Ostream& os, const wordRe& w)
 {
     os.writeQuoted(w, w.isPattern());
-    os.check("Ostream& operator<<(Ostream&, const wordRe&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/dynamicMesh/boundaryPatch/boundaryPatch.C b/src/dynamicMesh/boundaryPatch/boundaryPatch.C
index b405ad517df..fe2f9796e4c 100644
--- a/src/dynamicMesh/boundaryPatch/boundaryPatch.C
+++ b/src/dynamicMesh/boundaryPatch/boundaryPatch.C
@@ -100,7 +100,7 @@ void Foam::boundaryPatch::write(Ostream& os) const
 Foam::Ostream& Foam::operator<<(Ostream& os, const boundaryPatch& p)
 {
     p.write(os);
-    os.check("Ostream& operator<<(Ostream& f, const boundaryPatch&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.C b/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.C
index 912132391a6..3ef151d7396 100644
--- a/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.C
+++ b/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.C
@@ -218,10 +218,8 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const directionInfo&)");
+    os.check(FUNCTION_NAME);
     return os;
-
 }
 
 
@@ -240,8 +238,7 @@ Foam::Istream& Foam::operator>>(Foam::Istream& is, Foam::directionInfo& wDist)
         );
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, directionInfo&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.C b/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.C
index 819ebc99e00..9776a08cf71 100644
--- a/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.C
+++ b/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.C
@@ -46,11 +46,11 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const wallNormalInfo&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
+
 Foam::Istream& Foam::operator>>(Foam::Istream& is, Foam::wallNormalInfo& wDist)
 {
     if (is.format() == IOstream::ASCII)
@@ -66,9 +66,9 @@ Foam::Istream& Foam::operator>>(Foam::Istream& is, Foam::wallNormalInfo& wDist)
         );
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, wallNormalInfo&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
+
 // ************************************************************************* //
diff --git a/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.C b/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.C
index ecad8818943..13eb5c6ee94 100644
--- a/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.C
+++ b/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.C
@@ -77,7 +77,7 @@ const Foam::polyTopoChanger& Foam::polyMeshModifier::topoChanger() const
 Foam::Ostream& Foam::operator<<(Ostream& os, const polyMeshModifier& pmm)
 {
     pmm.write(os);
-    os.check("Ostream& operator<<(Ostream& f, const polyMeshModifier& pmm)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.C
index 66c70841ed7..e6411fb94eb 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.C
@@ -46,8 +46,7 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const refinementData&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -67,8 +66,7 @@ Foam::Istream& Foam::operator>>(Foam::Istream& is, Foam::refinementData& wDist)
         );
     }
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, refinementData&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C b/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
index b2e5955f690..8023a5d98b2 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
@@ -74,7 +74,7 @@ void Foam::polyTopoChanger::readModifiers()
         }
 
         // Check state of IOstream
-        is.check("polyTopoChanger::readModifiers()");
+        is.check(FUNCTION_NAME);
 
         close();
     }
diff --git a/src/engine/ignition/ignitionSiteIO.C b/src/engine/ignition/ignitionSiteIO.C
index 5e8c3d53d40..588a03898b7 100644
--- a/src/engine/ignition/ignitionSiteIO.C
+++ b/src/engine/ignition/ignitionSiteIO.C
@@ -58,7 +58,7 @@ Foam::ignitionSite::ignitionSite
     timeIndex_(db_.timeIndex())
 {
     // Check state of Istream
-    is.check("ignitionSite::ignitionSite(Istream&)");
+    is.check(FUNCTION_NAME);
 
     findIgnitionCells(mesh_);
 }
@@ -94,7 +94,7 @@ Foam::ignitionSite::ignitionSite
     timeIndex_(db_.timeIndex())
 {
     // Check state of Istream
-    is.check("ignitionSite::ignitionSite(Istream&)");
+    is.check(FUNCTION_NAME);
 
     findIgnitionCells(mesh_);
 }
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyIO.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyIO.C
index cb5a49bbaee..a9009dc03fc 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyIO.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyIO.C
@@ -39,7 +39,7 @@ Foam::eddy::eddy(Istream& is)
     c1_(readScalar(is)),
     dir1_(readLabel(is))
 {
-    is.check("Foam::eddy::eddy(Foam::Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -62,11 +62,7 @@ void Foam::eddy::operator=(const eddy& e)
 
 Foam::Istream& Foam::operator>>(Istream& is, eddy& e)
 {
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::eddy&)"
-    );
+    is.check(FUNCTION_NAME);
 
     is  >> e.patchFaceI_
         >> e.position0_
@@ -77,23 +73,14 @@ Foam::Istream& Foam::operator>>(Istream& is, eddy& e)
         >> e.c1_
         >> e.dir1_;
 
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::eddy&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
 
 Foam::Ostream& Foam::operator<<(Ostream& os, const eddy& e)
 {
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Foam::Ostream&, const Foam::eddy&)"
-    );
+    os.check(FUNCTION_NAME);
 
     os  << e.patchFaceI_ << token::SPACE
         << e.position0_ << token::SPACE
@@ -104,12 +91,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const eddy& e)
         << e.c1_ << token::SPACE
         << e.dir1_;
 
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Foam::Ostream&, const Foam::eddy&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
index f44f574a7c1..52bd26e8095 100644
--- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
@@ -594,7 +594,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const fvPatchField<Type>& ptf)
 {
     ptf.write(os);
 
-    os.check("Ostream& operator<<(Ostream&, const fvPatchField<Type>&");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C
index f1ebd2e6908..8a8c96244c3 100644
--- a/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C
+++ b/src/finiteVolume/fields/fvsPatchFields/fvsPatchField/fvsPatchField.C
@@ -376,7 +376,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const fvsPatchField<Type>& ptf)
 {
     ptf.write(os);
 
-    os.check("Ostream& operator<<(Ostream&, const fvsPatchField<Type>&");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
index 262444193cd..db21f33d451 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
@@ -2387,7 +2387,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const fvMatrix<Type>& fvm)
         << fvm.internalCoeffs_ << nl
         << fvm.boundaryCoeffs_ << endl;
 
-    os.check("Ostream& operator<<(Ostream&, fvMatrix<Type>&");
+    os.check(FUNCTION_NAME);
 
     return os;
 }
diff --git a/src/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C b/src/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
index 7aaf5b49468..65e4e21abcb 100644
--- a/src/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
+++ b/src/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
@@ -40,11 +40,7 @@ Foam::functionObjects::fieldAverageItem::fieldAverageItem(Istream& is)
     base_(ITER),
     window_(-1.0)
 {
-    is.check
-    (
-        "Foam::functionObjects::fieldAverageItem::fieldAverageItem"
-        "(Foam::Istream&)"
-    );
+    is.check(FUNCTION_NAME);
 
     const dictionaryEntry entry(dictionary::null, is);
 
@@ -73,11 +69,7 @@ Foam::Istream& Foam::functionObjects::operator>>
     fieldAverageItem& faItem
 )
 {
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::functionObjects::fieldAverageItem&)"
-    );
+    is.check(FUNCTION_NAME);
 
     const dictionaryEntry entry(dictionary::null, is);
 
@@ -111,11 +103,7 @@ Foam::Ostream& Foam::functionObjects::operator<<
     const fieldAverageItem& faItem
 )
 {
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Foam::Ostream&, const Foam::functionObjects::fieldAverageItem&)"
-    );
+    os.check(FUNCTION_NAME);
 
     os  << faItem.fieldName_ << nl << token::BEGIN_BLOCK << nl;
     os.writeKeyword("mean") << faItem.mean_ << token::END_STATEMENT << nl;
@@ -138,12 +126,7 @@ Foam::Ostream& Foam::functionObjects::operator<<
 
     os  << token::END_BLOCK << nl;
 
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Foam::Ostream&, const Foam::functionObjects::fieldAverageItem&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/functionObjects/field/nearWallFields/findCellParticle.C b/src/functionObjects/field/nearWallFields/findCellParticle.C
index 5f57285a267..6c69be4f180 100644
--- a/src/functionObjects/field/nearWallFields/findCellParticle.C
+++ b/src/functionObjects/field/nearWallFields/findCellParticle.C
@@ -70,12 +70,7 @@ Foam::findCellParticle::findCellParticle
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "findCellParticle::findCellParticle"
-        "(const Cloud<findCellParticle>&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -227,9 +222,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const findCellParticle& p)
         );
     }
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const findCellParticle&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/functionObjects/field/streamLine/streamLineParticle.C b/src/functionObjects/field/streamLine/streamLineParticle.C
index e88f903f8a2..04189af71ed 100644
--- a/src/functionObjects/field/streamLine/streamLineParticle.C
+++ b/src/functionObjects/field/streamLine/streamLineParticle.C
@@ -148,12 +148,7 @@ Foam::streamLineParticle::streamLineParticle
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "streamLineParticle::streamLineParticle"
-        "(const Cloud<streamLineParticle>&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -497,9 +492,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const streamLineParticle& p)
         << token::SPACE << p.sampledScalars_
         << token::SPACE << p.sampledVectors_;
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const streamLineParticle&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C
index f27d8603222..8166029dbd4 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C
@@ -331,12 +331,7 @@ Foam::wallBoundedParticle::wallBoundedParticle
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "wallBoundedParticle::wallBoundedParticle"
-        "(const Cloud<wallBoundedParticle>&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C
index 82fccd41152..d626c63fcb9 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C
@@ -185,12 +185,7 @@ Foam::wallBoundedStreamLineParticle::wallBoundedStreamLineParticle
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "wallBoundedStreamLineParticle::wallBoundedStreamLineParticle"
-        "(const Cloud<wallBoundedStreamLineParticle>&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -422,12 +417,7 @@ Foam::Ostream& Foam::operator<<
         << token::SPACE << p.sampledScalars_
         << token::SPACE << p.sampledVectors_;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const wallBoundedStreamLineParticle&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
index 292f445f932..155280d17ce 100644
--- a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
+++ b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
@@ -66,12 +66,7 @@ Foam::DSMCParcel<ParcelType>::DSMCParcel
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "DSMCParcel<ParcelType>::DSMCParcel"
-        "(const Cloud<ParcelType>&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -164,12 +159,7 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const DSMCParcel<ParcelType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/basic/Cloud/CloudIO.C b/src/lagrangian/basic/Cloud/CloudIO.C
index 33e26087860..83369d1a4f0 100644
--- a/src/lagrangian/basic/Cloud/CloudIO.C
+++ b/src/lagrangian/basic/Cloud/CloudIO.C
@@ -262,9 +262,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const Cloud<ParticleType>& pc)
 {
     pc.writeData(os);
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const Cloud<ParticleType>&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/basic/IOPosition/IOPosition.C b/src/lagrangian/basic/IOPosition/IOPosition.C
index b89b2c0b4c3..5c977b54d29 100644
--- a/src/lagrangian/basic/IOPosition/IOPosition.C
+++ b/src/lagrangian/basic/IOPosition/IOPosition.C
@@ -139,11 +139,7 @@ void Foam::IOPosition<CloudType>::readData(CloudType& c, bool checkClass)
             << firstToken.info() << exit(FatalIOError);
     }
 
-    // Check state of IOstream
-    is.check
-    (
-        "void IOPosition<CloudType>::readData(CloudType&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/lagrangian/basic/InteractionLists/referredWallFace/referredWallFace.C b/src/lagrangian/basic/InteractionLists/referredWallFace/referredWallFace.C
index e8ce9f9da07..25550be9909 100644
--- a/src/lagrangian/basic/InteractionLists/referredWallFace/referredWallFace.C
+++ b/src/lagrangian/basic/InteractionLists/referredWallFace/referredWallFace.C
@@ -101,13 +101,7 @@ Foam::Istream& Foam::operator>>(Istream& is, referredWallFace& rWF)
 {
     is  >> static_cast<face&>(rWF) >> rWF.pts_ >> rWF.patchi_;
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& "
-        "Foam::operator>>(Foam::Istream&, Foam::referredWallFace&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -118,13 +112,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const referredWallFace& rWF)
         << rWF.pts_ << token::SPACE
         << rWF.patchi_;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::referredWallFace&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/basic/injectedParticle/injectedParticleIO.C b/src/lagrangian/basic/injectedParticle/injectedParticleIO.C
index 3ae1edd1685..39313222c98 100644
--- a/src/lagrangian/basic/injectedParticle/injectedParticleIO.C
+++ b/src/lagrangian/basic/injectedParticle/injectedParticleIO.C
@@ -72,12 +72,7 @@ Foam::injectedParticle::injectedParticle
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "injectedParticle::injectedParticle"
-        "(const polyMesh&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -207,12 +202,7 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const injectedParticle&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/basic/particle/particleIO.C b/src/lagrangian/basic/particle/particleIO.C
index 3c9513f8989..b9e40bc3d92 100644
--- a/src/lagrangian/basic/particle/particleIO.C
+++ b/src/lagrangian/basic/particle/particleIO.C
@@ -83,7 +83,7 @@ Foam::particle::particle(const polyMesh& mesh, Istream& is, bool readFields)
     }
 
     // Check state of Istream
-    is.check("particle::particle(Istream&, bool)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -99,7 +99,7 @@ void Foam::particle::writePosition(Ostream& os) const
     }
 
     // Check state of Ostream
-    os.check("particle::writePosition(Ostream& os, bool) const");
+    os.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
index a5d5074f527..f63e02daf06 100644
--- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
@@ -73,12 +73,7 @@ Foam::CollidingParcel<ParcelType>::CollidingParcel
         is >> collisionRecords_;
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "CollidingParcel<ParcelType>::Collisions"
-        "(const polyMesh&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -335,12 +330,7 @@ Foam::Ostream& Foam::operator<<
         os  << p.collisionRecords();
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const CollidingParcel<ParcelType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/CollisionRecordList.C b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/CollisionRecordList.C
index d8622ad69a4..06f0f24da9c 100644
--- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/CollisionRecordList.C
+++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/CollisionRecordList.C
@@ -42,12 +42,7 @@ Foam::CollisionRecordList<PairType, WallType>::CollisionRecordList(Istream& is)
     pairRecords_(is),
     wallRecords_(is)
 {
-    // Check state of Istream
-    is.check
-    (
-        "Foam::CollisionRecordList<PairType, WallType>::"
-        "CollisionRecordList(Foam::Istream&)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -448,13 +443,7 @@ Foam::Istream& Foam::operator>>
 {
     is  >> cRL.pairRecords_ >> cRL.wallRecords_;
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::CollisionRecordList<PairType, WallType>&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -468,13 +457,7 @@ Foam::Ostream& Foam::operator<<
 {
     os  << cRL.pairRecords_ << cRL.wallRecords_;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::CollisionRecordList<PairType, WallType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/PairCollisionRecord/PairCollisionRecordIO.C b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/PairCollisionRecord/PairCollisionRecordIO.C
index 880febc6135..56e5195d7ca 100644
--- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/PairCollisionRecord/PairCollisionRecordIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/PairCollisionRecord/PairCollisionRecordIO.C
@@ -35,11 +35,7 @@ Foam::PairCollisionRecord<Type>::PairCollisionRecord(Istream& is)
     origIdOfOther_(readLabel(is)),
     data_(is)
 {
-    // Check state of Istream
-    is.check
-    (
-        "Foam::PairCollisionRecord<Type>::PairCollisionRecord(Foam::Istream&)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -50,13 +46,7 @@ Foam::Istream& Foam::operator>>(Istream& is, PairCollisionRecord<Type>& pCR)
 {
     is  >> pCR.origProcOfOther_ >> pCR.origIdOfOther_ >> pCR.data_;
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream&"
-        "Foam::operator>>(Foam::Istream&, Foam::PairCollisionRecord<Type>&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -72,13 +62,7 @@ Foam::Ostream& Foam::operator<<
         << token::SPACE << pCR.origIdOfOther_
         << token::SPACE << pCR.data_;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::PairCollisionRecord<Type>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/WallCollisionRecord/WallCollisionRecordIO.C b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/WallCollisionRecord/WallCollisionRecordIO.C
index 48159c01b47..767aee8cce3 100644
--- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/WallCollisionRecord/WallCollisionRecordIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollisionRecordList/WallCollisionRecord/WallCollisionRecordIO.C
@@ -35,11 +35,7 @@ Foam::WallCollisionRecord<Type>::WallCollisionRecord(Istream& is)
     pRel_(is),
     data_(is)
 {
-    // Check state of Istream
-    is.check
-    (
-        "Foam::WallCollisionRecord<Type>::WallCollisionRecord(Foam::Istream&)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -50,13 +46,7 @@ Foam::Istream& Foam::operator>>(Istream& is, WallCollisionRecord<Type>& wCR)
 {
     is  >> wCR.accessed_ >> wCR.pRel_ >> wCR.data_;
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream&"
-        "Foam::operator>>(Foam::Istream&, Foam::WallCollisionRecord<Type>&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -72,13 +62,7 @@ Foam::Ostream& Foam::operator<<
         << token::SPACE << wCR.pRel_
         << token::SPACE << wCR.data_;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::WallCollisionRecord<Type>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
index 2e44545ca52..7e3b838d7c6 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
@@ -92,12 +92,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "KinematicParcel<ParcelType>::KinematicParcel"
-        "(const polyMesh&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -302,12 +297,7 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const KinematicParcel<ParcelType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
index 452b5b0eab6..ec582209c6e 100644
--- a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
@@ -69,11 +69,7 @@ Foam::MPPICParcel<ParcelType>::MPPICParcel
         }
     }
 
-    is.check
-    (
-        "MPPICParcel<ParcelType>::Collisions"
-        "(const polyMesh&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -182,11 +178,7 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const MPPICParcel<ParcelType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
index cf15a6d4978..399f67879d8 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
@@ -78,16 +78,7 @@ Foam::ReactingMultiphaseParcel<ParcelType>::ReactingMultiphaseParcel
         YSolid_ /= YMix[SLD] + ROOTVSMALL;
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "ReactingMultiphaseParcel<ParcelType>::ReactingMultiphaseParcel"
-        "("
-            "const polyMesh&, "
-            "Istream&, "
-            "bool"
-        ")"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -454,16 +445,7 @@ Foam::Ostream& Foam::operator<<
         os  << YGasLoc << YLiquidLoc << YSolidLoc;
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<"
-        "("
-            "Ostream&, "
-            "const ReactingMultiphaseParcel<ParcelType>&"
-        ")"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
index 1b6e90cbe32..6574af96cf1 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
@@ -75,16 +75,7 @@ Foam::ReactingParcel<ParcelType>::ReactingParcel
         Y_.transfer(Ymix);
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "ReactingParcel<ParcelType>::ReactingParcel"
-        "("
-            "const polyMesh&, "
-            "Istream&, "
-            "bool"
-        ")"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -328,12 +319,7 @@ Foam::Ostream& Foam::operator<<
         os  << p.Y();
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const ReactingParcel<ParcelType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
index 60f2e82d696..f23059e22fb 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
@@ -73,11 +73,7 @@ Foam::ThermoParcel<ParcelType>::ThermoParcel
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "ThermoParcel::ThermoParcel(const polyMesh&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -189,12 +185,7 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const ThermoParcel<ParcelType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/phaseProperties/phaseProperties/phasePropertiesIO.C b/src/lagrangian/intermediate/phaseProperties/phaseProperties/phasePropertiesIO.C
index eded687e414..e981fc903b9 100644
--- a/src/lagrangian/intermediate/phaseProperties/phaseProperties/phasePropertiesIO.C
+++ b/src/lagrangian/intermediate/phaseProperties/phaseProperties/phasePropertiesIO.C
@@ -36,7 +36,7 @@ Foam::phaseProperties::phaseProperties(Istream& is)
     Y_(0),
     carrierIds_(0)
 {
-    is.check("Foam::phaseProperties::phaseProperties(Istream& is)");
+    is.check(FUNCTION_NAME);
 
     dictionaryEntry phaseInfo(dictionary::null, is);
 
@@ -67,10 +67,7 @@ Foam::phaseProperties::phaseProperties(Istream& is)
 
 Foam::Istream& Foam::operator>>(Istream& is, phaseProperties& pp)
 {
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>(Istream&, phaseProperties&)"
-    );
+    is.check(FUNCTION_NAME);
 
     dictionaryEntry phaseInfo(dictionary::null, is);
 
@@ -102,10 +99,7 @@ Foam::Istream& Foam::operator>>(Istream& is, phaseProperties& pp)
 
 Foam::Ostream& Foam::operator<<(Ostream& os, const phaseProperties& pp)
 {
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Ostream&, const phaseProperties&)"
-    );
+    os.check(FUNCTION_NAME);
 
     os  << pp.phaseTypeNames[pp.phase_] << nl << token::BEGIN_BLOCK << nl
         << incrIndent;
@@ -118,11 +112,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const phaseProperties& pp)
 
     os  << decrIndent << token::END_BLOCK << nl;
 
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Ostream&, const phaseProperties&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallSiteData/WallSiteData.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallSiteData/WallSiteData.C
index f14910bb901..e70bfc03cb2 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallSiteData/WallSiteData.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallSiteData/WallSiteData.C
@@ -87,13 +87,7 @@ Foam::Istream& Foam::operator>>
 {
     is  >> wIS.patchi_ >> wIS.wallData_;
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::WallSiteData<Type>&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -107,13 +101,7 @@ Foam::Ostream& Foam::operator<<
 {
     os  << wIS.patchi_ << token::SPACE << wIS.wallData_;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Ostream&, const WallSiteData<Type>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionDataIO.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionDataIO.C
index 95e598629cc..6c93eee808a 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionDataIO.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionDataIO.C
@@ -44,7 +44,7 @@ Foam::kinematicParcelInjectionData::kinematicParcelInjectionData(Istream& is)
     is.check("reading mDot");
     is >> mDot_;
 
-    is.check("kinematicParcelInjectionData(Istream& is)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -79,7 +79,7 @@ Foam::Istream& Foam::operator>>(Istream& is, kinematicParcelInjectionData& data)
     is.check("reading mDot");
     is >> data.mDot_;
 
-    is.check("operator(Istream&, kinematicParcelInjectionData&)");
+    is.check(FUNCTION_NAME);
 
     return is;
 }
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionData.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionData.C
index 145d7590a5a..2f6d4f3f21d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionData.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/patchInteractionData.C
@@ -72,7 +72,7 @@ Foam::Istream& Foam::operator>>
     patchInteractionData& pid
 )
 {
-    is.check("Istream& operator>>(Istream&, patchInteractionData&)");
+    is.check(FUNCTION_NAME);
 
     const dictionaryEntry entry(dictionary::null, is);
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/reactingParcelInjectionDataIO.C b/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/reactingParcelInjectionDataIO.C
index 146543c7df1..afc9de8766d 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/reactingParcelInjectionDataIO.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/reactingParcelInjectionDataIO.C
@@ -34,7 +34,7 @@ Foam::reactingParcelInjectionData::reactingParcelInjectionData(Istream& is)
     is.check("reading Y's");
     is >> Y_;
 
-    is.check("reactingParcelInjectionData(Istream& is)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -61,7 +61,7 @@ Foam::Istream& Foam::operator>>(Istream& is, reactingParcelInjectionData& data)
     is.check("reading Y's");
     is >> data.Y_;
 
-    is.check("operator(Istream&, reactingParcelInjectionData&)");
+    is.check(FUNCTION_NAME);
 
     return is;
 }
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/reactingMultiphaseParcelInjectionDataIO.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/reactingMultiphaseParcelInjectionDataIO.C
index cf0244e52f3..c455b08d228 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/reactingMultiphaseParcelInjectionDataIO.C
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/reactingMultiphaseParcelInjectionDataIO.C
@@ -41,7 +41,7 @@ reactingMultiphaseParcelInjectionData(Istream& is)
     is.check("reading YSolid's");
     is >> YSolid_;
 
-    is.check("reactingMultiphaseParcelInjectionData(Istream& is)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -78,7 +78,7 @@ Foam::Istream& Foam::operator>>
     is.check("reading YSolid's");
     is >> data.YSolid_;
 
-    is.check("operator(Istream&, reactingMultiphaseParcelInjectionData&)");
+    is.check(FUNCTION_NAME);
 
     return is;
 }
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C
index 259c7c53b42..67c88f5e80b 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C
@@ -37,7 +37,7 @@ Foam::thermoParcelInjectionData::thermoParcelInjectionData(Istream& is)
     is.check("reading Cp");
     is >> Cp_;
 
-    is.check("thermoParcelInjectionData(Istream& is)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -67,7 +67,7 @@ Foam::Istream& Foam::operator>>(Istream& is, thermoParcelInjectionData& data)
     is.check("reading Cp");
     is >> data.Cp_;
 
-    is.check("operator(Istream&, thermoParcelInjectionData&)");
+    is.check(FUNCTION_NAME);
 
     return is;
 }
diff --git a/src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulatorIO.C b/src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulatorIO.C
index 88d8888a49a..228b5b05d82 100644
--- a/src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulatorIO.C
+++ b/src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulatorIO.C
@@ -37,13 +37,7 @@ Foam::operator<<(Ostream& os, const bufferedAccumulator<Type>& bA)
         << static_cast<const List<Field<Type>>&>(bA)
         << bA.bufferOffsets();
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::bufferedAccumulator&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunctionIO.C b/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunctionIO.C
index 63d7b68c88c..0886797ea13 100644
--- a/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunctionIO.C
+++ b/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunctionIO.C
@@ -57,13 +57,7 @@ Foam::Ostream& Foam::operator<<
         << nl << cF.tZeroBuffers()
         << nl << static_cast<const bufferedAccumulator<scalar>&>(cF);
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Ostream&, const correlationFunction<Type>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C b/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C
index da37720b9c1..2091a519ad0 100644
--- a/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C
+++ b/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C
@@ -464,13 +464,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const distribution& d)
     os  << d.binWidth_
         << static_cast<const Map<label>&>(d);
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, "
-        "const distribution&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
index 9b15c28c189..d0fe212e6c8 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
+++ b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
@@ -82,12 +82,7 @@ Foam::molecule::molecule
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::molecule::molecule"
-        "(const Cloud<molecule>& cloud, Foam::Istream&), bool"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -281,13 +276,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const molecule& mol)
         os  << mol.siteForces_ << mol.sitePositions_;
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<"
-        "(Foam::Ostream&, const Foam::molecule&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnitsIO.C b/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnitsIO.C
index 7ee1f39bd08..0524db861a5 100644
--- a/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnitsIO.C
+++ b/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnitsIO.C
@@ -46,13 +46,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const reducedUnits& rU)
         << tab << "refNumberDensity = " << rU.refNumberDensity() << " m^-3"
         << endl;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::reducedUnits&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/solidParticle/solidParticleIO.C b/src/lagrangian/solidParticle/solidParticleIO.C
index c27cdbb94d3..7cecee74183 100644
--- a/src/lagrangian/solidParticle/solidParticleIO.C
+++ b/src/lagrangian/solidParticle/solidParticleIO.C
@@ -58,8 +58,7 @@ Foam::solidParticle::solidParticle
         }
     }
 
-    // Check state of Istream
-    is.check("solidParticle::solidParticle(Istream&)");
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -134,9 +133,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const solidParticle& p)
         );
     }
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const solidParticle&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
index 1afeb4d32b5..4f421eed0f7 100644
--- a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
+++ b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
@@ -93,16 +93,7 @@ Foam::SprayParcel<ParcelType>::SprayParcel
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "SprayParcel<ParcelType>::SprayParcel"
-        "("
-            "const polyMesh&, "
-            "Istream&, "
-            "bool"
-        ")"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -389,12 +380,7 @@ Foam::Ostream& Foam::operator<<
         );
     }
 
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const SprayParcel<ParcelType>&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/mesh/blockMesh/blockMeshTools/blockMeshTools.C b/src/mesh/blockMesh/blockMeshTools/blockMeshTools.C
index 465998ce9d6..45eebc49564 100644
--- a/src/mesh/blockMesh/blockMeshTools/blockMeshTools.C
+++ b/src/mesh/blockMesh/blockMeshTools/blockMeshTools.C
@@ -69,10 +69,7 @@ void Foam::blockMeshTools::read
             << exit(FatalIOError);
     }
 
-    is.fatalCheck
-    (
-        "operator>>(Istream&, List<T>&) : reading entry"
-    );
+    is.fatalCheck(FUNCTION_NAME);
 }
 
 
diff --git a/src/mesh/blockMesh/gradingDescriptor/gradingDescriptor.C b/src/mesh/blockMesh/gradingDescriptor/gradingDescriptor.C
index 6c54e2c4f53..ea58a0495e4 100644
--- a/src/mesh/blockMesh/gradingDescriptor/gradingDescriptor.C
+++ b/src/mesh/blockMesh/gradingDescriptor/gradingDescriptor.C
@@ -122,9 +122,7 @@ Foam::Istream& Foam::operator>>(Istream& is, gradingDescriptor& gd)
         is.readEnd("gradingDescriptor");
     }
 
-    // Check state of Istream
-    is.check("operator>>(Istream&, gradingDescriptor&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/mesh/blockMesh/gradingDescriptor/gradingDescriptors.C b/src/mesh/blockMesh/gradingDescriptor/gradingDescriptors.C
index 6e6418af3d7..439707ddff5 100644
--- a/src/mesh/blockMesh/gradingDescriptor/gradingDescriptors.C
+++ b/src/mesh/blockMesh/gradingDescriptor/gradingDescriptors.C
@@ -73,7 +73,7 @@ Foam::Istream& Foam::operator>>(Istream& is, gradingDescriptors& gds)
         is >> static_cast<List<gradingDescriptor>& >(gds);
 
         // Check state of Istream
-        is.check("operator>>(Istream&, gradingDescriptor&)");
+        is.check(FUNCTION_NAME);
 
         // Normalize the blockFractions and nDivFractions
         // of the list of gradingDescriptors
diff --git a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C
index dec8a9f47f2..e4ba1c54092 100644
--- a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C
+++ b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C
@@ -81,12 +81,7 @@ Foam::trackedParticle::trackedParticle
         }
     }
 
-    // Check state of Istream
-    is.check
-    (
-        "trackedParticle::trackedParticle"
-        "(const Cloud<trackedParticle>&, Istream&, bool)"
-    );
+    is.check(FUNCTION_NAME);
 }
 
 
@@ -270,9 +265,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const trackedParticle& p)
         );
     }
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const trackedParticle&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/meshTools/AABBTree/AABBTree.C b/src/meshTools/AABBTree/AABBTree.C
index 19c11f33a97..a8f02d3aa2f 100644
--- a/src/meshTools/AABBTree/AABBTree.C
+++ b/src/meshTools/AABBTree/AABBTree.C
@@ -492,7 +492,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const AABBTree<Type>& tree)
             << tree.addressing_;
     }
 
-    os.check("Ostream& operator<<(Ostream&, const AABBTree<Type>&)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -519,7 +519,7 @@ Foam::Istream& Foam::operator>>(Istream& is, AABBTree<Type>& tree)
             >> tree.addressing_;
     }
 
-    is.check("Istream& operator>>(Istream&, AABBTree<Type>&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/meshTools/coordinateSystems/coordinateSystem.C b/src/meshTools/coordinateSystems/coordinateSystem.C
index e3150ff8f58..e8c507a7f84 100644
--- a/src/meshTools/coordinateSystems/coordinateSystem.C
+++ b/src/meshTools/coordinateSystems/coordinateSystem.C
@@ -378,7 +378,7 @@ bool Foam::operator!=(const coordinateSystem& a, const coordinateSystem& b)
 Foam::Ostream& Foam::operator<<(Ostream& os, const coordinateSystem& cs)
 {
     cs.write(os);
-    os.check("Ostream& operator<<(Ostream&, const coordinateSystem&");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
index 59771b4d706..d8b14d5a9cc 100644
--- a/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
@@ -144,13 +144,7 @@ Foam::Ostream& Foam::fileFormats::edgeMeshFormat::write
 
     IOobject::writeDivider(os);
 
-    // Check state of Ostream
-    os.check
-    (
-        "edgeMeshFormat::write"
-        "(Ostream&, const pointField&, const edgeList&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -208,8 +202,7 @@ void Foam::fileFormats::edgeMeshFormat::write
 
     write(os, mesh.points(), mesh.edges());
 
-    // Check state of Ostream
-    os.check("edgeMeshFormat::write(Ostream&)");
+    os.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/meshTools/edgeMesh/edgeMeshIO.C b/src/meshTools/edgeMesh/edgeMeshIO.C
index f57ddb5a3c1..a187cb2d6c2 100644
--- a/src/meshTools/edgeMesh/edgeMeshIO.C
+++ b/src/meshTools/edgeMesh/edgeMeshIO.C
@@ -128,9 +128,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const edgeMesh& em)
 {
     fileFormats::edgeMeshFormat::write(os, em.points_, em.edges_);
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const edgeMesh&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -141,9 +139,7 @@ Foam::Istream& Foam::operator>>(Istream& is, edgeMesh& em)
 
     em.pointEdgesPtr_.clear();
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, edgeMesh&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
index a13061b7ff5..977cb457caa 100644
--- a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
@@ -2446,9 +2446,7 @@ Foam::Istream& Foam::operator>>
 
     vt = static_cast<Foam::extendedEdgeMesh::sideVolumeType>(type);
 
-    // Check state of Istream
-    is.check("operator>>(Istream&, sideVolumeType&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -2497,9 +2495,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const extendedEdgeMesh& em)
         << em.regionEdges_
         << endl;
 
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const extendedEdgeMesh&)");
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
@@ -2523,9 +2519,7 @@ Foam::Istream& Foam::operator>>(Istream& is, extendedEdgeMesh& em)
         >> em.featurePointEdges_
         >> em.regionEdges_;
 
-    // Check state of Istream
-    is.check("Istream& operator>>(Istream&, extendedEdgeMesh&)");
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
diff --git a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
index 08a688bfa55..3df1a97fb45 100644
--- a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
@@ -250,9 +250,7 @@ bool Foam::extendedFeatureEdgeMesh::writeData(Ostream& os) const
 //
 //    vt = static_cast<Foam::extendedFeatureEdgeMesh::sideVolumeType>(type);
 //
-//    // Check state of Istream
-//    is.check("operator>>(Istream&, sideVolumeType&)");
-//
+//    is.check(FUNCTION_NAME);
 //    return is;
 //}
 //
diff --git a/src/rigidBodyDynamics/rigidBodyModelState/rigidBodyModelStateIO.C b/src/rigidBodyDynamics/rigidBodyModelState/rigidBodyModelStateIO.C
index c17819b410d..038d42a31a0 100644
--- a/src/rigidBodyDynamics/rigidBodyModelState/rigidBodyModelStateIO.C
+++ b/src/rigidBodyDynamics/rigidBodyModelState/rigidBodyModelStateIO.C
@@ -59,13 +59,7 @@ Foam::Istream& Foam::RBD::operator>>
         >> state.qDdot_
         >> state.deltaT_;
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::RBD::rigidBodyModelState&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -81,13 +75,7 @@ Foam::Ostream& Foam::RBD::operator<<
         << token::SPACE << state.qDdot_
         << token::SPACE << state.deltaT_;
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::RBD::rigidBodyModelState&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/sampling/sampledSurface/sampledSurface/sampledSurface.C b/src/sampling/sampledSurface/sampledSurface/sampledSurface.C
index 0901dc4c941..b0753310313 100644
--- a/src/sampling/sampledSurface/sampledSurface/sampledSurface.C
+++ b/src/sampling/sampledSurface/sampledSurface/sampledSurface.C
@@ -244,7 +244,7 @@ void Foam::sampledSurface::print(Ostream& os) const
 Foam::Ostream& Foam::operator<<(Ostream &os, const sampledSurface& s)
 {
     s.print(os);
-    os.check("Ostream& operator<<(Ostream&, const sampledSurface&");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C
index 24984eec5b3..e24f81f448c 100644
--- a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C
+++ b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C
@@ -70,13 +70,7 @@ Foam::Istream& Foam::operator>>
         >> sDoFRBMS.pi_
         >> sDoFRBMS.tau_;
 
-    // Check state of Istream
-    is.check
-    (
-        "Foam::Istream& Foam::operator>>"
-        "(Foam::Istream&, Foam::sixDoFRigidBodyMotionState&)"
-    );
-
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -94,13 +88,7 @@ Foam::Ostream& Foam::operator<<
         << token::SPACE << sDoFRBMS.pi()
         << token::SPACE << sDoFRBMS.tau();
 
-    // Check state of Ostream
-    os.check
-    (
-        "Foam::Ostream& Foam::operator<<(Foam::Ostream&, "
-        "const Foam::sixDoFRigidBodyMotionState&)"
-    );
-
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/surfMesh/MeshedSurface/MeshedSurfaceIO.C b/src/surfMesh/MeshedSurface/MeshedSurfaceIO.C
index a8c8e4c7a32..296a93db1e2 100644
--- a/src/surfMesh/MeshedSurface/MeshedSurfaceIO.C
+++ b/src/surfMesh/MeshedSurface/MeshedSurfaceIO.C
@@ -38,7 +38,7 @@ Foam::Istream& Foam::MeshedSurface<Face>::read(Istream& is)
         >> this->storedPoints()
         >> this->storedFaces();
 
-    is.check("MeshedSurface::read(Istream&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -50,7 +50,7 @@ Foam::Ostream& Foam::MeshedSurface<Face>::write(Ostream& os) const
         << this->points()
         << this->surfFaces();
 
-    os.check("MeshedSurface::write(Ostream&) const");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C b/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C
index c1567931240..b54f3c4ce1d 100644
--- a/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C
+++ b/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.C
@@ -445,7 +445,7 @@ Foam::Istream& Foam::UnsortedMeshedSurface<Face>::read(Istream& is)
         >> this->storedPoints()
         >> this->storedFaces();
 
-    is.check("UnsortedMeshedSurface::read(Istream&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -457,7 +457,7 @@ Foam::Ostream& Foam::UnsortedMeshedSurface<Face>::write(Ostream& os) const
         << this->points()
         << this->surfFaces();
 
-    os.check("UnsortedMeshedSurface::write(Ostream&) const");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/surfMesh/surfZone/surfZone/surfZone.C b/src/surfMesh/surfZone/surfZone/surfZone.C
index 2620f2b4fbf..e2699243b5c 100644
--- a/src/surfMesh/surfZone/surfZone/surfZone.C
+++ b/src/surfMesh/surfZone/surfZone/surfZone.C
@@ -148,7 +148,7 @@ Foam::Istream& Foam::operator>>(Istream& is, surfZone& zone)
 {
     zone = surfZone(is, 0);
 
-    is.check("Istream& operator>>(Istream&, surfZone&)");
+    is.check(FUNCTION_NAME);
     return is;
 }
 
@@ -156,7 +156,7 @@ Foam::Istream& Foam::operator>>(Istream& is, surfZone& zone)
 Foam::Ostream& Foam::operator<<(Ostream& os, const surfZone& zone)
 {
     zone.write(os);
-    os.check("Ostream& operator<<(Ostream&, const surfZone&");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/surfMesh/triSurface/patches/surfacePatch.C b/src/surfMesh/triSurface/patches/surfacePatch.C
index 6b09d556230..f3cbc76dea0 100644
--- a/src/surfMesh/triSurface/patches/surfacePatch.C
+++ b/src/surfMesh/triSurface/patches/surfacePatch.C
@@ -158,7 +158,7 @@ bool Foam::surfacePatch::operator==(const surfacePatch& p) const
 Foam::Ostream& Foam::operator<<(Ostream& os, const surfacePatch& p)
 {
     p.write(os);
-    os.check("Ostream& operator<<(Ostream& f, const surfacePatch& p");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
diff --git a/src/surfMesh/triSurface/triSurface.C b/src/surfMesh/triSurface/triSurface.C
index 7590bba3a81..29aae79aed7 100644
--- a/src/surfMesh/triSurface/triSurface.C
+++ b/src/surfMesh/triSurface/triSurface.C
@@ -1157,7 +1157,7 @@ void Foam::triSurface::write(Ostream& os) const
         << static_cast<const List<labelledTri>&>(*this) << endl;
 
     // Check state of Ostream
-    os.check("triSurface::write(Ostream&)");
+    os.check(FUNCTION_NAME);
 }
 
 
diff --git a/src/thermophysicalModels/specie/specie/specie.C b/src/thermophysicalModels/specie/specie/specie.C
index 508d7556268..a0e81f0a0b4 100644
--- a/src/thermophysicalModels/specie/specie/specie.C
+++ b/src/thermophysicalModels/specie/specie/specie.C
@@ -63,7 +63,7 @@ void Foam::specie::write(Ostream& os) const
 Foam::Ostream& Foam::operator<<(Ostream& os, const specie& st)
 {
     st.write(os);
-    os.check("Ostream& operator<<(Ostream& os, const specie& st)");
+    os.check(FUNCTION_NAME);
     return os;
 }
 
-- 
GitLab


From b83007594aa42730885c4e564f2debb0079b1010 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 12:42:30 +0200
Subject: [PATCH 250/277] ENH: HashTable cfind() method returning a
 const_iterator

- This follows the same idea as cbegin/cend and is helpful when using
  C++11 auto to ensure we have unambiguous const-safe access.

  Previously:
  ====
    typename someLongClass::const_iterator iter = someTable.find(key);

    ... later on:
    *iter = value; // Oops, but caught by compiler.

  We can save some typing with auto, but it is uncertain what we get:
  ====
    auto iter = someTable.find(key);
        // iterator or const_iterator?
        // depends on someTable having const or non-const access.

    ... later on:
    *iter = value;  // Oops, but not caught by compiler.

  Using cfind instead, auto will deduce const_iterator as the type:
  ====
    auto iter = someTable.cfind(key);  // definitely const_iterator

    ... later on:
    *iter = value; // Oops, but caught by compiler.
---
 .../containers/HashTables/HashTable/HashTable.C   | 15 +++++++++++++--
 .../containers/HashTables/HashTable/HashTable.H   |  4 ++++
 .../HashTables/StaticHashTable/StaticHashTable.C  | 11 +++++++++++
 .../HashTables/StaticHashTable/StaticHashTable.H  |  4 ++++
 src/OpenFOAM/containers/NamedEnum/NamedEnum.H     |  4 ++--
 5 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C
index 2c8167adcee..9bf799d6b34 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C
@@ -74,7 +74,7 @@ Foam::HashTable<T, Key, Hash>::HashTable(const label size)
     {
         table_ = new hashedEntry*[tableSize_];
 
-        for (label hashIdx = 0; hashIdx < tableSize_; hashIdx++)
+        for (label hashIdx = 0; hashIdx < tableSize_; ++hashIdx)
         {
             table_[hashIdx] = nullptr;
         }
@@ -203,6 +203,17 @@ Foam::HashTable<T, Key, Hash>::find
 (
     const Key& key
 ) const
+{
+    return this->cfind(key);
+}
+
+
+template<class T, class Key, class Hash>
+typename Foam::HashTable<T, Key, Hash>::const_iterator
+Foam::HashTable<T, Key, Hash>::cfind
+(
+    const Key& key
+) const
 {
     if (nElmts_)
     {
@@ -912,7 +923,7 @@ bool Foam::HashTable<T, Key, Hash>::operator==
 
     for (const_iterator iter = rhs.cbegin(); iter != rhs.cend(); ++iter)
     {
-        const_iterator other = find(iter.key());
+        const_iterator other = this->cfind(iter.key());
 
         if (!other.found() || other.object() != iter.object())
         {
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
index 3b3338084d9..3f9a2df85fc 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
@@ -327,6 +327,10 @@ public:
         //  If not found iterator = end()
         const_iterator find(const Key& key) const;
 
+        //- Find and return an const_iterator set at the hashed entry
+        //  If not found iterator = end()
+        const_iterator cfind(const Key& key) const;
+
         //- Return hashed entry if it exists, or return the given default
         inline const T& lookup(const Key& key, const T& deflt) const;
 
diff --git a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.C b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.C
index ec30dfc20a0..c024ff335e2 100644
--- a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.C
+++ b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.C
@@ -158,6 +158,17 @@ Foam::StaticHashTable<T, Key, Hash>::find
 (
     const Key& key
 ) const
+{
+    return this->cfind(key);
+}
+
+
+template<class T, class Key, class Hash>
+typename Foam::StaticHashTable<T, Key, Hash>::const_iterator
+Foam::StaticHashTable<T, Key, Hash>::cfind
+(
+    const Key& key
+) const
 {
     if (nElmts_)
     {
diff --git a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
index 5b0a3ef8a59..850eb1fc43d 100644
--- a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
+++ b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
@@ -203,6 +203,10 @@ public:
             //  If not found iterator = end()
             const_iterator find(const Key& key) const;
 
+            //- Find and return an const_iterator set at the hashed entry
+            //  If not found iterator = end()
+            const_iterator cfind(const Key& key) const;
+
             //- Return the table of contents
             List<Key> toc() const;
 
diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
index b2705f28050..b9054aee85f 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
+++ b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
@@ -87,10 +87,10 @@ public:
 
         //- Read a word from Istream and return the corresponding
         //  enumeration element
-        Enum read(Istream&) const;
+        Enum read(Istream& is) const;
 
         //- Write the name representation of the enumeration to an Ostream
-        void write(const Enum e, Ostream&) const;
+        void write(const Enum e, Ostream& os) const;
 
         //- The set of names as a list of strings
         static stringList strings();
-- 
GitLab


From 26fef427ed17c9dd3f3972d751692c9c851b7050 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 16:59:20 +0200
Subject: [PATCH 251/277] ENH: provide lookupOrDefault for NamedEnum - makes
 for easier use.

---
 applications/test/NamedEnum/Test-NamedEnum.C  |  27 ++++
 src/OpenFOAM/containers/NamedEnum/NamedEnum.C | 124 ++++++++++++------
 src/OpenFOAM/containers/NamedEnum/NamedEnum.H |  61 +++++++--
 3 files changed, 158 insertions(+), 54 deletions(-)

diff --git a/applications/test/NamedEnum/Test-NamedEnum.C b/applications/test/NamedEnum/Test-NamedEnum.C
index 08d1f74972e..079938b6b79 100644
--- a/applications/test/NamedEnum/Test-NamedEnum.C
+++ b/applications/test/NamedEnum/Test-NamedEnum.C
@@ -66,6 +66,9 @@ int main(int argc, char *argv[])
     const List<namedEnumTest::option> options
         = namedEnumTest::namedEnum.enums();
 
+    dictionary testDict;
+    testDict.add("lookup1", "c");
+
     Info<< "enums: " << options << nl;
 
     Info<< "loop over enums (as list):" << nl;
@@ -88,6 +91,30 @@ int main(int argc, char *argv[])
         << namedEnumTest::namedEnum["a"] << nl
         << namedEnumTest::namedEnum[namedEnumTest::a] << nl;
 
+    Info<< "--- test dictionary lookup ---" << endl;
+    {
+        Info<< "dict: " << testDict << endl;
+
+        namedEnumTest::option gotOpt =
+            namedEnumTest::namedEnum.lookupOrDefault
+            (
+                "test",
+                testDict,
+                namedEnumTest::option::a
+            );
+
+        Info<< "got: " << gotOpt << endl;
+
+        gotOpt = namedEnumTest::namedEnum.lookupOrDefault
+        (
+            "lookup1",
+            testDict,
+            namedEnumTest::option::a
+        );
+
+        Info<< "got: " << gotOpt << endl;
+    }
+
     Info<< "--- test read construction ---" << endl;
 
     namedEnumTest::option dummy(namedEnumTest::namedEnum.read(Sin));
diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C b/src/OpenFOAM/containers/NamedEnum/NamedEnum.C
index 89784a1400b..0f5e05630f7 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C
+++ b/src/OpenFOAM/containers/NamedEnum/NamedEnum.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,33 +24,60 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "NamedEnum.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class Enum, int nEnum>
+template<class StringType>
+Foam::List<StringType> Foam::NamedEnum<Enum, nEnum>::getNamesList()
+{
+    List<StringType> lst(nEnum);
+
+    label count = 0;
+    for (int enumi=0; enumi < nEnum; ++enumi)
+    {
+        if (names[enumi] && names[enumi][0])
+        {
+            lst[count++] = names[enumi];
+        }
+    }
+
+    lst.setSize(count);
+    return lst;
+}
+
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class Enum, int nEnum>
 Foam::NamedEnum<Enum, nEnum>::NamedEnum()
 :
-    HashTable<int>(2*nEnum)
+    table_type(2*nEnum)
 {
-    for (int enumI = 0; enumI < nEnum; ++enumI)
+    for (int enumi=0; enumi < nEnum; ++enumi)
     {
-        if (!names[enumI] || names[enumI][0] == '\0')
+        if (names[enumi] && names[enumi][0])
+        {
+            insert(names[enumi], enumi);
+        }
+        else
         {
-            stringList goodNames(enumI);
+            // Bad name - generate error message
+            stringList goodNames(enumi);
 
-            for (int i = 0; i < enumI; ++i)
+            for (int i = 0; i < enumi; ++i)
             {
                 goodNames[i] = names[i];
             }
 
             FatalErrorInFunction
-                << "Illegal enumeration name at position " << enumI << endl
-                << "after entries " << goodNames << ".\n"
+                << "Illegal enumeration name at position " << enumi << nl
+                << "after entries " << goodNames << nl
                 << "Possibly your NamedEnum<Enum, nEnum>::names array"
                 << " is not of size " << nEnum << endl
                 << abort(FatalError);
         }
-        insert(names[enumI], enumI);
     }
 }
 
@@ -60,14 +87,13 @@ Foam::NamedEnum<Enum, nEnum>::NamedEnum()
 template<class Enum, int nEnum>
 Enum Foam::NamedEnum<Enum, nEnum>::read(Istream& is) const
 {
-    const word name(is);
-
-    HashTable<int>::const_iterator iter = find(name);
+    const word enumName(is);
+    table_type::const_iterator iter = find(enumName);
 
     if (!iter.found())
     {
         FatalIOErrorInFunction(is)
-            << name << " is not in enumeration: "
+            << enumName << " is not in enumeration: "
             << sortedToc() << exit(FatalIOError);
     }
 
@@ -78,45 +104,47 @@ Enum Foam::NamedEnum<Enum, nEnum>::read(Istream& is) const
 template<class Enum, int nEnum>
 void Foam::NamedEnum<Enum, nEnum>::write(const Enum e, Ostream& os) const
 {
-    os  << operator[](e);
+    os  << names[int(e)];
 }
 
 
 template<class Enum, int nEnum>
-Foam::stringList Foam::NamedEnum<Enum, nEnum>::strings()
+Enum Foam::NamedEnum<Enum, nEnum>::lookup
+(
+    const word& key,
+    const dictionary& dict
+) const
 {
-    stringList lst(nEnum);
+    const word enumName(dict.lookup(key));
+    table_type::const_iterator iter = find(enumName);
 
-    label nElem = 0;
-    for (int enumI = 0; enumI < nEnum; ++enumI)
+    if (!iter.found())
     {
-        if (names[enumI] && names[enumI][0])
-        {
-            lst[nElem++] = names[enumI];
-        }
+        FatalIOErrorInFunction(dict)
+            << enumName << " is not in enumeration: "
+            << sortedToc() << exit(FatalIOError);
     }
 
-    lst.setSize(nElem);
-    return lst;
+    return Enum(iter.object());
 }
 
 
 template<class Enum, int nEnum>
-Foam::wordList Foam::NamedEnum<Enum, nEnum>::words()
+Enum Foam::NamedEnum<Enum, nEnum>::lookupOrDefault
+(
+    const word& key,
+    const dictionary& dict,
+    const enum_type deflt
+) const
 {
-    wordList lst(nEnum);
-
-    label nElem = 0;
-    for (int enumI = 0; enumI < nEnum; ++enumI)
+    if (dict.found(key))
     {
-        if (names[enumI] && names[enumI][0])
-        {
-            lst[nElem++] = names[enumI];
-        }
+        return lookup(key, dict);
+    }
+    else
+    {
+        return deflt;
     }
-
-    lst.setSize(nElem);
-    return lst;
 }
 
 
@@ -125,18 +153,32 @@ Foam::List<Enum> Foam::NamedEnum<Enum, nEnum>::enums()
 {
     List<Enum> lst(nEnum);
 
-    label nElem = 0;
-    for (int enumI = 0; enumI < nEnum; ++enumI)
+    label count = 0;
+    for (int enumi = 0; enumi < nEnum; ++enumi)
     {
-        if (names[enumI] && names[enumI][0])
+        if (names[enumi] && names[enumi][0])
         {
-            lst[nElem++] = Enum(enumI);
+            lst[count++] = Enum(enumi);
         }
     }
 
-    lst.setSize(nElem);
+    lst.setSize(count);
     return lst;
 }
 
 
+template<class Enum, int nEnum>
+Foam::stringList Foam::NamedEnum<Enum, nEnum>::strings()
+{
+    return getNamesList<string>();
+}
+
+
+template<class Enum, int nEnum>
+Foam::wordList Foam::NamedEnum<Enum, nEnum>::words()
+{
+    return getNamesList<word>();
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
index b9054aee85f..0c1c0826fa3 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
+++ b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,7 +25,9 @@ Class
     Foam::NamedEnum
 
 Description
-    Initialise the NamedEnum HashTable from the static list of names.
+    A NamedEnum is a wrapper around a static list of names that represent
+    a particular enumeration. Internally it uses a HashTable for quicker
+    lookups.
 
 SourceFiles
     NamedEnum.C
@@ -44,6 +46,7 @@ SourceFiles
 
 namespace Foam
 {
+class dictionary;
 
 // Forward declaration
 template<class Enum, int> class NamedEnum;
@@ -57,11 +60,19 @@ class NamedEnum
 :
     public HashTable<int>
 {
-    //- nEnum must be positive (non-zero)
+    //- The nEnum must be positive (non-zero)
     static_assert(nEnum > 0, "nEnum must be positive (non-zero)");
 
+    //- The type of HashTable used for the lookup.
+    typedef HashTable<int> table_type;
+
+
     // Private Member Functions
 
+        //- The names as a list of strings
+        template<class StringType>
+        static List<StringType> getNamesList();
+
         //- Disallow default bitwise copy construct
         NamedEnum(const NamedEnum&) = delete;
 
@@ -71,6 +82,10 @@ class NamedEnum
 
 public:
 
+    //- The type of enumeration wrapped by NamedEnum
+    typedef Enum enum_type;
+
+
     // Static data members
 
         //- The set of names corresponding to the enumeration Enum
@@ -87,10 +102,33 @@ public:
 
         //- Read a word from Istream and return the corresponding
         //  enumeration element
-        Enum read(Istream& is) const;
+        enum_type read(Istream& is) const;
 
         //- Write the name representation of the enumeration to an Ostream
-        void write(const Enum e, Ostream& os) const;
+        void write(const enum_type e, Ostream& os) const;
+
+        //- Lookup the key in the dictionary and return the corresponding
+        // enumeration element based on its name.
+        // Fatal if anything is incorrect.
+        enum_type lookup
+        (
+            const word& key,
+            const dictionary& dict
+        ) const;
+
+        //- Find the key in the dictionary and return the corresponding
+        //  enumeration element based on its name.
+        //  Return the default value if the key was not found in the dictionary.
+        //  Fatal if enumerated name was incorrect.
+        enum_type lookupOrDefault
+        (
+            const word& key,
+            const dictionary& dict,
+            const enum_type deflt
+        ) const;
+
+        //- List of enumerations
+        static List<enum_type> enums();
 
         //- The set of names as a list of strings
         static stringList strings();
@@ -98,26 +136,23 @@ public:
         //- The set of names as a list of words
         static wordList words();
 
-        //- List of enumerations
-        static List<Enum> enums();
-
 
     // Member Operators
 
         //- Return the enumeration element corresponding to the given name
-        const Enum operator[](const char* name) const
+        inline const enum_type operator[](const char* name) const
         {
-            return Enum(HashTable<int>::operator[](name));
+            return enum_type(table_type::operator[](name));
         }
 
         //- Return the enumeration element corresponding to the given name
-        const Enum operator[](const word& name) const
+        inline const enum_type operator[](const word& name) const
         {
-            return Enum(HashTable<int>::operator[](name));
+            return enum_type(table_type::operator[](name));
         }
 
         //- Return the name of the given enumeration element
-        const char* operator[](const Enum e) const
+        inline const char* operator[](const enum_type e) const
         {
             return names[int(e)];
         }
-- 
GitLab


From 8f1a4f792d542527f5a34fb65631a4e4d2437dea Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 15:00:48 +0200
Subject: [PATCH 252/277] ENH: include region counting in triSurface writeStats

---
 src/surfMesh/triSurface/triSurface.C | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/surfMesh/triSurface/triSurface.C b/src/surfMesh/triSurface/triSurface.C
index 29aae79aed7..fa8c7ba874c 100644
--- a/src/surfMesh/triSurface/triSurface.C
+++ b/src/surfMesh/triSurface/triSurface.C
@@ -1181,14 +1181,15 @@ void Foam::triSurface::writeStats(Ostream& os) const
 
     label nPoints = 0;
     boundBox bb(boundBox::invertedBox);
+    labelHashSet regionsUsed;
 
-    forAll(*this, facei)
+    for (const triSurface::FaceType& f : *this)
     {
-        const triSurface::FaceType& f = operator[](facei);
+        regionsUsed.insert(f.region());
 
         forAll(f, fp)
         {
-            label pointi = f[fp];
+            const label pointi = f[fp];
             if (pointIsUsed.set(pointi, 1))
             {
                 bb.add(points()[pointi]);
@@ -1197,8 +1198,9 @@ void Foam::triSurface::writeStats(Ostream& os) const
         }
     }
 
-    os  << "Triangles    : " << size() << endl
-        << "Vertices     : " << nPoints << endl
+    os  << "Triangles    : " << size()
+        << " in " << regionsUsed.size() <<  " region(s)" << nl
+        << "Vertices     : " << nPoints << nl
         << "Bounding Box : " << bb << endl;
 }
 
-- 
GitLab


From dd54aa3018360c59d9e6acf8dc870d3befe1296c Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 26 May 2017 21:02:28 +0200
Subject: [PATCH 253/277] BUG: non-lazy PackedList (fixes #484)

- The unset() method never auto-vivifies, whereas the set() method
  always auto-vivifies. In the case where set() is called with a zero
  for its argument - eg, set(index, 0) - this should behave
  identically to an unset() and not auto-vivify out-of-range entries.
---
 .../test/PackedList2/Test-PackedList2.C       |  59 ++--
 .../Lists/PackedList/PackedBoolList.C         |   2 +-
 .../Lists/PackedList/PackedBoolList.H         | 182 +++++------
 .../Lists/PackedList/PackedBoolListI.H        |   2 +-
 .../containers/Lists/PackedList/PackedList.H  | 292 +++++++++---------
 .../containers/Lists/PackedList/PackedListI.H |  10 +-
 6 files changed, 279 insertions(+), 268 deletions(-)

diff --git a/applications/test/PackedList2/Test-PackedList2.C b/applications/test/PackedList2/Test-PackedList2.C
index 2926118ff93..26981b484ff 100644
--- a/applications/test/PackedList2/Test-PackedList2.C
+++ b/applications/test/PackedList2/Test-PackedList2.C
@@ -84,6 +84,12 @@ int main(int argc, char *argv[])
         packed.resize(n, 1);
     }
     Info<< "resize/shrink/resize:" << timer.cpuTimeIncrement() << " s\n\n";
+    Info<< "packed bool size=" << packed.size() << nl;
+
+    // Neither of these should affect the size
+    packed.unset(2*n-1);
+    packed.set(2*n-1, 0);
+    Info<< "packed bool size=" << packed.size() << nl;
 
     // set every other bit on:
     Info<< "set every other bit on and count\n";
@@ -99,8 +105,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Counting brute-force:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Count packed
@@ -110,8 +116,8 @@ int main(int argc, char *argv[])
         sum += packed.count();
     }
     Info<< "Counting via count():" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Dummy addition
@@ -123,8 +129,8 @@ int main(int argc, char *argv[])
             sum += i + 1;
         }
     }
-    Info<< "Dummy loop:" << timer.cpuTimeIncrement() << " s" << endl;
-    Info<< "  sum " << sum << endl;
+    Info<< "Dummy loop:" << timer.cpuTimeIncrement() << " s" << nl
+        << "  sum " << sum << " (sum is meaningless)" << endl;
 
     //
     // Read
@@ -139,8 +145,8 @@ int main(int argc, char *argv[])
             sum += stlVector[i];
         }
     }
-    Info<< "Reading stl:" << timer.cpuTimeIncrement() << " s" << endl;
-    Info<< "  sum " << sum << endl;
+    Info<< "Reading stl:" << timer.cpuTimeIncrement() << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read unpacked
@@ -152,8 +158,8 @@ int main(int argc, char *argv[])
             sum += unpacked[i];
         }
     }
-    Info<< "Reading unpacked:" << timer.cpuTimeIncrement() << " s" << endl;
-    Info<< "  sum " << sum << endl;
+    Info<< "Reading unpacked:" << timer.cpuTimeIncrement() << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read packed
@@ -166,8 +172,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading packed using get:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read packed
@@ -180,8 +186,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading packed using reference:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read via iterator
@@ -194,8 +200,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading packed using iterator:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read via iterator
@@ -208,8 +214,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading packed using const_iterator():" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read empty hash
@@ -222,8 +228,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading empty labelHashSet:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read full hash
@@ -236,8 +242,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading full labelHashSet:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 
     // Read empty static hash
@@ -250,8 +256,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading empty StaticHash:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 
 #if 0
     // we can skip this test - it is usually quite slow
@@ -265,8 +271,8 @@ int main(int argc, char *argv[])
         }
     }
     Info<< "Reading full StaticHash:" << timer.cpuTimeIncrement()
-        << " s" << endl;
-    Info<< "  sum " << sum << endl;
+        << " s" << nl
+        << "  sum " << sum << endl;
 #endif
 
     Info<< "Starting write tests" << endl;
@@ -319,7 +325,6 @@ int main(int argc, char *argv[])
     Info<< "Writing packed using set:" << timer.cpuTimeIncrement()
         << " s" << endl;
 
-
     // Write packed
     for (label iter = 0; iter < nIters; ++iter)
     {
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.C b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.C
index 791d53cc591..4b01a43dd61 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.C
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.C
@@ -286,7 +286,7 @@ Foam::Xfer<Foam::labelList> Foam::PackedBoolList::used() const
 
 // * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * * //
 
-void Foam::PackedBoolList::operator=(const Foam::UList<bool>& lst)
+void Foam::PackedBoolList::operator=(const UList<bool>& lst)
 {
     this->setSize(lst.size());
 
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H
index b2ca0037f85..f98545a9bd6 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H
@@ -94,7 +94,7 @@ public:
         inline PackedBoolList();
 
         //- Construct from Istream
-        PackedBoolList(Istream&);
+        PackedBoolList(Istream& is);
 
         //- Construct with given size, initializes list to 0
         explicit inline PackedBoolList(const label size);
@@ -103,19 +103,19 @@ public:
         inline PackedBoolList(const label size, const bool val);
 
         //- Copy constructor
-        inline PackedBoolList(const PackedBoolList&);
+        inline PackedBoolList(const PackedBoolList& lst);
 
         //- Copy constructor
-        explicit inline PackedBoolList(const PackedList<1>&);
+        explicit inline PackedBoolList(const PackedList<1>& lst);
 
         //- Construct by transferring the parameter contents
-        inline PackedBoolList(const Xfer<PackedBoolList>&);
+        inline PackedBoolList(const Xfer<PackedBoolList>& lst);
 
         //- Construct by transferring the parameter contents
-        inline PackedBoolList(const Xfer<PackedList<1>>&);
+        inline PackedBoolList(const Xfer<PackedList<1>>& lst);
 
         //- Construct from a list of bools
-        explicit inline PackedBoolList(const Foam::UList<bool>&);
+        explicit inline PackedBoolList(const UList<bool>& lst);
 
         //- Construct from a list of labels
         //  using the labels as indices to indicate which bits are set
@@ -131,132 +131,132 @@ public:
 
     // Member Functions
 
-        // Access
+      // Access
 
-            using PackedList<1>::set;
-            using PackedList<1>::unset;
+        using PackedList<1>::set;
+        using PackedList<1>::unset;
 
-            //- Set specified bits.
-            void set(const PackedList<1>&);
+        //- Set specified bits.
+        void set(const PackedList<1>& lst);
 
-            //- Set the listed indices. Return number of elements changed.
-            //  Does auto-vivify for non-existent entries.
-            label set(const labelUList& indices);
+        //- Set the listed indices. Return number of elements changed.
+        //  Does auto-vivify for non-existent entries.
+        label set(const labelUList& indices);
 
-            //- Set the listed indices. Return number of elements changed.
-            //  Does auto-vivify for non-existent entries.
-            label set(const UIndirectList<label>& indices);
+        //- Set the listed indices. Return number of elements changed.
+        //  Does auto-vivify for non-existent entries.
+        label set(const UIndirectList<label>& indices);
 
-            //- Unset specified bits.
-            void unset(const PackedList<1>&);
+        //- Unset specified bits.
+        void unset(const PackedList<1>& lst);
 
-            //- Unset the listed indices. Return number of elements changed.
-            //  Never auto-vivify entries.
-            label unset(const labelUList& indices);
+        //- Unset the listed indices. Return number of elements changed.
+        //  Never auto-vivify entries.
+        label unset(const labelUList& indices);
 
-            //- Unset the listed indices. Return number of elements changed.
-            //  Never auto-vivify entries.
-            label unset(const UIndirectList<label>& indices);
+        //- Unset the listed indices. Return number of elements changed.
+        //  Never auto-vivify entries.
+        label unset(const UIndirectList<label>& indices);
 
-            //- Subset with the specified list.
-            void subset(const PackedList<1>&);
+        //- Subset with the specified list.
+        void subset(const PackedList<1>& lst);
 
-            //- Subset with the listed indices.
-            //  Return number of elements subsetted.
-            label subset(const labelUList& indices);
+        //- Subset with the listed indices.
+        //  Return number of elements subsetted.
+        label subset(const labelUList& indices);
 
-            //- Subset with the listed indices.
-            //  Return number of elements subsetted.
-            label subset(const UIndirectList<label>& indices);
+        //- Subset with the listed indices.
+        //  Return number of elements subsetted.
+        label subset(const UIndirectList<label>& indices);
 
 
-            //- Return indices of the used (true) elements as a list of labels
-            Xfer<labelList> used() const;
+        //- Return indices of the used (true) elements as a list of labels
+        Xfer<labelList> used() const;
 
 
-        // Edit
+      // Edit
 
-            //- Transfer the contents of the argument list into this list
-            //  and annul the argument list.
-            inline void transfer(PackedBoolList&);
+        //- Transfer the contents of the argument list into this list
+        //  and annul the argument list.
+        inline void transfer(PackedBoolList& lst);
 
-            //- Transfer the contents of the argument list into this list
-            //  and annul the argument list.
-            inline void transfer(PackedList<1>&);
+        //- Transfer the contents of the argument list into this list
+        //  and annul the argument list.
+        inline void transfer(PackedList<1>& lst);
 
-            //- Transfer contents to the Xfer container
-            inline Xfer<PackedBoolList> xfer();
+        //- Transfer contents to the Xfer container
+        inline Xfer<PackedBoolList> xfer();
 
 
     // Member Operators
 
-            //- Assignment of all entries to the given value.
-            inline void operator=(const bool val);
+        //- Assignment of all entries to the given value.
+        inline void operator=(const bool val);
 
-            //- Assignment operator.
-            inline void operator=(const PackedBoolList&);
+        //- Assignment operator.
+        inline void operator=(const PackedBoolList& lst);
 
-            //- Assignment operator.
-            inline void operator=(const PackedList<1>&);
+        //- Assignment operator.
+        inline void operator=(const PackedList<1>& lst);
 
-            //- Assignment operator.
-            void operator=(const Foam::UList<bool>&);
+        //- Assignment operator.
+        void operator=(const UList<bool>& lst);
 
-            //- Assignment operator,
-            //  using the labels as indices to indicate which bits are set
-            inline void operator=(const labelUList& indices);
+        //- Assignment operator,
+        //  using the labels as indices to indicate which bits are set
+        inline void operator=(const labelUList& indices);
 
-            //- Assignment operator,
-            //  using the labels as indices to indicate which bits are set
-            inline void operator=(const UIndirectList<label>&);
+        //- Assignment operator,
+        //  using the labels as indices to indicate which bits are set
+        inline void operator=(const UIndirectList<label>& indices);
 
-            //- Complement operator
-            inline PackedBoolList operator~() const;
+        //- Complement operator
+        inline PackedBoolList operator~() const;
 
-            //- And operator (lists may be dissimilar sizes)
-            inline PackedBoolList& operator&=(const PackedList<1>&);
+        //- And operator (lists may be dissimilar sizes)
+        inline PackedBoolList& operator&=(const PackedList<1>& lst);
 
-            //- And operator (lists may be dissimilar sizes)
-            //  using the labels as indices to indicate which bits are set
-            inline PackedBoolList& operator&=(const labelUList& indices);
+        //- And operator (lists may be dissimilar sizes)
+        //  using the labels as indices to indicate which bits are set
+        inline PackedBoolList& operator&=(const labelUList& indices);
 
-            //- And operator (lists may be dissimilar sizes)
-            //  using the labels as indices to indicate which bits are set
-            inline PackedBoolList& operator&=(const UIndirectList<label>&);
+        //- And operator (lists may be dissimilar sizes)
+        //  using the labels as indices to indicate which bits are set
+        inline PackedBoolList& operator&=(const UIndirectList<label>& indices);
 
-            //- Xor operator (lists may be dissimilar sizes)
-            //  Retains unique entries
-            PackedBoolList& operator^=(const PackedList<1>&);
+        //- Xor operator (lists may be dissimilar sizes)
+        //  Retains unique entries
+        PackedBoolList& operator^=(const PackedList<1>& lst);
 
-            //- Or operator (lists may be dissimilar sizes)
-            inline PackedBoolList& operator|=(const PackedList<1>&);
+        //- Or operator (lists may be dissimilar sizes)
+        inline PackedBoolList& operator|=(const PackedList<1>& lst);
 
-            //- Or operator (lists may be dissimilar sizes),
-            //  using the labels as indices to indicate which bits are set
-            inline PackedBoolList& operator|=(const labelUList& indices);
+        //- Or operator (lists may be dissimilar sizes),
+        //  using the labels as indices to indicate which bits are set
+        inline PackedBoolList& operator|=(const labelUList& indices);
 
-            //- Or operator (lists may be dissimilar sizes),
-            //  using the labels as indices to indicate which bits are set
-            inline PackedBoolList& operator|=(const UIndirectList<label>&);
+        //- Or operator (lists may be dissimilar sizes),
+        //  using the labels as indices to indicate which bits are set
+        inline PackedBoolList& operator|=(const UIndirectList<label>& indices);
 
 
-            //- Add entries to this list, synonymous with the or operator
-            inline PackedBoolList& operator+=(const PackedList<1>&);
+        //- Add entries to this list, synonymous with the or operator
+        inline PackedBoolList& operator+=(const PackedList<1>& lst);
 
-            //- Add entries to this list, synonymous with the or operator
-            inline PackedBoolList& operator+=(const labelUList& indices);
+        //- Add entries to this list, synonymous with the or operator
+        inline PackedBoolList& operator+=(const labelUList& indices);
 
-            //- Add entries to this list, synonymous with the or operator
-            inline PackedBoolList& operator+=(const UIndirectList<label>&);
+        //- Add entries to this list, synonymous with the or operator
+        inline PackedBoolList& operator+=(const UIndirectList<label>& indices);
 
-            //- Remove entries from this list - unset the specified bits
-            inline PackedBoolList& operator-=(const PackedList<1>&);
+        //- Remove entries from this list - unset the specified bits
+        inline PackedBoolList& operator-=(const PackedList<1>& lst);
 
-            //- Remove entries from this list - unset the specified bits
-            inline PackedBoolList& operator-=(const labelUList& indices);
+        //- Remove entries from this list - unset the specified bits
+        inline PackedBoolList& operator-=(const labelUList& indices);
 
-            //- Remove entries from this list - unset the specified bits
-            inline PackedBoolList& operator-=(const UIndirectList<label>&);
+        //- Remove entries from this list - unset the specified bits
+        inline PackedBoolList& operator-=(const UIndirectList<label>& indices);
 };
 
 
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolListI.H b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolListI.H
index d5561cfc282..a0702f9a30e 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolListI.H
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolListI.H
@@ -73,7 +73,7 @@ inline Foam::PackedBoolList::PackedBoolList(const Xfer<PackedList<1>>& lst)
 {}
 
 
-inline Foam::PackedBoolList::PackedBoolList(const Foam::UList<bool>& lst)
+inline Foam::PackedBoolList::PackedBoolList(const UList<bool>& lst)
 :
     PackedList<1>()
 {
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedList.H b/src/OpenFOAM/containers/Lists/PackedList/PackedList.H
index c07bb1eab11..18720fc2ae9 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedList.H
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedList.H
@@ -118,9 +118,9 @@ class Ostream;
 template<unsigned nBits> class PackedList;
 
 template<unsigned nBits>
-Istream& operator>>(Istream&, PackedList<nBits>&);
+Istream& operator>>(Istream& is, PackedList<nBits>& lst);
 template<unsigned nBits>
-Ostream& operator<<(Ostream&, const PackedList<nBits>&);
+Ostream& operator<<(Ostream& os, const PackedList<nBits>& lst);
 
 
 /*---------------------------------------------------------------------------*\
@@ -160,11 +160,11 @@ protected:
         inline static label packedLength(const label);
 
         //- Read a list entry (allows for specialization)
-        inline static unsigned int readValue(Istream&);
+        inline static unsigned int readValue(Istream& is);
 
         //- Read an index/value pair and set accordingly.
         //  For bool specialization, read a single index value
-        inline void setPair(Istream&);
+        inline void setPair(Istream& is);
 
 
 private:
@@ -252,167 +252,167 @@ public:
 
     // Member Functions
 
-        // Access
+      // Access
 
-            //- The number of elements that can be stored before reallocating
-            inline label capacity() const;
+        //- The number of elements that can be stored before reallocating
+        inline label capacity() const;
 
-            //- Number of entries.
-            inline label size() const;
+        //- Number of entries.
+        inline label size() const;
 
-            //- Return true if the list is empty (ie, size() is zero).
-            inline bool empty() const;
+        //- Return true if the list is empty (ie, size() is zero).
+        inline bool empty() const;
 
-            //- Get value at index I.
-            //  Never auto-vivify entries.
-            inline unsigned int get(const label i) const;
+        //- Get value at index I.
+        //  Never auto-vivify entries.
+        inline unsigned int get(const label i) const;
 
-            //- Set value at index I. Return true if value changed.
-            //  Does auto-vivify for non-existent entries.
-            //  Default value set is the max_value.
-            inline bool set(const label i, const unsigned int val = ~0u);
+        //- Set value at index I. Return true if value changed.
+        //  Does auto-vivify for non-existent, non-zero entries.
+        //  Default value set is the max_value.
+        inline bool set(const label i, const unsigned int val = ~0u);
 
-            //- Unset the entry at index I. Return true if value changed.
-            //  Never auto-vivify entries.
-            inline bool unset(const label i);
+        //- Unset the entry at index I. Return true if value changed.
+        //  Never auto-vivify entries.
+        inline bool unset(const label i);
 
-            //- Return the underlying packed storage
-            //  Manipulate with utmost caution
-            inline List<unsigned int>& storage();
+        //- Return the underlying packed storage
+        //  Manipulate with utmost caution
+        inline List<unsigned int>& storage();
 
-            //- Return the underlying packed storage
-            inline const List<unsigned int>& storage() const;
+        //- Return the underlying packed storage
+        inline const List<unsigned int>& storage() const;
 
-            //- The list length when packed
-            inline label packedLength() const;
+        //- The list length when packed
+        inline label packedLength() const;
 
-            //- Return the binary size in number of characters
-            //  used in the underlying storage
-            inline std::streamsize byteSize() const;
+        //- Return the binary size in number of characters
+        //  used in the underlying storage
+        inline std::streamsize byteSize() const;
 
-            //- Count number of bits set, O(log(n))
-            //  Uses the Hamming weight (population count) method
-            //  http://en.wikipedia.org/wiki/Hamming_weight
-            unsigned int count() const;
+        //- Count number of bits set, O(log(n))
+        //  Uses the Hamming weight (population count) method
+        //  http://en.wikipedia.org/wiki/Hamming_weight
+        unsigned int count() const;
 
-            //- Return the values as a list of labels
-            Xfer<labelList> values() const;
+        //- Return the values as a list of labels
+        Xfer<labelList> values() const;
 
-            //- Print bit patterns, optionally output unused elements
-            //
-            // addressable bits:
-            //   on: '1', off: '-'
-            //
-            // non-addressable bits:
-            //   on: '!', off: '.'
-            //
-            Ostream& printBits(Ostream&, const bool fullOutput=false) const;
+        //- Print bit patterns, optionally output unused elements
+        //
+        // addressable bits:
+        //   on: '1', off: '-'
+        //
+        // non-addressable bits:
+        //   on: '!', off: '.'
+        //
+        Ostream& printBits(Ostream& os, const bool fullOutput=false) const;
 
-            //- Print information and bit patterns (with printBits)
-            Ostream& printInfo(Ostream&, const bool fullOutput=false) const;
+        //- Print information and bit patterns (with printBits)
+        Ostream& printInfo(Ostream& os, const bool fullOutput=false) const;
 
 
-        // Edit
+      // Edit
 
-            //- Trim any trailing zero elements
-            bool trim();
+        //- Trim any trailing zero elements
+        bool trim();
 
-            //- Invert the bits in the addressable region
-            void flip();
+        //- Invert the bits in the addressable region
+        void flip();
 
-            //- Clear all bits
-            inline void reset();
+        //- Clear all bits
+        inline void reset();
 
-            //- Alter the size of the underlying storage.
-            //  The addressed size will be truncated if needed to fit, but will
-            //  remain otherwise untouched.
-            inline void setCapacity(const label);
+        //- Alter the size of the underlying storage.
+        //  The addressed size will be truncated if needed to fit, but will
+        //  remain otherwise untouched.
+        inline void setCapacity(const label nElem);
 
-            //- Reset addressable list size, does not shrink the allocated size.
-            //  Optionally specify a value for new elements.
-            inline void resize(const label, const unsigned int val = 0u);
+        //- Reset addressable list size, does not shrink the allocated size.
+        //  Optionally specify a value for new elements.
+        inline void resize(const label nElem, const unsigned int val = 0u);
 
-            //- Alias for resize()
-            inline void setSize(const label, const unsigned int val = 0u);
+        //- Alias for resize()
+        inline void setSize(const label nElem, const unsigned int val = 0u);
 
-            //- Reserve allocation space for at least this size.
-            //  Never shrinks the allocated size.
-            //  The list size is adjusted as per DynamicList with
-            //  SizeInc=0, SizeMult=2, SizeDiv=1
-            inline void reserve(const label);
+        //- Reserve allocation space for at least this size.
+        //  Never shrinks the allocated size.
+        //  The list size is adjusted as per DynamicList with
+        //  SizeInc=0, SizeMult=2, SizeDiv=1
+        inline void reserve(const label nElem);
 
-            //- Clear the list, i.e. set addressable size to zero.
-            //  Does not adjust the underlying storage
-            inline void clear();
+        //- Clear the list, i.e. set addressable size to zero.
+        //  Does not adjust the underlying storage
+        inline void clear();
 
-            //- Clear the list and delete storage.
-            inline void clearStorage();
+        //- Clear the list and delete storage.
+        inline void clearStorage();
 
-            //- Shrink the allocated space to what is actually used.
-            inline void shrink();
+        //- Shrink the allocated space to what is actually used.
+        inline void shrink();
 
-            //- Transfer the contents of the argument list into this list
-            //  and annul the argument list.
-            inline void transfer(PackedList<nBits>&);
+        //- Transfer the contents of the argument list into this list
+        //  and annul the argument list.
+        inline void transfer(PackedList<nBits>& lst);
 
-            //- Transfer contents to the Xfer container
-            inline Xfer<PackedList<nBits>> xfer();
+        //- Transfer contents to the Xfer container
+        inline Xfer<PackedList<nBits>> xfer();
 
 
-        // IO
+      // IO
 
-            //- Clear list and read from stream
-            Istream& read(Istream& is);
+        //- Clear list and read from stream
+        Istream& read(Istream& is);
 
-            //- Write the List, with line-breaks in ASCII if the list length
-            //  exceeds shortListLen. Using '0' suppresses line-breaks entirely.
-            //  A special indexed output (ASCII only) is triggered by specifying
-            //  a negative value for shortListLen.
-            //
-            // The indexed output may be convenient in some situations.
-            // The general format is a group of index/value pairs:
-            //  \verbatim
-            //      { (index1 value1) (index2 value2) (index3 value3) }
-            // \endverbatim
-            // The bool specialization just uses the indices corresponding to
-            // non-zero entries instead of a index/value pair:
-            // \verbatim
-            //     { index1 index2 index3 }
-            // \endverbatim
-            Ostream& writeList(Ostream& os, const label shortListLen=0) const;
+        //- Write the List, with line-breaks in ASCII if the list length
+        //  exceeds shortListLen. Using '0' suppresses line-breaks entirely.
+        //  A special indexed output (ASCII only) is triggered by specifying
+        //  a negative value for shortListLen.
+        //
+        // The indexed output may be convenient in some situations.
+        // The general format is a group of index/value pairs:
+        //  \verbatim
+        //      { (index1 value1) (index2 value2) (index3 value3) }
+        // \endverbatim
+        // The bool specialization just uses the indices corresponding to
+        // non-zero entries instead of a index/value pair:
+        // \verbatim
+        //     { index1 index2 index3 }
+        // \endverbatim
+        Ostream& writeList(Ostream& os, const label shortListLen=0) const;
 
-            //- Write as a dictionary entry with keyword
-            void writeEntry(const word& keyword, Ostream& os) const;
+        //- Write as a dictionary entry with keyword
+        void writeEntry(const word& keyword, Ostream& os) const;
 
 
-    // Member operators
+      // Member operators
 
-            //- Append a value at the end of the list
-            inline PackedList<nBits>& append(const unsigned int val);
+        //- Append a value at the end of the list
+        inline PackedList<nBits>& append(const unsigned int val);
 
-            //- Remove and return the last element
-            inline unsigned int remove();
+        //- Remove and return the last element
+        inline unsigned int remove();
 
-            //- Get value at index I
-            //  Never auto-vivify entries.
-            inline unsigned int operator[](const label i) const;
+        //- Get value at index I
+        //  Never auto-vivify entries.
+        inline unsigned int operator[](const label i) const;
 
-            //- Set value at index I.
-            //  Returns iterator to perform the actual operation.
-            //  Does not auto-vivify entries, but will when assigned to.
-            inline iteratorBase operator[](const label i);
+        //- Set value at index I.
+        //  Returns iterator to perform the actual operation.
+        //  Does not auto-vivify entries, but will when assigned to.
+        inline iteratorBase operator[](const label i);
 
-            //- Assignment of all entries to the given value. Takes linear time.
-            inline void operator=(const unsigned int val);
+        //- Assignment of all entries to the given value. Takes linear time.
+        inline void operator=(const unsigned int val);
 
-            //- Assignment operator.
-            void operator=(const PackedList<nBits>& lst);
+        //- Assignment operator.
+        void operator=(const PackedList<nBits>& lst);
 
-            //- Assignment operator.
-            void operator=(const labelUList& lst);
+        //- Assignment operator.
+        void operator=(const labelUList& lst);
 
-            //- Assignment operator.
-            void operator=(const UIndirectList<label>& lst);
+        //- Assignment operator.
+        void operator=(const UIndirectList<label>& lst);
 
 
     // Iterators and helpers
@@ -442,7 +442,7 @@ public:
                 inline unsigned int get() const;
 
                 //- Set value, returning true if changed, no range-checking
-                inline bool set(unsigned int);
+                inline bool set(unsigned int val);
 
 
             // Constructors
@@ -451,7 +451,7 @@ public:
                 inline iteratorBase();
 
                 //- Construct from base list and position index
-                inline iteratorBase(const PackedList*, const label);
+                inline iteratorBase(const PackedList* lst, const label i);
 
 
         public:
@@ -463,17 +463,17 @@ public:
 
                 //- Write index/value for a non-zero entry
                 //  The bool specialization writes the index only
-                inline bool writeIfSet(Ostream&) const;
+                inline bool writeIfSet(Ostream& os) const;
 
             // Member Operators
 
                 //- Compare values (not positions)
-                inline bool operator==(const iteratorBase&) const;
-                inline bool operator!=(const iteratorBase&) const;
+                inline bool operator==(const iteratorBase& iter) const;
+                inline bool operator!=(const iteratorBase& iter) const;
 
                 //- Assign value, not position.
                 //  This allows packed[0] = packed[3] for assigning values
-                inline void operator=(const iteratorBase&);
+                inline void operator=(const iteratorBase& iter);
 
                 //- Assign value.
                 //  A non-existent entry will be auto-vivified.
@@ -484,7 +484,7 @@ public:
                 inline operator unsigned int () const;
 
             //- Print information and values
-            Ostream& printInfo(Ostream&) const;
+            Ostream& printInfo(Ostream& os) const;
         };
 
 
@@ -496,11 +496,11 @@ public:
 
             //- Disallow copy constructor from const_iterator
             //  This would violate const-ness!
-            iterator(const const_iterator&);
+            iterator(const const_iterator& iter);
 
             //- Disallow assignment from const_iterator
             //  This would violate const-ness!
-            void operator=(const const_iterator&);
+            void operator=(const const_iterator& iter);
 
 
         public:
@@ -513,21 +513,21 @@ public:
                 //- Construct from iterator base, eg iter(packedlist[i])
                 //  but also  "iterator iter = packedlist[i];"
                 //  An out-of-range iterator is assigned end()
-                inline iterator(const iteratorBase&);
+                inline iterator(const iteratorBase& iter);
 
                 //- Construct from base list and position index
-                inline iterator(const PackedList*, const label);
+                inline iterator(const PackedList* lst, const label i);
 
 
             // Member Operators
 
                 //- Compare positions (not values)
-                inline bool operator==(const iteratorBase&) const;
-                inline bool operator!=(const iteratorBase&) const;
+                inline bool operator==(const iteratorBase& iter) const;
+                inline bool operator!=(const iteratorBase& iter) const;
 
                 //- Assign from iteratorBase, eg iter = packedlist[i]
                 //  An out-of-range iterator is assigned end()
-                inline void operator=(const iteratorBase&);
+                inline void operator=(const iteratorBase& iter);
 
                 //- Return value
                 inline unsigned int operator*() const;
@@ -571,24 +571,24 @@ public:
                 //- Construct from iterator base, eg iter(packedlist[i])
                 //  but also  "const_iterator iter = packedlist[i];"
                 //  An out-of-range iterator is assigned cend()
-                inline const_iterator(const iteratorBase&);
+                inline const_iterator(const iteratorBase& iter);
 
                 //- Construct from base list and position index
-                inline const_iterator(const PackedList*, const label);
+                inline const_iterator(const PackedList* lst, const label i);
 
                 //- Construct from iterator
-                inline const_iterator(const iterator&);
+                inline const_iterator(const iterator& iter);
 
 
             // Member operators
 
                 //- Compare positions (not values)
-                inline bool operator==(const iteratorBase&) const;
-                inline bool operator!=(const iteratorBase&) const;
+                inline bool operator==(const iteratorBase& iter) const;
+                inline bool operator!=(const iteratorBase& iter) const;
 
                 //- Assign from iteratorBase or derived
                 //  eg, iter = packedlist[i] or even iter = list.begin()
-                inline void operator=(const iteratorBase&);
+                inline void operator=(const iteratorBase& iter);
 
                 //- Return referenced value directly
                 inline unsigned int operator*() const;
@@ -621,14 +621,14 @@ public:
 
         friend Istream& operator>> <nBits>
         (
-            Istream&,
-            PackedList<nBits>&
+            Istream& is,
+            PackedList<nBits>& lst
         );
 
         friend Ostream& operator<< <nBits>
         (
-            Ostream&,
-            const PackedList<nBits>&
+            Ostream& os,
+            const PackedList<nBits>& lst
         );
 };
 
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H b/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H
index 7849d5a792d..ad136b903fa 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H
@@ -267,7 +267,7 @@ Foam::PackedList<nBits>::clone() const
 template<unsigned nBits>
 inline Foam::PackedList<nBits>::iteratorBase::iteratorBase()
 :
-    list_(0),
+    list_(nullptr),
     index_(0)
 {}
 
@@ -1002,6 +1002,12 @@ inline bool Foam::PackedList<nBits>::set
     }
     else if (i >= size_)
     {
+        if (!val)
+        {
+            // Same as unset out-of-bounds = noop
+            return false;
+        }
+
         // Lazy evaluation - increase size on assigment
         resize(i + 1);
     }
@@ -1013,7 +1019,7 @@ inline bool Foam::PackedList<nBits>::set
 template<unsigned nBits>
 inline bool Foam::PackedList<nBits>::unset(const label i)
 {
-    // lazy evaluation - ignore out-of-bounds
+    // Unset out-of-bounds = noop
     if (i < 0 || i >= size_)
     {
         return false;
-- 
GitLab


From fb4971644ffb7387069ab9d19cf9634a6cb0d202 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 10:30:55 +0200
Subject: [PATCH 254/277] ENH: cleanup of NamedEnum

- Remove the unused enums() method since it delivers wholly unreliable
  results. It is not guaranteed to cover the full enumeration range,
  but only the listed names.

- Remove the unused strings() method.
  Duplicated functionality of the words(), but was never used.

- Change access of words() method from static to object.
  Better code isolation. Permits the constructor to take over
  as the single point of failure for bad input.

- Add values() method

- do not expose internal (HashTable) lookup since it makes it more
  difficult to enforce constness and the implementation detail should
  not be exposed. However leave toc() and sortedToc() for the interface.

STYLE: relocated NamedEnum under primitives (was containers)

- internal typedef as 'value_type' for some consistency with STL conventions
---
 applications/test/NamedEnum/Test-NamedEnum.C  |  85 ++++------
 .../DelaunayMeshToolsTemplates.C              |  21 +--
 .../preProcessing/mapFieldsPar/mapFieldsPar.C |   2 +-
 .../enums}/NamedEnum.C                        | 158 +++++++++++-------
 .../enums}/NamedEnum.H                        | 111 +++++++-----
 src/OpenFOAM/primitives/enums/NamedEnumI.H    |  81 +++++++++
 .../temperatureCoupledBase.C                  |  10 +-
 src/conversion/fire/FIREMeshReader.C          |   2 +-
 src/conversion/fire/FIREMeshWriter.C          |   2 +-
 .../functionObjects/volRegion/volRegion.C     |   2 +-
 .../surfaceFieldValue/surfaceFieldValue.C     |   5 +-
 .../field/mapFields/mapFields.C               |   6 +-
 .../utilities/writeObjects/writeObjects.C     |   3 +-
 src/fvOptions/cellSetOption/cellSetOption.C   |   6 +-
 ...irectionalPressureGradientExplicitSource.C |   2 +-
 .../derived/rotorDiskSource/rotorDiskSource.C |   3 +-
 .../mappedPolyPatch/mappedPatchBase.C         |   4 +-
 .../energyRegionCoupledFvPatchScalarField.C   |   2 +-
 .../boundaryRadiationPropertiesPatch.C        |   7 +-
 19 files changed, 311 insertions(+), 201 deletions(-)
 rename src/OpenFOAM/{containers/NamedEnum => primitives/enums}/NamedEnum.C (58%)
 rename src/OpenFOAM/{containers/NamedEnum => primitives/enums}/NamedEnum.H (66%)
 create mode 100644 src/OpenFOAM/primitives/enums/NamedEnumI.H

diff --git a/applications/test/NamedEnum/Test-NamedEnum.C b/applications/test/NamedEnum/Test-NamedEnum.C
index 079938b6b79..4fc20d182c2 100644
--- a/applications/test/NamedEnum/Test-NamedEnum.C
+++ b/applications/test/NamedEnum/Test-NamedEnum.C
@@ -34,15 +34,15 @@ class namedEnumTest
 {
 public:
 
-    enum option
+    enum class option
     {
-        a,
-        b,
-        c,
-        d
+        A,
+        B,
+        C,
+        D
     };
 
-    static const Foam::NamedEnum<option, 4> namedEnum;
+    static const Foam::NamedEnum<option, 4> optionNamed;
 };
 
 
@@ -52,10 +52,10 @@ const char* Foam::NamedEnum<namedEnumTest::option, 4>::names[] =
     "a",
     "b",
     "c",
-    "d"
+    "d",
 };
 
-const Foam::NamedEnum<namedEnumTest::option, 4> namedEnumTest::namedEnum;
+const Foam::NamedEnum<namedEnumTest::option, 4> namedEnumTest::optionNamed;
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -69,56 +69,43 @@ int main(int argc, char *argv[])
     dictionary testDict;
     testDict.add("lookup1", "c");
 
-    Info<< "enums: " << options << nl;
-
-    Info<< "loop over enums (as list):" << nl;
-    forAll(options, i)
-    {
-        const namedEnumTest::option& opt = options[i];
-
-        Info<< "option[" << opt
-            << "] = '" << namedEnumTest::namedEnum[opt] << "'" << nl;
-    }
-
-    Info<< "loop over enums (C++11 for range):" << nl;
-    for (const auto& opt : options)
-    {
-        Info<< "option[" << opt
-            << "] = '" << namedEnumTest::namedEnum[opt] << "'" << nl;
-    }
-
     Info<< nl
-        << namedEnumTest::namedEnum["a"] << nl
-        << namedEnumTest::namedEnum[namedEnumTest::a] << nl;
+        << int(namedEnumTest::optionNamed["a"]) << nl
+        << namedEnumTest::optionNamed[namedEnumTest::option::A] << nl;
 
     Info<< "--- test dictionary lookup ---" << endl;
     {
         Info<< "dict: " << testDict << endl;
 
-        namedEnumTest::option gotOpt =
-            namedEnumTest::namedEnum.lookupOrDefault
-            (
-                "test",
-                testDict,
-                namedEnumTest::option::a
-            );
-
-        Info<< "got: " << gotOpt << endl;
-
-        gotOpt = namedEnumTest::namedEnum.lookupOrDefault
-        (
-            "lookup1",
-            testDict,
-            namedEnumTest::option::a
-        );
-
-        Info<< "got: " << gotOpt << endl;
+        Info<< "got: "
+            <<  int
+                (
+                    namedEnumTest::optionNamed.lookupOrDefault
+                    (
+                        "notFound",
+                        testDict,
+                        namedEnumTest::option::A
+                    )
+                )
+            << nl;
+
+        Info<< "got: "
+            <<  int
+                (
+                    namedEnumTest::optionNamed.lookupOrDefault
+                    (
+                        "lookup1",
+                        testDict,
+                        namedEnumTest::option::A
+                    )
+                )
+            << nl;
     }
 
-    Info<< "--- test read construction ---" << endl;
+    Info<< "--- test read ---" << endl;
 
-    namedEnumTest::option dummy(namedEnumTest::namedEnum.read(Sin));
-    Info<< namedEnumTest::namedEnum[dummy] << endl;
+    namedEnumTest::option dummy(namedEnumTest::optionNamed.read(Sin));
+    Info<< namedEnumTest::optionNamed[dummy] << endl;
 
     Info<< "End\n" << endl;
 
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/DelaunayMeshTools/DelaunayMeshToolsTemplates.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/DelaunayMeshTools/DelaunayMeshToolsTemplates.C
index ed6818dd39b..da9f4ce3ed0 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/DelaunayMeshTools/DelaunayMeshToolsTemplates.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/DelaunayMeshTools/DelaunayMeshToolsTemplates.C
@@ -44,22 +44,9 @@ void Foam::DelaunayMeshTools::writeOBJ
     OFstream str(fName);
 
     Pout<< nl
-        << "Writing points of types:" << nl;
-
-    forAllConstIter
-    (
-        HashTable<int>,
-        indexedVertexEnum::vertexTypeNames_,
-        iter
-    )
-    {
-        if (iter() >= startPointType && iter() <= endPointType)
-        {
-            Pout<< "    " << iter.key() << nl;
-        }
-    }
-
-    Pout<< "to " << str.name() << endl;
+        << "Writing points of types ("
+        << int(startPointType) << "-" << int(endPointType)
+        << ") to " << str.name() << endl;
 
     for
     (
@@ -265,7 +252,7 @@ void Foam::DelaunayMeshTools::drawDelaunayCell
         << "f " << 1 + offset << " " << 4 + offset << " " << 3 + offset << nl
         << "f " << 1 + offset << " " << 2 + offset << " " << 4 + offset << endl;
 
-//    os  << "# cicumcentre " << endl;
+//    os  << "# circumcentre " << endl;
 
 //    meshTools::writeOBJ(os, c->dual());
 
diff --git a/applications/utilities/preProcessing/mapFieldsPar/mapFieldsPar.C b/applications/utilities/preProcessing/mapFieldsPar/mapFieldsPar.C
index 43caab7dcc4..d6df8f1a168 100644
--- a/applications/utilities/preProcessing/mapFieldsPar/mapFieldsPar.C
+++ b/applications/utilities/preProcessing/mapFieldsPar/mapFieldsPar.C
@@ -229,7 +229,7 @@ int main(int argc, char *argv[])
 
 
     word patchMapMethod;
-    if (meshToMesh::interpolationMethodNames_.found(mapMethod))
+    if (meshToMesh::interpolationMethodNames_.hasEnum(mapMethod))
     {
         // Lookup corresponding AMI method
         meshToMesh::interpolationMethod method =
diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C b/src/OpenFOAM/primitives/enums/NamedEnum.C
similarity index 58%
rename from src/OpenFOAM/containers/NamedEnum/NamedEnum.C
rename to src/OpenFOAM/primitives/enums/NamedEnum.C
index 0f5e05630f7..7b5cc701de3 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C
+++ b/src/OpenFOAM/primitives/enums/NamedEnum.C
@@ -25,46 +25,25 @@ License
 
 #include "NamedEnum.H"
 #include "dictionary.H"
-
-// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
-
-template<class Enum, int nEnum>
-template<class StringType>
-Foam::List<StringType> Foam::NamedEnum<Enum, nEnum>::getNamesList()
-{
-    List<StringType> lst(nEnum);
-
-    label count = 0;
-    for (int enumi=0; enumi < nEnum; ++enumi)
-    {
-        if (names[enumi] && names[enumi][0])
-        {
-            lst[count++] = names[enumi];
-        }
-    }
-
-    lst.setSize(count);
-    return lst;
-}
-
+#include "stdFoam.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class Enum, int nEnum>
-Foam::NamedEnum<Enum, nEnum>::NamedEnum()
+template<class EnumType, int nEnum>
+Foam::NamedEnum<EnumType, nEnum>::NamedEnum()
 :
-    table_type(2*nEnum)
+    lookup_(2*nEnum)
 {
     for (int enumi=0; enumi < nEnum; ++enumi)
     {
         if (names[enumi] && names[enumi][0])
         {
-            insert(names[enumi], enumi);
+            lookup_.insert(names[enumi], enumi);
         }
         else
         {
             // Bad name - generate error message
-            stringList goodNames(enumi);
+            List<string> goodNames(enumi);
 
             for (int i = 0; i < enumi; ++i)
             {
@@ -74,7 +53,7 @@ Foam::NamedEnum<Enum, nEnum>::NamedEnum()
             FatalErrorInFunction
                 << "Illegal enumeration name at position " << enumi << nl
                 << "after entries " << goodNames << nl
-                << "Possibly your NamedEnum<Enum, nEnum>::names array"
+                << "Possibly your NamedEnum<EnumType, nEnum>::names array"
                 << " is not of size " << nEnum << endl
                 << abort(FatalError);
         }
@@ -84,57 +63,93 @@ Foam::NamedEnum<Enum, nEnum>::NamedEnum()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-template<class Enum, int nEnum>
-Enum Foam::NamedEnum<Enum, nEnum>::read(Istream& is) const
+template<class EnumType, int nEnum>
+Foam::wordList Foam::NamedEnum<EnumType, nEnum>::words() const
 {
-    const word enumName(is);
-    table_type::const_iterator iter = find(enumName);
+    List<word> lst(nEnum);
 
-    if (!iter.found())
+    label count = 0;
+    for (int enumi=0; enumi < nEnum; ++enumi)
     {
-        FatalIOErrorInFunction(is)
-            << enumName << " is not in enumeration: "
-            << sortedToc() << exit(FatalIOError);
+        if (names[enumi] && names[enumi][0])
+        {
+            lst[count++] = names[enumi];
+        }
+    }
+
+    lst.setSize(count);
+    return lst;
+}
+
+
+template<class EnumType, int nEnum>
+Foam::List<int> Foam::NamedEnum<EnumType, nEnum>::values() const
+{
+    List<int> lst(nEnum);
+
+    label count = 0;
+    for (int enumi=0; enumi < nEnum; ++enumi)
+    {
+        if (names[enumi] && names[enumi][0])
+        {
+            auto iter = lookup_.cfind(names[enumi]);
+
+            if (iter.found())
+            {
+                lst[count++] = iter.object();
+            }
+        }
     }
 
-    return Enum(iter.object());
+    lst.setSize(count);
+    return lst;
 }
 
 
-template<class Enum, int nEnum>
-void Foam::NamedEnum<Enum, nEnum>::write(const Enum e, Ostream& os) const
+template<class EnumType, int nEnum>
+bool Foam::NamedEnum<EnumType, nEnum>::hasName(const EnumType e) const
 {
-    os  << names[int(e)];
+    const int enumValue(e);
+
+    forAllConstIters(lookup_, iter)
+    {
+        if (iter.object() == enumValue)
+        {
+            return true;
+        }
+    }
+    return false;
 }
 
 
-template<class Enum, int nEnum>
-Enum Foam::NamedEnum<Enum, nEnum>::lookup
+template<class EnumType, int nEnum>
+EnumType Foam::NamedEnum<EnumType, nEnum>::lookup
 (
     const word& key,
     const dictionary& dict
 ) const
 {
     const word enumName(dict.lookup(key));
-    table_type::const_iterator iter = find(enumName);
+    auto iter = lookup_.cfind(enumName);
 
     if (!iter.found())
     {
         FatalIOErrorInFunction(dict)
             << enumName << " is not in enumeration: "
-            << sortedToc() << exit(FatalIOError);
+            << lookup_.sortedToc() << nl
+            << exit(FatalIOError);
     }
 
-    return Enum(iter.object());
+    return EnumType(iter.object());
 }
 
 
-template<class Enum, int nEnum>
-Enum Foam::NamedEnum<Enum, nEnum>::lookupOrDefault
+template<class EnumType, int nEnum>
+EnumType Foam::NamedEnum<EnumType, nEnum>::lookupOrDefault
 (
     const word& key,
     const dictionary& dict,
-    const enum_type deflt
+    const EnumType deflt
 ) const
 {
     if (dict.found(key))
@@ -148,36 +163,49 @@ Enum Foam::NamedEnum<Enum, nEnum>::lookupOrDefault
 }
 
 
-template<class Enum, int nEnum>
-Foam::List<Enum> Foam::NamedEnum<Enum, nEnum>::enums()
+template<class EnumType, int nEnum>
+EnumType Foam::NamedEnum<EnumType, nEnum>::read(Istream& is) const
 {
-    List<Enum> lst(nEnum);
+    const word enumName(is);
+    auto iter = lookup_.cfind(enumName);
 
-    label count = 0;
-    for (int enumi = 0; enumi < nEnum; ++enumi)
+    if (!iter.found())
     {
-        if (names[enumi] && names[enumi][0])
-        {
-            lst[count++] = Enum(enumi);
-        }
+        FatalIOErrorInFunction(is)
+            << enumName << " is not in enumeration: "
+            << lookup_.sortedToc() << nl
+            << exit(FatalIOError);
     }
 
-    lst.setSize(count);
-    return lst;
+    return EnumType(iter.object());
 }
 
 
-template<class Enum, int nEnum>
-Foam::stringList Foam::NamedEnum<Enum, nEnum>::strings()
+template<class EnumType, int nEnum>
+void Foam::NamedEnum<EnumType, nEnum>::write
+(
+    const EnumType e,
+    Ostream& os
+) const
 {
-    return getNamesList<string>();
+    const int idx = int(e);
+    if (idx >= 0 && idx < nEnum)
+    {
+        os  << names[idx];
+    }
 }
 
 
-template<class Enum, int nEnum>
-Foam::wordList Foam::NamedEnum<Enum, nEnum>::words()
+// * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
+
+template<class EnumType, int nEnum>
+Foam::Ostream& Foam::operator<<
+(
+    Ostream& os,
+    const NamedEnum<EnumType, nEnum>& wrapped
+)
 {
-    return getNamesList<word>();
+    return wrapped.lookup_.writeKeys(os, 10);
 }
 
 
diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H b/src/OpenFOAM/primitives/enums/NamedEnum.H
similarity index 66%
rename from src/OpenFOAM/containers/NamedEnum/NamedEnum.H
rename to src/OpenFOAM/primitives/enums/NamedEnum.H
index 0c1c0826fa3..13cff4eb44b 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
+++ b/src/OpenFOAM/primitives/enums/NamedEnum.H
@@ -25,9 +25,8 @@ Class
     Foam::NamedEnum
 
 Description
-    A NamedEnum is a wrapper around a static list of names that represent
-    a particular enumeration. Internally it uses a HashTable for quicker
-    lookups.
+    A NamedEnum is a wrapper around a list of names that represent
+    particular enumeration values.
 
 SourceFiles
     NamedEnum.C
@@ -38,7 +37,6 @@ SourceFiles
 #define NamedEnum_H
 
 #include "HashTable.H"
-#include "stringList.H"
 #include "wordList.H"
 #include <type_traits>
 
@@ -46,32 +44,31 @@ SourceFiles
 
 namespace Foam
 {
+// Forward declarations
 class dictionary;
+template<class EnumType, int nEnum> class NamedEnum;
+
+template<class EnumType, int nEnum>
+Ostream& operator<<(Ostream& os, const NamedEnum<EnumType, nEnum>& wrapped);
 
-// Forward declaration
-template<class Enum, int> class NamedEnum;
 
 /*---------------------------------------------------------------------------*\
                           Class NamedEnum Declaration
 \*---------------------------------------------------------------------------*/
 
-template<class Enum, int nEnum>
+template<class EnumType, int nEnum>
 class NamedEnum
-:
-    public HashTable<int>
 {
     //- The nEnum must be positive (non-zero)
     static_assert(nEnum > 0, "nEnum must be positive (non-zero)");
 
-    //- The type of HashTable used for the lookup.
-    typedef HashTable<int> table_type;
+    // Private Member Data
 
+        //- The values for the enum
+        HashTable<int> lookup_;
 
-    // Private Member Functions
 
-        //- The names as a list of strings
-        template<class StringType>
-        static List<StringType> getNamesList();
+    // Private Member Functions
 
         //- Disallow default bitwise copy construct
         NamedEnum(const NamedEnum&) = delete;
@@ -83,12 +80,12 @@ class NamedEnum
 public:
 
     //- The type of enumeration wrapped by NamedEnum
-    typedef Enum enum_type;
+    typedef EnumType value_type;
 
 
     // Static data members
 
-        //- The set of names corresponding to the enumeration Enum
+        //- The set of names corresponding to the enumeration EnumType
         static const char* names[nEnum];
 
 
@@ -100,17 +97,39 @@ public:
 
     // Member Functions
 
-        //- Read a word from Istream and return the corresponding
-        //  enumeration element
-        enum_type read(Istream& is) const;
+      // Access
 
-        //- Write the name representation of the enumeration to an Ostream
-        void write(const enum_type e, Ostream& os) const;
+        //- The number of lookup names for the enumeration
+        inline label size() const;
+
+        //- The list of enum names
+        inline wordList toc() const;
+
+        //- The sorted list of enum names
+        inline wordList sortedToc() const;
+
+        //- The list of enum names, in construction order
+        wordList words() const;
+
+        //- The list of enum values, in construction order
+        List<int> values() const;
+
+
+      // Query
+
+        //- Test if there is an enumeration corresponding to the given name.
+        inline bool hasEnum(const word& enumName) const;
+
+        //- Test if there is a name corresponding to the given enumeration.
+        bool hasName(const EnumType e) const;
+
+
+      // Lookup
 
         //- Lookup the key in the dictionary and return the corresponding
         // enumeration element based on its name.
         // Fatal if anything is incorrect.
-        enum_type lookup
+        EnumType lookup
         (
             const word& key,
             const dictionary& dict
@@ -120,42 +139,42 @@ public:
         //  enumeration element based on its name.
         //  Return the default value if the key was not found in the dictionary.
         //  Fatal if enumerated name was incorrect.
-        enum_type lookupOrDefault
+        EnumType lookupOrDefault
         (
             const word& key,
             const dictionary& dict,
-            const enum_type deflt
+            const EnumType deflt
         ) const;
 
-        //- List of enumerations
-        static List<enum_type> enums();
 
-        //- The set of names as a list of strings
-        static stringList strings();
+      // IO
+
+        //- Read a word from Istream and return the corresponding enumeration
+        EnumType read(Istream& is) const;
 
-        //- The set of names as a list of words
-        static wordList words();
+        //- Write the name representation of the enumeration to an Ostream
+        //  A noop if the enumeration wasn't found.
+        void write(const EnumType e, Ostream& os) const;
 
 
     // Member Operators
 
         //- Return the enumeration element corresponding to the given name
-        inline const enum_type operator[](const char* name) const
-        {
-            return enum_type(table_type::operator[](name));
-        }
-
-        //- Return the enumeration element corresponding to the given name
-        inline const enum_type operator[](const word& name) const
-        {
-            return enum_type(table_type::operator[](name));
-        }
+        inline const EnumType operator[](const word& name) const;
 
         //- Return the name of the given enumeration element
-        inline const char* operator[](const enum_type e) const
-        {
-            return names[int(e)];
-        }
+        inline const char* operator[](const EnumType e) const;
+
+
+    // IOstream operators
+
+        //- Write names to Ostream, as per writeKeys() with shortListLen=10
+        friend Ostream& operator<< <EnumType, nEnum>
+        (
+            Ostream& os,
+            const NamedEnum<EnumType, nEnum>& wrapped
+        );
+
 };
 
 
@@ -165,6 +184,8 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+#include "NamedEnumI.H"
+
 #ifdef NoRepository
     #include "NamedEnum.C"
 #endif
diff --git a/src/OpenFOAM/primitives/enums/NamedEnumI.H b/src/OpenFOAM/primitives/enums/NamedEnumI.H
new file mode 100644
index 00000000000..2e7c91b10d3
--- /dev/null
+++ b/src/OpenFOAM/primitives/enums/NamedEnumI.H
@@ -0,0 +1,81 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class EnumType, int nEnum>
+inline Foam::label Foam::NamedEnum<EnumType, nEnum>::size() const
+{
+    return lookup_.size();
+}
+
+
+template<class EnumType, int nEnum>
+inline Foam::wordList Foam::NamedEnum<EnumType, nEnum>::toc() const
+{
+    return lookup_.toc();
+}
+
+
+template<class EnumType, int nEnum>
+inline Foam::wordList Foam::NamedEnum<EnumType, nEnum>::sortedToc() const
+{
+    return lookup_.sortedToc();
+}
+
+
+template<class EnumType, int nEnum>
+inline bool Foam::NamedEnum<EnumType, nEnum>::hasEnum
+(
+    const word& enumName
+) const
+{
+    return lookup_.found(enumName);
+}
+
+
+// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+
+template<class EnumType, int nEnum>
+inline const EnumType Foam::NamedEnum<EnumType, nEnum>::operator[]
+(
+    const word& name
+) const
+{
+    return EnumType(lookup_[name]);
+}
+
+
+template<class EnumType, int nEnum>
+inline const char* Foam::NamedEnum<EnumType, nEnum>::operator[]
+(
+    const EnumType e
+) const
+{
+    return names[int(e)];
+}
+
+
+// ************************************************************************* //
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
index 8a7027a59c9..50c15be701b 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
@@ -111,7 +111,7 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
         {
             typedef compressible::turbulenceModel turbulenceModel;
 
-            word turbName(turbulenceModel::propertiesName);
+            const word turbName(turbulenceModel::propertiesName);
 
             if
             (
@@ -205,8 +205,8 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
                     << " on mesh " << mesh.name() << " patch " << patch_.name()
                     << nl
                     << "Please set 'kappaMethod' to one of "
-                    << KMethodTypeNames_.toc()
-                    << " and 'kappa' to the name of the volScalar"
+                    << flatOutput(KMethodTypeNames_.sortedToc()) << nl
+                    << "and 'kappa' to the name of the volScalar"
                     << " or volSymmTensor field (if kappaMethod=lookup)"
                     << exit(FatalError);
             }
@@ -219,8 +219,8 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
             FatalErrorInFunction
                 << "Unimplemented method " << KMethodTypeNames_[method_] << nl
                 << "Please set 'kappaMethod' to one of "
-                << KMethodTypeNames_.toc()
-                << " and 'kappa' to the name of the volScalar"
+                << flatOutput(KMethodTypeNames_.sortedToc()) << nl
+                << "and 'kappa' to the name of the volScalar"
                 << " or volSymmTensor field (if kappaMethod=lookup)"
                 << exit(FatalError);
         }
diff --git a/src/conversion/fire/FIREMeshReader.C b/src/conversion/fire/FIREMeshReader.C
index e79d70b060d..c57a1886158 100644
--- a/src/conversion/fire/FIREMeshReader.C
+++ b/src/conversion/fire/FIREMeshReader.C
@@ -375,7 +375,7 @@ bool Foam::fileFormats::FIREMeshReader::readGeometry(const scalar scaleFactor)
     IOstream::streamFormat fmt = IOstream::ASCII;
 
     const word ext = geometryFile_.ext();
-    bool supported = FIRECore::file3dExtensions.found(ext);
+    bool supported = FIRECore::file3dExtensions.hasEnum(ext);
     if (supported)
     {
         FIRECore::fileExt3d fireFileType = FIRECore::file3dExtensions[ext];
diff --git a/src/conversion/fire/FIREMeshWriter.C b/src/conversion/fire/FIREMeshWriter.C
index 29746005d07..9c6146c3e00 100644
--- a/src/conversion/fire/FIREMeshWriter.C
+++ b/src/conversion/fire/FIREMeshWriter.C
@@ -278,7 +278,7 @@ bool Foam::fileFormats::FIREMeshWriter::write(const fileName& meshName) const
     {
         const word ext = baseName.ext();
 
-        if (FIRECore::file3dExtensions.found(ext))
+        if (FIRECore::file3dExtensions.hasEnum(ext))
         {
             FIRECore::fileExt3d fireFileType = FIRECore::file3dExtensions[ext];
             if (fireFileType == FIRECore::POLY_ASCII)
diff --git a/src/finiteVolume/functionObjects/volRegion/volRegion.C b/src/finiteVolume/functionObjects/volRegion/volRegion.C
index 3a0dcede22b..07d4c1775ef 100644
--- a/src/finiteVolume/functionObjects/volRegion/volRegion.C
+++ b/src/finiteVolume/functionObjects/volRegion/volRegion.C
@@ -143,7 +143,7 @@ bool Foam::functionObjects::volRegion::read
         {
             FatalIOErrorInFunction(dict)
                 << "Unknown region type. Valid region types are:"
-                << regionTypeNames_
+                << regionTypeNames_.toc()
                 << exit(FatalIOError);
         }
     }
diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
index f28944d9959..3d39aa4655d 100644
--- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
+++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C
@@ -564,9 +564,10 @@ void Foam::functionObjects::fieldValues::surfaceFieldValue::initialise
         {
             FatalErrorInFunction
                 << type() << " " << name() << ": "
-                << regionTypeNames_[regionType_] << "(" << regionName_ << "):"
+                << int(regionType_) << "(" << regionName_ << "):"
                 << nl << "    Unknown region type. Valid region types are:"
-                << regionTypeNames_.sortedToc() << nl << exit(FatalError);
+                << regionTypeNames_ << nl
+                << exit(FatalError);
         }
     }
 
diff --git a/src/functionObjects/field/mapFields/mapFields.C b/src/functionObjects/field/mapFields/mapFields.C
index 00a387ad6e3..f0d250f659d 100644
--- a/src/functionObjects/field/mapFields/mapFields.C
+++ b/src/functionObjects/field/mapFields/mapFields.C
@@ -71,14 +71,14 @@ void Foam::functionObjects::mapFields::createInterpolation
         )
     );
     const fvMesh& mapRegion = mapRegionPtr_();
-    word mapMethodName(dict.lookup("mapMethod"));
-    if (!meshToMesh::interpolationMethodNames_.found(mapMethodName))
+    const word mapMethodName(dict.lookup("mapMethod"));
+    if (!meshToMesh::interpolationMethodNames_.hasEnum(mapMethodName))
     {
         FatalErrorInFunction
             << type() << " " << name() << ": unknown map method "
             << mapMethodName << nl
             << "Available methods include: "
-            << meshToMesh::interpolationMethodNames_.sortedToc()
+            << meshToMesh::interpolationMethodNames_
             << exit(FatalError);
     }
 
diff --git a/src/functionObjects/utilities/writeObjects/writeObjects.C b/src/functionObjects/utilities/writeObjects/writeObjects.C
index aad0e40554e..eade9464024 100644
--- a/src/functionObjects/utilities/writeObjects/writeObjects.C
+++ b/src/functionObjects/utilities/writeObjects/writeObjects.C
@@ -196,7 +196,8 @@ bool Foam::functionObjects::writeObjects::write()
                 FatalErrorInFunction
                     << "Unknown writeOption "
                     << writeOptionNames_[writeOption_]
-                    << ". Valid writeOption types are" << writeOptionNames_
+                    << ". Valid writeOption types are "
+                    << writeOptionNames_
                     << exit(FatalError);
             }
         }
diff --git a/src/fvOptions/cellSetOption/cellSetOption.C b/src/fvOptions/cellSetOption/cellSetOption.C
index 665b98343df..929b457a7ee 100644
--- a/src/fvOptions/cellSetOption/cellSetOption.C
+++ b/src/fvOptions/cellSetOption/cellSetOption.C
@@ -82,7 +82,8 @@ void Foam::fv::cellSetOption::setSelection(const dictionary& dict)
             FatalErrorInFunction
                 << "Unknown selectionMode "
                 << selectionModeTypeNames_[selectionMode_]
-                << ". Valid selectionMode types are" << selectionModeTypeNames_
+                << ". Valid selectionMode types are "
+                << selectionModeTypeNames_
                 << exit(FatalError);
         }
     }
@@ -186,7 +187,8 @@ void Foam::fv::cellSetOption::setCellSet()
             FatalErrorInFunction
                 << "Unknown selectionMode "
                 << selectionModeTypeNames_[selectionMode_]
-                << ". Valid selectionMode types are" << selectionModeTypeNames_
+                << ". Valid selectionMode types are "
+                << selectionModeTypeNames_
                 << exit(FatalError);
         }
     }
diff --git a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
index 7607aacf793..e0c0549f2fb 100644
--- a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
+++ b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
@@ -236,7 +236,7 @@ directionalPressureGradientExplicitSource
             << "Did not find mode " << model_
             << nl
             << "Please set 'model' to one of "
-            << PressureDropModelNames_.toc()
+            << PressureDropModelNames_
             << exit(FatalError);
     }
 
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C
index 129d5b16998..bf8594073bb 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C
+++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C
@@ -376,7 +376,8 @@ void Foam::fv::rotorDiskSource::createCoordinateSystem()
             FatalErrorInFunction
                 << "Unknown geometryMode " << geometryModeTypeNames_[gm]
                 << ". Available geometry modes include "
-                << geometryModeTypeNames_ << exit(FatalError);
+                << geometryModeTypeNames_
+                << exit(FatalError);
         }
     }
 
diff --git a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C
index 1972082d788..ac6be7983de 100644
--- a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C
+++ b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C
@@ -1070,7 +1070,7 @@ Foam::mappedPatchBase::mappedPatchBase
     {
         offsetMode_ = offsetModeNames_.read(dict.lookup("offsetMode"));
 
-        switch(offsetMode_)
+        switch (offsetMode_)
         {
             case UNIFORM:
             {
@@ -1109,7 +1109,7 @@ Foam::mappedPatchBase::mappedPatchBase
         (
             dict
         )   << "Please supply the offsetMode as one of "
-            << NamedEnum<offsetMode, 3>::words()
+            << offsetModeNames_
             << exit(FatalIOError);
     }
 }
diff --git a/src/regionCoupled/derivedFvPatchFields/energyRegionCoupled/energyRegionCoupledFvPatchScalarField.C b/src/regionCoupled/derivedFvPatchFields/energyRegionCoupled/energyRegionCoupledFvPatchScalarField.C
index 2935936e8bb..72afb55582a 100644
--- a/src/regionCoupled/derivedFvPatchFields/energyRegionCoupled/energyRegionCoupledFvPatchScalarField.C
+++ b/src/regionCoupled/derivedFvPatchFields/energyRegionCoupled/energyRegionCoupledFvPatchScalarField.C
@@ -134,7 +134,7 @@ kappa() const
                     << " on mesh " << this->db().name() << " patch "
                     << patch().name()
                     << " could not find a method in. Methods are:  "
-                    << methodTypeNames_.toc()
+                    << methodTypeNames_
                     << " Not turbulenceModel or thermophysicalProperties"
                     << " were found"
                     << exit(FatalError);
diff --git a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C
index d5785cbbd98..369c9788a24 100644
--- a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C
+++ b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C
@@ -222,7 +222,8 @@ Foam::radiation::boundaryRadiationPropertiesPatch::emissivity
         default:
         {
             FatalErrorInFunction
-                << "Please set 'mode' to one of " << methodTypeNames_.toc()
+                << "Please set 'mode' to one of "
+                << methodTypeNames_
                 << exit(FatalError);
         }
         break;
@@ -302,7 +303,7 @@ Foam::radiation::boundaryRadiationPropertiesPatch::absorptivity
             FatalErrorInFunction
                 << "Unimplemented method " << method_ << endl
                 << "Please set 'mode' to one of "
-                << methodTypeNames_.toc()
+                << methodTypeNames_
                 << exit(FatalError);
         }
         break;
@@ -382,7 +383,7 @@ Foam::radiation::boundaryRadiationPropertiesPatch::transmissivity
             FatalErrorInFunction
                 << "Unimplemented method " << method_ << endl
                 << "Please set 'mode' to one of "
-                << methodTypeNames_.toc()
+                << methodTypeNames_
                 << exit(FatalError);
         }
         break;
-- 
GitLab


From c6c79ab313a20e8446a9ae5fbcf39fe8748ed9e7 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 11:07:39 +0200
Subject: [PATCH 255/277] STYLE: use std::pair (not Tuple2) in conjunction with
 std::initializer_list

- no penalty compared to Tuple2, potential future benefits with C++
  constructor forwarding.
---
 .../conformalVoronoiMesh/conformalVoronoiMeshIO.C     |  9 +++++----
 .../containers/HashTables/HashTable/HashTable.C       | 11 +++++------
 .../containers/HashTables/HashTable/HashTable.H       | 10 +++++-----
 src/OpenFOAM/containers/HashTables/Map/Map.H          |  2 +-
 src/OpenFOAM/global/profiling/profiling.H             |  1 +
 5 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C
index 6b6d10d182c..ee6a7b36622 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C
@@ -900,12 +900,10 @@ void Foam::conformalVoronoiMesh::writeMesh
     mesh.addFvPatches(patches);
 
 
-
     // Add zones to the mesh
     addZones(mesh, cellCentres);
 
 
-
     Info<< indent << "Add pointZones" << endl;
     {
         label sz = mesh.pointZones().size();
@@ -914,6 +912,9 @@ void Foam::conformalVoronoiMesh::writeMesh
 
         forAll(dualMeshPointTypeNames_, typeI)
         {
+            const word& znName =
+                dualMeshPointTypeNames_[dualMeshPointType(typeI)];
+
             forAll(boundaryPts, ptI)
             {
                 const label& bPtType = boundaryPts[ptI];
@@ -928,14 +929,14 @@ void Foam::conformalVoronoiMesh::writeMesh
 
             Info<< incrIndent << indent
                 << "Adding " << bPts.size()
-                << " points of type " << dualMeshPointTypeNames_.words()[typeI]
+                << " points of type " << znName
                 << decrIndent << endl;
 
             mesh.pointZones().append
             (
                 new pointZone
                 (
-                    dualMeshPointTypeNames_.words()[typeI],
+                    znName,
                     bPts,
                     sz + typeI,
                     mesh.pointZones()
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C
index 9bf799d6b34..bc887b7d3b9 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C
@@ -29,7 +29,6 @@ License
 #include "HashTable.H"
 #include "List.H"
 #include "FixedList.H"
-#include "Tuple2.H"
 
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
@@ -112,14 +111,14 @@ Foam::HashTable<T, Key, Hash>::HashTable
 template<class T, class Key, class Hash>
 Foam::HashTable<T, Key, Hash>::HashTable
 (
-    std::initializer_list<Tuple2<Key, T>> lst
+    std::initializer_list<std::pair<Key, T>> lst
 )
 :
     HashTable<T, Key, Hash>(2*lst.size())
 {
-    for (const Tuple2<Key, T>& pair : lst)
+    for (const auto& pair : lst)
     {
-        insert(pair.first(), pair.second());
+        insert(pair.first, pair.second);
     }
 }
 
@@ -889,7 +888,7 @@ void Foam::HashTable<T, Key, Hash>::operator=
 template<class T, class Key, class Hash>
 void Foam::HashTable<T, Key, Hash>::operator=
 (
-    std::initializer_list<Tuple2<Key, T>> lst
+    std::initializer_list<std::pair<Key, T>> lst
 )
 {
     // Could be zero-sized from a previous transfer()
@@ -904,7 +903,7 @@ void Foam::HashTable<T, Key, Hash>::operator=
 
     for (const auto& pair : lst)
     {
-        insert(pair.first(), pair.second());
+        insert(pair.first, pair.second);
     }
 }
 
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
index 3f9a2df85fc..06635bbac33 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
@@ -62,6 +62,7 @@ SourceFiles
 
 #include <initializer_list>
 #include <iterator>
+#include <utility>
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -73,7 +74,6 @@ namespace Foam
 template<class T> class List;
 template<class T> class UList;
 template<class T, unsigned Size> class FixedList;
-template<class T1, class T2> class Tuple2;
 template<class T, class Key, class Hash> class HashTable;
 
 template<class T, class Key, class Hash>
@@ -212,7 +212,7 @@ private:
 
     // Private data type for table entries
 
-        //- Structure to hold a hashed entry, with a SLList for collisions
+        //- Structure to hold a hashed entry, with a linked-list for collisions
         struct hashedEntry
         {
             //- The lookup key
@@ -224,7 +224,7 @@ private:
             //- Pointer to next hashedEntry in sub-list
             hashedEntry* next_;
 
-            //- Construct from key, next pointer and object
+            //- Construct from key, object, next pointer
             inline hashedEntry(const Key& key, const T& obj, hashedEntry* next);
 
         private:
@@ -296,7 +296,7 @@ public:
         HashTable(const Xfer<HashTable<T, Key, Hash>>& ht);
 
         //- Construct from an initializer list
-        HashTable(std::initializer_list<Tuple2<Key, T>> lst);
+        HashTable(std::initializer_list<std::pair<Key, T>> lst);
 
 
     //- Destructor
@@ -558,7 +558,7 @@ public:
         void operator=(const HashTable<T, Key, Hash>& rhs);
 
         //- Assignment from an initializer list
-        void operator=(std::initializer_list<Tuple2<Key, T>> lst);
+        void operator=(std::initializer_list<std::pair<Key, T>> lst);
 
         //- Equality. Hash tables are equal if the keys and values are equal.
         //  Independent of table storage size and table order.
diff --git a/src/OpenFOAM/containers/HashTables/Map/Map.H b/src/OpenFOAM/containers/HashTables/Map/Map.H
index 4ac6e90e60d..56f59128dd1 100644
--- a/src/OpenFOAM/containers/HashTables/Map/Map.H
+++ b/src/OpenFOAM/containers/HashTables/Map/Map.H
@@ -96,7 +96,7 @@ public:
         {}
 
         //- Construct from an initializer list
-        Map(std::initializer_list<Tuple2<label, T>> map)
+        Map(std::initializer_list<std::pair<label, T>> map)
         :
             parent_type(map)
         {}
diff --git a/src/OpenFOAM/global/profiling/profiling.H b/src/OpenFOAM/global/profiling/profiling.H
index 03a014f48be..26337bcc4e0 100644
--- a/src/OpenFOAM/global/profiling/profiling.H
+++ b/src/OpenFOAM/global/profiling/profiling.H
@@ -54,6 +54,7 @@ SourceFiles
 
 #include "profilingTrigger.H"
 #include "HashPtrTable.H"
+#include "Tuple2.H"
 #include "LIFOStack.H"
 #include "Map.H"
 #include "Time.H"
-- 
GitLab


From 77a5b99e922ef64a008ba43ced74cb6d70a3b1da Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 11:20:49 +0200
Subject: [PATCH 256/277] COMP: Hash.H was not included with HashTable/HashSet

- was only included indirectly via FixedList.H
---
 src/OpenFOAM/containers/HashTables/HashTable/HashTable.H | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
index 06635bbac33..cd50551d5d5 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
@@ -57,6 +57,7 @@ SourceFiles
 #include "uLabel.H"
 #include "word.H"
 #include "Xfer.H"
+#include "Hash.H"
 #include "className.H"
 #include "nullObject.H"
 
-- 
GitLab


From 8afc6cbd86d1285899230f1889e57f61eeda9e58 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 13:13:53 +0200
Subject: [PATCH 257/277] ENH: Enum class as drop-in alternative for NamedEnum

- the NamedEnum wrapper is somewhate too rigid.
  * All enumerated values are contiguous, starting as zero.
  * The implicit one-to-one mapping precludes using it for aliases.
  * For example, perhaps we want to support alternative lookup names for an
    enumeration, or manage an enumeration lookup for a sub-range.
---
 applications/test/Hashing/Test-Hashing.C     |  33 ++-
 applications/test/NamedEnum/Test-NamedEnum.C |  49 +++-
 src/OpenFOAM/primitives/enums/Enum.C         | 238 +++++++++++++++++++
 src/OpenFOAM/primitives/enums/Enum.H         | 220 +++++++++++++++++
 src/OpenFOAM/primitives/enums/EnumI.H        | 103 ++++++++
 5 files changed, 640 insertions(+), 3 deletions(-)
 create mode 100644 src/OpenFOAM/primitives/enums/Enum.C
 create mode 100644 src/OpenFOAM/primitives/enums/Enum.H
 create mode 100644 src/OpenFOAM/primitives/enums/EnumI.H

diff --git a/applications/test/Hashing/Test-Hashing.C b/applications/test/Hashing/Test-Hashing.C
index 0ab7e9a7cb6..4461679d083 100644
--- a/applications/test/Hashing/Test-Hashing.C
+++ b/applications/test/Hashing/Test-Hashing.C
@@ -42,13 +42,44 @@ Description
 
 using namespace Foam;
 
+void infoHashString
+(
+    unsigned modulus,
+    std::initializer_list<std::string> lst
+)
+{
+    if (modulus)
+    {
+        Info<< "basic string hashing (mod " << label(modulus) << ")" << endl;
+
+        for (const auto& str : lst)
+        {
+            Info<<"hash(" << str.c_str() << ")="
+                << (Hash<string>()(str) % modulus) << nl;
+        }
+
+    }
+    else
+    {
+        Info<< "basic string hashing" << nl;
+
+        for (const auto& str : lst)
+        {
+            Info<<"hash(" << str.c_str() << ")="
+                << Hash<string>()(str) << nl;
+        }
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 //  Main program:
 
 int main(int argc, char *argv[])
 {
-    IFstream is("hashingTests");
+    infoHashString(8, {"asdathis1", "adsxf", "hij", "klmpq"});
 
+    IFstream is("hashingTests");
 
     while (is.good())
     {
diff --git a/applications/test/NamedEnum/Test-NamedEnum.C b/applications/test/NamedEnum/Test-NamedEnum.C
index 4fc20d182c2..d0b7f58d79d 100644
--- a/applications/test/NamedEnum/Test-NamedEnum.C
+++ b/applications/test/NamedEnum/Test-NamedEnum.C
@@ -26,6 +26,7 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "NamedEnum.H"
+#include "Enum.H"
 #include "IOstreams.H"
 
 using namespace Foam;
@@ -42,7 +43,19 @@ public:
         D
     };
 
+    enum class otherOption
+    {
+        A,
+        B,
+        C,
+        D
+    };
+
     static const Foam::NamedEnum<option, 4> optionNamed;
+
+    static const Foam::Enum<otherOption> optionEnum;
+
+    static const Foam::Enum<option> optionEnum2;
 };
 
 
@@ -57,14 +70,30 @@ const char* Foam::NamedEnum<namedEnumTest::option, 4>::names[] =
 
 const Foam::NamedEnum<namedEnumTest::option, 4> namedEnumTest::optionNamed;
 
+const Foam::Enum<namedEnumTest::otherOption> namedEnumTest::optionEnum
+{
+    { namedEnumTest::otherOption::A, "a" },
+    { namedEnumTest::otherOption::B, "b" },
+    { namedEnumTest::otherOption::C, "c" },
+    { namedEnumTest::otherOption::D, "d" },
+};
+
+
+const Foam::Enum<namedEnumTest::option> namedEnumTest::optionEnum2
+(
+    namedEnumTest::option::C,
+    { "c", "d" }
+);
+
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 // Main program:
 
 int main(int argc, char *argv[])
 {
-    const List<namedEnumTest::option> options
-        = namedEnumTest::namedEnum.enums();
+    Info<<"NamedEnum: " << namedEnumTest::optionNamed << nl;
+    Info<<"Enum: " << namedEnumTest::optionEnum << nl;
+    Info<<"Enum: " << namedEnumTest::optionEnum2 << nl;
 
     dictionary testDict;
     testDict.add("lookup1", "c");
@@ -73,6 +102,10 @@ int main(int argc, char *argv[])
         << int(namedEnumTest::optionNamed["a"]) << nl
         << namedEnumTest::optionNamed[namedEnumTest::option::A] << nl;
 
+    Info<< nl
+        << int(namedEnumTest::optionEnum["a"]) << nl
+        << namedEnumTest::optionEnum[namedEnumTest::otherOption::A] << nl;
+
     Info<< "--- test dictionary lookup ---" << endl;
     {
         Info<< "dict: " << testDict << endl;
@@ -100,6 +133,18 @@ int main(int argc, char *argv[])
                     )
                 )
             << nl;
+
+        Info<< "got: "
+            <<  int
+                (
+                    namedEnumTest::optionEnum2.lookupOrDefault
+                    (
+                        "lookup1",
+                        testDict,
+                        namedEnumTest::option::A
+                    )
+                )
+            << nl;
     }
 
     Info<< "--- test read ---" << endl;
diff --git a/src/OpenFOAM/primitives/enums/Enum.C b/src/OpenFOAM/primitives/enums/Enum.C
new file mode 100644
index 00000000000..8b4f2100f0d
--- /dev/null
+++ b/src/OpenFOAM/primitives/enums/Enum.C
@@ -0,0 +1,238 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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 "Enum.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class EnumType>
+Foam::label Foam::Enum<EnumType>::getIndex(const word& enumName) const
+{
+    const label n = size();
+    for (label idx=0; idx < n; ++idx)
+    {
+        if (names_[idx] == enumName)
+        {
+            return idx;
+        }
+    }
+
+    return -1;
+}
+
+
+template<class EnumType>
+Foam::label Foam::Enum<EnumType>::getIndex(const EnumType e) const
+{
+    const int val = int(e);
+
+    const label n = size();
+    for (label idx=0; idx < n; ++idx)
+    {
+        if (values_[idx] == val)
+        {
+            return idx;
+        }
+    }
+
+    return -1;
+}
+
+
+template<class EnumType>
+EnumType Foam::Enum<EnumType>::getEnum(const word& enumName) const
+{
+    const label idx = getIndex(enumName);
+
+    if (idx < 0)
+    {
+        FatalErrorInFunction
+            << enumName << " is not in enumeration: "
+            << names_ << exit(FatalError);
+    }
+
+    return EnumType(values_[idx]);
+}
+
+
+template<class EnumType>
+const Foam::word& Foam::Enum<EnumType>::getName(const EnumType e) const
+{
+    const label idx = getIndex(e);
+
+    if (idx < 0)
+    {
+        return word::null;
+    }
+    else
+    {
+        return names_[idx];
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class EnumType>
+Foam::Enum<EnumType>::Enum
+(
+    std::initializer_list<std::pair<EnumType, word>> lst
+)
+:
+    names_(lst.size()),
+    values_(lst.size())
+{
+    int idx = 0;
+    for (const auto& pair : lst)
+    {
+        names_[idx]  = pair.second;
+        values_[idx] = int(pair.first);
+
+        ++idx;
+    }
+}
+
+
+template<class EnumType>
+Foam::Enum<EnumType>::Enum
+(
+    const EnumType start,
+    std::initializer_list<word> lst
+)
+:
+    names_(lst.size()),
+    values_(lst.size())
+{
+    int val = int(start);
+
+    int idx = 0;
+    for (const auto& key : lst)
+    {
+        names_[idx]  = key;
+        values_[idx] = val;
+
+        ++val;
+        ++idx;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class EnumType>
+Foam::List<Foam::word> Foam::Enum<EnumType>::sortedToc() const
+{
+    wordList lst(names_);
+    Foam::sort(lst);
+
+    return lst;
+}
+
+
+template<class EnumType>
+EnumType Foam::Enum<EnumType>::read(Istream& is) const
+{
+    const word enumName(is);
+    const label idx = getIndex(enumName);
+
+    if (idx < 0)
+    {
+        FatalIOErrorInFunction(is)
+            << enumName << " is not in enumeration: "
+            << names_ << nl
+            << exit(FatalIOError);
+    }
+
+    return EnumType(values_[idx]);
+}
+
+
+template<class EnumType>
+void Foam::Enum<EnumType>::write(const EnumType e, Ostream& os) const
+{
+    const label idx = getIndex(e);
+    if (idx >= 0)
+    {
+        os << names_[idx];
+    }
+}
+
+
+template<class EnumType>
+EnumType Foam::Enum<EnumType>::lookup
+(
+    const word& key,
+    const dictionary& dict
+) const
+{
+    const word enumName(dict.lookup(key));
+    const label idx = getIndex(enumName);
+
+    if (idx < 0)
+    {
+        FatalIOErrorInFunction(dict)
+            << enumName << " is not in enumeration: "
+            << names_ << nl
+            << exit(FatalIOError);
+    }
+
+    return EnumType(values_[idx]);
+}
+
+
+template<class EnumType>
+EnumType Foam::Enum<EnumType>::lookupOrDefault
+(
+    const word& key,
+    const dictionary& dict,
+    const EnumType deflt
+) const
+{
+    if (dict.found(key))
+    {
+        return lookup(key, dict);
+    }
+    else
+    {
+        return deflt;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
+
+template<class EnumType>
+Foam::Ostream& Foam::operator<<
+(
+    Ostream& os,
+    const Enum<EnumType>& wrapped
+)
+{
+    return wrapped.names().writeList(os, 10);
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/enums/Enum.H b/src/OpenFOAM/primitives/enums/Enum.H
new file mode 100644
index 00000000000..dde620fb26a
--- /dev/null
+++ b/src/OpenFOAM/primitives/enums/Enum.H
@@ -0,0 +1,220 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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::Enum
+
+Description
+    A Enum is a wrapper around a list of names/values that represent
+    particular enumeration values.
+
+SourceFiles
+    Enum.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Enum_H
+#define Enum_H
+
+#include "wordList.H"
+#include <initializer_list>
+#include <utility>
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+// Forward declarations
+class dictionary;
+template<class EnumType> class Enum;
+
+template<class EnumType>
+Ostream& operator<<(Ostream& os, const Enum<EnumType>& wrapped);
+
+/*---------------------------------------------------------------------------*\
+                            Class Enum Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class EnumType>
+class Enum
+{
+    // Private Member Data
+
+        //- The names for the enum
+        List<word> names_;
+
+        //- The values for the enum
+        List<int> values_;
+
+
+    // Private Member Functions
+
+        //- The index for the given name. -1 if not found.
+        label getIndex(const word& enumName) const;
+
+        //- The index for the given enumeration. -1 if not found.
+        label getIndex(const EnumType e) const;
+
+        //- Lookup enumeration corresponding to the given name.
+        //  FatalError if not found.
+        EnumType getEnum(const word& enumName) const;
+
+        //- Lookup name corresponding to the given enumeration.
+        //  Return empty word if not found.
+        const word& getName(const EnumType e) const;
+
+
+        //- Disallow default bitwise copy construct
+        Enum(const Enum&) = delete;
+
+        //- Disallow default bitwise assignment
+        void operator=(const Enum&) = delete;
+
+
+public:
+
+    //- The type of enumeration wrapped by Enum
+    typedef EnumType value_type;
+
+
+    // Constructors
+
+        //- Construct from a values/names list.
+        //  Duplicate values are permitted (eg, for aliases).
+        //  Duplicate names are permitted, but won't make much sense.
+        explicit Enum(std::initializer_list<std::pair<EnumType, word>> lst);
+
+        //- Construct from a list of names with values incremented from the
+        //  specified start value.
+        Enum(const EnumType start, std::initializer_list<word> lst);
+
+
+    // Member Functions
+
+      // Access
+
+        //- The number of lookup names for the enumeration
+        inline label size() const;
+
+        //- The list of enum names, in construction order
+        inline const List<word>& names() const;
+
+        //- The list of enum names, in construction order
+        inline const List<word>& toc() const;
+
+        //- The sorted list of enum names
+        List<word> sortedToc() const;
+
+        //- The list of enum values, in construction order
+        inline const List<int>& values() const;
+
+
+      // Query
+
+        //- Test if there is an enumeration corresponding to the given name.
+        inline bool hasEnum(const word& enumName) const;
+
+        //- Test if there is a name corresponding to the given enumeration.
+        inline bool hasName(const EnumType e) const;
+
+
+      // Lookup
+
+        //- Lookup the key in the dictionary and return the corresponding
+        //  enumeration element based on its name.
+        //  Fatal if anything is incorrect.
+        EnumType lookup
+        (
+            const word& key,
+            const dictionary& dict
+        ) const;
+
+        //- Find the key in the dictionary and return the corresponding
+        //  enumeration element based on its name.
+        //  Return the default value if the key was not found in the dictionary.
+        //  Fatal if the enumerated name was incorrect.
+        EnumType lookupOrDefault
+        (
+            const word& key,
+            const dictionary& dict,
+            const EnumType deflt
+        ) const;
+
+
+      // IO
+
+        //- Read a word from Istream and return the corresponding enumeration
+        EnumType read(Istream& is) const;
+
+        //- Write the name representation of the enumeration to an Ostream
+        //  A noop if the enumeration wasn't found.
+        void write(const EnumType e, Ostream& os) const;
+
+        //- Write the names as a list to an Ostream
+        inline Ostream& writeList
+        (
+            Ostream& os,
+            const label shortListLen=0
+        ) const;
+
+
+    // Member Operators
+
+        //- Return the enumeration corresponding to the given name
+        //  Fatal if the name cannot be found.
+        inline const EnumType operator[](const word& name) const;
+
+        //- Return the first name corresponding to the given enumeration.
+        //  Returns an empty word on failure.
+        inline const word& operator[](const EnumType e) const;
+
+
+    // IOstream operators
+
+        //- Write names to Ostream, as per writeList() with shortListLen=10
+        friend Ostream& operator<< <EnumType>
+        (
+            Ostream& os,
+            const Enum<EnumType>& wrapped
+        );
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "EnumI.H"
+
+#ifdef NoRepository
+    #include "Enum.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/enums/EnumI.H b/src/OpenFOAM/primitives/enums/EnumI.H
new file mode 100644
index 00000000000..a991fd53d35
--- /dev/null
+++ b/src/OpenFOAM/primitives/enums/EnumI.H
@@ -0,0 +1,103 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class EnumType>
+inline Foam::label Foam::Enum<EnumType>::size() const
+{
+    return names_.size();
+}
+
+
+template<class EnumType>
+inline const Foam::wordList& Foam::Enum<EnumType>::names() const
+{
+    return names_;
+}
+
+
+template<class EnumType>
+inline const Foam::wordList& Foam::Enum<EnumType>::toc() const
+{
+    return names_;
+}
+
+
+template<class EnumType>
+inline const Foam::List<int>& Foam::Enum<EnumType>::values() const
+{
+    return values_;
+}
+
+
+template<class EnumType>
+inline bool Foam::Enum<EnumType>::hasEnum(const word& enumName) const
+{
+    return getIndex(enumName) >= 0;
+}
+
+
+template<class EnumType>
+inline bool Foam::Enum<EnumType>::hasName(const EnumType e) const
+{
+    return getIndex(e) >= 0;
+}
+
+
+template<class EnumType>
+inline Foam::Ostream& Foam::Enum<EnumType>::writeList
+(
+    Ostream& os,
+    const label shortListLen
+) const
+{
+    return names_.writeList(os, shortListLen);
+}
+
+
+// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+
+template<class EnumType>
+inline const EnumType Foam::Enum<EnumType>::operator[]
+(
+    const word& name
+) const
+{
+    return getEnum(name);
+}
+
+
+template<class EnumType>
+inline const Foam::word& Foam::Enum<EnumType>::operator[]
+(
+    const EnumType e
+) const
+{
+    return getName(e);
+}
+
+
+// ************************************************************************* //
-- 
GitLab


From d7a4088caa0696af50484d05f34a67e5c8100229 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 15:10:54 +0200
Subject: [PATCH 258/277] COMP: explicit handling of fallthrough cases

---
 src/OSspecific/POSIX/POSIX.C                  |  2 +-
 .../interpolation2DTable.C                    | 39 +++++++------
 .../interpolation2DTable.H                    |  4 +-
 .../interpolationTable/interpolationTable.C   | 56 +++++++++++--------
 .../functions/Function1/Table/TableBase.C     | 44 ++++++++++-----
 5 files changed, 88 insertions(+), 57 deletions(-)

diff --git a/src/OSspecific/POSIX/POSIX.C b/src/OSspecific/POSIX/POSIX.C
index f4cad0fccb8..8f6c26fbbec 100644
--- a/src/OSspecific/POSIX/POSIX.C
+++ b/src/OSspecific/POSIX/POSIX.C
@@ -943,7 +943,7 @@ bool Foam::mvBak(const fileName& src, const std::string& ext)
         }
     }
 
-    // fall-through: nothing to do
+    // fallthrough: nothing to do
     return false;
 }
 
diff --git a/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C b/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C
index 73ca0d9ec44..01c0aaa9590 100644
--- a/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C
+++ b/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C
@@ -123,10 +123,10 @@ Type Foam::interpolation2DTable<Type>::interpolateValue
     const scalar lookupValue
 ) const
 {
-    label n = data.size();
+    const label n = data.size();
 
-    scalar minLimit = data.first().first();
-    scalar maxLimit = data.last().first();
+    const scalar minLimit = data.first().first();
+    const scalar maxLimit = data.last().first();
 
     if (lookupValue < minLimit)
     {
@@ -147,7 +147,9 @@ Type Foam::interpolation2DTable<Type>::interpolateValue
                     << "bound (" << minLimit << ")" << nl
                     << "    Continuing with the first entry"
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                return data.first().second();
+                break;
             }
             case interpolation2DTable::CLAMP:
             {
@@ -175,7 +177,9 @@ Type Foam::interpolation2DTable<Type>::interpolateValue
                     << "bound (" << maxLimit << ")" << nl
                     << "    Continuing with the last entry"
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                return data.last().second();
+                break;
             }
             case interpolation2DTable::CLAMP:
             {
@@ -251,16 +255,19 @@ Foam::label Foam::interpolation2DTable<Type>::Xi
                 WarningInFunction
                     << "value (" << valueX << ") out of bounds"
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                return limitI;
+                break;
             }
             case interpolation2DTable::CLAMP:
             {
                 return limitI;
+                break;
             }
             default:
             {
                 FatalErrorInFunction
-                    << "Un-handled enumeration " << boundsHandling_
+                    << "Unhandled enumeration " << boundsHandling_
                     << abort(FatalError);
             }
         }
@@ -299,7 +306,7 @@ Type Foam::interpolation2DTable<Type>::operator()
 ) const
 {
     // Considers all of the list in Y being equal
-    label nX = this->size();
+    const label nX = this->size();
 
     const table& t = *this;
 
@@ -320,8 +327,8 @@ Type Foam::interpolation2DTable<Type>::operator()
         // have 2-D data, interpolate
 
         // find low and high indices in the X range that bound valueX
-        label x0i = Xi(lessOp<scalar>(), valueX, false);
-        label x1i = Xi(greaterOp<scalar>(), valueX, true);
+        const label x0i = Xi(lessOp<scalar>(), valueX, false);
+        const label x1i = Xi(greaterOp<scalar>(), valueX, true);
 
         if (x0i == x1i)
         {
@@ -333,8 +340,8 @@ Type Foam::interpolation2DTable<Type>::operator()
             Type y1(interpolateValue(t[x1i].second(), valueY));
 
             // gradient in X
-            scalar x0 = t[x0i].first();
-            scalar x1 = t[x1i].first();
+            const scalar x0 = t[x0i].first();
+            const scalar x1 = t[x1i].first();
             Type mX = (y1 - y0)/(x1 - x0);
 
             // interpolate
@@ -420,7 +427,7 @@ Foam::interpolation2DTable<Type>::outOfBounds
 template<class Type>
 void Foam::interpolation2DTable<Type>::checkOrder() const
 {
-    label n = this->size();
+    const label n = this->size();
     const table& t = *this;
 
     scalar prevValue = t[0].first();
@@ -445,10 +452,8 @@ void Foam::interpolation2DTable<Type>::checkOrder() const
 template<class Type>
 void Foam::interpolation2DTable<Type>::write(Ostream& os) const
 {
-    os.writeKeyword("file")
-        << fileName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("outOfBounds")
-        << boundsHandlingToWord(boundsHandling_) << token::END_STATEMENT << nl;
+    os.writeEntry("file", fileName_);
+    os.writeEntry("outOfBounds", boundsHandlingToWord(boundsHandling_));
 
     os  << *this;
 }
diff --git a/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.H b/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.H
index 9a3750385c4..e38b0a979a4 100644
--- a/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.H
+++ b/src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.H
@@ -66,7 +66,7 @@ public:
             CLAMP           //!< Clamp value to the start/end value
         };
 
-        //- Cconvenience typedef
+        //- Convenience typedef
         typedef List<Tuple2<scalar, List<Tuple2<scalar, Type>>>> table;
 
 
@@ -156,7 +156,7 @@ public:
         const List<Tuple2<scalar, Type>>& operator[](const label) const;
 
         //- Return an interpolated value
-        Type operator()(const scalar, const scalar) const;
+        Type operator()(const scalar valueX, const scalar valueY) const;
 };
 
 
diff --git a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C
index 6d71af14030..695e13dca46 100644
--- a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C
+++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C
@@ -205,8 +205,8 @@ Foam::interpolationTable<Type>::outOfBounds
 template<class Type>
 void Foam::interpolationTable<Type>::check() const
 {
-    label n = this->size();
-    scalar prevValue = List<Tuple2<scalar, Type>>::operator[](0).first();
+    const label n = this->size();
+    scalar prevValue = this->first().first();
 
     for (label i=1; i<n; ++i)
     {
@@ -229,10 +229,8 @@ void Foam::interpolationTable<Type>::check() const
 template<class Type>
 void Foam::interpolationTable<Type>::write(Ostream& os) const
 {
-    os.writeKeyword("file")
-        << fileName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("outOfBounds")
-        << boundsHandlingToWord(boundsHandling_) << token::END_STATEMENT << nl;
+    os.writeEntry("file", fileName_);
+    os.writeEntry("outOfBounds", boundsHandlingToWord(boundsHandling_));
     if (reader_.valid())
     {
         reader_->write(os);
@@ -251,8 +249,8 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
         return 0;
     }
 
-    scalar minLimit = List<Tuple2<scalar, Type>>::operator[](0).first();
-    scalar maxLimit = List<Tuple2<scalar, Type>>::operator[](n-1).first();
+    const scalar minLimit = this->first().first();
+    const scalar maxLimit = this->last().first();
     scalar lookupValue = value;
 
     if (lookupValue < minLimit)
@@ -272,7 +270,9 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
                     << "value (" << lookupValue << ") underflow" << nl
                     << "    Zero rate of change."
                     << endl;
-                // fall-through to 'CLAMP'
+                // behaviour as per 'CLAMP'
+                return 0;
+                break;
             }
             case interpolationTable::CLAMP:
             {
@@ -305,7 +305,9 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
                     << "value (" << lookupValue << ") overflow" << nl
                     << "    Zero rate of change."
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                return 0;
+                break;
             }
             case interpolationTable::CLAMP:
             {
@@ -346,7 +348,7 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
     }
     else if (hi == 0)
     {
-        // this treatment should should only occur under these conditions:
+        // this treatment should only occur under these conditions:
         //  -> the 'REPEAT' treatment
         //  -> (0 <= value <= minLimit)
         //  -> minLimit > 0
@@ -414,7 +416,9 @@ Foam::interpolationTable<Type>::operator[](const label i) const
                     << "index (" << ii << ") underflow" << nl
                     << "    Continuing with the first entry"
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                ii = 0;
+                break;
             }
             case interpolationTable::CLAMP:
             {
@@ -448,7 +452,9 @@ Foam::interpolationTable<Type>::operator[](const label i) const
                     << "index (" << ii << ") overflow" << nl
                     << "    Continuing with the last entry"
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                ii = n - 1;
+                break;
             }
             case interpolationTable::CLAMP:
             {
@@ -477,11 +483,11 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
 
     if (n <= 1)
     {
-        return List<Tuple2<scalar, Type>>::operator[](0).second();
+        return this->first().second();
     }
 
-    scalar minLimit = List<Tuple2<scalar, Type>>::operator[](0).first();
-    scalar maxLimit = List<Tuple2<scalar, Type>>::operator[](n-1).first();
+    const scalar minLimit = this->first().first();
+    const scalar maxLimit = this->last().first();
     scalar lookupValue = value;
 
     if (lookupValue < minLimit)
@@ -501,17 +507,19 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
                     << "value (" << lookupValue << ") underflow" << nl
                     << "    Continuing with the first entry"
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                return this->first().second();
+                break;
             }
             case interpolationTable::CLAMP:
             {
-                return List<Tuple2<scalar, Type>>::operator[](0).second();
+                return this->first().second();
                 break;
             }
             case interpolationTable::REPEAT:
             {
                 // adjust lookupValue to >= minLimit
-                scalar span = maxLimit-minLimit;
+                const scalar span = maxLimit-minLimit;
                 lookupValue = fmod(lookupValue-minLimit, span) + minLimit;
                 break;
             }
@@ -534,17 +542,19 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
                     << "value (" << lookupValue << ") overflow" << nl
                     << "    Continuing with the last entry"
                     << endl;
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                return this->last().second();
+                break;
             }
             case interpolationTable::CLAMP:
             {
-                return List<Tuple2<scalar, Type>>::operator[](n-1).second();
+                return this->last().second();
                 break;
             }
             case interpolationTable::REPEAT:
             {
                 // adjust lookupValue <= maxLimit
-                scalar span = maxLimit-minLimit;
+                const scalar span = maxLimit-minLimit;
                 lookupValue = fmod(lookupValue-minLimit, span) + minLimit;
                 break;
             }
@@ -575,7 +585,7 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
     }
     else if (hi == 0)
     {
-        // this treatment should should only occur under these conditions:
+        // this treatment should only occur under these conditions:
         //  -> the 'REPEAT' treatment
         //  -> (0 <= value <= minLimit)
         //  -> minLimit > 0
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C
index 95a5fce3e44..02d3b186eff 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C
@@ -195,7 +195,7 @@ void Foam::Function1Types::TableBase<Type>::check() const
             << nl << exit(FatalError);
     }
 
-    label n = table_.size();
+    const label n = table_.size();
     scalar prevValue = table_[0].first();
 
     for (label i = 1; i < n; ++i)
@@ -221,7 +221,7 @@ bool Foam::Function1Types::TableBase<Type>::checkMinBounds
     scalar& xDash
 ) const
 {
-    if (x < table_[0].first())
+    if (x < table_.first().first())
     {
         switch (boundsHandling_)
         {
@@ -238,19 +238,28 @@ bool Foam::Function1Types::TableBase<Type>::checkMinBounds
                     << "value (" << x << ") underflow" << nl
                     << endl;
 
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                xDash = table_.first().first();
+                return true;
+                break;
             }
             case CLAMP:
             {
-                xDash = table_[0].first();
+                xDash = table_.first().first();
                 return true;
                 break;
             }
             case REPEAT:
             {
                 // adjust x to >= minX
-                scalar span = table_.last().first() - table_[0].first();
-                xDash = fmod(x - table_[0].first(), span) + table_[0].first();
+                const scalar span =
+                    table_.last().first() - table_.first().first();
+
+                xDash =
+                (
+                    fmod(x - table_.first().first(), span)
+                  + table_.first().first()
+                );
                 break;
             }
         }
@@ -288,7 +297,10 @@ bool Foam::Function1Types::TableBase<Type>::checkMaxBounds
                     << "value (" << x << ") overflow" << nl
                     << endl;
 
-                // fall-through to 'CLAMP'
+                // Behaviour as per 'CLAMP'
+                xDash = table_.last().first();
+                return true;
+                break;
             }
             case CLAMP:
             {
@@ -299,8 +311,14 @@ bool Foam::Function1Types::TableBase<Type>::checkMaxBounds
             case REPEAT:
             {
                 // adjust x to >= minX
-                scalar span = table_.last().first() - table_[0].first();
-                xDash = fmod(x - table_[0].first(), span) + table_[0].first();
+                const scalar span =
+                    table_.last().first() - table_.first().first();
+
+                xDash =
+                (
+                    fmod(x - table_.first().first(), span)
+                  + table_.first().first()
+                );
                 break;
             }
         }
@@ -335,7 +353,7 @@ Type Foam::Function1Types::TableBase<Type>::value(const scalar x) const
 
     if (checkMinBounds(x, xDash))
     {
-        return table_[0].second();
+        return table_.first().second();
     }
 
     if (checkMaxBounds(xDash, xDash))
@@ -411,13 +429,11 @@ void Foam::Function1Types::TableBase<Type>::writeEntries(Ostream& os) const
 {
     if (boundsHandling_ != CLAMP)
     {
-        os.writeKeyword("outOfBounds") << boundsHandlingToWord(boundsHandling_)
-            << token::END_STATEMENT << nl;
+        os.writeEntry("outOfBounds", boundsHandlingToWord(boundsHandling_));
     }
     if (interpolationScheme_ != "linear")
     {
-        os.writeKeyword("interpolationScheme") << interpolationScheme_
-            << token::END_STATEMENT << nl;
+        os.writeEntry("interpolationScheme", interpolationScheme_);
     }
 }
 
-- 
GitLab


From 90a07ff4ccff6d3f083ed28750dafd39dae1d4d2 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 15:18:35 +0200
Subject: [PATCH 259/277] BUG: enum constant in boolean context

---
 src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C b/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C
index 7a7d4fbcf7f..2e55e4a0ea3 100644
--- a/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C
+++ b/src/dynamicMesh/meshSubsetHelper/meshSubsetHelper.C
@@ -90,9 +90,13 @@ void Foam::meshSubsetHelper::correct(bool verbose)
 
 Foam::polyMesh::readUpdateState Foam::meshSubsetHelper::readUpdate()
 {
-    polyMesh::readUpdateState meshState = baseMesh_.readUpdate();
+    const polyMesh::readUpdateState meshState = baseMesh_.readUpdate();
 
-    if (meshState == polyMesh::TOPO_CHANGE || polyMesh::TOPO_PATCH_CHANGE)
+    if
+    (
+        meshState == polyMesh::TOPO_CHANGE
+     || meshState == polyMesh::TOPO_PATCH_CHANGE
+    )
     {
         correct(true);
     }
-- 
GitLab


From 76c39302dd3fee35e3edbb08942c571431954418 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 15:20:56 +0200
Subject: [PATCH 260/277] CONFIG: add compiler config for Gcc 7.1.0

---
 etc/config.csh/compiler | 3 +++
 etc/config.sh/compiler  | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/etc/config.csh/compiler b/etc/config.csh/compiler
index 2f1f7f04801..bdf2013490c 100644
--- a/etc/config.csh/compiler
+++ b/etc/config.csh/compiler
@@ -66,6 +66,9 @@ case ThirdParty:
     case Gcc63:
         set gcc_version=gcc-6.3.0
         breaksw
+    case Gcc71:
+        set gcc_version=gcc-7.1.0
+        breaksw
     case Clang:
         set clang_version=llvm-3.7.1
         breaksw
diff --git a/etc/config.sh/compiler b/etc/config.sh/compiler
index 2235619f774..2dfd7eaf1f7 100644
--- a/etc/config.sh/compiler
+++ b/etc/config.sh/compiler
@@ -65,6 +65,9 @@ ThirdParty)
     Gcc63)
         gcc_version=gcc-6.3.0
         ;;
+    Gcc71)
+        gcc_version=gcc-7.1.0
+        ;;
     Clang)
         clang_version=llvm-3.7.1
         ;;
-- 
GitLab


From 0f83b3f04b9c4155e116d0a66da8dcb2ec89ad03 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 15:34:14 +0200
Subject: [PATCH 261/277] BUG: incorrect fall-through in
 directionalPressureGradientExplicitSource (fixed #486)

---
 .../directionalPressureGradientExplicitSource.C                 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
index e0c0549f2fb..0bc5217e98d 100644
--- a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
+++ b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
@@ -290,7 +290,6 @@ void Foam::fv::directionalPressureGradientExplicitSource::correct
                 const scalarField nu(turbModel.nu(), cells_);
 
                 gradPporous_ = -flowDir_*(D_*nu + I_*0.5*magUn)*magUn*length_;
-                break;
             }
             else
             {
@@ -307,6 +306,7 @@ void Foam::fv::directionalPressureGradientExplicitSource::correct
                 gradPporous_ =
                     - flowDir_*(D_*mu + I_*0.5*rho*magUn)*magUn*length_;
             }
+            break;
         }
         case pConstant:
         {
-- 
GitLab


From 67237e93854375f550ce1e4450a5863170090e1a Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 17:18:26 +0200
Subject: [PATCH 262/277] CONFIG: adjust boost,CGAL versions

---
 etc/config.csh/CGAL | 4 ++--
 etc/config.sh/CGAL  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/etc/config.csh/CGAL b/etc/config.csh/CGAL
index aab320bcab3..4f4a5f3c95a 100644
--- a/etc/config.csh/CGAL
+++ b/etc/config.csh/CGAL
@@ -51,8 +51,8 @@
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-set boost_version=boost_1_62_0
-set cgal_version=CGAL-4.9
+set boost_version=boost_1_64_0
+set cgal_version=CGAL-4.9.1
 
 setenv BOOST_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
 setenv CGAL_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version
diff --git a/etc/config.sh/CGAL b/etc/config.sh/CGAL
index dc97d66a11a..e3acd42cbec 100644
--- a/etc/config.sh/CGAL
+++ b/etc/config.sh/CGAL
@@ -50,8 +50,8 @@
 #------------------------------------------------------------------------------
 # USER EDITABLE PART: Changes made here may be lost with the next upgrade
 
-boost_version=boost_1_62_0
-cgal_version=CGAL-4.9
+boost_version=boost_1_64_0
+cgal_version=CGAL-4.9.1
 
 export BOOST_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
 export CGAL_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version
-- 
GitLab


From 6563c98d6c9df16f02f64cf92266a9980f453864 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 18:25:23 +0200
Subject: [PATCH 263/277] ENH: support different triSurface loading options

 - "single" = One region for all files
 - "file"   = One region for each file
 - "offset" = Offset regions per file
 - "merge"  = Merge regions by name

These specifications provide finer control when loading multiple
surfaces.
---
 .../triSurfaceLoader/triSurfaceLoader.C       | 163 ++++++++++++++++--
 .../triSurfaceLoader/triSurfaceLoader.H       |  23 ++-
 2 files changed, 170 insertions(+), 16 deletions(-)

diff --git a/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.C b/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.C
index d5e6d4d8e71..d40c0087767 100644
--- a/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.C
+++ b/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.C
@@ -28,6 +28,15 @@ License
 #include "Time.H"
 #include "OSspecific.H"
 
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+const Foam::Enum<Foam::triSurfaceLoader::loadingOption>
+Foam::triSurfaceLoader::loadingOptionNames
+(
+    SINGLE_REGION, { "single", "file", "offset", "merge" }
+);
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::triSurfaceLoader::triSurfaceLoader(const fileName& directory)
@@ -201,24 +210,56 @@ Foam::label Foam::triSurfaceLoader::select(const wordReList& matcher)
 }
 
 
-Foam::autoPtr<Foam::triSurface> Foam::triSurfaceLoader::load() const
+Foam::autoPtr<Foam::triSurface> Foam::triSurfaceLoader::load
+(
+    const enum loadingOption opt
+) const
 {
+    autoPtr<triSurface> output;
+
     if (selected_.empty())
     {
-        return autoPtr<triSurface>();
+        return output;
     }
     else if (selected_.size() == 1)
     {
-        return autoPtr<triSurface>(new triSurface(directory_/selected_[0]));
+        output.set(new triSurface(directory_/selected_[0]));
+
+        triSurface& surf = output();
+
+        if
+        (
+            opt == loadingOption::SINGLE_REGION
+         || opt == loadingOption::FILE_REGION
+        )
+        {
+            for (labelledTri& f : surf)
+            {
+                f.region() = 0;
+            }
+
+            if (surf.patches().size())
+            {
+                surf.patches().setSize(1);
+            }
+            else
+            {
+                surf.patches().append
+                (
+                    geometricSurfacePatch(selected_[0].lessExt(), 0)
+                );
+            }
+        }
+
+        return output;
     }
 
+
     List<labelledTri> faces;
     pointField points;
-    label regoff = 0; // region offset
 
-    // collect all patches, preserving names.
-    // This will be horrible for output, but is good if we are relying on
-    // the names for defining baffles.
+    Map<label> oldToNew;
+    HashTable<label> patchNameLookup;
     DynamicList<geometricSurfacePatch> patches(16*selected_.size());
 
     forAll(selected_, surfi)
@@ -227,22 +268,114 @@ Foam::autoPtr<Foam::triSurface> Foam::triSurfaceLoader::load() const
 
         List<labelledTri> addfaces(addsurf.xferFaces());
         List<point> addpoints(addsurf.xferPoints());
-        patches.append(addsurf.patches());
 
+        // Offset the points for all additional surfaces
         if (surfi)
         {
-            const label ptoff = points.size(); // point offset
+            const label ptoff = points.size();
 
-            forAll(addfaces, facei)
+            for (labelledTri& f : addfaces)
             {
-                labelledTri& f = addfaces[facei];
                 forAll(f, fi)
                 {
                     f[fi] += ptoff;
                 }
-                f.region() += regoff;
+            }
+        }
+
+        switch (opt)
+        {
+            case loadingOption::SINGLE_REGION:
+            {
+                for (labelledTri& f : addfaces)
+                {
+                    f.region() = 0;
+                }
+
+                if (patches.empty() && !addsurf.patches().empty())
+                {
+                    patches.append(addsurf.patches().first());
+                }
+
+                break;
+            }
+
+            case loadingOption::FILE_REGION:
+            {
+                for (labelledTri& f : addfaces)
+                {
+                    f.region() = surfi;
+                }
+
+                // Use surface name for region
+                patches.append
+                (
+                    geometricSurfacePatch(selected_[surfi].lessExt(), surfi)
+                );
+
+                break;
+            }
+
+            case loadingOption::OFFSET_REGION:
+            {
+                // Collect all patches, preserving names.
+                // This will be horrible for output, but is good if we rely
+                // on the names for defining baffles.
+
+                // region offset
+                const label regoff = patches.size();
+                patches.append(addsurf.patches());
+
+                if (surfi)
+                {
+                    for (labelledTri& f : addfaces)
+                    {
+                        f.region() += regoff;
+                    }
+                }
+                break;
             }
 
+            case loadingOption::MERGE_REGION:
+            {
+                // Merge by name
+                geometricSurfacePatchList& addpatches = addsurf.patches();
+
+                // Build lookup tables with name->id and localId -> mergedId
+                oldToNew.clear();
+                forAll(addpatches, patchi)
+                {
+                    geometricSurfacePatch& p = addpatches[patchi];
+                    const word& patchName = p.name();
+
+                    label patchId = patches.size();
+                    if (patchNameLookup.insert(patchName, patchId))
+                    {
+                        p.index() = patchId;
+                        patches.append(p);
+                    }
+                    else
+                    {
+                        patchId = patchNameLookup[patchName];
+                    }
+
+                    oldToNew.insert(patchi, patchId);
+                }
+
+                if (surfi)
+                {
+                    // Relabel regions accordingly
+                    for (labelledTri& f : addfaces)
+                    {
+                        f.region() = oldToNew[f.region()];
+                    }
+                }
+                break;
+            }
+        }
+
+        if (surfi)
+        {
             faces.append(addfaces);
             points.append(addpoints);
         }
@@ -251,11 +384,11 @@ Foam::autoPtr<Foam::triSurface> Foam::triSurfaceLoader::load() const
             faces.transfer(addfaces);
             points.transfer(addpoints);
         }
-
-        regoff += addsurf.patches().size();
     }
 
-    return autoPtr<triSurface>(new triSurface(faces, patches, points, true));
+    output.set(new triSurface(faces, patches, points, true));
+
+    return output;
 }
 
 
diff --git a/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.H b/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.H
index aec554ec528..7332026f765 100644
--- a/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.H
+++ b/src/meshTools/triSurface/triSurfaceLoader/triSurfaceLoader.H
@@ -42,6 +42,7 @@ SourceFiles
 
 #include "triSurface.H"
 #include "wordReList.H"
+#include "Enum.H"
 #include "hashedWordList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -59,6 +60,23 @@ class Time;
 
 class triSurfaceLoader
 {
+public:
+
+    //- The file loading options for triSurfaceLoader
+    enum loadingOption
+    {
+        SINGLE_REGION,  //!< "single" = One region for all files
+        FILE_REGION,    //!< "file"   = One region for each file
+        OFFSET_REGION,  //!< "offset" = Offset regions per file
+        MERGE_REGION    //!< "merge"  = Merge regions by name
+    };
+
+    //- The loading enumeration names
+    static const Enum<loadingOption> loadingOptionNames;
+
+
+private:
+
     // Private data
 
         //- The directory to load from (eg, case/constant/triSurface)
@@ -136,7 +154,10 @@ public:
         label select(const wordReList& matcher);
 
         //- Load a single file, or load and combine multiple selected files
-        autoPtr<triSurface> load() const;
+        autoPtr<triSurface> load
+        (
+            const enum loadingOption opt = loadingOption::OFFSET_REGION
+        ) const;
 
 };
 
-- 
GitLab


From dfafe6075aa3a18bfeecf48e203b555b4f737bff Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 18:57:25 +0200
Subject: [PATCH 264/277] ENH: region-wise self intersection for
 surfaceFeatureExtract (issue #450)

---
 .../surfaceBooleanFeatures.C                  |  24 +++--
 .../surfaceFeatureExtract.C                   |  35 ++++--
 .../surfaceFeatureExtractDict                 |  23 ++--
 .../surfaceIntersection/surfaceIntersection.C | 102 ++++++++++++++++--
 .../surfaceIntersection/surfaceIntersection.H |  34 ++++--
 5 files changed, 168 insertions(+), 50 deletions(-)

diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
index 1d0dfae584a..52c5d9c0895 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
+++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
@@ -83,7 +83,7 @@ Description
 #include "edgeIntersections.H"
 #include "meshTools.H"
 #include "DynamicField.H"
-
+#include "Enum.H"
 
 #ifndef NO_CGAL
 
@@ -1514,8 +1514,8 @@ int main(int argc, char *argv[])
 {
     argList::noParallel();
     argList::validArgs.append("action");
-    argList::validArgs.append("surface file");
-    argList::validArgs.append("surface file");
+    argList::validArgs.append("surfaceFile1");
+    argList::validArgs.append("surfaceFile2");
 
     argList::addBoolOption
     (
@@ -1553,24 +1553,30 @@ int main(int argc, char *argv[])
         " 'mixed' (keep all)"
     );
 
+    argList::addNote
+    (
+        "Valid actions: \"intersection\", \"union\", \"difference\""
+    );
+
 
     #include "setRootCase.H"
     #include "createTime.H"
 
     const word action(args[1]);
 
-    const HashTable<booleanSurface::booleanOpType> validActions
+    const Enum<booleanSurface::booleanOpType> validActions
     {
-        {"intersection", booleanSurface::INTERSECTION},
-        {"union", booleanSurface::UNION},
-        {"difference", booleanSurface::DIFFERENCE}
+        { booleanSurface::INTERSECTION, "intersection" },
+        { booleanSurface::UNION, "union" },
+        { booleanSurface::DIFFERENCE, "difference" }
     };
 
-    if (!validActions.found(action))
+    if (!validActions.hasEnum(action))
     {
         FatalErrorInFunction
             << "Unsupported action " << action << endl
-            << "Supported actions:" << validActions.toc() << abort(FatalError);
+            << "Supported actions:" << validActions << nl
+            << abort(FatalError);
     }
 
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index 29187c7cfe3..7cd22735a72 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -149,8 +149,21 @@ int main(int argc, char *argv[])
         }
         Info<< "Output             : " << outputName << nl;
 
+        triSurfaceLoader::loadingOption loadingOption =
+            triSurfaceLoader::loadingOptionNames.lookupOrDefault
+            (
+                "loadingOption",
+                surfaceDict,
+                triSurfaceLoader::loadingOption::OFFSET_REGION
+            );
+
+        Info<<"loading with "
+            << triSurfaceLoader::loadingOptionNames[loadingOption]
+            << endl;
+
+
         // Load a single file, or load and combine multiple selected files
-        autoPtr<triSurface> surfPtr = loader.load();
+        autoPtr<triSurface> surfPtr = loader.load(loadingOption);
         if (!surfPtr.valid() || surfPtr().empty())
         {
             FatalErrorInFunction
@@ -390,14 +403,21 @@ int main(int argc, char *argv[])
             feMesh.add(addFeMesh);
         }
 
-        if (surfaceDict.lookupOrDefault<bool>("selfIntersection", false))
-        {
-            // TODO: perturbance tolerance?
+        const surfaceIntersection::intersectionType selfIntersect =
+            surfaceIntersection::selfIntersectionNames.lookupOrDefault
+            (
+                "intersectionMethod",
+                surfaceDict,
+                surfaceIntersection::NONE
+            );
 
+        if (selfIntersect != surfaceIntersection::NONE)
+        {
             triSurfaceSearch query(surf);
             surfaceIntersection intersect(query, surfaceDict);
 
-            intersect.mergePoints(5*SMALL);
+            // Remove rounding noise - could make adjustable
+            intersect.mergePoints(10*SMALL);
 
             labelPair sizeInfo
             (
@@ -413,14 +433,15 @@ int main(int argc, char *argv[])
                     intersect.cutEdges()
                 );
 
-                addMesh.mergePoints(5*SMALL);
                 feMesh.add(addMesh);
 
                 sizeInfo[0] = addMesh.points().size();
                 sizeInfo[1] = addMesh.edges().size();
             }
             Info<< nl
-                << "Self intersection:" << nl
+                << "intersection: "
+                << surfaceIntersection::selfIntersectionNames[selfIntersect]
+                << nl
                 << "    points : " << sizeInfo[0] << nl
                 << "    edges  : " << sizeInfo[1] << nl;
         }
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
index 65322152987..89f5b9c6b78 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
@@ -16,7 +16,7 @@ FoamFile
 
 surface1.stl
 {
-    // How to obtain raw features (extractFromFile | extractFromSurface | none)
+    // How to obtain raw features (none | extractFromFile | extractFromSurface)
     extractionMethod    extractFromSurface;
 
     // Mark edges whose adjacent surface normals are at an angle less
@@ -36,8 +36,8 @@ surface1.stl
         geometricTestOnly  yes;
     } */
 
-    // Generate additional features from self-intersect
-    selfIntersection    false;
+    // Generate additional intersection features (none | self | region)
+    intersectionMethod  none;
 
     // Tolerance for surface intersections
     tolerance           1e-3;
@@ -51,7 +51,7 @@ surface1.stl
 
 surface2.nas
 {
-    // How to obtain raw features (extractFromFile | extractFromSurface | none)
+    // How to obtain raw features (none | extractFromFile | extractFromSurface)
     extractionMethod    extractFromFile;
 
     extractFromFileCoeffs
@@ -114,8 +114,8 @@ surface2.nas
     // Out put the closeness of surface elements to other surface elements.
     closeness           no;
 
-    // Generate additional features from self-intersect
-    selfIntersection    false;
+    // Generate additional intersection features (none | self | region)
+    intersectionMethod  none;
 
     // Tolerance for surface intersections
     tolerance           1e-3;
@@ -148,8 +148,8 @@ dummyName
     // Base output name (optional)
     // output              surfaces;
 
-    // Generate additional features from self-intersect
-    selfIntersection    true;
+    // Generate additional intersection features (none | self | region)
+    intersectionMethod  self;
 
     // Tolerance for surface intersections
     tolerance           1e-3;
@@ -183,8 +183,8 @@ surfaces
     // Base output name (optional)
     // output              surfaces;
 
-    // Generate additional features from self-intersect
-    selfIntersection    true;
+    // Generate additional intersection features (none | self | region)
+    intersectionMethod  self;
 
     // Tolerance for surface intersections
     tolerance           1e-3;
@@ -193,8 +193,7 @@ surfaces
     noneCoeffs
     {
         includedAngle   0;
-    }
-    */
+    } */
 
     // Write options
 
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
index 5592d95362f..8c552335d46 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
@@ -27,6 +27,7 @@ License
 #include "triSurfaceSearch.H"
 #include "OBJstream.H"
 #include "labelPairHashes.H"
+#include "PackedBoolList.H"
 #include "triSurface.H"
 #include "pointIndexHit.H"
 #include "mergePoints.H"
@@ -40,6 +41,14 @@ namespace Foam
 defineTypeNameAndDebug(surfaceIntersection, 0);
 }
 
+const Foam::Enum<Foam::surfaceIntersection::intersectionType>
+Foam::surfaceIntersection::selfIntersectionNames
+{
+    { intersectionType::SELF, "self" },
+    { intersectionType::SELF_REGION, "region" },
+    { intersectionType::NONE, "none" },
+};
+
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
@@ -54,7 +63,7 @@ void Foam::surfaceIntersection::setOptions(const dictionary& dict)
 
 void Foam::surfaceIntersection::storeIntersection
 (
-    const enum originatingType cutFrom,
+    const enum intersectionType cutFrom,
     const labelList& facesA,
     const label faceB,
     const UList<point>& allCutPoints,
@@ -85,6 +94,7 @@ void Foam::surfaceIntersection::storeIntersection
                 break;
             }
             case surfaceIntersection::SELF:
+            case surfaceIntersection::SELF_REGION:
             {
                 // Lookup should be commutativity - use sorted order
                 if (faceA < faceB)
@@ -99,6 +109,10 @@ void Foam::surfaceIntersection::storeIntersection
                 }
                 break;
             }
+
+            case surfaceIntersection::NONE:
+                return;
+                break;
         }
 
 
@@ -245,7 +259,7 @@ void Foam::surfaceIntersection::classifyHit
     const triSurface& surf1,
     const scalarField& surf1PointTol,
     const triSurface& surf2,
-    const enum originatingType cutFrom,
+    const enum intersectionType cutFrom,
     const label edgeI,
     const pointIndexHit& pHit,
 
@@ -306,7 +320,11 @@ void Foam::surfaceIntersection::classifyHit
             // For self-intersection, we have tolerances for each point
             // (surf2 is actually surf1) so we shift the hit to coincide
             // identically.
-            if (cutFrom == surfaceIntersection::SELF)
+            if
+            (
+                cutFrom == surfaceIntersection::SELF
+             || cutFrom == surfaceIntersection::SELF_REGION
+            )
             {
                 const point& nearPt = surf1Pts[nearVert];
 
@@ -392,7 +410,15 @@ void Foam::surfaceIntersection::classifyHit
             // >0: store point/edge-cut. Attempt to create new edge.
             // <0: store point/edge-cut only
             int handling = (allowEdgeHits_ ? 1 : 0);
-            if (allowEdgeHits_ && cutFrom == surfaceIntersection::SELF)
+            if
+            (
+                allowEdgeHits_
+             &&
+                (
+                    cutFrom == surfaceIntersection::SELF
+                 || cutFrom == surfaceIntersection::SELF_REGION
+                )
+            )
             {
                 // The edge-edge intersection is hashed as an 'edge' to
                 // exploit the commutative lookup.
@@ -513,12 +539,18 @@ void Foam::surfaceIntersection::classifyHit
             switch (cutFrom)
             {
                 case surfaceIntersection::FIRST:
+                {
                     handling = 1;
                     break;
+                }
                 case surfaceIntersection::SECOND:
+                {
                     handling = -1;
                     break;
+                }
                 case surfaceIntersection::SELF:
+                case surfaceIntersection::SELF_REGION:
+                {
                     // The edge-edge intersection is hashed as an 'edge' to
                     // exploit the commutative lookup.
                     // Ie, only do the cut once
@@ -563,6 +595,12 @@ void Foam::surfaceIntersection::classifyHit
                             }
                         }
                     }
+
+                    break;
+                }
+
+                case surfaceIntersection::NONE:
+                    return;
                     break;
             }
 
@@ -744,7 +782,7 @@ void Foam::surfaceIntersection::doCutEdges
 (
     const triSurface& surf1,
     const triSurfaceSearch& querySurf2,
-    const enum originatingType cutFrom,
+    const enum intersectionType cutFrom,
 
     DynamicList<point>& allCutPoints,
     DynamicList<edge>& allCutEdges,
@@ -766,13 +804,21 @@ void Foam::surfaceIntersection::doCutEdges
     const indexedOctree<treeDataPrimitivePatch<triSurface>>& searchTree
         = querySurf2.tree();
 
-    if (cutFrom == surfaceIntersection::SELF)
+    if
+    (
+        cutFrom == surfaceIntersection::SELF
+     || cutFrom == surfaceIntersection::SELF_REGION
+    )
     {
         // An edge may intersect multiple faces
         // - mask out faces that have already been hit before trying again
         // - never intersect with faces attached to the edge itself
         DynamicList<label> maskFaces(32);
 
+        // Optionally prevent intersection within a single region.
+        // Like self-intersect, but only if regions are different
+        PackedBoolList maskRegions(32);
+
         treeDataTriSurface::findAllIntersectOp
             allIntersectOp(searchTree, maskFaces);
 
@@ -787,6 +833,15 @@ void Foam::surfaceIntersection::doCutEdges
             const point ptEnd =
                 surf1Pts[e.end()]   + 0.5*surf1PointTol[e.end()]*edgeVec;
 
+            maskRegions.clear();
+            if (cutFrom == surfaceIntersection::SELF_REGION)
+            {
+                for (auto& facei : surf1.edgeFaces()[edgeI])
+                {
+                    maskRegions.set(surf1[facei].region());
+                }
+            }
+
             // Never intersect with faces attached directly to the edge itself,
             // nor with faces attached to its end points. This mask contains
             // some duplicates, but filtering them out is less efficient.
@@ -809,6 +864,11 @@ void Foam::surfaceIntersection::doCutEdges
 
                 maskFaces.append(pHit.index());
 
+                if (maskRegions[surf1[pHit.index()].region()])
+                {
+                    continue;
+                }
+
                 classifyHit
                 (
                     surf1,
@@ -1133,6 +1193,27 @@ Foam::surfaceIntersection::surfaceIntersection
 {
     setOptions(dict);
 
+    const intersectionType cutFrom = selfIntersectionNames.lookupOrDefault
+    (
+        "intersectionMethod",
+        dict,
+        intersectionType::SELF
+    );
+
+    if (cutFrom == intersectionType::NONE)
+    {
+        if (debug)
+        {
+            Pout<< "Skipping self-intersection (selected: none)" << endl;
+        }
+
+        // Temporaries
+        facePairToEdge_.clear();
+        facePairToEdgeId_.clear();
+
+        return;
+    }
+
     const triSurface& surf1 = query1.surface();
 
     //
@@ -1154,7 +1235,7 @@ Foam::surfaceIntersection::surfaceIntersection
     (
         surf1,
         query1,
-        surfaceIntersection::SELF,
+        cutFrom,
         allCutPoints,
         allCutEdges,
         edgeCuts1
@@ -1402,17 +1483,16 @@ void Foam::surfaceIntersection::mergePoints(const scalar mergeDist)
     pointField newPoints;
     labelList pointMap;
 
-    const bool hasMerged = Foam::mergePoints
+    const label nMerged = Foam::mergePoints
     (
         cutPoints_,
         mergeDist,
         false,
         pointMap,
-        newPoints,
-        vector::zero
+        newPoints
     );
 
-    if (hasMerged)
+    if (nMerged)
     {
         cutPoints_.transfer(newPoints);
 
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
index 93e15669eeb..d91ef507dd6 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.H
@@ -52,6 +52,7 @@ Description
         allowEdgeHits  | Edge-end cuts another edge     | bool   | true
         snap           | Snap near end-points           | bool   | true
         warnDegenerate | Number of warnings about degenerate edges | label | 0
+        intersectionMethod | Control for self intersection | (self,region,none)
     \endtable
 
 SourceFiles
@@ -71,6 +72,7 @@ SourceFiles
 #include "labelPairHashes.H"
 #include "pointIndexHit.H"
 #include "typeInfo.H"
+#include "Enum.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -96,15 +98,25 @@ typedef EdgeMap<labelPairHashSet> edgelabelPairHashLookup;
 
 class surfaceIntersection
 {
-    // Private data
+public:
+
+    //- Surface intersection types for classify, doCutEdges
+    enum intersectionType
+    {
+        FIRST,          //!< First surface
+        SECOND,         //!< Second surface
+        SELF,           //!< Self-intersection
+        SELF_REGION,    //!< Self-intersection, region-wise only
+        NONE            //!< None = invalid (for input only)
+    };
+
+    //- The user-selectable self-intersection enumeration names
+    static const Enum<intersectionType> selfIntersectionNames;
 
-        //- Surface intersection types for classify, doCutEdges
-        enum originatingType
-        {
-            FIRST,      //!< First surface
-            SECOND,     //!< Second surface
-            SELF        //!< Self-intersection
-        };
+
+private:
+
+    // Private data
 
         //- Tolerance for intersections
         scalar tolerance_;
@@ -204,7 +216,7 @@ class surfaceIntersection
         //  Updates facePairToEdge_ and facePairToEdgeId_ (on the second hit)
         void storeIntersection
         (
-            const enum originatingType cutFrom,
+            const enum intersectionType cutFrom,
             const labelList& facesA,
             const label faceB,
             const UList<point>& allCutPoints,
@@ -219,7 +231,7 @@ class surfaceIntersection
             const triSurface& surf1,
             const scalarField& surf1PointTol,
             const triSurface& surf2,
-            const enum originatingType cutFrom,
+            const enum intersectionType cutFrom,
             const label edgeI,
             const pointIndexHit& pHit,
 
@@ -233,7 +245,7 @@ class surfaceIntersection
         (
             const triSurface& surf1,
             const triSurfaceSearch& querySurf2,
-            const enum originatingType cutFrom,
+            const enum intersectionType cutFrom,
 
             DynamicList<point>& allCutPoints,
             DynamicList<edge>& allCutEdges,
-- 
GitLab


From 5d60d7e15c0f33ec5b34dda48f234d2112dc3c1b Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 29 May 2017 22:26:14 +0200
Subject: [PATCH 265/277] BUG: incorrectly dimensioned edge directions in
 extendedEdgeMesh:add()

---
 .../edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C          | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
index 977cb457caa..24c13c35594 100644
--- a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
@@ -1277,13 +1277,15 @@ void Foam::extendedEdgeMesh::add(const extendedEdgeMesh& fem)
         );
     }
 
-    pointField newEdgeDirections(newEdgeI);
+    pointField newEdgeDirections
+    (
+        edgeDirections().size()
+      + fem.edgeDirections().size()
+    );
     newEdgeDirections.rmap(edgeDirections(), reverseEdgeMap);
     newEdgeDirections.rmap(fem.edgeDirections(), reverseFemEdgeMap);
 
 
-
-
     // Normals
     // ~~~~~~~
 
-- 
GitLab


From 6d26b40e8b30a10514392d26ade68334252c9202 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 30 May 2017 12:44:13 +0200
Subject: [PATCH 266/277] STYLE: use newer forAll macros

---
 .../ccm/reader/ccmInterfaceDefinitions.H      |  7 +-
 src/conversion/ccm/reader/ccmReaderAux.C      | 20 +++---
 src/conversion/ccm/reader/ccmReaderMesh.C     | 71 +++++++++++--------
 src/conversion/ccm/reader/ccmReaderSolution.C |  2 +-
 src/conversion/ccm/reader/ccmSolutionTable.H  | 34 +++------
 src/conversion/ccm/writer/ccmWriter.C         |  4 +-
 src/conversion/ccm/writer/ccmWriterMesh.C     | 10 +--
 src/conversion/ccm/writer/ccmWriterSolution.C |  2 -
 8 files changed, 74 insertions(+), 76 deletions(-)

diff --git a/src/conversion/ccm/reader/ccmInterfaceDefinitions.H b/src/conversion/ccm/reader/ccmInterfaceDefinitions.H
index 1c9ea2c8e55..a96a7b52b15 100644
--- a/src/conversion/ccm/reader/ccmInterfaceDefinitions.H
+++ b/src/conversion/ccm/reader/ccmInterfaceDefinitions.H
@@ -57,6 +57,7 @@ public:
         //- The second boundary
         label bnd1;
 
+
     // Constructors
 
         //- Construct null
@@ -194,7 +195,7 @@ public:
         //- Scan available interface entries for one matching this boundary id
         bool isInterface(label bndId)
         {
-            forAllConstIter(Map<interfaceEntry>, *this, iter)
+            forAllConstIters(*this, iter)
             {
                 if (iter().inInterface(bndId))
                 {
@@ -210,7 +211,7 @@ public:
         word interfaceName(label bndId)
         {
             word ifname;
-            forAllConstIter(Map<interfaceEntry>, *this, iter)
+            forAllConstIters(*this, iter)
             {
                 ifname = iter().canonicalName(bndId);
                 if (!ifname.empty())
@@ -231,7 +232,7 @@ public:
             const interfaceDefinitions& defs
         )
         {
-            os  << static_cast<const Map<interfaceEntry>& >(defs)
+            os  << static_cast<const Map<interfaceEntry>&>(defs)
                 << nl;
 
             return os;
diff --git a/src/conversion/ccm/reader/ccmReaderAux.C b/src/conversion/ccm/reader/ccmReaderAux.C
index f820dcb7f53..717cdd20e88 100644
--- a/src/conversion/ccm/reader/ccmReaderAux.C
+++ b/src/conversion/ccm/reader/ccmReaderAux.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ Foam::Map<Foam::word> Foam::ccm::reader::selectPorous
 {
     Map<word> lookup;
 
-    forAllConstIter(Map<dictionary>, table, iter)
+    forAllConstIters(table, iter)
     {
         if (iter().lookupOrDefault<label>("PorosityId", 0) != 0)
         {
@@ -70,21 +70,21 @@ void Foam::ccm::reader::warnDuplicates
     const wordList& lst
 )
 {
-    HashTable<label> hashed(lst.size());
+    HashTable<label> hashed(2*lst.size());
     bool duplicates = false;
 
-    forAll(lst, elemI)
+    for (const word& item : lst)
     {
-        // Check duplicate name
-        HashTable<label>::iterator iter = hashed.find(lst[elemI]);
-        if (iter != hashed.end())
+        // Check duplicate names
+        auto iter = hashed.find(item);
+        if (iter.found())
         {
             (*iter)++;
             duplicates = true;
         }
         else
         {
-            hashed.insert(lst[elemI], 1);
+            hashed.insert(item, 1);
         }
     }
 
@@ -92,9 +92,9 @@ void Foam::ccm::reader::warnDuplicates
     if (duplicates)
     {
         Info << nl << "WARNING: " << context << " with identical names:";
-        forAllConstIter(HashTable<label>, hashed, iter)
+        forAllConstIters(hashed, iter)
         {
-            if (*iter > 1)
+            if (iter.object() > 1)
             {
                 Info << "  " << iter.key();
             }
diff --git a/src/conversion/ccm/reader/ccmReaderMesh.C b/src/conversion/ccm/reader/ccmReaderMesh.C
index 5c4bf5c1fd9..0eaee2ef47c 100644
--- a/src/conversion/ccm/reader/ccmReaderMesh.C
+++ b/src/conversion/ccm/reader/ccmReaderMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -479,8 +479,8 @@ void Foam::ccm::reader::readCells
         info.setPatchName(ccmReadOptstr("Label", nodeId));
 
         // Lookup the name, type from boundary region info:
-        Map<dictionary>::iterator dictIter = boundaryRegion_.find(info.ccmIndex);
-        if (dictIter != boundaryRegion_.end())
+        auto dictIter = boundaryRegion_.find(info.ccmIndex);
+        if (dictIter.found())
         {
             word patchName(dictIter()["Label"]);
             word patchType(dictIter()["BoundaryType"]);
@@ -576,8 +576,8 @@ void Foam::ccm::reader::readCells
             if (option().combineBoundaries())
             {
                 // Check if patch name was already seen
-                HashTable<label, std::string>::const_iterator citer = hashedNames.find(info.patchName);
-                if (citer != hashedNames.end())
+                auto citer = hashedNames.cfind(info.patchName);
+                if (citer.found())
                 {
                     info.patchId = bndInfo[citer()].patchId;
                 }
@@ -775,7 +775,11 @@ void Foam::ccm::reader::readCells
                 kCCMIOStart,
                 kCCMIOEnd
             );
-            assertNoError("Error reading boundary face cells - index " + ::Foam::name(info.ccmIndex));
+            assertNoError
+            (
+                "Error reading boundary face cells - index "
+              + ::Foam::name(info.ccmIndex)
+            );
 
             // Copy into Foam list
             // ccmFaces are organized as [nVert vrt1 .. vrtN]
@@ -797,7 +801,11 @@ void Foam::ccm::reader::readCells
         }
         else
         {
-            assertNoError("Error reading boundary faces - index " + ::Foam::name(info.ccmIndex));
+            assertNoError
+            (
+                "Error reading boundary faces - index "
+              + ::Foam::name(info.ccmIndex)
+            );
         }
     }
 
@@ -1106,11 +1114,10 @@ void Foam::ccm::reader::readMonitoring
                 << "ccmRegionId: " << ccmRegionId << endl;
 #endif
 
-            Map<dictionary>::const_iterator
-                iter = boundaryRegion_.find(ccmRegionId);
+            auto iter = boundaryRegion_.cfind(ccmRegionId);
 
             word zoneName;
-            if (iter != boundaryRegion_.end())
+            if (iter.found())
             {
                 iter().lookup("Label") >> zoneName;
             }
@@ -1314,7 +1321,7 @@ void Foam::ccm::reader::removeUnwanted()
         {
             Map<word> keepMap;
 
-            forAllConstIter(Map<dictionary>, cellTable_, iter)
+            forAllConstIters(cellTable_, iter)
             {
                 const label tableId = iter.key();
                 if (!removeMap.found(tableId))
@@ -1326,17 +1333,19 @@ void Foam::ccm::reader::removeUnwanted()
             Info<<"remove "<< nRemove << " cells in "
                 << removeMap.size() << " unwanted cellZone(s)" << nl;
 
-            forAllConstIter(Map<word>, removeMap, iter)
+            forAllConstIters(removeMap, iter)
             {
-                Info<< "    zone " << iter.key() << " : "<< iter() << nl;
+                Info<< "    zone "
+                    << iter.key() << " : " << iter.object() << nl;
             }
 
             Info<<"retain "<< (nCells_ - nRemove) << " cells in "
                 << keepMap.size() << " cellZone(s)" << nl;
 
-            forAllConstIter(Map<word>, keepMap, iter)
+            forAllConstIters(keepMap, iter)
             {
-                Info<< "    zone " << iter.key() << " : "<< iter() << nl;
+                Info<< "    zone "
+                    << iter.key() << " : " << iter.object() << nl;
             }
         }
     }
@@ -1821,7 +1830,7 @@ void Foam::ccm::reader::cleanupInterfaces()
 //             << SubList<label>(oldToNew, nFaces_ - nInternalFaces_, nInternalFaces_)
 //             << endl;
 
-        forAllIter(HashTable<labelList>, monitoringSets_, iter)
+        forAllIters(monitoringSets_, iter)
         {
             inplaceRenumber(oldToNew, iter());
         }
@@ -1903,7 +1912,12 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
             findIndex(origBndId_, ifentry.bnd1)
         );
 
-        if (patchPair[0] == patchPair[1] || patchPair[0] < 0 || patchPair[1] < 0)
+        if
+        (
+            patchPair[0] == patchPair[1]
+         || patchPair[0] < 0
+         || patchPair[1] < 0
+        )
         {
             // This should not happen
             Info<<"Warning : bad interface " << interI << " " << ifentry
@@ -1985,7 +1999,7 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
 
         const UIndirectList<point> pointsToMerge(points_, addr);
 
-        Info<< "    patch "  << patch0 << ", " << patch1 << ": ("
+        Info<< "    patch "  << patch0 << "," << patch1 << ": ("
             << nPatch0Faces << " and " << nPatch1Faces << " faces) " << flush;
 
         label nMerged = mergePoints
@@ -2175,11 +2189,11 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
             // Note which one were successful
             labelHashSet done(failed0.size());
 
-            forAllConstIter(labelHashSet, failed0, iter0)
+            forAllConstIters(failed0, iter0)
             {
                 const label face0I = iter0.key();
 
-                forAllConstIter(labelHashSet, failed1, iter1)
+                forAllConstIters(failed1, iter1)
                 {
                     const label face1I = iter1.key();
 
@@ -2421,10 +2435,10 @@ void Foam::ccm::reader::reorderMesh()
     inplaceReorder(oldToNew, faceNeighbour_);
     inplaceReorder(oldToNew, origFaceId_);
 
-    forAllIter(HashTable<labelList>, monitoringSets_, iter)
+    forAllIters(monitoringSets_, iter)
     {
-        inplaceRenumber(oldToNew, iter());
-        labelList &lst = iter();
+        labelList& lst = iter.object();
+        inplaceRenumber(oldToNew, lst);
 
         // disallow monitoring on boundaries
         label nElem = 0;
@@ -2436,7 +2450,7 @@ void Foam::ccm::reader::reorderMesh()
                 {
                     lst[nElem] = lst[i];
                 }
-                nElem++;
+                ++nElem;
             }
         }
 
@@ -2478,10 +2492,9 @@ void Foam::ccm::reader::addPatches
         word patchName;
         word patchType;
 
-        Map<dictionary>::const_iterator
-            citer = boundaryRegion_.find(origBndId_[patchI]);
+        auto citer = boundaryRegion_.cfind(origBndId_[patchI]);
 
-        if (citer != boundaryRegion_.end())
+        if (citer.found())
         {
             citer().lookup("Label") >> patchName;
             citer().lookup("BoundaryType") >> patchType;
@@ -2593,7 +2606,7 @@ void Foam::ccm::reader::addFaceZones
     }
 
     nZone = 0;
-    forAllConstIter(HashTable<labelList>, monitoringSets_, iter)
+    forAllConstIters(monitoringSets_, iter)
     {
         Info<< "faceZone " << nZone
             << " (size: " << iter().size() << ") name: "
@@ -2612,7 +2625,7 @@ void Foam::ccm::reader::addFaceZones
             )
         );
 
-        nZone++;
+        ++nZone;
     }
 
     mesh.faceZones().writeOpt() = IOobject::AUTO_WRITE;
diff --git a/src/conversion/ccm/reader/ccmReaderSolution.C b/src/conversion/ccm/reader/ccmReaderSolution.C
index 04881011f35..e849823b346 100644
--- a/src/conversion/ccm/reader/ccmReaderSolution.C
+++ b/src/conversion/ccm/reader/ccmReaderSolution.C
@@ -622,7 +622,7 @@ Foam::ccm::reader::readField
                             // transcribe to output list
                             forAll(mapData, i)
                             {
-                                label cellId = mapData[i];
+                                const label cellId = mapData[i];
                                 scalarData[cellId] = rawData[i];
                             }
 
diff --git a/src/conversion/ccm/reader/ccmSolutionTable.H b/src/conversion/ccm/reader/ccmSolutionTable.H
index e223d1c7480..1be10bc2ddd 100644
--- a/src/conversion/ccm/reader/ccmSolutionTable.H
+++ b/src/conversion/ccm/reader/ccmSolutionTable.H
@@ -50,8 +50,8 @@ class namesList
     public SLList<T>
 {
 public:
-    typedef typename SLList<T>::const_iterator const_iterator;
-    typedef typename SLList<T>::iterator iterator;
+    using const_iterator = typename SLList<T>::const_iterator;
+    using iterator = typename SLList<T>::iterator;
 
     // Constructors
 
@@ -65,12 +65,7 @@ public:
         //- Return true if a list element has a name that matches key
         bool found(const word& key) const
         {
-            for
-            (
-                const_iterator iter = SLList<T>::begin();
-                iter != SLList<T>::end();
-                ++iter
-            )
+            forAllConstIters(*this, iter)
             {
                 if (iter().name() == key)
                 {
@@ -85,12 +80,7 @@ public:
         //- Find a list element has a name matching key
         iterator find(const word& key)
         {
-            for
-            (
-                iterator iter = SLList<T>::begin();
-                iter != SLList<T>::end();
-                ++iter
-            )
+            forAllIters(*this, iter)
             {
                 if (iter().name() == key)
                 {
@@ -112,12 +102,7 @@ public:
             List<word> matched(SLList<T>::size());
 
             label matchI = 0;
-            for
-            (
-                const_iterator iter = SLList<T>::begin();
-                iter != SLList<T>::end();
-                ++iter
-            )
+            forAllConstIters(*this, iter)
             {
                 const word& name = iter().name();
 
@@ -382,15 +367,16 @@ public:
             namesList<fieldEntry>()
         {}
 
+
     // Access
 
         //- The maximum cell Id referenced in the list
         label maxCellId() const
         {
             label maxId = 0;
-            forAllConstIter(namesList<fieldEntry>, *this, iter)
+            forAllConstIters(*this, iter)
             {
-                label currMax = (iter()).maxCellId();
+                const label currMax = iter().maxCellId();
 
                 if (maxId < currMax)
                 {
@@ -407,9 +393,9 @@ public:
         {
             label maxId = 0;
 
-            forAllConstIter(namesList<fieldEntry>, *this, iter)
+            forAllConstIters(*this, iter)
             {
-                label currMax = (iter()).maxFaceId();
+                const label currMax = iter().maxFaceId();
 
                 if (maxId < currMax)
                 {
diff --git a/src/conversion/ccm/writer/ccmWriter.C b/src/conversion/ccm/writer/ccmWriter.C
index c78a2fa0686..c08c653caea 100644
--- a/src/conversion/ccm/writer/ccmWriter.C
+++ b/src/conversion/ccm/writer/ccmWriter.C
@@ -95,7 +95,7 @@ void Foam::ccm::writer::writeBoundaryRegion
     // Create dictionary lookup for constant/boundaryRegion
     dictionary typeDict;
 
-    forAllConstIter(Map<dictionary>, boundaryRegion_, iter)
+    forAllConstIters(boundaryRegion_, iter)
     {
         const dictionary& dict = iter();
         if
@@ -207,7 +207,7 @@ void Foam::ccm::writer::writeCellTable
 
     ccmID nodeId;
 
-    forAllConstIter(Map<dictionary>, cellTable_, iter)
+    forAllConstIters(cellTable_, iter)
     {
         label intVal = iter.key();
         const dictionary& dict = iter();
diff --git a/src/conversion/ccm/writer/ccmWriterMesh.C b/src/conversion/ccm/writer/ccmWriterMesh.C
index f17a56a5304..1e2bd0f2b28 100644
--- a/src/conversion/ccm/writer/ccmWriterMesh.C
+++ b/src/conversion/ccm/writer/ccmWriterMesh.C
@@ -567,9 +567,9 @@ void Foam::ccm::writer::writeCells
                     tableId = cellTable_.append(dict);
                 }
 
-                forAll(cZone, i)
+                for (auto id : cZone)
                 {
-                    mapData[cZone[i]] = tableId;
+                    mapData[id] = tableId;
                 }
             }
         }
@@ -582,11 +582,11 @@ void Foam::ccm::writer::writeCells
             dict.add("MaterialType", "fluid");
             label tableId = cellTable_.append(dict);
 
-            forAll(mapData, i)
+            for (auto& id : mapData)
             {
-                if (mapData[i] < 0)
+                if (id < 0)
                 {
-                    mapData[i] = tableId;
+                    id = tableId;
                 }
             }
         }
diff --git a/src/conversion/ccm/writer/ccmWriterSolution.C b/src/conversion/ccm/writer/ccmWriterSolution.C
index 354e9cdf932..3887f895e50 100644
--- a/src/conversion/ccm/writer/ccmWriterSolution.C
+++ b/src/conversion/ccm/writer/ccmWriterSolution.C
@@ -463,8 +463,6 @@ void Foam::ccm::writer::writeSolution
         &phaseNode
     );
 
-
-
     forAllConstIter(IOobjectList, objects, iter)
     {
         word fieldName = (*iter()).name();
-- 
GitLab


From 98ccc6ed5027ab563eb22aadf65537f0ac0433f2 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 30 May 2017 13:18:06 +0200
Subject: [PATCH 267/277] ENH: add prune option for ListOps reorder,
 inplaceReorder

- allows simultaneously reordering and truncation of lists

STYLE: add const ref for UnaryPredicate parameter
---
 .../containers/Lists/ListOps/ListOps.H        |  44 +++++--
 .../Lists/ListOps/ListOpsTemplates.C          |  89 +++++++++----
 src/conversion/ccm/misc/ListOps1.H            |  84 -------------
 src/conversion/ccm/misc/ListOps1Templates.C   | 117 ------------------
 src/conversion/ccm/misc/mergePoints1.C        |  59 +++++----
 src/conversion/ccm/reader/ccmReaderMesh.C     |   2 +-
 6 files changed, 131 insertions(+), 264 deletions(-)
 delete mode 100644 src/conversion/ccm/misc/ListOps1.H
 delete mode 100644 src/conversion/ccm/misc/ListOps1Templates.C

diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
index 46f3784a162..d7c93bef023 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
@@ -57,25 +57,41 @@ static const List<Type>& emptyList()
 
 
 //- Renumber the values (not the indices) of a list.
-//  Negative ListType elements are left as is.
+//  Negative ListType elements are left untouched.
 template<class ListType>
 ListType renumber(const labelUList& oldToNew, const ListType& lst);
 
-//- Inplace renumber the values of a list.
-//  Negative ListType elements are left as is.
+//- Inplace renumber the values (not the indices) of a list.
+//  Negative ListType elements are left untouched.
 template<class ListType>
 void inplaceRenumber(const labelUList& oldToNew, ListType& lst);
 
 
-//- Reorder the elements (indices, not values) of a list.
-//  Negative ListType elements are left as is.
+//- Reorder the elements of a list.
+//  Locations with negative oldToNew values are left as is (copy-through).
+//  However, if pruning is activated, these negative oldToNew values are
+//  instead skipped over and the resulting list shrunk to the max index
+//  actually used.
 template<class ListType>
-ListType reorder(const labelUList& oldToNew, const ListType& lst);
+ListType reorder
+(
+    const labelUList& oldToNew,
+    const ListType& lst,
+    const bool prune = false
+);
 
 //- Inplace reorder the elements of a list.
-//  Negative ListType elements are left as is.
+//  Locations with negative oldToNew values are left as is (copy-through).
+//  However, if pruning is activated, these negative oldToNew values are
+//  instead skipped over and the resulting list shrunk to the max index
+//  actually used.
 template<class ListType>
-void inplaceReorder(const labelUList& oldToNew, ListType& lst);
+void inplaceReorder
+(
+    const labelUList& oldToNew,
+    ListType& lst,
+    const bool prune = false
+);
 
 
 // Variants to work with iterators and sparse tables.
@@ -156,12 +172,20 @@ void inplaceSubset(const BoolListType& select, ListType& lst);
 //- Copy a subset of the input list when predicate is true.
 //  Do not use FixedList for the input list, since it doesn't resize.
 template<class ListType, class UnaryPredicate>
-ListType subsetList(const ListType& input, UnaryPredicate pred);
+ListType subsetList
+(
+    const ListType& input,
+    const UnaryPredicate& pred
+);
 
 //- Inplace subset of the list when predicate is true.
 //  Do not use FixedList for the input list, since it doesn't resize.
 template<class ListType, class UnaryPredicate>
-void inplaceSubsetList(ListType& input, UnaryPredicate pred);
+void inplaceSubsetList
+(
+    ListType& input,
+    const UnaryPredicate& pred
+);
 
 
 //- Invert one-to-one map. Unmapped elements will be -1.
diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
index 48e8b73897e..bf5af3080db 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
@@ -70,23 +70,42 @@ template<class ListType>
 ListType Foam::reorder
 (
     const labelUList& oldToNew,
-    const ListType& lst
+    const ListType& lst,
+    const bool prune
 )
 {
-    ListType newLst(lst.size());
-    newLst.setSize(lst.size()); // Consistent sizes (eg, DynamicList)
+    const label sz = lst.size();
 
-    forAll(lst, elemI)
+    ListType newLst(sz);
+    newLst.setSize(sz);     // Consistent sizing (eg, DynamicList)
+
+    label maxIdx = -1;      // For pruning: newSize = maxIdx+1
+    forAll(lst, i)
     {
-        if (oldToNew[elemI] >= 0)
+        const label newIdx = oldToNew[i];
+        if (newIdx >= 0)
         {
-            newLst[oldToNew[elemI]] = lst[elemI];
+            // Could additionally enforce (newIdx < lst.size())
+            // ... or just rely on FULLDEBUG from UList
+
+            newLst[newIdx] = lst[i];
+
+            if (maxIdx < newIdx)
+            {
+                maxIdx = newIdx;
+            }
         }
-        else
+        else if (!prune)
         {
-            newLst[elemI] = lst[elemI];
+            newLst[i] = lst[i];
         }
     }
+
+    if (prune)
+    {
+        newLst.setSize(maxIdx+1);
+    }
+
     return newLst;
 }
 
@@ -95,24 +114,42 @@ template<class ListType>
 void Foam::inplaceReorder
 (
     const labelUList& oldToNew,
-    ListType& lst
+    ListType& lst,
+    const bool prune
 )
 {
-    ListType newLst(lst.size());
-    newLst.setSize(lst.size()); // Consistent sizing (eg, DynamicList)
+    const label sz = lst.size();
 
-    forAll(lst, elemI)
+    ListType newLst(sz);
+    newLst.setSize(sz);     // Consistent sizing (eg, DynamicList)
+
+    label maxIdx = -1;      // For pruning: newSize = maxIdx+1
+    forAll(lst, i)
     {
-        if (oldToNew[elemI] >= 0)
+        const label newIdx = oldToNew[i];
+        if (newIdx >= 0)
         {
-            newLst[oldToNew[elemI]] = lst[elemI];
+            // Could additionally enforce (newIdx < lst.size())
+            // ... or just rely on FULLDEBUG from UList
+
+            newLst[newIdx] = lst[i];
+
+            if (maxIdx < newIdx)
+            {
+                maxIdx = newIdx;
+            }
         }
-        else
+        else if (!prune)
         {
-            newLst[elemI] = lst[elemI];
+            newLst[i] = lst[i];
         }
     }
 
+    if (prune)
+    {
+        newLst.setSize(maxIdx+1);
+    }
+
     lst.transfer(newLst);
 }
 
@@ -126,9 +163,13 @@ void Foam::inplaceMapValue
 {
     for (auto iter = lst.begin(); iter != lst.end(); ++iter)
     {
-        if (iter.object() >= 0)
+        const label oldIdx = iter.object();
+        if (oldIdx >= 0)
         {
-            iter.object() = oldToNew[iter.object()];
+            // Could additionally enforce (oldIdx < oldToNew.size())
+            // ... or just rely on FULLDEBUG from UList
+
+            iter.object() = oldToNew[oldIdx];
         }
     }
 }
@@ -145,9 +186,13 @@ void Foam::inplaceMapKey
 
     for (auto iter = lst.begin(); iter != lst.end(); ++iter)
     {
-        if (iter.key() >= 0)
+        const label oldIdx = iter.key();
+        if (oldIdx >= 0)
         {
-            newLst.insert(oldToNew[iter.key()], iter.object());
+            // Could additionally enforce (oldIdx < oldToNew.size())
+            // ... or just rely on FULLDEBUG from UList
+
+            newLst.insert(oldToNew[oldIdx], iter.object());
         }
     }
 
@@ -423,7 +468,7 @@ template<class ListType, class UnaryPredicate>
 ListType Foam::subsetList
 (
     const ListType& lst,
-    UnaryPredicate pred
+    const UnaryPredicate& pred
 )
 {
     ListType newLst(lst.size());
@@ -447,7 +492,7 @@ template<class ListType, class UnaryPredicate>
 void Foam::inplaceSubsetList
 (
     ListType& lst,
-    UnaryPredicate pred
+    const UnaryPredicate& pred
 )
 {
     label nElem = 0;
diff --git a/src/conversion/ccm/misc/ListOps1.H b/src/conversion/ccm/misc/ListOps1.H
deleted file mode 100644
index 7e8490240c7..00000000000
--- a/src/conversion/ccm/misc/ListOps1.H
+++ /dev/null
@@ -1,84 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
--------------------------------------------------------------------------------
-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/>.
-
-InNamspace
-    Foam
-
-Description
-    Various functions to operate on Lists.
-
-SourceFiles
-    ListOps.C
-    ListOpsTemplates.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef ListOps1_H
-#define ListOps1_H
-
-#include "ListOps.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-//- Reorder the elements (indices, not values) of a list.
-//  Negative ListType elements are untouched, unless pruning has been selected.
-//  With pruning, these elements are skipped and the list shrinks accordingly.
-template<class ListType>
-ListType reorder
-(
-    const labelUList& oldToNew,
-    const ListType&,
-    const bool prune
-);
-
-//- Inplace reorder the elements of a list.
-//  Negative ListType elements are untouched, unless pruning has been selected.
-//  With pruning, these elements are skipped and the list shrinks accordingly.
-template<class ListType>
-void inplaceReorder
-(
-    const labelUList& oldToNew,
-    ListType&,
-    const bool prune
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#ifdef NoRepository
-    #include "ListOps1Templates.C"
-#endif
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
-
diff --git a/src/conversion/ccm/misc/ListOps1Templates.C b/src/conversion/ccm/misc/ListOps1Templates.C
deleted file mode 100644
index 14a9ac38c92..00000000000
--- a/src/conversion/ccm/misc/ListOps1Templates.C
+++ /dev/null
@@ -1,117 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
--------------------------------------------------------------------------------
-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 "ListOps1.H"
-
-// * * * * * * * * * * * * * * * Global Functions  * * * * * * * * * * * * * //
-
-template<class ListType>
-ListType Foam::reorder
-(
-    const labelUList& oldToNew,
-    const ListType& lst,
-    const bool prune
-)
-{
-    const label sz = lst.size();
-
-    // Create copy
-    ListType newLst(sz);
-
-    // Ensure consistent addressable size (eg, DynamicList)
-    newLst.setSize(sz);
-
-
-    label maxIdx = 0;
-    forAll(lst, elemI)
-    {
-        const label newIdx = oldToNew[elemI];
-        if (newIdx >= 0) // could also require newIdx < sz
-        {
-            newLst[newIdx] = lst[elemI];
-            if (prune && maxIdx < newIdx)
-            {
-                maxIdx = newIdx;
-            }
-        }
-        else if (!prune)
-        {
-            newLst[elemI] = lst[elemI];
-        }
-    }
-
-    if (prune && maxIdx < sz)
-    {
-        newLst.setSize(maxIdx);
-    }
-
-    return newLst;
-}
-
-
-template<class ListType>
-void Foam::inplaceReorder
-(
-    const labelUList& oldToNew,
-    ListType& lst,
-    const bool prune
-)
-{
-    const label sz = lst.size();
-
-    // Create copy
-    ListType newLst(sz);
-
-    // Ensure consistent addressable size (eg, DynamicList)
-    newLst.setSize(sz);
-
-    label maxIdx = 0;
-    forAll(lst, elemI)
-    {
-        const label newIdx = oldToNew[elemI];
-        if (newIdx >= 0) // could also require newIdx < sz
-        {
-            newLst[newIdx] = lst[elemI];
-            if (prune && maxIdx < newIdx)
-            {
-                maxIdx = newIdx;
-            }
-        }
-        else if (!prune)
-        {
-            newLst[elemI] = lst[elemI];
-        }
-    }
-
-    if (prune && maxIdx < sz)
-    {
-        newLst.setSize(maxIdx);
-    }
-
-    lst.transfer(newLst);
-}
-
-
-// ************************************************************************* //
diff --git a/src/conversion/ccm/misc/mergePoints1.C b/src/conversion/ccm/misc/mergePoints1.C
index c1114df3ca0..487ffffdb88 100644
--- a/src/conversion/ccm/misc/mergePoints1.C
+++ b/src/conversion/ccm/misc/mergePoints1.C
@@ -51,9 +51,8 @@ Foam::label Foam::mergePoints
         return 0;
     }
 
-    // No normal field operations on UIndirectList.
-    // Use a tmp pointField instead.
-    tmp<Field<Type>> tPoints(new pointField(points));
+    // Explicitly convert to Field to support various list types
+    tmp<Field<Type>> tPoints(new Field<Type>(points));
 
     Type compareOrigin = origin;
     if (origin == Type::max)
@@ -76,9 +75,9 @@ Foam::label Foam::mergePoints
     const Field<Type> d(tPoints - compareOrigin);
 
     List<scalar> magSqrD(d.size());
-    forAll(d, pointI)
+    forAll(d, pointi)
     {
-        magSqrD[pointI] = magSqr(d[pointI]);
+        magSqrD[pointi] = magSqr(d[pointi]);
     }
     labelList order;
     sortedOrder(magSqrD, order);
@@ -87,41 +86,41 @@ Foam::label Foam::mergePoints
     Field<scalar> sortedTol(points.size());
     forAll(order, sortI)
     {
-        label pointI = order[sortI];
+        label pointi = order[sortI];
 
         // Convert to scalar precision
         const point pt
         (
-            scalar(d[pointI].x()),
-            scalar(d[pointI].y()),
-            scalar(d[pointI].z())
+            scalar(d[pointi].x()),
+            scalar(d[pointi].y()),
+            scalar(d[pointi].z())
         );
         sortedTol[sortI] = 2*mergeTol*(mag(pt.x())+mag(pt.y())+mag(pt.z()));
     }
 
-    label newPointI = 0;
+    label newPointi = 0;
 
     // Handle 0th point separately (is always unique)
-    label pointI = order[0];
-    pointMap[pointI] = newPointI++;
+    label pointi = order[0];
+    pointMap[pointi] = newPointi++;
 
 
     for (label sortI = 1; sortI < order.size(); sortI++)
     {
         // Get original point index
-        label pointI = order[sortI];
+        label pointi = order[sortI];
         const scalar mag2 = magSqrD[order[sortI]];
         // Convert to scalar precision
         const point pt
         (
-            scalar(points[pointI].x()),
-            scalar(points[pointI].y()),
-            scalar(points[pointI].z())
+            scalar(points[pointi].x()),
+            scalar(points[pointi].y()),
+            scalar(points[pointi].z())
         );
 
 
         // Compare to previous points to find equal one.
-        label equalPointI = -1;
+        label equalPointi = -1;
 
         for
         (
@@ -131,46 +130,46 @@ Foam::label Foam::mergePoints
             prevSortI--
         )
         {
-            label prevPointI = order[prevSortI];
+            label prevPointi = order[prevSortI];
             const point prevPt
             (
-                scalar(points[prevPointI].x()),
-                scalar(points[prevPointI].y()),
-                scalar(points[prevPointI].z())
+                scalar(points[prevPointi].x()),
+                scalar(points[prevPointi].y()),
+                scalar(points[prevPointi].z())
             );
 
             if (magSqr(pt - prevPt) <= mergeTolSqr)
             {
                 // Found match.
-                equalPointI = prevPointI;
+                equalPointi = prevPointi;
 
                 break;
             }
         }
 
 
-        if (equalPointI != -1)
+        if (equalPointi != -1)
         {
-            // Same coordinate as equalPointI. Map to same new point.
-            pointMap[pointI] = pointMap[equalPointI];
+            // Same coordinate as equalPointi. Map to same new point.
+            pointMap[pointi] = pointMap[equalPointi];
 
             if (verbose)
             {
                 Pout<< "Foam::mergePoints : Merging points "
-                    << pointI << " and " << equalPointI
-                    << " with coordinates:" << points[pointI]
-                    << " and " << points[equalPointI]
+                    << pointi << " and " << equalPointi
+                    << " with coordinates:" << points[pointi]
+                    << " and " << points[equalPointi]
                     << endl;
             }
         }
         else
         {
             // Differs. Store new point.
-            pointMap[pointI] = newPointI++;
+            pointMap[pointi] = newPointi++;
         }
     }
 
-    return newPointI;
+    return newPointi;
 }
 
 
diff --git a/src/conversion/ccm/reader/ccmReaderMesh.C b/src/conversion/ccm/reader/ccmReaderMesh.C
index 0eaee2ef47c..346e9b557e1 100644
--- a/src/conversion/ccm/reader/ccmReaderMesh.C
+++ b/src/conversion/ccm/reader/ccmReaderMesh.C
@@ -38,7 +38,7 @@ License
 #include "uindirectPrimitivePatch.H"
 #include "SortableList.H"
 #include "mergePoints1.H"
-#include "ListOps1.H"
+#include "ListOps.H"
 
 #include "ccmInternal.H" // include last to avoid any strange interactions
 
-- 
GitLab


From 49129ba88bb63651bd859ed5c837f68be66cae41 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 30 May 2017 14:44:37 +0200
Subject: [PATCH 268/277] COMP: using private data in HashPtrTableIO

---
 .../containers/HashTables/HashPtrTable/HashPtrTableIO.C         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C b/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C
index 7a679ef149b..55004189fe0 100644
--- a/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C
+++ b/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C
@@ -54,7 +54,7 @@ void Foam::HashPtrTable<T, Key, Hash>::read(Istream& is, const INew& inewt)
 
         if (s)
         {
-            if (2*s > this->tableSize_)
+            if (2*s > this->capacity())
             {
                 this->resize(2*s);
             }
-- 
GitLab


From d9072f527cd64dcd63f7ad52757d27ae1fb4c516 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 30 May 2017 14:47:08 +0200
Subject: [PATCH 269/277] COMP: provide NamedEnum::found() method for
 third-party code

- eg, swak4Foam uses it for NumericAccumulationNamedEnum
---
 src/OpenFOAM/primitives/enums/NamedEnum.H  |  3 +++
 src/OpenFOAM/primitives/enums/NamedEnumI.H | 10 ++++++++++
 2 files changed, 13 insertions(+)

diff --git a/src/OpenFOAM/primitives/enums/NamedEnum.H b/src/OpenFOAM/primitives/enums/NamedEnum.H
index 13cff4eb44b..db41012cada 100644
--- a/src/OpenFOAM/primitives/enums/NamedEnum.H
+++ b/src/OpenFOAM/primitives/enums/NamedEnum.H
@@ -117,6 +117,9 @@ public:
 
       // Query
 
+        //- Test if there is an enumeration corresponding to the given name.
+        inline bool found(const word& enumName) const;
+
         //- Test if there is an enumeration corresponding to the given name.
         inline bool hasEnum(const word& enumName) const;
 
diff --git a/src/OpenFOAM/primitives/enums/NamedEnumI.H b/src/OpenFOAM/primitives/enums/NamedEnumI.H
index 2e7c91b10d3..f40a43185ad 100644
--- a/src/OpenFOAM/primitives/enums/NamedEnumI.H
+++ b/src/OpenFOAM/primitives/enums/NamedEnumI.H
@@ -46,6 +46,16 @@ inline Foam::wordList Foam::NamedEnum<EnumType, nEnum>::sortedToc() const
 }
 
 
+template<class EnumType, int nEnum>
+inline bool Foam::NamedEnum<EnumType, nEnum>::found
+(
+    const word& enumName
+) const
+{
+    return lookup_.found(enumName);
+}
+
+
 template<class EnumType, int nEnum>
 inline bool Foam::NamedEnum<EnumType, nEnum>::hasEnum
 (
-- 
GitLab


From 104f43583fa65b8d640eec3fca32518012942062 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 30 May 2017 15:09:06 +0200
Subject: [PATCH 270/277] CONFIG: bump baseline version to 1706

- not yet release, but some of the API and file locations are closer
  to 1706 than to 1612. Needed, for example, for swak4foam.
---
 wmake/rules/General/general | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/wmake/rules/General/general b/wmake/rules/General/general
index 4dffa627e3e..bd57f37e2ff 100644
--- a/wmake/rules/General/general
+++ b/wmake/rules/General/general
@@ -1,5 +1,5 @@
 #-------------------------------*- makefile -*---------------------------------
-WM_VERSION = OPENFOAM_PLUS=1612
+WM_VERSION = OPENFOAM_PLUS=1706
 
 AR         = ar
 ARFLAGS    = cr
-- 
GitLab


From 408b6c7e6b09a1146e2b600ed3079be9c0b9ef66 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 30 May 2017 18:21:01 +0200
Subject: [PATCH 271/277] ENH: mergePoints now with template for list types

- makes it possible to use list types other than UList.
  For example, UIndirectList<point>
---
 src/OpenFOAM/meshes/meshTools/mergePoints.C |  42 +++--
 src/OpenFOAM/meshes/meshTools/mergePoints.H |  17 +-
 src/conversion/ccm/Make/files               |   2 -
 src/conversion/ccm/misc/mergePoints1.C      | 176 --------------------
 src/conversion/ccm/misc/mergePoints1.H      |  73 --------
 src/conversion/ccm/reader/ccmReaderMesh.C   |   9 +-
 6 files changed, 38 insertions(+), 281 deletions(-)
 delete mode 100644 src/conversion/ccm/misc/mergePoints1.C
 delete mode 100644 src/conversion/ccm/misc/mergePoints1.H

diff --git a/src/OpenFOAM/meshes/meshTools/mergePoints.C b/src/OpenFOAM/meshes/meshTools/mergePoints.C
index 3fae7980550..2b99235b72b 100644
--- a/src/OpenFOAM/meshes/meshTools/mergePoints.C
+++ b/src/OpenFOAM/meshes/meshTools/mergePoints.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -29,16 +29,18 @@ License
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-template<class Type>
+template<class PointList>
 Foam::label Foam::mergePoints
 (
-    const UList<Type>& points,
+    const PointList& points,
     const scalar mergeTol,
     const bool verbose,
     labelList& pointMap,
-    const Type& origin
+    typename PointList::const_reference origin
 )
 {
+    typedef typename PointList::value_type point_type;
+
     // Create a old to new point mapping array
     pointMap.setSize(points.size());
     pointMap = -1;
@@ -49,10 +51,10 @@ Foam::label Foam::mergePoints
     }
 
     // Explicitly convert to Field to support various list types
-    tmp<Field<Type>> tPoints(new Field<Type>(points));
+    tmp<Field<point_type>> tPoints(new Field<point_type>(points));
 
-    Type compareOrigin = origin;
-    if (origin == Type::max)
+    point_type compareOrigin = origin;
+    if (origin == point_type::max)
     {
         compareOrigin = sum(tPoints())/points.size();
     }
@@ -69,7 +71,7 @@ Foam::label Foam::mergePoints
     const scalar mergeTolSqr = Foam::sqr(scalar(mergeTol));
 
     // Sort points by magSqr
-    const Field<Type> d(tPoints - compareOrigin);
+    const Field<point_type> d(tPoints - compareOrigin);
 
     List<scalar> magSqrD(d.size());
     forAll(d, pointi)
@@ -77,15 +79,16 @@ Foam::label Foam::mergePoints
         magSqrD[pointi] = magSqr(d[pointi]);
     }
     labelList order;
-    sortedOrder(magSqrD, order);
+    Foam::sortedOrder(magSqrD, order);
 
 
     Field<scalar> sortedTol(points.size());
     forAll(order, sortI)
     {
-        label pointi = order[sortI];
+        const label pointi = order[sortI];
 
         // Convert to scalar precision
+        // NOTE: not yet using point_type template parameter
         const point pt
         (
             scalar(d[pointi].x()),
@@ -104,9 +107,11 @@ Foam::label Foam::mergePoints
     for (label sortI = 1; sortI < order.size(); sortI++)
     {
         // Get original point index
-        label pointi = order[sortI];
+        const label pointi = order[sortI];
         const scalar mag2 = magSqrD[order[sortI]];
+
         // Convert to scalar precision
+        // NOTE: not yet using point_type template parameter
         const point pt
         (
             scalar(points[pointi].x()),
@@ -126,7 +131,10 @@ Foam::label Foam::mergePoints
             prevSortI--
         )
         {
-            label prevPointi = order[prevSortI];
+            const label prevPointi = order[prevSortI];
+
+            // Convert to scalar precision
+            // NOTE: not yet using point_type template parameter
             const point prevPt
             (
                 scalar(points[prevPointi].x()),
@@ -169,18 +177,18 @@ Foam::label Foam::mergePoints
 }
 
 
-template<class Type>
+template<class PointList>
 bool Foam::mergePoints
 (
-    const UList<Type>& points,
+    const PointList& points,
     const scalar mergeTol,
     const bool verbose,
     labelList& pointMap,
-    List<Type>& newPoints,
-    const Type& origin
+    List<typename PointList::value_type>& newPoints,
+    typename PointList::const_reference origin
 )
 {
-    label nUnique = mergePoints
+    const label nUnique = mergePoints
     (
         points,
         mergeTol,
diff --git a/src/OpenFOAM/meshes/meshTools/mergePoints.H b/src/OpenFOAM/meshes/meshTools/mergePoints.H
index 37d41f3e7b3..791075d04a4 100644
--- a/src/OpenFOAM/meshes/meshTools/mergePoints.H
+++ b/src/OpenFOAM/meshes/meshTools/mergePoints.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -46,27 +46,28 @@ namespace Foam
 
 //- Sorts and merges points. All points closer than/equal mergeTol get merged.
 //  Returns the number of unique points and a map from old to new.
-template<class Type>
+template<class PointList>
 label mergePoints
 (
-    const UList<Type>& points,
+    const PointList& points,
     const scalar mergeTol,
     const bool verbose,
     labelList& pointMap,
-    const Type& origin = Type::zero
+    typename PointList::const_reference origin = PointList::value_type::zero
 );
 
+
 //- Sorts and merges points. Determines new points. Returns true if anything
 //  merged (though newPoints still sorted even if not merged).
-template<class Type>
+template<class PointList>
 bool mergePoints
 (
-    const UList<Type>& points,
+    const PointList& points,
     const scalar mergeTol,
     const bool verbose,
     labelList& pointMap,
-    List<Type>& newPoints,
-    const Type& origin = Type::zero
+    List<typename PointList::value_type>& newPoints,
+    typename PointList::const_reference origin = PointList::value_type::zero
 );
 
 } // End namespace Foam
diff --git a/src/conversion/ccm/Make/files b/src/conversion/ccm/Make/files
index 89ec20a1db3..34495168b9b 100644
--- a/src/conversion/ccm/Make/files
+++ b/src/conversion/ccm/Make/files
@@ -11,6 +11,4 @@ writer/ccmWriter.C
 writer/ccmWriterMesh.C
 writer/ccmWriterSolution.C
 
-/* misc/mergePoints1.C */
-
 LIB = $(FOAM_LIBBIN)/libccm
diff --git a/src/conversion/ccm/misc/mergePoints1.C b/src/conversion/ccm/misc/mergePoints1.C
deleted file mode 100644
index 487ffffdb88..00000000000
--- a/src/conversion/ccm/misc/mergePoints1.C
+++ /dev/null
@@ -1,176 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
--------------------------------------------------------------------------------
-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 "ListOps.H"
-#include "point.H"
-#include "Field.H"
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-
-// template<class Type, template<class> class ListType=UList>
-template<class Type>
-Foam::label Foam::mergePoints
-(
-    const bool dummy,
-    const UIndirectList<Type>& points,
-    const scalar mergeTol,
-    const bool verbose,
-    labelList& pointMap,
-    const Type& origin
-)
-{
-    // Create a old to new point mapping array
-    pointMap.setSize(points.size());
-    pointMap = -1;
-
-    if (points.empty())
-    {
-        return 0;
-    }
-
-    // Explicitly convert to Field to support various list types
-    tmp<Field<Type>> tPoints(new Field<Type>(points));
-
-    Type compareOrigin = origin;
-    if (origin == Type::max)
-    {
-        compareOrigin = sum(tPoints())/points.size();
-    }
-
-    // We're comparing distance squared to origin first.
-    // Say if starting from two close points:
-    //     x, y, z
-    //     x+mergeTol, y+mergeTol, z+mergeTol
-    // Then the magSqr of both will be
-    //     x^2+y^2+z^2
-    //     x^2+y^2+z^2 + 2*mergeTol*(x+z+y) + mergeTol^2*...
-    // so the difference will be 2*mergeTol*(x+y+z)
-
-    const scalar mergeTolSqr = Foam::sqr(scalar(mergeTol));
-
-    // Sort points by magSqr
-    const Field<Type> d(tPoints - compareOrigin);
-
-    List<scalar> magSqrD(d.size());
-    forAll(d, pointi)
-    {
-        magSqrD[pointi] = magSqr(d[pointi]);
-    }
-    labelList order;
-    sortedOrder(magSqrD, order);
-
-
-    Field<scalar> sortedTol(points.size());
-    forAll(order, sortI)
-    {
-        label pointi = order[sortI];
-
-        // Convert to scalar precision
-        const point pt
-        (
-            scalar(d[pointi].x()),
-            scalar(d[pointi].y()),
-            scalar(d[pointi].z())
-        );
-        sortedTol[sortI] = 2*mergeTol*(mag(pt.x())+mag(pt.y())+mag(pt.z()));
-    }
-
-    label newPointi = 0;
-
-    // Handle 0th point separately (is always unique)
-    label pointi = order[0];
-    pointMap[pointi] = newPointi++;
-
-
-    for (label sortI = 1; sortI < order.size(); sortI++)
-    {
-        // Get original point index
-        label pointi = order[sortI];
-        const scalar mag2 = magSqrD[order[sortI]];
-        // Convert to scalar precision
-        const point pt
-        (
-            scalar(points[pointi].x()),
-            scalar(points[pointi].y()),
-            scalar(points[pointi].z())
-        );
-
-
-        // Compare to previous points to find equal one.
-        label equalPointi = -1;
-
-        for
-        (
-            label prevSortI = sortI - 1;
-            prevSortI >= 0
-         && (mag(magSqrD[order[prevSortI]] - mag2) <= sortedTol[sortI]);
-            prevSortI--
-        )
-        {
-            label prevPointi = order[prevSortI];
-            const point prevPt
-            (
-                scalar(points[prevPointi].x()),
-                scalar(points[prevPointi].y()),
-                scalar(points[prevPointi].z())
-            );
-
-            if (magSqr(pt - prevPt) <= mergeTolSqr)
-            {
-                // Found match.
-                equalPointi = prevPointi;
-
-                break;
-            }
-        }
-
-
-        if (equalPointi != -1)
-        {
-            // Same coordinate as equalPointi. Map to same new point.
-            pointMap[pointi] = pointMap[equalPointi];
-
-            if (verbose)
-            {
-                Pout<< "Foam::mergePoints : Merging points "
-                    << pointi << " and " << equalPointi
-                    << " with coordinates:" << points[pointi]
-                    << " and " << points[equalPointi]
-                    << endl;
-            }
-        }
-        else
-        {
-            // Differs. Store new point.
-            pointMap[pointi] = newPointi++;
-        }
-    }
-
-    return newPointi;
-}
-
-
-// ************************************************************************* //
diff --git a/src/conversion/ccm/misc/mergePoints1.H b/src/conversion/ccm/misc/mergePoints1.H
deleted file mode 100644
index 85fc56210a2..00000000000
--- a/src/conversion/ccm/misc/mergePoints1.H
+++ /dev/null
@@ -1,73 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
--------------------------------------------------------------------------------
-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/>.
-
-Description
-    Merge points. See below.
-
-SourceFiles
-    mergePoints.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef mergePoints1_H
-#define mergePoints1_H
-
-#include "scalar.H"
-#include "labelList.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/*---------------------------------------------------------------------------*\
-                           Function mergePoints Declaration
-\*---------------------------------------------------------------------------*/
-
-//- Sorts and merges points. All points closer than/equal mergeTol get merged.
-//  Returns the number of unique points and a map from old to new.
-//template<class Type, template<class> class ListType=UList>
-template<class Type>
-label mergePoints
-(
-    const bool dummy,
-    const UIndirectList<Type>& points,
-    const scalar mergeTol,
-    const bool verbose,
-    labelList& pointMap,
-    const Type& origin = Type::zero
-);
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#ifdef NoRepository
-    #include "mergePoints1.C"
-#endif
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/conversion/ccm/reader/ccmReaderMesh.C b/src/conversion/ccm/reader/ccmReaderMesh.C
index 346e9b557e1..c1f5077bdf1 100644
--- a/src/conversion/ccm/reader/ccmReaderMesh.C
+++ b/src/conversion/ccm/reader/ccmReaderMesh.C
@@ -37,7 +37,7 @@ License
 #include "PackedList.H"
 #include "uindirectPrimitivePatch.H"
 #include "SortableList.H"
-#include "mergePoints1.H"
+#include "mergePoints.H"
 #include "ListOps.H"
 
 #include "ccmInternal.H" // include last to avoid any strange interactions
@@ -2002,9 +2002,8 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
         Info<< "    patch "  << patch0 << "," << patch1 << ": ("
             << nPatch0Faces << " and " << nPatch1Faces << " faces) " << flush;
 
-        label nMerged = mergePoints
+        const label nMerged = mergePoints
         (
-            true,
             pointsToMerge,
             option().mergeTol(),
             false,
@@ -2017,9 +2016,9 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
         if (nMerged)
         {
             // Transcribe local to global addressing
-            forAll(mergedPointMap, lookupI)
+            forAll(mergedPointMap, i)
             {
-                oldToNew[addr[lookupI]] = addr[mergedPointMap[lookupI]];
+                oldToNew[addr[i]] = addr[mergedPointMap[i]];
             }
 
             interfacesToMerge.append(interI);
-- 
GitLab


From 8a52553b63ed1ff55eedc24b73e29fbafe2d96b2 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Wed, 31 May 2017 08:59:36 +0100
Subject: [PATCH 272/277] BUG: snappyHexMesh: extraneous debug printing. Fixes
 #485.

---
 .../snappyHexMeshDriver/snappyLayerDriver.C   | 39 ++++++++++++++-----
 1 file changed, 29 insertions(+), 10 deletions(-)

diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
index a8ebbcd9ea0..e24f9c54972 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
@@ -493,9 +493,22 @@ void Foam::snappyLayerDriver::handleNonStringConnected
     // warning from checkMesh. These faces cannot be extruded so
     // there is no need to even attempt it.
 
-List<extrudeMode> oldExtrudeStatus(extrudeStatus);
-OBJstream str(meshRefiner_.mesh().time().path()/"nonStringConnected.obj");
-Pout<< "Dumping string edges to " << str.name();
+    List<extrudeMode> oldExtrudeStatus;
+    autoPtr<OBJstream> str;
+    if (debug&meshRefinement::LAYERINFO)
+    {
+        oldExtrudeStatus = extrudeStatus;
+        str.reset
+        (
+            new OBJstream
+            (
+                meshRefiner_.mesh().time().path()
+               /"nonStringConnected.obj"
+            )
+        );
+        Pout<< "Dumping string edges to " << str().name();
+    }
+
 
     // 1) Local
     Map<label> nCommonPoints(100);
@@ -521,15 +534,21 @@ Pout<< "Dumping string edges to " << str.name();
 
     // 2) TDB. Other face remote
 
-forAll(extrudeStatus, pointi)
-{
-    if (extrudeStatus[pointi] != oldExtrudeStatus[pointi])
-    {
-        str.write(meshRefiner_.mesh().points()[pp.meshPoints()[pointi]]);
-    }
-}
 
 
+    if (debug&meshRefinement::LAYERINFO)
+    {
+        forAll(extrudeStatus, pointi)
+        {
+            if (extrudeStatus[pointi] != oldExtrudeStatus[pointi])
+            {
+                str().write
+                (
+                    meshRefiner_.mesh().points()[pp.meshPoints()[pointi]]
+                );
+            }
+        }
+    }
 }
 
 
-- 
GitLab


From 0be69605fd5e6f507def712913f5cbf76ffeda86 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 31 May 2017 10:02:55 +0200
Subject: [PATCH 273/277] STYLE: incorrect namespace for doxygen

---
 .../diameterModels/constantDiameter/constantDiameter.H        | 4 ++--
 .../constantSurfaceTensionCoefficient.H                       | 2 +-
 .../constantAspectRatio/constantAspectRatio.H                 | 2 +-
 .../constantAspectRatio/constantAspectRatio.H                 | 2 +-
 src/regionModels/pyrolysisModels/noPyrolysis/noPyrolysis.H    | 2 +-
 .../pyrolysisModels/pyrolysisModel/pyrolysisModelCollection.H | 2 +-
 .../pyrolysisModels/reactingOneDim/reactingOneDim.H           | 2 +-
 src/regionModels/pyrolysisModels/thermo/thermo.H              | 2 +-
 src/regionModels/regionModel/regionModel/regionModel.H        | 2 +-
 src/regionModels/regionModel/regionModel1D/regionModel1D.H    | 2 +-
 .../regionModelFunctionObject/regionModelFunctionObject.H     | 2 +-
 .../regionModelFunctionObject/regionModelFunctionObjectList.H | 2 +-
 .../regionModel/singleLayerRegion/singleLayerRegion.H         | 2 +-
 .../kinematicSingleLayer/kinematicSingleLayer.H               | 2 +-
 src/regionModels/surfaceFilmModels/noFilm/noFilm.H            | 2 +-
 .../surfaceFilmModels/submodels/filmSubModelBase.H            | 2 +-
 .../filmThermoModel/constantFilmThermo/constantFilmThermo.H   | 2 +-
 .../filmThermoModel/filmThermoModel/filmThermoModel.H         | 2 +-
 .../filmThermoModel/liquidFilmThermo/liquidFilmThermo.H       | 2 +-
 .../submodels/kinematic/force/forceList/forceList.H           | 2 +-
 .../force/thermocapillaryForce/thermocapillaryForce.H         | 2 +-
 .../BrunDrippingInjection/BrunDrippingInjection.H             | 2 +-
 .../injectionModel/curvatureSeparation/curvatureSeparation.H  | 2 +-
 .../injectionModel/drippingInjection/drippingInjection.H      | 4 ++--
 .../injectionModel/injectionModelList/injectionModelList.H    | 2 +-
 .../filmRadiationModel/constantRadiation/constantRadiation.H  | 2 +-
 .../filmRadiationModel/filmRadiationModel.H                   | 2 +-
 .../thermo/filmRadiationModel/noRadiation/noRadiation.H       | 2 +-
 .../filmRadiationModel/primaryRadiation/primaryRadiation.H    | 2 +-
 .../filmRadiationModel/standardRadiation/standardRadiation.H  | 2 +-
 .../ArrheniusViscosity/ArrheniusViscosity.H                   | 2 +-
 .../filmViscosityModel/constantViscosity/constantViscosity.H  | 2 +-
 .../filmViscosityModel/filmViscosityModel.H                   | 2 +-
 .../filmViscosityModel/liquidViscosity/liquidViscosity.H      | 2 +-
 .../thixotropicViscosity/thixotropicViscosity.H               | 2 +-
 .../constantHeatTransfer/constantHeatTransfer.H               | 2 +-
 .../heatTransferModel/heatTransferModel/heatTransferModel.H   | 2 +-
 .../mappedConvectiveHeatTransfer.H                            | 2 +-
 .../thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H     | 2 +-
 .../phaseChangeModel/phaseChangeModel/phaseChangeModel.H      | 2 +-
 .../thermo/phaseChangeModel/solidification/solidification.H   | 2 +-
 .../standardPhaseChange/standardPhaseChange.H                 | 2 +-
 .../surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.H   | 2 +-
 src/regionModels/thermalBaffleModels/noThermo/noThermo.H      | 2 +-
 .../thermalBaffleModels/thermalBaffle/thermalBaffle.H         | 2 +-
 .../thermalBaffleModel/thermalBaffleModel.H                   | 2 +-
 46 files changed, 48 insertions(+), 48 deletions(-)

diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H
index 071820c319f..738b7ae5704 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H
@@ -22,13 +22,13 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constant
+    Foam::diameterModels::constant
 
 Description
     Constant dispersed-phase particle diameter model.
 
 SourceFiles
-    constant.C
+    constantDiameter.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H
index 636dc572932..94daf770276 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constantSurfaceTensionCoefficient
+    Foam::surfaceTensionModels::constantSurfaceTensionCoefficient
 
 Description
     Constant value surface tension model.
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H
index 4ca36a0a965..c5963a3efff 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constantAspectRatio
+    Foam::aspectRatioModels::constantAspectRatio
 
 Description
     Constant value aspect ratio model.
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H
index 4ca36a0a965..c5963a3efff 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/constantAspectRatio/constantAspectRatio.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constantAspectRatio
+    Foam::aspectRatioModels::constantAspectRatio
 
 Description
     Constant value aspect ratio model.
diff --git a/src/regionModels/pyrolysisModels/noPyrolysis/noPyrolysis.H b/src/regionModels/pyrolysisModels/noPyrolysis/noPyrolysis.H
index b7220ce97d4..67cec6fdc0a 100644
--- a/src/regionModels/pyrolysisModels/noPyrolysis/noPyrolysis.H
+++ b/src/regionModels/pyrolysisModels/noPyrolysis/noPyrolysis.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::noPyrolysis
+    Foam::regionModels::pyrolysisModels::noPyrolysis
 
 Description
     Dummy surface pyrolysis model for 'none'
diff --git a/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModelCollection.H b/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModelCollection.H
index 06d3597c62f..c91e727bf46 100644
--- a/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModelCollection.H
+++ b/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModelCollection.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::pyrolysisModelCollection
+    Foam::regionModels::pyrolysisModels::pyrolysisModelCollection
 
 Description
     A centralized pyrolysis collection.
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
index 5a6afe07eb7..ed25394608d 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::reactingOneDim
+    Foam::regionModels::pyrolysisModels::reactingOneDim
 
 Description
     Reacting, 1-D pyrolysis model
diff --git a/src/regionModels/pyrolysisModels/thermo/thermo.H b/src/regionModels/pyrolysisModels/thermo/thermo.H
index 82489aa0cb5..8efd72872a1 100644
--- a/src/regionModels/pyrolysisModels/thermo/thermo.H
+++ b/src/regionModels/pyrolysisModels/thermo/thermo.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::thermo
+    Foam::regionModels::pyrolysisModels::thermo
 
 Description
     Pyrolysis model which solves only the energy equation in the region.
diff --git a/src/regionModels/regionModel/regionModel/regionModel.H b/src/regionModels/regionModel/regionModel/regionModel.H
index 9fc179d082c..3c30cb0f1c7 100644
--- a/src/regionModels/regionModel/regionModel/regionModel.H
+++ b/src/regionModels/regionModel/regionModel/regionModel.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::regionModel
+    Foam::regionModels::regionModel
 
 Description
     Base class for region models
diff --git a/src/regionModels/regionModel/regionModel1D/regionModel1D.H b/src/regionModels/regionModel/regionModel1D/regionModel1D.H
index 3663a946488..1a545269625 100644
--- a/src/regionModels/regionModel/regionModel1D/regionModel1D.H
+++ b/src/regionModels/regionModel/regionModel1D/regionModel1D.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::regionModel1D
+    Foam::regionModels::regionModel1D
 
 Description
     Base class for 1-D region models
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
index 2f96d310ca2..e39918ed61b 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::regionModelFunctionObject
+    Foam::regionModels::regionModelFunctionObject
 
 Description
     Region model function object base class
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
index 159ee4714d9..0e292b8b9ef 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::regionModelFunctionObjectList
+    Foam::regionModels::regionModelFunctionObjectList
 
 Description
     List of cloud function objects
diff --git a/src/regionModels/regionModel/singleLayerRegion/singleLayerRegion.H b/src/regionModels/regionModel/singleLayerRegion/singleLayerRegion.H
index ccababa2724..4dbb1eda974 100644
--- a/src/regionModels/regionModel/singleLayerRegion/singleLayerRegion.H
+++ b/src/regionModels/regionModel/singleLayerRegion/singleLayerRegion.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::singleLayerRegion
+    Foam::regionModels::singleLayerRegion
 
 Description
     Base class for single layer region models
diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H
index bedb0957d73..8c3325b7aff 100644
--- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H
+++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::kinematicSingleLayer
+    Foam::regionModels::surfaceFilmModels::kinematicSingleLayer
 
 Description
     Kinematic form of single-cell layer surface film model
diff --git a/src/regionModels/surfaceFilmModels/noFilm/noFilm.H b/src/regionModels/surfaceFilmModels/noFilm/noFilm.H
index 20e115fecf7..7421b64ac9e 100644
--- a/src/regionModels/surfaceFilmModels/noFilm/noFilm.H
+++ b/src/regionModels/surfaceFilmModels/noFilm/noFilm.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::noFilm
+    Foam::regionModels::surfaceFilmModels::noFilm
 
 Description
     Dummy surface film model for 'none'
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
index 9160fa24696..8d4cfd54c5d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::subModelBase
+    Foam::regionModels::surfaceFilmModels::filmSubModelBase
 
 Description
     Base class for surface film sub-models
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
index e5ef5baf90b..eed60f09e0e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constantFilmThermo
+    Foam::regionModels::surfaceFilmModels::constantFilmThermo
 
 Description
     Constant thermo model
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
index d6a4c296a18..efa1de65171 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::filmThermoModel
+    Foam::regionModels::surfaceFilmModels::filmThermoModel
 
 Description
     Base class for film thermo models
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
index 20863e6fdaa..4b3b2b9ae6d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::liquidFilmThermo
+    Foam::regionModels::surfaceFilmModels::liquidFilmThermo
 
 Description
     Liquid thermo model
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
index bc6c28c1e2f..55ae056d3f5 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::forceList
+    Foam::regionModels::surfaceFilmModels::forceList
 
 Description
     List container for film sources
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
index ee2f1a0b548..283ebbf9b15 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::thermocapillaryForce
+    Foam::regionModels::surfaceFilmModels::thermocapillaryForce
 
 Description
     Thermocapillary force
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
index 91ba6a84ec5..6c08188bb02 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::BrunDrippingInjection
+    Foam::regionModels::surfaceFilmModels::BrunDrippingInjection
 
 Description
     Film Dripping mass transfer model.
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
index 8d788ede24c..9ee2cd0a4c9 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::curvatureSeparation
+    Foam::regionModels::surfaceFilmModels::curvatureSeparation
 
 Description
     Curvature film separation model
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
index 27525a2dd66..46476c822b1 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
@@ -22,10 +22,10 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::drippingInjection
+    Foam::regionModels::surfaceFilmModels::drippingInjection
 
 Description
-    Film Dripping mass transfer model.
+    Film dripping mass transfer model.
 
     If the film mass exceeds that needed to generate a valid parcel, the
     equivalent mass is removed from the film.
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
index ce98fac5c2e..49767432064 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::injectionModelList
+    Foam::regionModels::surfaceFilmModels::injectionModelList
 
 Description
     List container for film injection models
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
index f33dc1dbe8f..e342bd880c3 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constantRadiation
+    Foam::regionModels::surfaceFilmModels::constantRadiation
 
 Description
     Film constant radiation model.  The constant radiative flux is specified
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
index b73e91cf23d..eccd964c628 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::filmRadiationModel
+    Foam::regionModels::surfaceFilmModels::filmRadiationModel
 
 Description
     Base class for film radiation models
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
index fa24e18c251..605104320f9 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::noRadiation
+    Foam::regionModels::surfaceFilmModels::noRadiation
 
 Description
     Dummy radiation model for 'none' option
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
index d2b9da585cf..b93561d49e8 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::primaryRadiation
+    Foam::regionModels::surfaceFilmModels::primaryRadiation
 
 Description
     Radiation model whereby the radiative heat flux is mapped from the primary
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
index 191f1dab9d8..7375ef79ec9 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::standardRadiation
+    Foam::regionModels::surfaceFilmModels::standardRadiation
 
 Description
     Standard radiation model
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
index 94d726c314e..079cfd588a5 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::ArrheniusViscosity
+    Foam::regionModels::surfaceFilmModels::ArrheniusViscosity
 
 Description
     The Arrhenius temperature-dependent viscosity model multiplies the viscosity
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
index 4b9f1aad40b..c93d0dddb11 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constantViscosity
+    Foam::regionModels::surfaceFilmModels::constantViscosity
 
 Description
     Constant viscosity model
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
index e7bf66ea0a4..042ea759bd6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::filmViscosityModel
+    Foam::regionModels::surfaceFilmModels::filmViscosityModel
 
 Description
     Base class for surface film viscosity models
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
index 5b9e5d3ab0e..1614fade8e6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::liquidViscosity
+    Foam::regionModels::surfaceFilmModels::liquidViscosity
 
 Description
     liquidViscosity viscosity model
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
index a25f75f8b58..ff2b3d0c3b3 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::thixotropicViscosity
+    Foam::regionModels::surfaceFilmModels::thixotropicViscosity
 
 Description
     Thixotropic viscosity model based on the evolution of the structural
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
index b36eeb9a670..6fc13fbf5e2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::constantHeatTransfer
+    Foam::regionModels::surfaceFilmModels::constantHeatTransfer
 
 Description
     Constant heat transfer model
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
index 31bf1207dbf..80d87b7e6d2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::heatTransferModel
+    Foam::regionModels::surfaceFilmModels::heatTransferModel
 
 Description
     Base class for film heat transfer models
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
index caf980bdf22..2016eb7b72d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::mappedConvectiveHeatTransfer
+    Foam::regionModels::surfaceFilmModels::mappedConvectiveHeatTransfer
 
 Description
     Convective heat transfer model based on a re-working of a Nusselt number
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
index cbcd3d65e12..9fbe036bfcc 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::noPhaseChange
+    Foam::regionModels::surfaceFilmModels::noPhaseChange
 
 Description
     Dummy phase change model for 'none'
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
index bf87c332811..7a59ad4d477 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::phaseChangeModel
+    Foam::regionModels::surfaceFilmModels::phaseChangeModel
 
 Description
     Base class for surface film phase change models
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
index 6ceeba82f4f..e355cd37365 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::solidification
+    Foam::regionModels::surfaceFilmModels::solidification
 
 Description
     Solidification phase change model where all film mass is converted when the
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
index ae28ae4b50b..5c9cbfc369b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::standardPhaseChange
+    Foam::regionModels::surfaceFilmModels::standardPhaseChange
 
 Description
     Standard phase change model with modification for boiling
diff --git a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.H b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.H
index 941aa731453..e770d8b56cb 100644
--- a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.H
+++ b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::thermoSingleLayer
+    Foam::regionModels::surfaceFilmModels::thermoSingleLayer
 
 Description
     Thermodynamic form of single-cell layer surface film model
diff --git a/src/regionModels/thermalBaffleModels/noThermo/noThermo.H b/src/regionModels/thermalBaffleModels/noThermo/noThermo.H
index 9fed26466a7..85e4396a37f 100644
--- a/src/regionModels/thermalBaffleModels/noThermo/noThermo.H
+++ b/src/regionModels/thermalBaffleModels/noThermo/noThermo.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::noThermo
+    Foam::regionModels::thermalBaffleModels::noThermo
 
 Description
     Dummy surface pyrolysis model for 'none'
diff --git a/src/regionModels/thermalBaffleModels/thermalBaffle/thermalBaffle.H b/src/regionModels/thermalBaffleModels/thermalBaffle/thermalBaffle.H
index c96cf9cf73a..48768dca931 100644
--- a/src/regionModels/thermalBaffleModels/thermalBaffle/thermalBaffle.H
+++ b/src/regionModels/thermalBaffleModels/thermalBaffle/thermalBaffle.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::thermalBaffle
+    Foam::regionModels::thermalBaffleModels::thermalBaffle
 
 Description
     2D thermal baffle
diff --git a/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.H b/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.H
index 01c3cbe5595..2084de8b021 100644
--- a/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.H
+++ b/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::thermalBaffleModel
+    Foam::regionModels::thermalBaffleModels::thermalBaffleModel
 
 Description
 
-- 
GitLab


From 62e7ddccdc930e40f7338c2d2bda170ea85fe124 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 31 May 2017 10:16:19 +0200
Subject: [PATCH 274/277] ENH: add (C++11) user-literal for degrees to radians
 conversion

- Programming convenience.
  Eg, cos(45_deg) vs cos(degToRad(45))

STYLE: conversions marked as constexpr and noexcept
---
 applications/test/unitConversion/Make/files   |  3 ++
 applications/test/unitConversion/Make/options |  0
 .../test/unitConversion/Test-unitConversion.C | 50 +++++++++++++++++++
 .../global/unitConversion/unitConversion.H    | 26 +++++++---
 4 files changed, 73 insertions(+), 6 deletions(-)
 create mode 100644 applications/test/unitConversion/Make/files
 create mode 100644 applications/test/unitConversion/Make/options
 create mode 100644 applications/test/unitConversion/Test-unitConversion.C

diff --git a/applications/test/unitConversion/Make/files b/applications/test/unitConversion/Make/files
new file mode 100644
index 00000000000..0e675c11a29
--- /dev/null
+++ b/applications/test/unitConversion/Make/files
@@ -0,0 +1,3 @@
+Test-unitConversion.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-unitConversion
diff --git a/applications/test/unitConversion/Make/options b/applications/test/unitConversion/Make/options
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/applications/test/unitConversion/Test-unitConversion.C b/applications/test/unitConversion/Test-unitConversion.C
new file mode 100644
index 00000000000..869007ec405
--- /dev/null
+++ b/applications/test/unitConversion/Test-unitConversion.C
@@ -0,0 +1,50 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
+     \\/     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/>.
+
+Application
+    Test-unitConversion
+
+\*---------------------------------------------------------------------------*/
+
+#include "IOstreams.H"
+#include "unitConversion.H"
+
+using namespace Foam;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+//  Main program:
+
+int main(int argc, char *argv[])
+{
+    Info<< "30_deg:   " << 30_deg << nl;
+    Info<< "30.0_deg: " << 30.0_deg << nl;
+    Info<< "3e+1_deg: " << 3e+1_deg << nl;
+    Info<< "degToRad(30): " << degToRad(30) << nl;
+
+    Info<< "cos(30_deg): " << ::cos(30_deg) << nl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/global/unitConversion/unitConversion.H b/src/OpenFOAM/global/unitConversion/unitConversion.H
index 6582d07ffee..10263f2a61d 100644
--- a/src/OpenFOAM/global/unitConversion/unitConversion.H
+++ b/src/OpenFOAM/global/unitConversion/unitConversion.H
@@ -42,29 +42,43 @@ namespace Foam
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 //- Conversion from degrees to radians
-inline scalar degToRad(const scalar deg)
+inline constexpr scalar degToRad(const scalar deg) noexcept
 {
-    return (deg*constant::mathematical::pi/180.0);
+    return (deg*Foam::constant::mathematical::pi/180.0);
 }
 
 //- Conversion from radians to degrees
-inline scalar radToDeg(const scalar rad)
+inline constexpr scalar radToDeg(const scalar rad) noexcept
 {
-    return (rad*180.0/constant::mathematical::pi);
+    return (rad*180.0/Foam::constant::mathematical::pi);
 }
 
 //- Conversion from atm to Pa
-inline scalar atmToPa(const scalar atm)
+inline constexpr scalar atmToPa(const scalar atm) noexcept
 {
     return (atm*101325.0);
 }
 
 //- Conversion from atm to Pa
-inline scalar paToAtm(const scalar pa)
+inline constexpr scalar paToAtm(const scalar pa) noexcept
 {
     return (pa/101325.0);
 }
 
+
+//- User literal for degrees to radians conversion (integers)
+inline constexpr scalar operator "" _deg(unsigned long long int deg) noexcept
+{
+    return (deg*Foam::constant::mathematical::pi/180.0);
+}
+
+//- User literal for degrees to radians conversion (floats)
+inline constexpr scalar operator "" _deg(long double deg) noexcept
+{
+    return (deg*Foam::constant::mathematical::pi/180.0);
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
-- 
GitLab


From 8da6e8eb746b9a362560724aaabe4ed25b619635 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 31 May 2017 12:34:07 +0200
Subject: [PATCH 275/277] DEFEATURE: remove CCM combine boundary code

- was generally somewhat fragile. The main problem stems from the fact
  that several interfaces may be attached to a boundary. No trivial
  means of solving this without too much work for a feature that is only
  "nice-to-have".
---
 .../mesh/conversion/ccm/ccmToFoam/ccmToFoam.C |  12 +-
 src/conversion/ccm/common/ccmBase.H           |   2 +-
 src/conversion/ccm/reader/ccmBoundaryInfo.H   |   8 +-
 .../ccm/reader/ccmInterfaceDefinitions.H      |  77 +++++++----
 src/conversion/ccm/reader/ccmReader.H         |  66 +++++-----
 src/conversion/ccm/reader/ccmReaderMesh.C     | 120 ++++--------------
 src/conversion/ccm/reader/ccmReaderOptions.C  |  13 --
 src/conversion/ccm/reader/ccmSolutionTable.H  |  37 +++---
 src/conversion/ccm/writer/ccmWriter.C         |   1 -
 src/conversion/ccm/writer/ccmWriter.H         |  11 +-
 10 files changed, 143 insertions(+), 204 deletions(-)

diff --git a/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C b/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C
index 13049e8c9e3..52377df3393 100644
--- a/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C
+++ b/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C
@@ -125,12 +125,6 @@ int main(int argc, char *argv[])
         "provide alternative base name when re-exporting (implies -export). "
         "Default is <meshExport>."
     );
-    // This often works, but is not entirely stable
-    //     argList::addBoolOption
-    //     (
-    //         "combine",
-    //         "combine identically named patches"
-    //     );
     argList::addBoolOption
     (
         "noBaffles",
@@ -211,10 +205,6 @@ int main(int argc, char *argv[])
     {
         rOpts.useNumberedNames(true);
     }
-    else if (args.optionFound("combine"))
-    {
-        rOpts.combineBoundaries(true);
-    }
 
     if (args.optionFound("solids"))
     {
@@ -295,7 +285,7 @@ int main(int argc, char *argv[])
         {
             const fileName geomName = exportName + ".ccmg";
             Info<< nl << "Re-exporting geometry as " << geomName << nl;
-            ccm::writer(geomName, mesh).writeGeometry();
+            ccm::writer(geomName, mesh()).writeGeometry();
         }
     }
     else
diff --git a/src/conversion/ccm/common/ccmBase.H b/src/conversion/ccm/common/ccmBase.H
index 5f789eadd0a..203420d9227 100644
--- a/src/conversion/ccm/common/ccmBase.H
+++ b/src/conversion/ccm/common/ccmBase.H
@@ -111,7 +111,7 @@ public:
 
     // Member Functions
 
-        // Access
+      // Access
 
         //- Explicity close the file and terminate ccmio access.
         //  Return false if it was already closed.
diff --git a/src/conversion/ccm/reader/ccmBoundaryInfo.H b/src/conversion/ccm/reader/ccmBoundaryInfo.H
index 2e5f2377eb8..78655b898d8 100644
--- a/src/conversion/ccm/reader/ccmBoundaryInfo.H
+++ b/src/conversion/ccm/reader/ccmBoundaryInfo.H
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Description
-    Containers for holding STARCCM boundary information
+    Container for holding STARCCM boundary information
 
 \*---------------------------------------------------------------------------*/
 #ifndef ccmBoundaryInfo_H
@@ -40,8 +40,11 @@ namespace Foam
 namespace ccm
 {
 
+class ccmBoundaryInfo;
+Ostream& operator<<(Ostream& os, const ccmBoundaryInfo& entry);
+
 /*---------------------------------------------------------------------------*\
-                    Class ccm::ccmBoundaryInfo Declaration
+                 Class Foam::ccm::ccmBoundaryInfo Declaration
 \*---------------------------------------------------------------------------*/
 
 //- Helper when reading raw boundary information
@@ -95,6 +98,7 @@ public:
         return ccmIndex != rhs.ccmIndex;
     }
 
+
     //- Ostream Operator
     friend Ostream& operator<<(Ostream& os, const ccmBoundaryInfo& entry)
     {
diff --git a/src/conversion/ccm/reader/ccmInterfaceDefinitions.H b/src/conversion/ccm/reader/ccmInterfaceDefinitions.H
index a96a7b52b15..066340be806 100644
--- a/src/conversion/ccm/reader/ccmInterfaceDefinitions.H
+++ b/src/conversion/ccm/reader/ccmInterfaceDefinitions.H
@@ -38,8 +38,14 @@ namespace Foam
 namespace ccm
 {
 
+class interfaceEntry;
+class interfaceDefinitions;
+
+Ostream& operator<<(Ostream& os, const interfaceEntry& entry);
+Ostream& operator<<(Ostream& os, const interfaceDefinitions& defs);
+
 /*---------------------------------------------------------------------------*\
-                     Class ccm::interfaceEntry Declaration
+                  Class Foam::ccm::interfaceEntry Declaration
 \*---------------------------------------------------------------------------*/
 
 //- A STARCCM interface definition is a pair of boundary ids
@@ -107,6 +113,12 @@ public:
             return bndId == bnd0 || bndId == bnd1;
         }
 
+        //- True if all internal ids are non-negative
+        bool valid() const
+        {
+            return (id >= 0 && bnd0 >= 0 && bnd1 >= 0 && bnd0 != bnd1);
+        }
+
 
         //- Canonical name for boundary 0
         word canonicalName0() const
@@ -162,42 +174,57 @@ class interfaceDefinitions
 :
     public Map<interfaceEntry>
 {
+
+    inline Map<interfaceEntry>& map()
+    {
+        return *this;
+    }
+
+    inline const Map<interfaceEntry>& map() const
+    {
+        return *this;
+    }
+
+
 public:
     // Constructor
 
         //- Null construct
         interfaceDefinitions()
-        :
-            Map<interfaceEntry>()
         {}
 
+        //- Size
+        label size() const
+        {
+            return map().size();
+        }
 
-        //- Scan available interface entries for one matching this boundary id
-        bool add(interfaceEntry entry)
+        //- Size
+        bool empty() const
         {
-            if
-            (
-                entry.id >= 0
-             && entry.bnd0 >= 0 && entry.bnd1 >= 0
-             && entry.bnd0 != entry.bnd1
-            )
-            {
-                this->set(entry.id, entry);
-                return true;
-            }
-            else
-            {
-                return false;
-            }
+            return map().empty();
+        }
+
+        //- Clear
+        void clear()
+        {
+            map().clear();
+        }
+
+
+        //- Add (valid) interface entry
+        bool add(const interfaceEntry& entry)
+        {
+            return (entry.valid() && map().set(entry.id, entry));
         }
 
 
         //- Scan available interface entries for one matching this boundary id
         bool isInterface(label bndId)
         {
-            forAllConstIters(*this, iter)
+            forAllConstIters(map(), iter)
             {
-                if (iter().inInterface(bndId))
+                if (iter.object().inInterface(bndId))
                 {
                     return true;
                 }
@@ -211,9 +238,9 @@ public:
         word interfaceName(label bndId)
         {
             word ifname;
-            forAllConstIters(*this, iter)
+            forAllConstIters(map(), iter)
             {
-                ifname = iter().canonicalName(bndId);
+                ifname = iter.object().canonicalName(bndId);
                 if (!ifname.empty())
                 {
                     break;
@@ -232,9 +259,7 @@ public:
             const interfaceDefinitions& defs
         )
         {
-            os  << static_cast<const Map<interfaceEntry>&>(defs)
-                << nl;
-
+            os  << defs.map() << nl;
             return os;
         }
 
diff --git a/src/conversion/ccm/reader/ccmReader.H b/src/conversion/ccm/reader/ccmReader.H
index 14408d3f944..67d937f1365 100644
--- a/src/conversion/ccm/reader/ccmReader.H
+++ b/src/conversion/ccm/reader/ccmReader.H
@@ -368,7 +368,7 @@ private:
         void validateInterface(List<labelPair>&);
 
         //- Renumber interface faces
-        void renumberInterfaces(const List<label>&);
+        void renumberInterfaces(const labelUList& oldToNew);
 
         //- Remove interfaces between domains (fluid/porosity; fluid/solid, etc)
         //  reorganize baffle interfaces into [0-N/2; N/2-N] lists at the
@@ -394,23 +394,27 @@ private:
         ) const;
 
         // polyMesh Friend Functions
-        void addPatches(polyMesh&) const;
+        void addPatches(polyMesh& mesh) const;
 
         //- Add faceZones based on monitoring boundary conditions
-        void addFaceZones(polyMesh&) const;
+        void addFaceZones(polyMesh& mesh) const;
 
         //- Get information about all available solutions
         bool detectSolution();
 
         //- Get information about available fields
         //  assume that all fields are available for all solution intervals
-        void determineFieldInfo(const ccmID& fieldSetNode, fieldTable&);
+        void determineFieldInfo
+        (
+            const ccmID& fieldSetNode,
+            fieldTable& table
+        );
 
 
     // Static Members
 
         //- Get map of porous regions
-        static Map<word> selectPorous(const Map<dictionary>&);
+        static Map<word> selectPorous(const Map<dictionary>& table);
 
 
 public:
@@ -418,13 +422,13 @@ public:
     // Static Members
 
         //- Warn about repeated name
-        static void warnDuplicates(const word& context, const wordList&);
+        static void warnDuplicates(const word& context, const wordList& lst);
 
 
     // Constructors
 
         //- Open a file for reading
-        reader(const fileName&, const options& opts);
+        reader(const fileName& file, const reader::options& opts);
 
 
     //- Destructor (closes file)
@@ -433,7 +437,7 @@ public:
 
     // Member Functions
 
-    // Access
+      // Access
 
         //- Reference to the reader options
         const reader::options& option() const;
@@ -459,7 +463,7 @@ public:
         // const pointField& points() const { return points_; }
 
 
-    // Check
+      // Check
 
         //- Return true if file has geometry associated with it
         bool hasGeometry();
@@ -468,7 +472,7 @@ public:
         bool hasSolution();
 
 
-    // Edit
+      // Edit
 
         //- Remap cellTable and boundaryRegion according to dictionary
         bool remapMeshInfo
@@ -478,17 +482,17 @@ public:
         );
 
 
-    // Write
+      // Write
 
         //- Write the polyMesh
         void writeMesh
         (
-            const polyMesh&,
+            const polyMesh& mesh,
             IOstream::streamFormat fmt = IOstream::BINARY
         ) const;
 
         //- Write cellTable, boundaryRegion and interface information
-        void writeAux(const objectRegistry&) const;
+        void writeAux(const objectRegistry& registry) const;
 
         //- Detect and read geometry if possible
         bool readGeometry(const scalar scaleFactor = 1.0);
@@ -593,12 +597,10 @@ class reader::options
         //- Merge in-place interfaces (default true)
         bool mergeInterfaces_;
 
-        //- Rename interface boundaries as InterfaceN_0, InterfaceN_1 (default true)
+        //- Rename interface boundaries as InterfaceN_0, InterfaceN_1
+        //  (default true)
         bool renameInterfaces_;
 
-        //- Combine identically named boundaries (default false)
-        bool combineBoundaries_;
-
         //- Remove baffles by merging their respective faces (default false)
         bool removeBaffles_;
 
@@ -623,7 +625,7 @@ public:
 
     // Member Functions
 
-    // Access
+      // Access
 
         //- Keep fluid regions (default true)
         bool keepFluid() const;
@@ -640,12 +642,10 @@ public:
         //- Merge in-place interfaces (default true)
         bool mergeInterfaces() const;
 
-        //- Rename interface boundaries as InterfaceN_0, InterfaceN_1 (default true)
+        //- Rename interface boundaries as InterfaceN_0, InterfaceN_1
+        //  (default true)
         bool renameInterfaces() const;
 
-        //- Combine identically named boundaries (default false)
-        bool combineBoundaries() const;
-
         //- Remove baffles by merging their respective faces (default false)
         bool removeBaffles() const;
 
@@ -660,37 +660,35 @@ public:
         scalar undefScalar() const;
 
 
-    // Edit
+      // Edit
 
         //- Keep fluid regions
-        void keepFluid(bool);
+        void keepFluid(bool b);
 
         //- Keep porous regions
-        void keepPorous(bool);
+        void keepPorous(bool b);
 
         //- Keep solid regions
-        void keepSolid(bool);
+        void keepSolid(bool b);
 
         //- Merge in-place interfaces
-        void mergeInterfaces(bool);
+        void mergeInterfaces(bool b);
 
         //- Rename interface boundaries as InterfaceN_0, InterfaceN_1
-        void renameInterfaces(bool);
+        void renameInterfaces(bool b);
 
-        //- Combine identically named boundaries
-        void combineBoundaries(bool);
 
         //- Remove baffles by merging their respective faces
-        void removeBaffles(bool);
+        void removeBaffles(bool b);
 
         //- Use numbered names (eg, patch_0, zone_0) instead of human-readable
-        void useNumberedNames(bool);
+        void useNumberedNames(bool b);
 
         //- Merge tolerance for points (default 0.05e-3)
-        void mergeTol(const scalar&);
+        void mergeTol(const scalar& tol);
 
         //- Value to assign for undefined solutions (default: NaN)
-        void undefScalar(const scalar&);
+        void undefScalar(const scalar& val);
 
 };
 
diff --git a/src/conversion/ccm/reader/ccmReaderMesh.C b/src/conversion/ccm/reader/ccmReaderMesh.C
index c1f5077bdf1..bb819606252 100644
--- a/src/conversion/ccm/reader/ccmReaderMesh.C
+++ b/src/conversion/ccm/reader/ccmReaderMesh.C
@@ -517,51 +517,6 @@ void Foam::ccm::reader::readCells
     origBndId_  = -1;
     nPatches = 0;
 
-    HashTable<label, std::string> hashedNames;
-    if (option().combineBoundaries())
-    {
-        // Ensure all the interfaces are orderd up-front:
-        forAll(interfaceDefinitions_, interI)
-        {
-            const interfaceEntry& ifentry = interfaceDefinitions_[interI];
-
-            label info0Index = -1;
-            label info1Index = -1;
-
-            forAll(bndInfo, infoI)
-            {
-                if (bndInfo[infoI].ccmIndex == ifentry.bnd0)
-                {
-                    info0Index = infoI;
-                }
-                else if (bndInfo[infoI].ccmIndex == ifentry.bnd1)
-                {
-                    info1Index = infoI;
-                }
-            }
-
-            if (info0Index == info1Index || info0Index < 0 || info1Index < 0)
-            {
-                // this should never be able to happen
-                continue;
-            }
-
-            ccmBoundaryInfo& info0 = bndInfo[info0Index];
-            ccmBoundaryInfo& info1 = bndInfo[info1Index];
-
-            // Preserve interface order
-            info0.patchId = nPatches++;
-            info1.patchId = nPatches++;
-
-            // full safety:
-            info0.patchName = ifentry.canonicalName0();
-            info1.patchName = ifentry.canonicalName1();
-
-            hashedNames.insert(info0.patchName, info0Index);
-            hashedNames.insert(info1.patchName, info1Index);
-        }
-    }
-
     forAll(bndInfo, infoI)
     {
         ccmBoundaryInfo& info = bndInfo[infoI];
@@ -573,27 +528,8 @@ void Foam::ccm::reader::readCells
         }
         else
         {
-            if (option().combineBoundaries())
-            {
-                // Check if patch name was already seen
-                auto citer = hashedNames.cfind(info.patchName);
-                if (citer.found())
-                {
-                    info.patchId = bndInfo[citer()].patchId;
-                }
-                else
-                {
-                    hashedNames.insert(info.patchName, infoI);
-
-                    info.patchId = nPatches++;
-                    origBndId_[info.patchId] = info.ccmIndex;
-                }
-            }
-            else
-            {
-                info.patchId = nPatches++;
-                origBndId_[info.patchId] = info.ccmIndex;
-            }
+            info.patchId = nPatches++;
+            origBndId_[info.patchId] = info.ccmIndex;
         }
 
         patchSizes_[info.patchId] += info.size;
@@ -622,20 +558,6 @@ void Foam::ccm::reader::readCells
         ccmLookupOrder.resetAddressing(addr.xfer());
     }
 
-    if (option().combineBoundaries())
-    {
-        Info<<"patches combined by name: ";
-        if (nPatches == bndInfo.size())
-        {
-            Info<<"none" << endl;
-        }
-        else
-        {
-            Info<< bndInfo.size() << " into " << nPatches << endl;
-        }
-        // Info<< ccmLookupOrder << endl;
-    }
-
 
     //
     // Now we are ready to do the reading
@@ -1521,7 +1443,7 @@ void Foam::ccm::reader::validateInterface
 
 void Foam::ccm::reader::renumberInterfaces
 (
-    const labelList& oldToNew
+    const labelUList& oldToNew
 )
 {
     forAll(domInterfaces_, elemI)
@@ -1553,8 +1475,8 @@ void Foam::ccm::reader::cleanupInterfaces()
 
     if (bafInterfaces_.size() <= 0 && domInterfaces_.size() <= 0)
     {
-        Info<<"0 baffle interface pairs" << endl;
-        Info<<"0 domain interface pairs" << endl;
+        Info<<"0 baffle interface pairs" << nl
+            <<"0 domain interface pairs" << endl;
         return;
     }
 
@@ -1568,8 +1490,8 @@ void Foam::ccm::reader::cleanupInterfaces()
 
     forAll(domInterfaces_, elemI)
     {
-        label face0 = domInterfaces_[elemI][0];
-        label face1 = domInterfaces_[elemI][1];
+        const label face0 = domInterfaces_[elemI][0];
+        const label face1 = domInterfaces_[elemI][1];
 
         Info<< "interface [" << elemI << "] = "
             << face0 << " - " << face1 << " own/neigh = "
@@ -1902,9 +1824,11 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
     // List of patch pairs that are interfaces
     DynamicList<labelPair> interfacePatches(interfaceDefinitions_.size());
 
-    forAll(interfaceDefinitions_, interI)
+    label nWarn = 0;
+
+    forAllConstIters(interfaceDefinitions_, iter)
     {
-        const interfaceEntry& ifentry = interfaceDefinitions_[interI];
+        const interfaceEntry& ifentry = iter.object();
 
         labelPair patchPair
         (
@@ -1920,7 +1844,7 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
         )
         {
             // This should not happen
-            Info<<"Warning : bad interface " << interI << " " << ifentry
+            Info<<"Warning : bad interface " << ifentry.id << " " << ifentry
                 <<" on patches " << patchPair << endl;
         }
         else if
@@ -1930,11 +1854,18 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
          || patchSizes_[patchPair[1]] == 0
         )
         {
-            Info<<"Warning : skip interface " << interI << " " << ifentry
-                <<" on patches " << patchPair << nl
-                <<"   has zero or different number of faces: ("
-                << patchSizes_[patchPair[0]]  << " " << patchSizes_[patchPair[1]] << ")"
-                << endl;
+            if (!nWarn++)
+            {
+                Info<<"Warning: skip interface with zero or different"
+                    << " number of faces" << nl;
+            }
+
+            Info<<"  Interface:" << ifentry.id << " " << ifentry
+                <<" patches " << patchPair
+                <<" sizes ("
+                << patchSizes_[patchPair[0]]
+                << " " << patchSizes_[patchPair[1]] << ")"
+                << nl;
         }
         else
         {
@@ -1961,7 +1892,8 @@ void Foam::ccm::reader::mergeInplaceInterfaces()
     // Markup points to merge
     PackedBoolList whichPoints(points_.size());
 
-    Info<< "interface merge points (tol=" << option().mergeTol() << "):" << endl;
+    Info<< "interface merge points (tol="
+        << option().mergeTol() << "):" << endl;
 
     DynamicList<label> interfacesToMerge(interfacePatches.size());
     forAll(interfacePatches, interI)
diff --git a/src/conversion/ccm/reader/ccmReaderOptions.C b/src/conversion/ccm/reader/ccmReaderOptions.C
index c6bfe87d7dc..994dba080ca 100644
--- a/src/conversion/ccm/reader/ccmReaderOptions.C
+++ b/src/conversion/ccm/reader/ccmReaderOptions.C
@@ -34,7 +34,6 @@ Foam::ccm::reader::options::options()
     keepSolid_(true),
     mergeInterfaces_(false),
     renameInterfaces_(true),
-    combineBoundaries_(false),
     removeBaffles_(false),
     useNumberedNames_(false),
     mergeTol_(0.05e-3),
@@ -80,12 +79,6 @@ bool Foam::ccm::reader::options::renameInterfaces() const
 }
 
 
-bool Foam::ccm::reader::options::combineBoundaries() const
-{
-    return combineBoundaries_;
-}
-
-
 bool Foam::ccm::reader::options::removeBaffles() const
 {
     return removeBaffles_;
@@ -141,12 +134,6 @@ void Foam::ccm::reader::options::renameInterfaces(bool b)
 }
 
 
-void Foam::ccm::reader::options::combineBoundaries(bool b)
-{
-    combineBoundaries_ = b;
-}
-
-
 void Foam::ccm::reader::options::removeBaffles(bool b)
 {
     removeBaffles_ = b;
diff --git a/src/conversion/ccm/reader/ccmSolutionTable.H b/src/conversion/ccm/reader/ccmSolutionTable.H
index 1be10bc2ddd..1a58d67cc68 100644
--- a/src/conversion/ccm/reader/ccmSolutionTable.H
+++ b/src/conversion/ccm/reader/ccmSolutionTable.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,8 +29,8 @@ Description
 #define ccmSolutionTable_H
 
 #include "SLList.H"
-#include "stringListOps.H"
 #include "Ostream.H"
+#include "stringListOps.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -39,8 +39,16 @@ namespace Foam
 namespace ccm
 {
 
+class fieldEntry;
+class fieldTable;
+class solutionEntry;
+
+Ostream& operator<<(Ostream& os, const fieldEntry& entry);
+Ostream& operator<<(Ostream& os, const fieldTable& entry);
+Ostream& operator<<(Ostream& os, const solutionEntry& entry);
+
 /*---------------------------------------------------------------------------*\
-                      Class ccm::namesList Declaration
+                    Class Foam::ccm::namesList Declaration
 \*---------------------------------------------------------------------------*/
 
 //- A linked-list that is searchable by the 'name()' of the items
@@ -124,7 +132,7 @@ public:
 
 
 /*---------------------------------------------------------------------------*\
-                      Class ccm::fieldEntry Declaration
+                    Class Foam::ccm::fieldEntry Declaration
 \*---------------------------------------------------------------------------*/
 
 //- A ccm field entry with short name, name, maxId and type
@@ -208,15 +216,6 @@ public:
 
     // Edit
 
-        //- Set the field units
-        void units(const char* units)
-        {
-            if (units && *units)
-            {
-                units_ = units;
-            }
-        }
-
         //- Set the field units
         void units(const std::string& units)
         {
@@ -264,8 +263,9 @@ public:
 
 };
 
+
 /*---------------------------------------------------------------------------*\
-                    Class ccm::solutionEntry Declaration
+                  Class Foam::ccm::solutionEntry Declaration
 \*---------------------------------------------------------------------------*/
 
 //- A ccm solution entry with name, iteration and time
@@ -291,8 +291,8 @@ public:
         solutionEntry
         (
             const word& name,
-            const label& iteration,
-            const scalar& timeValue = 0
+            const label iteration,
+            const scalar timeValue = 0
         )
         :
             name_(name),
@@ -340,7 +340,7 @@ public:
 
 
 /*---------------------------------------------------------------------------*\
-                    Class ccm::solutionTable Declaration
+                  Class Foam::ccm::solutionTable Declaration
 \*---------------------------------------------------------------------------*/
 
 // Typedef: ccm::solutionTable
@@ -349,7 +349,7 @@ typedef namesList<solutionEntry> solutionTable;
 
 
 /*---------------------------------------------------------------------------*\
-                      Class ccm::fieldTable Declaration
+                    Class Foam::ccm::fieldTable Declaration
 \*---------------------------------------------------------------------------*/
 
 //- A list of the available fields
@@ -392,7 +392,6 @@ public:
         label maxFaceId() const
         {
             label maxId = 0;
-
             forAllConstIters(*this, iter)
             {
                 const label currMax = iter().maxFaceId();
diff --git a/src/conversion/ccm/writer/ccmWriter.C b/src/conversion/ccm/writer/ccmWriter.C
index c08c653caea..8cd6dfdd503 100644
--- a/src/conversion/ccm/writer/ccmWriter.C
+++ b/src/conversion/ccm/writer/ccmWriter.C
@@ -292,7 +292,6 @@ void Foam::ccm::writer::writeProblem
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-// Construct for writing geometry
 Foam::ccm::writer::writer
 (
     const fileName& file,
diff --git a/src/conversion/ccm/writer/ccmWriter.H b/src/conversion/ccm/writer/ccmWriter.H
index a2d57148c9b..c7b71c6311d 100644
--- a/src/conversion/ccm/writer/ccmWriter.H
+++ b/src/conversion/ccm/writer/ccmWriter.H
@@ -219,7 +219,12 @@ public:
     // Constructors
 
         //- Open a file for writing, with backup/overwrite existing file
-        writer(const fileName&, const polyMesh&, const bool backup=true);
+        writer
+        (
+            const fileName& file,
+            const polyMesh& mesh,
+            const bool backup=true
+        );
 
 
     //- Destructor (closes file)
@@ -228,7 +233,7 @@ public:
 
     // Member Functions
 
-        // Write
+      // Write
 
         //- Write the mesh
         void writeGeometry();
@@ -237,7 +242,7 @@ public:
         //  provide optional remapping dictionary
         void writeSolution
         (
-            const IOobjectList&,
+            const IOobjectList& objects,
             const fileName& remappingDictName = fileName::null
         );
 
-- 
GitLab


From 4bbc62bbb8c348d47dc0b5b4afdf8930c2397696 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Wed, 31 May 2017 17:44:44 +0100
Subject: [PATCH 276/277] ENH: stringOps - getVariable function - make use of
 the allowEmpty flag

---
 src/OpenFOAM/primitives/strings/stringOps/stringOps.C | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/OpenFOAM/primitives/strings/stringOps/stringOps.C b/src/OpenFOAM/primitives/strings/stringOps/stringOps.C
index 6df273e1384..dca9fe5e087 100644
--- a/src/OpenFOAM/primitives/strings/stringOps/stringOps.C
+++ b/src/OpenFOAM/primitives/strings/stringOps/stringOps.C
@@ -308,7 +308,7 @@ Foam::string Foam::stringOps::getVariable
             }
         }
 
-        if (value.empty())
+        if (!allowEmpty && value.empty())
         {
             FatalIOErrorInFunction
             (
@@ -317,7 +317,8 @@ Foam::string Foam::stringOps::getVariable
                 << name << exit(FatalIOError);
         }
     }
-    else
+
+    if (!allowEmpty && value.empty())
     {
         FatalIOErrorInFunction
         (
-- 
GitLab


From b312f0ba4024d3935fa09dedbfbb693781c91049 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Thu, 1 Jun 2017 15:46:42 +0200
Subject: [PATCH 277/277] ENH: documentation and input simplification for
 surfaceFeatureExtract

---
 .../extractionMethod/extractFromFile.H        |  11 +-
 .../extractionMethod/extractFromNone.C        |   7 +-
 .../extractionMethod/extractFromNone.H        |   9 +-
 .../extractionMethod/extractFromSurface.H     |  13 +-
 .../surfaceFeaturesExtraction.C               |  12 +-
 .../surfaceFeaturesExtraction.H               |   9 +-
 .../surfaceFeatureExtract.C                   | 271 ++++++++++++++----
 .../surfaceFeatureExtractDict                 | 163 ++++-------
 8 files changed, 290 insertions(+), 205 deletions(-)

diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
index 83853fab2de..8cd5cf4a97d 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H
@@ -27,6 +27,7 @@ Class
 Description
     Run-time selectable surface feature extraction.
 
+    Selectable as "extractFromFile".
     Mandatory dictionary entries: "featureEdgeFile".
     Optional dictionary entries: "geometricTestOnly".
 
@@ -60,17 +61,13 @@ class extractFromFile
 
 public:
 
-    // Constructors
-
-        //- Construct from dictionary
-        extractFromFile(const dictionary& dict);
-
+    //- Construct from dictionary
+    extractFromFile(const dictionary& dict);
 
     //- Destructor
     virtual ~extractFromFile();
 
-
-    //- Extracted features from surface
+    //- Features loaded (extracted) from featureEdgeFile
     virtual autoPtr<surfaceFeatures> features
     (
         const triSurface& surf
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
index c49db760a98..45061472c46 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C
@@ -52,10 +52,10 @@ Foam::surfaceFeaturesExtraction::extractFromNone::extractFromNone
 :
     method()
 {
-    const dictionary& coeffDict = dict.optionalSubDict("noneCoeffs");
+    // A "noneCoeffs" sub-dictionary doesn't make much sense.
 
-    coeffDict.readIfPresent("includedAngle", includedAngle_);
-    coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_);
+    dict.readIfPresent("includedAngle", includedAngle_);
+    dict.readIfPresent("geometricTestOnly", geometricTestOnly_);
 }
 
 
@@ -67,7 +67,6 @@ Foam::surfaceFeaturesExtraction::extractFromNone::~extractFromNone()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-
 Foam::autoPtr<Foam::surfaceFeatures>
 Foam::surfaceFeaturesExtraction::extractFromNone::features
 (
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
index 9f9b94410f4..9cc9ebae601 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H
@@ -28,6 +28,7 @@ Description
     Run-time selectable surface feature extraction - no extraction.
     Primarily useful with self-intersection methods.
 
+    Selectable as "none".
     Optional dictionary entries: "includedAngle", "geometricTestOnly".
 
 SourceFiles
@@ -58,16 +59,12 @@ class extractFromNone
 
 public:
 
-    // Constructors
-
-        //- Construct from dictionary
-        extractFromNone(const dictionary& dict);
-
+    //- Construct from dictionary
+    extractFromNone(const dictionary& dict);
 
     //- Destructor
     virtual ~extractFromNone();
 
-
     //- Extracted features from surface (no-op)
     virtual autoPtr<surfaceFeatures> features
     (
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
index 3ad3412819a..83c2888d02f 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H
@@ -27,6 +27,8 @@ Class
 Description
     Run-time selectable surface feature extraction - extract from surface.
 
+    Selectable as "extractFromSurface".
+
     Mandatory dictionary entries: "includedAngle".
     Optional dictionary entries: "geometricTestOnly".
 
@@ -57,23 +59,18 @@ class extractFromSurface
 {
 public:
 
-    // Constructors
-
-        //- Construct from dictionary
-        extractFromSurface(const dictionary& dict);
-
+    //- Construct from dictionary
+    extractFromSurface(const dictionary& dict);
 
     //- Destructor
     virtual ~extractFromSurface();
 
-
-    //- Extracted features from surface
+    //- Features extracted from surface
     virtual autoPtr<surfaceFeatures> features
     (
         const triSurface& surf
     ) const override;
 
-
 };
 
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
index 28bd8f092d7..2108e73a9df 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           |  Copyright (C) 2017 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2017 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,22 +70,20 @@ Foam::surfaceFeaturesExtraction::method::New
 {
     const word methodName = dict.lookup("extractionMethod");
 
-    dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(methodName);
+    auto cstrIter = dictionaryConstructorTablePtr_->cfind(methodName);
 
     if (!cstrIter.found())
     {
         FatalIOErrorInFunction
         (
             dict
-        )   << "Unknown extractionMethod "
-            << methodName << nl << nl
-            << "Valid extraction methods: :" << nl
+        )   << "Unknown extractionMethod " << methodName << nl << nl
+            << "Valid extraction methods:" << nl
             << flatOutput(dictionaryConstructorTablePtr_->sortedToc())
             << exit(FatalIOError);
     }
 
-    return autoPtr<method>(cstrIter()(dict));
+    return autoPtr<method>(cstrIter.object()(dict));
 }
 
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H
index 6f9482144fe..71c5ba5bc5a 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H
+++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/surfaceFeaturesExtraction.H
@@ -21,11 +21,17 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
+Namespace
+    Foam::surfaceFeaturesExtraction
+
+Description
+    Namespace for run-time selectable surface feature extraction methods.
+
 Class
     Foam::surfaceFeaturesExtraction::method
 
 Description
-    Run-time selectable surface feature extraction methods.
+    Abstract base for run-time selectable surface feature extraction methods.
 
 SourceFiles
     surfaceFeaturesExtraction.C
@@ -123,7 +129,6 @@ public:
 };
 
 
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace surfaceFeaturesExtraction
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index 7cd22735a72..bcf8358a105 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -31,6 +31,153 @@ Description
     Extracts and writes surface features to file. All but the basic feature
     extraction is a work-in-progress.
 
+    The extraction process is driven by the \a system/surfaceFeatureExtractDict
+    dictionary, but the \a -dict option can be used to define an alternative
+    location.
+
+    The \a system/surfaceFeatureExtractDict dictionary contains entries
+    for each extraction process.
+    The name of the individual dictionary is used to load the input surface
+    (found under \a constant/triSurface) and also as the basename for the
+    output.
+
+    If the \c surfaces entry is present in a sub-dictionary, it has absolute
+    precedence over a surface name deduced from the dictionary name.
+    If the dictionary name itself does not have an extension, the \c surfaces
+    entry becomes mandatory since in this case the dictionary name cannot
+    represent an input surface file (ie, there is no file extension).
+    The \c surfaces entry is a wordRe list, which allows loading and
+    combining of multiple surfaces. Any exactly specified surface names must
+    exist, but surfaces selected via regular expressions need not exist.
+    The selection mechanism preserves order and is without duplicates.
+    For example,
+    \verbatim
+    dictName
+    {
+        surfaces    (surface1.stl "other.*" othersurf.obj);
+        ...
+    }
+    \endverbatim
+
+    When loading surfaces, the points/faces/regions of each surface are
+    normally offset to create an aggregated surface. No merging of points
+    or faces is done. The optional entry \c loadingOption can be used to
+    adjust the treatment of the regions when loading single or multiple files,
+    with selections according to the Foam::triSurfaceLoader::loadingOption
+    enumeration.
+    \verbatim
+    dictName
+    {
+        // Optional treatment of surface regions when loading
+        // (single, file, offset, merge)
+        loadingOption   file;
+        ...
+    }
+    \endverbatim
+    The \c loadingOption is primarily used in combination with the
+    \c intersectionMethod (specifically its \c region option).
+    The default \c loadingOption is normally \c offset,
+    but this changes to \c file if the \c intersectionMethod
+    \c region is being used.
+
+    Once surfaces have been loaded, the first stage is to extract
+    features according to the specified \c extractionMethod with values
+    as per the following table:
+    \table
+        extractionMethod   | Description
+        none               | No feature extraction
+        extractFromFile    | Load features from the file named in featureEdgeFile
+        extractFromSurface | Extract features from surface geometry
+    \endtable
+
+    There are a few entries that influence the extraction behaviour:
+    \verbatim
+        // File to use for extractFromFile input
+        featureEdgeFile     "FileName"
+
+        // Mark edges whose adjacent surface normals are at an angle less
+        // than includedAngle as features
+        // - 0  : selects no edges
+        // - 180: selects all edges
+        includedAngle       120;
+
+        // Do not mark region edges
+        geometricTestOnly   yes;
+    \endverbatim
+
+    This initial set of edges can be trimmed:
+    \verbatim
+        trimFeatures
+        {
+            // Remove features with fewer than the specified number of edges
+            minElem         0;
+
+            // Remove features shorter than the specified cumulative length
+            minLen          0.0;
+        }
+    \endverbatim
+
+    and subsetted
+    \verbatim
+    subsetFeatures
+    {
+        // Use a plane to select feature edges (normal)(basePoint)
+        // Only keep edges that intersect the plane
+        plane           (1 0 0)(0 0 0);
+
+        // Select feature edges using a box // (minPt)(maxPt)
+        // Only keep edges inside the box:
+        insideBox       (0 0 0)(1 1 1);
+
+        // Only keep edges outside the box:
+        outsideBox      (0 0 0)(1 1 1);
+
+        // Keep nonManifold edges (edges with >2 connected faces where
+        // the faces form more than two different normal planes)
+        nonManifoldEdges yes;
+
+        // Keep open edges (edges with 1 connected face)
+        openEdges       yes;
+    }
+    \endverbatim
+
+    Subsequently, additional features can be added from another file:
+    \verbatim
+        addFeatures
+        {
+            // Add (without merging) another extendedFeatureEdgeMesh
+            name        axZ.extendedFeatureEdgeMesh;
+        }
+    \endverbatim
+
+    The intersectionMethod provides a final means of adding additional
+    features. These are loosely termed "self-intersection", since it
+    detects the face/face intersections of the loaded surface or surfaces.
+
+    \table
+        intersectionMethod | Description
+        none    | Do nothing
+        self    | All face/face intersections
+        region  | Limit face/face intersections to those between different regions.
+    \endtable
+    The optional \c tolerance tuning parameter is available for handling
+    the face/face intersections, but should normally not be touched.
+
+    As well as the normal extendedFeatureEdgeMesh written,
+    other items can be selected with boolean switches:
+
+    \table
+        Output option | Description
+        closeness | Output the closeness of surface elements to other surface elements.
+        curvature | Output surface curvature
+        featureProximity | Output the proximity of feature points and edges to another
+        writeObj  | Write features to OBJ format for postprocessing
+        writeVTK  | Write closeness/curvature/proximity fields as VTK for postprocessing
+    \endtable
+
+Note
+   Although surfaceFeatureExtract can do many things, there are still a fair
+   number of corner cases where it may not produce the desired result.
 \*---------------------------------------------------------------------------*/
 
 #include "argList.H"
@@ -60,16 +207,26 @@ int main(int argc, char *argv[])
 {
     argList::addNote
     (
-        "extract and write surface features to file"
+        "Extract and write surface features to file"
     );
     argList::noParallel();
     argList::noFunctionObjects();
 
-    #include "addDictOption.H"
+    argList::addOption
+    (
+        "dict",
+        "file",
+        "read surfaceFeatureExtractDict from specified location"
+    );
 
     #include "setRootCase.H"
     #include "createTime.H"
 
+    Info<< nl
+        << "Note: "
+        << "Feature line extraction only valid on closed manifold surfaces"
+        << nl << nl;
+
     const word dictName("surfaceFeatureExtractDict");
     #include "setSystemRunTimeDictionaryIO.H"
 
@@ -82,44 +239,58 @@ int main(int argc, char *argv[])
     // Where to write VTK output files
     const fileName vtkOutputDir = runTime.constantPath()/"triSurface";
 
-    forAllConstIter(dictionary, dict, iter)
+    forAllConstIters(dict, iter)
     {
-        const word& dictName = iter().keyword();
-
-        if (!iter().isDict())
+        if (!iter().isDict() || iter().keyword().isPattern())
         {
             continue;
         }
+
         const dictionary& surfaceDict = iter().dict();
 
         if (!surfaceDict.found("extractionMethod"))
         {
+            // Insist on an extractionMethod
             continue;
         }
 
+        // The output name based in dictionary name (without extensions)
+        const word& dictName = iter().keyword();
+        const word outputName = dictName.lessExt();
+
         autoPtr<surfaceFeaturesExtraction::method> extractor =
             surfaceFeaturesExtraction::method::New
             (
                 surfaceDict
             );
 
-        // The output name, cleansed of extensions
-        // Optional "output" entry, or the dictionary name.
-        const word outputName =
-            fileName
+        // We don't needs the intersectionMethod yet, but can use it
+        // for setting a reasonable loading option
+        const surfaceIntersection::intersectionType selfIntersect =
+            surfaceIntersection::selfIntersectionNames.lookupOrDefault
             (
-                surfaceDict.lookupOrDefault<word>("output", dictName)
-            ).lessExt();
-
-        // The "surfaces" entry is normally optional, but if the sub-dictionary
-        // is itself called "surfaces", then this becomes mandatory.
-        // This provides a simple means of handling both situations without an
-        // additional switch.
-        if
+                "intersectionMethod",
+                surfaceDict,
+                surfaceIntersection::NONE
+            );
+
+        const Switch writeObj = surfaceDict.lookupOrDefault<Switch>
         (
-            dictName == "surfaces"  // mandatory
-         || surfaceDict.found("surfaces")   // or optional
-        )
+            "writeObj",
+            Switch::OFF
+        );
+        const Switch writeVTK = surfaceDict.lookupOrDefault<Switch>
+        (
+            "writeVTK",
+            Switch::OFF
+        );
+
+        // The "surfaces" entry is normally optional, but make it mandatory
+        // if the dictionary name doesn't have an extension
+        // (ie, probably not a surface filename at all).
+        // If it is missing, this will fail nicely with an appropriate error
+        // message.
+        if (surfaceDict.found("surfaces") || !dictName.hasExt())
         {
             loader.select(wordReList(surfaceDict.lookup("surfaces")));
         }
@@ -128,39 +299,45 @@ int main(int argc, char *argv[])
             loader.select(dictName);
         }
 
+        // DebugVar(loader.available());
+        // DebugVar(outputName);
+
         if (loader.selected().empty())
         {
             FatalErrorInFunction
                 << "No surfaces specified/found for entry: "
                 << dictName << exit(FatalError);
         }
-        // DebugVar(loader.available());
-        // DebugVar(outputName);
-
 
-        Info<< "Surfaces           : ";
+        Info<< "Surfaces     : ";
         if (loader.selected().size() == 1)
         {
-            Info<< loader.selected()[0] << nl;
+            Info<< loader.selected().first() << nl;
         }
         else
         {
             Info<< flatOutput(loader.selected()) << nl;
         }
-        Info<< "Output             : " << outputName << nl;
+        Info<< "Output       : " << outputName << nl;
 
+        // Loading option - default depends on context
         triSurfaceLoader::loadingOption loadingOption =
             triSurfaceLoader::loadingOptionNames.lookupOrDefault
             (
                 "loadingOption",
                 surfaceDict,
-                triSurfaceLoader::loadingOption::OFFSET_REGION
+                (
+                    selfIntersect == surfaceIntersection::SELF_REGION
+                  ? triSurfaceLoader::FILE_REGION
+                  : triSurfaceLoader::OFFSET_REGION
+                )
             );
 
-        Info<<"loading with "
-            << triSurfaceLoader::loadingOptionNames[loadingOption]
-            << endl;
-
+        Info<<"Load options : "
+            << triSurfaceLoader::loadingOptionNames[loadingOption] << nl
+            << "Write options:"
+            << " writeObj=" << writeObj
+            << " writeVTK=" << writeVTK << nl;
 
         // Load a single file, or load and combine multiple selected files
         autoPtr<triSurface> surfPtr = loader.load(loadingOption);
@@ -173,25 +350,12 @@ int main(int argc, char *argv[])
 
         triSurface surf = surfPtr();
 
-        const Switch writeVTK = surfaceDict.lookupOrDefault<Switch>
-        (
-            "writeVTK",
-            Switch::OFF
-        );
-        const Switch writeObj = surfaceDict.lookupOrDefault<Switch>
-        (
-            "writeObj",
-            Switch::OFF
-        );
-
-        Info<< "write VTK: " <<  writeVTK << nl;
-
-        Info<< "Feature line extraction is only valid on closed manifold "
+        Info<< "NB: Feature line extraction is only valid on closed manifold "
             << "surfaces." << nl;
 
-        Info<< nl << "Statistics:" << nl;
+        Info<< nl
+            << "Statistics:" << nl;
         surf.writeStats(Info);
-        Info<< nl;
 
         // Need a copy as plain faces if outputting VTK format
         faceList faces;
@@ -403,14 +567,6 @@ int main(int argc, char *argv[])
             feMesh.add(addFeMesh);
         }
 
-        const surfaceIntersection::intersectionType selfIntersect =
-            surfaceIntersection::selfIntersectionNames.lookupOrDefault
-            (
-                "intersectionMethod",
-                surfaceDict,
-                surfaceIntersection::NONE
-            );
-
         if (selfIntersect != surfaceIntersection::NONE)
         {
             triSurfaceSearch query(surf);
@@ -461,7 +617,8 @@ int main(int argc, char *argv[])
 
         feMesh.write();
 
-        // Write a featureEdgeMesh for backwards compatibility
+        // Write a featureEdgeMesh (.eMesh) for backwards compatibility
+        // Used by snappyHexMesh (JUN-2017)
         if (true)
         {
             featureEdgeMesh bfeMesh
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
index 89f5b9c6b78..176a0e19384 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict
@@ -16,7 +16,7 @@ FoamFile
 
 surface1.stl
 {
-    // How to obtain raw features (none | extractFromFile | extractFromSurface)
+    // Extract raw features (none | extractFromFile | extractFromSurface)
     extractionMethod    extractFromSurface;
 
     // Mark edges whose adjacent surface normals are at an angle less
@@ -28,37 +28,48 @@ surface1.stl
     // Do not mark region edges
     geometricTestOnly   yes;
 
-    /* alternative specification as coeff dictionary
-    extractFromSurfaceCoeffs
-    {
-        includedAngle   120;
+    // Generate additional intersection features (none | self | region)
+    intersectionMethod  none;
+
+    // Tolerance for surface intersections
+    // tolerance           1e-3;
+
+  // Output options:
+
+    // Write features to obj format for postprocessing
+    writeObj            yes;
+}
+
+
+// Self intersection (single or multiple surfaces).
+// - Use 'surfaces' entry (a wordRe list) if it exists.
+// - If the dictionary name does not have an extension, 'surfaces' is mandatory.
+outputName1
+{
+    extractionMethod    none;
 
-        geometricTestOnly  yes;
-    } */
+    surfaces            (surface1.stl surface2.nas);
 
     // Generate additional intersection features (none | self | region)
-    intersectionMethod  none;
+    intersectionMethod  self;
 
     // Tolerance for surface intersections
-    tolerance           1e-3;
+    // tolerance           1e-3;
 
-    // Write options
+  // Output options:
 
-        // Write features to obj format for postprocessing
-        writeObj        yes;
+    // Write features to OBJ format for postprocessing
+    writeObj            yes;
 }
 
 
 surface2.nas
 {
-    // How to obtain raw features (none | extractFromFile | extractFromSurface)
+    // Extract raw features (none | extractFromFile | extractFromSurface)
     extractionMethod    extractFromFile;
 
-    extractFromFileCoeffs
-    {
-        // Load from an existing feature edge file
-        featureEdgeFile "constant/triSurface/featureEdges.nas";
-    }
+    // Load from an existing feature edge file
+    featureEdgeFile     "constant/triSurface/featureEdges.nas";
 
     trimFeatures
     {
@@ -71,16 +82,15 @@ surface2.nas
 
     subsetFeatures
     {
-        // Use a plane to select feature edges
-        // (normal)(basePoint)
-        // Keep only edges that intersect the plane will be included
+        // Use a plane to select feature edges (normal)(basePoint)
+        // Only keep edges that intersect the plane
         plane           (1 0 0)(0 0 0);
 
-        // Select feature edges using a box
-        // (minPt)(maxPt)
-        // Keep edges inside the box:
+        // Select feature edges using a box // (minPt)(maxPt)
+        // Only keep edges inside the box:
         insideBox       (0 0 0)(1 1 1);
-        // Keep edges outside the box:
+
+        // Only keep edges outside the box:
         outsideBox      (0 0 0)(1 1 1);
 
         // Keep nonManifold edges (edges with >2 connected faces where
@@ -95,110 +105,35 @@ surface2.nas
     {
         // Add (without merging) another extendedFeatureEdgeMesh
         name            axZ.extendedFeatureEdgeMesh;
-
-        // Optionally flip features (invert all normals, making
-        // convex<->concave etc)
-        //flip                false;
     }
 
-    // Output the curvature of the surface
-    curvature           no;
-
-    // Output the proximity of feature points and edges to each other
-    featureProximity    no;
-
-    // The maximum search distance to use when looking for other feature
-    // points and edges
-    maxFeatureProximity 1;
-
-    // Out put the closeness of surface elements to other surface elements.
-    closeness           no;
 
     // Generate additional intersection features (none | self | region)
     intersectionMethod  none;
 
     // Tolerance for surface intersections
-    tolerance           1e-3;
-
-    // Write options
-
-        // Write features to obj format for postprocessing
-        writeObj        yes;
-
-        // Write surface proximity and curvature fields to vtk format
-        // for postprocessing
-        writeVTK        no;
-}
-
+    // tolerance           1e-3;
 
-// Handle single or multiple surfaces
-//
-// - If the dictionary is named 'surfaces', it must also contain a 'surfaces'
-//   entry (wordRe list).
-//
-// - If other dictionaries contain a 'surfaces' entry,
-//   it will be taken for the input.
-//
-dummyName
-{
-    extractionMethod    extractFromSurface;
-
-    surfaces            (surface1.stl surface2.nas);
+  // Output options:
 
-    // Base output name (optional)
-    // output              surfaces;
-
-    // Generate additional intersection features (none | self | region)
-    intersectionMethod  self;
+    // Output the closeness of surface elements to other surface elements.
+    closeness           no;
 
-    // Tolerance for surface intersections
-    tolerance           1e-3;
+    // Output surface curvature
+    curvature           no;
 
-    includedAngle       120;
+    // Output the proximity of feature points and edges to another
+    featureProximity    no;
 
-    // Do not mark region edges
-    geometricTestOnly   yes;
+    // The maximum search distance when checking feature proximity
+    maxFeatureProximity 1;
 
-    // Write options
+    // Write features to OBJ format for postprocessing
+    writeObj            no;
 
-        // Write features to obj format for postprocessing
-        writeObj        yes;
+    // Write closeness/curvature/proximity fields as VTK for postprocessing
+    writeVTK            no;
 }
 
 
-// Handle single or multiple surfaces
-//
-// - If the dictionary is named 'surfaces', it must also contain a 'surfaces'
-//   entry (wordRe list).
-//
-// - If other dictionaries contain a 'surfaces' entry,
-//   it will be taken for the input.
-//
-surfaces
-{
-    extractionMethod    none;
-
-    surfaces            (surface1.stl surface2.nas);
-
-    // Base output name (optional)
-    // output              surfaces;
-
-    // Generate additional intersection features (none | self | region)
-    intersectionMethod  self;
-
-    // Tolerance for surface intersections
-    tolerance           1e-3;
-
-    /* alternative specification as coeff dictionary
-    noneCoeffs
-    {
-        includedAngle   0;
-    } */
-
-    // Write options
-
-    // Write features to obj format for postprocessing
-    writeObj        yes;
-}
-
 // ************************************************************************* //
-- 
GitLab